Forums

Skip to content

Advanced search
  • Quick links
    • Unanswered topics
    • Active topics
    • Search
  • FAQ
  • Login
  • Register
  • Board index Assistance Networking & Security
  • Search

Difficulty setting up BIND in a chroot jail

Having problems getting connected to the internet or running a server? Wondering about securing your box? Ask here.
Post Reply
Advanced search
7 posts • Page 1 of 1
Author
Message
super_7b
n00b
n00b
Posts: 13
Joined: Wed Jun 23, 2021 12:49 pm
Location: South Yorkshire

Difficulty setting up BIND in a chroot jail

  • Quote

Post by super_7b » Thu Jan 04, 2024 8:36 pm

Hi All,

I am preparing to re-install my home server using Gentoo to replace an old Centos 8 installation. To make this as pain-free as possible, I have built a dummy Gentoo machine under VirtualBox on a Windows 10 Host so I can practise in a safe manner and get it right first time on the real installation.

The Gentoo basic installation (6.1.67-gentoo-x86_64) is working nicely using OpenRC rather than systemd and I began my tests by trying to setup a BIND DNS server under a chroot jail.

I searched for information, but could not find anything very clear to me. The best I could find was in the Gentoo BIND Wiki, which seemed to indicate that I should install BIND in the "unjailed" way, then run an emerge --config.

I did the basic installation and followed the instructions printed out at the end:-

Code: Select all

 *
 * You can edit /etc/conf.d/named to customize named settings
 *
 * If you'd like to run bind in a chroot AND this is a new
 * install OR your bind doesn't already run in a chroot:
 * 1) Uncomment and set the CHROOT variable in /etc/conf.d/named.
 * 2) Run `emerge --config '=net-dns/bind-9.16.42'`
 *
I then investigated if the system was setup correctly by issuing the following commands:-

Code: Select all

[root@localhost:/]$$ rc-service named checkconfig
 * Checking named configuration ...
 * No /chroot/dns/etc/bind/named.conf file exists!
[root@localhost:/]$
[root@localhost:/]$
[root@localhost:/]$
[root@localhost:/]$ rc-service named checkzones
 * Checking named configuration and zones ...
open: /etc/bind/named.conf: file not found                                                                                                                                                                  [ !! ]
[root@localhost:/]$
I suspected some file(s) to be missing from the jail file tree because of the checkconfig error, but I knew that /etc/bind/named.conf existed, so I suspected that checkzones was implicitly searching within the jail.

I then investigated the basic installation directories under /etc/bind and compared them to those under /chroot/dns/etc/bind and found that the latter was empty.
The other directories (/chroot/dns/dev and /chroot/dns/var) were populated with what looked to be reasonable files and sub-directories when compared to my Centos chrooted BIND.

Code: Select all

[root@localhost:/]$ ls -l /etc/bind
total 12
-rw-r----- 1 root named 1991 Jan  4 19:32 bind.keys
lrwxrwxrwx 1 root root    18 Jan  4 19:32 dyn -> ../../var/bind/dyn
-rw-r----- 1 root named 4020 Jan  4 19:32 named.conf
lrwxrwxrwx 1 root root    18 Jan  4 19:32 pri -> ../../var/bind/pri
-rw-r----- 1 root named  100 Jan  4 16:10 rndc.key
lrwxrwxrwx 1 root root    18 Jan  4 19:32 sec -> ../../var/bind/sec
[root@localhost:/]$
[root@localhost:/]$
[root@localhost:/]$
[root@localhost:/]$ ls -lR /chroot/dns
/chroot/dns:
total 16
drwxr-xr-x 2 root root 4096 Jan  4 19:39 dev
drwxr-xr-x 3 root root 4096 Jan  4 19:39 etc
drwxr-xr-x 3 root root 4096 Jan  4 19:39 run
drwxr-xr-x 4 root root 4096 Jan  4 19:39 var

/chroot/dns/dev:
total 0
crw-rw-rw- 1 root root 1, 3 Jan  4 19:39 null
crw-rw-rw- 1 root root 1, 9 Jan  4 19:39 urandom
crw-rw-rw- 1 root root 1, 5 Jan  4 19:39 zero

/chroot/dns/etc:
total 4
drwxr-x--- 2 root named 4096 Jan  4 19:39 bind

/chroot/dns/etc/bind:
total 0

/chroot/dns/run:
total 4
drwxrwx--- 2 root named 4096 Jan  4 19:39 named

/chroot/dns/run/named:
total 0

/chroot/dns/var:
total 8
drwxrwx--- 2 root named 4096 Jan  4 19:39 bind
drwxr-xr-x 3 root root  4096 Jan  4 19:39 log

/chroot/dns/var/bind:
total 0

/chroot/dns/var/log:
total 4
drwxrwx--- 2 root named 4096 Jan  4 19:39 named

/chroot/dns/var/log/named:
total 0
I could copy/create the missing files, but I'm a bit confused why the emerge --config seems to only set up part of what I'd expect.
I'm also not sure why there are files left outside of the jail. I thought they would all be in the jail, with just /etc/bind/named.conf remaining in the normal tree, perhaps as a symlink to the "real" one in the jail.

I'm not any kind of BIND expert, so I would appreciate any help in configuring my BIND correctly.

BR

Mick
Top
alamahant
Advocate
Advocate
Posts: 4032
Joined: Sat Mar 23, 2019 12:12 pm

  • Quote

Post by alamahant » Thu Jan 04, 2024 9:37 pm

I only tried running named in chroot once and i had the exact same problem.
Namely i had to copy
/etc/bind and /var/bind
to <chroot>/etc/bind and <chroot>/var/bind.
It is like that.Maybe a glitch.
Why don't you open a bug report?
:)
Top
super_7b
n00b
n00b
Posts: 13
Joined: Wed Jun 23, 2021 12:49 pm
Location: South Yorkshire

  • Quote

Post by super_7b » Thu Jan 04, 2024 10:13 pm

I could copy the files, as I originally mentioned, but I wondered if this was the "official" way. Perhaps I was missing some step(s) that would set it up correctly automatically.

I will copy the files and see if that allows BIND to fire up.

I'd still like confirmation if anyone has a firm answer.
Top
pa4wdh
Veteran
Veteran
Posts: 1015
Joined: Fri Dec 16, 2005 6:55 pm

  • Quote

Post by pa4wdh » Fri Jan 05, 2024 10:34 am

I'm not sure about the official way, but i've been running BIND on Gentoo in a chroot for as long as i can remember :)

My setup:
/etc/conf.d/named (relevant parts only)

Code: Select all

CHROOT="/opt/chroot/named"
CHROOT_NOMOUNT="1"
PIDFILE="${CHROOT}/var/run/named/named.pid"
Files in /opt/chroot/named (some files have been removed from the listing because they are specific to my setup)

Code: Select all

/opt/chroot/named # ls -lR
.:
total 16
drwxr-xr-x 2 root root 4096 Aug 12  2019 dev
drwxr-xr-x 3 root root 4096 Oct 16  2017 etc
drwxr-xr-x 3 root root 4096 Oct 15  2017 run
drwxr-xr-x 6 root root 4096 Oct 21  2017 var

./dev:
total 0
crw-rw-rw- 1 root root 1, 3 Oct 15  2017 null
crw-rw-rw- 1 root root 1, 8 Oct 15  2017 random
crw-r--r-- 1 root root 1, 9 Oct 12  2017 urandom
crw-rw-rw- 1 root root 1, 5 Oct 15  2017 zero

./etc:
total 8
drwxr-x--- 2 root named 4096 Sep  4 15:45 bind
-rw-r--r-- 1 root root  2933 Dec 16 13:12 localtime

./etc/bind:
total 96
-rw-r--r-- 1 root root  5392 Feb  5  2022 named.conf
< removed from listing: Key files >

./run:
total 4
drwxrwx--- 2 root named 4096 Oct 19  2017 named

./run/named:
total 0

./var:
total 16
drwxr-xr-x 2 root root  4096 Oct 16  2017 bind
drwxr-xr-x 3 root root  4096 Oct 15  2017 log
drwxrwx--- 5 root named 4096 Jan  5 10:42 named
drwxrwx--- 3 root named 4096 Oct 21  2017 run

./var/bind:
total 0

./var/log:
total 4
drwxrwx--- 2 root named 4096 Oct 15  2017 named

./var/log/named:
total 0

./var/named:
total 112
< Removed from listing: my zone files + dnssec keys >

./var/run:
total 4
drwxrwx--- 2 root named 4096 Dec 23 10:33 named

./var/run/named:
total 8
-rw-r--r-- 1 named named   4 Dec 23 10:33 named.pid
-rw------- 1 named named 102 Dec 23 10:33 session.key
For a basic configuration copying the shipped files into the chroot should give you a good starting point.
The gentoo way of bringing peace to the world:
USE="-war" emerge --newuse @world

My shared code repository: https://code.pa4wdh.nl.eu.org
Music, Free as in Freedom: https://www.jamendo.com
Top
super_7b
n00b
n00b
Posts: 13
Joined: Wed Jun 23, 2021 12:49 pm
Location: South Yorkshire

  • Quote

Post by super_7b » Fri Jan 05, 2024 3:24 pm

Thanks to alamahant and pa4wdh for the pointers.

I have done as pa4wdh suggested and also added a couple of zone files. As a result, "rc-service named checkconfig" and "rc-service named checkzones" return good results.

My further questions to pa4wdh are:-

1) Do you still have the directories and associated files "/var/bind" and "/etc/bind"? If they are not needed, I would rather remove them so there can be no confusion if later editing is needed.
2) I wonder if there needs to be an external link to the working "/etc/bind/named.conf" in the chroot jail? Perhaps a symlink in a top-level "/etc/bind" directory to the file in the chroot jail, in case other applications need to be able to access the working file?

Thanks

Mick
Top
pa4wdh
Veteran
Veteran
Posts: 1015
Joined: Fri Dec 16, 2005 6:55 pm

  • Quote

Post by pa4wdh » Wed Jan 10, 2024 9:27 am

Sorry for my late response
1) Do you still have the directories and associated files "/var/bind" and "/etc/bind"? If they are not needed, I would rather remove them so there can be no confusion if later editing is needed.
You don't need these directories if you do not intend to run bind outside a chroot jail. Keep in mind that they might be created by the ebuild, so you'll probably have to INSTALL_MASK them to make sure they don't come back after a bind update.
2) I wonder if there needs to be an external link to the working "/etc/bind/named.conf" in the chroot jail? Perhaps a symlink in a top-level "/etc/bind" directory to the file in the chroot jail, in case other applications need to be able to access the working file?
This is not needed for named.conf, but it is often done for the rndc key when you wish to use rndc to control the bind instance inside the chroot.
The gentoo way of bringing peace to the world:
USE="-war" emerge --newuse @world

My shared code repository: https://code.pa4wdh.nl.eu.org
Music, Free as in Freedom: https://www.jamendo.com
Top
super_7b
n00b
n00b
Posts: 13
Joined: Wed Jun 23, 2021 12:49 pm
Location: South Yorkshire

  • Quote

Post by super_7b » Wed Jan 10, 2024 7:38 pm

Hi pa4wdh

Thanks for the reply.That's very clear.

I will tidy up as you suggest and make the link for the rndc key

BR

Mick
Top
Post Reply

7 posts • Page 1 of 1

Return to “Networking & Security”

Jump to
  • Assistance
  • ↳   News & Announcements
  • ↳   Frequently Asked Questions
  • ↳   Installing Gentoo
  • ↳   Multimedia
  • ↳   Desktop Environments
  • ↳   Networking & Security
  • ↳   Kernel & Hardware
  • ↳   Portage & Programming
  • ↳   Gamers & Players
  • ↳   Other Things Gentoo
  • ↳   Unsupported Software
  • Discussion & Documentation
  • ↳   Documentation, Tips & Tricks
  • ↳   Gentoo Chat
  • ↳   Gentoo Forums Feedback
  • ↳   Duplicate Threads
  • International Gentoo Users
  • ↳   中文 (Chinese)
  • ↳   Dutch
  • ↳   Finnish
  • ↳   French
  • ↳   Deutsches Forum (German)
  • ↳   Diskussionsforum
  • ↳   Deutsche Dokumentation
  • ↳   Greek
  • ↳   Forum italiano (Italian)
  • ↳   Forum di discussione italiano
  • ↳   Risorse italiane (documentazione e tools)
  • ↳   Polskie forum (Polish)
  • ↳   Instalacja i sprzęt
  • ↳   Polish OTW
  • ↳   Portuguese
  • ↳   Documentação, Ferramentas e Dicas
  • ↳   Russian
  • ↳   Scandinavian
  • ↳   Spanish
  • ↳   Other Languages
  • Architectures & Platforms
  • ↳   Gentoo on ARM
  • ↳   Gentoo on PPC
  • ↳   Gentoo on Sparc
  • ↳   Gentoo on Alternative Architectures
  • ↳   Gentoo on AMD64
  • ↳   Gentoo for Mac OS X (Portage for Mac OS X)
  • Board index
  • All times are UTC
  • Delete cookies

© 2001–2026 Gentoo Foundation, Inc.

Powered by phpBB® Forum Software © phpBB Limited

Privacy Policy

 

 

magic