ubuntuusers.de

Brauche dringend Hilfe mit iptables!!

Status: Ungelöst | Ubuntu-Version: Kein Ubuntu
Antworten |

Gerdchen03

Anmeldungsdatum:
25. Februar 2011

Beiträge: 103

Ich habe einen VPN-Server und in meinem Heimnetz einen Raspberry Pi, über den alle im LAN befindlichen Rechner in den VPN gehen. Mit einigen Geräten möchte ich auch von Unterwegs auf einen PC zugreifen.

Ich habe mit ipset auf dem VPN-Server eine Liste von IPs erstellt, die sowohl ins Internet, als auch ins LAN dürfen. Alle anderen IPs dürfen weder ins Internet, noch ins LAN. Der Befehl "ipset list vpn_allowed" zeigt diese IPs auch. Aktuell teste ich das mit meinem Handy, dessen IP ich zwischen 10.8.1.7 (erlaubte IP) 10.8.1.17 (verbotene IP) wechsele.

Der Rechner 192.168.178.24 soll auf den Ports 15002 und 15003 von allen IPs erreichbar sein.

Dies sind meine iptables auf dem VPN-Server:

sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD DROP
sudo iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A FORWARD -i tun1 -o ens6 -d 192.168.178.24 -p tcp --dport 15002 -j ACCEPT
sudo iptables -A FORWARD -i tun1 -o ens6 -d 192.168.178.24 -p tcp --dport 15003 -j ACCEPT
sudo iptables -A FORWARD -i tun1 -o ens6 -m set --match-set vpn_allowed src -j ACCEPT
sudo iptables -A FORWARD -i tun1 -j DROP
sudo iptables -A FORWARD -i tun0 -o ens6 -s 10.8.0.0/24 -j ACCEPT
sudo iptables -A FORWARD -i ens6 -o tun0 -d 10.8.0.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A FORWARD -i ens6 -o tun1 -d 10.8.1.0/24 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o ens6 -j MASQUERADE
sudo iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o ens6 -j MASQUERADE

Hier die iptables meine Raspberrys:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-ipforward.conf
sudo sysctl --system
sudo iptables -t nat -A POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o tun1 -j ACCEPT
sudo iptables -A FORWARD -i tun1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT
sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
sudo iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A POSTROUTING -o tun1 -j MASQUERADE
sudo iptables -A FORWARD -i eth0 -o tun1 -j ACCEPT
sudo iptables -A FORWARD -i tun1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
sudo iptables -L

In der ccd-Datei des Raspberry steht nichts drin, in der des Handys z.B. nur "ifconfig-push 10.8.1.7 255.255.255.0"

Test1: In der Server.conf hatte ich folgendes eingetragen:

route 192.168.178.0 255.255.255.0

Dann kommen sowohl erlaubte, als auch unerlaubte IPs ins LAN. Erlaubte kommen ins Internet, nicht erlaubte kommen nicht ins Internet. Das wäre so OK, abgesehen davon, dann erlaubte ins LAN sollen.

Test2: Trage ich folgendes in der Server.conf ein, kommt keinerlei Verbindung innerhalb des LANs zustand. Das bedeutet, ich kann z.B. vom Laptop den Raspberry nicht mehr erreichen:

route 192.168.178.0 255.255.255.0
push "route 192.168.178.0 255.255.255.0"

push "route 192.168.178.0 255.255.255.0" scheint kompletter Blödsinn zu sein, und habe ich ab hier nicht mehgr eingetragen.

Test3: Diese Zeile habe ich in die iptables hinzugefügt, um den Traffic unerlaubter IPs ins Lan zu unterbinden:

sudo iptables -A FORWARD -i tun1 -d 192.168.178.0/24 -m set ! --match-set vpn_allowed src -j DROP

Das Verhalten ist exakt gleich wie bei Test1 und Test2

Test4: Diese Zeile verhält sich wie Test3

sudo iptables -A FORWARD -i tun1 -d 192.168.178.0/24 -m set --match-set vpn_allowed src -j ACCEPT

Ich weiß, das sieht etwas nach wildem Rumgestocher aus, aber das waren Tips der KI, die aber nicht immer sinnvoll zu sein scheinen.

Ich drehe mich seit 3 Tagen im Kreis und auch ChatGPT widerspricht sich ständig. Ich denke ich bin nicht weit vom Ziel entfernt, aber ich stecke einfach fest. Ich wäre euch sehr dankbar, wenn ihr mir helfen könnt. Fehlende Informationen, schicke ich gerne nach. Ich halte nichts absichtlich zurück, aber ich sehe aktuell vor lauter Bäumen den Wald nicht.

encbladexp Team-Icon

Ehemaliger
Avatar von encbladexp

Anmeldungsdatum:
16. Februar 2007

Beiträge: 17665

Hilfreich zum debuggen ist die Ausgabe vom Befehl sudo iptables-save -c, das gibt alle Regeln aus die es gibt, inkl dem aktuellen Hit Counter. Damit kannst du sehen welche Regeln überhaupt Traffic haben, und welche garnichts bekommen.

Vorsichtig solltest du wegen ICMP sein, es scheint mir das du dies nicht generell aktiv hast. Ohne ICMP Messages gehen auch Sachen wie die PMTU Discovery (TCP) nicht wirklich gut, meine Empfehlung wäre daher ICMP zu erlauben.

Weiterhin guter Vorschlag: tcpdump ist dein Freund, schau doch mal ob du am tun0 vom VPN Server den Traffic vom Client für das Ziel bekommst, kommt der an passt das Routing vom Client, kommtt aber nichts an, scheint auf dem Client das Routing oder iptables ein Thema zu sein.

Sind der VPN Server und die Raspis im gleichen Netz (nicht VPN, sondern WLAN/LAN)? Oder ist das VPN bei dir daheim, und die Raspis wo anders?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10239

Wohnort: Münster

Gerdchen03 schrieb:

[…] ipset

Davon ist in den gezeigten Regeln nicht die Rede, also kann das auch nichts bewirken.

Lesestoff für Dich: iptables und dort verlinkte weitere Artikel.

Welche Ubuntu-Version benutzt Du?

Antworten |