Настройка DHCP-сервера ISC-DHCP в FreeBSD 14.1
Протокол DHCP используется для автоматического получения параметров сетевого интерфейса. В качестве DHCP-сервера будет использоватся ISC-DHCP от некоммерческой организации Internet Systems Consortium, который себя зарекомендовал как надежный и безопасный. DHCP будет настроен для использования в локальной сети, для выдачи IP-адресов из пула адресов и статических IP-адреса от MAC-адресов.
Internet Systems Consortium прекратила поддержку ISC-DHCP в конце 2022 года и версия 4.4.3-P1 является последней, это означает что больше не будет новых версий и исправления ошибок в последней.
Сервер ISC-DHCP можно продолжать использовать еще много времени, все уязвимости были исправлены в нем более 10 лет назад. За этот период в нем не произошло много изменений и не было найдено уязвимостей или серьезных ошибок. Возможно к FreeBSD 20 его необходимо будет заменить, по причине отсутствия поддержки каких-либо особенностей будущих архитектур компьютеров или операционных систем.
1. Установка ISC-DHCP
Устанавливаем через пакеты
pkg install isc-dhcp44-server
Или устанавливаем из портов, с нужными опциями
cd /usr/ports/net/isc-dhcp44-server/ && make install clean
Дожидаемся окончания установки.
2. Настройка и конфигурация ISC DHCP-сервера (dhcpd.conf)
Файл конфигурации dhcpd.conf находится по адресу /usr/local/etc/dhcpd.conf
Открываем файл конфигурации и редактируем
nano /usr/local/etc/dhcpd.conf
Настройка и описание основных параметров файла конфигурации dhcpd.conf для автоматической выдачи IP-адресов и настроек для сетевых интерфейсов устройств внутри локальной сети:
# dhcpd.conf
### Глобальные настройки для всех групп и пулов:
# DNS-сервера передаваемые клиенту.
option domain-name-servers 192.168.0.1; # IP-адрес этого сервера, если DNS-сервер работает.
#option domain-name-servers 1.1.1.1, 1.0.0.1; # Публичные DNS-сервера CloudFlare.
# Время в секундах, по прошествии которого клиент должен запросить продление аренды IP-адреса.
default-lease-time 43200;
# Время в секундах на которое IP-адрес резервируется за клиентом,
# по прошествии которого IP-адрес может быть выдан другому устройству.
max-lease-time 86400;
# DNS-сервер является авторитетным, основным в локальной сети и послылает DHCP-NAK клиентам.
# Если IP-адрес клиента не из пула сервера, ему будет выдан новый IP-адрес.
authoritative;
# Указание источника, который будет отправлен в Syslog. Подробнее в следующем разделе статьи.
# По умолчанию сообщения отправляются в daemon.log лог-файл.
log-facility local7;
# Настройка локальной сети и параметров выдачи IP-адресов:
# Описание локальной сети. Локальная сеть 192.168.0.0/24
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.20 192.168.0.80; # Диапазон выдаваемых IP-адресов.
option routers 192.168.0.1; # IP-адрес шлюза.
}
### Выдача фиксированых IP-адресов в зависимости от MAC-адресов сетевых интерфейсов:
# Секция host может иметь любое название, например укажем laptop
host laptop {
# MAC-адрес сетевой карты устройства.
hardware ethernet B4:0D:AC:AA:3F:56;
# IP-адрес который будет выдан, НЕ из пула динамических адресов.
fixed-address 192.168.0.3;
}
host Home-NAS {
hardware ethernet EC:FD:52:0A:90:8D;
fixed-address 192.168.0.4;
}
host computer {
hardware ethernet EC:22:80:40:32:27;
fixed-address 192.168.0.5;
}
Сохраняем файл и закрываем его.
3. Настройка отдельного лог-файла dhcpd.log
В документации разработчиками были заложены примеры настроек, согласно которым необходимо использовать источник логирования local7, который указывается в параметре log-facility файла конфигурации. Если не создавать правило логирования под источник local7, то все сообщения будут отправлятся в daemon.log лог-файл. Имя local7 не конфликтует с другими сервисами, поэтому всегда можно использовать любое.
Создаем файл isc-dhcpd.conf в каталоге /etc/syslog.d/
nano /etc/syslog.d/isc-dhcpd.conf
следующего содержимого:
local7.* /var/log/dhcpd.log
Сохраняем и записываем файл.
Создаем лог-файл dhcpd.log в каталоге /var/log/
touch /var/log/dhcpd.log
Разрешаем чтение и запись только root-пользователю
chmod 0600 /var/log/dhcpd.log
Перегружаем Syslog, чтобы применились изменения в правилах
service syslogd reload
4. Автозагрузка и запуск ISC-DHCP
Открываем файл /etc/rc.conf
nano /etc/rc.conf
и добавляем строки:
dhcpd_enable="YES"
dhcpd_ifaces="em1"
где em1 – имя сетевого интерфейса на котором будет работать DHCP-сервер.
Запускаем ISC-DHCP сервер
service isc-dhcpd start
Сервер успешно запущен, можно приступать к проверке.
Пробуем получить IP-адрес и настройки сетевого интерфейса. В случае ошибок смотрим содержимое лог-файла.