FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol). С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.
Постановка задачи
Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее — DHCP-сервера). Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP. Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).
Исходные данные
Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1 . На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101 — 192.168.0.200 , а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3 . Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local , IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3 , а также IP-адрес шлюза по умолчанию 192.168.0.1 . DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.
Установка и настройка DHCP-сервера
Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD. Стандартное ядро GENERIC поддерживает устройства bpf , а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:
В окне конфигурации нужно отметить единственную опцию [X] DHCP_PARANOIA Enable support for chroot . Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd , группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample .
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf . Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего. В рассматриваемом случае файл конфигурации должен иметь такой вид:
В данном файле заданы следующие значения параметров: option domain-name. , option domain-name-servers. и option routers. — имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility. — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet. — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range. ; host. — узлы с MAС-адресами сетевых карт hardware ethernet , которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5) , а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) — в dhcp-options(5) .
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 ( bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd .
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start , а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status . Если последняя команда выдаст сообщение dhcpd is running as pid . , все нормально, если же – dhcpd is not running , придется найти и устранить ошибки в файлах конфигурации.
Анализ состояния DHCP-сервера
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf :
и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart .
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:
Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:
а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт — примерно такими:
Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество «лишней» информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера. Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf :
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log , нужно добавить в файл /etc/syslog.conf строку:
Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log , а затем перезапустить syslogd командой /etc/rc.d/syslogd restart . Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log .
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:
Заключение
Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.
Понравилась статья?
Поделитесь ссылкой в социальной сети или блоге:
Сетевая Docker подсистема подключается используя драйверы. По умолчанию существует несколько драйверов которые обеспечивают основные сетевые функции:
- bridge: Мост, — это сетевой драйвер по умолчанию. Бридж сеть используется, когда ваши приложения запускаются в автономных контейнерах, которые должны взаимодействовать между собой (Наглядный пример Nginx + MySQL).
- host: Хост, — это сетевой драйвер для автономных контейнеров (удаленная сетевая изоляция между контейнером и Docker хостом). Данный драйвер доступен только для docker-swarm с поддержкой Docker 17.06 и выше.
- overlay/overlay2: Оверлей (Наложенная сеть), — это сетевой драйвер для соединения несколько демонов Docker между собой и которые позволяют docker-swarm службам взаимодействовать друг с другом. Вы также можете использовать оверлейные сети для облегчения связи между docker-swarm и автономным контейнером или между двумя отдельными контейнерами на разных Docker демонах. Эта стратегия устраняет необходимость выполнения маршрутизации на уровне ОС между этими контейнерами.
- macvlan: Маквлан,- это сетевой драйвер, который позволяют назначать MAC-адрес контейнеру, делая его отображаемым как физическое устройство в вашей сети. Docker демон направляет трафик на контейнеры по их MAC-адресам. Использование macvlan драйвера иногда является лучшим выбором при работе с устаревшими приложениями, которые ожидают, что они будут напрямую подключены к физической сети.
- none: Нон,- это сетевой драйвер, который умеет отключать всю сеть для контейнеров. Обычно используется в сочетании с пользовательским сетевым драйвером.
- Network plugins: Вы можете установить и использовать сторонние сетевые плагины с Docker контейнерами. Эти плагины доступны в Docker Store или у сторонних поставщиков услуг.
Где и что лучше использовать?
- Мост (bridge) лучше всего использовать для связи нескольких контейнеров на одном и том же Docker хосте. Можно юзать docker-compose и выберать даную сеть для такой связки.
- Хост (host) сети лучше всего юзать, когда сетевой стек не должен быть изолирован от хоста Docker, но вы хотите, чтобы другие аспекты контейнера были изолированы.
- Овердейная сеть (overlay/overlay2) или наложение сетей лучше всего заюзать, когда вам нужны контейнеры, работающие на разных Docker хостах для связи, или, когда несколько приложений работают вместе, используя docker-swarm.
- Маквлан (macvlan) сети лучше всего использовать, когда вы переходите с VM/дедикейта на контейнеры или хотите, чтобы ваши контейнеры выглядели как физические хосты в вашей сети, каждый с уникальным MAC-адресом.
- Сторонние сетевые плагины позволяют интегрировать Docker со специализированными сетевыми стеками.
Просмотреть Network в Docker
Чтобы проверить какие сети имеются, выполните следующую команду:
- NETWORK ID — При создании сети, ей присваивается ID. Так это собственно индификатор сети.
- NAME — Имя сети. Можно задать произвольное имя.
- DRIVER — Используемый драйвер для созданной сети.
- SCOPE — Где используется.
Если посмотреть на поле «DRIVER», то можно понять что я использую стандартную сеть, которую предоставляет сам докер.
Создать Network в Docker
Давайте создадим сеть, самый простой способ это:
Вы можете создавать bridge, overlay, host, none или кастомный network-инг. По дефолту, — создается мост. Проверяем что вышло:
Как я и говорил, создался бридж с указанным названием сети. Давайте рассмотрим пример создания оверлей-сети:
Можно создать macvlan сеть, например:
Еще один пример создания сети:
Проверим созданную сеть на примере, какого-то контейнера:
PS: Если нужно, то контейнеру можно выделить статик ИП:
При создании сети, можно задавать дополнительные параметры, с ними можно ознакомится:
Подключить/Отключить контейнер(ы) к/от сети в Docker
Чтобы законектить контейнер к сети, нужно выполнить следующую команду:
- YOUR_NETWORK — Сеть.
- YOUR_CONTAINER — Контейнер.
Для отключения служит обратная команда:
- YOUR_NETWORK — Сеть.
- YOUR_CONTAINER — Контейнер.
Инспектор Network в Docker
Можно получить подробную информацию о той или иной сети, например:
Довольно много полезной информации можно получить из данной команды.
Так же, можно получить инфу со следующей команды:
Или если есть необходимость в форматировании и выводе нужных полей, то можно заюзать следующий формат:
Удаление Network в Docker
Для удаления сети, используйте:
Или если нужно удалить все созданные сети которые не используются вами:
Если появится хороший материал, обязательно добавлю в данную статью. Вот и все, тема «Работа с сетью (Networking) в Docker» подошла к завершению.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
Установим PHP с необходимыми модулями. Процесс сборки из исходников может оказаться слишком утомительным, поэтому я ставлю из готовых пакетов c помощью package manager’а, который, если вы еще не установили, собирается из port’ов:
Далее ставим php:
И на всякий случай выставляем права:
Приступаем к конфигурированию. Далее нужно найти и раскоментировать две строчки в конфиге apache:
Теперь дополним строчку в том же httpd.conf:
Находим секцию LoadModule и добавляем в конце блока:
сразу после строки “ AddType application/x-gzip .gz .tgz” добавим:
и в конце файла допишем:
Создаем конфигурацию php из шаблона и открываем ее на редактирование:
где:
magic_quotes_gpc — отключает “экранирование” кавычек;
upload_max_filesize — выставляет лимит для одного загружаемого на сервер файла;
post_max_size — лимит для всех загружаемых на сервер файлов;
max_execution_time — лимит времени в секундах на выполнение скрипта (при его превышении сервер вернет ошибку, тогда как при значении параметра 0 время не ограничивается).
Переходим в директорию расположения веб-скриптов, переименовываем файл и добавляем в него код для отображения версии и других параметров интерпретатора PHP:
Перезапустив Apache введя в браузере IP-адрес веб сервера увидим информацию о PHP, что говорит о его работоспособности:
Здесь следует обратить внимание на включенную поддержку MySQL — если все настроено правильно, то статус обоих строчек будет “Enabled”:
Настройка DNS.
IP адреса DNS серверов хранятся в файле /etc/resolv.conf(Рис.9)
Открываем resolv.conf в редакторе vi.
Вписываем IP адрес DNS сервера. (Можно указать сколько угодно адресов.)
Если у вас нет файла resolv.conf то создайте его в каталоге /etc
Рис.9 – Содержимое файла resolv.conf.
Сетевая Docker подсистема подключается используя драйверы. По умолчанию существует несколько драйверов которые обеспечивают основные сетевые функции:
- bridge: Мост, — это сетевой драйвер по умолчанию. Бридж сеть используется, когда ваши приложения запускаются в автономных контейнерах, которые должны взаимодействовать между собой (Наглядный пример Nginx + MySQL).
- host: Хост, — это сетевой драйвер для автономных контейнеров (удаленная сетевая изоляция между контейнером и Docker хостом). Данный драйвер доступен только для docker-swarm с поддержкой Docker 17.06 и выше.
- overlay/overlay2: Оверлей (Наложенная сеть), — это сетевой драйвер для соединения несколько демонов Docker между собой и которые позволяют docker-swarm службам взаимодействовать друг с другом. Вы также можете использовать оверлейные сети для облегчения связи между docker-swarm и автономным контейнером или между двумя отдельными контейнерами на разных Docker демонах. Эта стратегия устраняет необходимость выполнения маршрутизации на уровне ОС между этими контейнерами.
- macvlan: Маквлан,- это сетевой драйвер, который позволяют назначать MAC-адрес контейнеру, делая его отображаемым как физическое устройство в вашей сети. Docker демон направляет трафик на контейнеры по их MAC-адресам. Использование macvlan драйвера иногда является лучшим выбором при работе с устаревшими приложениями, которые ожидают, что они будут напрямую подключены к физической сети.
- none: Нон,- это сетевой драйвер, который умеет отключать всю сеть для контейнеров. Обычно используется в сочетании с пользовательским сетевым драйвером.
- Network plugins: Вы можете установить и использовать сторонние сетевые плагины с Docker контейнерами. Эти плагины доступны в Docker Store или у сторонних поставщиков услуг.
Где и что лучше использовать?
- Мост (bridge) лучше всего использовать для связи нескольких контейнеров на одном и том же Docker хосте. Можно юзать docker-compose и выберать даную сеть для такой связки.
- Хост (host) сети лучше всего юзать, когда сетевой стек не должен быть изолирован от хоста Docker, но вы хотите, чтобы другие аспекты контейнера были изолированы.
- Овердейная сеть (overlay/overlay2) или наложение сетей лучше всего заюзать, когда вам нужны контейнеры, работающие на разных Docker хостах для связи, или, когда несколько приложений работают вместе, используя docker-swarm.
- Маквлан (macvlan) сети лучше всего использовать, когда вы переходите с VM/дедикейта на контейнеры или хотите, чтобы ваши контейнеры выглядели как физические хосты в вашей сети, каждый с уникальным MAC-адресом.
- Сторонние сетевые плагины позволяют интегрировать Docker со специализированными сетевыми стеками.
Просмотреть Network в Docker
Чтобы проверить какие сети имеются, выполните следующую команду:
- NETWORK ID — При создании сети, ей присваивается ID. Так это собственно индификатор сети.
- NAME — Имя сети. Можно задать произвольное имя.
- DRIVER — Используемый драйвер для созданной сети.
- SCOPE — Где используется.
Если посмотреть на поле «DRIVER», то можно понять что я использую стандартную сеть, которую предоставляет сам докер.
Создать Network в Docker
Давайте создадим сеть, самый простой способ это:
Вы можете создавать bridge, overlay, host, none или кастомный network-инг. По дефолту, — создается мост. Проверяем что вышло:
Как я и говорил, создался бридж с указанным названием сети. Давайте рассмотрим пример создания оверлей-сети:
Можно создать macvlan сеть, например:
Еще один пример создания сети:
Проверим созданную сеть на примере, какого-то контейнера:
PS: Если нужно, то контейнеру можно выделить статик ИП:
При создании сети, можно задавать дополнительные параметры, с ними можно ознакомится:
Подключить/Отключить контейнер(ы) к/от сети в Docker
Чтобы законектить контейнер к сети, нужно выполнить следующую команду:
- YOUR_NETWORK — Сеть.
- YOUR_CONTAINER — Контейнер.
Для отключения служит обратная команда:
- YOUR_NETWORK — Сеть.
- YOUR_CONTAINER — Контейнер.
Инспектор Network в Docker
Можно получить подробную информацию о той или иной сети, например:
Довольно много полезной информации можно получить из данной команды.
Так же, можно получить инфу со следующей команды:
Или если есть необходимость в форматировании и выводе нужных полей, то можно заюзать следующий формат:
Удаление Network в Docker
Для удаления сети, используйте:
Или если нужно удалить все созданные сети которые не используются вами:
Если появится хороший материал, обязательно добавлю в данную статью. Вот и все, тема «Работа с сетью (Networking) в Docker» подошла к завершению.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.
FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol). С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.
Постановка задачи
Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее — DHCP-сервера). Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP. Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).
Исходные данные
Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1 . На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101 — 192.168.0.200 , а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3 . Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local , IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3 , а также IP-адрес шлюза по умолчанию 192.168.0.1 . DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.
Установка и настройка DHCP-сервера
Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD. Стандартное ядро GENERIC поддерживает устройства bpf , а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:
В окне конфигурации нужно отметить единственную опцию [X] DHCP_PARANOIA Enable support for chroot . Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd , группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample .
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf . Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего. В рассматриваемом случае файл конфигурации должен иметь такой вид:
В данном файле заданы следующие значения параметров: option domain-name. , option domain-name-servers. и option routers. — имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility. — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet. — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range. ; host. — узлы с MAС-адресами сетевых карт hardware ethernet , которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5) , а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) — в dhcp-options(5) .
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 ( bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd .
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start , а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status . Если последняя команда выдаст сообщение dhcpd is running as pid . , все нормально, если же – dhcpd is not running , придется найти и устранить ошибки в файлах конфигурации.
Анализ состояния DHCP-сервера
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf :
и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart .
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:
Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:
а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт — примерно такими:
Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество «лишней» информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера. Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf :
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log , нужно добавить в файл /etc/syslog.conf строку:
Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log , а затем перезапустить syslogd командой /etc/rc.d/syslogd restart . Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log .
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:
Заключение
Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.
Понравилась статья?
Поделитесь ссылкой в социальной сети или блоге:
2. Установка Zabbix-агента.
Zabbix-агенты устанавливаются на наблюдаемых операционных системах с целью сбора информации: загрузка процессоров, памяти, дисков и тд.
FreeBSD:
Как минимум, мы будем мониторить систему, на которой установлен Zabbix сервер. Для FreeBSD установка будет выглядеть следующим образом:
Копируем шаблон конфига zabbix-агента и редактируем его (или сверяем настройки):
Запускаем агент и добавляем его в автозагрузку:
Проверяем, запустился ли:
Заходим в веб-интерфейс, выбираем “Настройка ->Узлы сети”, выбираем подгруппу “Zabbix server” и активируем дефолтный уже созданный узел Zabbix-сервера. Если все настроено правильно, через некоторое время пикограмма “ZBX” станет зеленого цвета, как на скриншоте:
Zabbix-сервер устанавливался на FreeBSD, поэтому зайдем в свойства узла Zabbix server и поменяем Template OS Linux на Template OS FreeBSD.
Debian:
Если говорить о других linux-дистрибутивах, то на примере Debian 8.x:
Далее все по аналогии — открываем конфиг, где указываем:
Все остальное можно оставить поумолчанию. Перезапускаем службу и добавляем правило для iptables:
Далее сохраняем правила iptables, в зависимости, где у вас расположен конфиг: по умолчанию для Debian 8.x:
Перезагружаем службу и проверяем правила:
Windows:
Для операционных систем Windows в первую очередь необходимо скачать с сайта архив с pre-compiled agent соответствующей версии. Внутри архива в папке bin располагаются две версии для разной разрядности операционных систем, а в папке conf — дефолтный конфиг агента. Содержимое папки bin, в соответствии с разрядностью вашей операционной системы и конфиг-файл необходимо скопировать в одну папку, например, в С:Zabbix. Теперь открываем комнадную строку с правами администратора, устанавливаем zabbix-агент, как службу:
и запускаем службу Zabbix-агента:
В случае, если какие-то параметры Zabbix-агента были изменены для перезапуска службы Zabbix-агента из командной строки с правами администратора нужно выполнить:
Необходимо так же разрешить соединения для порта 10050 и после добавления Windows-узла через веб-интерефейс Zabbix-сервера добавить Template OS Windows.
По желанию можно так же установить несколько инстанций zabbix-агента с различными конфиг-файлами — подробности здесь.
Настройка DNS.
IP адреса DNS серверов хранятся в файле /etc/resolv.conf(Рис.9)
Открываем resolv.conf в редакторе vi.
Вписываем IP адрес DNS сервера. (Можно указать сколько угодно адресов.)
Если у вас нет файла resolv.conf то создайте его в каталоге /etc
Рис.9 – Содержимое файла resolv.conf.
FreeBSD: DHCP-сервер для локальной сети на базе ISC DHCP Server
Рано или поздно любой системный администратор осознает необходимость перевода вверенных ему компьютеров и сетевых устройств на автоматическое получение параметров протокола TCP/IP с помощью DHCP (Dynamic Host Configuration Protocol). С учетом того, что большинство современных операционных систем имеет в своем составе включенные по умолчанию DHCP-клиенты, не нуждающиеся в дополнительной настройке, процедура внедрения DHCP сводится к установке и настройке DHCP-сервера.
Постановка задачи
Данная статья описывает простую, но достаточную для обслуживания небольших локальных сетей конфигурацию самого популярного DHCP-сервера для операционных систем семейства Linux / Unix от Internet Systems Consortium (далее — DHCP-сервера). Предложенная конфигурация обеспечивает динамическое распределение заданного диапазона IP-адресов, выделение фиксированных IP-адресов нескольким компьютерам (серверам), а также передачу клиентам всех параметров, необходимых для работы в сети TCP/IP. Для повышения безопасности DHCP-сервер запускается в chroot(8) от имени непривилегированных пользователя / группы, а для повышения удобства диагностики и мониторинга он интегрирован со штатными средствами управления логами syslogd(8) и newsyslog(8).
Исходные данные
Имеется сервер с FreeBSD, подключенный к локальной сети с IP-адресом 192.168.0.0/24 через интерфейс bge1 с IP-адресом 192.168.0.1 . На него будет установлен DHCP-сервер. Имеется несколько десятков компьютеров и сетевых устройств, которым следует выдавать IP-адреса из диапазона 192.168.0.101 — 192.168.0.200 , а также два сервера, которым нужно выдавать фиксированные IP-адреса 192.168.0.2 и 192.168.0.3 . Кроме того, всем DHCP-клиентам необходимо сообщать имя DNS-домена company.local , IP-адреса DNS-серверов 192.168.0.2 и 192.168.0.3 , а также IP-адрес шлюза по умолчанию 192.168.0.1 . DHCP-сервер будет устанавливаться из портов, поэтому я рекомендую обновить их.
Установка и настройка DHCP-сервера
Для обеспечения работоспособности DHCP-сервера требуется поддержка устройств bpf(4) ядром FreeBSD. Стандартное ядро GENERIC поддерживает устройства bpf , а при использовании самосборного ядра придется убедиться в наличии строки device bpf в файле его конфигурации, и, если таковая отсутствует, добавить ее, пересобрать ядро и перезагрузить систему.
Для установки DHCP-сервера из портов следует выполнить команды:
В окне конфигурации нужно отметить единственную опцию [X] DHCP_PARANOIA Enable support for chroot . Обратите внимание, что при установке DHCP-сервера будут созданы пользователь dhcpd , группа dhcpd и заготовка файла конфигурации /usr/local/etc/dhcpd.conf.sample .
По умолчанию конфигурация DHCP-сервера хранится в файле /usr/local/etc/dhcpd.conf . Я предпочитаю создавать этот файл без использования вышеупомянутой заготовки, содержащей слишком много лишнего. В рассматриваемом случае файл конфигурации должен иметь такой вид:
В данном файле заданы следующие значения параметров: option domain-name. , option domain-name-servers. и option routers. — имя DNS-домена, список IP-адресов и/или DNS-имен DNS-серверов и список IP-адресов и/или DNS-имен шлюзов (учтите, что перечисленные параметры относятся ко всем обслуживаемым подсетям, но их можно переопределить в секциях subnet для индивидуальной настройки отдельных подсетей); authoritative — признак авторитетности DHCP-сервера (авторитетный DHCP-сервер может инициировать прекращение существующих договоров аренды и запускать повторную процедуру получения IP-адресов); log-facility. — раздел системного журнала, в который будут перенаправляться сообщения DHCP-сервера; subnet. — обслуживаемая подсеть с диапазоном динамически выделяемых IP-адресов range. ; host. — узлы с MAС-адресами сетевых карт hardware ethernet , которым необходимо выдавать предопределенные IP-адреса fixed-address (в случае корректно настроенного резольвинга в качестве fixed-address можно использовать не только IP-адреса узлов, но и их DNS-имена).
Более подробная информация о параметрах, которые можно задать в файле конфигурации DHCP-сервера, имеется в dhcpd.conf(5) , а список всех опций DHCP (параметров TCP/IP-сети, которые можно сообщить клиентам) — в dhcp-options(5) .
Для того, чтобы DHCP-сервер автоматически запускался при запуске операционной системы, следует добавить в файл /etc/rc.conf строки:
Данные строки запрещают вывод диагностических сообщений на консоль и отключают протокол IPv6, задают имя файла конфигурации, привязывают DHCP-сервер к интерфейсу bge1 ( bge1 нужно заменить на имя используемого интерфейса, а при прослушивании нескольких интерфейсов придется перечислить их имена, используя пробел в качестве разделителя), устанавливают маску создаваемых файлов 022 (запрещают запись всем, кроме владельца), а также обеспечивают запуск в chroot-окружении с корневой папкой /var/db/dhcpd от имени пользователя dhcpd и группы dhcpd .
На этом настройка DHCP-сервера заканчивается. Можно запустить сервер командой /usr/local/etc/rc.d/isc-dhcpd start , а затем запросить его состояние командой /usr/local/etc/rc.d/isc-dhcpd status . Если последняя команда выдаст сообщение dhcpd is running as pid . , все нормально, если же – dhcpd is not running , придется найти и устранить ошибки в файлах конфигурации.
Анализ состояния DHCP-сервера
Для включения вывода сообщений DHCP-сервера на консоль следует изменить определение переменной dhcpd_flags в файле /etc/rc.conf :
и перезапустить DHCP-сервер командой /usr/local/etc/rc.d/isc-dhcpd restart .
Признаком корректного запуска DHCP-сервера может служить примерно такое сообщение:
Выделение динамических IP-адресов DHCP-клиентам сопровождается примерно такими сообщениями:
а выделение предопределенных IP-адресов по заданным MAC-адресам сетевых карт — примерно такими:
Рассмотренный способ наблюдения за состоянием DHCP-сервера прост и понятен (особенно при наличии под рукой документа RFC-2131), но очень неудобен в связи с необходимостью смотреть на консоль, на которую выдается огромное количество «лишней» информации.
Гораздо удобнее обеспечить запись сообщений DHCP-сервера в отдельный лог с помощью штатного демона syslogd. При этом нужно учесть, что из-за работы в chroot-окружении DHCP-сервер не может взаимодействовать с syslogd, сконфигурированным по умолчанию, т.к. сокет последнего находится за пределами chroot-окружения первого. Для исправления данного обстоятельства необходимо заставить syslogd слушать еще один сокет, имеющий имя /var/run/log относительно корневой папки chroot-окружения DHCP-сервера. Для автоматического создания такого сокета в процессе запуска syslogd, следует добавить соответствующий ключ -l к определению переменной syslogd_flags в файле /etc/rc.conf :
Для того, чтобы syslogd записывал сообщения DHCP-сервера в лог /var/log/dhcpd.log , нужно добавить в файл /etc/syslog.conf строку:
Для вступления изменений в силу необходимо создать пустой лог командой touch /var/log/dhcpd.log , а затем перезапустить syslogd командой /etc/rc.d/syslogd restart . Начиная с этого момента, все сообщения DHCP-сервера будут записываться в лог /var/log/dhcpd.log .
Для того, чтобы с течением времени лог DHCP-сервер не разрастался до бесконечности, следует включить его ротацию с помощью штатной утилиты newsyslog. Например, для ежесуточного усечения лога /var/log/dhcpd.log с сохранением семи предыдущих копий, сжатых архиватором bzip2(1), нужно добавить в файл /etc/newsyslog.conf строку:
Заключение
Я надеюсь, что не забыл ничего важного, и приведенной информации хватит для корректной настройки и последующей отладки DHCP-сервера от ISC на компьютере с операционной системой FreeBSD.
Понравилась статья?
Поделитесь ссылкой в социальной сети или блоге: