Seite 1 von 1

[solved] Iptables in nftables umwandeln und einrichten - bitte um unterstützung

Verfasst: 26.03.2020 11:39:50
von RedRocket88
Ich versuche seit ca. 6 Stunden die Firewall hinzubekommen und obwohl ich normal eher kein Mensch bin der in Foren nachfragt, stattdessen über Google und Recherche versucht das Problem zu lösen, komme ich diesmal, zu meinem Verdruss, leider absolut nicht weiter.

Was ich erreichen möchte:
Auf dem Raspberry Pi 3 - Debian Buster, OpenVPN(bereits eingerichtet): Firewallregeln einrichten, um bei einem Verbindungsabbruch zum VPN Server die Internetverbindung zu sperren also quasi nur Pakete über tun0/OpenVPN ins Internet durchlassen.

Ich hab mir eine Iptable zurecht gebastelt aber leider wird die auf meinem Pi nicht angenommen :/

Ich habe auch versucht die Iptable zu nftable zu konvertieren aber ich bekomme auch da Fehlermeldungen.
Nach Tipps aus dem Internet habe ich folgendes erfolglos probiert: Umwandlung mit dos2unix ausgeführt(keine Veränderung), xtable-restore, als bash script schreiben und dann mit -x ausführen um die fehlerhaften Zeilen zu finden(ich habe leider keinen Fehler finden können), Kommentare und Leerzeilen entfernt, Leerzeichen sind auch keine drin.

Leider kann ich es per Hand nicht in nftable syntax übersetzen, ich bin mehr oder weniger Linuxanfänger und es gibt kaum Tutorials zu nftable mit denen ich etwas anfangen kann.

Kann mir jemand helfen?
(Fehlermeldungen und die Iptable sind unter diesem Absatz angehängt)

Ausgabe test als bashscript:

Code: Alles auswählen

root@raspberrypi:/home/pi/IpTablesKillswitchVPN# bash -x ipv4_2.sh
+ iptables -P INPUT DROP
+ iptables -P FORWARD DROP
+ iptables -P OUTPUT DROP
+ iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
+ iptables -A OUTPUT -o lo -j ACCEPT
+ iptables -A OUTPUT -o tun0 -p icmp -j ACCEPT
+ iptables -A OUTPUT -d 192.168.2.0/24 -j ACCEPT
+ iptables -A INPUT -s 192.168.2.0/24 -j ACCEPT
+ iptables -A OUTPUT -d 192.168.1.0/24 -j ACCEPT
+ iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
+ iptables -A OUTPUT -d 208.67.222.222 -j ACCEPT
+ iptables -A OUTPUT -d 208.67.220.220 -j ACCEPT
+ iptables -A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
+ iptables -A OUTPUT -o tun0 -j ACCEPT
Ausgabe test iptables-restore bzw iptables-nft-restore und xtable-restore und iptables-restore-translate:

Code: Alles auswählen


root@raspberrypi:/home/pi# iptables-restore < /home/pi/IpTablesKillswitchVPN/ipv4
iptables-restore v1.8.2 (nf_tables): no command specified
Error occurred at line: 33

root@raspberrypi:/home/pi/IpTablesKillswitchVPN# iptables-nft-restore < /etc/ipv4
iptables-restore v1.8.2 (nf_tables): no command specified
Error occurred at line: 33

root@raspberrypi:/home/pi# xtables-restore -4 -T </home/pi/IpTablesKillswitchVPN/ipv4>
bash: Syntaxfehler beim unerwarteten Wort `newline'

Ausgabe Iptables convert:
root@raspberrypi:/home/pi/IpTablesKillswitchVPN# iptables-restore-translate -f ipv4 > ipv4_nf.txt
iptables-translate-restore: line 2 failed
IpTable:

Code: Alles auswählen

*filter
# IPTable VPN Killswitch, von https://linuxconfig.org/how-to-create-a-vpn-killswitch-using-iptables-on-linux
# Eingerichtet am 26.03.2020

# Kompletten Verkehr erstmal verbieten, drop traffic by default
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP

# Only allow inbound traffic from established or related connections
-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# Allow the loopback interface and ping
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o tun0 -p icmp -j ACCEPT

# LAN Verkehr erlauben sowohl Input als auch Output, 
# für SSH, Weboberflächen usw
-A OUTPUT -d 192.168.2.0/24 -j ACCEPT
-A INPUT -s 192.168.2.0/24 -j ACCEPT
-A OUTPUT -d 192.168.1.0/24 -j ACCEPT
-A INPUT -s 192.168.1.0/24 -j ACCEPT

# DNS Server die erlaubt sind zu kontaktieren
# Ich wähle hier OpenDNS, ich halte die für vertrauenswürdig und zuverlässig
-A OUTPUT -d 208.67.222.222 -j ACCEPT
-A OUTPUT -d 208.67.220.220 -j ACCEPT

# VPN Server Port, UDP/TCP und Interface(tun0) erlauben
-A OUTPUT -p tcp -m tcp --dport 443 -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT

COMMIT

Re: Iptables in nftables umwandeln und einrichten - bitte um unterstützung

Verfasst: 26.03.2020 11:48:10
von MSfree
RedRocket88 hat geschrieben: ↑ zum Beitrag ↑
26.03.2020 11:39:50
Ich hab mir eine Iptable zurecht gebastelt aber leider wird die auf meinem Pi nicht angenommen :/
Raspbian unterstützt iptables in vollem Umfang und unterscheidet sich nicht vom "normalen" Debian. Wenn das was nciht angenommen wird, liegt es nicht am Raspi und seinem OS.

Wie lauten die Fehelrmeldungen?

Re: Iptables in nftables umwandeln und einrichten - bitte um unterstützung

Verfasst: 26.03.2020 11:51:05
von RedRocket88
Raspbian unterstützt iptables in vollem Umfang und unterscheidet sich nicht vom "normalen" Debian. Wenn das was nciht angenommen wird, liegt es nicht am Raspi und seinem OS.
Wie lauten die Fehelrmeldungen?
Ich hab die Fehlermeldungen und meine Iptable an meinen Startpost angehängt

Re: Iptables in nftables umwandeln und einrichten - bitte um unterstützung

Verfasst: 26.03.2020 12:05:20
von TomL
  1. Lösch alle aktiven Filterregeln
  2. Starte das Script ./ipv4_2.sh manuell, um die Regeln sauber anzulegen
  3. Erstelle mit iptables-save >ip.nf eine aktuelle Ausgabe der Regeln an die Stelle, von der sie später mit Restore wieder geladen werden soll.
  4. Ab jetzt sollte der iptables-restore <ip.nf wieder klappen

Re: Iptables in nftables umwandeln und einrichten - bitte um unterstützung

Verfasst: 26.03.2020 12:44:31
von RedRocket88
TomL hat geschrieben: ↑ zum Beitrag ↑
26.03.2020 12:05:20
  1. Lösch alle aktiven Filterregeln
  2. Starte das Script ./ipv4_2.sh manuell, um die Regeln sauber anzulegen
  3. Erstelle mit iptables-save >ip.nf eine aktuelle Ausgabe der Regeln an die Stelle, von der sie später mit Restore wieder geladen werden soll.
  4. Ab jetzt sollte der iptables-restore <ip.nf wieder klappen
Vielen vielen Dank!!!
Das hat geklappt!
Und ich konnte die so generierte Datei jetzt auch problemlos in nftable syntax umwandeln.
Ob ich jetzt IPTable oder nftable verwende muss ich noch schauen, aber auf jeden Fall klappt es.

Dankeschön