Возможно ли настроить BIND в качестве DNS-сервера в моей локальной сети и выполнить сценарии выполнения, когда он получит поиск?
Я хотел бы выполнить сценарий Python или Bash на основе входящего поиска DNS, как я могу решить это?
Если возможно в Bind, скажите мне, как, а если нет, скажите, возможно ли это в других реализациях DNS-серверов, которые работают в Ubuntu.
Большое спасибо.
Ответы:
Я могу подумать о двух дополнительных опциях, которые не требуют синтаксического анализа журналов BIND или вообще никакого вмешательства в BIND.
1) Зеркалирование портов - дублируйте пакеты и отправляйте их на отдельный порт, где приложение прослушивает, анализирует запросы DNS и предпринимает действия.
dpkt
илиscapy
аналогичные библиотеки создания пакетов помогут вам разобрать необработанные запросы.2) Используйте некоторый тип библиотеки для отслеживания пакетов для пассивного мониторинга запросов. Вот пример использования
scapy
:Очевидно, это всего лишь примитивный пример. Он печатает только имя домена, который был запрошен, но вы, конечно, можете добавить много логики. Если вы обратитесь к документации scapy, то обнаружите, что все поля из DNS-запроса легко доступны.
источник
Вы можете сделать это, наблюдая за журналом bind-сервера (регистрация запросов должна быть включена). Удачи...
источник
/dev/shm
, тоже.swatch
или OSSEC в журналах, чтобы вызвать ваш скрипт. не очень хорошая идея в долгосрочной перспективе, в любом случае.Нет таких вещей, как события, реализованные в связке, это не нужно.
Вы можете осмотреть аппликативные брандмауэры, которые используются в некоторых организациях для ограничения доступа для некоторых пользователей. Там у вас будет больше шансов достичь того, чего вы хотите.
Настройка маршрутов также кажется хорошей идеей, в конце концов то, что вы хотите достичь с помощью bind и запуска триггера, также будет неэффективным: вам необходимо:
Настройка загрузки маршрутов не является проблемой и не окажет заметного влияния на производительность. Как вы думаете, сколько маршрутов есть у корпоративных маршрутизаторов? сотни? не совсем ... И они не обязательно имеют причудливую аппаратную конфигурацию. Серьезно, у вас все хорошо, серьезные операционные системы специально разработаны для обработки множества маршрутов и оптимизации поиска.
Помимо того, что вы хотели сделать в первую очередь, это использовать базу данных поверх таблицы маршрутизации, которая была бы другим типом базы данных. Будь проще. На серверах BGP многие маршруты фактически выбираются / предпочитаются по политическим / финансовым причинам, каждый провайдер / организация может сделать это, и все они добавляют специальные маршруты для этой цели. Стоимость транзита или судебного решения часто является причиной таких мер.
источник