IT pass HikiWiki - [Memo2020][ITPASS]サーバ交換事作業 1 週間後に行う作業 Diff
- Added parts are displayed like this.
- Deleted parts are displayed
like this.
{{toc_here}}
#[((<[ITPASS2020]2020年度サーバ構築マニュアル>)) へ戻る]
= 本サーバ(itpass)から予備サーバ(itassbk)へのバックアップ設定
== itpass 側での公開鍵作成
バックアップのための公開鍵を作成した.
itpass$ sudo -s -H
itpass# cd /root
itpass# ssh-keygen -t rsa -b 4096
(鍵の置き場はデフォルトの /root/.ssh/id_rsa とした)
(鍵の強度を上げるため, -b 4096 のオプションをつけた)
(パスフレーズは空にした)
== itpassbk 側の鍵の設置
itpass で作成した公開鍵 itpass:/root/.ssh/id_dsa.pub を
itpassbk:/root/.ssh/authorized_keys の最後尾に追記した.
itpassbk: $ sudo -s -H
itpassbk: # cd /root
itpassbk: # vi /root/.ssh/authorized_keys
更にパーミッションを変更する.
itpassbk: # chmod 600 /root/.ssh/authorized_keys
== authorized_keys の編集
しかし, このままでは itpass で root を取られると
itpassbk もそのまま乗っ取られることが考えられるため,
公開鍵認証の際にはバックアップ以外の動作をできないよう,
また itpass 以外からのアクセスを受け付けないよう制限をかける.
そのために, 上記で設置した authorized_keys 内の
itpassbk の公開鍵の行の冒頭に以下を加えた.
なお, 見やすさのため改行してあるが, 一行で書いた.
#またカンマの前後に空白は開けないこと.
#そして, 最後の "no-agent-forwarding" と公開鍵の冒頭に書いてある
#"ssh-dss" または "ssh-rsa" の間には空白を一文字入れること.
command="rsync --server -vvvlogDtpre.iLsfxC --delete . /home/",no-pty,
from="133.30.109.22",no-port-forwarding,no-X11-forwarding,no-agent-forwarding
#これをauthorized_keys 内の itpassbk の公開鍵の行の冒頭に加える.
#この記述は, tako-itpass への rsync 失敗問題(2018/03)に対処するため, 変更を加えたものである.
#2016 年度以前のマニュアルにある記述とは異なることに注意せよ.
#詳細は((<[ITPASS2017]rsync エラーへの対処>))を参照.
== itpassbk 側の通信許可
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin forced-commands-only
に変更したのち,
itpassbk# systemctl restart ssh
として設定を反映させた.
#これにより, ((<URL:#itpassbk 側の鍵の設置>))
#で指定したコマンドでのみログインを許可することとなる.
== itpass 側でのデータ転送用スクリプトの設置
#=== バックアップスクリプトを置くディレクトリの確認
#
#オリジナルの cron 用スクリプトは /etc/cron.local/daily に置く.
#((*もしこのディレクトリがなければ
#((<[ITPASS2016]システムログメールの設定>))
#が行われていない可能性があるので
#システムログメールの作業担当者に連絡すること*)).
=== バックアップ用スクリプトの用意
#((<rsync_itpassbk.sh|URL:../server/2018/system_backup/rsync_itpassbk>))
#をダウンロードする.
#これを /etc/cron.local/daily/230_rsync_itpassbk に設置する.
((<rsync_itpassbk.sh|URL:../server/2018/system_backup/rsync_itpassbk>))
を /etc/cron.local/daily/230_rsync_itpassbk に設置した.
# wget http://itpass.scitec.kobe-u.ac.jp/~itpass/server/2018/system_backup/rsync_itpassbk
# mv rsync_itpassbk /etc/cron.local/daily/230_rsync_itpassbk
/etc/cron.local/daily/230_rsync_itpassbk に実行権限を設定する.
# chmod 755 /etc/cron.local/daily/230_rsync_itpassbk
== hiki データバックアップスクリプトの設置
((<rsync_localbk_hiki.sh|URL:../server/2018/system_backup/rsync_localbk_hiki>))
を /etc/cron.local/weekly/210_rsync_localbk_hiki に設置する.
# wget http://itpass.scitec.kobe-u.ac.jp/~itpass/server/2018/system_backup/rsync_localbk_hiki
# mv rsync_localbk_hiki.sh /etc/cron.local/weekly/210_rsync_localbk_hiki
/etc/cron.local/weekly/210_rsync_localbk_hiki に実行権限を設定する.
# chmod 755 /etc/cron.local/weekly/210_rsync_localbk_hiki
== crontab の編集
/etc/crontab に以下の 2 行があることを確認した.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily
47 6 * * 7 root cd / && run-parts --report /etc/cron.local/weekly
== バックアップログファイルの作成
ログファイルのためのディレクトリとファイルを作成した.
# mkdir /var/log/rsync-log
# touch /var/log/rsync-log/itpassbk.log
# touch /var/log/rsync-log/localbk_hiki.log
== バックアップログファイルの logrotate の設定
データ転送の際の rsync のログを 1 週間毎に分割する.
/etc/logrotate.d/ 以下に rsync_itpassbk という設定ファイルを作成した.
# vi /etc/logrotate.d/rsync_itpassbk
内容は以下.
/var/log/rsync-log/itpassbk.log {
weekly
create 0644 root root
rotate 12
}
hiki データのバックアップの際の rsync のログは 1 ヶ月毎に分割する.
/etc/logrotate.d/ 以下に rsync_localbk_hiki という設定ファイルを作成した.
# vi /etc/logrotate.d/rsync_localbk_hiki
内容は以下.
/var/log/rsync-log/localbk_hiki.log {
monthly
create 0644 root root
rotate 12
}
== itpassbk のローカルバックアップの停止
210_rsync_localbk_hiki, 220_rsync_localbk_root, 225_rsync_localbk_home の実行権限を外した.
# cd /etc/cron.local
# chmod a-x weekly/210_rsync_localbk_hiki daily/220_rsync_localbk_root daily/225_rsync_localbk_home
== スクリプトの動作確認
* ホスト鍵の追加
itpass 側に itpassbk のホスト鍵を追加した.
itpass: # ssh tako-itpass.scitec.kobe-u.ac.jp
The authenticity of host 'tako-itpass.scitec.kobe-u.ac.jp
(133.30.109.21)'can't be established.
ECDSA key fingerprint is 06:e7:4a:de:2e:16:33:03:d5:0c:fd:32:bd:72:fa:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tako-itpass.scitec.kobe-u.ac.jp,133.30.109.21'
(ECDSA) to the list of known hosts.]
PTY allocation request failed on channel 0
接続を続けるか問われるので yes と入力して続行し, ホスト鍵を追加する.
ssh 接続は許可していないので接続はできないが問題ない.
* スクリプトの動作確認
/etc/crontab の時刻を変更して正しくバックアップスクリプトが実行されているか確認する確認した.
#確認後はもとに戻す.
/etc/hosts に書かれている IP アドレスとホスト名の対応が正しいかどうか確認する確認した.
== 参考資料
*((<[ITPASS2017]((<[ITPASS2018]サーバ交換作業 1 週間後に行う作業>))
= #= 不要なファイルの削除
#
#運用開始から 1 週間をめどに, 参考のためにold OLD からコピーしたファイル類を削除.
###また emacs で編集した際の一時ファイル(ファイル名~ など)もあれば削除する.
= 再構築作業用 chikuwa* ユーザの削除
再構築作業用に作成した chikuwa* ユーザを削除する削除した.
# userdel -r [アカウント名]
で, ホームディレクトリも一緒に削除できる.
* visudo で /etc/sudoers から chikuwa* を削除する.
[((<[ITPASS2018]2018年度サーバ構築マニュアル>)) へ戻る]
#[((<[ITPASS2020]2020年度サーバ構築マニュアル>)) へ戻る]
= 本サーバ(itpass)から予備サーバ(itassbk)へのバックアップ設定
== itpass 側での公開鍵作成
バックアップのための公開鍵を作成した.
itpass$ sudo -s -H
itpass# cd /root
itpass# ssh-keygen -t rsa -b 4096
(鍵の置き場はデフォルトの /root/.ssh/id_rsa とした)
(鍵の強度を上げるため, -b 4096 のオプションをつけた)
(パスフレーズは空にした)
== itpassbk 側の鍵の設置
itpass で作成した公開鍵 itpass:/root/.ssh/id_dsa.pub を
itpassbk:/root/.ssh/authorized_keys の最後尾に追記した.
itpassbk: $ sudo -s -H
itpassbk: # cd /root
itpassbk: # vi /root/.ssh/authorized_keys
更にパーミッションを変更する.
itpassbk: # chmod 600 /root/.ssh/authorized_keys
== authorized_keys の編集
しかし, このままでは itpass で root を取られると
itpassbk もそのまま乗っ取られることが考えられるため,
公開鍵認証の際にはバックアップ以外の動作をできないよう,
また itpass 以外からのアクセスを受け付けないよう制限をかける.
そのために, 上記で設置した authorized_keys 内の
itpassbk の公開鍵の行の冒頭に以下を加えた.
なお, 見やすさのため改行してあるが, 一行で書いた.
#またカンマの前後に空白は開けないこと.
#そして, 最後の "no-agent-forwarding" と公開鍵の冒頭に書いてある
#"ssh-dss" または "ssh-rsa" の間には空白を一文字入れること.
command="rsync --server -vvvlogDtpre.iLsfxC --delete . /home/",no-pty,
from="133.30.109.22",no-port-forwarding,no-X11-forwarding,no-agent-forwarding
#これをauthorized_keys 内の itpassbk の公開鍵の行の冒頭に加える.
#この記述は, tako-itpass への rsync 失敗問題(2018/03)に対処するため, 変更を加えたものである.
#2016 年度以前のマニュアルにある記述とは異なることに注意せよ.
#詳細は((<[ITPASS2017]rsync エラーへの対処>))を参照.
== itpassbk 側の通信許可
最近の OpenSSH では, デフォルトでは root のログインを許可しないため,
設定を変更する. /etc/ssh/sshd_config の
PermitRootLogin no
という部分を
PermitRootLogin forced-commands-only
に変更したのち,
itpassbk# systemctl restart ssh
として設定を反映させた.
#これにより, ((<URL:#itpassbk 側の鍵の設置>))
#で指定したコマンドでのみログインを許可することとなる.
== itpass 側でのデータ転送用スクリプトの設置
#=== バックアップスクリプトを置くディレクトリの確認
#
#オリジナルの cron 用スクリプトは /etc/cron.local/daily に置く.
#((*もしこのディレクトリがなければ
#((<[ITPASS2016]システムログメールの設定>))
#が行われていない可能性があるので
#システムログメールの作業担当者に連絡すること*)).
=== バックアップ用スクリプトの用意
#((<rsync_itpassbk.sh|URL:../server/2018/system_backup/rsync_itpassbk>))
#をダウンロードする.
#これを /etc/cron.local/daily/230_rsync_itpassbk に設置する.
((<rsync_itpassbk.sh|URL:../server/2018/system_backup/rsync_itpassbk>))
を /etc/cron.local/daily/230_rsync_itpassbk に設置した.
# wget http://itpass.scitec.kobe-u.ac.jp/~itpass/server/2018/system_backup/rsync_itpassbk
# mv rsync_itpassbk /etc/cron.local/daily/230_rsync_itpassbk
/etc/cron.local/daily/230_rsync_itpassbk に実行権限を設定する.
# chmod 755 /etc/cron.local/daily/230_rsync_itpassbk
== hiki データバックアップスクリプトの設置
((<rsync_localbk_hiki.sh|URL:../server/2018/system_backup/rsync_localbk_hiki>))
を /etc/cron.local/weekly/210_rsync_localbk_hiki に設置する.
# wget http://itpass.scitec.kobe-u.ac.jp/~itpass/server/2018/system_backup/rsync_localbk_hiki
# mv rsync_localbk_hiki.sh /etc/cron.local/weekly/210_rsync_localbk_hiki
/etc/cron.local/weekly/210_rsync_localbk_hiki に実行権限を設定する.
# chmod 755 /etc/cron.local/weekly/210_rsync_localbk_hiki
== crontab の編集
/etc/crontab に以下の 2 行があることを確認した.
25 6 * * * root cd / && run-parts --report /etc/cron.local/daily
47 6 * * 7 root cd / && run-parts --report /etc/cron.local/weekly
== バックアップログファイルの作成
ログファイルのためのディレクトリとファイルを作成した.
# mkdir /var/log/rsync-log
# touch /var/log/rsync-log/itpassbk.log
# touch /var/log/rsync-log/localbk_hiki.log
== バックアップログファイルの logrotate の設定
データ転送の際の rsync のログを 1 週間毎に分割する.
/etc/logrotate.d/ 以下に rsync_itpassbk という設定ファイルを作成した.
# vi /etc/logrotate.d/rsync_itpassbk
内容は以下.
/var/log/rsync-log/itpassbk.log {
weekly
create 0644 root root
rotate 12
}
hiki データのバックアップの際の rsync のログは 1 ヶ月毎に分割する.
/etc/logrotate.d/ 以下に rsync_localbk_hiki という設定ファイルを作成した.
# vi /etc/logrotate.d/rsync_localbk_hiki
内容は以下.
/var/log/rsync-log/localbk_hiki.log {
monthly
create 0644 root root
rotate 12
}
== itpassbk のローカルバックアップの停止
210_rsync_localbk_hiki, 220_rsync_localbk_root, 225_rsync_localbk_home の実行権限を外した.
# cd /etc/cron.local
# chmod a-x weekly/210_rsync_localbk_hiki daily/220_rsync_localbk_root daily/225_rsync_localbk_home
== スクリプトの動作確認
* ホスト鍵の追加
itpass 側に itpassbk のホスト鍵を追加した.
itpass: # ssh tako-itpass.scitec.kobe-u.ac.jp
The authenticity of host 'tako-itpass.scitec.kobe-u.ac.jp
(133.30.109.21)'can't be established.
ECDSA key fingerprint is 06:e7:4a:de:2e:16:33:03:d5:0c:fd:32:bd:72:fa:57.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'tako-itpass.scitec.kobe-u.ac.jp,133.30.109.21'
(ECDSA) to the list of known hosts.]
PTY allocation request failed on channel 0
接続を続けるか問われるので yes と入力して続行し, ホスト鍵を追加する.
ssh 接続は許可していないので接続はできないが問題ない.
* スクリプトの動作確認
/etc/crontab の時刻を変更して正しくバックアップスクリプトが実行されているか
#確認後はもとに戻す.
/etc/hosts に書かれている IP アドレスとホスト名の対応が正しいかどうか
== 参考資料
*
#
#運用開始から 1 週間をめどに, 参考のために
= 再構築作業用 chikuwa* ユーザの削除
再構築作業用に作成した chikuwa* ユーザを
# userdel -r [アカウント名]
で, ホームディレクトリも一緒に削除できる.
* visudo で /etc/sudoers から chikuwa* を削除する.
[((<[ITPASS2018]2018年度サーバ構築マニュアル>)) へ戻る]