
Ich versuche, einen OpenVPN-Server auf einem VPS mit Fedora Server 35 einzurichten. Das VPN ist eingerichtet und funktioniert, aber ich habe Probleme mit der Einrichtung der Firewall.
Dies ist meine erste Erfahrung mit der Verwaltung einer Firewall und ich bin auch kein Linux-Muttersprachler, aber ich versuche, es zu lernen. Ich habe eine Anleitung für eine CentOS-Instanz befolgt, aber da CentOS nicht mehr verfügbar ist, habe ich mich für ein Fedora-Image in Contabo entschieden.
Die Anleitung stützte sich auf firewalld
, und da es bereits auf meinem VPS installiert und teilweise eingerichtet war, habe ich dasselbe getan. Ich weiß, dass das firewalld
das Problem ist, denn wenn ich es ausschalte, stellt der VPN-Client problemlos eine Verbindung her.
Es sind 2 aktive Zonen konfiguriert FedoraServer
und trusted
. Die FedoraServer
Zone war mit dem VPS-Image vorkonfiguriert und wurde als Standardzone eingerichtet. Ich habe die folgenden Befehle verwendet, um die Konfiguration gemäß der Anleitung zu ändern:
firewall-cmd --zone=trusted --add-service openvpn
firewall-cmd --zone=trusted --add-service openvpn --permanent
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent
VAR=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
firewall-cmd --reload
Die aktuellen Zoneninformationen lauten wie folgt:
[~]# firewall-cmd --info-zone=FedoraServer
FedoraServer (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[~]# firewall-cmd --info-zone=trusted
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: tun0
sources:
services: openvpn
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
Der interessante Vorbehalt besteht darin, dass trusted
ich, wenn ich es als Standardzone festlege, eine Verbindung zu einem firewalld
laufenden VPN herstellen kann, NAT funktioniert und ich auf das Internet zugreifen kann.
Nun könnte man sagen, das Problem ist gelöst. Aber aufgrund meines mangelnden Wissens befürchte ich, dass ich möglicherweise eine Sicherheitslücke hinterlasse, da die trusted
Zone verwendet target: ACCEPT
.
Ich habe zahllose Threads auf StackExchange, in Fedora- und OpenVPN-Foren sowie in firewalld
Dokumentationen gelesen, aber ohne Erfolg. Ich habe das Gefühl, dass mir grundlegende Netzwerkkenntnisse fehlen, um das herauszufinden, und ich weiß nicht mehr, wonach ich suchen soll.
Ich bin für jede Hilfe, jeden Tipp und jede Anleitung dankbar!
Antwort1
Sie können Dienste zur vertrauenswürdigen Zone hinzufügen und dann die Akzeptanz auf „Ablehnen“ ändern. Um beispielsweise nur OpenVPN und SSH zuzulassen, können Sie dies wie folgt tun
sudo firewall-cmd --zone=trusted --add-service={ssh,openvpn}
sudo firewall-cmd --zone=trusted --set-target=DROP
sudo firewall-cmd --reload
Antwort2
Sie scheinen auf dem richtigen Weg zu sein und haben bei der Konfiguration Ihres OpenVPN-Servers auf Fedora 35 gute Fortschritte gemacht. Ihr Hauptanliegen besteht darin, sicherzustellen, dass Ihre Firewall-Einstellungen sicher sind und keine unnötigen Lücken hinterlassen.
Lassen Sie uns auf Ihre Bedenken eingehen und einige Hinweise geben:
Standardzone:
Es ist üblich, für verschiedene Zwecke unterschiedliche Zonen zu haben. Wenn Ihr VPN funktioniert, wenn Sie „Trusted“ als Standardzone festlegen, ist das in Ordnung. Sie haben jedoch zu Recht auf das Problem mit „target: ACCEPT“ hingewiesen. In einer sichereren Konfiguration möchten Sie den Zugriff auf nur die erforderlichen Dienste beschränken.
FedoraServer-Zone:
Wenn Sie die FedoraServer-Zone als Standard verwenden möchten, müssen Sie sicherstellen, dass sie den erforderlichen Datenverkehr für OpenVPN zulässt. Sie haben erwähnt, dass OpenVPN funktioniert, wenn „Trusted“ als Standard festgelegt ist. Daher kann es hilfreich sein, die Einstellungen zwischen den beiden Zonen zu vergleichen. Anpassen der FedoraServer-Zone:
Wenn Sie die FedoraServer-Zone als Standard verwenden möchten, müssen Sie Regeln hinzufügen, um OpenVPN-Verkehr zuzulassen. Beispiel:
Firewall-Befehl --zone=FedoraServer --add-service=openvpn --permanent Firewall-Befehl --reload