IT pass HikiWiki - [Memo2015][ITPASS]サーバ交換作業 (Mail) Diff

  • Added parts are displayed like this.
  • Deleted parts are displayed like this.

[((<ITPASSサーバ構築・運用ドキュメント>)) へ戻る]

{{toc_here}}


= 当日作業

== 概要

== 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/*

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

== 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 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(8) で設定を確認した.

* ((<[ITPASS2014]サービスの開始・停止>)) を参考に,
  以下のサービスが永続的に立ち上がるように設定した.
  * qmail
  * tcpserver

systemd に移行したため以下のコマンドを用いた.

  ika# systemctl enable qmail
  ika# systemctl enable tcpserver

* メーリングリスト毎の 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 (再起動後の動作確認)

=== サービスの起動確認

systemctl コマンドで以下の確認作業を行った.

* ika
  * http (https), bind, qmail, tcpserver (smtp),
#inetd (pop3)
    が起動していることを確認.

* tako
  * qmail, tcpserver (smtp) が起動していることを確認.
  * http (https), bind, inetd (pop3) が起動して((*いない*))ことを確認.

=== サービスの動作確認

==== ika

* ((*gate*)):による登録や変更は可能かどうか確認した.

* ((*fail2ban*)): は正しく動作しているか確認した.
* ssh のテスト
   * joho08 から存在しないユーザー名でログイン失敗し, ログで ban されているか確認した.
    # lv /var/log/fail2ban.log
    2015-11-19 17:24:58,515 fail2ban.actions[742]: WARNING [ssh] Ban 133.30.109.78

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


* 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 されているか確認した.

/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 での作業
    * popauth コマンドを行ってパスワードを作っておく作業をした.
#      *うまくいかないので, /usr/local/qpopper/pop.auth のバックアップを作り,
#        popauth -init
#      を実行した([memo]2010を参照). サーバ構築完了後, POP利用者に対して設定してもらうようにメールを投げる.
    * ~/.qmail の転送先メールアドレスをコメントアウトし, 以下を書き足した. 個人のアカウントでテストする場合はテスト後設定を元に戻しておくこと
    
     ./Mailbox
    
  * メールを受け取る ika 以外の計算機での作業
    *今回は村上の PC で行った.
    * メーラーの設定は 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 にメールを送信した.
    * itpass-ml の送信がうまく行かず, failue notice のメールが送信される.
      * 原因は分からないが, 以下のように ~itpass/ml/ml-ctrl/editor を修正することで送信が可能になった
    
      * 変更前
    
       |/usr/local/ezmlm/bin/ezmlm-reject -T '/home/itpass/ml/ml-ctrl'
       #|/usr/local/ezmlm/bin/ezmlm-send '/home/itpass/ml/ml-ctrl'
       |/usr/local/lib/prefix.pl itpass '/home/itpass/ml/ml-ctrl/number' |/usr/local/ezmlm/bin/ezmlm-send '/home/itpass/ml/ml-ctrl'
       |/usr/local/ezmlm/bin/ezmlm-warn '/home/itpass/ml/ml-ctrl' || exit 0

      * 変更後
    
       |/usr/local/ezmlm/bin/ezmlm-reject -T '/home/itpass/ml/ml-ctrl'
       |/usr/local/ezmlm/bin/ezmlm-send '/home/itpass/ml/ml-ctrl'
       #|/usr/local/lib/prefix.pl itpass '/home/itpass/ml/ml-ctrl/number' |/usr/local/ezmlm/bin/ezmlm-send '/home/itpass/ml/ml-ctrl'
       |/usr/local/ezmlm/bin/ezmlm-warn '/home/itpass/ml/ml-ctrl' || exit 0


==== 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 を実行して上と同様に書き替えられていることを確認した.