BIND9 chrootインストール手順 のバックアップ(No.3)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- BIND9 chrootインストール手順 へ行く。
- 1 (2007-12-26 (水) 16:06:24)
- 2 (2007-12-26 (水) 16:06:52)
- 3 (2008-08-28 (木) 17:24:39)
- 4 (2009-05-10 (日) 13:04:06)
- 5 (2010-07-19 (月) 02:42:07)
BIND9をchrootして実行する設定手順。
root権限で稼動するBINDをchroot動作させることで、権限奪取のアタックを受けた場合の被害を最小限に抑えることが可能である。
- BINDのインストール
wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz tar xfvz bind-9.3.2.tar.gz cd bind-9.3.2 ./configure make make install
- chroot先ディレクトリの作成
mkdir /var/chroot mkdir /var/chroot/named mkdir /var/chroot/named/etc mkdir /var/chroot/named/var mkdir /var/chroot/named/dev
- デバイスファイルの作成
mknod /var/chroot/named/dev/null c 1 3 mknod /var/chroot/named/dev/random c 1 8 cp /etc/localtime /var/chroot/named/etc
- syslogの設定
syslogへの出力用ポートを作成する
vi /etc/init.d/syslog
修正 start() { echo -n $"Starting system logger: " #daemon syslogd $SYSLOGD_OPTIONS daemon syslogd -m 0 -a /var/chroot/named/dev/log ←修正 RETVAL=$? echo echo -n $"Starting kernel logger: " daemon klogd $KLOGD_OPTIONS echo [ $RETVAL -eq 0 ] && touch /var/lock/subsys/syslog return $RETVAL }
syslogを再起動する
/etc/init.d/syslog restart
ps ax | grep syslog 13633 ? Ss 0:00 syslogd -m 0 -a /var/chroot/named/dev/log
- named.confとゾーンファイル
named.confとゾーンファイルはchrootディレクトリに実体を置き、所定位置にはリンクを張る
mv -f /var/named /var/chroot/named/var mv /etc/named.conf /var/chroot/named/etc cd /etc ln -s /var/chroot/named/etc/named.conf named.conf cd /var ln -s /var/chroot/named/var/named named
- 自動起動設定
下記スクリプトを使用
#!/bin/sh # # named This shell script takes care of starting and stopping # named (BIND DNS server). # # chkconfig: 345 55 45 # description: named (BIND) is a Domain Name Server (DNS) \ # that is used to resolve host names to IP addresses. # probe: true # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ ${NETWORKING} = "no" ] && exit 0 [ -f /usr/local/sbin/named ] || exit 0 [ -f /var/chroot/named/etc/named.conf ] || exit 0 # See how we were called. case "$1" in start) # Start daemons. echo -n "Starting named: " daemon /usr/local/sbin/named -u named -t /var/chroot/named -c /etc/named.conf echo touch /var/lock/subsys/named ;; stop) # Stop daemons. echo -n "Shutting down named: " killproc named rm -f /var/lock/subsys/named echo ;; status) status named exit $? ;; restart) $0 stop $0 start exit $? ;; reload) /usr/local/sbin/rndc reload exit $? ;; probe) # named knows how to reload intelligently; we don't want linuxconf # to offer to restart every time /usr/local/sbin/rndc reload >/dev/null 2>&1 || echo start exit 0 ;; *) echo "Usage: named {start|stop|status|restart|reload}" exit 1 esac exit 0