扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
和其它大型软件一样,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领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者