快速业务通道

配置一个安全的chroot DNS(3)

作者 佚名技术 来源 服务器技术 浏览 发布时间 2012-07-06

首先是named.root的建立   dig @a.root-servers.net . ns > /chroot/named/conf/named.root #这是在redhat下的用法,因为天缘所用的solaris默认(我用的2.6)没有dig命令,所以在solaris下我们用
cd /chroot/named/conf
ftp ftp://ftp.rs.internic.net/domain/named.root
接着是named.local


named.local

$TTL  86400 @    IN SOA  @ root (
            42       ; 版本
            3H       ; 刷新时间3小时
            15M       ; 重试时间15分钟
            1W       ; 最大期限一周
            1D )      ; 最小TTL一天     IN NS    @
    IN A     127.0.0.1

接着是named.127.0.0


named.127.0.0

$TTL  86400
@    IN   SOA   localhost. root.localhost. ( ;这里的root.localost其实是root@localhost,在DNS设置中,将@用.代替
              1 ; 版本
              28800   ; 刷新,这里和下面的特意以分钟为单位,和上面的写法不同,就当多举个例子吧
              14400   ; 重试
              3600000  ; 最大期限
              86400 )  ; 最小TTL
    IN   NS   localhost.
1    IN   PTR   localhost.
  4、设置权限   其实这一步,才是我们作任何chroot 服务真正精华的地方。如何把权限划分得准确,不至于无法执行服务,也不能大到会威胁到其他程序的安全,实在是一个需要仔细考虑的问题。   a.由于我们的目的是达到让bind程序以named用户身份运行,所以必须让它具有读配置,无写配置文件的权限,而且最好其他程序也不能改变我们的配置文件,只有root能改,named用户能读。为了满足这个要求的,自然就想到把文件的拥有者改为root,组用户设置为named,然后再慢慢仔细划分权限。   cd /chroot/named   chown –R root.named ./ #-R参数表示下属目录也依照此权限,-R参数在chown和chmod中经常用到   b.接下来想想各个文件、子目录的权限。Root组对 文件需要读写执行权限,named组对文件需要读取权限,而对下属子目录而言,则必须具有执行权限才能进入其中。因此作以下权限设置。   # 对文件赋予root 读写权限,赋予组named读权限
  find . -type f -print | xargs chmod u=rw,og=r   # 对目录赋予roo读写执行权限,赋予组named读执行权限(这里的执行是为了能进入到下级目录中)
  find . -type d -print | xargs chmod u=rwx,og=rx   #对etc目录下的配置文件,能不让其他用户读取当然是最好的,因此设置
  chmod o= etc/*.conf   # "secondaries" 子目录是此Dns服务器作辅助服务器,从主服务器更新消息的时候需要的,会在里面创建一些新文件。因此它的权限也需要特别设置,在这个目录下,named组、用户需要具有读权限,而不需要用到root用户,也不想让其他的用户身份访问。   chown root.named conf/secondaries/ #设置secondaries目录用户为root,组为named   chmod ug=rwx,o= conf/secondaries/ #给予root和named全部权限,以方便访问下面的文件   touch conf/secondaries/.empty # 去掉旧有的该文件   find conf/secondaries/ -type f -print | xargs chown named.named #将用户组、用户都设置为named   find conf/secondaries/ -type f -print | xargs chmod ug=r,o= #只让named组和用户有读权限,而其他用户无任何权限   接着是为var/目录设置权限(在这里会生成进程守护文件named.pid—我们在named.conf中设置了的)   chown root.root var/ #这里可以把named抛弃,   chmod u=rwx,og=x var/ #root可以读写设置,其他用户能执行就行,其实我们之所以做一个chroot DNS需要大费周折地单独设置目录,就是为了不让named具有访问真正的/var的权限。   chown root.named var/run/ #因为在run下面的需要由named身份来写named.pid文件,所以需要将组改为named好限制权限   chmod ug=rwx,o=rx var/run/ #用户/组具有读写执行权限,其他用户能读/执行就可以了,这样的设置,主要是为了方便我们后面写shell来判断DNS目前的状态。   chown root.named logs/ #日志目录,设置成这样的原因不用解释了吧   chmod ug=rwx,o=rx logs/ #日志允许其他人看比较好,方便以后挂第三方程序 关键词:

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号