UFW blockiert alle, auch wenn ich zulässige Regeln festgelegt habe

14

Ich verwende einen Ubuntu-Server. Jetzt versuche ich, die Firewall mit den folgenden Befehlen zu aktivieren:

ufw default deny incoming
ufw default allow outgoing

ufw allow ssh
ufw allow www
ufw allow https

ufw enable

Ich habe auch versucht, die ufw default deny incomingletzte zu machen, aber immer noch kein Glück, wenn ich die Firewall aktiviere, blockiert sie alles, wenn ich die Standardeinstellung auf Verweigern setze, aber wenn ich sie auf Zulassen setze, funktioniert es gut, da die Regeln ignoriert werden. Was könnte das verursachen?

BEARBEITEN

Dies ist meine Ausgabe von iptables -L -v -n Ich habe auch versucht, die vorgeschlagene Lösung, aber immer noch kein Glück, es funktioniert nur gut, wenn ich es machedefault 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
quelle
1
Kannst du mir einen Gefallen tun? Fügen Sie ufw enabledann die Ausgabe von sudo iptables -L -v -nin Ihre Frage ein. Ich bin neugierig, was die zugrunde liegenden netfilter/ iptablesSachen tatsächlich mit den UFW-Regeln machen. :)
Thomas Ward
Die ersten beiden Befehle sind nicht erforderlich. Alles, was Sie tun müssen, ist, UFW zu aktivieren, und es gilt die Standardeinstellung "Zulassen verweigern".
Mittwoch,
Oooh, mchid hat recht, das sind die Standardeinstellungen, die brauchst du nicht. Abgesehen davon möchte ich immer noch die iptablesDaten sehen, wenn Sie mit Ausnahme der ersten beiden Zeilen immer noch dieses Problem haben.
Thomas Ward
Ich habe die Ausgabe meiner iptables-Datei hinzugefügt
engma

Antworten:

12

Öffnen Sie ein Terminal und geben Sie die folgenden Befehle ein:

Beginnen Sie mit einem Reset, bei dem alle vorhandenen Regeln entfernt werden:

sudo ufw reset

Nächster,

sudo ufw app list

Daraufhin werden die verfügbaren Anwendungsprofile wie OpenSSH und andere aufgelistet. Geben Sie den folgenden Befehl wie in diesem Beispiel ein, um Informationen zu einer App abzurufen:

sudo ufw app info OpenSSH

Hier ist die Ausgabe:

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

Port:
  22/tcp

Um den OpenSSH-Zugriff zuzulassen, können Sie die folgende Regel verwenden:

sudo ufw allow 22/tcp

Im Gegensatz zu Debian sind www und https normalerweise nicht als App-Profile enthalten. Wir wissen jedoch, dass diese auf den Ports 80 und 443 ausgeführt werden. Verwenden Sie daher die folgenden Befehle:

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

Wenn Sie UDP hinzufügen möchten, tun Sie dies ebenfalls.

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

Deaktivieren und aktivieren Sie ufw, um die Änderungen anzuwenden:

sudo ufw disable
sudo ufw enable

So zeigen Sie Ihre Regeln:

sudo ufw status

Schließlich ist einer der weniger freundlichen Aspekte von ufw, wie die Ablehnungsregeln normalerweise Regeln zulassen. Beispielsweise können Sie nicht festlegen, dass alle Ports verweigert und anschließend zugelassen werden. Alle Ports werden weiterhin gesperrt. Weitere Informationen finden Sie hier .


Sie können diese Regeln hinzufügen, um alle Ports außer 22, 53, 80 und 443 global zu blockieren. Ich habe Port 53 hinzugefügt, um DNS-Anforderungen zuzulassen. Wenn Sie keine DNS-Abfragen durchführen müssen, ändern Sie einfach die Regeln entsprechend.

Um diese Sperrregeln nur für eingehende Nachrichten festzulegen, verwenden Sie sudo ufw deny in 1:22/tcpbeispielsweise. Alternativ können Sie für ausgehend sudo ufw deny out 1:22/tcpusw. festlegen .

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
quelle
Vielen Dank für Ihre Antwort, aber ich möchte alle Ports außer diesen blockieren. Soll ich sie verwenden, ufw default block incomingnachdem ich diese Regeln festgelegt habe?
Engma
@ Developer106 Nein, wenn du ufw aktivierst, ist der Blockiereingang bereits auf Standard gesetzt. Sie können dies überprüfen, indem Sie den folgenden Befehl in einem offenen Terminal ausführen sudo ufw status verbose. Wenn ich mich nicht irre, werden Ihre zulässigen Ports nicht zugelassen, wenn Sie diese Regel explizit festlegen. Wenn Sie alle Ports außer diesen blockieren möchten, empfehle ich Ihnen wirklich, diesen Thread zu überprüfen, da dies genau das ist, was sie tun. Es ist sehr gründlich, blockiert alle außer diesen und Sie haben die offenen Ports, die Sie wollen. ubuntuforums.org/showthread.php?t=1893751
mchid
@ Developer106 Ich habe einige Regeln hinzugefügt, um alle außer 22, 53, 80 und 443 global zu blockieren und jeden anderen Port zu verweigern oder zu blockieren.
Mittwoch,
ok, es funktioniert nur, wenn angegeben, um zu verweigern, outwenn ich sage, denyohne zu sagen, dass es für aus ist, funktioniert es immer noch nicht. was könnte die ursache dafür sein?
Engma
@ Developer106 was geht nicht, blockiert es nicht oder lässt es nicht zu?
30.
7

Zu Ihrer Information: Falls andere dieses Problem haben.

In der detaillierten Ausgabe von iptables habe ich festgestellt, dass die ufw-Regeln in den Ketten INPUT, OUTPUT und FORWARD fehlen. Mein System endete so, als ich iptables -F ausführte, um meine benutzerdefinierten FW-Regeln zu entfernen, nachdem ich ufw irgendwann aktiviert hatte. Es scheint, dass ufw die Regeln der obersten Ebene nicht wieder hinzufügt, wenn einige seiner eigenen Ketten bereits in iptables vorhanden sind.

Am Ende habe ich ufw deinstalliert, neu gestartet, 'iptables -F' ausgeführt (um frühere iptables-Regeln zu entfernen, die noch aktiv waren) und dann ufw neu installiert und konfiguriert. Die ufw-Regeln der obersten Ebene sind jetzt zurück. Die Deinstallation / Neuinstallation war möglicherweise nicht erforderlich. Das Entfernen aller ufw-Regeln von iptables durch Deaktivieren von ufw und Neustarten hat möglicherweise den Trick getan.

So sollten die Ketten der obersten Ebene aussehen (unter 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           
FixItDad
quelle
1
Dies hat das Problem auch für mich behoben.
Technophobe01
1
Laufen iptables -X, um alle nicht eingebauten Ketten zu löschen und dann neu zu starten, hat ufwauch bei mir funktioniert.
Tblue
0

Ich habe das gleiche Problem, eine Art geschraubt Config mit ufwund fail2banfu ** die iptables Kette ed up. Alles wurde blockiert, sobald ich anfing - auch ohne Regeln in der ufwKette. ufwZurücksetzen hat nicht geholfen. Ich habe es komplett neu installiert, das hat geklappt.

sudo apt-get purge ufw
sudo apt-get install ufw
Maso Mato
quelle
Hallo Maso. Mussten Sie nach der Neuinstallation zusätzliche Einstellungen vornehmen?
Hee Jin
0

Für mich wurde dieses Problem durch Setzen der Regel von gelöst

sudo ufw default deny outgoing
sudo ufw default allow outgoing

Das ist das einzige, was funktioniert hat, Port 53 nicht erlaubt, DNS erlaubt, etc.

Jamescampbell
quelle