Dnsmasq — это программа, поддерживающая работу сразу двух сетевых сервисов, DNS и DHCP. Dnsmasq как сервис имеет ряд преимуществ по сравнению с другими сервисами DNS и DHCP. Во-первых, настройка dnsmasq проста, во-вторых, он нетребователен к ресурсам, в-третьих, он реализует сразу два сервиса, в-четвертых, он гибок и позволяет, например, реализовать обращение по именам к компьютерам в локальной сети, причем сделать это просто и быстро. Именно поэтому он используется как на серверах, так и в embeded-системах, например, в роутерах, и отлично подходит для обеспечения работы небольших сетей.

Установка

Обычно dnsmasq устанавливается на машину, выполняющую роль сетевого шлюза, в небольших сетях обычно именно на нем работают сервисы DHCP и DNS. Поскольку dnsmasq присутствует в репозиториях многих дистрибутивов, его можно установить при помощи менеджера пакетов:

После этого можно приступать к настройке.

Настройка dnsmasq как DHCP

DHCP — это один из базовых сервисов в локальных сетях, благодаря которому отпадает необходимость конфигурировать настройки сети вручную. Он позволяет выдавать автоматически такие настройки как IP-адрес, адрес DNS-сервера и шлюза по-умолчанию, а также резервировать IP-адреса по MAC-адресам.

Для того, чтобы dnsmasq работал как DHCP-сервер, в конфигурационном файле /etc/dnsmasq.conf должны присутствовать следующие строки (они могут уже присутствовать в конфиге, их надо только раскомментировать и исправить):

Эта строка не обязательна, она нужна в том случае, если вы хотите, чтобы хосты, получающие адреса по DHCP, имели FQDN-имя, то есть полное имя, включающее имя домена.

Сетевой интерфейс, на котором будет работать сервис. Обычно основной интерфейс eth0 подключен к провайдеру, поэтому его крайне нежелательно указывать в качестве интерфейса для работы сервиса.

Интервал выдаваемых адресов и время аренды адресов (в данном случае 24 часа).

Резервация IP-адреса по MAC-адресу, чтобы устройство с указанным MAC-адресом всегда получало указанный IP-адрес.

Задать значение опции DHCP с номером 1. Опция с номером 1 — это маска подсети (netmask).

Задать значение опции DHCP с номером 3. Опция с номером 3 — это шлюз по умолчанию (default gateway).

Этих опций в небольшой офисной или домашней сети обычно достаточно.

Список всех опций DHCP можно посмотреть на странице IANA (Internet Assigned Numbers Authority).

После задания настроек надо рестартовать сервис:

Теперь можно задавать настройки на компьютерах в сети на автоматическое получение адресов по DHCP.

Настройка dnsmasq как DNS

DNS — это второй базовый сервис, без которого в локальных сетях не обойтись, если, конечно, вы не планируете обращаться к компьютерам в локальной сети и Интернете по IP-адресам, в чем я сильно сомневаюсь. Dnsmasq работает как кэширующий DNS-сервер. У него есть одна полезная особенность. Он умеет использовать файл /etc/hosts как источник информации для DNS, что может быть очень полезно. Например, если есть какой-то локальный сервис, с которым работают пользователи в локальной сети, они могут к нему обращаться по имени, а не по адресу, адрес будет запрашиваться у DNS-сервера, который будет возвращать IP-адрес, к которому необходимо обращаться.

Настройка dnsmasq как DNS по сути не отличается от настройки как DHCP, поскольку все настройки хранятся в том же файле — /etc/dnsmasq.conf

Самое первое, что необходимо, — это название домена

Для определенной подсети можно указать отдельное имя домена:

И точно так же можно указать имя домена для интервала адресов:

Основная функция DNS-сервера — это преобразование доменных имен в IP-адреса и наоборот, но DNS-серверов даже в локальной сети может быть несколько. Поэтому может потребоваться указать для определенных доменов адреса DNS-серверов, на которые должны отравляться запросы:

Аналогично указывается сервер для обратной зоны:

В конфигурационном файле также можно указать соответствие имени IP-адресу.

Запись типа A в прямой зоне DNS (сопоставляющей IP-адрес запрошенному имени):

На любое имя хоста *.extdomain.net возвращается адрес 127.0.0.1.

Запись типа CNAME:

Эта запись создает алиас для локального имени sambaserver, чтобы к нему можно было обращаться по более короткому имени smb.

По умолчанию dnsmasq использует файл /etc/hosts для сопоставления имен хостов IP-адресам, но это тоже можно изменить. Если вы не хотите использовать /etc/hosts, вы можете указать это при помощи опции

Если же вы хотите использовать совместно с /etc/hosts еще один файл аналогичной структуры, для этого есть опция

Кроме задания собственных записей DNS можно изменять информацию, получаемую от внешних DNS-серверов путем подмены полученного IP-адреса. Для замены одного адреса:

Если при запросе доменного имени от внешнего DNS-сервера мы получим IP-адрес 1.2.3.4, то мы подменим его на адрес 5.6.7.8. Можно осуществлять подмену целыми подсетями:

Такая запись подменит любой адрес из подсети 1.2.3.0/24 на адрес из подсети 5.6.7.0/24. Если же вам необходимо подменять определенный интервал адресов, то такая возможность тоже есть:

Эта запись подменит адреса из интервала 10.0.0.10-10.0.0.40 на адреса 192.168.0.10-192.168.0.40

Для того, чтобы обращения к DNS шли именно на dnsmasq на том же сервере, где он сам работает, необходимо указать первой записью в /etc/resolv.conf следующую строку:

Сам dnsmasq будет игнорировать эту запись, поскольку предполагает, что эта запись обозначает его собственный сервис, он начинает использование записей с указанием серверов имен со следующей записи, в которой указывается уже внешний DNS-сервер.

Во многих системах /etc/resolv.conf генерируется автоматически при получении адреса от провайдера по DHCP, поэтому если просто записать эту строчку руками, при переподключении основного сетевого интерфейса файл будет перезаписан и эта строка исчезнет. Этого можно избежать, если раскомментировать в файле /etc/dhcp/dhclient.conf (или /etc/dhcp3/dhclient.conf, в зависимости от системы) строчку

Тогда даже при получении списка DNS-серверов по DHCP первой строчкой в /etc/resolv.conf будет строчка «nameserver 127.0.0.1».

И еще одна опция, которая может вам пригодиться, если вы хотите использовать свой список DNS-серверов:

Файл, который указывается в этой опции, должен иметь такую же структуру, как и /etc/resolv.conf. При наличии этой опции будет использован указанный файл вместо /etc/resolv.conf. И таких записей может быть больше одной.

А если необходимо просто указать несколько DNS-серверов, на которые будут форвардиться запросы, это можно сделать при помощи записи нескольких строчек с опцией server:

Вот, в общем, и всё. И не забывайте после изменения настроек рестартовать dnsmasq командой

Dnsmasq . Главные настройки.

Поддельный wifi через dnsmasq

Здравствуйте, дорогие посетители. В очередной статье блога Компьютер76 рассмотрим очередной же пример, как хакер может воспользоваться простыми человеческими желаниями посидеть в интернете бесплатно, организуя для своих жертв поддельную точку доступа (ТД), сконфигурировав на своей Кали Линукс бесплатный wifi, обкрадывая тем временем любителей халявы. Как обычно, процесс разобью на два этапа, читайте оба внимательно, чтобы в последующем избежать ошибок.

Как я уже писал, способов организовать атаку типа “человек-посередине” (MITM – ) существует немало. Сегодня мы будем это делать с помощью встроенных в Кали Линукс средств и утилиты dnsmasq. Для начала подготовимся и настроим указанные утилиты, если их нет или они неправильно настроены – мы кое-что подправим или переустановим.

Что нам для того понадобиться?

  • Альфа-карта (у меня это модем TL-WDN3200, вещица очень неплохая, кстати)
  • Кали Линукс любой сборки (у меня версия 2.0)
  • выход в интернет (хакер должен хоть что-то людям раздавать, а то долго не продержится…)
  • прямые руки и сосредоточенность
  • остальное уже есть или скачаем или подправим

Если вы счастливый обладатель Кали Линукс , то пакетом aircrack-ng обзавестись уже успели. На всякий случай, команда для установки пакета:

Или просто наберите в терминале aircrack-ng – должна появиться справка по утилите.

Далее, нужно проверить, если в сборке возможность подключения простенького сервера – это утилита dnsmasq. Для того, чтобы проверить, есть ли она у вас, наберите в терминале:

whereis dnsmasq

Обычно в Кали Линукс всё готово, но на всякий случай та же команда для установки:

apt-get install dnsmasq

Сразу к возможным неполадкам

Самое главное для нас – это файл настройки под названием dnsmasq.conf. Он должен находиться по пути и это легко проверить. В терминале наберите команду “обнаружить”:

Если на месте, пропускаем манипуляции с установкой/удалением dnsmasq. Бывало так, что сервер в Кали есть, а самого dnsmasq.conf – как не было. Если нет – смело переустановим dnsmasq, и не просто переустановим, но и снимем в системе все от него зависимости (между двумя тире пробела нет):

Иногда приходится и затирать файлы конфигурации. Тогда можно применить команду (тоже нет пробела между двумя дефисами):

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

apt-get install dnsmasq

Задача хакера – это правильная настройка файла . По умолчанию этот файл состоит из одних лишь комментариев и пояснений. И его стоит немного подправить, буквально на пару символов.

Найдите файл dnsmasq.conf. Это можно сделать с помощью терминала:

Откройте его (командой отображения и редактирования файла прямо в терминале vim пока не будем пользоваться), найдя через Менеджер Кали:

Если совсем лень ручками, то наберите в терминале “открыть с помощью текстового редактора”:

Файл выглядит примерно так:

Для настройки необходимо найти всего 2 строчки. В открытом файле вызовите меню поиска по символам Ctrl + F и введите значение (его-то мы и ищем)

# interface=

Его нужно поменять на:

То есть снять атрибут комментария ” # ” и ввести это значение “в бой”, а также закрепить за ним название интерфейса будущей поддельной точки доступа at0. Сделайте, чтобы получилось вот так:

Документ пока не закрываем, нам нужна ещё одна строчка. И вот здесь начинающему хакеру придётся отступить от шаблонов и чуть напрячься головой. В этом файле необходимо задать диапазон адресов, которые будут выдаваться подключающимся клиентам-жертвам IP-адреса. Как вы понимаете, чтобы этот диапазон не вступил в конфликт с уже существующим подключением с выходом в интернет, их нужно разграничить. Здесь часто ошибка и скрывается, ибо дальнейшие настройки очень просты: жертвы будут видеть ваш wifi, но подключиться не смогут.

Чтобы ничего не напутать, откройте окно терминала и проверьте текущие интерфейсы системы:

Хакер сейчас сам подключён к сети через проводное соединение eth1 (у вас оно может быть другим), поддельный wifi будет транслироваться через интерфейс wlan0mon (сейчас на фото карта не в режиме мониторинга и обозначается как wlan0 – у вас тоже может быть другим). Сейчас же главное – запомнить IP-адрес интерфейса выхода в глобальную сеть интернет. У меня, как видите, 192.168.0.100. Запомнили свой?

Возвращаемся к ненадолго покинутому . С помощью Ctrl + F найдём строчку диапазона адресов:

Также снимем атрибут комментария ” # ” , но скорректируем диапазон для жертв по-своему. Я, как видно, сменил в адресах значения третьих октетов с “” на “1” (чтобы не отключить себя от сети: помните, у меня адрес выхода в сеть 192.168.0.100 ?). Теперь этот кусок файла по моим настройкам выглядит так:

Где указан диапазон IP-адресов, которые будут присваиваться клиентам-жертвам, 12h – время действия ТД (12 часов). Оставим без изменений пока.

Всё, с настройками покончено. Сохраните файл сочетанием Ctrl +S и переходите непосредственно к запуску поддельной точки доступа (ТД).

Блог программиста-электронщика

“Стремись не к тому, чтобы добиться успеха,
а к тому, чтобы твоя жизнь имела смысл”
Альберт Энштейн

воскресенье, 8 января 2012 г.

Установка и настройка dnsmasq (DNS, DHCP, BOOTP/PXE, TFTP сервер)

Общую информацию о dnsmasq можно найти перейдя по этой ссылке.

1. Установка dnsmasq происходит достаточно легко (немного сложнее, если устанавливать из исходного кода)

основанные на Debian дистрибутивы, такие как Ubuntu
$ sudo apt-get install dnsmasq

основанные на Fedora дистрибутивы и Cent OS
$ su
# yum install dnsmasq

семейство *BSD, если установлена Ports коллекция
$ cd /usr/ports/dns/dnsmasq/
$ su
# make install clean
или, если вы предпочитаете добавить пакет

$ ipkg install dnsmasq

dnsmasq скрипт устанавливается в /opt/etc/init.d



2. Настройка dnsmasq также не представляет особых сложностей

Настройки можно изменять двумя путями, либо передать их через командную строку,
либо установить их в файле dnsmasq.conf. Наименование настроек(в не сокращенном варианте) передаваемых через командную строку и указываемых в файле dnsmasq.conf совпадают. Как правило выбирают второй вариант, поскольку он наиболее наглядный и позволяет добавлять комментарии к каждой настройке с помощью символа ‘#’.
Основные варианты расположения файла dnsmasq.conf
в зависимости от платформы, следующие:
/etc/dnsmasq.conf
/usr/local/etc/dnsmasq.conf
/opt/etc/dnsmasq.conf

В случае малого количества настраиваемых параметров их можно разместить в одном файле, либо передать через командную строку, но если будет использоваться множество настроек, то для лучшей структуризации можно разделить их по группам в разные файлы, это можно выполнить используя следующие опции:

# добавить файл конфигурации myfile.conf
# к настройкам (строк может быть >1)
# если указать вместо имени файла «-» ,
# то настройки будут получены из устройства stdin
conf-file=/etc/dnsmasq/myfile.conf

# добавить настройки из всех файлов,
# находящихся по умолчанию в папке /etc/dnsmasq/conf.d,
# кроме файлов .bak, а также заканчивающихся символом

,
# либо начинающиеся с «.», либо начинающиеся и
# заканчивающиеся символом «#» пропускаются всегда!
# общая форма: conf-dir= [, . ]
conf-dir=/etc/dnsmasq/conf.d,bak

Общие настройки сервиса лучше начать со следующих строк

# чтобы изменить идентификаторы пользователя UID, GID
# для процесса dnsmasq укажите следующие опции
user=dnsmasq
group=dnsmasq

Настройка dnsmasq для DHCP и сервер имен

Настройка dnsmasq для DHCP и сервер имен

Условия

В дальнейшем предполагается, что на вашем компьютере установлена программа dnsmasq, a dhcpd не установлена (иначе между двумя этими программами возникнет конфликт).

Другой важной предпосылкой является правильная конфигурация файла /etc/ hosts на компьютере-шлюзе. Я на собственном опыте убедился, что этот файл зачастую не соответствует требованиям dnsmasq. Не забывайте лишний раз взглянуть на этот файл, прежде чем соберетесь изменять локальную конфигурацию сети, заданную на компьютере-шлюзе!

Как минимум, в /etc/hosts должны содержаться две приведенные далее строки. Вторая строка имеет определяющее значение для соотнесения имени локального компьютера (например, mars или mars.sol в данном случае) и IP-адреса в локальной сети (здесь 192.168.0.1)! Часто далее присутствуют и другие строки, описывающие конфигурацию IPv6, но мы не будем рассматривать это.

СОВЕТ

Если возникнут проблемы, проверьте конфигурацию брандмауэра! Сетевой интерфейс локальной сети не должен блокироваться брандмауэром. В зависимости от программы, используемой в качестве брандмауэра, сетевой интерфейс должен быть соотнесен с внутренней (то есть незащищенной) зоной.

Файл dnsmasq.conf

Конфигурация dnsmasq выполняется в файле /etc/dnsmasq.conf. Этот файл, по умолчанию присутствующий в дистрибутиве, также служит техническим документом и содержит около 400 строк комментариев. Немногочисленные важные команды среди этого множества комментариев можно не заметить. Переименуйте файл в dnsmasq.conf.orig или создайте с помощью команды grep новый файл, не содержащий комментариев:

Для конфигурации dnsmasq очень важен не только файл /etc/dnsmasq.conf, но и / etc/hosts и /etc/resolv.conf.

Как и большинство других программ, представленных в этой и в следующих главах, dnsmasq является демоном (системной службой). В некоторых дистрибутивах эта программа запускается сразу же после установки. Если этого не происходит, программу нужно запустить вручную. Все изменения конфигурации вступают в силу только после перезапуска:

Кроме того, от конкретного дистрибутива зависит, должна ли программа в дальнейшем автоматически запускаться при запуске компьютера. В Fedora, Red Hat и SUSE по умолчанию этого не происходит.

Минимальная конфигурация

Файл dnsmasq.conf достаточно хорошо функционирует уже при показанной ниже минимальной конфигурации. При этом программа играет роль кэша сервера имен для работы в Интернете и предоставляет клиентам IP-адреса из диапазона между 192.168.0.2 и 192.168.0.250. Клиенты сохраняют свои хост-имена.

Коротко объясню отдельные ключевые слова: domain-needed и bogus-priv не позволяют dnsmasq передавать хост-имена и IP-адреса локальных компьютеров серверу имен вашего интернет-провайдера (таким образом, управляемый провайдером сервер имен отвечает только за имена и адреса из Интернета, но не из локальных сетей).

Ключевое слово interface указывает, что dnsmasq, выполняющая функцию DHCP-сервера, должна отвечать только на те запросы, которые приходят с интерфейса ethl, который при рассматриваемой топологии отвечает за LAN.

Слово dhcp-range указывает, какой диапазон адресов должен использовать DHCP-сервер для ответа на DHCP-запросы. Выданные адреса остаются присвоенными конкретным компьютерам в течение 24 часов, а затем должны быть обновлены клиентом.

Адреса сервера имен и шлюза не требуют дополнительной конфигурации. Программа dnsmasq сама интерпретирует /etc/resolv.conf и обращается к указанному в этом файле серверу имен. Клиентам DHCP передаются адреса сервера имен и шлюза — отдельно на IP-адрес каждого компьютера в локальной сети.

Применение локального сервера имен

При использовании вышеуказанной минимальной конфигурации dnsmasq может разрешать локальные адреса лишь в том случае, если в /etc/hosts содержится необходимая информация. Сервер имен не будет знать адреса, которые были присвоены динамически через DHCP. Чтобы dnsmasq также могла функционировать в качестве сервера имен для клиентов в сети LAN, добавьте в dnsmasq.conf следующие строки и укажите dnsmasq заново считать конфигурационный файл. Доменное имя рассматриваемой сети — sol.

Ключевое слово local указывает, что запросы адресов, поступающие из этого домена, должны обрабатываться непосредственно dnsmasq (а не сервером имен провайдера интернет-услуг).

Слово domain указывает, что dnsmasq должна присвоить DHCP-клиентам заданное доменное имя. Это имя должно быть таким же, как и указанное в local.

Наконец, благодаря использованию expand-hosts запросы сервера имен, в которых не указан домен, автоматически дополняются доменным именем, заданным в domain. Итак, если выполнить команду ping uranus, то dnsmasq возвратит адрес uranus.sol.

Для того чтобы dnsmasq поименно различала своих клиентов, то есть компьютеры, которые запрашивают IP-конфигурацию через DHCP, необходимо, чтобы эти компьютеры сообщили программе свои хост-имена через DHCP. В большинстве дистрибутивов и конфигурационных программ для работы с LAN/WLAN, в том числе в Network Manager, эта настройка действует по умолчанию. Будьте внимательны, применяя на компьютерах-клиентах Fedora, Red Hat или старые версии Debian и Ubuntu. Соответствующие советы о том, как проводить конфигурацию, даются в подразделе «Клиентская конфигурация».

Статические адреса и хост-имена

Команду dnsmasq можно сконфигурировать и так, чтобы она настраивала хост-имена клиентов. Статическое соотнесение хост-имени и IP-адреса осуществляется на основании МАС-адреса клиента. Такая адресация удобна прежде всего при работе с устройствами, настраивать для которых хост-имена достаточно нелегко — это касается, например, сетевых принтеров. Для конфигурации используется ключевое слово dhcp-host. Следующий листинг — это запись о сетевом принтере pluto.

Самое сложное при таком варианте конфигурации — определить МАС-адрес (адрес для управления доступом к среде) клиента. Роль такого адреса играет уникальный ID-номер, который имеется у каждого Ethernet-контроллера. В Linux для отображения МАС-адреса используется команда iconfig. В остальном вам потребуется просто подключить устройство к LAN и выполнить динамическую конфигурацию с помощью dnsmasq. Программа протоколирует все динамические IP-адреса вместе с хост-именами и МАС-адресом в файл /var/lib/misc/dnsmasq. leases. Таким образом, МАС-адрес можно узнать и из этого файла.

По умолчанию адреса, динамически присвоенные с помощью DHCP, действительны в течение 24 часов. Но для сетевых принтеров и другой аппаратуры, работающей в режиме с резервированием, такого промежутка времени часто бывает недостаточно. Если принтер не используется в течение более чем 24 часов, команда dnsmasq «считает», что прибор выключен, и как бы «забывает» о нем. Чтобы этого не происходило, можно добавить к данным о сроке действия адреса дополнительную строку, в которой указывается время. Благодаря infinite адрес остается действителен сколь угодно долго.

В man dnsmaq и /etc/dnsmasq.conf.orig описано несколько других вариантов синтаксиса для dhcp-host. Там рассказано, как создать жесткую связь между хост-именем и IP-адресом, полностью заблокировать определенные МАС-адреса и т. д.

DNS для локального компьютера

По умолчанию dnsmasq выполняет функции сервера имен для всех компьютеров в сети, но на самом шлюзе эта программа не работает! Причина заключается в том, что на локальном компьютере используется тот сервер имен, который задан в /etc/ resolv.conf. Как правило, этот файл указывает на сервер имен вашего интернет-провайдера или роутера.

Если на компьютере-шлюзе должны работать другие серверные программы (файловый сервер, Kerberos и т. д.), необходимо, чтобы шлюз знал клиентов «поименно», то есть также использовал dnsmasq как сервер имен. Чтобы этот механизм работал, обратите внимание на следующие моменты.

/etc/resolv.conf должен указывать на dnsmasq (то есть на localhost, адрес 127.0.0.1), а не на внешний сервер имен. Внимание: если вы строите соединение с Интернетом по динамическому принципу (LAN + DHCP или модем + РРР), то файл resolv.conf будет перезаписан при любой архитектуре соединения. Этого необходимо избежать: соединение с ADSL-роутером должно быть статическим. Можете изменить конфигурацию РРР, чтобы в описанном случае resolv.conf оставался без изменений. О Теперь dnsmasq не может интерпретировать resolv.conf, чтобы узнать адрес внешнего сервера имен, поэтому адрес внешнего сервера имен нужно специально указать в dnsmasq.conf с помощью ключевого слова server.

Продемонстрирую это на примере. Допустим, компьютер-шлюз mars с 1Р-адре-сом 192.168.0.1 в LAN подключен к ADSL-роутеру через Ethernet-интерфейс ethO. IP-адрес роутера — 10.0.0.138. Чтобы mars мог обмениваться информацией с ADSL-роутером, интерфейс ethO конфигурируется статически (даже если ADSL-роутер поддерживает работу с DHCP, динамическая конфигурация с применением DHCP недопустима, так как в противном случае при каждом перезапуске компьютера в resolv.conf будут записываться данные DHCP ADSL-роутера!).

Еще остается настроить конфигурацию dnsmasq: теперь программа уже не может считывать адрес внешнего сервера имен (для обращения к Интернету) из resolv.conf. Наоборот, она должна игнорировать resolv.conf (параметр no-resolv) и связываться с внешним сервером имен, указанным после ключевого слова server:

Все вместе

Если такой подробный рассказ о различных настройках dnsmasq вас немного запутал, вы можете просмотреть окончательный вариант файла dnsmasq.conf:

Журналирование

Программа dnsmasq автоматически заносит все динамически присвоенные IP-адреса в файл /var/lib/misc/dnsmasq.leases. Статические адреса, напротив, не учитываются. В каждой записи этого файла также содержится МАС-адрес и хост-имена клиентов (если они известны). Таким образом, из этого файла очень удобно узнавать МАС-адреса новых клиентов.

Если dnsmasq работает не так, как вы хотели, вставьте в dnsmasq.conf ключевое слово log-queries. Теперь программа будет регистрировать все обращения к серверу имен в /var/log/syslog или /var/log/messages.

Клиентская конфигурация

В принципе сконфигурировать компьютер, который должен получать конфигурацию IP через DHCP, совсем не сложно. Все дистрибутивы Linux и современные версии Windows содержат соответствующий флажок в окне, используемом для конфигурации сети, — я об этом уже говорил. Программа Network Manager, которая все шире используется в Linux, также самостоятельно распознает DHCP-данные LAN- или WLAN-соединения.

Единственный одновременно сложный и важный момент такой конфигурации — работа с хост-именами: как правило, клиент должен иметь фиксированное хост-имя, отправляемое на DHCP-сервер. Большинство клиентских DHCP-ин-струментов делают это по умолчанию. Исключениями являются Fedora и Red Hat, а также устаревшие версии Debian и Ubuntu, где этого не происходит, так как там не применяется Network Manager.

Debian 4, Ubuntu 8.04

Debian до версии 4 включительно и Ubuntu до версии 8.04 по умолчанию не передают хост-имена на DHCP-сервер. Если вам нужно, чтобы этот механизм работал, добавьте в /etc/dhcp3/dhclient.conf показанную ниже строку. Тогда dhclient не будет заменять последовательность символов актуальным хост-именем. По умолчанию эта настройка действует, лишь начиная с Debian и Ubuntu.

# Дополнение в /etc/dhcp3/dhclient.conf send host-name «»:

Если при работе с Red Hat и Fedora для конфигурации сети применяется не Network Manager, a system-config-network=neat, то настроенное хост-имя не передается обратно на DHCP-сервер! Если вам нужно, чтобы этот механизм работал, потребуется специально настроить те имена, которые должны пересылаться. Для этого откройте в меню Правка окно свойств сетевого интерфейса (например, ethO) и укажите предназначенные для пересылки хост-имена в настройках DHCP.

Как повторно считывать данные DHCP

Разумеется, чтобы испытать DHCP-сервер, не требуется каждый раз заново перезапускать клиенты. Вполне достаточно будет перезапустить сетевые функции. Если вы работаете с Network Manager, просто выберите в меню этой программы интерфейс, отвечающий за сетевые функции. Программа разорвет имеющееся соединение и установит его заново.

Если вы задаете сетевую конфигурацию, не пользуясь Network Manager, то заново запросите с помощью следующих команд информацию о DHCP:

Затем убедитесь, что все работает. Для этого выполните команду iconfig и загляните в файл /etc/resolv.conf. Если вы работаете с KDE или Gnome, то после изменения хост-имени или других основополагающих сетевых параметров вам придется выйти из системы и снова в нее войти.

Даже в Windows можно заново считать данные DHCP без перезапуска. Откройте командное окно и выполните в нем следующую команду:

2.3 Настройка кэширования DNS с помощью dnsmasq

Для корректной установки и настройки dnsmasq, перейдите в сеанс cуперпользователя:

На запрос пароля, введите пароль привилегированного пользователя или локального администратора.

DNS — кэш предназначен для ускорения загрузки страниц веб-сайтов, путем сохранения в памяти их IP-адресов. Для настройки кэширования используйте утилиту dnsmasq.

С помощью текстового редактора vi или nano откройте файл, расположенный по адресу /etc/dnsmasq.conf

Отредактируйте следующие параметры:

А так же допишите следующий параметр:

  • resolv-file — файл с IP-адресами dns — серверов
  • no-poll — параметр, запрещающий автоматическое применение изменений в файлах с именем resolv.
  • listen-address — параметр, указывающий какой адрес слушать.
  • cache-size — размер кэша. Значение по умолчанию позволяет хранить 150 хостов.
  • conf-dir — параметр, отвечающий за дополнительный файл конфигурации.
  • all-servers — перенаправляет dns-запрос всем доступным dns-серверам и возвращает ответ от первого откликнувшегося сервера. Параметр нужно записать вручную.

Также можно указать следующие параметры:

  • no-negcache — не кэшировать негативные ответы от серверов.
  • bind-interfaces — позволяет запускать копии процесса.
  • dns-forward-max — максимальное количество dns-запросов. По умолчанию — 150. Параметр нужно записать вручную.

Теперь создайте файл resolv.dnsmasq с помощью текстового редактора vi или nano и запишите туда адреса dns-серверов.

Потом добавьте IP-адрес 127.0.0.1 в файл resolv.conf. Для этого, используйте утилиту «Сетевые соединения», расположенную в «Меню» → «Параметры» → «Сетевые соединения» в графическом окружении Cinnamon или «Система» → «Параметры» → «Сетевые соединения» в графическом окружении Mate. Выберите ваше активное подключение, нажмите кнопку «Изменить», перейдите на вкладку «Параметры IPv4», поменяйте «Метод» на «Автоматический (DHCP, только адресс)», а в поле «Дополнительные серверы DNS» напишите адрес 127.0.0.1, нажмите применить и перезапустите NetworManager.

Чтобы убедиться, что изменения вступили в силу, посмотрите содержимое файла resolv.conf:

Содержимое должно быть таким:

Описанные выше операции позволят перенаправлять все dns-запросы на локальную машину.

Добавьте службу dnsmasq в автозапуск и перезайдите в сеанс:

Для того, чтобы сбросить кэш, просто перезапустите службу:

Проверка работоспособности

Проверьте, включена ли служба:

Проверьте порт 53:

Теперь попробуйте с помощью утилиты dig несколько раз обратиться к cайту google.com

Если кэширование dns-запросов работает, то практически во всех следующих запросах выделенная строчка query time будет равна нулю.

В противном случае она будет варьироваться от 0 и выше с каждым новым запросом.

В результате, основной DNS-сервер сети будет испытывать гораздо меньше нагрузки.

Если вы нашли ошибку, выделите текст и нажмите .

Dnsmasq

dnsmasq — это простой DHCP/DNS сервер, который можно использовать в локальной сети до 1000 клиентов. Его основные особенности — простота настройки и небольшой расход системных ресурсов. Он также поддерживает IPv6.

Contents

Установка

USE-флаги

Выберите нужные USE-флаги:

USE flags for net-dns/dnsmasq Small forwarding DNS server

Emerge

Затем установите пакет net-dns/dnsmasq:

Конфигурация

Поведением dnsmasq можно управлять с помощью следующих ресурсов:

  • параметры командной строки, устанавливаемые в файле /etc/conf.d/dnsmasq
  • основной файл конфигурации ( /etc/dnsmasq.conf )

Сервис

OpenRC

Если необходима автоматическая загрузка при старте, добавьте dnsmasq на уровень запуска по умолчанию:

Чтобы запустить сервсис сейчас:

Настройка сервиса

В /etc/conf.d/dnsmasq можно настроить параметры командной строки, подаваемые демону dnsmasq при его запуске.

Основной файл конфигурации

Основная настройка dnsmasq осуществляется с помощью его файла конфигурации /etc/dnsmasq.conf . Этот файл использует синтаксис вида key[=value] . Пример файла конфигурации включен в пакет; он хорошо документирован и его рекомендуется прочитать. В этом файле, либо с помощью параметров командной строки, можно обращаться к дополнительным ресурсам (например, файл DHCP hosts).

Пример файла конфигурации:

После редактирования файла конфигурации нужно перезапустить (restart) сервис — перезагрузка (reload) поддерживается, но для других ресурсов.

Файл hosts

Приложение dnsmasq использует файл /etc/hosts в качестве одного из источников, предоставляющих сервисы DNS, если не указан параметр командной строки -h ( —no-hosts ).

После обновления /etc/hosts dnsmasq должен получить сигнал SIGHUP, чтобы перезагрузить настройки. Это также можно сделать с помощью команды reload из init-скрипта:

Это поведение можно отключить в файле конфигурации с помощью параметра no-hosts .

Дополнительный файл hosts

Существует возможность обращения к (дополнительному) файлу hosts в качестве источника запросов DNS. Для этого нужно добавить параметр командной строки -H /path/to/hostsfile ( —addn-hosts=/path/to/hostsfile ). Также можно указать каталог; в этом случае, все файлы в этом каталоге будут рассматриваться, как дополнительные файлы hosts.

Так же как и со стандартным файлом hosts, сигнал SIGHUP перезагружает файл.

Это поведение также можно установить в файле конфигурации с помощью параметра addn-hosts .

Upstream сервера имен

По умолчанию, dnsmasq использует сервера имен, указанные в /etc/resolv.conf , в качестве upstream серверов имен.

С помощью параметра командной строки -r ( —resolv-file ) можно задать другой файл.

Это поведение также можно установить в файле конфигурации с помощью параметра resolv-file .

Возможности

Dnsmasq поддерживает DNS, TFTP, PXE, router advertisements и сервисы DHCP. Он является гибкой утилитой управления сетью для небольших и средних по размеру сетей.

Сервисы DNS

Для того, чтобы предоставить (только) сервисы DNS, сначала определите upstream nameserver. Если это тот же сервер, который указан в файле /etc/resolv.conf , то не требуется предпринимать никаких дополнительных шагов. В противном случае, укажите dnsmasq нужный файл resolv.conf с помощью параметра командной строки -r ( —resolv-file ). Синтаксис тот же, что и в файле /etc/resolv.conf , однако dnsmasq читает только определения nameserver.

Затем укажите этот файл dnsmasq с помощью файла конфигурации:

Чтобы удостовериться, что сервис работает (после перезапуска, поскольку файл конфигурации был изменен), воспользуйтесь командой dig (она входит в пакет net-dns/bind-tools) для того, чтобы попросить сервер DNS (запущенный на localhost в следующем примере) разрешить локальный или удаленный адрес:

DNSSEC

Dnsmasq может проверять достоверность данных DNSSEC во время передачи данных. Это можно реализовать, добавив следующие строки в файл конфигурации:

Trusted anchor можно найти на сайте iana.org. После этих изменений, если проверка достоверности не удастся, dnsmasq вернет SERVFAIL и не вернет никаких данных DNS. Если проверка достоверности завершается успехом, dnsmasq устанавливает флаг ad. В случае, если домен не поддерживает DNSSEC, dnsmasq ведет себя, как и раньше.

Сервисы DHCP

Для того, чтобы включить сервисы DHCP dnsmasq, используйте параметр настройки dhcp-range .

Например, для того, чтобы включить настройку адреса IPv6 посредством router advertisement (RA) с бесконечной арендой, и настройку адреса IPv4 также с бесконечной арендой:

Существует возможность использования статических определений для известных хостов. Это можно реализовать либо посредством основного файла конфигурации (параметр dhcp-host= ), либо посредством отдельного файла. Если используется отдельный файл, укажите его dnsmasq с помощью параметра командной строки —dhcp-hostsfile . Преимущество последнего варианта в том, что для повторного считывания записей достаточно послать сигнал SIGHUP (или перезагрузить сервис), тогда как при использовании определений в файле конфигурации необходимо полностью перезапустить сервис.

Для получения более подробной информации о синтаксисе параметра dhcp-host , обратитесь к странице руководства или к файлу конфигурации, поскольку синтаксис этого параметра весьма пространен.

Использование

Этот раздел содержит описание различных вариантов использования (обслуживания и практических задач) сервиса dnsmasq.

Сброс аренды

Клиенты, у которых был обновлен сетевой интерфейс, что привело к изменению MAC-адреса, могут не сразу получить нужный IP-адрес. Это происходит оттого, что сервис dnsmasq предоставил этот IP-адрес старому MAC-адресу и ожидает истечения аренды этого адреса, прежде чем присвоить новый.

Сервис dnsmasq хранит свои аренды в файле /var/lib/misc/dnsmasq.leases . Если требуется быстрее удалить аренду, остановите сервис dnsmasq, удалите аренду из файла dnsmasq.leases и снова запустите сервис.

Перезагрузка неосновных настроек конфигурации

В дополнение к файлу dnsmasq.conf , сервис dnsmasq может использовать внешние определения для следующих сервисов:

  • настройки конфигурации хостов DHCP (посредством параметра командной строки —dhcp-hostsfile )
  • параметры DHCP (посредством параметра командной строки —dhcp-optsfile )

После изменения этих файлов сигнал SIGHUP заставит dnsmasq перезагрузить эти настройки.

Источник: softaltair.ru

Добавить комментарий