Назад | Перейти на главную страницу

Как настроить UFW для разрешения частных DNS-запросов, но блокирования DNS-запросов из Интернета

У меня Ubuntu Server 12.04 с двумя сетевыми картами:

Сервер настроен как шлюз и размещает DNS и DHCP для частной сети. Компьютеры в частной сети (например, с IP-адресом 192.168.10.50) могут успешно подключаться к Интернету.

Правила UFW выглядят следующим образом:

Status: active

To                         Action      From
--                         ------      ----
22                         ALLOW       Anywhere
80                         ALLOW       Anywhere
443                        ALLOW       Anywhere
67/udp on eth1             ALLOW       68/udp
53                         ALLOW       Anywhere
22                         ALLOW       Anywhere (v6)
80                         ALLOW       Anywhere (v6)
443                        ALLOW       Anywhere (v6)
67/udp on eth1             ALLOW       68/udp
53                         ALLOW       Anywhere (v6)

Любой пользователь Интернета может запросить мой DNS-сервер. Я бы хотел заблокировать такие запросы, поскольку они представляют угрозу безопасности. Я сбросил брандмауэр, разрешил доступ к портам 80, 443, 22 и ввел следующее, чтобы разрешить только устройствам в частной сети делать запросы DNS.

sudo ufw allow in on eth1 to 192.168.10.1 port 53

Когда введите следующее на компьютере с Windows (с IP-адресом 192.168.10.50) в частной сети:

nslookup google.com. 192.168.10.1

Я получаю ответ, который выглядит следующим образом:

DNS request timed out.
    timeout was 2 seconds.
Server: Unknown
Address: 192.168.10.1

Когда я сбрасываю брандмауэр и разрешаю доступ к порту 53 из любого места, все снова работает.

sudo ufw allow 53

Как настроить UFW на 192.168.10.1 на

Помимо блокировки трафика в UFW, я бы также ограничил соединения на вашем DNS-сервере. Предполагая, что вы используете BIND, что-то похожее на это:

acl internal {
  192.168.10.0/24;
  # Add other internal networks here
};
options {
  listen-on { 192.168.10.1; };
  allow-query { internal; };
};

Для правила ufw на основе интерфейса следующее будет блокировать доступ к порту 53 (при условии, что ваш сервер dns / bind настроен на порт 53) с любого интерфейса, который это не eth1:

sudo ufw allow all in on eth1 to any port 53 proto tcp
sudo ufw deny to any port 53 

Для настройки привязки для пересылки DNS-запросов вы можете использовать эту директиву в вашем файле named.conf после всех ваших зон с внутренней обработкой:

zone "." {
    type forward;
    forwarders {
        8.8.8.8;
    };
}

Попробуй это

sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto tcp
sudo ufw allow from 192.168.10.0/24 to 192.168.10.1 port 53 proto udp

Это позволит трафик TCP и UDP DNS (порт 53) из вашей локальной частной сети (что, как я полагаю, 192.168.10.0/24, или другими словами, 192.168.10.1-255) и больше нигде.

Наконец, убедитесь, что ваш статус UFW (запустите sudo ufw status) имеет следующие строки:

To                         Action      From
--                         ------      ----
192.168.10.1 53/tcp        ALLOW       192.168.10.0/24
192.168.10.1 53/udp        ALLOW       192.168.10.0/24