このドキュメントは専攻サーバへ gate-toroku-systemをインストールする際の手順を書いたものである.
このドキュメントはサーバ再構築の際にサーバ機の入れ換えを行うことを前提にしている. (サーバ機の入れ換えとはネットワークパラメータを付けかえるということを意味している)
gate-toroku-system をインストールするために以下のパッケージが必要になるのでインストールしておく.
作業用アカウント gate を作成する.ユーザ ID は 1 -- 999 の間(システムユーザ領域)に設定する.
# adduser --uid 500 --disabled-password gate
この時, フルネームを入力しなくてはならない. 適当に入力してよいが gate-toroku-system-admin など分かりやすいものがよいだろう.
gate グループに gate 管理者を加える. http://www.ep.sci.hokudai.ac.jp/~gate/hyousi.html のメンバーを参照のこと.
ex. /etc/group を
gate:kitamo,morikawa,mym
と編集する.
mail サーバの /home/gate/.qmail に gate グループのユーザアカウントを記入する.
.shosts 認証を可能にする. /etc/ssh/sshd_config を以下のように編集する.
(変更前)
IgnoreRhosts yes
HostbasedAuthentication no
(変更後)
IgnoreRhosts no
HostbasedAuthentication yes
ファイル編集後, ssh を再起動する.
# /etc/init.d/ssh restart
gate ユーザになる.
$ sudo -u gate -s -H
/home/gate へ移動する.
$ cd /home/gate/
.shosts を作成する. ファイルに以下のように書きこむ.
orange.ep.sci.hokudai.ac.jp gate
.shosts のパーミッションを変更し gate 以外のユーザが見れないようにする.
$ chmod 600 .shosts
以下の作業はリモートホストの管理者では行うことができない.よって, gate 管理者グループの人(もしくはローカルホスト管理者)に以下の作業を行ってもらう.
/usr/bin/ssh, /usr/lib/ssh-keygen の s ビットを立てる. 確認するには
ls -lg /usr/bin/ssh /usr/lib/ssh-keygen
ファイルの所有者の実行権限の部分が s になっていればよい.
-rwsr-xr-x 1 root root 230248 Jul 12 19:52 /usr/bin/ssh ^ ここ
s ビットを立てるには
$ chmod 4775 /usr/bin/ssh /usr/lib/ssh-keygen
を実行する.
.shosts 認証を有効にする. /etc/ssh/ssh_config に以下の 2 行を追加する.
HostbasedAuthentication yes PreferredAuthentications hostbased,publickey,password
orange の公開鍵が既に存在しているかを調べる.
$ grep orange /home/gate/.ssh/known_hosts
もし
www.ep.sci.hokudai.ac.jp, ssh-rsa …
のような出力が得られたら公開鍵が既に存在している.
公開鍵を削除するには .ssh/known_hosts を編集して先程の出力でで得られた行を削除する.
orange の公開鍵を取得する. orange に接続する. アドレスはフルドメインで入力する.
$ ssh orange.ep.sci.hokudai.ac.jp
ここで公開鍵を作るかどうかを聞かれるので yes と入力する.
ここでパスワードを聞かれるが当然分からない. しかし, 別にこれでよい.
gate ユーザになる.
$ sudo -u gate -s -H
リモートホストの公開鍵を新たに作り直す. 方法はローカルホストでリモートホストの公開鍵を作り直した時と同じである.
.ssh/known_hosts にローカルホストの公開鍵が存在するかを確認する. (kihada および入れ換え後の yellow)
$ grep [kihada,yellow] .ssh/known_hosts
もし存在していたなら .ssh/known_hosts を編集して公開鍵を削除する.
一度削除したリモートホストの公開鍵を新たに取得しなおすためにリモートホストへ ssh 接続する.(アドレスはフルドメインで入力する)
$ ssh yellow.ep.sci.hokudai.ac.jp
ここで公開鍵を作りますかと聞かれるので yes を入力する.するとパスワードを聞かれることなくリモートホストにログインできる.
以上で ssh のノンパスワードログインに関する設定は終了である.
旧サーバの /etc/shadow ファイルのユーザ部分 (UID 1000 - 29999) のみを新サーバの /etc/shadow に張り付ける.
www.ep.sci.hokudai.ac.jp から yellow.ep.sci.hokudai.ac.jp に /home/gate/gate-toroku-system.tar.gz をコピーする. コピー先のディレクトリは /home/gate とする.
(yellow (リモートホスト)側で行う)
$ sudo -u gate -s -H
$ cd /home/gate
$ scp orange.ep.sci.hokudai.ac.jp:/home/gate/gate-toroku-system.tar.gz ./
コピーして来た gate-toroku-system.tar.gz を展開する.
$ tar xvfz gate-toroku-system.tar.gz
作成された gate-toroku-system ディレクトリに移動.
$ cd gate-toroku-system
orange.ep.sci.hokudai.ac.jp から /etc/gate.conf をコピーする.
$ scp orange.ep.sci.hokudai.ac.jp:/etc/gate.conf ./include/gate.conf
インストールするには以下のコマンドを行する.
# cp include/gate.conf /etc/gate.conf
# make install
インストール終了後, プログラムファイル(gate-ip-accept)が /usr/local/bin, /usr/local/sbin, /usr/local/lib/gate にインストールされていることを確認する.また, /etc/passwd, /etc/shadow, /etc/group, /etc/sudoers が /ETC に存在していることを確認する.
デーモンモードで起動するため /etc/gate.conf で
$USE_DAEMON = 1 ;
と表示されているのを確認する.
/etc/inetd.conf に以下の行を追加(1 行で書く)
gate stream tcp nowait root /usr/sbin/tcpd /usr/local/lib/gate/gate-daily -N
gate 用に 8888 番 ポートを割り当てる. /etc/services に以下の行を追加する.
gate 8888/tcp
/etc/inetd を再起動する.
# kill -HUP `cat /var/run/inetd.pid`
gate のポートには登録サーバである orange 以外のホストはアクセスできないようにする. /etc/hosts.deny を以下のように編集して全てのホストに対して gate ポートへのアクセスを禁止する.
gate-daily: ALL [改行]
/etc/hosts.allow を以下のように編集して orange に対して gate ポートへのアクセスを許可する.
[www サーバの場合]
gate-daily: 127.0.0.1 [改行]
[その他のサーバの場合]
gate-daily: orange.ep.sci.hokudai.ac.jp [改行]
# tcpdmatch gate-daily [orange.ep.sci.hokudai.ac.jp 以外のホスト名]
を実行して access: denied と表示されればよい.
# tcpdmatch gate-daily orange.ep.sci.hokudai.ac.jp
を実行して access: granted と表示されればよい.
本格運用を開始するにあたり万一の場合に備え以下の作業を行う.
/etc/passwd, /etc/shadow, /etc/group, /etc/sudoers ファイルのバックアップをホームディレクトリ以下に作成しておく.
cp /etc/passwd ~/
cp /etc/shadow ~/
cp /etc/group ~/
cp /etc/sudoers ~/
パーミッションを設定して外部から見れないようにする.
$ chmod 400 passwd shadow group sudoers
万一端末が動かなくなった時に作業ができるようにルートになった端末をもう一つ確保しておく.
ローカルホストからリモートホストの gate ポートに接続する.
$ ssh orange.ep.sci.hokudai.ac.jp
$ telnet yellow.ep.sci.hokudai.ac.jp 8888
正常に接続できたかを確認するには /etc/passwd, /etc/shadow などのファイルのタイムスタンプを確認する.
$ date (現在時刻の確認)
$ ls -l /etc/passwd /etc/shadow
また, /etc/passwd の中身がユーザ ID の順番に並び変えられていればよい.
サーバを入れ換えたためローカルホストのホスト名と IP アドレスが変更されている. したがって, 公開鍵を再び作り直す必要がある. 先程のように .ssh/known_hosts を編集して公開鍵を削除する.
orange.ep.sci.hokudai.ac.jp の /etc/gate.conf の %DB_SHARE_HOSTS にこのサーバののホスト(yellow)が書き込まれているかを確認する.
登録サーバで gate ポートにアクセスすることによって gate-daily を動かす. これにより, データベースの転送が行われる. 転送には 1,2 分程度かかる.
$ ssh orange.ep.sci.hokudai.ac.jp
$ telnet localhost 8888
転送完了の確認には ps aux コマンドを実行する. gate-daily が動いていなければ, 転送は完了している.
$ ps aux | grep gate
また, リモートホスト側で /etc/passwd が gate-daily によって更新されているかを確認する. 確認するためには以下を実行する.
$ ls -lt /etc/passwd
このとき表示される時間が数分前であればよい.
安全に動作していれば /ETC , /HOME を削除する.
# rm -r /ETC /HOME
また, mondo ユーザも削除する.
# deluser --remove-home mondo7
最終更新日 : 2003/05/28 (北守 太一) | Copyright © 2003 EPCore |