Различия
Показаны различия между двумя версиями страницы.
— | dhcp [2021/10/31 13:47] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== DHCP ====== | ||
+ | ~~Title: Настройка DHCP сервера Linux, FreeBSD ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-keywords=(dhcp в linux, сервер ISC) | ||
+ | metatag-description=(Настройка сервера DHCP ISC на FreeBSD, Debian. Возможности сервера DHCP, в каких случаях применять. Анализ DHCP пакетов.) | ||
+ | }} | ||
+ | |||
+ | |||
+ | * [[Контроль доступа к серверу по MAC‐адресам]] | ||
+ | * [[dhcpdump]] - [[сниффер]] утилита для анализа DHCP пакетов | ||
+ | DHCP (Dynamic Host Configuration Protocol - протокол динамической конфигурации узла) — это сетевой протокол, | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Протокол DHCP является клиент-серверным, | ||
+ | |||
+ | * **Прохождение DHCP запросов через iptables**. Правила для [[iptables]]:< | ||
+ | $IPT -A INPUT -i $LAN195 -p udp -m multiport --port 67:68 -j ACCEPT | ||
+ | $IPT -A INPUT -p udp -m multiport --port 67:68 -j DROP | ||
+ | </ | ||
+ | ===== Возможности сервера DHCP ===== | ||
+ | Но самый главный плюс DHCP вовсе не в том, что с его помощью можно автоматически раздавать IP-адреса. На этом функционал протокола не заканчивается. Основная его ценность в другом: | ||
+ | |||
+ | * Шлюзы по умолчанию. Если в вашей сети имеется несколько Интернет-каналов (для обеспечения бесперебойной работы), | ||
+ | * Статические маршруты. Если в вашей сети есть несколько подсетей, | ||
+ | * Смещение времени. Если ваши пользователи часто бывают в различных временных поясах (например, | ||
+ | * Сервер синхронизации времени. Поскольку часы компьютеров славятся своей неточностью, | ||
+ | * [[DNS]]-серверы. С помощью этой опции вы можете назначать вашим клиентам DNS-серверы как внутри сети, так и за ее пределами. Причем, | ||
+ | * Настройки сервера загрузки – настройки протокола TFTP/BOOTP, необходимые для бездисковой загрузки хостов. Эта возможность востребована при наличии в сети бездисковых терминалов, | ||
+ | * Списки доступных [[SMTP]] и POP серверов. | ||
+ | * Настройки [[WINS]] и Netbios | ||
+ | * Размер [[MTU]], время жизни кэша [[ARP]], размер [[TTL]] и др. | ||
+ | |||
+ | Если у вас сеть разбита на несколько подсетей, | ||
+ | |||
+ | Когда клиент загружается, | ||
+ | |||
+ | Когда dhcpd ищет секцию host для соответствующего клиента, | ||
+ | |||
+ | ===== Установка и настройка сервера DHCP на FreeBSD ===== | ||
+ | Homepage: | ||
+ | |||
+ | Дополнительная информация в man | ||
+ | < | ||
+ | > man dhcp-options | ||
+ | # описаны выражения допустимые в конфигурационном файле | ||
+ | > man dhcp-eval</ | ||
+ | < | ||
+ | > uname -a | ||
+ | FreeBSD ns.com.ua 7.2-RELEASE-p2 FreeBSD 7.2-RELEASE-p2 #0: Wed Jun 24 00:57:44 UTC 2009 | ||
+ | root@i386-builder.daemonology.net:/ | ||
+ | </ | ||
+ | < | ||
+ | > cd / | ||
+ | > make install clean | ||
+ | > cp / | ||
+ | </ | ||
+ | < | ||
+ | > ee dhcpd.conf | ||
+ | # dhcpd.conf | ||
+ | # | ||
+ | # Sample configuration file for ISC dhcpd | ||
+ | # | ||
+ | |||
+ | # Общие опции для всех поддерживаемых сетей... | ||
+ | option domain-name " | ||
+ | </ | ||
+ | < | ||
+ | option domain-name-servers 4.2.2.2, 208.67.222.222; | ||
+ | |||
+ | default-lease-time 1200; # время аренды (по умолчанию 600) | ||
+ | max-lease-time 7200; # максимальное время аренды | ||
+ | |||
+ | # Use this to enble / disable dynamic dns updates globally. | ||
+ | # | ||
+ | </ | ||
+ | < | ||
+ | # Является ли сервер авторитативным - ответственным DHCP сервером. | ||
+ | authoritative; | ||
+ | |||
+ | # ad-hoc DNS update scheme - set to " | ||
+ | # Способ динамического обновления DNS. Выключаем если используется статический DNS - в большинстве | ||
+ | # сетей так и есть. Иначе нужно конфигурировать сервер DNS (например bind) | ||
+ | ddns-update-style none; | ||
+ | </ | ||
+ | Для работы параметра log-facility нужно настроить syslog.conf и ротацию лога в newsyslog.conf. | ||
+ | < | ||
+ | # Источник сообщений для записи логов через syslogd | ||
+ | log-facility local7; | ||
+ | |||
+ | # No service will be given on this subnet, but declaring it helps the | ||
+ | # DHCP server to understand the network topology. | ||
+ | |||
+ | subnet 10.152.187.0 netmask 255.255.255.0 { | ||
+ | } | ||
+ | |||
+ | # This is a very basic subnet declaration. | ||
+ | |||
+ | subnet 10.26.95.0 netmask 255.255.255.0 { # подсеть из которой будут выдаваться адреса | ||
+ | range 10.26.95.1 10.26.95.240; | ||
+ | option domain-name-servers 10.26.95.253; | ||
+ | option routers 10.26.95.253; | ||
+ | #option netbios-name-servers 192.168.1.51; | ||
+ | #option domain-name-servers 192.168.1.51; | ||
+ | #option domain-name " | ||
+ | } | ||
+ | |||
+ | # Fixed IP addresses can also be specified for hosts. | ||
+ | # should not also be listed as being available for dynamic assignment. | ||
+ | # Hosts for which fixed IP addresses have been specified can boot using | ||
+ | # BOOTP or DHCP. Hosts for which no fixed address is specified can only | ||
+ | # be booted with DHCP, unless there is an address range on the subnet | ||
+ | # to which a BOOTP client is connected which has the dynamic-bootp flag | ||
+ | # set. | ||
+ | |||
+ | # | ||
+ | host darkfire { | ||
+ | hardware ethernet 00: | ||
+ | fixed-address 10.26.95.251;# | ||
+ | } | ||
+ | |||
+ | host user1 { | ||
+ | hardware ethernet 00: | ||
+ | fixed-address 10.26.95.10; | ||
+ | } | ||
+ | |||
+ | host user2 { | ||
+ | hardware ethernet 00: | ||
+ | fixed-address 10.26.95.11; | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | Прописываем в rc.conf строки | ||
+ | < | ||
+ | dhcpd_enable=" | ||
+ | dhcpd_flags=" | ||
+ | dhcpd_ifaces=" | ||
+ | </ | ||
+ | > / | ||
+ | |||
+ | ==== Файлы ==== | ||
+ | * / | ||
+ | dhcpd скомпонован статически и расположен в каталоге / | ||
+ | * / | ||
+ | dhcpd требует наличия конфигурационного файла, / | ||
+ | * **/ | ||
+ | Сервер DHCP ведёт базу данных выданной информации в этом файле, который записывается в виде протокола. Страницы справочной системы dhcpd.leases(5), | ||
+ | * / | ||
+ | dhcrelay используется в сложных ситуациях, | ||
+ | |||
+ | ===== ALLOW and DENY ===== | ||
+ | Параметры allow и deny используются для контроля над поведением демона dhcp в отношении различных видов запросов. | ||
+ | |||
+ | * Ключевое слово **unknown-clients**< | ||
+ | allow unknown-clients; | ||
+ | deny unknown-clients;</ | ||
+ | |||
+ | Параметр unknown-clients используется что бы сообщить серверу как поступать с неизвестными клиентами. По умолчанию выдача адресов неизвестным клиентам разрешена. | ||
+ | |||
+ | * Ключевое слово bootp< | ||
+ | allow bootp; | ||
+ | deny bootp;</ | ||
+ | |||
+ | Параметр bootp сообщает серверу dhcp обрабатывать или нет bootp-запросы. По умолчанию bootp-запросы разрешены. | ||
+ | |||
+ | * Ключевое слово booting< | ||
+ | allow booting; | ||
+ | deny booting;</ | ||
+ | |||
+ | Параметр booting сообщает серверу обрабатывать ли запрос конкретного клиента. Имеет смысл только если присутствует в описании host и действует только на соответствующий хост. По умолчанию разрешено, | ||
+ | ===== Настройка DHCP -клиента встроенного в OС FreeBSD ===== | ||
+ | |||
+ | Ручной запуск (в примере ниже - вывод команды говорит о неудачном запуске DHCP -клиента): | ||
+ | < | ||
+ | # dhclient rl0 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 7 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 11 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 9 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 10 | ||
+ | DHCPDISCOVER on rl0 to 255.255.255.255 port 67 interval 12 | ||
+ | No DHCPOFFERS received. | ||
+ | No working leases in persistent database - sleeping. | ||
+ | </ | ||
+ | |||
+ | ==== Настраиваем dhclient.conf ==== | ||
+ | |||
+ | По умолчанию dhclient.conf в FreeBSD пустой (в нем ссылка только на **man 5 dhclient.conf**). В обычном случае и при таком конфиге все работает. Но если возникают стоит изменить настройки по умолчанию. | ||
+ | |||
+ | Читаем man, копируем приведенный пример в наш dhclient.conf | ||
+ | < | ||
+ | # cp / | ||
+ | # man 5 dhclient.conf | ||
+ | ... | ||
+ | DHCLIENT.CONF(5) | ||
+ | |||
+ | NAME | ||
+ | | ||
+ | |||
+ | DESCRIPTION | ||
+ | The dhclient.conf file contains configuration information for | ||
+ | | ||
+ | ... | ||
+ | EXAMPLES | ||
+ | The following configuration file is used on a laptop which has an IP | ||
+ | alias of 192.5.5.213, | ||
+ | ing intervals have been shortened somewhat from the default, because the | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | retry 60; | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | |||
+ | | ||
+ | send host-name " | ||
+ | send dhcp-client-identifier 1: | ||
+ | send dhcp-lease-time 3600; | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | | ||
+ | media "media 10baseT/ | ||
+ | } | ||
+ | |||
+ | alias { | ||
+ | | ||
+ | | ||
+ | | ||
+ | } | ||
+ | |||
+ | This is a very complicated dhclient.conf file - in general, yours should | ||
+ | be much simpler. | ||
+ | | ||
+ | |||
+ | SEE ALSO | ||
+ | | ||
+ | ... | ||
+ | </ | ||
+ | Используем [[tcpdump]] для проверки DHCP (порты 67, 68). | ||
+ | |||
+ | Передача данных производится при помощи протокола UDP, при этом сервер принимает сообщения от клиентов на порт 67 и отправляет сообщения клиентам на порт 68. | ||
+ | # tcpdump -i rl0 -n | ||
+ | |||
+ | < | ||
+ | > ee / | ||
+ | |||
+ | </ | ||
+ | |||
+ | ===== Error dhcpd: Interface vr0 matches multiple shared networks ===== | ||
+ | |||
+ | Ошибка возникает если на одном интерфейсе (в данном случае vr0) прописаны алиасами несколько сетей. Для устранения ошибки нужно указать опцию shared-network {}, например так < | ||
+ | .... | ||
+ | shared-network sharedname { | ||
+ | subnet 192.168.175.32 netmask 255.255.255.248 { | ||
+ | range 192.168.175.33 192.168.175.38; | ||
+ | option routers 192.168.175.33; | ||
+ | } | ||
+ | subnet 192.168.175.48 netmask 255.255.255.240 { | ||
+ | range 192.168.175.50 192.168.175.62; | ||
+ | option routers 192.168.175.49; | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Установка сервера DHCP на Debian ===== | ||
+ | |||
+ | |||
+ | Окружение: | ||
+ | < | ||
+ | # aptitude install isc-dhcp-server | ||
+ | </ | ||
+ | Укажем явно сетевой интерфейс на котором будет слушать DHCP сервер, | ||
+ | < | ||
+ | # nano / | ||
+ | ... | ||
+ | # On what interfaces should the DHCP server (dhcpd) serve DHCP requests? | ||
+ | # | ||
+ | INTERFACES=" | ||
+ | </ | ||
+ | ==== Syslog в Debian для логов dhcpd ==== | ||
+ | |||
+ | По умолчанию демон [[DHCP]] пишет логи в / | ||
+ | < | ||
+ | # nano / | ||
+ | log-facility local7; | ||
+ | </ | ||
+ | < | ||
+ | # touch / | ||
+ | </ | ||
+ | В конец файла rsyslog.conf добавим строку | ||
+ | < | ||
+ | # nano / | ||
+ | ... | ||
+ | !dhcpd | ||
+ | *.* | ||
+ | </ | ||
+ | Для блокировки в messages и на console добавим local7.none | ||
+ | < | ||
+ | ... | ||
+ | *.=info; | ||
+ | auth, | ||
+ | cron, | ||
+ | mail, | ||
+ | ... | ||
+ | daemon.*; | ||
+ | news.err;\ | ||
+ | *.=debug; | ||
+ | *.=notice; | ||
+ | </ | ||
+ | |||
+ | ====== Параметр authoritative DHCP ====== | ||
+ | |||
+ | Параметр authoritative DHCP-сервера позволяет объявить сервер авторитативным (ответственным) в обслуживаемой сети. Отличие авторитативного сервера от «обычного» заключается в том, что последний игнорирует любые запросы адресов, | ||
+ | |||
+ | |||
+ | ===== Читайте также ===== | ||
+ | |||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * [[http:// | ||
+ | * {{:: | ||
+ | * {{:: | ||
+ | * [[dynamic_dns]]. |
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга