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

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

{{toc_here}}

[((<[ITPASS2022]2022年度サーバ構築マニュアル>)) へ戻る]

= 作業内容

== phase 0 (準備)

* サーバ交換中は Hiki 上のマニュアルを参照できなくなるため,
  作業者は予めサーバ交換マニュアルを手元に保存しておく.
  * サーバ交換マニュアルから引用されているページについても忘れないこと.
  * Hiki ページの印刷は推奨されない. 長いコマンドなどが切れてしまうため.


== phase 1
#入替え開始

特に作業を行わない.


== phase 2
#tako の root ログイン許可

特に作業を行わない.


== phase 3
#ika から tako へ各種データをコピー

特に作業を行わない.


== phase 4
#root ログイン禁止

特に作業を行わない.


== phase 5
#tako, ika の交換: 設定ファイルの変更

=== ホスト名と IP アドレスの変更

各種設定ファイルに存在する,
ika と tako のホスト名と IP アドレスを入れ替える.
編集の際は元のファイルを hoge_old としてバックアップを取る.

* 担当
  * /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
#サービスの設定変更

((*ここからホスト名が入れ替わっているので注意すること*)).

#* 鍵が入れ替わっているので ssh 出来ないが, エラーメッセージに出てきたコマンドを打つと出来るようになる.

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


#具体的には,
#
#  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
  * /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


#具体的には,
#
#  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
  * /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
#OS 再起動

特に作業を行わない.


== 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
#バックアップの確認

特に作業を行わない.