Руководство администратора Linux по безопасности

ISC DHCPD


Chroot'ing DHCPD

DHCPD состоит из 2 основных выполнимых программ:

T dhcpd: собственно DHCP

T dhcrelay: DHCP-реле (чтобы передавать запросы на центральный DHCP-сервер).

DHCPD требует 2 библиотеки:

T /lib/ld-linux.so.2

T /lib/libc.so.6 

Файл настройки:

T /etc/dhcpd.conf: расположение загрузочных файлов, настройки и прочее.

Еще несколько дополнительных файлов:

T /etc/dhcpd.leases: список активных соединений

T файл запуска, настройте по своему вкусу.

Самый простой путь к установке dhcpd chroot'ed в том, чтобы просто установить dhcpd (последний предпочтительно) и поправить необходимые файлы. Хорошая идея состоит в том, чтобы создать каталог (например, /chroot/dhcpd), предпочтительно на отдельной файловой системе, и затем создать структуру файлов для dhcpd в нем. Ниже приведен такой пример. Замените в нем /chroot/dhcpd на выбранный Вами каталог.

# Install bind so we have the appropriate files # rpm -i dhcpd-2.0b1pl0-1.i386.rpm # # Create the directory structure # cd /chroot/dhcpd/ # or wherever mkdir ./etc mkdir ./usr/sbin mkdir ./usr mkdir ./var/dhcpd mkdir ./var mkdir ./lib # # Start populating the files # cp /usr/sbin/dhcpd ./usr/sbin/dhcpd cp /etc/dhcpd.conf ./etc/dhcpd.conf cp /etc/rc.d/init.d/dhcpd ./etc/dhcpd.init cp /etc/rc.d/init.d/functions ./etc/functions # # Now to get the latest libraries, change as appropriate # cp /lib/ld-linux.ld-linux.so.2 ./lib/  cp /lib/libc.so.6 ./lib/ # # And create the necessary symbolic links so that they behave # Remember that dhcpd thinks /chroot/dhcpd/ is /, so use relative links

Затем измените или создайте свой скрипт запуска.

Как только это будет выполнено, просто удалите первоначальный файл запуска и создайте ссылку с него на новый, и dhcpd будет вести себя 'обычно' (будет автоматически загружен при начальной загрузке системы), в то время как фактически он отделяется от Вашей системы. Можно (но не обязательно) заменить 'оригинал' DHCPD ссылками.

Если Вы сделали все правильно, Вы должны иметь /chroot/dhcpd (млм другой каталог), который содержит все требуемое, чтобы выполнить dhcpd. ps -xau должен показать нечто вроде:

USER PID %CPU %MEM SIZE RSS TTY STAT START TIME COMMAND root 6872 0.0 1.7 900 532 p0 S 02:32 0:00 ./usr/sbin/dhcpd -d -q  root 6873 0.0 0.9 736 288 p0 S 02:32 0:00 tee ./etc/dhcpd.log



Содержание раздела