★DNSのWANへの公開
いよいよWAN(インターネット側)へのDNSの公開です.私のインターネット環境はBFlets-family100+bb.excite(固定IP)月3000円です.固定IPさえあればWAN側へもDNSの公開ができます.もう一つDNSをたてるにはスレーブDNSがいります.GraniteCanyon
http://soa.granitecanyon.com/ や ZoneEdit http://zoneedit.comなどでも設定できますが,私はたにきんさんhttp://www.b-dash.net/にお願いしました.(GraniteCanyonの設定方法はhttp://www.oiden.net/Flets/HowTo7/HowTo7_3/index.htmlに,ZoneEditの設定方法はhttp://www.koro.info/web/dmn/ze_2nd.aspにあります.)
bindの設定が終わり最後にやる事はレジストラへのネームサーバの登録です.私のレジストラはDotster
http://www.dotsterjapan.com/japanese/home/default.htm,ネームサーバーはns.yaguma.comです.レジストラの設定画面からログインし,まずネームサーバ登録(ホスト名とIPアドレスを入力する)してからネームサーバ更新(プライマリDNS
ns.yaguma.comとスレーブDNS ns2.b-dash.netを入力)します.これでしばらくすればwhoisに反映されるようになります.ポートの53番をあけておくのを忘れないように.
今回ここまで来るのにずいぶんの時間がかかってしまいました.dotsterのヘルプがあまりよくないことと私の見落としが原因でした.dotsterのページははっきり言ってわかりにくいです.英語のページよりはましかもしれませんが.わかりづらい文章やおかしな日本語の使い方が所々見られます.またネームサーバの更新,登録が複数の場所で可能なんですがある所ではOK,ある所ではNGとよくわからないところがあります.でも人によっては迷わないかもしれませんし,試行錯誤すれば最後には目的に到達するでしょう.
1.bind9の導入
Vine Linuxにはbind8が用意されていますが,bindはもっともクラッカーに狙われやすいのでよりセキュリティ的に頑丈になったbind9を導入します.chroot
jail方式で導入します.これを使うとbindはjailの中が自分の世界と思って外に出ていけません.詳しくはChroot-BIND
HOWTOhttp://www.linux.or.jp/JF/JFdocs/Chroot-BIND-HOWTO.htmlを見てください.簡単に下記にまとめておきます.
a.bind8を削除する
# rpm -e caching-nameserver
# rpm -e bind-utiles
# rpm -e bind
以前に作っておいた設定ファイルが必要なら削除する前にとっておくこと.(/etc/named.conf,/var/named/*)
b.bind9をインストールする
http://www.isc.org/products/BIND/から現在の最新バージョンであるBIND 9.2.1を入手する.
# tar xzvf bind-9.2.1.tar.gz
# cd bind-9.2.1
# ./configure
# make
# make install
これでお終い.簡単ですね.
c.bind8を削除した時点でbindが使うユーザnamedも削除されていますので,これを登録します.次のような行を
/etc/passwd に加えます。
named:x:200:200:Nameserver:/chroot/named:/bin/false
そして次の行を /etc/group に加えます。
named:x:200:
これでbindがつかうユーザnamedはできました.
d.chrootのディレクトリ構造を作る
# mkdir -p /chroot/named
# cd /chroot/named
# mkdir -p dev etc/namedb/slave var/run
以前に作っておいた設定ファイルを必要に応じてコピー.
# cp -p /etc/named.conf /chroot/named/etc/
# cp -a /var/named/* /chroot/named/etc/namedb/
e.chrootのディレクトリ構造のユーザ・グループ名の設定と必要なファイルの設定
# chown -R named:named /chroot/named/etc/namedb/slave
# chown named:named /chroot/named/var/run
# mknod /chroot/named/dev/null c 1 3
# mknod /chroot/named/dev/random c 1 8
# chmod 666 /chroot/named/dev/{null,random}
この辺りは私にとってはおまじないみたいなもの.よく意味が分かっていません.
f.ログファイルを設定
/etc/rc.d/init.d/syslog内にある以下の一行.
SYSLOGD_OPTIONS="-m 0 -a"を
SYSLOGD_OPTIONS="-m 0 -a /chroot/named/dev/log"
に変更する.こうすることによってログがとれるようになると書いてありました.変更したら
# service syslog restart を.
g.パーミッションを厳しくする.
# chown root /chroot
# chmod 700 /chroot
# chown named:named /chroot/named
# chmod 700 /chroot/named
h./etc/rc.d/init.d/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 /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 /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
# chmod 700 /etc/rc.d/init.d/named
# service named start
はいこれでbindは動き始めます.
2.設定ファイル
bind9になってからview機能ができ,lan側設定とwan側設定を簡単にできるようになりました.jail内にいるとbindは/chroot/namedが/になりますのでoptionsのディレクトリ名は/chroot/namedがありません.また,2個目のdomainを取ったときの設定はこちらにあります.
http://yaguma.com/Server/2domain.html
/chroot/named/etc/named.conf
options {
directory "/etc/namedb";
pid-file "/var/run/named.pid";
statistics-file "/var/run/named.stats";
};
// ローカルネットワークの設定
acl localnet {
192.168.1.0/24;
127.0.0.1;
};
// lan側の設定
view "domestic" {
match-clients { localnet; };
// ルートのゾーンファイル
zone "." {
type hint;
file "named.ca";
};
// localhost正引き
zone "localhost" {
type master;
file "localhost.zone";
};
// localhost逆引き
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
// 自ドメイン正引き
zone "yaguma.com" {
type master;
file "yaguma.com.local";
};
// 自ドメイン逆引き
zone "1.168.192.in-addr.arpa" {
type master;
file "yaguma.com.rev";
};
};
// wan側設定
view "world" {
match-clients { any; };
// 自ドメイン正引き
zone "yaguma.com" {
type master;
file "yaguma.com.zone";
// たにきんさんにお願いしたスレーブDNSのIP.ここ以外の転送は不可.
allow-transfer { 219.117.212.40; };
};
};
lan側の正引きファイル
/chroot/named/etc/namedb/yaguma.com.local
TTL 1D
@ IN SOA ns.yaguma.com. tanaka.yaguma.com. (
2002122101 ;serial
3H ;refresh
7200 ;retry
604800 ;expire
86400 ) ;minimum
IN NS ns.yaguma.com.
IN MX 10 mail.yaguma.com.
IN A 192.168.1.101
ns IN A 192.168.1.101
www IN A 192.168.1.101
mail IN A 192.168.1.101
bfle IN A 192.168.1.1
savb IN A 192.168.1.100
sav IN A 192.168.1.101
vine IN A 192.168.1.102
* IN A 192.168.1.101
sav,savb,vineと3台のコンピューターをAレコードに登録しています.bfleはルータです.www,mail,savはnsのCNAMEとして書くこともできます.あまり感心しないことですが.
www IN CNAME ns
mail IN CNAME ns
sav IN CNAME ns
lan側の逆引きファイル
$TTL 1D
@ IN SOA ns.yaguma.com. tanaka.yaguma.com. (
2002122101 ;serial
3H ;refresh
7200 ;retry
604800 ;expire
86400 ;minimum
)
IN NS ns.yaguma.com.
1 IN PTR bfle.yaguma.com.
100 IN PTR savb.yaguma.com.
101 IN PTR sav.yaguma.com.
102 IN PTR vine.yaguma.com.
wan側の正引きファイル
$TTL 1D
@ IN SOA ns.yaguma.com. tanaka.yaguma.com. (
2002122401 ;serial
3H ;refresh
3600 ;retry
604800 ;expire
86400 ;minimum
)
IN NS ns.yaguma.com. ;Primary
IN NS ns2.b-dash.net.
;Slave
IN MX 10 yaguma.com.
IN A 219.111.9.211
ns IN A 219.111.9.211
www IN A 219.111.9.211
wan側逆引きファイルはISPから権限委譲されていないので書いていません.逆引きを設定したとしても
# nslookup 219.111.9.211
Server: 127.0.0.1
Address: 127.0.0.1#53
11.9.111.219.in-addr.arpa name = 211.9.111.219.st.excite.co.jp.
という結果で正確な逆引きはできません.
謝辞 上記の設定に際して以下のHPを参考にさせていただきました.
おいでんさんホームページ http://www.oiden.net/
Dream-Seedさんホームページ http://www.dream-seed.com/
Copyright 2002-2003 Kai All Rights Reserved & This site is Link Free
戻る