[Memo2014][ITPASS]サーバ交換作業 (Mail)

当日作業

概要

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

上記の場所以外にも古い名前が残っていないか

ika# grep ika /var/qmail
ika# grep ika /var/mail

で検索して確認した. システムログは変更しなくても良い. (/var/qmail/queue/mess. で見つかったが, 変える必要が無さそうなので変えなかった. /var/qmail/control/rcphosts と /var/qmail/control/rocals が 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 に変え,

tako# grep tako /var/qmail
tako# grep tako /var/mail

で検索して同様に確認した.

phase 6 (tako, ika の交換, 設定ファイルの変更)

特に作業を行っていない.

phase 7 (サービスの設定変更)

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 rcphosts rcphosts-bk
tako# vim rcphosts
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 rcphosts rcphosts-bk
ika# vim rcphosts
ika# cp locals locals-bk
ika# vim locals

ika# cd /var/qmail/control/
^^^
この部分が tako となっているが, ika である.

また, /var/qmail/control 以下の defaultshost, me が以下のように変更されているかチェックした. されていない場合は以下のように編集する.

ika-itpass.scitec.kobe-u.ac.jp

qmail-showctl(8) で設定を確認した.

具体的には, 以下のコマンドを用いた.

ika# cd /etc/init.d
ika# insserv -d qmail
ika# chmod 755 qmail
ika# insserv -d tcpserver
ika# chmod 755 tcpserver
  • メーリングリスト毎の bouncer 設定

    メーリングリストのエラーメール転送設定が行われているかチェックした. この作業が必要なメーリングリストは,

    itpass-ml_at_itpass.scitec.kobe-u.ac.jp

    である. ただし, "_at_" はアットマークである. /home/itpass/ml/ml-crtl/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
    • http (https), bind, qmail, tcpserver (smtp), inetd (pop3) が 起動していることを確認.
  • tako
    • qmail, tcpserver (smtp) が起動していることを確認.
    • http (https), bind, inetd (pop3) が起動していないことを確認.

サービスの動作確認

ika
  • gate:による登録や変更は可能かどうか確認した.
  • fail2ban: は正しく動作しているか確認した.
  • ssh のテスト
    • joho10 から存在しないユーザー名でログイン失敗し, ログで ban されているか確認した. # lv /var/log/fail2ban.log 2014-11-26 16:18:56,252 fail2ban.actions: WARNING [ssh] Ban 133.30.109.80
  • error のテスト

    • /etc/fail2ban/jail.conf の findtime, maxretry, bantime の値を適宜変えて, fail2ban を再起動し, ブラウザを立ち上げ, tako-itpass.scitec.kobe-u.ac.jp/ 以下 の others にパーミッションがないところ, (例えば ITPASS 実習の ppt/odp ファイル) や itpass ドメイン以下の実在しない URL を入力して, findtime 以内に maxretry 回以上アクセスした. ログで ban されているか確認した.
    # lv /var/log/fail2ban.log
    2014-11-26 17:16:47,965 fail2ban.actions: WARNING [apache-nohome] Ban133.30.109.77

/etc/fail2ban/jail.confに以下の内容を追加した.

[apache-nohome]
enabled  = true
port     = http,https
filter   = apache-nohome
findtime= 10
logpath  = /var/log/httpd-*error.log
maxretry = 3
bantime  = 60
  • access のテスト

/etc/fail2ban/filter.d/apache-auth.conf を /etc/fail2ban/filter.d/apache-ddos.conf と /etc/fail2ban/filter.d/apache-auth.conf に分割した.

cp /etc/fail2ban/filter.d/apache-auth.conf /etc/fail2ban/filter.d/apache-ddos.conf

/etc/fail2ban/filter.d/apache-ddos.conf のfailregex を以下のように書き換えた.

failregex =^<HOST> -.*GET.*

/etc/fail2ban/filter.d/apache-auth.conf の failregex から

^<HOST> -.*GET.*

を削除した.

/etc/fail2ban/jail.conf の [apache] より下に以下を追加した.

[apache-ddos]
enabled  = true
port     = http,https
filter   = apache-ddos
findtime= 10
logpath  = /var/log/httpd-*access.log
maxretry = 3
bantime  = 60

fail2ban を再起動した.

# /etc/init.d/fail2ban start

itpass.scitec.kobe-u.ac.jp 以下のファイルに findtime 内に maxretry 回ア クセスして /var/log/fail2ban.log を見て ban されているか確認した.

/etc/fail2ban/jail.conf の findtime と maxretry の値をもとに戻して再起動した.

# /etc/init.d/fail2ban start
  • ベーシック認証が ban されるかの確認

https://itpass.scitec.kobe-u.ac.jp/hiki-secret/hiki.cgi にアクセスすると 出てくるログイン画面で以下の操作を findtime 内に maxretry 回行った

  • 存在しないユーザでログインしようとする
  • 存在するユーザで間違ったパスワードを入力する

上の 2 つの作業について ban されることを確認した.

  • pop: メールをとってこれるかを確認した.
    • ika での作業
      • popauth コマンドを行ってパスワードを作っておく作業をした.

        • うまくいかないので, /usr/local/qpopper/pop.auth のバックアップを作り,

          popauth -init

        を実行した([memo]2010を参照). サーバ構築完了後, POP利用者に対して設定してもらうようにメールを投げる.

    • メールを受け取る ika 以外の計算機での作業
      • 今回はjoho07で行った.
      • メーラーの設定は pop サーバ, smtp サーバはどちらも itpass.scitec.kobe-u.ac.jp にした.
      • pop も smtp も暗号化されたパスワード認証を選択した.
  • smtp: メールを出せるか, 受け取れるかを確認した.
  • qmail-inject で外にメールが届くか

    他のホスト上のアカウントへ送って, 届いていることを確認した.

    $ echo to: mmiyuki_at_gfd-dennou.org | /var/qmail/bin/qmail-inject
  • 外からメールを送って届くか

    個人のメーラーから mmiyuki_at_itpass.scitec.kobe-u.ac.jp へメールを送りメールが届いていることを確認した.

  • mailing list: メールが配送されるかどうか確認した.

itpass-ml_at_itpass.scitec.kobe-u.ac.jp にメールを送信した.

メールが送信されていることを確認した.

tako
  • smtp: submit は有効にするが, 受け取らない設定になっているかどうか確認した.
    • 以下のコマンドを実行し, メールが転送されないことを確認した.

      $ echo to: mmiyuki | /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:/
 Defaults    mailfrom=root
  • visudo を実行して上と同様に書き替える.
  • gate の設定の際に作ったゲストユーザー(hogehoge, hoge2)のアカウントを削除する.
# sudo su hogehoge
# gate-user-withdraw hogehoge
# sudo su hoge2
# gate-user-withdraw hoge2
Last modified:2014/11/27 21:28:05
Keyword(s):
References:[[ITPASS2014]2014年度サーバ構築ログ]