首页 电脑 电脑学堂 查看内容

菜鸟也玩DNS之构建一个安全的DNS服务器

2011-11-2 19:35 582 0

摘要:   DNS是互联网的基础服务,同时bind是最流行的开源DNS软件,因为非常流行,所以受到的攻击性也非常大,因此我们有必要构建一个安全的DNS服务器。  构建一个安全的DNS服务有如下几种措施(基础b...
关键词: nbsp named 文件 用户 local xiaocui DNS 目录 usr 配置

  DNS是互联网的基础服务,同时bind是最流行的开源DNS软件,因为非常流行,所以受到的攻击性也非常大,因此我们有必要构建一个安全的DNS服务器。  构建一个安全的DNS服务有如下几种措施(基础bind编译安装及配置部分参考:菜鸟也玩DNS之配置DNS缓存服务器):  第一种,让named以普通用户运行  # useradd -s /bin/false bind   创建一个不允许登录系统的用户bind  # chown bind /usr/local/named/dns/    把存放named.pid的目录的所有权赋予bind用户  # /usr/local/named/sbin/rndc stop     停止已经运行的named  # /usr/local/named/sbin/named -4 -u bind     已bind用户启动named  查看系统进程:  # ps -ef|grep named  named已经已bind这个普通用户运行了。  第二种,以chroot牢笼方式运行named  所谓牢笼,就是把程序限定在这个目录中运行,无法访问其它目录,这样也大大提升了安全性。  # useradd -s /bin/false bind   创建一个不允许登录系统的用户bind  # mkdir -p /chroot/named    创建牢笼目录named运行的时候需要访问一些设备文件,读取named配置文件及区域资源文件,它们所在的目录有如下几个:  /usr/local/named/etc   存放named.conf配置文件  /usr/local/named/dns    存放named.pid文件  /usr/local/named/dns/zone    存放区域文件  /dev    存放named需要的几个设备文件  注意:这些目录除了/dev是默认的,其余的存放相关文件的目录都是你安装bind的时候手工指定的。  下面,我们需要在/chroot/named目录下创建对应的几个目录  #mkdir –p /chroot/named/dev  #mkdir –p /chroot/named/usr/local/named/etc  #mkdir –p  /chroot/named/usr/local/named/dns  #mkdir –p /chroot/named/usr/local/named/dns/zone  # chown bind /chroot/named/usr/local/named/dns/          把存放named.pid的目录的所有权赋予bind用户  # mknod /chroot/named/dev/random c 1 8     创建供named调用的设备文件  # cp /usr/local/named/etc/* /chroot/named/usr/local/named/etc/      复制named.conf等基本配置文件到牢笼对应目录下  # cp /usr/local/named/dns/* /chroot/named/usr/local/named/dns/     复制named.pid到对应牢笼目录下  # cp /usr/local/named/dns/zone/* /chroot/named/usr/local/named/dns/zone/     复制区域文件到对应牢笼目录下  # /usr/local/named/sbin/rndc stop    停止之前运行的named进程  # /usr/local/named/sbin/named -4 -u bind -t /chroot/named/    用普通用户bind以牢笼方式启动  使用命令查看named进程:  # ps -ef|grep named  查看系统日志,看看启动是否有问题:  # tail /var/log/messages  Oct 24 22:41:52 localhost named[6932]: zone 0.0.127.in-addr.arpa/IN: loaded serial 1997022700  Oct 24 22:41:52 localhost named[6932]: zone 1.168.192.in-addr.arpa/IN: loaded serial 20031001  Oct 24 22:41:52 localhost named[6932]: zone xiaocui.com/IN: loaded serial 1053891162  Oct 24 22:41:52 localhost named[6932]: zone localhost/IN: loaded serial 42  Oct 24 22:41:52 localhost named[6932]: managed-keys-zone ./IN: loaded serial 0  Oct 24 22:41:52 localhost named[6932]: running  如果你看到类似以上内容,说明启动成功,加载各种区域文件成功。  第三种,通过ACL控制访问用户来源  编辑named.conf配置文件  # vi /usr/local/named/etc/named.conf  在options标签之前建立一个访问控制列表  acl my-network {  192.168.1.0/24;  };  定义完之后,在options标签中允许这个ACL所定义的网络内的用户进行查询  options {  directory "/usr/local/named/dns/zone";  pid-file "/usr/local/named/dns/named.pid";  allow-recursion { my-network; };  };  配置完之后重启named进程或重新加载配置文件,这样以后就只有ACL中指定的网段用户才可以通过这个DNS来进行查询,其余的都将被拒绝。  第四种、通过view控制用户的访问范围  加入我们有一台DNS服务器,我们希望这台DNS服务器只对内网用户开放所有的DNS解析,对外只开放部分DNS查询功能,这个时候我就需要用到view这种功能。view可以针对不同的用户,提供不同的查询范围。  配置如下:  编辑named.conf配置文件  #vi /usr/local/named/etc/named.conf  首先定义一个内网ACL  acl my-network {  192.168.1.0/24;  };  然后定义供内部用户使用的view:A  view “A”{  match-clients { my-network; };    指定本地内网  recursion yes;    允许递归查询  zone “xiaocui.com” {  type master;  file “xiaocui.com.zone.A”  };  };  定义一个供所有用户使用的view:B  view “B”{  match-clients { any; };     所有用户  recursion yes; 允许递归查询  zone “xiaocui.com” {  type master;  file “xiaocui.com.zone.B”  };  };  配置完named.conf文件,我们还需要在区域文件存放目录创建对应的区域文件。  vi /usr/local/named/dns/zone/xiaocui.com.zone.A     针对内网用户的区域文件  $TTL    86400  @            IN SOA   xiaocui.com. root.xiaocui.com. (  1053891162      ; serial (d. adams)  3H                       ; refresh  15M                    ; retry  1W                      ; expiry  1D )                     ; minimum  IN NS     xiaocui.com.  IN A      192.168.1.10  www     IN A      192.168.1.100  mail      IN A       192.168.1.101  oa         IN A       192.168.1.102     给内网用户开放OA  ftp        IN A        192.168.1.103     给内网用户开放ftp  vi /usr/local/named/dns/zone/xiaocui.com.zone.B    针对所有用户的区域文件  $TTL 86400  @ IN SOA xiaocui.com. root.xiaocui.com. (  1053891162 ; serial (d. adams)  3H ; refresh  15M ; retry  1W ; expiry  1D ) ; minimum  IN NS xiaocui.com.  IN A 192.168.1.10  www IN A 192.168.1.100  mail IN A 192.168.1.101  配置完成之后,重启named进程或重新加载配置文件。使用内网用户可以访问到oa.xiaocui.com和ftp.xiaocui.com,外网用是不能访问的。  如果你达到了这个效果,说明配置成功。
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部