怎���雍屯V� Bind 9 DNS Server
在Solaris 10 版本,只要需要建立好 DNS Server 的�O定�n /etc/named.conf ,�男��� Solaris 10,Bind 9 DNS Server 就��自���印�
��雍屯V�DNS Server
�f版本 Solaris | Solaris 10 | |
---|---|---|
��� DNS Server |
/etc/init.d/named start |
svcadm enable dns/server 或 svcadm enable dns/server:default |
停止 DNS Server | /etc/init.d/named stop | svcadm disable dns/server 或 svcadm disable dns/server:default |
如何�O定 Bind 9 DNS Server
�O定 Bind 9 DNS Server的第一��工作,就是建立 /etc/named.conf �@��文件�n。
1. 在建立之前,先做一些��浜图僭O:
IP Address | Domain Name | |
---|---|---|
Domain Name | 202.134.130.131 | tophk.net |
Gateway / Router IP Address | 202.134.130.129 | gw1.tophk.net |
DNS Server IP Address | 202.134.130.130 | ns1.tophk.net |
Web Server | 202.134.130.131 | www.tophk.net |
FTP Server | 202.134.130.131 | ftp.tophk.net |
MX Mail Server | 202.134.130.132 | mail.tophk.net |
SMTP Server | 202.134.130.132 | smtp.tophk.net |
POP Server | 202.134.130.133 | pop.tophk.net |
2. �� /etc/named.conf
options {directory "/etc/named"; pid-file "/var/run/named.pid";}; controls {/* empty */}; // Root server hints zone "." {type hint; file "root.hint";}; // Provide a reverse mapping for the loopback address 127.0.0.1 zone "0.0.127.in-addr.arpa" {type master; file "localhost.rev"; notify no;}; zone "tonhk.net" {type master; file "db.tophk";};options {directory "/etc/named"; pid-file "/var/run/named.pid";};
directory "/etc/named"
除了 /etc/named.conf 之外, �要建立一��目��o DNS Server 存放 每一��Domain 的���Y料。�@��例子�� /etc/named。
建立 /etc/named 目�:
# mkdir /etc/named
pid-file "/var/run/named.pid"
DNS Server �\作的 process ID 存放在 /var/run/named.pid
controls {/* empty */};
允�S任何人使用�@台 DNS Server
zone "." {type hint; file "root.hint";};
Root Cache �n存放在 /etc/named/root.hint
root.hint 文件�却娣帕怂�有最��� DNS Server 的 IP 和�Y料,Bind 9 DNS Server ��向�@些 DNS Server 查� Internet �人�有 Domain Name 的�Y料。
建立和下�d root.hint �n:
# dig @a.root-servers.net . ns > /etc/named/root.hint
或自行�� /etc/named/root.hint �n:
$TTL 999999 . IN NS A.ROOT-SERVERS.NET. . IN NS B.ROOT-SERVERS.NET. . IN NS C.ROOT-SERVERS.NET. . IN NS D.ROOT-SERVERS.NET. . IN NS E.ROOT-SERVERS.NET. . IN NS F.ROOT-SERVERS.NET. . IN NS G.ROOT-SERVERS.NET. . IN NS H.ROOT-SERVERS.NET. . IN NS I.ROOT-SERVERS.NET. . IN NS J.ROOT-SERVERS.NET. . IN NS K.ROOT-SERVERS.NET. . IN NS L.ROOT-SERVERS.NET. . IN NS M.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. IN A 198.41.0.4 B.ROOT-SERVERS.NET. IN A 192.228.79.201 C.ROOT-SERVERS.NET. IN A 192.33.4.12 D.ROOT-SERVERS.NET. IN A 128.8.10.90 E.ROOT-SERVERS.NET. IN A 192.203.230.10 F.ROOT-SERVERS.NET. IN A 192.5.5.241 G.ROOT-SERVERS.NET. IN A 192.112.36.4 H.ROOT-SERVERS.NET. IN A 128.63.2.53 I.ROOT-SERVERS.NET. IN A 192.36.148.17 J.ROOT-SERVERS.NET. IN A 192.58.128.30 K.ROOT-SERVERS.NET. IN A 193.0.14.129 L.ROOT-SERVERS.NET. IN A 198.32.64.12 M.ROOT-SERVERS.NET. IN A 202.12.27.33zone "0.0.127.in-addr.arpa" {type master; file "localhost.rev"; notify no;};
127.0.0.x 的 reverse lookup 功能。
�@是用�矶��x 127.0.0.0 至127.0.0.255 的 Domain 是什�N, 但��T上, �@�����的 IP 是�]有什�N需要定�x的。
基本上,只有 127.0.0.1 有需要 reverse lookup。
127.0.0.x 的 reverse lookup �Y料�n存放在 /etc/named/localhost.rev �取�
�� /etc/named/localhost.rev �n:
$TTL 86400 @ IN SOA 0.0.127.in-addr.arpa. info.tophk.net. ( 2 ; Serial 3600 ; Refresh every hour 900 ; Retry every 15 minutes 3600000 ; Expire 1000 hours 3600 ) ; Minimum 1 hour IN NS ns1.tophk.net. IN NS ns2.tophk.net. 1 600 IN PTR localhost$TTL 86400
TTL (Time to Live) 。通知其他 DNS Server 不要 Cache (�捍�) ���@�� Zone record 的�Y料超�^ 24小�r (86400秒)。
@ IN SOA 0.0.127.in-addr.arpat. info.tophk.net. (
���的 Zone 名 0.0.127.in-addr.arpa.。
Zone File ��人�� info.tophk.net.。 ( 即 [email protected] )
2 ; Serial
Zone file 版本�,每次改��热葆嵝枰�把版本��抵导哟螅�例如,把2改成3。Slave DNS Server ��根���@�� Master DNS Server 的 Zone file 版本���Q定是否需要更新 Slave DNS Server 的�Y料 ( 即 Zone Transfer )。
3600 ; Refresh every hour
通知 Slave DNS Server 每格一小�r (3600秒),�z查�@�� Zone file 版本�是否有更改 。
900 ; Retry every 15 minutes
通知 Slaver DNS Server ,如果�o法�M行�z查�@�� Master Zone file 版本�,要每格15分� (900秒) 再�一次。
3600000 ; Expire 1000 hours
通知 Slaver DNS Server ,如果在1000小�r�� (3600000秒) 也�o法�M行�z查�@�� Master Zone file 版本�,Slave DNS Server 就��自��h除�@�� Zone Copy。
3600 ) ; Minimum 1 hour
通知其它的 DNS server cache �@�PZone File �热�r, 最�L不���超�^�@��一��小�r (3600秒)。
IN NS ns1.tophk.net.
第一台 DNS Server 名�Q�� ns1.tophk.net。
IN NS ns2.tophk.net.
第二台 DNS Server 名�Q�� ns2.tophk.net。
1 600 IN PTR localhost
127.0.0.1 是 localhost。
zone "tonhk.net" {type master; file "db.tophk";};
Doamain Name �� tophk.net
保存了 tophk.net ���Y料的 Zone file 位置,/etc/named/db.tophk。
�� /etc/named/db.tophk �n:
$TTL 18000 @ IN SOA tophk.net. info.tophk.net. ( 2005030104 ; Serial 36000 ; refresh: 10 hrs 1800 ; retry: 30 mins 3456000 ; expire: 40 days 36000 ; minimum: 10 hrs ) IN NS ns1.tophk.net. IN NS ns1.formulahk.com. IN A 202.134.130.131 IN MX 10 mail.tophk.net. ns1 600 IN A 202.134.130.130 www 600 IN CNAME tophk.net. ftp 600 IN CNAME tophk.net. mail 600 IN A 202.134.130.132 smtp 600 IN CNAME mail.tophk.net. pop 600 IN A 202.134.130.133 gw1 600 IN A 202.134.130.129$TTL 18000
TTL (Time to Live) 。通知其他 DNS Server 不要 Cache (�捍�) ���@�� Zone record 的�Y料超�^ 5小�r (18000秒)。
@ IN SOA tophk.net. info.tophk.net. (
���的 Zone 名 tophk.net.。
Zone File ��人�� info.tophk.net.。 ( 即 [email protected] )
2005030104 ; Serial
Zone file 版本�,每次改��热葆嵝枰�把版本��抵导哟�3。Slave DNS Server ��根���@�� Master DNS Server 的 Zone file 版本���Q定是否需要更新 Slave DNS Server 的�Y料 ( 即 Zone Transfer )。
36000 ; Refresh 10 hour
通知 Slave DNS Server 每格10小�r (36000秒),�z查�@�� Zone file 版本�是否有更改 。
1800 ; Retry: 30 minutes
通知 Slaver DNS Server ,如果�o法�M行�z查�@�� Master Zone file 版本�,要每格15分� (900秒) 再�一次。
3456000 ; Expire 40 days
通知 Slaver DNS Server ,如果在40日�� (3456000秒) 也�o法�M行�z查�@�� Master Zone file 版本�,Slave DNS Server 就��自��h除�@�� Zone Copy。
36000 ) ; Minimum 10 hour
通知其它的 DNS server cache �@�PZone File �热�r, 最�L不���超�^�@��10��小�r (36000秒)。
IN NS ns1.tophk.net.
tophk.net 的第一台 DNS Server 名�Q�� ns1.tophk.net。
IN NS ns2.formulahk.com.
tophk.net 的第二台 DNS Server 名�Q�� ns1.formulahk.com。
IN A 202.134.130.131
tophk.net 的 IP Address �� 202.134.130.131 。
IN MX 10 mail.tophk.net.
tophk.net 的Mail Exchange Server �� mail.tophk.net , ��� mail.tophk.net 的 IP Address �� 202.134.105.132。
ns1 600 IN A 202.134.130.130
ns1.tophk.net 的 IP Address �� 202.134.130.130。
www 600 IN CNAME tophk.net.
www.tophk.net 的���名�Q�� tophk.net,即 IP Address �� 202.134.130.131。
ftp 600 IN CNAME tophk.net.
ftp.tophk.net 的���名�Q�� tophk.net,即 IP Address �� 202.134.130.131。
mail 600 IN A 202.134.130.132
mail.tophk.net 的 IP Address �� 202.134.130.132。
smtp 600 IN CNAME mail.tophk.net.
smtp.tophk.net 的���名�Q�� mail.tophk.net,即 IP Address �� 202.134.130.132。
pop 600 IN A 202.134.130.133
pop.tophk.net 的 IP Address �� 202.134.130.133。
gw1 600 IN A 202.134.130.129
gw1.tophk.net 的 IP Address �� 202.134.130.129。
3. �O定完成後,可以�L���� Bind 9 DNS Server
# svcadm disable dns/server
# svcadm enable dns/server什�N是 Chroot Jail (保安�O牢)?
Chroot Jail ,就好像�橄到y建立一���O牢,把你需要�绦械某淌椒旁��O牢中�\行。
而�@���O牢什�N也�]有,�O牢�e面有的系�y程式,只�o�o足�蚰闼�需要�\行的程式使用。
一但因�槟愕某淌匠霈F了系�y漏洞,而使到Hacker可以透�^你的程式�M入系�y,那���r候,你都可以不用太��心Hacker��能在你的系�y中做到什�N。
因�椋�Chroot Jail 架���e有的程式很少,�B shell、ls 和 一些基本Unix ���有的指令和程式也�]有。Hacker��,那�e�能�蛐薷哪愕南到y和上�d�件。
就算你他��能�蜃鞒龊艽蟮钠�模�他��能所破�牡囊仓徊贿^是 Chroot Jail �O牢中的假系�y,他��不可以穿�^ Chroot Jail �O牢�M入真正的系�y。
而且,一般�绦�Chroot Jail �O牢中的程式�r,大部份都不��使用 root 的�嘞�磉\作,�M量使用一些�]意�x的使用者�嘞�磉\作 Chroot Jail �O牢中的程式。
所以,Hacker �� hack �M�磲幔��@得的�嘞藓�直是低到不能再低。 就是建立了�@�N什�N�Y源都不足的�h境,保安方面便提高了很多。
一����蔚睦�子,在 Chroot Jail 中�绦� Shell �h境
�e例�f明如何建立一�� Chroot Jail �O牢和在Chroot Jail中的情�r。
# ldd /chroot/shell/bin/sh libgen.so.1 => /usr/lib/libgen.so.1 libsecdb.so.1 => /usr/lib/libsecdb.so.1 libc.so.1 => /usr/lib/libc.so.1 libnsl.so.1 => /usr/lib/libnsl.so.1 libcmd.so.1 => /usr/lib/libcmd.so.1 libmp.so.2 => /usr/lib/libmp.so.2 libmd5.so.1 => /usr/lib/libmd5.so.1 libscf.so.1 => /usr/lib/libscf.so.1 libdoor.so.1 => /usr/lib/libdoor.so.1 libuutil.so.1 => /usr/lib/libuutil.so.1 libm.so.2 => /usr/lib/libm.so.2在�@�e我只�}制 libgen.so.1,因�椋�能用就算,而且,其它的 libraries 就算�]�}制也能�\作。��然,�@也要按照你的��人要求��Q定。
# chroot /chroot /bin/sh # ls bin dev etc lib tmp usr # ls -l bin total 188 -r-xr-xr-x 1 0 1 15400 Oct 4 08:42 ls -r-xr-xr-x 1 0 1 79380 Oct 4 08:18 sh # ls -l dev total 0 crw-r--r-- 1 0 1 13, 2 Oct 4 08:30 null crw-r--r-- 1 0 1 13, 12 Oct 4 08:26 zero # ls -l usr/lib total 2408 -rwxr-xr-x 1 2 2 198836 Oct 4 08:29 ld.so.1 -rwxr-xr-x 1 2 2 959436 Oct 4 08:29 libc.so.1 -rwxr-xr-x 1 2 2 4484 Oct 4 08:29 libdl.so.1 -rwxr-xr-x 1 0 1 38944 Oct 4 08:31 libgen.so.1 # pwd /
#
�� Bind 9 DNS Server 建立一��安全的 Chroot Jail �h境
�� DNS Server 建立 Jail �O牢目�
�� Solaris 10 建立一��新 service
原本的 DNS Server Service 名�Q�� dns/server。
建立新service 後,以後要��优f版本的 DNS service �r,不能只��� dns/server,而要改�� dns/server:default。
新 DNS Server Chroot service 名�Q�椋� dns/server:chroot
�_始建立新 Service
# cd /var/svc/manifest/network/dns
# cp server.xml server-chroot.xml�� server-chroot.xml
------------------------
�ふ�
<instance name='default' enabled='false' >
改��
<instance name='chroot' enabled='false' >
------------------------
�ふ�
exec='/usr/sbin/named'
改��
exec='/usr/sbin/named -t /chroot/dns'
------------------------
�ふ�
privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr,file_dac_read,file_dac_search,sys_resource' />
改��
privileges='basic,!proc_session,!proc_info,!file_link_any,net_privaddr,priv_proc_chroot,priv_file_dac_read,file_dac_search,sys_resource' />
------------------------
�ふ�
user='root'
改��
user='noaccess'
------------------------
存�n
------------------------停止�A�O DNS service
# svcadm disable dns/server:default
�R入新的 DNS Server Chroot service
# svccfg import server-chroot.xml��� chroot DNS service
# svcadm enable dns/server:chroot
# svcs dns/server STATE STIME FMRI disabled 6:21:03 svc:/network/dns/server:default online 6:27:01 svc:/network/dns/server:chroot #Bind 9 DNS Server �F在已�能�蛟� Chroot Jail �h境中�\行
升� Solaris 10 �鹊� Bind 9 DNS Server 到 Version 9.3.2
到 ISC BIND 下�d BIND 9.3.2 ( http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz )
# cd /usr/local/src
# wget http://ftp.isc.org/isc/bind9/9.3.2/bind-9.3.2.tar.gz
# cp bind-9.3.2.tar.gz ..
# cd ..
# gzip -d bind-9.3.2.tar.gz
# tar -vxf bind-9.3.2.tar
# rm bind-9.3.2.tar
# cd bind-9.3.2
# ./configure
.....
# make
.....
# make install
# cd /usr/sbin
# mv named named.orig
# mv named-checkconf named-checkconf.orig
# mv named-checkzone named-checkzone.orig
# cp /usr/local/sbin/named .
# cp /usr/local/sbin/named-checkconf .
# cp /usr/local/sbin/named-checkzone .
�z查新安�b的 BIND 9 DNS Server 版本
# /usr/sbin/named -v
BIND 9.3.2
�男��� Chroot Jail 了的 DNS Service
# svcadm disable dns/server:chroot
# svcadm enable dns/server:chroot# svcs dns/server STATE STIME FMRI disabled 6:21:03 svc:/network/dns/server:default online 6:27:01 svc:/network/dns/server:chroot #
# ps -elf | grep named noaccess 133 1 0 20:31:29 ? 0:00 /usr/sbin/named -t /chroot/dns #新的 Bind 9 DNS Server Version 9.3.2 �F在已�安�b好了。