badger
Goto Top

Iptables - Adressen blockieren

Hallo Leute,

ich habe folgenden Netzaufbau:
df8c72de9918166508103786322f712d

Nun möchte ich gerne, dass die W-Lan Geräte (IP: 192.168.0.xxx) keinen Zugriff auf die Geräte mit den IPs 172.21.0.xxx haben.
Das ganze lässt sich soweit auch super mit iptables, genau mit "iptables -I FORWARD -m iprange --src-range 172.21.0.1-172.21.0.254 -j DROP", lösen.
Allerdings habe ich so das Problem, dass auch das Internet nicht geht, da ja 172.21.0.1 mein Gateway ist.
Gibt es mit iptables irgendeine Lösung, dass die 172.21.0.xxx Adressen nicht aufrufbar sind aber das Internet trotzdem?
Oder ist die einzige Lösung, den W-Lan Router direkt am Internet-Router anzuschließen?
172.21.0.1 aus dem Block Bereich auszunehmen ist für mich keine Alternative.

Danke im Voraus
Patrick

Content-ID: 207815

Url: https://administrator.de/contentid/207815

Printed on: October 6, 2024 at 20:10 o'clock

domestone
domestone Jun 11, 2013 at 09:54:35 (UTC)
Goto Top
Wenn es dein Switch unterstüzt mach zwei verschiedene v-Lans?
Badger
Badger Jun 11, 2013 at 10:01:42 (UTC)
Goto Top
Zitat von @domestone:
Wenn es dein Switch unterstüzt mach zwei verschiedene v-Lans?

Leider ist der Switch nur ein kleinerer Cisco, der unmanaged ist. Da es sich bei hier um einen Netzwerkaufbau einer kleinen Organisation handelt, steht ein Neukauf leider nicht zur Option.
Lochkartenstanzer
Lochkartenstanzer Jun 11, 2013 updated at 10:25:03 (UTC)
Goto Top
Zitat von @Badger:
172.21.0.1 aus dem Block Bereich auszunehmen ist für mich keine Alternative.

Wieso ist das keine Alternative?

Du könntest natürlich der Regel noch ein dst-range hinzufügen, so daß dann der gesamte bereich so bleiben könnte.

lks
Badger
Badger Jun 11, 2013 updated at 10:41:52 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
> Zitat von @Badger:
> ----
> 172.21.0.1 aus dem Block Bereich auszunehmen ist für mich keine Alternative.

Wieso ist das keine Alternative?
Weil der Server auch als File- und Webserver dient. Und auf diese sollen die 192.168.0.xxx Adressen keinen Zugriff haben.

Zitat von @Lochkartenstanzer:
Du könntest natürlich der Regel noch ein dst-range hinzufügen, so daß dann der gesamte Bereich so bleiben
könnte.

Wie darf ich das genau verstehen?
so?
iptables -I FORWARD -m iprange --dst-range 0.0.0.0-172.20.254.254 -j ACCEPT
iptables -I FORWARD -m iprange --dst-range 172.21.1.1-254.254.254.254 -j ACCEPT
Lochkartenstanzer
Lochkartenstanzer Jun 11, 2013 at 11:45:30 (UTC)
Goto Top
Zitat von @Badger:

ich meinte etwa so:
iptables -I FORWARD -m iprange --src-range 172.21.0.1-172.21.0.254 --dst-range 192.168.0.2-192.168.0.254 -j DROP
iptables -I FORWARD -m iprange --dst-range 172.21.0.1-172.21.0.254 --src-range 192.168.0.2-192.168.0.254 -j DROP

aber ich sehe gerade, daß nicht Dein Router das filtern soll, sondern Dein Server. (oder kann Dein Router iptables?)

Am Server selbst kannst Du nicht verhindern, daß Dein WLAN-Router die beiden Netze verbindet.

Oder mal das bind oben deutlicher, damit man sieht, ob die beiden Netze auf demselben Segment laufen ider nicht.

lks
Badger
Badger Jun 11, 2013 at 12:05:57 (UTC)
Goto Top
Zitat von @Lochkartenstanzer:
aber ich sehe gerade, daß nicht Dein Router das filtern soll, sondern Dein Server. (oder kann Dein Router iptables?)

Mein Router kann iptables und über dem möchte ich das auch filtern. Nicht über den Server.
Sorry, habe ich vergessen zum anführen in der Einleitung.

ich meinte etwa so:
> iptables -I FORWARD -m iprange --src-range 172.21.0.1-172.21.0.254 --dst-range 192.168.0.2-192.168.0.254 -j DROP
> 

Wenn ich das jetzt richtig deute (Sorry - iptables sind für mich Neuland):
Blockiere alle Anfragen an 172.21.0.1 - 172.21.0.254 die von 192.168.0.2-192.168.0.254 kommen. Ist das so korrekt?

Wenn ja ist das in meinem Fall das gleiche wie "iptables -I FORWARD -m iprange --src-range 172.21.0.1-172.21.0.254 -j DROP", da an dem W-Lan Router sowieso nur Geräte mit dem IP-Bereich 192.169.0.XXX hängen.
Das Ändert aber trotzdem nicht, dass die 192.168.0.XXX Geräte nicht ins Internet kommen, da 172.21.0.1 der Gateway ist.
matthew77
matthew77 Jun 12, 2013 at 04:48:43 (UTC)
Goto Top
versuch mal so :

iptables -A FORWARD -d 172.21.0.1/24 -j ACCEPT

iptables -A FORWARD -m iprange --src-range 192.168.0.100-192.168.0.103 --dst-range 172.21.0.100-172.21.0.103 -j DROP

Gruß
m
Badger
Badger Jun 12, 2013 at 05:51:58 (UTC)
Goto Top
Zitat von @matthew77:
versuch mal so :

iptables -A FORWARD -d 172.21.0.1/24 -j ACCEPT

iptables -A FORWARD -m iprange --src-range 192.168.0.100-192.168.0.103 --dst-range 172.21.0.100-172.21.0.103 -j DROP

Gruß
m

Danke. Werde morgen berichten!
Badger
Badger Jun 12, 2013 at 19:22:26 (UTC)
Goto Top
Funktioniert leider nicht.

Vlt vereinfacht gesagt was ich will:
Die IP-Adressen 192.168.0.XXX sollen keinen direkten Zugriff auf das 172.21.0.XXX Netz haben. Auch keinen direkten Zugriff auf 172.21.0.1.
Aber die Adresse 172.21.0.1 soll als Gateway verfügbar sein.
Geht sowas überhaupt?
Badger
Badger Jun 12, 2013 at 19:43:33 (UTC)
Goto Top
Ich bin nun selbst auf eine Lösung/Workaround gekommen:

iptables -I FORWARD -m iprange --src-range 172.21.0.2-172.21.0.254 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 20 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 21 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 22 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 23 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 80 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 137 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 138 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 139 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 443 -j DROP
iptables -I FORWARD -p tcp -d 172.21.0.1 --dport 445 -j DROP
Somit sperre ich einfach die Ports für http und smb am Server. Internet geht.
Gibt's von euch da irgendwelche sicherheitstechnischen Bedenken?
matthew77
matthew77 Jun 12, 2013 at 20:14:30 (UTC)
Goto Top
iptables -I FORWARD -m iprange --src-range 172.21.0.2-172.21.0.254 -j DROP

nach --src-range kommt eigentlich der Quelladress-Range : 192.168.0.xxx - 192.168.0.yyy


Die Befehle 2 bis 11 kannst du so abkürzen:

iptables -I FORWARD -p tcp -d 172.21.0.1 -m multiport -dport 20,21,23,80,137,138,139,443,445 -j DROP


Ansonsten ist das ok !
matthew77
matthew77 Jun 12, 2013 at 20:30:24 (UTC)
Goto Top
Dann würde ich das so realisieren:

iptables -A FORWARD -m iprange --src-range 192.168.0.100-192.168.0.103 --dst-range 172.21.0.2-172.21.0.254 -j DROP
iptables -A FORWARD -p tcp -d 172.21.0.1 -m multiport -dport 20,21,23,80,137,138,139,443,445 -j DROP
Badger
Badger Jun 12, 2013 at 20:33:22 (UTC)
Goto Top
herzlichen Dank!
Dann werde ich das so machen. Hoffentlich klappt alles so wie ich mir das vorstelle face-smile
matthew77
matthew77 Jun 12, 2013 at 21:02:46 (UTC)
Goto Top
Gern geschehen !

Ansonsten kannst du dich wieder melden face-smile
Badger
Badger Jun 13, 2013 at 16:55:44 (UTC)
Goto Top
So jetzt muss ich nochmal lästig sein:
Gibt es einem Grund, warum es mit der Angabe der Schnittstelle nicht mag?
iptables -I FORWARD -i ath0 -p tcp -d 172.21.0.1 -m multiport --dport 20,21,22,23,80,137,138,139,443,445 -j DROP
Der Name der Schnittstelle stimmt. Hab ich mit ifconfig schon verglichen. Und die Werte trägt er in der iptable auch richtig ein:
Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 DROP       tcp  --  ath0 *       0.0.0.0/0            172.21.0.1          multiport dports 20,21,22,23,80,137,138,139,443,445 
Sobald ich die Angabe der Schnittstelle weg mache, funktioniert es.
Jemand eine Idee?
matthew77
matthew77 Jun 13, 2013 at 17:05:02 (UTC)
Goto Top
Gib bitte das IN- und OUT-Interface zusammen ein: (angenommen das Ausgags-Interface wäre eth0)

iptables -I FORWARD -i ath0 -o eth0 -p tcp -d 172.21.0.1 -m multiport --dport 20,21,22,23,80,137,138,139,443,445 -j DROP
Badger
Badger Jun 13, 2013 updated at 17:17:27 (UTC)
Goto Top
gerade probiert. Ändert leider nichts face-sad

EDIT: Und ja, eth0 ist mein Ausgangs-Interface
matthew77
matthew77 Jun 13, 2013 at 17:45:28 (UTC)
Goto Top
Es könnte sein, dass eine alte iptables-Regel noch im Speicher ist, um die Tabellen zu flashen gib bitte "iptables -F" am Anfang ein:

iptables -F
iptables -A FORWARD -m iprange --src-range 192.168.0.100-192.168.0.103 --dst-range 172.21.0.2-172.21.0.254 -j DROP 
iptables -A FORWARD -i ath0 -o eth0 -p tcp -d 172.21.0.1 -m multiport --dport 20,21,22,23,80,137,138,139,443,445 -j DROP


Falls das nicht klappen sollte, müssen wir den Befehl mit -j LOG erweitern und dann in Log-File den Fehler suchen ...
Badger
Badger Jun 13, 2013 at 19:12:29 (UTC)
Goto Top
Danke dir. werde ich ausprobieren. Komme wahrscheinlich aber erst Anfang nächster Woche wieder dazu. Werde berichten!
Die Logs sind dann wahrscheinlich unter /var/log/ zu finden, oder?
Badger
Badger Jun 20, 2013 at 16:30:28 (UTC)
Goto Top
Hat zwar etwas gedauert aber gerade probiert:
funktioniert leider nicht.
Habe nun zum Schluss auf "logdrop" geändert. Leider nichts im log zu finden. Aber komischerweise auch nicht, wenn ich es ohne Input und source mache. Obwohl das log-Verzeichnis 100% stimmt.
Schön langsam bin ich soweit, dass ich mir wirklich einen zweiten router kaufe!