UFW (firewall) ) не блокирует UDP сразу

У меня есть АТС (телефонная система под названием Astersik ), которая работает с udp и tcp. Иногда я получаю недействительный запрос с некоторых IP-адресов, которые хочу заблокировать. Я не могу заблокировать эти запросы, пока не перезагрузу компьютер. Я думаю, причина в том, что UFW не блокирует установленные соединения .

Предположим, я получаю злонамеренный запрос с IP-адреса 1.2.3.4 . Затем мне нужно заблокировать этот запрос, выполнив команду:

sudo ufw insert 1 deny from 1.2.3.4 to any

Мне нужна вставка 1 , чтобы правило выполнялось раньше других.

В любом случае, хотя я выполняю эту команду, я все равно вижу, что мой компьютер отвечает на 1.2.3.4 . Проблема в том, что соединение уже установлено, поэтому ufw не будет отбрасывать эти пакеты, пока эти соединения не будут закрыты.

Я нашел временное решение:

1) Я открываю nano / etc / ufw / раньше. rules

2) Прокомментируйте строки:

enter image description here

(На картинке строки не комментируются. Но прокомментируйте все, что находится внутри красного кружка)

3) Перезапустите брандмауэр ufw disable затем ufw enable

Если я прокомментирую эти строки, мой брандмауэр будет работать так, как я хочу. Он сразу же заблокирует соединения!

Проблема в том, что комментирование этих строк приводит к тому, что мой DNS перестает работать Другими словами, теперь, когда я выполняю ping google.com , я вижу неизвестный хост гугл. com

Почему DNS перестает работать, когда я комментирую эти строки? Короче говоря, мне нужно, чтобы при выполнении sudo ufw insert 1 deny из 1.2.3.4 на любой я больше не получал запросов с этого IP !. Я не могу позволить себе перезагружать компьютер каждый раз, когда хочу заблокировать IP-адрес.

1
задан 14 March 2017 в 00:09
2 ответа

Тоно,

ufw - это передняя часть для iptables. По сути, вы спрашиваете, почему DNS не работает, когда вы перестаете принимать связанные, установленные соединения. conntrack отслеживает ваши соединения. Если трафик соответствует записи в conntrack, то он устанавливается. Если созданное соединение создает новое соединение, то оно является Связанным. Если трафик новый и не является Установленным или Связанным, значит он Новый.

Если соединение уже установлено, необходимо вставить инструкцию drop в начало цепочки. Отредактируйте /etc/ufw/before.rules, чтобы у вас был раздел блоков перед правилами, которые вы прокомментировали. Добавьте туда запись -A ufw-before-input -s 1.2.3.4 -j DROP. Затем используйте sudo ufw reload.

Если у вас все еще есть проблемы с этим, подумайте об использовании iptables вместо ufw, т.к. ufw является передней частью iptables и не включает в себя все его выделения.

https://www.cyberciti.biz/faq/how-to-block-an-ip-address-with-ufw-on-ubuntu-linux-server/

https://help.ubuntu.com/community/UFW

https://askubuntu. com/questions/602176/configure-ufw-to-low-only-established-and-related-conectionss-on-ipv4

enter link description here

3
ответ дан 3 December 2019 в 17:03

UDP - протокол без прописки, но ядро Linux все еще отслеживает IP и номера портов для него в течение 30 секунд, чтобы определить установившийся и связанный с ним трафик. (30 секунд или значение в /proc/sys/net/netfilter/nf_conntrack_udp_timeout) - Ссылка по ошибке сервера: Iptables: "-p udp --state ESTABLISHED"

DNS работает по UDP, поэтому если вы отправили DNS-запрос и прокомментировали правило, разрешающее соответствующий возвратный трафик, вы не получите никакого ответа -> сломанный DNS.

Так как UDP 'state' отслеживается в течение 30 секунд, ваша попытка вставить новое правило блокировки в верхней части INPUT не имеет никакого эффекта. "ufw-before-input" происходит первым и разрешает ESTABLISHED трафик, прежде чем ваше правило INPUT увидит его и DROP.

Чтобы исправить это, вам нужно:

  • Использовать что-то вроде 'conntrack', чтобы удалить отслеживаемую UDP запись для хоста, который вы хотите заблокировать, затем добавить правило блокировки к брандмауэру. Не будет никакого установленного или связанного соединения, поэтому блок должен вступить в силу немедленно. Например, Удалить определенные записи conntrack?

  • Переделайте правила брандмауэра так, чтобы вы делали правило ESTABLISHED, RELATED в правилах INPUT после DROP-ов, вместо того, чтобы делать это сначала.

Я не могу позволить себе перезагружать компьютер каждый раз, когда я хочу заблокировать ip-адрес

Но вы можете позволить себе фильтровать 4 миллиарда IP-адресов по одному, блокируя их вручную? Это не кажется разумным. Используйте IPS устройство, используйте fail2ban.

2
ответ дан 3 December 2019 в 17:03

Теги

Похожие вопросы