返回介绍

最佳实践 3:配置 chroot 加固 BIND

发布于 2025-04-20 17:44:39 字数 1551 浏览 0 评论 0 收藏

chroot 是 Linux 系统对应用程序的一种安全约束机制。在应用程序执行了 chroot 系统调用后,它的执行被限定到 chroot 后的目录下。例如在 Perl 脚本中,使用 chroot/chroot/test 后,那么该程序看到的目录实际上是系统的/chroot/test 目录。这样操作后,在最差的情况下,如果 BIND 被入侵了,那么黑客所拿到的目录权限会被限制到 chroot 后的目录,不会对系统的其他文件造成泄露或者被恶意修改。

使 BIND 支持 chroot 的操作步骤有以下 6 步。

1)创建 named 用户。使用的命令如下:

groupadd -g 25 named
useradd -g 25 -u 25 -d /chroot/named -s /sbin/nologin named

2)创建目录结构、修改权限。使用的命令如下:

mkdir -p /chroot/named/{dev,etc,var}
chown named.named /chroot/named/var

3)创建设备。使用的命令如下:

mknod /chroot/named/dev/null c 1 3
mknod /chroot/named/dev/zero c 1 5
mknod /chroot/named/dev/random c 1 8

4)复制需要的文件。使用的命令如下:

cp /etc/localtime /chroot/named/etc

5)在/chroot/named/etc/named.conf 中,直接使用 chroot 后的目录结构即可,使用的命令如下:

options {
    directory "/etc"; #此处实际上对应系统的/chroot/named/etc
    dump-file "/var/cache_dump.db";#此处实际上对应系统的/chroot/named/ var/cache_dump.db
    statistics-file "/var/named_stats.txt"; #此处实际上对应系统的/chroot/named/var/named_stats.txt
    zone-statistics yes;
    allow-query {any;};
    recursion yes;
};
logging{
      channel query_log {
          file "/var/query.log" versions 5 size 20m; #此处实际上对应系统的/chroot/named/var/query.log
          severity info;
          print-time yes;
          print-category yes;
     };
     category queries{
          query_log;
     };
};

6)启动 named 进程。使用的命令如下:

named -t /chroot/named -u named -c /etc/named.conf

这样操作完成后,named 以普通用户权限运行,运行环境被限定到/chroot/named 目录下,这样可以极大地增强 BIND 的安全性。

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。