Как заблокировать домен с помощью RPZ на сервере Bind DNS на CentOS |

Как заблокировать домен с помощью RPZ на сервере Bind DNS на CentOS

Мануал

Система доменных имен или DNS – это служба, которая разрешает имя узла для конкретного IP-адреса.

Response Policy Zones(DNS RPZ) используются для защиты от вредоносных глобальных идентификаторов, таких как имена хостов, имена доменов, IP-адреса и серверных имен.

Response Policy Zones(DNS RPZ) предотвращают доступ к определенным интернет-доменам и перенаправление на другие места.

Блокирование домена на DNS-сервере – это перенаправление всех запросов для определенного домена на loopback или любой неверный IP-адрес с помощью RPZ.

В этом руководстве описывается процедура настройки блокировки домена с использованием RPZ в DNS-сервере Bind на CentOS.

Процедура настройки

Чтобы продолжить процедуру настройки, установите пакет привязки с помощью команды yum и нажмите y, чтобы продолжить установку.

 # yum install bind* -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
* base: ftp.iitm.ac.in
* extras: mirror.ehost.vn
* updates: ftp.iitm.ac.in
Resolving Dependencies
--> Running transaction check
---> Package bind.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
---> Package bind-chroot.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
---> Package bind-devel.x86_64 32:9.8.2-0.62.rc1.el6_9.4 will be installed
---> Package bind-dyndb-ldap.x86_64 0:2.3-8.el6 will be installed
.
.
.
Installed:
bind.x86_64 32:9.8.2-0.62.rc1.el6_9.4 bind-chroot.x86_64 32:9.8.2-0.62.rc1.el6_9.4 bind-devel.x86_64 32:9.8.2-0.62.rc1.el6_9.4 bind-dyndb-ldap.x86_64 0:2.3-8.el6 bind-sdb.x86_64 32:9.8.2-0.62.rc1.el6_9.4

Dependency Installed:
postgresql-libs.x86_64 0:8.4.20-7.el6
Updated:
bind-libs.x86_64 32:9.8.2-0.62.rc1.el6_9.4 bind-utils.x86_64 32:9.8.2-0.62.rc1.el6_9.4

Complete! 

Отредактируйте файл конфигурации named.conf с помощью редактора vim и введите следующее содержимое в файл. Сохраните и выйдите из файла.

 # vim /etc/named.conf

options {
listen-on port 53 { 127.0.0.1; 192.168.7.222; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { localhost; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};

logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};

include "/etc/named.rfc1912.zones";
include "/etc/named.root.key"; 

Добавьте свой IP-адрес, как показано в приведенной выше конфигурации, и запустите и включите службу named, выполнив следующий набор команд:

 # service named start
Generating /etc/rndc.key: [ OK ]
Starting named: [ OK ]
# chkconfig named on 

Отредактируйте IP-адрес разрешающего DNS-сервера в файле конфигурации сети с помощью редактора vim и внесите следующие изменения. Сохраните и выйдите из файла.

 # vim /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
UUID=36a6e616-74e3-4df5-ad16-ca3b691bc2d8
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
HWADDR=00:0C:29:F2:17:C6
IPADDR=192.168.7.222
PREFIX=24
GATEWAY=192.168.7.1
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
NAME="System eth0" 

Теперь перезапустите network service

 # service network restart Shutting down interface eth0: Device state: 3 (disconnected)

[ OK ]

Shutting down loopback interface:

[ OK ]

Bringing up loopback interface:

[ OK ]

Bringing up interface eth0: Active connection state: activated Active connection path: /org/freedesktop/NetworkManager/ActiveConnection/2

[ OK ] 


Чтобы заблокировать домен с помощью метода DNS RPZ, откройте конфигурацию named.conf и создайте зону, как показано ниже.

 # vim /etc/named.conf
response-policy { zone "ns1.example.com"; };
zone "ns1.example.com" IN {
type master;
file "rpz.db";
}; 

Затем создайте файл зоны forward, как мы упоминали в конфигурации named.conf с именем rpz.db, и введите следующие данные в файл. Сохраните и выйдите из файла.

 # vim /var/named/rpz.db

$TTL 1D
@ IN SOA ns1.example.com. root.example.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
@ IN NS ns1.example.com.
@ IN A 192.168.7.222

youtube.com IN CNAME @
www.youtube.com IN CNAME @

Перезапустите службу named

# service named restart
Stopping named: [ OK ] Starting named: [ OK ]

Проверьте nslookup сайта, который был заблокирован, выполнив следующую команду.

  # nslookup youtube.com
Server: 192.168.7.222
Address: 192.168.7.222#53

Non-authoritative answer:
youtube.com canonical name = ns1.example.com.
Name: ns1.example.com
Address: 192.168.7.222

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

Домен останется заблокированным в соответствии с конфигурацией.

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий

  1. Dima

    Если в файл /var/named/rpz.db дописать строку
    *.proxy.ru A 1.1.1.1
    то она не работает.

    При проверке
    nslookup qw.proxy.ru 127.0.0.1
    bind должен вернуть 1.1.1.1, а он вместо этого лезет в интернет искать реальный ip.

    Следующие строки все работают.
    *.proxy.ry A 1.1.1.1
    *.proxi.ru A 1.1.1.1
    *.proxy.com A 1.1.1.1

    Проверено на разных версиях bind, на разных ОС

    Ответить
    1. cryptoparty автор

      Ого, а подробнее что-нибудь по этому поводу знаете?

      Ответить
    2. sles

      response-policy {
      zone “rpz.zone”;
      } qname-wait-recurse no;

      ключевое- qname-wait-recurse no

      Ответить