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останній, але все-таки не пощастило, коли я вмикаю брандмауер, він блокує все, коли я встановлюю за замовчуванням відмову, але коли я встановлюю це, щоб це дозволило, воно працює добре, як ігноруються правила. що може бути причиною цього?

EDIT

Це мій результат, 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. :)
Thomas Ward

Перші дві команди непотрібні. Все, що вам потрібно зробити, це ввімкнути UFW і застосувати заперечення за замовчуванням у дозволі буде застосовано
mchid

Ооо, мчід має рацію, вони за замовчуванням, вони вам не потрібні. Сказавши це, я все ще хочу побачити iptablesдані, якщо за винятком цих перших двох рядків у вас все ще виникає ця проблема.
Thomas Ward

Я додав вихід свого 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

FYI: у випадку, якщо інші мають цю проблему.

У вихідному описі 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і fail2banfu ** редагувала ланцюжок 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, дозволяючи dns тощо.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.