UFW blokuje wszystko, nawet gdy ustawię reguły zezwalające

14

Używam serwera Ubuntu, teraz próbuję włączyć zaporę za pomocą następujących poleceń:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Próbowałem też zrobić ufw default deny incomingostatnią, ale nadal nie mam szczęścia, kiedy włączam zaporę, blokuje ona wszystko, gdy ustawię domyślną opcję odmowy, ale kiedy ustawię na zezwalanie, działa dobrze, tak jak reguły są ignorowane. co może być tego przyczyną?

EDYTOWAĆ

To jest mój wynik. iptables -L -v -n Próbowałem również zaproponowanego rozwiązania, ale wciąż nie mam szczęścia, działa dobrze tylko wtedy, gdy go wykonuję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         
engma
źródło
1
Czy zrobiłbyś mi przysługę? Zrób ufw enable, a następnie wklej wynik sudo iptables -L -v -nswojego pytania. Jestem ciekawy, co tak naprawdę bazuje netfilter/ iptablesrobi z regułami ufw. :)
Thomas Ward
Pierwsze dwa polecenia są niepotrzebne. Wszystko, co musisz zrobić, to włączyć UFW i będzie obowiązywać domyślna odmowa zezwolenia na zezwolenie.
mchid
Oooh, mchid ma rację, to są wartości domyślne, nie potrzebujesz ich. Powiedziawszy to, nadal chcę zobaczyć iptablesdane, jeśli z wyłączeniem tych dwóch pierwszych wierszy nadal występuje ten problem.
Thomas Ward
Dodałem wyjście mojego pliku iptables
engma

Odpowiedzi:

13

Otwórz terminal i wpisz następujące polecenia:

Zacznij od wykonania resetu, który usunie wszystkie istniejące reguły:

sudo ufw reset

Kolejny,

sudo ufw app list

Spowoduje to wyświetlenie listy dostępnych profili aplikacji, takich jak OpenSSH i inne. Aby uzyskać informacje o aplikacji, wpisz następujące polecenie, tak jak w tym przykładzie:

sudo ufw app info OpenSSH

Oto wynik:

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

Port:
  22/tcp

Aby zezwolić na dostęp OpenSSH, możesz użyć następującej reguły:

sudo ufw allow 22/tcp

W przeciwieństwie do Debiana, www i https zwykle nie są uwzględniane jako profile aplikacji, jednak wiemy, że działają one na portach 80 i 443, więc użyj następujących poleceń:

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

Jeśli chcesz dodać UDP, po prostu to zrób.

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

Wyłącz i włącz ufw, aby zastosować zmiany:

sudo ufw disable
sudo ufw enable

Aby pokazać swoje zasady:

sudo ufw status

Wreszcie, jednym z mniej przyjaznych aspektów ufw jest sposób, w jaki reguły odmowy zwykle przebijają reguły zezwalające. Na przykład nie można ustawić wszystkiego na odmowę, a następnie ustawić portów na zezwalanie. Wszystkie porty będą nadal blokowane. Zobacz tutaj, aby uzyskać więcej informacji .


Możesz dodać te reguły, aby globalnie blokować wszystkie porty oprócz 22, 53, 80 i 443. Dodałem port 53, aby zezwolić na żądania DNS. Jeśli nie musisz wykonywać zapytań DNS, po prostu odpowiednio zmodyfikuj reguły.

Aby ustawić te reguły blokowania tylko dla połączeń przychodzących, należy użyć sudo ufw deny in 1:22/tcpna przykład. Alternatywnie, wybierz dla wychodzących sudo ufw deny out 1:22/tcpi tak dalej.

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
mchid
źródło
Bardzo dziękuję za odpowiedź, ale chcę zablokować wszystkie porty oprócz tych, czy powinienem używać ufw default block incomingpo ustawieniu tych reguł?
engma
@ Developer106 Nie, po włączeniu ufw blokowanie przychodzących jest już ustawione na wartość domyślną. Możesz to sprawdzić, wykonując następujące polecenie w otwartym terminalu sudo ufw status verbose. Jeśli się nie mylę, jawne ustawienie tej reguły nie zezwoli na dozwolone porty. Jeśli chcesz zablokować wszystkie porty oprócz tych, naprawdę polecam sprawdzenie tego wątku, ponieważ dokładnie tak robią. Jest bardzo dokładny, blokuje wszystkie oprócz tych i będziesz mieć otwarte porty, które chcesz. ubuntuforums.org/showthread.php?t=1893751
mchid
@ Developer106 Dodałem kilka reguł, aby globalnie blokować wszystkie oprócz 22, 53, 80 i 443 i odmawiać lub blokować każdy inny port.
mchid
ok działa to tylko wtedy, gdy określ, aby odmówić, outjeśli powiem denybez mówienia, że ​​jest konkretnie na zewnątrz, nadal nie działa. co może być tego przyczyną?
engma
@ Developer106 co nie działa, nie blokuje lub nie pozwala?
mchid
7

Do Twojej wiadomości: na wypadek, gdyby inni mieli ten problem.

W szczegółowym wyjściu iptables zauważyłem, że w łańcuchach INPUT, OUTPUT i FORWARD brakuje reguł ufw. Mój system skończył się tak, kiedy uruchomiłem iptables -F, aby usunąć moje niestandardowe reguły FW po włączeniu ufw w pewnym momencie. Wygląda na to, że ufw nie dodaje ponownie reguł najwyższego poziomu, jeśli niektóre własne łańcuchy już istnieją w iptables.

Skończyłem odinstalowywanie ufw, restartowanie, uruchomiłem „iptables -F” (aby usunąć poprzednie reguły iptables, które były nadal aktywne), a następnie ponownie instalowałem i konfigurowałem ufw. Reguły ufw najwyższego poziomu powróciły. Odinstalowanie / ponowne zainstalowanie może nie być konieczne. Usunięcie wszystkich reguł ufw z iptables poprzez wyłączenie ufw i ponowne uruchomienie mogło załatwić sprawę.

Oto jak powinny wyglądać łańcuchy najwyższego poziomu (w Debianie 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           
FixItDad
źródło
1
To również rozwiązało problem.
Technophobe01
1
Uruchomienie iptables -Xw celu usunięcia wszystkich niewbudowanych łańcuchów, a następnie ponowne uruchomienie ufwrównież działało dla mnie.
Tblue
0

Mam ten sam problem, coś w rodzaju przykręconej konfiguracji z ufwi fail2ban** na początku łańcucha iptables. Wszystko zostało zablokowane, gdy tylko zacząłem ufw - nawet bez reguł w samym ufwłańcuchu. ufwreset nie pomógł. Całkowicie ponownie go zainstalowałem, to zadziałało.

sudo apt-get purge ufw
sudo apt-get install ufw
Maso Mato
źródło
Cześć Maso. Czy po ponownej instalacji musiałeś wykonać dodatkową konfigurację?
Hee Jin,
0

Dla mnie ten problem został rozwiązany przez ustawienie reguły od

sudo ufw default deny outgoing
sudo ufw default allow outgoing

To jedyna rzecz, która działała, nie zezwalając na port 53, zezwalając na dns itp.

jamescampbell
źródło