TMAegisBeta
More rules for bind

BIND DNS

TMA-BIND-2.9

Isolate BIND with chroot'ed Subdirectory

LowLevel 2Automatedbind

Description

The chroot() system call causes an application to run with limited file system access so that a subdirectory becomes the root directory for the application environment. When this is done, the application is "jailed" and no longer has access to the entire file structure but is limited to the given subdirectory. The audit reads /proc/<named pid>/root and requires a chroot directory; SELinux in enforcing mode is accepted as the documented alternative.

How it is checked

Audit method: Shell command

shell
pid=$(pidof named 2>/dev/null | awk '{print $1}')
[ -n "$pid" ] || { echo 'named is not running'; exit 1; }
r=$(readlink /proc/$pid/root) || exit 1
if [ "$r" != / ]; then echo compliant; elif [ "$(getenforce 2>/dev/null)" = Enforcing ]; then echo compliant; else echo 'named is not chrooted (and SELinux is not enforcing)'; fi
Expected output
compliant

How it is fixed

Fix method: Guidance or infrastructure patch

Perform the following: ; Stop the named service and install the bind-chroot package to provide the chroot directories. # systemctl stop named.service # yum install bind-chroot ; Edit the /etc/sysconfig/named configuration file to have a line similar to the one shown below that sets the ROOTDIR environment variable. ROOTDIR="/var/named/chroot" ; Move all the configuration files and any master zone files into their respective directions under the subdirectory /var/named/chroot/

Properties

Operating systems
Any
Tags
binddnspermissions
Reference
CIS ISC BIND DNS Server 9.11 Benchmark v1.0.0 - 2.9 Isolate BIND with chroot'ed Subdirectory

Check this host

Run this on a machine you are allowed to audit. The scan is read-only.

shell
tmaegis scan --target bind --level 2