科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道建立安全的DNS服务器

建立安全的DNS服务器

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

和其它大型软件一样,BIND(DNS服务器)也因其体积庞大和功能繁杂而存在许多问题。复制系统%BIND%/src/bin/named目录和系统%BIND%/src/bin/named-xfer目录下的named和named-xfer二进制文件(静态链接版本).

作者:51cto 2007年10月15日

关键字: 服务器 安全 Linux DNS

  • 评论
  • 分享微博
  • 分享邮件

  和其它大型软件一样,BIND(DNS服务器)也因其体积庞大和功能繁杂而存在许多问题。因此针对BIND安全漏洞的系统入侵数量也在大幅度上升,最严重的甚至可获取目标主机的所有远程控制权。由于DNS服务器主机对网络系统有着很大的影响,如何避免这些系统入侵也变得至关重要了。

  这篇短文的主旨是讲述如何利用chroot环境在RedHatLinux(或类似系统)中建立安全的BIND8.x服务器。本文内容主要来自于AdamShostack和他在这方面的文章(Solaris版本)。

  步骤一:软件获取和安装

  请到ISCFTP站点下载BIND的最新版本(本文内容在BIND8.x版本中经过测试)。

  到ObtuseSystemFTP站点下载本文必需的免费软件:holelogd(及其它有用的工具)。该软件用于在chroot环境中建立/dev/log套接字(socket),从而使syslogd能够记录named进程的日志。OpenBSD系统的syslogd已内建了这一功能("syslogd-a/chroot/dev/log"),但Linux系统尚未实现这一功能。Holelogd软件就是用来模仿OpenBSD的这个功能。

  按照软件文档安装holelogd(通常被安装到/usr/local/sbin)。

  步骤二:构造静态(static)的named和named-xfer二进制文件

  在编译和安装后,你需要构造可执行文件的静态链接版本。只要对%BIND%/src/port/linux目录下的Makefile.set文件稍加修改后即可。

  'CDEBUG=-O2-g'

  替换为:

  'CDEBUG=-O2-static'

  

  切换到BIND的源代码路径,执行"makeclean"和"make"命令。在下面的步骤中将会把这些文件复制到chroot()目录下。

  本步骤构造的静态链接执行文件在运行时无需装载动态链接库。在chroot()环境中,这种“独立”可执行文件可避免出现缺少链接库文件问题。它在chroot()环境中无需任何静态链接库,可使服务配置简单化。其它所有的网络守护进程也可以编译和使用这种静态链接版本。

  步骤三:构造BIND目录

  为chroot()环境构造BIND目录。这个目录将在chroot()环境中被BIND当作系统根目录。

  /dev

  /etc

  /namedb

  /usr

  /sbin

  /var

  /run

  

  需要复制以下文件到其下的相应子目录中,和进行一些必要的处理:

  /

  无

  /etc

  复制系统/etc目录下的named.conf文件

  复制系统/etc目录下的localtime文件(为syslog提供正确的named日志记录时间)

  创建仅包含namedGID的/etc/group文件

  /etc/namedb

  复制系统/etc/namedb目录下的所有“区(zone)”数据库和文件

  /dev

  mknod./nullc13;chmod666null(请参阅相应版本的mknod命令)

  /usr/sbin

  复制系统%BIND%/src/bin/named目录和系统%BIND%/src/bin/named-xfer目录下的named和named-xfer二进制文件(静态链接版本)

  /var/run

  无

  另外还可根据需要指定日志记录目录(如/var/log)。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章