IT pass HikiWiki - [ITPASS2018]サーバ交換作業 (Mail) Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
= 当日作業
== 概要
== phase 0 (準備)
特に作業を行わない.
== phase 1 (入替え開始)
特に作業を行わない.
== phase 2 (tako の root ログイン許可)
特に作業を行わない.
== phase 3 (ika から tako へ各種データをコピー)
特に作業を行わない.
== phase 4 (root ログイン禁止)
特に作業を行わない.
== phase 5 (tako, ika の交換: 設定ファイルの変更)
=== ホスト名の変更
各種設定ファイルに存在する, ika と tako のホスト名と IP アドレスを入れ替える.
編集の際はバックアップを取っておき, バックアップファイルは消さずに残しておく.
具体的には, 以下の通り.
ika# cp /var/qmail/control/defaulthost /var/qmail/control/defaulthost.bk
ika# vim /var/qmail/control/defaulthost
ika# cp /var/qmail/control/me /var/qmail/control/me.bk
ika# vim /var/qmail/control/me
上記の場所以外にも古い名前が残っていないか
# grep -r ika /var/qmail/*
で検索して確認する.
システムログ, /var/qmail/queue/mess 以下は変更しなくても良い. ( /var/qmail/control/rcphosts と /var/qmail/control/locals が grep に見つかるが, phase 7 で作業するので, 変更しなくてもよい.)
同様に tako についても,
tako# cd /var/qmail/control/
tako# cp defaulthost defaulthost.bk
tako# vim defaulthost
tako# cp me me.bk
tako# vim me
とし, tako の表記を ika に変え,
# grep -r tako /var/qmail/*
で検索して同様に確認する.
(/var/cashe 以下に tako の表記があったが変える必要が無さそうであれば変更しなくてもよい.)
== phase 6 (tako, ika の交換, 設定ファイルの変更)
特に作業を行わない.
== phase 7 (サービスの設定変更)
* 鍵が入れ替わっているので ssh 出来ないが, エラーメッセージに出てきたコマンドを打つと出来るようになる.
=== tako の qmail の設定変更 (担当: 旧 Mail 班)
/var/qmail/control 以下の locals, rcpthosts を以下のように変更する.
変更前
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
epa.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
変更後
localhost
具体的には,
tako# cd /var/qmail/control/
tako# cp rcpthosts rcpthosts.bk
tako# vim rcpthosts
tako# cp locals locals.bk
tako# vim locals
ここで,
tako# cd /var/qmail/control/
^^^^
この部分が ika となっているが, ホストは tako である.
=== ika の Mail 関連の設定変更 (担当: 新 Mail 班)
* qmail の設定変更
同様に, /var/qmail/control 以下の locals, rcpthosts を以下のように変更する.
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
epa.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
具体的には,
ika# cd /var/qmail/control/
ika# cp rcpthosts rcpthosts.bk
ika# vim rcpthosts
ika# cp locals locals.bk
ika# vim locals
ここで,
ika# cd /var/qmail/control/
^^^
この部分が tako となっているが, ホストは ika である.
また, /var/qmail/control 以下の defaulthost, me が以下のように変更されていることを確認する.
ika-itpass.scitec.kobe-u.ac.jp
qmail-showctl で設定を確認する.
ika# qmail-showctl
* ((<[TEBIKI]サービスの開始・停止>)) を参考に, 以下のサービスが永続的に立ち上がるように設定する.
* qmail
* dovecot
具体的には以下の通り.
ika# cd /etc/init.d
ika# insserv -d qmail
ika# chmod 755 qmail
ika# systemctl enable dovecot
* メーリングリスト毎の bouncer 設定
メーリングリストのエラーメール転送設定が行われているかチェックする.
この作業が必要なメーリングリストは,
itpass-ml_at_itpass.scitec.kobe-u.ac.jp
である. ただし, "_at_" はアットマークである.
/home/itpass/ml/ml-ctrl/bouncer が以下のように変更されていることを確認する.
変更されていない場合は以下のように編集する.
&itpadmin_at_itpass.scitec.kobe-u.ac.jp
|/usr/local/ezmlm/bin/ezmlm-weed
|/usr/local/ezmlm/bin/ezmlm-return -D '/home/itpass/ml/ml-ctrl’
== phase 8 (OS 再起動)
特に作業を行わない.
== phase 9 (再起動後の動作確認)
=== サービスの起動確認
ps aux で以下の確認作業を行う.
* ika
* dovecot
が起動していることを確認する.
* tako
* qmail, tcpserver (smtp) が起動していることを確認する.
* inetd (pop3) が起動して((*いない*))かを確認した. 起動していたため以下を実行する.
#systemctl disable inetd
#systemctl stop inetd
=== サービスの動作確認
==== ika
* ((*fail2ban*)): は正しく動作しているか確認する.
* ssh のテスト
* johoXX から存在しないユーザー名でログイン失敗し, ログで ban されているか確認する.
# lv /var/log/fail2ban.log
2018-12-04 16:46:26,092 fail2ban.actions [834]: NOTICE [ssh] Ban XXX.XX.XXX.XX
* error のテスト
* /etc/fail2ban/jail.conf の findtime, maxretry, bantime の値を適宜変えて, fail2ban を再起動し, ブラウザを立ち上げ, ika-itpass.scitec.kobe-u.ac.jp/ 以下 の others にパーミッションがないところに findtime 以内に maxretry 回以上アクセスする. ログで ban されているか確認する.
# lv /var/log/fail2ban.log
2018-12-04 16:52:51,695 fail2ban.actions [1974]: NOTICE [apache-ddos] Ban XXX.XX.XXX.XX
* access のテスト
/etc/fail2ban/jail.conf の [apache-ddos] を以下のように一時変更する.
[apache-ddos]
enabled = true
port = http,https
filter = apache-ddos
findtime= 10
logpath = /var/log/httpd-*access.log
maxretry = 3
bantime = 60
fail2ban を再起動する.
# systemctl restart fail2ban
itpass.scitec.kobe-u.ac.jp 以下の実在するファイルに findtime 内に maxretry 回アクセスして /var/log/fail2ban.log を見て ban されているか確認する.
2018-12-04 16:58:35,807 fail2ban.actions [2205]: NOTICE [apache-ddos] Ban XXX.XX.XXX.XX
/etc/fail2ban/jail.conf の findtime と maxretry の値をもとに戻して再起動する.
# systemctl restart fail2ban
* ベーシック認証が ban されるかの確認
https://itpass.scitec.kobe-u.ac.jp/hiki-secret/hiki.cgi にアクセスすると
出てくるログイン画面で以下の操作を findtime 内に maxretry 回行う.
* 存在しないユーザでログインしようとする
* 存在するユーザで間違ったパスワードを入力する
上の 2 つの作業について ban されることを確認する.
* ((*pop*)): メールをとってこれるかを確認.
* ika での作業
* 自分のホームディレクトリで作業を行う.
* ~/.qmail の転送先メールアドレスをコメントアウトし, 以下を書き足した.
個人のアカウントでテストする場合はテスト後設定を元に戻しておくこと
./Mailbox
* メールを受け取る ika 以外の計算機での作業
* メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp とする.
* pop も smtp も暗号化されたパスワード認証を選択する.
* 接続は暗号化されていないという警告が表示される場合があるが, そのまま進める.
* ((*smtp*)): メールを出せるか, 受け取れるかを確認する.
* qmail-inject で外にメールが届くか
他のホスト上のアカウントへ送って, 届いていることを確認する.
$ echo to: 15534XXs_at_stu.kobe-u.ac.jp | /var/qmail/bin/qmail-inject
* 外からメールを送って届くか
個人のメーラーから hoge_at_itpass.scitec.kobe-u.ac.jp へメールを送りメールが届いていることを確認する.
* ((*mailing list*)): メールが配送されるかどうか確認する.
* itpass-ml_at_itpass.scitec.kobe-u.ac.jp にメールを送信する.
* gate の動作確認をするという連絡も同時に行う.
* ((*gate*)):による登録(承認, 廃止まで)や変更は可能かどうか確認する.
==== tako
* ((*smtp*)): submit は有効にするが, 受け取らない設定になっているかどうか確認.
* 以下のコマンドを実行し, メールが転送されないことを確認する.
$ echo to: hogehoge | /var/qmail/bin/qmail-inject
* cron ログが管理者に届くようになっているか
* /etc/crontab に書かれている mail コマンドを実行し, 届くことを確認する.
ただし _at_ は @ に読み替える.
# mail -s "`hostname -f` test" itpadmin_at_itpass.scitec.kobe-u.ac.jp
.
Cc:
== phase 10 (バックアップの確認)
特に作業を行わない.
== 追加事項
=== gate-toroku-systemのインストールと設定
* /usr/local/gate/sbin/gate-db-to-sudoers を Defaults で始まる 4 行が書かれていることを確認する.
# This is /etc/sudoers file, generated by gate-db-to-sudoers.
# If you are to edit this file, do not edit it directly.
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults mailfrom=root
* visudo を実行して上と同様に書き替えられていることを確認する.
# visudo
== 概要
== phase 0 (準備)
特に作業を行わない.
== phase 1 (入替え開始)
特に作業を行わない.
== phase 2 (tako の root ログイン許可)
特に作業を行わない.
== phase 3 (ika から tako へ各種データをコピー)
特に作業を行わない.
== phase 4 (root ログイン禁止)
特に作業を行わない.
== phase 5 (tako, ika の交換: 設定ファイルの変更)
=== ホスト名の変更
各種設定ファイルに存在する, ika と tako のホスト名と IP アドレスを入れ替える.
編集の際はバックアップを取っておき, バックアップファイルは消さずに残しておく.
具体的には, 以下の通り.
ika# cp /var/qmail/control/defaulthost /var/qmail/control/defaulthost.bk
ika# vim /var/qmail/control/defaulthost
ika# cp /var/qmail/control/me /var/qmail/control/me.bk
ika# vim /var/qmail/control/me
上記の場所以外にも古い名前が残っていないか
# grep -r ika /var/qmail/*
で検索して確認する.
システムログ, /var/qmail/queue/mess 以下は変更しなくても良い. ( /var/qmail/control/rcphosts と /var/qmail/control/locals が grep に見つかるが, phase 7 で作業するので, 変更しなくてもよい.)
同様に tako についても,
tako# cd /var/qmail/control/
tako# cp defaulthost defaulthost.bk
tako# vim defaulthost
tako# cp me me.bk
tako# vim me
とし, tako の表記を ika に変え,
# grep -r tako /var/qmail/*
で検索して同様に確認する.
(/var/cashe 以下に tako の表記があったが変える必要が無さそうであれば変更しなくてもよい.)
== phase 6 (tako, ika の交換, 設定ファイルの変更)
特に作業を行わない.
== phase 7 (サービスの設定変更)
* 鍵が入れ替わっているので ssh 出来ないが, エラーメッセージに出てきたコマンドを打つと出来るようになる.
=== tako の qmail の設定変更 (担当: 旧 Mail 班)
/var/qmail/control 以下の locals, rcpthosts を以下のように変更する.
変更前
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
epa.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
変更後
localhost
具体的には,
tako# cd /var/qmail/control/
tako# cp rcpthosts rcpthosts.bk
tako# vim rcpthosts
tako# cp locals locals.bk
tako# vim locals
ここで,
tako# cd /var/qmail/control/
^^^^
この部分が ika となっているが, ホストは tako である.
=== ika の Mail 関連の設定変更 (担当: 新 Mail 班)
* qmail の設定変更
同様に, /var/qmail/control 以下の locals, rcpthosts を以下のように変更する.
localhost
ika-itpass.scitec.kobe-u.ac.jp
itpass.scitec.kobe-u.ac.jp
epa.scitec.kobe-u.ac.jp
aoe.scitec.kobe-u.ac.jp
具体的には,
ika# cd /var/qmail/control/
ika# cp rcpthosts rcpthosts.bk
ika# vim rcpthosts
ika# cp locals locals.bk
ika# vim locals
ここで,
ika# cd /var/qmail/control/
^^^
この部分が tako となっているが, ホストは ika である.
また, /var/qmail/control 以下の defaulthost, me が以下のように変更されていることを確認する.
ika-itpass.scitec.kobe-u.ac.jp
qmail-showctl で設定を確認する.
ika# qmail-showctl
* ((<[TEBIKI]サービスの開始・停止>)) を参考に, 以下のサービスが永続的に立ち上がるように設定する.
* qmail
* dovecot
具体的には以下の通り.
ika# cd /etc/init.d
ika# insserv -d qmail
ika# chmod 755 qmail
ika# systemctl enable dovecot
* メーリングリスト毎の bouncer 設定
メーリングリストのエラーメール転送設定が行われているかチェックする.
この作業が必要なメーリングリストは,
itpass-ml_at_itpass.scitec.kobe-u.ac.jp
である. ただし, "_at_" はアットマークである.
/home/itpass/ml/ml-ctrl/bouncer が以下のように変更されていることを確認する.
変更されていない場合は以下のように編集する.
&itpadmin_at_itpass.scitec.kobe-u.ac.jp
|/usr/local/ezmlm/bin/ezmlm-weed
|/usr/local/ezmlm/bin/ezmlm-return -D '/home/itpass/ml/ml-ctrl’
== phase 8 (OS 再起動)
特に作業を行わない.
== phase 9 (再起動後の動作確認)
=== サービスの起動確認
ps aux で以下の確認作業を行う.
* ika
* dovecot
が起動していることを確認する.
* tako
* qmail, tcpserver (smtp) が起動していることを確認する.
* inetd (pop3) が起動して((*いない*))かを確認した. 起動していたため以下を実行する.
#systemctl disable inetd
#systemctl stop inetd
=== サービスの動作確認
==== ika
* ((*fail2ban*)): は正しく動作しているか確認する.
* ssh のテスト
* johoXX から存在しないユーザー名でログイン失敗し, ログで ban されているか確認する.
# lv /var/log/fail2ban.log
2018-12-04 16:46:26,092 fail2ban.actions [834]: NOTICE [ssh] Ban XXX.XX.XXX.XX
* error のテスト
* /etc/fail2ban/jail.conf の findtime, maxretry, bantime の値を適宜変えて, fail2ban を再起動し, ブラウザを立ち上げ, ika-itpass.scitec.kobe-u.ac.jp/ 以下 の others にパーミッションがないところに findtime 以内に maxretry 回以上アクセスする. ログで ban されているか確認する.
# lv /var/log/fail2ban.log
2018-12-04 16:52:51,695 fail2ban.actions [1974]: NOTICE [apache-ddos] Ban XXX.XX.XXX.XX
* access のテスト
/etc/fail2ban/jail.conf の [apache-ddos] を以下のように一時変更する.
[apache-ddos]
enabled = true
port = http,https
filter = apache-ddos
findtime= 10
logpath = /var/log/httpd-*access.log
maxretry = 3
bantime = 60
fail2ban を再起動する.
# systemctl restart fail2ban
itpass.scitec.kobe-u.ac.jp 以下の実在するファイルに findtime 内に maxretry 回アクセスして /var/log/fail2ban.log を見て ban されているか確認する.
2018-12-04 16:58:35,807 fail2ban.actions [2205]: NOTICE [apache-ddos] Ban XXX.XX.XXX.XX
/etc/fail2ban/jail.conf の findtime と maxretry の値をもとに戻して再起動する.
# systemctl restart fail2ban
* ベーシック認証が ban されるかの確認
https://itpass.scitec.kobe-u.ac.jp/hiki-secret/hiki.cgi にアクセスすると
出てくるログイン画面で以下の操作を findtime 内に maxretry 回行う.
* 存在しないユーザでログインしようとする
* 存在するユーザで間違ったパスワードを入力する
上の 2 つの作業について ban されることを確認する.
* ((*pop*)): メールをとってこれるかを確認.
* ika での作業
* 自分のホームディレクトリで作業を行う.
* ~/.qmail の転送先メールアドレスをコメントアウトし, 以下を書き足した.
個人のアカウントでテストする場合はテスト後設定を元に戻しておくこと
./Mailbox
* メールを受け取る ika 以外の計算機での作業
* メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp とする.
* pop も smtp も暗号化されたパスワード認証を選択する.
* 接続は暗号化されていないという警告が表示される場合があるが, そのまま進める.
* ((*smtp*)): メールを出せるか, 受け取れるかを確認する.
* qmail-inject で外にメールが届くか
他のホスト上のアカウントへ送って, 届いていることを確認する.
$ echo to: 15534XXs_at_stu.kobe-u.ac.jp | /var/qmail/bin/qmail-inject
* 外からメールを送って届くか
個人のメーラーから hoge_at_itpass.scitec.kobe-u.ac.jp へメールを送りメールが届いていることを確認する.
* ((*mailing list*)): メールが配送されるかどうか確認する.
* itpass-ml_at_itpass.scitec.kobe-u.ac.jp にメールを送信する.
* gate の動作確認をするという連絡も同時に行う.
* ((*gate*)):による登録(承認, 廃止まで)や変更は可能かどうか確認する.
==== tako
* ((*smtp*)): submit は有効にするが, 受け取らない設定になっているかどうか確認.
* 以下のコマンドを実行し, メールが転送されないことを確認する.
$ echo to: hogehoge | /var/qmail/bin/qmail-inject
* cron ログが管理者に届くようになっているか
* /etc/crontab に書かれている mail コマンドを実行し, 届くことを確認する.
ただし _at_ は @ に読み替える.
# mail -s "`hostname -f` test" itpadmin_at_itpass.scitec.kobe-u.ac.jp
.
Cc:
== phase 10 (バックアップの確認)
特に作業を行わない.
== 追加事項
=== gate-toroku-systemのインストールと設定
* /usr/local/gate/sbin/gate-db-to-sudoers を Defaults で始まる 4 行が書かれていることを確認する.
# This is /etc/sudoers file, generated by gate-db-to-sudoers.
# If you are to edit this file, do not edit it directly.
Defaults env_reset
Defaults mail_badpass
Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults mailfrom=root
* visudo を実行して上と同様に書き替えられていることを確認する.
# visudo