Debian

Debian Linux
Intall 全般について

Debian 5 (lenny) からDebian 6 (squeeze) へのアップグレード 

ファイル /etc/apt/sources.list の中で lenny をsqueezeへ変更して、apt-get update -> apt-get upgrade を実行します

その後システム全体のアップグレード  # apt-get dist-upgrade

 

Debian 6 (squeeze) から7 (wheezy)へアップグレード

Debian 6 を最新にアップデイトと現状のバックアップ  

さらにパッケージの状態を確認   # dpkg --audit  # dpkg -l | more  などで

APTの取得先を変更 /etc/apt/sources.list ファイルを編集し squeeze を wheezy へ変更 以下の行を追加します。

 deb http://mirrors.kernel.org/debian wheezy main contrib

システムの最小アップグレード  # apt-get update  # apt-get upgrade

その後、システム全体のアップグレード  # apt-get dist-upgrade

もし 「パッケージパッケージ」の即時設定は動作しません。詳細については man 5 apt.conf の APT::Immediate-Configure の項を参照してください  というエラーが起きたら以下のコマンドを入力します。

 # apt-get dist-upgrade -o APT::Immediate-Configure=0

その他アップグレードで障害が起きた場合はDebianサイトで詳細確認 ここから

 

※2014年1月、Debian 6 (squeeze) から7 (wheezy)へアップグレードした際に、以下の現象が起こりました。

apache2 の hppd.conf という空ファイルができていない事でapache2が起動しなかった

PHPで以下の警告が出たので、 suhosin モジュールを削除 apt-get purge php5-suhosin

Postfix起動時に警告 unused parameter: mynetwork_style=subnet が表示されたので、/etc/postfix/main.cf  で mynetwork_style の行をコメントに設定してPostfix 再起動

 

Debian 7 (wheezy) から 8 (jessie)へアップグレード

Debian 7 を最新にアップデイトと現状のバックアップ  

さらにパッケージの状態を確認   # dpkg --audit  # dpkg -l | more  などで

APTの取得先を変更 /etc/apt/sources.list ファイルを編集し wheezy を jessie へ変更 以下の行を追加します。

 deb http://mirrors.kernel.org/debian jessie main contrib

システムの最小アップグレード  # apt-get update  # apt-get upgrade

その後、システム全体のアップグレード  # apt-get dist-upgrade

その他アップグレードで障害が起きた場合はDebianサイトで詳細確認 ここから

 

Debian 8 (jessie) から 9 (stretch)へアップグレード

Debian 8を最新にアップデイトと現状のバックアップ  

 アップデイトは # apt-get update   # apt-get upgrade   # apt-get dist-upgrade

さらにパッケージの状態を確認   # dpkg --audit  # dpkg -l | more  などで

APTの取得先を変更 /etc/apt/sources.list ファイルを編集し jessie を stretch へ変更 以下の行を追加します。

 deb http://mirrors.kernel.org/debian stretch main contrib

システムの最小アップグレード  # apt-get update  # apt-get upgrade   

その後、システム全体のアップグレード  # apt-get dist-upgrade

reboot してアップグレードしたことを確認  $ uname -mrs   $ lsb_release -a

注意事項: 

Apache MySQL PHPがjessieの環境を以降できない現象が起きた場合は、モジュールの設定ファイルをバックアップし、モジュールごとに削除、インストールを行ないます。

その他アップグレードで障害が起きた場合はDebianサイトで詳細確認 ここから

 

Debian 9 (stretch)新規インストール

aptのsources.listファイルの設定(2019年6月17日現在)

/etc/apt/sources.list

deb http://ftp.jp.debian.org/debian stretch main contrib non-free
deb-src http://ftp.jp.debian.org/debian stretch main contrib non-free
deb http://security.debian.org/ stretch/updates main contrib non-free
deb-src http://security.debian.org/ stretch/updates main contrib non-free

 

Debian 10 buster 新規インストール

/etc/apt/sources.listファイルの設定(Debian 10.1.0 2019年10月5日現在)

deb http://deb.debian.org/debian/ buster main
deb-src http://deb.debian.org/debian/ buster main
deb http://security.debian.org/debian-security buster/updates main
deb-src http://security.debian.org/debian-security buster/updates main
# buster-updates, previously known as 'volatile'
deb http://deb.debian.org/debian/ buster-updates main
deb-src http://deb.debian.org/debian/ buster-updates main 

 

さくらのクラウドでDebian 9からDeian10へアップグレードする場合、必須ではないけどJPサイトを指定しました。contrib non-free も追加した場合。

既存のパッケージの状態を確認します。 sudo dpkg --audit   何も結果がなければ問題がないのでOKです。

現状の /etc/apt/sources.list で特別なレポジトリがあるか確認します。

stretch -> buster へ書き換え

sed -i -e 's/stretch/buster/' /etc/apt/sources.list

deb http://ftp.riken.jp/Linux/debian/debian/ buster main contrib non-free
deb-src http://ftp.riken.jp/Linux/debian/debian/ buster main contrib non-free
deb http://security.debian.org/debian-security buster/updates main contrib non-free
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
deb http://ftp.riken.jp/Linux/debian/debian/ buster-updates main contrib non-free
deb-src http://ftp.riken.jp/Linux/debian/debian/ buster-updates main contrib non-free

以下のコマンド実行、apt update 実行でレポジトリの取得エラーなどがないか確認します。エラーの場合は別のレポジトリに変更します。

apt update
apt autoremove
apt clean
apt-get upgrade
apt full-upgrade

apt-get upgradeを実行後、minissdpdパッケージを使うかどうか聞いてきました。使わない設定が良いと思います。途中でminissdpdパッケージをapt purgeしました。その後upgradeを実行し、full-upgrade を実行

※参考にしたサイト:https://sysrigar.com/2020/02/22/debian%E3%82%929stretch%E3%81%8B%E3%82%8...

 

◆ さくらのクラウドでDebian10からDeian11へアップグレードする場合

既存のパッケージの状態を確認します。 sudo dpkg --audit   何も結果がなければ問題がないのでOKです。

現状の /etc/apt/sources.list で特別なレポジトリがあるか確認します。

buster -> bullseye へ書き換え

sed -i -e 's/buster/bullseye/' /etc/apt/sources.list

sedコマンド実行後に deb http://security.debian.org/debian-security buiiseye/updates mainなどになっている場合は、  bullseye-security main に修正します。

deb http://deb.debian.org/debian bullseye main
deb-src http://deb.debian.org/debian bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
deb http://deb.debian.org/debian bullseye-updates main
deb-src http://deb.debian.org/debian bullseye-updates main

アップグレードコマンド

apt update
apt upgrade --without-new-pkgs
apt full-upgrade

※参考にしたサイト:https://sysrigar.com/2021/08/21/debian-10-buster%E3%81%8B%E3%82%8911-bul...

 

Debian 11 bullseye 新規インストール

/etc/apt/sources.listファイルの設定(Debian 11.1.0 2022年4月1日現在)

deb http://ftp.jp.debian.org/debian/ bullseye main
deb-src http://ftp.jp.debian.org/debian/ bullseye main
deb http://security.debian.org/debian-security bullseye-security main
deb-src http://security.debian.org/debian-security bullseye-security main
deb http://ftp.jp.debian.org/debian/ bullseye-updates main
deb-src http://ftp.jp.debian.org/debian/ bullseye-updates main

 

Debian 11 での non-free contribute pacakges は

deb http://ftp.jp.debian.org/debian/ bullseye main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ bullseye main contrib non-free
deb http://security.debian.org/debian-security bullseye-security main contrib non-free
deb-src http://security.debian.org/debian-security bullseye-security main contrib non-free
deb http://ftp.jp.debian.org/debian/ bullseye-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ bullseye-updates main contrib non-free

 

◆ さくらのクラウドでDebian11からDeian12へアップグレードする場合

bullseye --> bookworm  へ書き換え

sed -i -e 's/bullseye/bookworm/' /etc/apt/sources.list

さくらのクラウドで運用する場合の /etc/apt/sources.list 

deb http://ftp.jp.debian.org/debian/ bookworm main
deb-src http://ftp.jp.debian.org/debian/ bookworm main
deb http://security.debian.org/debian-security bookworm-security main
deb-src http://security.debian.org/debian-security bookworm-security main
deb http://ftp.jp.debian.org/debian/ bookworm-updates main
deb-src http://ftp.jp.debian.org/debian/ bookworm-updates main

contrib non-free-firmwareのレポジトリを追加した場合の /etc/apt/sources.list 

deb http://deb.debian.org/debian bookworm main contrib non-free non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free non-free-firmware
deb http://deb.debian.org/debian-security/ bookworm-security main contrib non-free non-free-firmware

アップグレードコマンド

apt update
apt upgrade --without-new-pkgs
apt full-upgrade

 

 

Debian 10 Buster

サスペンド設定

再起動後20分程度でシステムが止まって(サスペンド)しまう現象。この現象は、デスクトップ環境をインストールした場合に影響すると思われます。インストールするデスクトップ環境によっては、設定内容がことなると思います。

参考にしたページ: https://qiita.com/ikesama200/items/f595293de82ddc9fa3f1

GUIからはサスペンド設定が変更できないので、以下のファイルを修正します。

/usr/share/gdm/dconf/90-debian-settings -> /etc/gdm3/greeter.dconf-defaults

リンク元の /etc/gdm3/greeter.dconf-defaults を編集して、最終行に追加

sleep-inactive-ac-timeout = 0
sleep-inactive-battery-timeout = 0

システムを再起動して20分でサスペンドしないか確認します。

 

サスペンド、スリープ、ハイバネ―トコマンド

  • ハイブリッドスリープ sudo systemctl hybrid-sleep
  • ハイバネ―ト sudo systemctl hibernate
  • サスペンド sudo systemctl suspend

 

 

Debian 8(Jessie) 以降のサスペンド設定

概要: https://wiki.debian.org/Suspend

サスペンドおよびハイバネーションを無効にする場合

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

実行例(debian9):$ sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Created symlink /etc/systemd/system/sleep.target → /dev/null.
Created symlink /etc/systemd/system/suspend.target → /dev/null.
Created symlink /etc/systemd/system/hibernate.target → /dev/null.
Created symlink /etc/systemd/system/hybrid-sleep.target → /dev/null.

上記を有効化する場合

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target

設定した内容でシステムを有効化

systemctl restart systemd-logind.service  または リブート

 

Debian 11 bullseye でサスペンドを無効

参考にしたサイト https://takuya-1st.hatenablog.jp/entry/2021/11/26/172528

スリープを無効にする場合

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

 

Apacheについて

Debian 7 (wheezy) から 8 (jessie)へアップグレード

Debian 8 からApacheのバージョンが2.4になりました。Debian 7の2.2から大幅に違います。

Apacheの設定ファイルの変更

Order allow,denyは使えないので、下記のように修正する

# Order allow,deny
Require all granted

 

/etc/apache2/sites-availableにある設定ファイル全ての最に「.conf」を付ける

既存の設定をバックアップし、a2dissite * で活性化されているサイト全てを非活性にする

サイトを活性化する a2ensite *

Apacheを再起動

 

 

Debianコマンド

addgroup  参照サイト ここから

・Groupの追加
   #addgroup hogehoge
・グループIDを指定する場合は、
   #addgroup --gid 1200 hogehoge

・Groupの削除
   #delgroup hogehoge

adduser  参照サイト ここから

・ユーザーの追加
   #adduser hoge
   ホームディレクトリなども作成してくれます。
   またデフォルトで必要なファイルは、/etc/skel/内のファイルがホームディレクトリへコピーされます。
・UIDを指定する
   #adduser --uid 1200 hoge
・グループを指定する場合。
   #adduser --ingroup hogehoge hoge
・ホームディレクトリを指定する
   #adduser --ingroup hogehoge --home /home/hogehoge

・システムユーザー(ログインできないユーザー)を作成する。
   #adduser --system hoge
・グループを指定する場合
   #adduser --system --ingroup hogehoge hoge
・ホームディレクトリを指定する
   #adduser --system --ingroup hogehoge --home /var/hoge hoge
・ホームディレクトリを作らない
   #adduser --system --ingroup hogehoge --no-create-home hoge

・ユーザーの削除
   #deluser hoge
   *ホームディレクトリは残ります。
・ホームディレクトリも同時に削除する。
   #deluser --remove-home hoge
・ホームディレクトリも含む、関係する全てのファイルも同時に削除する。
   #deluser --remove-all-files hoge

GroupとUserの設定  参照サイト ここから

ユーザー"hoge"で、サウンドデバイスを利用したい場合は、"hoge"を"audio"グループに含める必要があります。

/etc/groupを直接編集する場合は、以下のようになります。
audio:x:29:hoge,hoge2
*複数のユーザーを記述する場合は、カンマで区切ります。

コマンドを利用する場合は、
#adduser hoge audio

 

・ データベース

・ PHP言語

DNSサーバー

その他(運用について)

 

FAQ
  • tightvncserver でキーボード設定がおかしいので入力できない

このサイトで以下のコマンドを使って、GNONEのキーボードマッピングを新規(aa)に設定します。 ただし、日本語変換などは別途設定しないと動かないようです。 取り合えず英語モードでは使えました。

gconftool --set /desktop/gnome/peripherals/keyboard/kbd/layouts --type List --list-type String [aa]

 

  • sudoコマンドを実行すると、sudo: unable to resolve host ホスト名 というワーニングが表示

ホスト名の名前解決で問題がある場合が多いので、 /etc/hosts ファイルを編集します。

127.0.1.1 ホスト名.localdomain ホスト名.localdomain  を

127.0.1.1 ホスト名.localdomain ホスト名   に修正します。

 

  • アップデイトでソースリストの取得に失敗する場合

/etc/apt/sources.List ファイルに以下のサイトから取得したサンプルを書き込み、アップデート

http://debgen.simplylinux.ch/

 

  • SECURITY information for xxx,  unable to resolve host xxx   などの警告が出る場合

/etc/hosts   および /etc/resolv.conf    でホスト名やドメイン名の設定が間違っている場合がありますので、修正します。

 

  • ユーザ追加するとコマンドヒストリーなどが使えない場合

Debian 6 の頃からのようですが、useraddコマンドで作成したユーザはコマンドヒストリが使えない、adduserコマンドで作成するとOKです。

 

  • aptコマンドで「壊れた変更禁止パッケージがあります」エラーにaptitudeで対処する

参考にしたサイト: http://minus9d.hatenablog.com/entry/2017/07/19/213801

aptitudeコマンドで、改善案を探しながら、一つ前のバージョンに戻ったり、その時の状況にあわせて、数回、繰り返すと、解決する場合があります。

 

  • aptコマンドで「以下のパッケージは保留されます」に対処する

参考にしたサイト: http://itengine.seesaa.net/article/454359986.html

 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get -s dist-upgrade
 sudo apt-get dist-upgrade

 

 

タグ: 

オープンソースソフトウェア: 

Apache

DebianのApacheについて

 

mod_rewriteのインストール

 

1)# a2enmod rewrite  コマンドの実行

2).htaccessファイルの設定を有効にするために、 /etc/apache2/site-avaiable/default で使用するディレクトリで AlloOverride All  に設定します。

その後Apache2に再起動 /etc/init.d/apache2 restart

 

仮想サイトの追加

 

環境 Debian GNU/Linux 4.0 以降

1) /etc/apache2/sites-avaiable にdefaultファイルを参考にして、追加するサイトの設定ファイルを作成します。

2) シンボリックリンク作成の代わりにDebianのApacheコマンドで追加作成、削除します。以下のコマンドは、 /etc/apache2/sites-enabled で実行します。

新規作成 "a2ensite サイト名"  削除の場合 "a2dissite サイト名"

3) Apacheの再読込  # /etc/init.d/apache2 reload

 

  • Apacheのデフォルトドメインを停止する(仮想ドメインを使う場合)

他の仮想ホストに干渉する可能性があるため、デフォルトの仮想ホストを無効にします。

sudo a2dissite 000-default.conf

 

Apacheモジュールの追加

 

新規作成  "a2enmod サイト名"   サイト削除  "a2dismod サイト名"

mod_pagespeedを追加する場合:

Googleのmod_pagespeedサイトから最新版をダウンロード

dpkg -i mod-pagespeedモジュールファイル

もしくは

apt-get -f install mod-pagespeedモジュールファイル

確認で、/etc/apache2/mods-available と mods-enabled で pagespeed.conf pagespeed.load が設定されているか確認、もしくは e2enmod mod_pagespeed を実行して既にインストール済になっているか確認します。

その後、apache2を再起動

 

Apacheのログ

標準ログは、/var/log/apache2   に保存されます。 access.log   error.log という名前になります。 リアルタイムで動作を調べるときには、 tail -f access.log -n 100  などでモニターでき、便利です。

 

.htaccessを使わない設定方法

.htaccess のファイル名を変更します。
/etc/apache2 にある apache2.conf で AccessFileName .htaccess という行を
コメントに設定する(読み込まないようにする)
/etc/apache2 にある httpd.conf  に .htaccess の内容をコピーする。この
設定ファイルで、RewriteRuleなどを設定する。 なを、/etc/apache2/sites- avaiable/
以下の仮想ドメイン用の設定ファイルには、RewriteEngine ON を設定して下さい。

 

エラーが起きた場合

Apache2を起動時に、 using 127.0.0.1 for ServerName などのエラーメッセージが表示される場合は、/etc/apache2/apache2.conf の最後の行に、 ServerName hoge.hogedomain.com:80  を記入し、Apache2を再起動してエラーメッセージが表示されるか確認します。

DebianのOSを更新した際に、Apacheのアップデイトなど、関連ファイルが更新され、古い設定ファイルなどが残っている場合があります。 その場合は、以下のようなエラーメッセージが表示されることがあります。

apache2: Syntax error on line 140 of /etc/apache2/apache2.conf: Syntax error on line 1 of /etc/apache2/mods-enabled/php5.load: Cannot load /usr/lib/apache2/modules/libphp5.so into server: /usr/lib/apache2/modules/libphp5.so: cannot open shared object file: No such file or directory Action 'configtest' faile

このようなエラーの場合は、apacheの設定ファイルなどをバックアップし、その後、ディレクトリなども削除する apt-get --purge remove apache2 を実行します。

 

 

ディレクトリやファイルなどのインデックスを非表示にたい

Apache2の場合、 /etc/apache2/sites-available/default ファイルを修正し、apache2を再起動します。

修正箇所は、Options Indexes FollowSymLinks MultiViews の行で Indexes  を削除します。

 

SSLの設定

サーバー内で証明書も発行する場合

参考にしたサイト: https://symfoware.blog.fc2.com/blog-entry-1120.html

環境 Debian 8,9

 

OpenSSLのインストールと設定

# apt-get install openssl

# cd /etc/ssl/certs/
# openssl genrsa -des3 -out server.key 1024

任意のパスフレーズを入力

Apacheの起動のたびに、パスフレーズの入力を求められので、削除します。

# openssl rsa -in server.key -out server.key

これで秘密鍵の準備は出来ました。今度はサーバー証明書を作成します。証明書要求の作成を行います。

# openssl req -new -days 3650 -key server.key -out server.csr

......  Common Name (e.g. server FQDN or YOUR name) []:192.168.1.3 <-www.example.comまたはIPアドレス

...... A challenge password []:(空白)
...... An optional company name []:(空白)

証明書を発行してもらうための要求ファイルができたので、証明書を発行

# openssl x509 -in server.csr -out server.crt -req -signkey server.key -days 3650

これでもう、server.csrは不要です。パーミッションを変更します。

# chmod 400 server.*

server.keyが秘密鍵。server.crtがサーバー証明書。

 

Apache2へSSLの設定

SSLモジュールの有効化

# a2enmod ssl

/etc/apache2/sites-available/default-ssl.conf を編集して、ServerNameと作成した秘密鍵、公開鍵のパスを指定。

# vi /etc/apache2/sites-available/default-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost _default_:443>
        ServerAdmin webmaster@localhost
        ServerName 192.168.1.3:443 <-サーバー名もしくはIPアドレス

.......

# SSLCertificateFile directive is needed.
        SSLCertificateFile    /etc/ssl/certs/server.crt
        SSLCertificateKeyFile /etc/ssl/certs/server.key

SSLサイトの有効化

# a2ensite default-ssl

Apache2再起動  # /etc/init.d/apache2 restart

 

パスワードを自動読み込みに設定する場合

/etc/ssl/private/ディレクトリに、例えばmy_passphrase.shファイルを作成します。

 #!/bin/sh
 echo "設定したパスワード"

管理者のみ実行権限付きパーミッションに変更

 chmod 500 /etc/ssl/private/my_passphrase.sh

/etc/apache2/mods-available/ssl.confの修正

 SSLPassPhraseDialog exec:/etc/ssl/private/my_passphrase.sh

Apache2再起動

参考にしたページ:

https://def-4.com/ssl-passphrase/

 

常時SSL化の設定

HTTPからHTTPSへのリダイレクト

参考にしたサイト: https://www.tecmint.com/redirect-http-to-https-on-apache/

https://www.yokoweb.net/2017/03/23/ubuntu-wordpress-ssl-coressl/

.htaccessファイルを使う場合

Mod Rewirte の実行 $ sudo a2enmod rewrite

使用するドメインルートディレクトリに.htaccess ファイルの作成し以下の設定を記載

RewriteEngine On 
RewriteCond %{HTTPS}  !=on 
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

もしくは

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTPS} !=on [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>

Apache2の再起動

 

仮想ドメインでSSLを運用

参考にしたサイト: 

http://www.techspacekh.com/installing-and-configuring-apache-web-server-...

https://letsencrypt.jp/usage/#ExecClientSoftware

https://www.tecmint.com/install-free-lets-encrypt-ssl-certificate-for-ap...

https://qiita.com/ninneko/items/87a76f0f1dc6d82500fb

https://linux-svr.com/tips/Web%E3%82%B5%E3%83%BC%E3%83%90/12.php

 

  • Debian 8 jessie の場合

opensslで既にSSL(インストールされているサーバーで認証サーバーも兼用する)環境が設定ずみとして、

apacheのバーチャルホストの設定で

/etc/apache2/sites-available/www.XXXcom.conf のファイルを編集します。

VirtualHost *:443 以下を追加

 <VirtualHost *:80>
     ServerName www.XXX.com
     DocumentRoot /var/www/html/xxx
     ServerAlias XXX.com
     CustomLog /var/log/apache2/xxx-80-access_log common
     ErrorLog /var/log/apache2/xxx-80-error_log

 <Directory "/var/www/html/xxx">
                        Options FollowSymLinks
                        AllowOverride All

                        Require all granted

                </Directory>

 </VirtualHost> 

 <VirtualHost *:443>

     ServerName www.XXX.com
     ServerAdmin xxx@xxx.com
     DocumentRoot /var/www/html/xxx
     ServerAlias xxx.com
     CustomLog /var/log/apache2/xxx-443-access_log common
     ErrorLog /var/log/apache2/xxx-443-error_log

 <Directory "/var/www/html/xxx">
                        Options FollowSymLinks
                        AllowOverride All

                        Require all granted

                </Directory>

    SSLEngine on
    SSLCertificateFile /etc/ssl/certs/server.crt
    SSLCertificateKeyFile /etc/ssl/certs/server.key

</VirtualHost>

この状態だと、http と https の両方が稼働する状態なので、常時、httpsへ切り替わるように設定します。

httpからhttpsへリダイレクトする方法として、以下のようにhttpのタグにリライトを設定します。

<VirtualHost *:80>

 <Directory ...>

 ................................

 </Directory>

   RewriteEngine on
        RewriteCond %{SERVER_PORT} !^443$
        RewriteRule ^/(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]

</VirtualHost>

 

  • Let's encryptで認証する場合(Debian 8 jessieの場合)

新しい設定ファイル /etc/apt/sources.list.d/backport.list を用意して,以下の内容を記述します。

 deb http://ftp.debian.org/debian jessie-backports main

次に、Debianの更新 sudo apt update

jessie-backports から python-certbot-apacheをインストール

 apt install python-certbot-apache -t jessie-backports

これで、certbotコマンドが実行できるようになります。

認証ファイルの作成 (www.xxxx.co.jpxxxx.co.jpの2つのパターンに対応する)

 sudo certbot certonly --webroot -w /var/www/html/xxxx -d www.xxxx.co.jp -d xxxx.co.jp

できた、cert.pem  chain.pem  fullchain.pem  privkey.pem をApacheのファイルで設定します。

/etc/apache2/sites-available/www.xxxx.co.jp.conf のファイルに以下の項目を追加

    SSLEngine on

    SSLCertificateFile /etc/letsencrypt/live/www.xxxx.co.jp/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/www.xxxx.co.jp/privkey.pem
    SSLCertificateChainFile /etc/letsencrypt/live/www.xxxx.co.jp/chain.pem

 

最後に、自動更新の設定

 sudo certbot renew

動作の確認は sudo systemctl |grep certbot

 

 

  • Let's encryptで認証する場合(Debian 9 stretchの場合)

参考にしたサイト:http://www.kmiura.net/archives/8801264.html

certbotのインストールとバージョンの確認

sudo apt-get update 
sudo apt-get install -y certbot
sudo certbot --version
certbot 0.10.2

以下のコマンドを実行して、SSL認証ファイルを生成

certbot certonly --webroot -w /var/www/html -d www.XXXX.com -d XXXX.com

連絡先メールアドレスを設定、ライセンスの確認をすれば、SSL認証ファイルができます。

 

  • Let's encryptで認証する場合(Debian 10 Busterの場合)

Apacheの場合は https://certbot.eff.org/lets-encrypt/debianbuster-apache.html

インストール: sudo apt-get install certbot python-certbot-apache

証明書の発行: sudo certbot --apache -d www.gennai3.co.jp -d gennai3.co.jp

自動更新の設定: sudo certbot renew --dry-run

以下にインストールされます

/etc/crontab/

/etc/cron.*/*

systemctl list-timers

 

  • Let's encryptで wwwあり-> wwwなし で認証する場合(Debianの場合)

SSLなしのドメインの設定 一般的なApacheでの設定 www.xxx.jp.conf

######################################################################
# URL: http://www.xxx.jp/
######################################################################
<VirtualHost *:80>
    ServerName www.xxx.jp
    DocumentRoot /var/www/html/0000
    ServerAlias xxx.jp
    CustomLog /var/log/apache2/0000/xxx-80-access_log common
    ErrorLog /var/log/apache2/0000/xxx-80-error_log

<Directory "/var/www/html/0000">
                        Options FollowSymLinks MultiViews
                        AllowOverride All
                        Require all granted
                </Directory>
</VirtualHost>

このサイトがSSLなしで見れることを確認してから、sudo cetbot --apache コマンドを実行する

その際に、 www.xxx.jp  と xxx.jp のどちらをSSL対応にするか確認があるので、xxx.jp を選択します。

 www.xxx.jp.confファイルに以下の内容が追加されます。

RewriteEngine on
RewriteCond %{SERVER_NAME} =xxx.jp [OR]
RewriteCond %{SERVER_NAME} =www.xxx.jp
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

さらに、SSL対応のファイルが追加されます。www.xxx.jp-le-ssl.conf

<IfModule mod_ssl.c>
<VirtualHost *:443>
    ServerName www.xxx.jp
    DocumentRoot /var/www/html/0000
    ServerAlias xxx.jp
    CustomLog /var/log/apache2/0000/xxx-80-access_log common
    ErrorLog /var/log/apache2/0000/xxx-80-error_log

<Directory "/var/www/html/0000">
                        Options FollowSymLinks MultiViews
                        AllowOverride All
                        Require all granted
                </Directory>

SSLCertificateFile /etc/letsencrypt/live/xxx.jp/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/xxx.jp/privkey.pem
Include /etc/letsencrypt/options-ssl-apache.conf
</VirtualHost>
</IfModule>

 

 

  • CertbotコマンドでApacheのLet's encrypt認証書を取得する場合(Debian 11 bullseyeの場合)

$ sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email you@example.com -d www.example.com

--apache: Use the Apache plugin.
--agree-tos: Agree to terms of service.
--redirect: Force HTTPS by 301 redirect.
--hsts: Add the Strict-Transport-Security header to every HTTP response. Forcing browser to always use TLS for the domain. Defends against SSL/TLS Stripping.
--staple-ocsp: Enables OCSP Stapling. A valid OCSP response is stapled to the certificate that the server offers during TLS.

 

  • PostfixのTLSで使用するLet's encryptで認証書だけを取得する場合(Debian 11 bullseyeの場合)

$ sudo certbot certonly -a apache --agree-tos --no-eff-email --staple-ocsp --email 名前@gmail.com -d mail.ドメイン名.biz
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Account registered.
Requesting a certificate for mail.ドメイン名.biz
Successfully received certificate.
Certificate is saved at: /etc/letsencrypt/live/mail.ドメイン名.biz/fullchain.pem
Key is saved at:         /etc/letsencrypt/live/mail.ドメイン名.biz/privkey.pem

certonly: TLS 証明書を取得しますが、Web サーバーにはインストールしません。
-a nginx: 認証に Apache プラグインを使用する
--agree-tos: 利用規約に同意します。
--no-eff-email: EFF財団からのメールを受け取りません。
--staple-ocsp: OCSP ステープルを有効にします。有効な OCSP 応答は、TLS 接続中にサーバーが提供する証明書にステープルされます。
--email: 重要な通知とアカウントの復旧に使用するメール アドレスを入力します。
-d: ドメイン、つまりメール サーバーのホスト名。

 

  • Apacheのデフォルトドメインを停止する(仮想ドメインを使う場合)

他の仮想ホストに干渉する可能性があるため、デフォルトの仮想ホストを無効にします。

sudo a2dissite 000-default.conf

 

  • Certbotの証明書再発行を自動化

crontabに毎日certbot renew を実行し、postfixとdovecot を再起動、Apacheの場合

sudo crontab -e
@daily certbot renew --quiet && systemctl reload postfix dovecot apache2

 

  • Certbotの証明書を削除

登録されている証明書の確認

sudo certbot certificates

証明書の削除

sudo certbot delete --cert-name 登録ドメイン名

 

Basic認証の設定

オープンソースCMS Drupalの運用環境で、Basic認証を設定する場合

apache2のhtpasswdを追加インストール

 # aptitude -y install apache2-utils

認証ユーザー名とパスワードを設定します。パスワードファイル(.htpasswd)は/etc/apache2に保存する場合

 # htpasswd -c /etc/apache2/.htpasswd ユーザー名

Drupalのdrupal_rootディレクトリにある、.htaccessファイルのトップ行に以下の内容を追記します。

AuthUserFile /etc/apache2/.htpasswd
AuthName "Input ID and Password."
AuthType Basic
Require valid-user
<Files ~ "^.(htpasswd|htaccess)$">
        Require all denied
</Files>

Apache2を再起動。

 

リバースプロキシーの設定

出典: https://docs.graylog.org/docs/web-interface#configuring-webif-nginx

HTTPの場合

<VirtualHost *:80>
    ServerName xxx.example.org
    ProxyRequests Off
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    <Location />
        RequestHeader set X-xxx-Server-URL "http://xxx.example.org/"
        ProxyPass http://127.0.0.1:9000/
        ProxyPassReverse http://127.0.0.1:9000/
    </Location>

</VirtualHost>

HTTPSの場合

<VirtualHost *:443>
    ServerName xxx.example.org
    ProxyRequests Off
    SSLEngine on
    # <- your SSL Settings here!

    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>

    <Location />
        RequestHeader set X-xxx-Server-URL "https://xxx.example.org/"
        ProxyPass http://127.0.0.1:9000/
        ProxyPassReverse http://127.0.0.1:9000/
    </Location>

</VirtualHost>

 

 

タグ: 

Command

Debian コマンド

良く使う、代表的なDebianコマンドについて

dpkg コマンド

パッケージの情報を参照  dpkg -s <パッケージ名>   

インストール済み dpkg -L <パッケージ名>

インストールされているパッケージを参照 dpkg -l | grep <検索>   

パッケージのインストール  dpkg -i <パッケージ名>
 

apt コマンド

OS・パッケージの更新情報取得  apt-get update    

OS・パッケージの更新 apt-get upgrade

インストール済みパッケージの更新チェック  apt-get check

パッケージのインストール apt-get install <パッケージ名>  

削除 apt-get remove <パッケージ名>

パッケージの依存関係を修復する場合 apt-get -f install

パッケージの検索 apt-cache search <検索対象>

ディストリビューションのアップグレード  apt-get dist-upgrade

キャッシュの削除 /var/cache/apt/archives 以下のパッケージを削除 apt-get clean   apt-get autoclean

apt ソースリスト  /etc/apt/sources.list

aptコマンド実行で保留がある場合は

apt-get update

apt-get dist-upgrade

で保留もアップデイトされます。

 aptitude コマンド

パッケージのインストール aptitude -y install パッケージ名

パッケージの検索 aptitude search パッケージ名

パッケージ情報を参照 aptitude show パッケージ名

パッケージを削除 aptitude remove パッケージ名

パッケージの設定ファイルも含めて削除 aptitude purge パッケージ名

データベース更新 aptitude update

データベース更新後にパッケージの更新 aptitude safe-upgrade

sudo コマンド

/etc/sudoers を編集、もしくは visudo コマンドを実行して編集します。

設定方法は、 ユーザー名 ホスト名=(コマンド実効ユーザー) コマンド

例えば、user1 にすべてのコマンドを実効させる場合は  

user1 ALL=(ALL) ALL   になります。

update-alternatives コマンド

Javaのバージョンを入れ替える時に使用します。

# update-alternatives --config java

PHPのバージョンを入れ替える時には、例えば PHP7.4に切り替えるときは、

# update-alternatives --set php /usr/bin/php7.4

もしくは 以下のコマンドで切り替え環境を選択できます。

sudo update-alternatives --config php

alternative php (/usr/bin/php を提供) には 8 個の選択肢があります。

  選択肢    パス           優先度  状態
------------------------------------------------------------
  0            /usr/bin/php8.1   81        自動モード
  1            /usr/bin/php5.6   56        手動モード
  2            /usr/bin/php7.0   70        手動モード
  3            /usr/bin/php7.1   71        手動モード
  4            /usr/bin/php7.2   72        手動モード
  5            /usr/bin/php7.3   73        手動モード
* 6            /usr/bin/php7.4   74        手動モード
  7            /usr/bin/php8.0   80        手動モード
  8            /usr/bin/php8.1   81        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください:     

 

 

タグ: 

オープンソースソフトウェア: 

SMTP

SMTP

DebianでSMTP(メール送信)サーバーの設定

 

exim4

Debian 10 などで標準インストールされるシンプルなSMTPサーバーです。

Debianサーバーで、crontab などと連携してシステム上のアラームメッセージなどを自動送信させるために、exim4を使ってみました。

インストールと設定

参考にしたサイト: 

http://mirahouse.jp/n10/blog/2015/debian-exim4/

https://www.bnote.net/kuro_box/kuro_debian_exim4.shtml

rootで dpkg-reconfigure exim4-config を実行

General type of mail configuration: mail sent by smarthost; received via SMTP or fetchmail
System mail name:サーバのFQDN
IP-addresses to listen on for incoming SMTP connections:127.0.0.1 ; ::1
Other destinations for which mail is accepted:サーバのFQDN
Machines to relay mail for:(blank)
IP address or host name of the outgoing smarthost:送信させる外部のsmtpサーバー::587
Hide local mail name in outgoing mail? <Yes>
Visible domain name for local users:サーバのFQDN
Keep number of DNS-queries minimal (Dial-on-Demand)? <No>
Delivery method for local mail:mbox format in /var/mail/
Split configuration into small files? <No>

外部の転送先アカウント設定

/etc/exim4/passwd.client を編集

外部のSMTPサーバー名:そのメールアドレス:パスワード

sudo chown root:Debian-exim /etc/exim4/passwd.client

sudo chmod 640 /etc/exim4/passwd.client

必要であれば、システム内部のメールを転送するために、 /etc/email-addresses も設定します。

システムへの反映 update-exim4.conf

これで、コマンドラインから mail コマンドで送信できます。送信テストコマンドのサンプル

echo "test" | mail -s "test1" (送信先のメールアドレス)

 

 

 

 

 

 

 

タグ: 

オープンソースソフトウェア: 

SSH

Debianインストール後、SSHを設定する方法

参考: << www.linux.net-japan.info/install04.html >>

SSHサーバの設定

sshd_configの設定
/etc/ssh/sshd_configファイルを設定する。
設定方針:指定したユーザのみが、SSHサーバに接続できるように設定する。

vim /etc/ssh/sshd_config

PermitRootLogin no
AuthorizedKeyFile %h/ .ssh/authorized_keys

DenyUsers ALL
AllowUsers etch taro hanako

2) TcpWrapperの設定

/etc/hosts.allowと/etc/hosts.denyファイルで、SSH接続できるネットワーク又はIPアドレスを指定する。
TCPのパッケと段階でもアクセス制限を行う。この場合は、内部のプライベートネットワークからの接続を許可している。

vim /etc/hosts.allow

ALL: 127.0.0.1
sshd: 192.168.1.

vim /etc/hosts.deny
sshd: ALL

3) sshd_configの設定変更を有効にする

/etc/init.d/ssh restart

 

SSH(公開鍵と秘密鍵の作成)

ssh-keygen -t rsa  を実行します。

ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/xxxxx/.ssh/id_rsa): 
/Users/xxxxx/.ssh/id_rsa already exists.
Overwrite (y/n)? yes
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /Users/xxxxx/.ssh/id_rsa.
Your public key has been saved in /Users/xxxxx/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Dqvvyxxxxxxxxxxxxx xxxxx@iMac27.local
The key's randomart image is:
+---[RSA 2048]----+
|       .o   . .  |
|       o.=.xxxxxxx
|      oxxxxxxxxx
|       xxxxxxxx
| . .  xxxxxxxxxxxx
|. . ...=+ . ... .|
|. . ..xxxxxxxxxxxxx
| . . o o  .      |
|    .xxxxxxxxxxxx
+----[SHA256]-----+

 

よくある現象

 

SSH接続時に以下のようなエラーが出た時

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:wASxKs7rxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxx
Please contact your system administrator.
Add correct host key in /Users/xxxxxxx/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/xxxxxxx/.ssh/known_hosts:4
RSA host key for 192.168.0.8 has changed and you have requested strict checking.
Host key verification failed.

このワーニングの原因は、接続先ホストを再インストールしたり、SSHサーバーの設定が変更になった場合などで接続できない状態になっているからです。

一つの方法として、known_hosts の設定情報を削除する方法です。 ssh-keygen -R 接続ホスト名

ssh-keygen -R 192.168.0.8
# Host 192.168.0.8 found: line 4
/Users/xxxxx/.ssh/known_hosts updated.
Original contents retained as /Users/xxxxx.ssh/known_hosts.old

SSH接続の確認

ssh hodota$ ssh -l hodota 192.168.0.8
The authenticity of host '192.168.0.8 (192.168.0.8)' can't be established.
ECDSA key fingerprint is SHAxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.8' (ECDSA) to the list of known hosts.
xxxxx@192.168.0.8's password: 

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Sun Jan 17 12:08:21 2016 from xxxxxxxx.xxxxxxx

 

詳細はここを参考に

 

オープンソースソフトウェア: 

dns

DNS(Domain Name System)について

Debianでの設定について、簡単に注意することをまとめました。 

詳細は 「実践 Debian GNU/Linuxサーバー ルート養成講座」 (秀和システム) という本がわかりやすく、良いと思います。

プライマリ

Bind 9 のchroot化について

https://wiki.debian.org/Bind9#Bind_Chroot

DebianでBind 9 を稼働させるときにchroot化したいと思います。そこで、以下のサイトの手順を参考に設定しました。

http://www.mk-mode.com/octopress/2013/10/18/debian-7-dns-chroot/

Debian 7 と Debian 8 でインストールテストしました。

  • Bind 9 をインストールし、停止する

aptitude -y install bind9 bind9utils dnsutils

  • chrootディレクトリは /var/bind9/chroot

起動オプションの編集  /etc/default/bind9

#OPTIONS="-u bind -4"
OPTIONS="-u bind -4 -t /var/bind9/chroot"

chrootディレクトリ作成

mkdir -p /var/bind9/chroot/{etc,dev,var/cache/bind,var/run/named}

chroot化で必用なスペシャルファイルの作成、パーミッション

mknod /var/bind9/chroot/dev/null c 1 3

mknod /var/bind9/chroot/dev/random c 1 8

chmod 660 /var/bind9/chroot/dev/{null,random}

元のBindディレクトリをchrootへ移動

mv /etc/bind /var/bind9/chroot/etc

シンボリックリンクの作成

ln -s /var/bind9/chroot/etc/bind /etc/bind

オーナー、グループ、パーミッション変更

chown -R bind:bind /etc/bind/*

chmod 775 /var/bind9/chroot/var/{cache/bind,run/named}

chgrp bind /var/bind9/chroot/var/{cache/bind,run/named}

起動スクリプトの編集  /etc/init.d/bind9  PIDファイルのパス変更

PIDFILE=/var/bind9/chroot/var/run/named/named.pid

rsyslogにログ出力するように変更

echo "\$AddUnixListenSocket /var/bind9/chroot/dev/log" > /etc/rsyslog.d/bind-chroot.conf

syslogdの再起動

/etc/init.d/rsyslog restart

Bind9の再起動

/etc/init.d/bind9 start

 

セカンダリ

マスターサーバと同じようにBind9をインストールし、ゾーンファイルのディレクトリを作成します。

mkdir -p /etc/bind/zones/slave

chown -R bind:bind /etc/bind/zones

/etc/bind/named.conf.local ファイルの編集

zone "example.jp" {

type slave;

file "/etc/bind/zones/slave/example.jp.zone#;

masters {xxx.xxx.xxx.xxx;};

};

必用なドメイン名とそのゾーンファイルを定義して、Bind 再起動。

スレーブ・サーバの動作確認

dig @スレーブサーバIPアドレス a www.example.jp +short

 

 

SPFレコードの設定
  • Bind9などのDNSシステムでの一般的な設定方法として

使用するドメイン名.com   TXT 3600 v=spf1 +ip4:(メールサーバーと設定したIPドレス) ~all

xxxxxx.com   TXT 3600 v=spf1 +ip4:202.1xx.xxx.xxx ~all

上記設定でお名前ドットコムサイトでのDNS設定でSPF設定はOKでした。2021年2月の時点で。

一つのドメインに複数のSPFレコードを記述する際には、一行で記述します。

例: example.jp. IN TXT "v=spf1 +ip4:192.168.10.0/24 +ip4:10.1.2.0/24 ~all"

メールサーバーを持っているドメインの場合

例: example.jp.    IN      TXT     "v=spf1 include:_spf.google.com +ip4:202.212.xxx.xxx/29 mx ~all"

 

備考

DNS機能が正常かどうか確認する方法は、いくつかありますが、Webサイトでの確認する方法として、http://dnscheck.iis.se/ というサイトを使っております。 シンプルです。 そのほかにもたくさんサイトがありますが、信頼できそうなサイトを利用しましょう。

 

FAQ
  • ゾーンファイルの設定確認方法(Debian11)

/usr/sbin/named-checkzone example.com /etc/bind/example.com.zonefile

  • named.confの設定確認方法(Debian11)

/usr/sbin/named-checkconf /etc/bind/named.conf

 

 

タグ: 

オープンソースソフトウェア: 

その他

Debian運用での話題

Debianを運用していて必要となるさまざま話題について。

HDDのマウント設定

HDDをフォーマットして、mountコマンドで動作確認して、

mount /dev/sdb1 /home/s1

問題なければシステム起動時に自動マウントさせるためには、/etc/fstab ファイルに設定します。 たとえば、

/dev/sdb1 /home/s1      ext3    defaults        0       0

次のWebサイトの情報を参考にしました ここから

HDDの消去コマンド

10MBのブロックサイズでゼロを書き込む # dd if=/dev/zero of=/dev/hda bs=10MB

もしくは 乱数を2回書き込んだ後,ゼロフィルを実行 # shred -n 2 -z /dev/hda

HDDの修復コマンド(fsck)

HDDを修復する方法

起動中のHDDはfsckコマンドで修復できません。アンマウントして修復できるような環境で実行します。

ディスクの確認 # fdisk -l

HDDのアンマウント # umont /dev/xxxx   (デバイス名)

修復 # fsck -v -y /dev/xxxx  (デバイス名)

 

VNCサーバー

vnc4serverをインストールする場合

1)apt-get install vnc4server  もしくは aptitude -y install vnc4server

2) /etc/vnc.conf を新規作成し、以下の設定を追加

$geometry = "2048x1024";

$depth = "24";

3) suになるか sudoコマンドでVNCパスワード作成

vncpasswd

4) .vnc/xstartup に Gnomeセッションの起動スクリプト追加

exec gnome-session &

5) VNCサーバーの起動  vncserver :1    停止 vncserver -kill :1

 

Debian 8 (jessie)の場合、GNOMEではVNCサーバーに接続エラーが起きるので、GUI環境をGNOME2ベースのMateを使用します。

詳細は ここを参照

 

XRDPをインストールする場合

Debian 9 Stretch GNOMEデスクトップ もしくは Mateデスクトップ

最初に xserver-xorg-legacy を削除するとGNOMEでもXRDPが実行できました。バグのようですが、詳細は、https://unix.stackexchange.com/questions/389005/using-xrdp-without-local... にて。

# apt-get purge xserver-xorg-legacy

# apt -y install xrdp

# systemctl start xrdp

# systemctl enable xrdp

Windowsのリモートデスクトップ接続で、セッションに [Xvnc] を選択し、ユーザー名とパスワードを入力し接続します。

Debian 10 Buster の場合、GNOME環境をtaskselで選択インストールすると、サスペンドやスリープなどのPC環境をサポートする機能も含めてインストールされ、サーバーとして使うには、20分ぐらいで電源が落ちたり、不要な機能がありましたので、taskselコマンドで、デスクトップ環境、GNOME環境をアンインストールして、再起動後に、taskselコマンドで、デスクトップ環境とMateだけを選択してインストールしてから再起動します。

その後、xrdpをインストールしてもつながらない場合は、 ここを参考に https://www.hiroom2.com/2017/06/19/debian-9-xrdp%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/#sec-1

「could not acquire name on session bus」のエラーが表示される場合は、/etc/xrdp/startwm.sh を編集します。

exec mate-session (これを挿入)

test -x /etc/X11/Xsession && exec /etc/X11/Xsession (これは元から)
exec /bin/sh /etc/X11/Xsession (これは元から)

起動時に「Could not acquire name on session bus」が表示される場合は、mate-sessionの起動前に

unset DBUS_SESSION_BUS_ADDRESS

を挿入してXRDPを再起動して改善しました。 詳細は http://verifiedby.me/adiary/0126

 

Debian 10 での設定サンプル /etc/xrdp/startwm.sh

最後の行あたりは、以下のように設定します。

unset DBUS_SESSION_BUS_ADDRESS
exec mate-session

test -x /etc/X11/Xsession && exec /etc/X11/Xsession
exec /bin/sh /etc/X11/Xsession

 

ネットワークコマンド

digコマンドやnslookupコマンドが使えない場合は、追加インストールします。

  • apt-get install net-tools
  • apt-get install dnsutils

 

ファイル転送

rcp コマンド

リモートホストからローカルホストへコピー

リモートホストの「example.com」にユーザー名「user1」でログインし、「file1」というファイルをローカルホストへ「file2」という名前でコピー

リモート間でファイルのコピー

オプション

  • -p コピー元の更新日時、アクセス権の情報もコピーする
  • -r コピー元のディレクトリ内のファイルをすべてコピーする

scp コマンド

暗号化してファイル転送

scp [オプション] コピー元 コピー先

主なオプションは 

  • -C 通信を圧縮する
  • -i 秘密鍵ファイル RSAまたはDSA認証の秘密鍵ファイルを指定する
  • -P ポート番号 ポート番号を指定する
  • -p オリジナルファイルの更新時間とモードを維持する
  • -r ディレクトリ内を再帰的にコピーする
  • -v プログレス情報を表示する
  • -1 SSH1を使用する
  • -2 SSH2を使用する
  • -4 IPv4を使用する
  • -6 IPv6を使用する

リモートホストからローカルにファイルをコピー、ひとつのファイル「/home/user/file1」をコピー

  • scp user@192.168.10.1:/home/user/file1 ~/tmp

ローカルからリモートホストにファイルをコピー

scp コピー元ファイル ユーザ名@リモート・ホスト名:/リモート先のPATH

  • scp ~/tmp/file1 user@192.168.10.1:/home/user/tmp/

リモートホストから別のリモートホストにファイルをコピー

scp user1@192.168.10.1:/home/user/tmp/file1 user2@192.168.10.2:/home/user/tmp/

 

 

パーティションの変更

HDDのDiskからDiskへのコピーなどでパーティションサイズを拡大させたい、結合させたいときに、Gpartedプログラムを使います。

Diskに未割当の領域があり、それを、既存のパーティションに結合させる手順

  1. 作業は、LiveLinuxか別のLinuxにHDDを接続して、ブートOSではないHDD状態で作業します。
  2. Gpartedを起動して、該当するHDDを選択
  3. Extendedの拡張領域を拡大、全域(できれば若干余裕領域を残す)にすることで未割当領域を拡張領域に含める
  4. スワップ領域を最後(未割当の後)に移動させる
  5. Extendedの拡張領域をスワップサイズに縮小、スワップの後の空き領域がゼロ(0)にする
  6. 既存パーティションを選択して、リサイズする、拡大させt、前方と後方がともにゼロ(0)にする
  7. これで既存パーティションが拡大

パーティション変更を実行(保留を実行)させると、Linuxブートなどのワーニングが表示されますが、とりあえず実行します。

詳細は ここ を参考にしました 

 

Debian パッケージのインストールツール

tasksel コマンド  GUI環境や初期デスクトップ環境をインストール・アンインストールするのに便利です。

 

 

 

PINGでサーバーの監視スクリプト

参考にしたサイト: https://qiita.com/nkojima/items/e9a851e40ef8e2af9993

#!/bin/bash

IP_LIST=(172.17.12.143 172.17.11.130 172.17.15.81 172.17.15.82)
MAILTO='送信先のメールアドレス'
LOG_FILE=./ping.log

for ip in ${IP_LIST[@]}
do
  ping_result=$(ping -w 5 $ip | grep '100% packet loss')
  date_result=$(date)

  if [[ -n $ping_result ]]; then
    echo "[SEVERE] server inactive: $ip $date_result" >> $LOG_FILE
    echo $ip | mail -s "[ALERT] server down!! $date_result" $MAILTO
  else
    echo "[INFO] server active: $ip $date_result" >> $LOG_FILE
  fi
done

 

 

オープンソースソフトウェア: