DNS许多服务的基础,如:在网络发送邮件、浏览网页文件等都依赖DNS服务,如果没有DNS的配合,那么网络技术推广与发展必受到限制。既然它这么重要我们就有必要对它的学习更深入一些,下面介绍一些比较重要方面的信息,
安全性考虑:
1、由于辅助服务器的存在,必定要在主、辅服务器之间同步区域数据库内容,主服务器每次修改或重启后会把notify通知给所有的辅助服务器,辅助服务器收到后将查询主服务器的SOA以便确定对应关系,主服务器随即发送SOA给辅助服务器,辅助服务器查询Serial(同步号)是否大于本机的Serial(同步号),如果大于就发送区域传输请求来更新辅助服务器的数据库,如果小于就结束本次同步过程。它的同步会带来不安全因素(冒充辅助服务器来得到主服务器的内容),这个可以用指定辅助服务器地址的方法来解决。
2、网络上很多***程序是针对程序的特定版本,也就是只有某些版本才有某些可利用漏洞,所以要用隐藏版本号的方法来降低对方的***成功率,也能在一定程度上保护自身的安全
3、限定允许指定网段查询,可以减少***来源,保护服务器安全
4、建立牢笼程序保护,利用低权限用户运行服务器,牢笼可以隔离程序。
5、隔离DNS服务器,打开防火墙,关闭或删除其它无关的服务,最好是服务器只安装DNS服务
安装一台公司内部的DNS服务器,具有备份功能:
先安装bind组件,bind_chroot组件必须最后安装,要不然可以会导致安装出错,
bind-9.3.3-7.el5.i386.rpm
bind-devel-9.3.3-7.el5.i386.rpm
bind-libbind-devel-9.3.3-7.el5.i386.rpm
bind-libs-9.3.3-7.el5.i386.rpm
bind-sdb-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
binutils-2.17.50.0.6-2.el5.i386.rpm
binutils-devel-2.17.50.0.6-2.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
以上是安装所需的组件,安装好后修改配置文件
cp -a /var//named/chroot/etc/caching-named.conf /var/named/chroot/etc/named.conf
vi /var/named/chroot/etc/named.conf
修改如下:
options {
listen-on port 53 { any; }; 监听端口号
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";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.2.0/24; }; 指明允许查询的范围
version "unsupported on this platform"; 隐藏版本号
allow-transfer { 192.168.2.254; }; 指明辅助服务器IP地址
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
zone "." IN { 指明根域文件
type hint;
file "named.ca";
};
zone "heyuan.gcc.local" IN {
type master;
file "heyuan.gcc.local.zone";
allow-update {none;};
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "192.168.2.zone";
allow-update {none;};
};
};
再分别修改区域数据库文件
cp -p /var/named/chroot/var/named/localdomain.zone /var/named/chroot/var/named/heyuan.gcc.local.zone
cp -p /var/named/chroot/var/named/named.local /var/named/chroot/var/named/192.168.2.zone
vi heyuan.gcc.local.zone
$TTL 86400
@ IN SOA localhost root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost
localhost IN A 127.0.0.10
www IN A 192.168.2.126
ftp IN A 192.168.2.126
heyuan.gcc.local. IN A 192.168.2.126
heyuan.gcc.local. IN MX 5 mail.heyuan.gcc.local
mail IN A 192.168.2.126
vi 192.168.2.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS heyuan.gcc.local.
126 IN PTR heyuan.gcc.local.
126 IN PTR www.heyuan.gcc.local.
126 IN PTR ftp.heyuan.gcc.local.
126 IN PTR mail.heyuan.gcc.local.
以上是主服务器配置,辅助服务器配置如下
为防止输入错误,可以用复制的形式生成配置文件,内容如下:
options {
listen-on port 53 { any; }; 监听端口号
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";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.2.0/24; }; 指明允许查询的范围
version "unsupported on this platform"; 隐藏版本号
allow-transfer { 192.168.2.253; }; 第一处修改,指明主服务器IP地址
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
zone "." IN { 指明根域文件
type hint;
file "named.ca";
};
zone "heyuan.gcc.local" IN {
type slave; 第二处修改
masters {192.168.2.253;}; 第三处修改,注意192.168.2.253是主服务器IP地址
file "heyuan.gcc.local.zone";
allow-update {none;};
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "192.168.2.zone";
allow-update {none;};
};
};
这样辅助服务器下就会自动生成区域数据库文件heyuan.gcc.local.zone,192.168.2.zone,不用手动创建和更新它的内容就能达到主、辅服务器的数据同步,辅助服务器的存在避免了主服务器因单点故障引起其它的依赖服务的”罢工“。
PS:从下一篇起用理论+实验的形式发表博文(试行),以做到以更容易理解的方式记录成长,同时改变配置内容的注释方式,利用//作为注释行的开始,方便阅读嘛,中间穿插部分命令用法,巩固我们的基础知识。试行期间欢迎大家大胆的提出意见和建议,同时希望这些文章能更好地指引新手进步,这几天我发现我的文章错别字特多(真是人小心粗啊),语言表达方面还有待提高(小学时候让数学老师给我们上语文课:))
1、由于辅助服务器的存在,必定要在主、辅服务器之间同步区域数据库内容,主服务器每次修改或重启后会把notify通知给所有的辅助服务器,辅助服务器收到后将查询主服务器的SOA以便确定对应关系,主服务器随即发送SOA给辅助服务器,辅助服务器查询Serial(同步号)是否大于本机的Serial(同步号),如果大于就发送区域传输请求来更新辅助服务器的数据库,如果小于就结束本次同步过程。它的同步会带来不安全因素(冒充辅助服务器来得到主服务器的内容),这个可以用指定辅助服务器地址的方法来解决。
2、网络上很多***程序是针对程序的特定版本,也就是只有某些版本才有某些可利用漏洞,所以要用隐藏版本号的方法来降低对方的***成功率,也能在一定程度上保护自身的安全
3、限定允许指定网段查询,可以减少***来源,保护服务器安全
4、建立牢笼程序保护,利用低权限用户运行服务器,牢笼可以隔离程序。
5、隔离DNS服务器,打开防火墙,关闭或删除其它无关的服务,最好是服务器只安装DNS服务
安装一台公司内部的DNS服务器,具有备份功能:
先安装bind组件,bind_chroot组件必须最后安装,要不然可以会导致安装出错,
bind-9.3.3-7.el5.i386.rpm
bind-devel-9.3.3-7.el5.i386.rpm
bind-libbind-devel-9.3.3-7.el5.i386.rpm
bind-libs-9.3.3-7.el5.i386.rpm
bind-sdb-9.3.3-7.el5.i386.rpm
bind-utils-9.3.3-7.el5.i386.rpm
binutils-2.17.50.0.6-2.el5.i386.rpm
binutils-devel-2.17.50.0.6-2.el5.i386.rpm
bind-chroot-9.3.3-7.el5.i386.rpm
以上是安装所需的组件,安装好后修改配置文件
cp -a /var//named/chroot/etc/caching-named.conf /var/named/chroot/etc/named.conf
vi /var/named/chroot/etc/named.conf
修改如下:
options {
listen-on port 53 { any; }; 监听端口号
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";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.2.0/24; }; 指明允许查询的范围
version "unsupported on this platform"; 隐藏版本号
allow-transfer { 192.168.2.254; }; 指明辅助服务器IP地址
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
zone "." IN { 指明根域文件
type hint;
file "named.ca";
};
zone "heyuan.gcc.local" IN {
type master;
file "heyuan.gcc.local.zone";
allow-update {none;};
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "192.168.2.zone";
allow-update {none;};
};
};
再分别修改区域数据库文件
cp -p /var/named/chroot/var/named/localdomain.zone /var/named/chroot/var/named/heyuan.gcc.local.zone
cp -p /var/named/chroot/var/named/named.local /var/named/chroot/var/named/192.168.2.zone
vi heyuan.gcc.local.zone
$TTL 86400
@ IN SOA localhost root (
42 ; serial (d. adams)
3H ; refresh
15M ; retry
1W ; expiry
1D ) ; minimum
IN NS localhost
localhost IN A 127.0.0.10
www IN A 192.168.2.126
ftp IN A 192.168.2.126
heyuan.gcc.local. IN A 192.168.2.126
heyuan.gcc.local. IN MX 5 mail.heyuan.gcc.local
mail IN A 192.168.2.126
vi 192.168.2.zone
$TTL 86400
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS heyuan.gcc.local.
126 IN PTR heyuan.gcc.local.
126 IN PTR www.heyuan.gcc.local.
126 IN PTR ftp.heyuan.gcc.local.
126 IN PTR mail.heyuan.gcc.local.
以上是主服务器配置,辅助服务器配置如下
为防止输入错误,可以用复制的形式生成配置文件,内容如下:
options {
listen-on port 53 { any; }; 监听端口号
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";
query-source port 53;
query-source-v6 port 53;
allow-query { 192.168.2.0/24; }; 指明允许查询的范围
version "unsupported on this platform"; 隐藏版本号
allow-transfer { 192.168.2.253; }; 第一处修改,指明主服务器IP地址
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
view localhost_resolver {
match-clients { localhost; };
match-destinations { localhost; };
recursion yes;
zone "." IN { 指明根域文件
type hint;
file "named.ca";
};
zone "heyuan.gcc.local" IN {
type slave; 第二处修改
masters {192.168.2.253;}; 第三处修改,注意192.168.2.253是主服务器IP地址
file "heyuan.gcc.local.zone";
allow-update {none;};
};
zone "2.168.192.in-addr.arpa" IN {
type master;
file "192.168.2.zone";
allow-update {none;};
};
};
这样辅助服务器下就会自动生成区域数据库文件heyuan.gcc.local.zone,192.168.2.zone,不用手动创建和更新它的内容就能达到主、辅服务器的数据同步,辅助服务器的存在避免了主服务器因单点故障引起其它的依赖服务的”罢工“。
PS:从下一篇起用理论+实验的形式发表博文(试行),以做到以更容易理解的方式记录成长,同时改变配置内容的注释方式,利用//作为注释行的开始,方便阅读嘛,中间穿插部分命令用法,巩固我们的基础知识。试行期间欢迎大家大胆的提出意见和建议,同时希望这些文章能更好地指引新手进步,这几天我发现我的文章错别字特多(真是人小心粗啊),语言表达方面还有待提高(小学时候让数学老师给我们上语文课:))