[Memo2014][ITPASS]サーバアップグレード(tako)
ITPASSサーバアップグレード(tako)
hikiのパッケージを削除
# apt-get purge hiki
/usr/share/hiki/misc 以下のパッチを当てたファイルが消されず残ったので、手動で消した
# rm -r /usr/share/hiki/misc
システムアップグレード作業
パッケージ関連の設定確認
- Squeeze の最新版にする
# apt-get update # apt-get upgrade
- パッケージマネージャにおいて中断しているアクションの確認
- aptitude のビジュアルモードで起動し, g を押す
- いくつかのパッケージが削除推奨になった
- 指示通り削除した
- exim 関連の hold はそのままにする
- パッケージの状態をチェックする
インストールが未完了のパッケージ (Half-Installed) や設定に失敗したパッケージ (Failed-Config), 何らかのエラー状態にあるパッケージを表示
# dpkg --audit
- 何も表示されなかった
- /etc/apt/source.list の電脳関連の部分をコメントアウト
wheezy へのアップグレード
アップグレードの準備
- APT のインターネットソースの編集
- /etc/apt/source.list の squeeze を wheezy に書き換え
- 不要な部分を消去
- アップグレードセッションの記録をとる
# script -t 2>/home/hogehoge/upgrade-wheezy手順.time -a ~/upgrade-wheezy1.script
- パッケージリストの更新
# apt-get update
アップグレードするのに十分な領域があることを確認
# apt-get -o APT::Get::Trivial-Only=true dist-upgrade
- 問題はなかった
- コンピューターが PAE を持っているかを確認
- 64bit 版の OS なので確認しなかった
システムの最小アップグレード
# apt-get upgrade
- update-passwd に関するメッセージが表示された
- bind ユーザー, およびグループの削除を推奨された
- 削除した
- この後の作業で再度追加する
- bind ユーザー, およびグループの削除を推奨された
- adduser の更新で, /etc/deluser.conf を更新するか確認された
- 更新しないので, N を押した
- cron の更新で, /etc/crontab を更新するか確認された
- 更新しないので, N を押した
- fail2ban の更新で, /etc/fail2ban/filter.d/sshd.conf を更新するか確認された
- 更新しないので, N を押した
- fail2ban の更新で, /etc/fail2ban/filter.d/apache-auth.conf を更新するか確認された
- 更新しないので, N を押した
- fail2ban の更新で, /etc/fail2ban/filter.d/jail.conf を更新するか確認された
- 更新しないので, N を押した
- linux-base の更新で, システムのディスクデバイス ID を更新しますかと聞かれた
- 「はい」を選択
- その後, fstab にも同様の更新を適用するか聞かれるので, こちらも「はい」を選択
- sudoers の更新で, /etc/sudoers を更新するか確認された
- 更新せず, 後で書き換える
システムのアップグレード
- アップグレード時のトラブルを避けるため, 以下のパッケージを削除した
# apt-get remove openjdk-6-jre
システムのアップグレード
# apt-get dist-upgrade
- libc6 の設定で, 一部のサービスを自動的に再起動してもいいか聞かれる
- Yes を選択
- bash /etc/bash.bashrc の設定を更新するか聞かれる
- 更新しないため, N を押した
- openssl /etc/ssh/openssl.cnf
- 更新しないため, N を押した
- /etc/services
- 更新しないため, N を押した
- /etc/logrotate.d/rsyslog
- ひとまず更新せず, 変更点を後で書き換え
- /etc/csh.cshrc
- 更新しない
- libc6 の設定で, 一部のサービスを自動的に再起動してもいいか聞かれる
sudoers 関連の設定
- マニュアルで推奨されている /etc/sudoers.d 下への移動は行わない
- gate-touroku-system が /etc/sudoers を編集するので
- /usr/local/gate/sbin/gate-db-to-sudoers ファイルを編集し, 以下のコメント文の下三行を追加した
# 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"
rsyslog
invoke-rc.d rsyslog reload > /dev/null
となっているところを
invoke-rc.d rsyslog rotate > /dev/null
とする。
bind の設定
bind ユーザー, グループを追加する
- vipw を実行して以下の行を追加する
bind:x:53:53:Bind Sandbox:/usr/local/bind/var:/bin/false
- vipw -s を実行して以下の行を追加する
bind:!:13749:0:99999:7:::
- vigr を実行して以下の行を追加する
bind:x:53:
- vigr -s を実行して以下の行を追加する
bind:*::
- bind を起動する
# /etc/init.d/bind start
gate の設定
- [itpass 7849] gateのためのwrapperプログラム のメール添付ファイルをコンパイルした # gcc -o gate-user-show wrapper2.c
- /usr/local/gate/bin の以下のファイル名の末尾に.plxを付けた
gate-user-accept gate-user-apply gate-user-list gate-user-authkey-lock gate-user-authkey-unlock gate-user-renew gate-user-withdraw
- コンパイルしたファイル (gate-user-show) を /usr/local/gate/bin 以下に置いた
- このファイルの所有者は gate:gate, パーミッションは 2755 とした
- libperl4-corelibs-perl をインストール
動作テスト
gate-user-show hogehoge
- 正常に動作した
- gate-user-show ファイルをコピーして, 以下のファイル名に変更
gate-user-accept gate-user-apply gate-user-list gate-user-authkey-lock gate-user-authkey-unlock gate-user-renew gate-user-withdraw
- 以下の作業を行った
- wrapperプログラムの不備を解消した
- libjcode-perlの代わりにlibjcode-pm-perlを使うように変更。
- htpasswdで生成する.gateファイルのフォーマットが変わったので、従来のフォーマットで生成するためのオプション-dを付け加えるようマニュアルを書き換えた。
apt の設定
- /etc/apt/source.list 内の電脳関連パッケージのコメントアウトを外し, squeeze を wheezy に書き換え
- 公開鍵署名を更新
# apt-key adv --keyserver keyring.debian.org --recv 891D7E07
- 更新する
# apt-get update # apt-get upgrade
ここでいったん再起動した
hiki の設定
ika-itpass の hiki のアプリケーションとデータを rsync で持ってくる
- tako の root ログインを許可するため, tako の /etc/ssh/sshd_config を以下のように書き換える
- PermitRootLogin の no を yes に
- PasswordAuthentication の no を yes に
- rsync を実行する
rsync -a -e=ssh -v /usr/share/hiki/ root@133.30.109.21:/usr/share/hiki/
- 先ほど書き換えた sshd_config を元に戻す
hiki のデータを ika からコピーする
- ika->tako のバックアップを復活させる
# chmod +x 230_rsync_itpassbk
- /etc/crontab 内の実行時間を直近の時間に書き換え, 実行させる
試しに hiki のページを開いてみたところ, docdiff がロードできないというエラーが出たのでそのパッケージを入れる
# apt-get install docdiff
- 正常に動作するようになった
- /etc/crontab の設定を元に戻した
gate
- gate-user-show 実行時に表示されたエラーに書かれていた /usr/lib/perl5/jcode.pl の該当行を編集
- /usr/local/gate/bin 以下のファイルの所有者を gate にした
- 所有者を変更した際にsetuid の設定が外れてしまったので, setuid gate した(モードを 2775)
- gate-db-to-sudoers の設定時に, PATH に改行が入ってしまっていたので, それを修正
- wrapper のソースを修正して再コンパイルし, 置き換え
- snprintf 内の argv[0] をbasename() で括る
- #include <libgen.h> の追加
- if_sndr_from.pl を置いた
- inetd が起動していないため, gate が正常動作していない
- openbsd-inetd を再インストール
- /etc/init.d/openbsd-inetd に実行権限を付与
hikiの追加の設定
/usr/share/hiki/misc/plugin/table_form_rd.rb
の 80 行目の lines.each を lines.each_line に書き換えた
Keyword(s):
References:[[ITPASS2014]2014年度サーバアップグレードログ] [[Memo2014][ITPASS]サーバ構築に関する覚書]