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

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

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

{{toc_here}}


== phase 0

* サーバ交換中は Hiki 上のマニュアルを参照できなくなる
  * 作業者は予めサーバ交換マニュアルを手元に保存した.

* パスワード接続を可能にする
まず作業者全員が ssh 接続する際に公開鍵認証を使用しているわけではなかったので, 公開鍵を使わなくても旧 tako にログインできるように /etc/ssh/sshd_config 中
PasswordAuthentication no

を一時的に

PasswordAuthentication yes
にした.

== phase 1 (入替え開始)

=== ika, tako のログインユーザの削除, プロセスの削除, サービスの停止

((<[ITPASS2012]サーバ再起動手順>)) を参考に, tako のログインユーザの削除, プロセスの削除, サービスの停止を行った.
機器のアンマウントや再起動までは行わなかった.

== ログインユーザの確認

以下のコマンドでマシンにログインしているユーザ一覧が表示される.

  # w

構築に関係するアカウント以外はログアウトしていることを確認した.

== プロセスの確認

以下のコマンドでプロセスを確認した.

  # ps aux

一般ユーザのプロセスがある場合は

  # kill <プロセスID>

とする. 今回はなかったので, 先へ進んだ.


== サービスの停止

((<[ITPASS2012]サービスの開始・停止>)) を参考に, 以下のサービスを停止した.

* apache2
* bind
* openbsd-inetd
* qmail
* tcpserver

具体的に打ったコマンドは, 以下の通りである:

# /etc/init.d/apache2 stop
# /etc/init.d/bind stop
# /etc/init.d/openbsd-inetd stop
# /etc/init.d/qmail stop
# /etc/init.d/tcpserver stop

== 外部機器のアンマウント

外部機器をマウントしている場合はアンマウントする.

  # umount (機器のパス)

tako ではアンマウントや再起動まではしなくて良いので行わなかった.

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

=== tako の root ログイン許可

tako において一時的に root ログインを許可した.
方法は((<[ITPASS2012]root ログインの許可・禁止>))を参考にした.

=== root ログインの許可

((*root ログインの許可はセキュリティ上好ましくない.
必要な作業が終わったら root ログインを禁止する状態に戻すこと.*))

最近の OpenSSH では, デフォルトでは root のログインを許可しないため, 設定を変更した.
/etc/ssh/sshd_config で,

PermitRootLogin no

という部分を

PermitRootLogin yes

に変更した.
さらに, 任意のコマンドを実行出来るように,

PermitRootLogin forced-commands-only

という部分があればコメントアウトした. 2014 年度はなかったので行わなかった.


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

=== ika から tako へ各種設定ファイルをコピー

* ika から tako へ cron の設定ファイルをコピー

ika# scp -p -r /var/spool/cron/crontabs root@tako-itpass:/var/spool/cron/

/var/spool/cron/ 以下のパーミッションと所有者, グループがika と同じになっているか確認した.

* ika から tako へ popauth の設定ファイル /usr/local/qpopper/pop.auth をコピーした.

      ika# cd /usr/local/qpopper/
      ika# cp pop.auth pop.auth.20141126
      ika# scp -p /usr/local/qpopper/pop.auth root@tako-itpass:/usr/local/qpopper/

* tako の /etc/shadow を /etc/shadow.YYYYMMDD (YYYYMMDD は今日の日付) にバックアップした.

tako# cd /etc
tako# cp shadow shadow.20141126


* ssh, diff コマンドを組み合わせて ika と tako の /etc/shadow を比較した.

ika# ssh root@tako-itpass cat /etc/shadow | diff - /etc/shadow

* 上記の出力の結果
tako 側の /etc/shadow に書かれていない UID のうち 1000 ~ 29999 までのものがあるか確認した.
  * gateの作業時に作ったテストユーザー hogehoge と hoge2 が残っていた.
    * サーバ交換後に両アカウントを消す作業をするので, この時点ではそのままにした.

== phase 4 (root ログイン禁止)

=== tako の root ログイン禁止

* /home 領域の rsync が終わっていることを確認した.
* tako に対する root ログインが必要な作業が終わったので,
((<[ITPASS2012]root ログインの許可・禁止>))を参考に root ログインを禁止
した状態に戻した.

具体的には, /etc/ssh/sshd_config の

    PermitRootLogin yes

という部分を

    PermitRootLogin no

に変更したのち,

((*forced の部分を後で確認*))

    # /etc/init.d/ssh restart

として設定を反映した.

== phase 5 以降
特に作業はなかった.