bindの最近のブログ記事
みなさんこんばんは、(っ´∀`)っ ゃー です。
ここんとこ無駄に忙しくてpopopoに書けるようなネタに困っていたのですが、
今日は久々に新しい小ネタができました。
(っ´∀`)っ ゃー がいる会社ではDNSサーバを持っているのですが、
外向きにはコンテンツサーバとして稼動させていて、再帰検索は
許可していませんでした。しかし、お客様から急遽「キャッシュサーバ作って♪」と
気楽に依頼されてしまったので、いそいそと作業することに。
■■ 環境
OS CentOS release 4.6 (Final)
インストールしたもの bind-9.2.4-28.el4
■■ bindインストール
■ yum コマンドでインストール
[root@hoge ~]# yum install bind
■■ named.conf編集
[root@hoge ~]# cd /etc/
※ デフォルトのnamed.confはこうなっています。
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";
ここに、必要な事項を書き加えてやります。
まずはオリジナルのファイルをバックアップしましょう。
[root@hoge etc]# cp -p named.conf named.conf.orig
そしてnamed.confの編集です。
[root@hoge etc]# vi named.conf
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
// dump-file "/var/named/data/cache_dump.db";
// statistics-file "/var/named/data/named_stats.txt";
allow-query { any; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/var/named/db.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa";
};
include "/etc/rndc.key";
■ ゾーンファイル作成
次に、ルートサーバのゾーンファイルと自分自身の名前解決のための
ゾーンファイルを作ってやります。
[root@hoge etc]# cd /var/named/
ルートサーバのnsレコードを検索して、db.rootというファイル名で
保存してやります。以下のコマンド一発でOKです。
[root@hoge named]# dig @A.ROOT-SERVERS.NET . ns > db.root
できあがったファイルを確認してみましょう。
[root@hoge named]# cat db.root
; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
;L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
;; Query time: 81 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net.)
;; WHEN: Sun Feb 1 11:27:14 2004
;; MSG SIZE rcvd: 436
次に、ローカルホストの正引ファイルを作ってやります。
[root@hoge named]# vi localhost.zone
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
IN A 127.0.0.1
そして、ローカルホストの逆引ファイルを作ってやります。
[root@hoge named]# vi 0.0.127.in-addr.arpa
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
■■ 確認
named-checkzoneコマンドで、ゾーンファイルの書式を確認します。
[root@hoge named]# named-checkzone localhost localhost.zone
zone localhost/IN: loaded serial 2008013001
OK
[root@hoge named]# named-checkzone 127.0.0.1 0.0.127.in-addr.arpa
zone 127.0.0.1/IN: loaded serial 2008013001
OK
named-checkconfコマンドで、named.confの書式を確認します。
[root@hoge named]# named-checkconf /etc/named.conf
■■ named起動
■ syslog (/var/log/messags) をtailしながら、namedを起動
[root@hoge named]# cd
[root@hoge ~]# /etc/init.d/named start
Starting named: [ OK ]
[root@hoge ~]# tail -f /var/log/messages
Jan 30 16:25:08 hoge named[7117]: starting BIND 9.2.4 -u named
Jan 30 16:25:08 hoge named[7117]: using 1 CPU
Jan 30 16:25:08 hoge named[7117]: loading configuration from '/etc/named.conf'
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface eth0, 219.94.xxx.xxx#53
Jan 30 16:25:08 hoge named[7117]: command channel listening on 127.0.0.1#953
Jan 30 16:25:08 hoge named[7117]: command channel listening on ::1#953
Jan 30 16:25:08 hoge named[7117]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: zone localhost/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: running
Jan 30 16:25:08 hoge named: named startup succeeded
■ namedの自動起動設定
まずは現状確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動
[root@hoge ~]# chkconfig named on
自動起動確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
プロセス確認
[root@hoge ~]# ps auxwww | grep [n]amed
named 7117 0.0 0.1 37240 2512 ? Ssl 16:25 0:00 /usr/sbin/named -u named
■■ iptablesの設定
これまで、hogeサーバはメールサーバとして機能させていたので、tcp/udpの53番は
許可していませんでした。なので、iptablesの穴をあけてやることにします。
■ /etc/sysconfig/iptablesファイルの修正
[root@hoge ~]# cd /etc/sysconfig/
[root@hoge sysconfig]# cp -p iptables iptables.20080130
[root@hoge sysconfig]# vi iptables
以下を追記
# DNS
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
[root@hoge sysconfig]# diff iptables iptables.20080130
56,59d55
< # DNS
< -A INPUT -p udp --dport 53 -j ACCEPT
< -A INPUT -p tcp --dport 53 -j ACCEPT
<
■ iptablesの解除タイマーを仕込む
万が一のOPミスでサーバにログインできなくなったらどうにもならないので、
iptablesをstopさせるよう、cronに仕込んでおきます。
[root@hoge sysconfig]# cd /etc/cron.d
[root@hoge cron.d]# vi iptables_clear
以下を追記
0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
■■ 事前確認
[root@hoge cron.d]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■■ iptables 再起動
[root@hoge cron.d]# /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
■■ 事後確認
[root@hoge sysconfig]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ← ここ
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ← ここ
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■ iptablesの解除タイマーをoffにする
[root@hoge cron.d]# vi iptables_clear
以下、コメントアウトする
#0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
以上で、キャッシュサーバのできあがりです。
ね、簡単でしょ?
ここんとこ無駄に忙しくてpopopoに書けるようなネタに困っていたのですが、
今日は久々に新しい小ネタができました。
(っ´∀`)っ ゃー がいる会社ではDNSサーバを持っているのですが、
外向きにはコンテンツサーバとして稼動させていて、再帰検索は
許可していませんでした。しかし、お客様から急遽「キャッシュサーバ作って♪」と
気楽に依頼されてしまったので、いそいそと作業することに。
■■ 環境
OS CentOS release 4.6 (Final)
インストールしたもの bind-9.2.4-28.el4
■■ bindインストール
■ yum コマンドでインストール
[root@hoge ~]# yum install bind
■■ named.conf編集
[root@hoge ~]# cd /etc/
※ デフォルトのnamed.confはこうなっています。
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
};
include "/etc/rndc.key";
ここに、必要な事項を書き加えてやります。
まずはオリジナルのファイルをバックアップしましょう。
[root@hoge etc]# cp -p named.conf named.conf.orig
そしてnamed.confの編集です。
[root@hoge etc]# vi named.conf
// Default named.conf generated by install of bind-9.2.4-28.el4
options {
directory "/var/named";
// dump-file "/var/named/data/cache_dump.db";
// statistics-file "/var/named/data/named_stats.txt";
allow-query { any; };
};
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/var/named/db.root";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "0.0.127.in-addr.arpa";
};
include "/etc/rndc.key";
■ ゾーンファイル作成
次に、ルートサーバのゾーンファイルと自分自身の名前解決のための
ゾーンファイルを作ってやります。
[root@hoge etc]# cd /var/named/
ルートサーバのnsレコードを検索して、db.rootというファイル名で
保存してやります。以下のコマンド一発でOKです。
[root@hoge named]# dig @A.ROOT-SERVERS.NET . ns > db.root
できあがったファイルを確認してみましょう。
[root@hoge named]# cat db.root
; <<>> DiG 9.2.3 <<>> ns . @a.root-servers.net.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18944
;; flags: qr aa rd; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 13
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS A.ROOT-SERVERS.NET.
. 518400 IN NS B.ROOT-SERVERS.NET.
. 518400 IN NS C.ROOT-SERVERS.NET.
. 518400 IN NS D.ROOT-SERVERS.NET.
. 518400 IN NS E.ROOT-SERVERS.NET.
. 518400 IN NS F.ROOT-SERVERS.NET.
. 518400 IN NS G.ROOT-SERVERS.NET.
. 518400 IN NS H.ROOT-SERVERS.NET.
. 518400 IN NS I.ROOT-SERVERS.NET.
. 518400 IN NS J.ROOT-SERVERS.NET.
. 518400 IN NS K.ROOT-SERVERS.NET.
. 518400 IN NS L.ROOT-SERVERS.NET.
. 518400 IN NS M.ROOT-SERVERS.NET.
;; ADDITIONAL SECTION:
A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
B.ROOT-SERVERS.NET. 3600000 IN A 192.228.79.201
C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
J.ROOT-SERVERS.NET. 3600000 IN A 192.58.128.30
K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
;L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
L.ROOT-SERVERS.NET. 3600000 IN A 199.7.83.42
M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33
;; Query time: 81 msec
;; SERVER: 198.41.0.4#53(a.root-servers.net.)
;; WHEN: Sun Feb 1 11:27:14 2004
;; MSG SIZE rcvd: 436
次に、ローカルホストの正引ファイルを作ってやります。
[root@hoge named]# vi localhost.zone
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
IN A 127.0.0.1
そして、ローカルホストの逆引ファイルを作ってやります。
[root@hoge named]# vi 0.0.127.in-addr.arpa
$TTL 300
@ IN SOA localhost. root.localhost.(
2008013001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
■■ 確認
named-checkzoneコマンドで、ゾーンファイルの書式を確認します。
[root@hoge named]# named-checkzone localhost localhost.zone
zone localhost/IN: loaded serial 2008013001
OK
[root@hoge named]# named-checkzone 127.0.0.1 0.0.127.in-addr.arpa
zone 127.0.0.1/IN: loaded serial 2008013001
OK
named-checkconfコマンドで、named.confの書式を確認します。
[root@hoge named]# named-checkconf /etc/named.conf
■■ named起動
■ syslog (/var/log/messags) をtailしながら、namedを起動
[root@hoge named]# cd
[root@hoge ~]# /etc/init.d/named start
Starting named: [ OK ]
[root@hoge ~]# tail -f /var/log/messages
Jan 30 16:25:08 hoge named[7117]: starting BIND 9.2.4 -u named
Jan 30 16:25:08 hoge named[7117]: using 1 CPU
Jan 30 16:25:08 hoge named[7117]: loading configuration from '/etc/named.conf'
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface lo, 127.0.0.1#53
Jan 30 16:25:08 hoge named[7117]: listening on IPv4 interface eth0, 219.94.xxx.xxx#53
Jan 30 16:25:08 hoge named[7117]: command channel listening on 127.0.0.1#953
Jan 30 16:25:08 hoge named[7117]: command channel listening on ::1#953
Jan 30 16:25:08 hoge named[7117]: zone 0.0.127.in-addr.arpa/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: zone localhost/IN: loaded serial 2008013001
Jan 30 16:25:08 hoge named[7117]: running
Jan 30 16:25:08 hoge named: named startup succeeded
■ namedの自動起動設定
まずは現状確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:off 3:off 4:off 5:off 6:off
自動起動
[root@hoge ~]# chkconfig named on
自動起動確認
[root@hoge ~]# chkconfig named --list
named 0:off 1:off 2:on 3:on 4:on 5:on 6:off
プロセス確認
[root@hoge ~]# ps auxwww | grep [n]amed
named 7117 0.0 0.1 37240 2512 ? Ssl 16:25 0:00 /usr/sbin/named -u named
■■ iptablesの設定
これまで、hogeサーバはメールサーバとして機能させていたので、tcp/udpの53番は
許可していませんでした。なので、iptablesの穴をあけてやることにします。
■ /etc/sysconfig/iptablesファイルの修正
[root@hoge ~]# cd /etc/sysconfig/
[root@hoge sysconfig]# cp -p iptables iptables.20080130
[root@hoge sysconfig]# vi iptables
以下を追記
# DNS
-A INPUT -p udp --dport 53 -j ACCEPT
-A INPUT -p tcp --dport 53 -j ACCEPT
[root@hoge sysconfig]# diff iptables iptables.20080130
56,59d55
< # DNS
< -A INPUT -p udp --dport 53 -j ACCEPT
< -A INPUT -p tcp --dport 53 -j ACCEPT
<
■ iptablesの解除タイマーを仕込む
万が一のOPミスでサーバにログインできなくなったらどうにもならないので、
iptablesをstopさせるよう、cronに仕込んでおきます。
[root@hoge sysconfig]# cd /etc/cron.d
[root@hoge cron.d]# vi iptables_clear
以下を追記
0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
■■ 事前確認
[root@hoge cron.d]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■■ iptables 再起動
[root@hoge cron.d]# /etc/init.d/iptables restart
Flushing firewall rules: [ OK ]
Setting chains to policy ACCEPT: filter [ OK ]
Unloading iptables modules: [ OK ]
Applying iptables firewall rules: [ OK ]
■■ 事後確認
[root@hoge sysconfig]# iptables -L -n
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT icmp -- 0.0.0.0/0 0.0.0.0/0 icmp type 255
ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 218.219.xxx.xxx 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:22
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.yyy 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:23
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:4949
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 218.216.xx.yyz 0.0.0.0/0 tcp dpt:21
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:465
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:587
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443
ACCEPT tcp -- 210.255.xx.xx/28 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 219.94.xxx.zzz 0.0.0.0/0 tcp dpt:5432
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:53 ← ここ
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:53 ← ここ
ACCEPT udp -- 210.255.xx.xx/28 0.0.0.0/0 udp dpt:161
DROP all -- 0.0.0.0/0 0.0.0.0/0
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
■ iptablesの解除タイマーをoffにする
[root@hoge cron.d]# vi iptables_clear
以下、コメントアウトする
#0,10,20,30,40,50 * * * * root /etc/init.d/iptables stop
以上で、キャッシュサーバのできあがりです。
ね、簡単でしょ?
さてさてお待たせしました。bindでセカンダリDNSサーバを作ろう!の後編です。というか、ここからが本編ですね。今回は、bindのインストールから行います。
■■ bindのインストール
※ うちの環境はCentOS4.5なので、yumで楽々インストールです。
# yum install bind
ここから、各種ゾーンファイル作成とnamed.confの記述、bind起動の解説になりますが、
やること少ないクセにかなり長いので「【bind】 セカンダリDNSサーバ構築 2 セカンダリ側の設定の続きを読む」をクリックしてください。
■■ bindのインストール
※ うちの環境はCentOS4.5なので、yumで楽々インストールです。
# yum install bind
ここから、各種ゾーンファイル作成とnamed.confの記述、bind起動の解説になりますが、
やること少ないクセにかなり長いので「【bind】 セカンダリDNSサーバ構築 2 セカンダリ側の設定の続きを読む」をクリックしてください。
このblogを動かしてるサーバはDNSサーバも兼ねていて、10個のゾーンを管理しています。
そのうちDNSだけでも外出ししたいなー・・・と思っているので、予行演習を兼ねて、うちで持っているもう1台のサーバにもbindをインストールして、セカンダリとして動かすことにしました。
■■ 環境
プライマリネームサーバ 192.168.0.2
セカンダリネームサーバ 192.168.0.3
ちなみに、プライマリもセカンダリもCentOS4.5で、bind-9.2.4-27.0.1.el4をyumでインストールしています。
■■ プライマリ側の設定
既存のDNSサーバ(以下プライマリ)のnamed.confには
// 内部ネットワーク定義
acl localnet{
192.168.0.0/24;
127.0.0.1;
};
と
optionsのセクションに
allow-transfer{ localnet; };
を忘れずに追記してください。この設定がないと、192.168.0.0のネットワークにあるセカンダリDNSサーバへゾーン転送ができません。
次に、ココを参考にして、dnssec-keygenコマンドを用いて鍵を生成します。
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST blogcube.info
こうすることで、カレントディレクトリに鍵が生成されます。
そして鍵をnamed.confに貼り付けるわけですが・・・
# ls -l
-rw------- 1 root root 122 12月 4 23:35 Kblogcube.info.+157+11353.key
-rw------- 1 root root 145 12月 4 23:35 Kblogcube.info.+157+11353.private
このように、公開鍵と秘密鍵ができるのです。どっちも中身は一緒で、フォーマットが違うだけなので、公開鍵のほうをcatコマンドで出力します。
# cat Kblogcube.info.+157+11353.key
blogcube.info. IN KEY 512 3 157 UR1t4erqhT~~~~~~~~==
そして、named.confのoptionsセクションの次あたりに
key "blogcube.info" {
algorithm hmac-md5;
secret "UR1t4erqh~~~~~~~~==";
};
と記述します。そして、例えばblogcube.infoのゾーンを定義するのには
zone "blogcube.info" IN {
type master;
file "blogcube.info.db";
notify yes;
allow-update { key blogcube.info; };
};
こう書きます。ちなみに、allow-update { localnet; };と書いてもよいのですが、namedをreloadするたんびに
Dec 4 22:06:52 shasta named[1184]: zone 'blogcube.info' allows updates by IP address, which is insecure
というログが出てしまうので、今回、鍵を登録することにしました。
さて、ここまでできたところで
# named-checkconf
でnamed.confの書式ミスがないか確認します。何も出力されなければOKです。ここまで確認したら、bind(named)をreloadしましょう。
次のエントリでセカンダリ側の設定を書きます。おやすみなさい。
そのうちDNSだけでも外出ししたいなー・・・と思っているので、予行演習を兼ねて、うちで持っているもう1台のサーバにもbindをインストールして、セカンダリとして動かすことにしました。
■■ 環境
プライマリネームサーバ 192.168.0.2
セカンダリネームサーバ 192.168.0.3
ちなみに、プライマリもセカンダリもCentOS4.5で、bind-9.2.4-27.0.1.el4をyumでインストールしています。
■■ プライマリ側の設定
既存のDNSサーバ(以下プライマリ)のnamed.confには
// 内部ネットワーク定義
acl localnet{
192.168.0.0/24;
127.0.0.1;
};
と
optionsのセクションに
allow-transfer{ localnet; };
を忘れずに追記してください。この設定がないと、192.168.0.0のネットワークにあるセカンダリDNSサーバへゾーン転送ができません。
次に、ココを参考にして、dnssec-keygenコマンドを用いて鍵を生成します。
# dnssec-keygen -a HMAC-MD5 -b 512 -n HOST blogcube.info
こうすることで、カレントディレクトリに鍵が生成されます。
そして鍵をnamed.confに貼り付けるわけですが・・・
# ls -l
-rw------- 1 root root 122 12月 4 23:35 Kblogcube.info.+157+11353.key
-rw------- 1 root root 145 12月 4 23:35 Kblogcube.info.+157+11353.private
このように、公開鍵と秘密鍵ができるのです。どっちも中身は一緒で、フォーマットが違うだけなので、公開鍵のほうをcatコマンドで出力します。
# cat Kblogcube.info.+157+11353.key
blogcube.info. IN KEY 512 3 157 UR1t4erqhT~~~~~~~~==
そして、named.confのoptionsセクションの次あたりに
key "blogcube.info" {
algorithm hmac-md5;
secret "UR1t4erqh~~~~~~~~==";
};
と記述します。そして、例えばblogcube.infoのゾーンを定義するのには
zone "blogcube.info" IN {
type master;
file "blogcube.info.db";
notify yes;
allow-update { key blogcube.info; };
};
こう書きます。ちなみに、allow-update { localnet; };と書いてもよいのですが、namedをreloadするたんびに
Dec 4 22:06:52 shasta named[1184]: zone 'blogcube.info' allows updates by IP address, which is insecure
というログが出てしまうので、今回、鍵を登録することにしました。
さて、ここまでできたところで
# named-checkconf
でnamed.confの書式ミスがないか確認します。何も出力されなければOKです。ここまで確認したら、bind(named)をreloadしましょう。
次のエントリでセカンダリ側の設定を書きます。おやすみなさい。
