[ITPASS2022]サーバ交換作業 (Mail)
作業内容
phase 0 (準備)
- サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
作業者は予めサーバ交換マニュアルを手元に保存しておく.
- サーバ交換マニュアルから引用されているページについても忘れないこと.
- Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.
phase 1
特に作業を行わない.
phase 2
特に作業を行わない.
phase 3
特に作業を行わない.
phase 4
特に作業を行わない.
phase 5
ホスト名と IP アドレスの変更
各種設定ファイルに存在する, ika と tako のホスト名と IP アドレスを入れ替える. 編集の際は元のファイルを hoge_old としてバックアップを取る.
- 担当
- /var: Mail 班
- システムログ内は変更しなくてよい
- /var: Mail 班
ika と tako のホスト名を交換 (新 ika には ika, 新 tako には takoと書く)
- /var/qmail/control/defaulthost
- /var/qmail/control/me
上記の場所以外にも古い名前が残っているかどうかを grep で確認する.
# grep tako (または ika) /var/qmail/* # grep tako (または ika) /var/qmail/*/* # grep tako (または ika) /var/qmail/*/*/* ...
など. ファイルの編集をするときはエディタの検索機能を活用すると早く作業できる. ただし一括置換はホスト名とは関係ない文字列も置換してしまう恐れがあるので使わないこと.
システムログ, /var/qmail/queue/mess 以下は変更しなくても良い. ( /var/qmail/control/rcphosts と /var/qmail/control/locals が grep に見つかるが, phase 7 で作業するので, 変更しなくてもよい.)
phase 6
特に作業を行わない.
phase 7
ここからホスト名が入れ替わっているので注意すること.
tako の qmail の設定変更 (担当: 旧 Mail 班)
以下のファイルを変更する. 設定ファイルのバックアップを取ること.
- /var/qmail/control/locals
- /var/qmail/control/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
ika の Mail 関連の設定変更 (担当: 新 Mail 班)
qmail の設定変更
以下のファイルを確認・変更する. 設定ファイルのバックアップを取ること.
- /var/qmail/control/locals
- /var/qmail/control/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
また,
- /var/qmail/control/defaulthost
- /var/qmail/control/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
特に作業を行わない.
phase 9 (再起動後の動作確認)
サービスの起動確認
ps aux で以下の確認作業を行う.
- ika
- qmail, dovecot が起動していることを確認する.
- tako
- qmail, tcpserver (smtp) が起動していることを確認する.
inetd (pop3) が起動していないことを確認する. 起動していたら以下を実行して停止する.
#systemctl disable inetd #systemctl stop inetd
サービスの動作確認
ika
- fail2ban: は正しく動作しているか確認する.
- ssh のテスト
johoXX から存在しないユーザー名でログイン失敗し, ログで ban されているか確認する.
# lv /var/log/fail2ban.log 2022-12-01 15:55:24,703 fail2ban.actions [705]: NOTICE [ssh] Ban 10.35.19.2XX
- error のテスト
/etc/fail2ban/jail.conf の findtime, maxretry, bantime の値を適宜変えて, fail2ban を再起動し, ブラウザを立ち上げ, ika-itpass.scitec.kobe-u.ac.jp/ 以下 の others にパーミッションがないところに findtime 以内に maxretry 回以上アクセスする. ログで ban されているか確認する.今回は findtime 60, maxretry6,bantime60 に設定する.
# lv /var/log/fail2ban.log 2022-12-01 16:10:10,308 fail2ban.actions [19354]: NOTICE [apache-ddos] Ban 10.35.19.2XX
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 されているか確認する.
2022-12-01 16:19:54,130 fail2ban.actions [21697]: NOTICE [apache-ddos] Ban 60.115.35.XXX
/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: メールをとってこれることを確認.
注意: 2022 年度の再構築作業では以下の pop の作業は, メーラー (Thunderbird) #の設定がうまくいかなかった, そして telnet を用いてもうまくいかなかったため, 出来ていない.
ika での作業
- 自分のホームディレクトリで作業を行う.
- ~/.qmail の転送先メールアドレスをコメントアウトし, 以下を書き足す. 個人のアカウントでテストする場合はテスト後設定を元に戻しておくこと
./Mailbox
- メールを受け取る ika 以外の計算機での作業
- メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp とする.
- pop も smtp も暗号化されたパスワード認証を選択する.
- 接続は暗号化されていないという警告が表示される場合があるが, そのまま進める.
- Thunderbird を使ったサーバへのアクセスが上手くいかなかったため, telnet を用いて 110 番ポートに接続し, メールが届いているかを確認した.
smtp: メールを出せること, 受け取れることを確認する.
- Thunderbird を使ったサーバへのアクセスが上手くいかなかったため, telnet を用いて 25 番ポートに接続し, メールを送れるかを確認した.
$ telnet itpass.scitec.kobe-u.ac.jp 25 Trying 133.30.109.XX... Connected to itpass.scitec.kobe-u.ac.jp. Escape character is '^]'. 220 ika-itpass.scitec.kobe-u.ac.jp ESMTP HELO chikuwa7 250 ika-itpass.scitec.kobe-u.ac.jp MAIL FROM:chikuwa7@itpass.scitec.kobe-u.ac.jp 250 ok RCPT TO:19XXXXXs@stu.kobe-u.ac.jp 250 ok DATA 354 go ahead Subject:This is a test mail. From:chikuwa7@itpass.scitec.kobe-u.ac.jp To:19XXXXXs@stu.kobe-u.ac.jp Hello World!! . 250 ok 1669886857 qp 29599 QUIT 221 ika-itpass.scitec.kobe-u.ac.jp Connection closed by foreign host.
- その後, 上で指定したメールアドレス (2022 年度は, 19XXXXXs@stu.kobe-u.ac.jp) にメールが実際に送信されていること確認した.
qmail-inject で外にメールが届くことを確認
他のホスト上のアカウントへ送って, 届いていることを確認する.
$ echo to: 19XXXXXs_at_stu.kobe-u.ac.jp | /var/qmail/bin/qmail-inject
外からメールを送って届くことを確認
個人のメーラーから hoge_at_itpass.scitec.kobe-u.ac.jp へメールを送りメールが届いていることを確認する. imap 対応メーラー(例. Thunderbird)を用いて imap サーバを ika に指定して, ika 上の自分のアカウントあてに届いたメールを確認する. メーラの設定は以下の通り.
注意: 2022 年度の作業では, メーラー (Thunderbird) の設定がうまくいかなかったため, この作業は出来ていない.
受信サーバ: IMAP サーバのホスト名: ika-itpass.scitec.kobe-u.ac.jp 受信サーバのポート番号: 143 受信サーバのSSL: 接続の保護なし 認証方式: 暗号化されたパスワード認証
- mailing list: メールが配送されることを確認する.
- なお, Thunderbird を使ったサーバへのアクセスが上手くいかない場合, telnet を用いて 143 番ポートに接続し, メールが届いていることを確認する.
- itpass-ml_at_itpass.scitec.kobe-u.ac.jp にメールを送信する.
- gate の動作確認をするという連絡も同時に行う.
- itpass-ml は現在, 外部サーバ (一部) のメールを受け付けない.
gate: の設定の確認
- /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 で, /etc/sudoers が上と同様に書き替えられていることを確認する.
# visudo
- gate:による登録(承認, 廃止まで)や変更は可能かどうか確認する.
tako
- pop: 無効になっているか
- smtp: submit は有効にするが, 受け取らない設定になっているかどうか確認する.
以下のコマンドを実行し, メールが転送されないことを確認する.
$ echo to: hogehoge | /var/qmail/bin/qmail-inject
- マニュアルには 「MAILER-DAEMON@ika-itpass.scitec.kobe-u.ac.jp から failure notice のメールが来ていることを確認する.」とあったが, コマンド実行時そのようなメールが来ることはなかった. メールが転送されないことは確認できたので, この件は無視して進むことにした.
cron ログが管理者に届くようになっているか
- /etc/crontab に書かれている mail コマンドを実行し, 届くことを確認した. (コマンド実行後, 入力待ちになるので, ピリオドを打つ.)
ただし _at_ は @ に読み替えた.
# mail -s "`hostname -f` test" itpadmin_at_itpass.scitec.kobe-u.ac.jp . Cc:
phase 10
特に作業を行わない.
Keyword(s):
References:[[ITPASS2022]サーバ交換作業] [[ITPASS2022]2022年度サーバ構築マニュアル]