2009 DNS 1st 再構築ログ


  1. Debian lenny のインストール
  2. ssh インストール
  3. 作業用アカウントの作成
  4. sudo のインストール
  5. ssh の設定
  6. ntpdate の設定
  7. /etc/inetd.conf の編集
  8. bind9 のインストール
  9. syslog-ng のインストール
  10. gate-toroku-system のインストール

Debian lenny のインストール

ブート画面

boot: installgui netcfg/disable=true

Screenshot の保存場所

/var/log/*.png に保存される.

Choose Language

Japanese - 日本語 を選択

キーボード配置の選択

日本(106 キー)

ネットワークの設定

eth0 を選択

IP アドレス
 133.87.45.136

ネットマスク
 255.255.255.0

ゲートウェイ
 133.87.45.1

ネームサーバアドレス
 133.87.45.70 133.87.45.66 133.87.1.11

ホスト名
 aoi

ドメイン名
 ep.sci.hokudai.ac.jp

ディスクのパーティショニング

ガイド - ディスク全体を使う

パーティショニングするディスクの選択

sda を選択

パーティショニング機構

全てのファイルを1つのパーティションに(初心者ユーザには推奨)

パーティショニングの終了とディスクへの変更の書き込み

ディスクに変更を書き込みますか?

はい を選択

root のパスワード

ユーザの本名

あなたのアカウントのユーザ名

naoki (何でもいい)

ユーザのパスワード

パッケージマネージャの設定

日本

Debian アーカイブミラー

dennou-h.gfd-dennou.org

HTTP プロキシの情報

popularity-contest を設定しています

Debian パッケージ利用調査に参加しますか?

いいえ

インストールするソフトウェアの選択

標準システムのみにする

マスターブートレコードに GRUB ブートローダをインストールしますか?

はい

インストールの完了

起動

ssh インストール

$ su
# aptitude install ssh

一向にダウンロードが進まない. 最終的に

Err http://dennou-h.gfd-dennou.org lenny/main openssh-blacklist 0.4.1
Temporary failure resolving 'dennou-h.gfd-dennou.org'

というエラーが出た.

試しに

$ ping 133.87.45.70

通らない.

-> ネットワーク線をつなぎかえたらつながるようになった.

作業用アカウントの作成

# adduser --uid 40001 mondo1
# adduser --uid 40005 mondo5

sudo のインストール

# aptitude install sudo
# visudo 

mondo1, mondo5 に sudo 権限を追加

ssh の設定

/etc/ssh/sshd_config の設定

X11Forwarding no
PermitRootLogin no

/etc/hosts.deny の編集

sshd: ALL

を追加.

/etc/hosts.allow の編集

sshd: .ep.sci.hokudai.ac.jp

を追加.

ntpdate の設定

# dpkg -l ntpdate

ntpdate が入っていないがそのまま.

/etc/inetd.conf の編集

特に必要ない

bind9 のインストール

# aptitude install bind9

bind が機能しているか確認

/etc/resolv.conf のバックアップと編集

# cp /etc/resolv.conf /etc/resolv.conf_bk 

resolv.conf を以下のように書き直す. (前の内容は削除した上で書き直す)

search ep.sci.hokudai.ac.jp
nameserver 127.0.0.1 

dig で挙動を調べる

$ dig ep.sci.hokudai.ac.jp any

; <<>> DiG 9.5.1-P3 <<>> ep.sci.hokudai.ac.jp any
;; global options:  printcmd

;; ANSWER SECTION:
ep.sci.hokudai.ac.jp.   86400   IN      NS      yellow.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86400   IN      NS      blue.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86400   IN      SOA     yellow.ep.sci.hokudai.ac.jp. postmaster.ep.sci.hokudai.ac.jp. 2009110215 10800 3600 604800 86400

;; ADDITIONAL SECTION:
blue.ep.sci.hokudai.ac.jp. 86400 IN     A       133.87.45.66
yellow.ep.sci.hokudai.ac.jp. 86400 IN   A       133.87.45.70
grey.ep.sci.hokudai.ac.jp. 86400 IN     A       133.50.160.50
orange.ep.sci.hokudai.ac.jp. 86400 IN   A       133.50.160.51
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; MSG SIZE  rcvd: 233

bind9 の設定ファイル

/etc/bind/named.conf の書き換え

以下を記述した.

options {
       directory "/var/named";
       empty-zones-enable no;
};

zone "." {
       type hint;
       file "named.root";
};

zone "ep.sci.hokudai.ac.jp" {
       type master;
       file "ep.zone";
};

zone "cps-jp.org" {
       type master;
       file "cps-jp.zone";
};

zone "localhost" {
       type master;
       file "local.zone";
};

zone "0.0.127.in-addr.arpa" {
       type master;
       file "local.rev";
};

logging {
       category edns-disabled {null;};
};

ゾーンファイル

/var/named の作成

# mkdir /var/named

/var/named の所有者を変更

# chown bind:bind /var/named

ゾーンファイルを yellow から持ってくる.

cps-jp.zone  ep.zone  local.rev  local.zone  named.root

IPv4 のみを使う設定

/etc/default/bind9 を以下のように設定する.

# run resolvconf?
RESOLVCONF=yes

# startup options for the server
OPTIONS="-4 -u bind"
#-4 = IPv4 のみを使うための設定

ログで DNS ゾーンファイルの読み込みを確認

bind の restart

# /etc/init.d/bind9 restart

/var/log/daemon.log を見る

ゾーン転送は正しく行われたようだ.

/etc/resolv.conf に他の DNS サーバを書き加える

search ep.sci.hokudai.ac.jp
nameserver 127.0.0.1
nameserver 133.87.45.66
nameserver 133.87.1.11

とする.

syslog-ng のインストール

パッケージのインストール

# aptitude install syslog-ng

受信の設定

/etc/syslog-ng/syslog-ng.conf に,

source s_lemon {
       #   - UDP 514 番を使う。
       udp(ip("133.87.45.114") port(514));
};

destination d_lemon_log {
       file("/var/log/lemon_log");
};

filter f_lemon_log {
       host(133.87.45.154) and level(info..emerg);
};

log {
       source(s_lemon);
       filter(f_lemon_log);
       destination(d_lemon_log);
};

を追加.

# /etc/init.d/syslog-ng restart

で syslog-ng を再起動し,設定を有効にする.

gate-toroku-system のインストール

必要なパッケージのインストール

作業用アカウントの作成

# adduser --uid 500 --disabled-password gate

管理者の名前は Administrator of gate-toroku-system とした.

gate グループに gate 管理者を加える.

ssh のノンパスワードログインに関する設定

.shosts の設定(各サーバ)

.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

.shosts の設定(www で行う)

/usr/bin/ssh, /usr/lib/ssh-keygen の s ビットを立てる.

.shosts 認証を有効にする.

公開鍵を新たに作り直す

各サーバで行う作業

orange の公開鍵が既に存在しているかを調べる.

orange の公開鍵を取得する.アドレスはフルドメインで入力する.

$ ssh orange.ep.sci.hokudai.ac.jp

ここで公開鍵を作るかどうかを聞かれるので yes と入力する.

Ctrl + c で出る.

www での作業

gate ユーザになる.

$ sudo -u gate -s -H 

.ssh/known_hosts にローカルホストの公開鍵が存在するかを確認し,あれば削除する.

$ grep kihada .ssh/known_hosts

公開鍵を取得する. (アドレスはフルドメインで入力する)

$ ssh kihada.ep.sci.hokudai.ac.jp 

パッケージの取得と展開

パッケージの取得

$ sudo -u gate -s -H
$ cd /home/gate
$ scp hogehoge@orange.ep.sci.hokudai.ac.jp:/home/gate/gate-toroku-system.tar.gz ./ 

パッケージの展開

$ tar xvfz gate-toroku-system.tar.gz 
$ cd gate-toroku-system 

パッケージの設定 [www 以外]

orange.ep.sci.hokudai.ac.jp から /etc/gate.conf をコピーする.

$ scp hogehoge@orange.ep.sci.hokudai.ac.jp:/etc/gate.conf ./include/gate.conf

パッケージのインストール

Config.mk の生成

$ perl ./config.pl

make によるコンパイル

$ make

ほんとにインストール

$ exit (一般ユーザに戻る)
$ sudo -s (root ユーザになる)
# cd /home/gate/gate-toroku-system
# cp include/gate.conf /etc/gate.conf
# make install

/usr/local/bin, /usr/local/sbin, /usr/local/lib/gate に gate のプログラムがインストールされていることを確認. また, /etc/passwd, /etc/shadow, /etc/group, /etc/sudoers が /ETC に存在していることを確認.

デーモンの設定

デーモンモードで起動するための確認

gate-toroku-system 用のポートの作成

/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 を再起動する.

/var/run/inetd.pid はまだない -> kihada を reboot した

TCPWrapper によるセキュリティ強化

gate のポートには登録サーバである orange 以外のホストはアクセスできないようにする. /etc/hosts.deny を以下のように編集して全てのホストに対して gate ポートへのアクセスを禁止する.

gate-daily: ALL 

/etc/hosts.allow を以下のように編集して orange に対して gate ポートへのアクセスを許可する.

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 と表示された.

安全の確保

重要ファイルのバックアップ

# cp /etc/passwd ~/
# cp /etc/shadow ~/
# cp /etc/group ~/
# cp /etc/sudoers ~/  

# chmod 400 passwd shadow group sudoers

root になった端末を残しておく

万一端末が動かなくなった時に作業ができるように root になった端末をもう一つ確保しておく.

動作確認

www サーバ (orange) から aoi の gate ポートに接続する.

$ ssh orange.ep.sci.hokudai.ac.jp
$ telnet aoi.ep.sci.hokudai.ac.jp 8888

正常に接続できたかを確認するために /etc/passwd, /etc/shadow などのファイルのタイムスタンプを確認.

(各サーバで)
$ date (現在時刻の確認)
$ ls -l /etc/passwd /etc/shadow

/etc/passwd の中身はユーザ ID の順番に並び変えられていた.