Поскольку OpenDNS теперь требуется, чтобы один был в пакете pro, чтобы включить фильтрацию, при ограниченном бюджете нам нужна бесплатная фильтрация DNS.
После прочтения эта ссылка о том, как заблокировать домены с помощью привязки, Я собрал черные списки SquidGuard и объединил домены в нужных мне категориях в один большой список. Затем я скормил это этот скрипт Python создание файла, содержащего около 2 миллионов зон.
named-checkconf прекрасно разбирает его, но перезагрузка named занимает почти 10 минут, затем он ничего не решает, и сервер замедляется до обхода. Удаление включения приводит к тому, что named снова работает правильно.
Как правильно настроить BIND9 для эффективной работы в качестве брандмауэра DNS? Если можно также заблокировать любой домен, который разрешает определенные IP-адреса, это решит всю проблему.
Я использую bind как неавторизованный, просто кеширующий сервер.
Это устарело для современных технологий. В мире BIND зоны политики ответа (RPZ) сегодня являются синонимами брандмауэров DNS.
Зона RPZ - это обычная зона DNS, но она используется для определения действий политики сервером. «Суффикс» зоны не имеет значения, так как это не настоящий DNS-домен. Это просто файл зоны, содержащий список специально отформатированных инструкций.
options {
...
response-policy { zone "whatever.anytld";} };
};
Левая часть записи определяет правило сопоставления с типом записи, а правая часть определяет действие, которое необходимо предпринять. Обратите внимание отсутствие конечной точки в левой части следующих примеров.
$ORIGIN whatever.anytld.
; destination IP rewrite
baddomain1.example.com A 198.51.100.1
*.baddomain1.example.com A 198.51.100.1
; send them to an existing A record
baddomain2.example.com CNAME mywebserver.example.org.
*.baddoman2.example.com CNAME mywebserver.example.org.
; NXDOMAIN it
baddomain3.example.com CNAME .
*.baddomain3.example.com CNAME .
; reply with NODATA
baddomain4.example.com CNAME *.
*.baddomain4.example.com CNAME *.
И так далее. С этим можно сделать немало, в том числе более жесткие меры, которые могут повлиять на невиновные сайты общего хостинга: блокировка серверов имен по имени, блокировка серверов имен по IP, выполнение действий с IP-адресом возвращаемой записи вместо имени и т. Д.
RPZ может многое сделать, и это не является исчерпывающей документацией. Рекомендуемая литература включает главу 6 BIND ARM (внизу этого ответа) для вашей версии BIND и Глава 9 онлайн-книги Zytrax.
Клифф отмечает из моего личного опыта, чтобы сэкономить ваше время:
IXFR
. включить ixfr-from-differences
на своего хозяина, чтобы облегчить это. Используйте передачу зоны на основе ключей при использовании BIND 9.9 или новее для защиты от попыток DoS на основе NOTIFY.NS
атаки на основе записей, которые стали популярными в 2014 году, так как по умолчанию RPZ предназначен для попыток авторитетного поиска, а не для «выдачи» перехвата ваших записей исходному серверу имен. qname-wait-recurse no
был добавлен в BIND 9.10 и может позволить вам использовать для этой цели RPZ. Я собирался это испытать.qname-wait-recurse no
работает, по-прежнему существует потребность в типе записи, который можно использовать для автономной атаки доменов без дополнительной настройки. Я говорил об этом с Полом Викси, и мы можем увидеть это в будущей версии спецификации формата RPZ.NXDOMAIN
и NODATA
действия будут выдавать название вашей зоны RPZ в AUTHORITY
раздел ответа. Предположим, что люди узнают его название.Ссылки на главу 6 BIND ARM: