2009 DNS 2nd 再構築ログ

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 のパスワード

ユーザの本名

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

umemo

ユーザのパスワード

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

日本

Debian アーカイブミラー

dennou-h.gfd-dennou.org

HTTP プロキシの情報

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

いいえ

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

標準システムのみにする

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

はい

インストールの完了

起動

ssh インストール

$ su
# aptitude install ssh

以後,遠隔ログインで作業する.

作業用アカウントの作成

コアマネとの相談で mondo*を決める

# adduser --uid 40001 mondo1

sudo のインストール

# aptitude install sudo
# visudo 

mondo1 sudo 権限を追加

以後,mondo1で作業する

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.6-ESV-R1 <<>> ep.sci.hokudai.ac.jp any
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24737
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 2, ADDITIONAL: 4

;; QUESTION SECTION:
;ep.sci.hokudai.ac.jp.          IN      ANY 

;; ANSWER SECTION:
ep.sci.hokudai.ac.jp.   86261   IN      NS      yellow.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86261   IN      NS      blue.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86261   IN      MX      20 orange.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86261   IN      MX      10 grey.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86261   IN      SOA     yellow.ep.sci.hokudai.ac.jp. postmaster.ep.sci.hokudai.ac.jp. 2010082014 10800 3600 604800 86400

;; AUTHORITY SECTION:
ep.sci.hokudai.ac.jp.   86261   IN      NS      yellow.ep.sci.hokudai.ac.jp.
ep.sci.hokudai.ac.jp.   86261   IN      NS      blue.ep.sci.hokudai.ac.jp.

;; ADDITIONAL SECTION:
blue.ep.sci.hokudai.ac.jp. 86261 IN     A       133.87.45.66
yellow.ep.sci.hokudai.ac.jp. 86261 IN   A       133.87.45.70
grey.ep.sci.hokudai.ac.jp. 86261 IN     A       133.50.160.50
orange.ep.sci.hokudai.ac.jp. 86261 IN   A       133.50.160.51

;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Aug 20 18:29:42 2010
;; MSG SIZE  rcvd: 261 

bind9 の設定ファイル

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

以下を記述した.(blue から持ってきた)

options {
       directory "/var/named";
};

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

zone "ep.sci.hokudai.ac.jp" {
       type slave;
       file "ep.zone";
       notify no;
       masters {133.87.45.70;};
};

zone "cps-jp.org" {
       type slave;
       file "cps-jp.zone";
       notify no;
       masters {133.87.45.70;};
};

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

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

ゾーンファイル

/var/named の作成

# mkdir /var/named

named.conf 同様,ゾーンファイルを blue から持ってくる.

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

ログで 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.70
nameserver 133.87.1.11

とする.

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 の公開鍵が既に存在しているかを調べる.

$ grep orange /home/gate/.ssh/known_hosts 

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

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

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

Ctrl + c で出る.

www での作業

gate ユーザになる.

$ sudo -u gate -s -H 

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

$ grep aoi .ssh/known_hosts

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

$ ssh aoi.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 の生成

$ exit (一般ユーザに戻る)
$ sudo -u gate -s -H
$ cd /home/gate/gate-toroku-system
$ perl ./config.pl

make によるコンパイル

$ make

ほんとにインストール

$ exit (一般ユーザに戻る)
$ sudo -s (root ユーザになる)
# cd /home/gate/gate-toroku-system
# 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 に存在していることを確認する.

デーモンの設定

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

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

# kill -HUP `cat /var/run/inetd.pid` 

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 などのファイルのタイムスタンプを確認する.

(各サーバでチェック [www でじゃないよ!!])
$ date (現在時刻の確認)
$ ls -l /etc/passwd /etc/shadow

また, /etc/passwd の中身がユーザ ID の順番に並び変えられていればよい.

syslog-ng のインストール

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

# aptitude install syslog-ng

パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
拡張状態情報を読み込んでいます
パッケージの状態を初期化しています... 完了
タスクの記述を読み込んでいます... 完了
以下の新規パッケージがインストールされます:
  libevtlog0{a} libglib2.0-0{a} libglib2.0-data{a} syslog-ng
以下のパッケージが削除されます:
  rsyslog{a}
更新: 0 個、新規インストール: 4 個、削除: 1 個、保留: 0 個。
1596kB のアーカイブを取得する必要があります。展開後に 4458kB
のディスク領域が新たに消費されます。
先に進みますか? [Y/n/?]

Y を押して次に進む.

受信の設定

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

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


destination d_lemon_log {
       # lemon から受信したログは /var/log/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 を再起動し,設定を有効にする.

失敗した.

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

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

に変更し,再起動するとうまくいった.→ 入れ替え前に元に戻した(2010/09/16)

DHCP のインストール

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

# aptitude install dhcp3-server

すると,

non-authoritative 設定がされている DHCP サーバのバージョン

DHCP サーババージョン 3 では、non-authoritative が標準とな
っています。これは、サーバが関知しないアドレスをクライアン
トが要求し、そのアドレスがネットワークセグメントに合ってい
ない場合、サーバは (クライアントへそのアドレスを利用するの
を止めるように伝える) DHCPNAK メッセージを「送信しない」と
いうことを意味します。この挙動を変更したい場合は、dhcpd.co
nf で'authoritative' 文を使用して、あなたのサーバがどのネッ
トワークセグメントの権威を持っているかを明示的に指定しなく
てはなりません。

と出るが,<了解>を選択.

その後インストール途中で

Starting DHCP server: dhcpd3check syslog for diagnostics. failed!
 failed!
invoke-rc.d: initscript dhcp3-server, action "start" failed.

と出た.

$ dpkg -l | grep dhcp 

すると,

ii  dhcp3-client                      3.1.1-6+lenny2           DHCP client
ii  dhcp3-common                      3.1.1-6+lenny2           common files used by all the dhcp3* packages
ii  dhcp3-server                      3.1.1-6+lenny2           DHCP server for automatic IP address assignment

となっていて,インストールはされた模様.

設定ファイルの編集

設定ファイルの場所は /etc/dhcp3/dhcpd.conf である.

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

# cd /etc/dhcp3/
# cp dhcpd.conf dhcpd.conf.org

dhcpd.conf として以下を設定する.

# dhcpd.conf
#
# This is dhcpd.conf, generated by gate-db-to-dhcpd.
# If you are to edit this file, do not edit it directly.
#
# General Configuration

default-lease-time 6000;
max-lease-time 72000;
option routers 192.168.16.1;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.16.255;
option domain-name "ep.sci.hokudai.ac.jp";
option domain-name-servers 133.87.45.70, 133.87.45.66, 133.87.1.11;

subnet 192.168.16.0 netmask 255.255.255.0 {}

DHCPのネットワークインターフェイスの指定

/etc/default/dhcp3-server の編集

INTERFACES="eth1"

とした

/etc/gate.confの書き換え

$DHCPD_FILE = "$ETCDIR/dhcpd.conf";

$DHCPD_FILE = "$ETCDIR/dhcp3/dhcpd.conf";

とする.

実行ファイルの編集

特に行わない.