====== Настраиваем DHCP сервер для офисной сети. ====== Содержание •Установка ISC DHCP Server •Настройка ISC DHCP Server •Настройка логов ISC DHCP Server •Запуск ISC DHCP Server •Дополнительная информация Установка ISC DHCP Server Получаем доступные версии DHCP-сервера: pkg search "isc-dhcp.*-server" Устанавливаем пакет: pkg install isc-dhcp41-server Установка ISC DHCP Server из коллекции портов Если необходимо, DHCP-сервер можно собрать из портов. Обновляем коллекцию портов: portsnap fetch update Если коллекция портов используется впервые, получаем ее актуальную версию: portsnap fetch extract Получаем доступные версии DHCP-сервера: echo /usr/ports/net/isc-dhcp*-server Устанавливаю: cd /usr/ports/net/isc-dhcp44-server make install clean Installing isc-dhcp44-server-4.4.1_2... ===> Creating groups. Creating group 'dhcpd' with gid '136'. ===> Creating users Creating user 'dhcpd' with uid '136'. **** To setup dhcpd, please edit /usr/local/etc/dhcpd.conf. **** This port installs the dhcp daemon, but doesn't invoke dhcpd by default. If you want to invoke dhcpd at startup, add these lines to /etc/rc.conf: dhcpd_enable="YES" # dhcpd enabled? dhcpd_flags="-q" # command option(s) dhcpd_conf="/usr/local/etc/dhcpd.conf" # configuration file dhcpd_ifaces="" # ethernet interface(s) dhcpd_withumask="022" # file creation mask **** If compiled with paranoia support (the default), the following rc.conf options are also supported: dhcpd_chuser_enable="YES" # runs w/o privileges? dhcpd_withuser="dhcpd" # user name to run as dhcpd_withgroup="dhcpd" # group name to run as dhcpd_chroot_enable="YES" # runs chrooted? dhcpd_devfs_enable="YES" # use devfs if available? dhcpd_rootdir="/var/db/dhcpd" # directory to run in dhcpd_includedir="" # directory with config- files to include **** WARNING: never edit the chrooted or jailed dhcpd.conf file but /usr/local/etc/dhcpd.conf instead which is always copied where needed upon startup. ===> SECURITY REPORT: This port has installed the following files which may act as network servers and may therefore pose a remote security risk to the system. /usr/local/sbin/dhcpd /usr/local/bin/omshell This port has installed the following startup scripts which may cause these network services to be started at boot time. /usr/local/etc/rc.d/isc-dhcpd If there are vulnerabilities in these programs there may be a security risk to the system. FreeBSD makes no guarantee about the security of ports included in the Ports Collection. Please type 'make deinstall' to deinstall the port if this is a concern. For more information, and contact details about the security status of this software, see the following webpage: https://www.isc.org/products/DHCP/ ===> Cleaning for isc-dhcp44-server-4.4.1_2 ==== Настройка ISC DHCP Server ==== Редактируем файл конфигурации: ee /usr/local/etc/dhcpd.conf В минимальной конфигурации необходимо задать параметры, выделенные жирным шрифтом, примеры удалить или закомментировать. # DNS серверы option domain-name-servers 192.168.0.1, 192.168.0.2; # Время в секундах, по истечению которого клиент должен запросить продление аренды default-lease-time 600; # Время аренды IP адреса в секундах # Клиент должен освободить IP-адрес, если в течение заданного времени аренду продлить не удалось # Если аренда не продлена, сервер может выдать этот адрес другому клиенту max-lease-time 7200; # Выдавать клиенту новый адрес, если запрошенный клиентом адрес не входит в пул сервера authoritative; # Источник, который будет указан при отправке сообщений в Syslog log-facility local7; # Декларация подсети subnet 192.168.0.0 netmask 255.255.255.0 { # Пул динамических адресов range 192.168.0.129 192.168.0.189; # Шлюз option routers 192.168.0.1; } # Задать фиксированный IP-адрес для хоста #host Name { # hardware ethernet 00:26:5e:66:6c:08; # fixed-address 192.168.0.190; #} ==== Настройка логов ISC DHCP Server ==== Редактируем syslog.conf: ee /etc/syslog.conf Сохраняем сообщения о присвоении адресов в dhcpd.log, предупреждения и ошибки дублируем в messages. Добавляем следующие строки: !dhcpd *.info -/var/log/dhcpd.log !* Задаем параметры ротации. Проверяем, поддерживается ли вашей системой newsyslog.conf.d ls /etc/newsyslog.conf.d && echo ok Если в вашей системе отсутствует папка newsyslog.conf.d, редактируем newsyslog.conf: ee /etc/newsyslog.conf Если папка newsyslog.conf.d имеется, создаем папку с тем же именем в /usr/local/etc: mkdir /usr/local/etc/newsyslog.conf.d Создаем файл c правилами ротации логов: ee /usr/local/etc/newsyslog.conf.d/isc-dhcp-server Ежедневная ротация в полночь с сохранением логов за неделю: /var/log/dhcpd.log 600 7 * @T00 JC Создаем лог-файл: touch /var/log/dhcpd.log Перезагружаем конфигурацию syslogd: service syslogd reload ==== Запуск ISC DHCP Server ==== Редактируем rc.conf: ee /etc/rc.conf Включаем запуск ISC DHCP Server, и задаем сетевые интерфейсы, обслуживаемые нашим сервером: dhcpd_enable="YES" dhcpd_ifaces="fxp0" Запуск dhcpd: service isc-dhcpd start В случае успешного запуска видим следующий текст: Internet Systems Consortium DHCP Server 4.1-ESV-R3 Copyright 2004-2011 Internet Systems Consortium. All rights reserved. For info, please visit https://www.isc.org/software/dhcp/ Wrote 1 leases to leases file. Listening on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24 Sending on BPF/fxp0/08:00:27:a9:a8:7d/192.168.0.0/24 Sending on Socket/fallback/fallback-net Если ошибок при запуске не возникло, проверяем, раздаются ли IP-адреса. Для принудительного обновления IP-адреса в Windows, в командной строке используем команды: ipconfig /release ipconfig /renew Проверяем лог-файл: cat /var/log/dhcpd.log В случае проблем, анализируем DHCP трафик: tcpdump -vni fxp0 udp port 67 Текущий список динамически выделенных адресов хранится в обычном текстовом файле **/var/db/dhcpd/var/db/dhcpd/dhcpd.leases ** ==== Настройка isc-dhcpd для предоставления опции 150 для телефонов Cisco. ==== На верхнем уровне файла конфигурации, расположенного в /etc/dhcp/dhcpd.conf, нужно определить свой настраиваемый параметр: option voip-tftp-server code 150 = { ip-address }; Затем в строфе подсети, нужно предоставить параметр с соответствующим значением. subnet 192.168.0.0 netmask 255.255.255.0 { [...] option voip-tftp-server 10.101.0.10; } Это может быть: опция tftp-servers code 150 = массив ip-адреса; опции tftp-servers 10.20.10.1, 10.20.11.1; === Настройка dhcp клиента dhclient в FreeBSD === DHClient в FreeBSD включен по умолчанию. Чтобы начать его использовать, следует прописать в файле /etc/rc.conf строку следующего вида: ifconfig_fxp0="DHCP" и так для каждого интерфейса, настройки которого вы планируете получать от DHCP сервера. Обычно этого достаточно и настройки DHCP клиента по умолчанию достаточно хороши в большинстве случаев. Однако существует еще несколько параметров, которые можно прописать для использования во время загрузки: dhcp_program="/sbin/dhclient" dhcp_flags="" Также существует ряд параметров командной строки: -b Заставляет dhclient перейти в режим фоновой работы. -c file Определяет альтернативное положение конфигурационного файла. -d Заставляет dhclient всегда работать на переднем плане. -l file Определяет альтернативное положение файла с данными о предыдущих полученных конфигурациях. -q Заставляет dhclient быть менее многословным при загрузке. -u Заставляет dhclient не принимать конфигурации с неизвестными параметрами в них. По умолчанию, DHCP клиент принимает такие конфигурации. Напомню, что настройки клиента по умолчанию находится в файле /etc/dhclient.conf А предыдущие полученные настройки сетевых интерфейсов в файлах /var/db/dhclient.leases.IFNAME, где IFNAME - имя интерфейса. Для получения IP адреса от DHCP-сервера, использую следующую команду: dhclient vlan1 DHCPDISCOVER on vlan1 to 255.255.255.255 port 67 interval 3 DHCPOFFER from 10.190.0.1 DHCPREQUEST on vlan1 to 255.255.255.255 port 67 DHCPACK from 10.190.0.1 bound to 10.190.0.2 -- renewal in 1800 seconds. где **vlan1** имя интерфейса который должен получить IP адрес. В случае успешного получения адреса в файле /var/db/dhclient.leases.alc0 должна появится запись наподобие: lease { interface "alc0"; fixed-address 10.190.0.98; option subnet-mask 255.255.248.0; option routers 10.190.0.1; option domain-name-servers 213.234.192.8,85.21.192.3; option host-name "mgmt"; option domain-name "beeline"; option interface-mtu 576; option broadcast-address 255.255.255.255; option dhcp-lease-time 7200; option dhcp-message-type 5; option dhcp-server-identifier 10.190.0.1; renew 5 2019/5/17 03:43:23; rebind 5 2019/5/17 04:28:23; expire 5 2019/5/17 04:43:23; } Настройка dhcp сервера freebsd Ссылки:\\ http://itadept.ru/freebsd-dhcp-server\\ http://sergeysl.ru/freebsd-isc-dhcp-server\\ http://www.opennet.ru/man.shtml?topic=dhcpd.leases&category=5&russian=0\\ http://bezopasniku.ru/unix/dok/FreeBSD/dok/374.htm\\ http://bezopasniku.ru/unix/dok/FreeBSD/dok/430.htm\\ http://freebsdlog.blogspot.ru/2011/06/dhcp-dhclient-freebsd.html\\ https://www.freebsd.org/doc/ru/books/handbook/network-dhcp.html\\ http://lantan.chat.ru/dhcp-options.5.html\\ https://rtfm.co.ua/linux-poluchenie-adresa-po-dhcp-i-rabota-s-dhclient\\ https://www.freebsd.org/doc/ru/books/handbook/network-dhcp.html\\ https://ubuntugeeks.com/questions/84839/how-can-i-configure-isc-dhcpd-to-provide-option-150-for-cisco-phones