UFW блокирует все, даже когда я устанавливаю правила, чтобы


14

Я использую сервер Ubuntu, теперь я пытаюсь включить брандмауэр с помощью этих команд:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Я также попытался сделать ufw default deny incomingпоследний, но все же не повезло, когда я включаю брандмауэр, он блокирует все, когда я устанавливаю значение по умолчанию для запрета, но когда я устанавливаю его для разрешения, он работает хорошо, как правила игнорируются. Что может быть причиной этого ?

РЕДАКТИРОВАТЬ

Это мой вывод, iptables -L -v -n я также попробовал предлагаемое решение, но все же не повезло, оно работает нормально только тогда, когда я его делаюdefault allow incoming

Chain INPUT (policy DROP 30 packets, 1764 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 2 packets, 104 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:137
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:138
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:139
    0     0 ufw-skip-to-policy-input  tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:445
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:67
    0     0 ufw-skip-to-policy-input  udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:68
    0     0 ufw-skip-to-policy-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST

Chain ufw-after-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-after-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-after-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ufw-user-forward  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  lo     *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 3
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 4
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 11
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 12
    0     0 ACCEPT     icmp --  *      *       0.0.0.0/0            0.0.0.0/0            icmptype 8
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp spt:67 dpt:68
    0     0 ufw-not-local  all  --  *      *       0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251          udp dpt:5353
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            239.255.255.250      udp dpt:1900
    0     0 ufw-user-input  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-before-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-before-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      lo      0.0.0.0/0            0.0.0.0/0           
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate RELATED,ESTABLISHED
    0     0 ufw-user-output  all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-logging-allow (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW ALLOW] "

Chain ufw-logging-deny (2 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate INVALID limit: avg 3/min burst 10
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10 LOG flags 0 level 4 prefix "[UFW BLOCK] "

Chain ufw-not-local (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type LOCAL
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type MULTICAST
    0     0 RETURN     all  --  *      *       0.0.0.0/0            0.0.0.0/0            ADDRTYPE match dst-type BROADCAST
    0     0 ufw-logging-deny  all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 10
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-reject-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-reject-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-skip-to-policy-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-input (7 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-skip-to-policy-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-track-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-track-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            ctstate NEW

Chain ufw-user-forward (1 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-input (1 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:22
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:22
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:80
    0     0 ACCEPT     tcp  --  *      *       0.0.0.0/0            0.0.0.0/0            tcp dpt:443
    0     0 ACCEPT     udp  --  *      *       0.0.0.0/0            0.0.0.0/0            udp dpt:443

Chain ufw-user-limit (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 LOG        all  --  *      *       0.0.0.0/0            0.0.0.0/0            limit: avg 3/min burst 5 LOG flags 0 level 4 prefix "[UFW LIMIT BLOCK] "
    0     0 REJECT     all  --  *      *       0.0.0.0/0            0.0.0.0/0            reject-with icmp-port-unreachable

Chain ufw-user-limit-accept (0 references)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  *      *       0.0.0.0/0            0.0.0.0/0           

Chain ufw-user-logging-forward (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-input (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-logging-output (0 references)
 pkts bytes target     prot opt in     out     source               destination         

Chain ufw-user-output (1 references)
 pkts bytes target     prot opt in     out     source               destination         

1
Вы можете сделать мне одолжение? Сделайте ufw enable, затем вставьте вывод sudo iptables -L -v -nв ваш вопрос. Мне любопытно, что на самом деле netfilter/ iptablesматериал делает с правилами UFW. :)
Томас Уорд

Первые две команды не нужны. Все, что вам нужно сделать, это включить UFW и применить запрет по умолчанию для разрешения.
mchid

Ооо, МЧИД прав, это настройки по умолчанию, они вам не нужны. Сказав это, я все еще хочу увидеть iptablesданные, если, за исключением тех первых двух строк, у вас все еще есть эта проблема.
Томас Уорд

Я добавил вывод моего файла iptables
engma

Ответы:


13

Откройте терминал и введите следующие команды:

Начните с выполнения сброса, который удалит все существующие правила:

sudo ufw reset

Следующий,

sudo ufw app list

В этом списке будут перечислены доступные профили приложений, такие как OpenSSH и другие. Чтобы получить информацию о приложении, введите следующую команду, как в этом примере:

sudo ufw app info OpenSSH

Вот вывод:

Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.

Port:
  22/tcp

Чтобы разрешить доступ OpenSSH, вы можете использовать следующее правило:

sudo ufw allow 22/tcp

В отличие от Debian, www и https обычно не включаются в профили приложений, однако мы знаем, что они работают на портах 80 и 443, поэтому используйте следующие команды:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Если вы хотите добавить UDP, просто сделайте это.

sudo ufw allow 80/udp
sudo ufw allow 443/udp

Отключите и включите UFW, чтобы применить изменения:

sudo ufw disable
sudo ufw enable

Чтобы показать свои правила:

sudo ufw status

Наконец, один из менее дружественных аспектов UFW - это то, как запрещающие правила обычно превосходят разрешающие правила. Например, вы не можете запретить все, а затем разрешить порты. Все порты по-прежнему будут заблокированы. Смотрите здесь для получения дополнительной информации .


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

Чтобы установить эти правила блокировки только для входящих, вы должны использовать, sudo ufw deny in 1:22/tcpнапример. В качестве альтернативы установить для исходящих sudo ufw deny out 1:22/tcpи так далее.

sudo ufw deny 1:21/tcp
sudo ufw deny 1:21/udp
sudo ufw deny 23:52/tcp
sudo ufw deny 23:52/udp
sudo ufw deny 54:79/tcp
sudo ufw deny 54:79/udp
sudo ufw deny 81:442/tcp
sudo ufw deny 81:442/udp
sudo ufw deny 444:65535/tcp
sudo ufw deny 444:65535/udp

Большое спасибо за ваш ответ, но я хочу заблокировать все порты, кроме тех, я должен использовать ufw default block incomingпосле установки этих правил?
Engma

@ Developer106 Нет, когда вы включаете ufw, блокировка входящих уже установлена ​​по умолчанию. Вы можете убедиться в этом, выполнив следующую команду в открытом терминале sudo ufw status verbose. Если я не ошибаюсь, явное задание этого правила не разрешит ваши разрешенные порты. Если вы хотите заблокировать все порты, кроме этих, я действительно рекомендую вам проверить эту ветку, поскольку именно это они и делают. Это очень тщательно, блокируя все, кроме тех, и у вас будут открытые порты, которые вы хотите. ubuntuforums.org/showthread.php?t=1893751
mchid

@ Developer106 Я добавил некоторые правила, чтобы глобально блокировать все, кроме 22, 53, 80 и 443, и запрещать или блокировать любой другой порт.
mchid

Хорошо, это работает, только если указать, чтобы отрицать, outесли я говорю, denyне говоря, что это специально, это все еще не работает. что может быть причиной этого?
engma

@ Developer106 что не работает, не блокирует или не разрешает?
mchid

7

К вашему сведению: в случае, если другие имеют эту проблему.

В подробном выводе iptables я заметил, что правила ufw отсутствуют в цепочках INPUT, OUTPUT и FORWARD. Моя система работала так, когда я запускал iptables -F, чтобы удалить мои пользовательские правила FW после включения ufw в какой-то момент. Похоже, что ufw не добавляет обратно правила верхнего уровня, если некоторые из его собственных цепочек уже существуют в iptables.

В итоге я удалил ufw, перезагрузился, запустил «iptables -F» (чтобы удалить прежние правила iptables, которые все еще были активны), затем переустановил и настроил ufw. Правила UFW верхнего уровня теперь вернулись. Удаление / переустановка, возможно, не были необходимы. Простое удаление всех правил ufw из iptables путем отключения ufw и перезагрузки могло бы помочь.

Вот как должны выглядеть цепочки верхнего уровня (в Debian 9.4).

Chain INPUT (policy DROP)
target     prot opt source               destination         
ufw-before-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-input  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-input  all  --  0.0.0.0/0            0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         
ufw-before-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-forward  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-forward  all  --  0.0.0.0/0            0.0.0.0/0           

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ufw-before-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-before-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-after-logging-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-reject-output  all  --  0.0.0.0/0            0.0.0.0/0           
ufw-track-output  all  --  0.0.0.0/0            0.0.0.0/0           

1
Это решило проблему и для меня.
Technophobe01

1
Запуск iptables -Xдля того, чтобы удалить все не встроенные цепочки и затем перезапуск, ufwтакже работал для меня.
Tblue

0

У меня такая же проблема, какой - то ввинчивается конфигурации с ufwи fail2banфу ** Ed вверх по цепочке Iptables. Все было заблокировано, как только я запустил UFW - даже без правил в самой ufwцепочке. ufwсброс не помог. Я полностью переустановил его, это сработало.

sudo apt-get purge ufw
sudo apt-get install ufw

Привет Мазо. Приходилось ли вам делать какие-либо дополнительные настройки после переустановки?
Хи Джин

0

Для меня эта проблема была решена путем установки правила из

sudo ufw default deny outgoing
sudo ufw default allow outgoing

Это единственное что сработало, не позволяя порт 53, позволяя днс и тд

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.