はじめに †このさいと(きのさいと http://www.masatom.in/pukiwiki/FrontPage/ ) は自宅の自前サーバでホスティングしています。で、このサーバへのアクセスですが、あたりまえですがインターネット側のいわゆる「外側のLAN」からも、自宅内のいわゆる「内側のLAN」からも、同じサーバ名 www.masatom.in でアクセスしたいわけです。 ただルータの設定上、上記のように同じサーバ名でアクセスできない場合があります。たとえばwww.masatom.inにはグローバルIPが振られてます。で、内側のLANからそのサーバ名にアクセスすると、
となりますが、外と内をつなぐルータがそのアクセスをはじくケースがあります。ようするにルータのセキュリティで「内側のセグメントのIPアドレスは、外からアクセスしてきても入れてあげない」ってことをやってるわけですね。IP偽装の防止だと思います。 外と内をつなぐルータがそのアクセスを許可したとしても、内側のネットワークからサーバにアクセスする際、いちいち外側からぐるって回るのもおかしいし、そもそもセキュリティ的にも好ましくありません。 まあ、というわけで内側のPCからは、内側のIPアドレスでアクセスできるよう www.masatom.in をPCのhostsで内側のIPに名前解決させてたのですが、逆にそうすると、PCを外に持って行ったときにいちいちhostsを直さなくちゃだめで、それもメンドクサイです。うーんと思ってたのですが「じゃあ内側用のDNSたてて、内側のIPアドレスに名前解決させればいいじゃん。内側のネットワークはDHCPなんで、内側のDHCPでDNSをそのサーバにしちゃえばいいし」という結論になりました。こうしておけば、
ということで、手間なしで理想の環境が構築できそうです。 前置きが長くなりましたが、そんなことがあって、以下、自宅の内側用のDNSを構築したときの記録です。 さて手順の前に今回のネットワーク環境についてです。
目的は内側のネットワークからアクセスの時は、www2.masatom.in を 192.168.1.3に名前解決し、ついでに外からのアクセスの時は 222.228.xxx.yyy に名前解決するDNSサーバを構築する、ということですね*1。 さてさていろいろ書こうと思ったのですが、参考にさせていただいた はじめての自宅サーバ構築 Fedora/CentOS - DNSサーバの構築(bind) というサイトに、ものすごーく丁寧に説明が書いてあるので、うちでは備忘録程度にとどめておこうと思います。 DNSサーバのインストール †まずはDNSサーバをインストールします。プロダクトとしてはネームサーバの役割をするbindと、キャッシュネームサーバの役割をするcaching-nameserver をインストールします。また、bindをroot以外のユーザ(named)で稼働させるためのbind-chrootをインストールします。が今回使っているCentOS5.2では、すでにbindとbind-chrootはインストールされていました。 ただ、ここではまずbindをrootで稼働させて、bind-chrootをインストールしてnamed で稼働させるようにしたいので、bind-chrootはいったんアンインストールします。ようするに手順は以下の通り。 yum -y remove bind-chroot <- bind-chrootをアンインストール yum -y install caching-nameserver <- caching-nameserver をインストール /etc/named.caching-nameserver.conf の設定 †bindとcaching-nameserver をインストールした場合、設定ファイルは /etc/named.caching-nameserver.conf です。これを以下のように編集します。 // // named.caching-nameserver.conf // // Provided by Red Hat caching-nameserver package to configure the // ISC BIND named(8) DNS server as a caching only nameserver // (as a localhost DNS resolver only). // // See /usr/share/doc/bind*/sample/ for example named configuration files. // // DO NOT EDIT THIS FILE - use system-config-bind or an editor // to create named.conf - edits to this file will be lost on // caching-nameserver package upgrade. // options { //listen-on port 53 { 127.0.0.1; }; //listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; // Those options should be used carefully because they disable port // randomization // query-source port 53; // query-source-v6 port 53; //allow-query { localhost; }; allow-query { any; }; }; logging { channel default_debug { file "data/named.run"; severity dynamic; }; }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; view localhost_resolver { match-clients { localhost; }; match-destinations { localhost; }; recursion yes; include "/etc/named.rfc1912.zones"; include "/etc/named.masatom.in.lan"; }; view internal { match-clients { localnets; }; match-destinations { localnets; }; recursion yes; include "/etc/named.masatom.in.lan"; }; view external { match-clients { any; }; match-destinations { any; }; recursion no; include "/etc/named.masatom.in.wan"; }; /etc/named.masatom.in.lan, /etc/named.masatom.in.wan の設定 †named.caching-nameserver.conf から参照されているファイルnamed.masatom.in.lan,named.masatom.in.wan は以下の通りです。
内向きの正引き設定 †view /var/named/masatom.in.lan $TTL 86400 @ IN SOA masatom.in. root.masatom.in.( 2007031400 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; negative (1 day) ) IN NS masatom.in. IN A 192.168.1.3 www2 IN A 192.168.1.3 www IN A 192.168.1.3 内向きの逆引き設定 †view /var/named/1.168.192.in-addr.arpa.db $TTL 86400 @ IN SOA masatom.in. root.masatom.in.( 2007031400 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; negative (1 day) ) IN NS masatom.in. 3 IN PTR masatom.in. 外向きの正引き設定 †view /var/named/masatom.in.wan $TTL 86400 @ IN SOA masatom.in. root.masatom.in.( 2007031400 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; negative (1 day) ) IN NS masatom.in. IN MX 10 mail.masatom.in. IN A 222.228.xxx.yyy wwww IN CNAME masatom.in. wwww2 IN CNAME masatom.in. 外向きの逆引き設定 †view /var/named/xxx.228.222.in-addr.arpa.db $TTL 86400 @ IN SOA masatom.in. root.masatom.in.( 2007031400 ; serial 3600 ; refresh (1 hour) 900 ; retry (15 minutes) 604800 ; expire (1 week) 86400 ; negative (1 day) ) IN NS masatom.in. yyy IN PTR masatom.in. ルートDNS情報(named.ca)の設定 †[root@www named]# pwd /var/named [root@www named]# wget ftp://ftp.nic.ad.jp/internet/rs.internic.net/domain/named.root 23:54:53 (1.10 MB/s) - `named.root' を保存しました [2878] [root@www named]# mv named.root named.ca [root@www named]# 結局それぞれの設定は以下の通りになりました。 [root@www etc]# pwd /etc [root@www etc]# ls -lrt name* -rw-r----- 1 root named 955 7月 12 09:27 named.rfc1912.zones -rw-r----- 1 root named 1601 10月 7 10:51 named.caching-nameserver.conf -rw-r--r-- 1 root root 240 10月 7 10:54 named.masatom.in.lan -rw-r--r-- 1 root root 258 10月 7 10:55 named.masatom.in.wan [root@www etc]# [root@www etc]# cd /var/named/ [root@www named]# ls -lrt 合計 68 drwxr-x--- 5 root named 4096 10月 7 10:50 chroot -rw-r--r-- 1 root root 545 10月 7 10:55 masatom.in.lan -rw-r--r-- 1 root root 455 10月 7 10:56 1.168.192.in-addr.arpa.db -rw-r--r-- 1 root root 548 10月 7 10:57 masatom.in.wan -rw-r--r-- 1 root root 450 10月 7 10:58 xxx.228.222.in-addr.arpa.db -rw-r--r-- 1 root root 2878 10月 7 10:58 named.ca [root@www named]# bindの再起動 †[root@www named]# /etc/init.d/named restart named を停止中: [ OK ] named を起動中: [ OK ] [root@www named]# ps -ef| grep named named 7151 1 0 11:03 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.caching-nameserver.conf root 7161 6574 0 11:03 pts/2 00:00:00 grep named [root@www named]# あれーnamedでうごいてんな(´д`;)。まあヨシとしましょう。 疎通 †[root@www named]# nslookup www2.masatom.in localhost Server: localhost Address: 127.0.0.1#53 Name: www2.masatom.in Address: 192.168.1.3 [root@www named]# OKです。 bind-chroot のインストール †最後にbind-chrootをインストールします。インストールするとbindがnamedユーザで稼働するようになり、設定ファイルの場所は /etc/,や/var/から /var/named/chroot/etc,var などにシンボリックリンクされます。 [root@www etc]# yum -y install bind-chroot [root@www etc]# pwd /etc [root@www etc]# ls -lrt name* lrwxrwxrwx 1 root named named.rfc1912.zones -> /var/named/chroot//etc/named.rfc1912.zones lrwxrwxrwx 1 root named named.masatom.in.wan -> /var/named/chroot//etc/named.masatom.in.wan lrwxrwxrwx 1 root named named.masatom.in.lan -> /var/named/chroot//etc/named.masatom.in.lan lrwxrwxrwx 1 root named named.caching-nameserver.conf -> /var/named/chroot//etc/named.caching-nameserver.conf [root@www etc]# [root@www named]# pwd /var/named [root@www named]# ls -lrt 合計 24 lrwxrwxrwx 1 root named named.ca -> /var/named/chroot//var/named/named.ca lrwxrwxrwx 1 root named masatom.in.wan -> /var/named/chroot//var/named/masatom.in.wan lrwxrwxrwx 1 root named masatom.in.lan -> /var/named/chroot//var/named/masatom.in.lan lrwxrwxrwx 1 root named xxx.228.222.in-addr.arpa.db -> /var/named/chroot//var/named/1.228.222.in-addr.arpa.db lrwxrwxrwx 1 root named 1.168.192.in-addr.arpa.db -> /var/named/chroot//var/named/1.168.192.in-addr.arpa.db drwxr-x--- 6 root named 4096 10月 7 11:06 chroot [root@www named]# 最後にもう一度再起動します。 [root@www etc]# /etc/init.d/named restart named を停止中: [ OK ] named を起動中: [ OK ] [root@www etc]# [root@www etc]# ps -ef| grep named named 7316 1 0 10:19 ? 00:00:00 /usr/sbin/named -u named -c /etc/named.caching-name server.conf -t /var/named/chroot [root@www etc]# TIPS集 †一部のサーバを外部を指定する †自前でサーバを運用してて、一部のサーバ名のアクセスだけは外のサーバを指定したいなんて時があります。たとえばWEBサーバは自前で用意しているけど、メールサーバはGoogle AppsのGmailを使いたい、とかですね。 そんな場合は 内向きの正引き設定 (/var/named/masatom.in.lan) に m IN CNAME ghs.l.google.com. <-m.masatom.inはこれにするって設定 などのレコードを追加すればOKです。 関連リンク †この記事は 現在のアクセス:7184 |