
Ich habe ein merkwürdiges OpenVPN/UFW-Problem unter Ubuntu 20.04.
Ich habe eine Regel festgelegt, die ausgehenden Datenverkehr über tun0 zulässt: ufw insert 1 allow out on tun0 from any to any
. Die UFW-Standardeinstellungen sind auf Verweigern eingestellt, sowohl ein- als auch ausgehender Datenverkehr: ufw default deny outgoing
& ufw default deny incoming
.
Ich kann den Datenverkehr nur über tun0 leiten, wenn UFW ausgeführt wird, und ich jedes Mal, wenn ich eine Verbindung zum VPN herstellen möchte, den folgenden seltsamen Tanz durchführe:
ufw disable
(Deaktivieren Sie UFW wie erwartet, um VPN die Verbindung zum Server zu ermöglichen)- Mit VPN verbinden (Verbindung erfolgreich hergestellt)
ufw enable
(UFW wieder aktivieren) -Bisher wie erwartet – jetzt würde ich erwarten, dass der Datenverkehr problemlos über tun0 gesendet wird … aber nein. Ich muss jetzt Folgendes tun …- Fügen Sie eine Regel hinzu, um alle ausgehenden Verbindungen über jede Schnittstelle zuzulassen:
ufw insert 1 allow out from any to any
- Stellen Sie überall eine Verbindung her, z . B.
ping 1.1.1.1
.Dies ist der entscheidende Schritt, ohne den nachfolgende Verbindungen über tun0 fehlschlagen. - Lösche die Regel Igerade hinzugefügtdas alle ausgehenden Verbindungen über jede Schnittstelle zulässt (da dies offensichtlich nicht das ist, was wir wollen – die Absicht besteht darin, die Verbindungen gemäß der bestehenden Regel auf tun0 zu beschränken):
ufw delete 1
Jetzt kann ich wie erwartet Verbindungen über den VPN-Tunnel herstellen. Ohne die Schritte 4 und 5 werden jedoch alle Verbindungen von UFW blockiert. Ich kann keine Verbindung über tun0 herstellen, obwohl es einen expliziten UFW-Regelsatz gibt, der dies zulässt.
Hier ist meine UFW-Benutzer.rules-Datei (ich habe auch eine SSH-Regel):
*filter
:ufw-user-input - [0:0]
:ufw-user-output - [0:0]
:ufw-user-forward - [0:0]
:ufw-before-logging-input - [0:0]
:ufw-before-logging-output - [0:0]
:ufw-before-logging-forward - [0:0]
:ufw-user-logging-input - [0:0]
:ufw-user-logging-output - [0:0]
:ufw-user-logging-forward - [0:0]
:ufw-after-logging-input - [0:0]
:ufw-after-logging-output - [0:0]
:ufw-after-logging-forward - [0:0]
:ufw-logging-deny - [0:0]
:ufw-logging-allow - [0:0]
:ufw-user-limit - [0:0]
:ufw-user-limit-accept - [0:0]
### RULES ###
### tuple ### allow any 22 0.0.0.0/0 any 192.168.0.0/16 in
-A ufw-user-input -p tcp --dport 22 -s 192.168.0.0/16 -j ACCEPT
-A ufw-user-input -p udp --dport 22 -s 192.168.0.0/16 -j ACCEPT
### tuple ### allow any any 0.0.0.0/0 any 0.0.0.0/0 out_tun0
-A ufw-user-output -o tun0 -j ACCEPT
### tuple ### deny any any 0.0.0.0/0 any 0.0.0.0/0 out
-A ufw-user-output -j DROP
### tuple ### deny any any 0.0.0.0/0 any 0.0.0.0/0 in
-A ufw-user-input -j DROP
### END RULES ###
### LOGGING ###
-A ufw-after-logging-input -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-output -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-after-logging-forward -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-I ufw-logging-deny -m conntrack --ctstate INVALID -j RETURN -m limit --limit 3/min --limit-burst 10
-A ufw-logging-deny -j LOG --log-prefix "[UFW BLOCK] " -m limit --limit 3/min --limit-burst 10
-A ufw-logging-allow -j LOG --log-prefix "[UFW ALLOW] " -m limit --limit 3/min --limit-burst 10
### END LOGGING ###
### RATE LIMITING ###
-A ufw-user-limit -m limit --limit 3/minute -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw-user-limit -j REJECT
-A ufw-user-limit-accept -j ACCEPT
### END RATE LIMITING ###
COMMIT
Irgendwelche Ideen, warum dieses bizarre Verhalten auftritt?