Mit iptables Netz übergreifende Verbindungen droppen ?

Status
Für weitere Antworten geschlossen.

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Moin,

Ich brauche da mal wieder Rat bei iptables.
Mein NAS ist zusätzlich als Hotspot eingerichtet und verteilt per DHCP einen IP Kreis von 10.1.1.10 - 255 für die Nutzer. Da aber auch noch andere Netzwerkkreise bedient/verwaltet/geroutet werden habe ich letztens festgestellt das diese über den oben genannten IP Kreis erreichbar sind, was sie jedoch nicht sollen.

Daher die Frage wie kann man das mit iptables unterbinden?
Experimente sind in diesem "produktiven" System nicht unbedingt angebracht daher möchte ich sicherstellen das wenn ich etwas ändere mich nicht auch gleich aussperre oder ein anderes Netz blockiere. Also die übliche Syntax-Atychiphobie.

Gedanken dazu meinerseits:

Rich (BBCode):
iptables -I INPUT -s 10.1.1.0/24 -d IP_wo_nicht_hindarf/24 -j DROP

oder

iptables -I INPUT -p all -s 10.1.1.0/24 -d IP_wo_nicht_hindarf/24 -j DROP

Die Zeilen kommen dann in ein sh script das über rc.local eingebunden ist damits beim evtl. Neustart auch wieder geladen wird.


Danke und Grüße
Kidaru
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.167
Punkte für Reaktionen
415
Punkte
393
Hallo,
die Regel muß in die Chain FORWARD, nicht INPUT.

Gruß Götz
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Danke Götz,

bringt es denn dann noch was mit -p all die Protokolle zu definieren oder macht das keinen Unterschied?

Rich (BBCode):
iptables -I FORWARD 1 -p all -s 10.1.1.0/24 -d IP_wo_nicht_hindarf/24 -j DROP
 
Zuletzt bearbeitet:

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
geht denn -p all überhaupt? imho kannst du die Angabe des Protokolls auch gleich weglassen, dann werden alle genommen
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
geht denn -p all überhaupt? imho kannst du die Angabe des Protokolls auch gleich weglassen, dann werden alle genommen

Laut der Parameterliste kann mit -p das Protokoll angegeben werden, akzeptierte Argumente sind u.a. udp, icmp, tcp, all oder sogar 6 als numerischer Wert. Frag mich aber bitte nicht was die numerischen Werte angeben ich bin nur beim lesen drüber gestolpert.

Aber irgendeinen Sinn muss ja der Parameter -p haben, es sei denn er ist nur relevant wenn -s nicht angegeben wird.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
klar hat -p einen Sinn: dann nämlich wenn du mit einer Regel nur ein bestimmtes Protokoll z.B. upd, tcp oder icmp treffen willst. Wenn du alle Protokolle auf dem Port mit einer Regel ansprechen willst, dann kannst du -p auch weglassen.
In gewissen Konstellationen musst du das Protokoll sogar angeben, dann nämlich wenn die Regel etwas protokollspezifisches prüft, in deinem Fall aber imho ned. Noch ein Tipp: du kannst auch den Status von Verbindungen prüfen z.B.
Code:
iptables -A FORWARD -s WO_NED_HINDARF -m state --state NEW -j DROP
würde den Aufbau neuer Verbindungen von aussen von diesem IP Block verhindern. Mittels state kannst du genau festlegen, auf welche Pakete die Regel angewendet werden soll. Neben NEW gäbe es noch RELATED und ESTABLISHED und zudem noch INVALID
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Im Endeffekt geht mir nur darum aus dem IP Kreis des Hotspots keine Verbindungen in die anderen Netze zu zulassen es sei denn sie gehen ins normale Internet. Meine DS routet nun mal auch Verbindungen obwohl sie nicht dafür geschaffen ist (sonst gäbe es bestimmt ein Routingmenü im DSM), aber sie kann es, man muss ihr nur sagen wie.

Die zusätzlichen Zeilen im Script würden dann so aussehen: (ich hoffe nur das klappt so)

Rich (BBCode):
iptables -I FORWARD 1 -s 10.1.1.3-10.1.1.255 -d NETZ1_wo_nicht_hindarf/24 -j DROP
iptables -I FORWARD 2 -s 10.1.1.3-10.1.1.255 -d NETZ2_wo_nicht_hindarf/24 -j DROP
iptables -I FORWARD 3 -s 10.1.1.3-10.1.1.255 -d NETZ3_wo_nicht_hindarf/24 -j DROP
iptables -I FORWARD 4 -s 10.1.1.3-10.1.1.255 -d NETZ4_wo_nicht_hindarf/24 -j DROP

Die erste und die zweite IP_Adresse des -s Netzbereichs sind dauerhaft belegt und der Hotspot DHCP verteilt erst ab 10.1.1.10.


Grüße ^^
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
ich bin nicht ganz sicher ob man ip-ranges so als source angeben kann. Mit der cidr-Notation geht es sicher, aber als range weiss ich ned
Zudem was machen diese Zahlen direkt nach FORWARD, was sollen die bezwecken?
Und warum beginnst du erst bei IP 10.1.1.3? Ich würde gleich das komplette /24-er Sub verbieten beim Zugriff
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.167
Punkte für Reaktionen
415
Punkte
393
Hallo,
Zudem was machen diese Zahlen direkt nach FORWARD, was sollen die bezwecken?
die legen die Stelle fest an der die Regel in der Chain stehen soll, also an 1. Stelle usw.

Gruß Götz
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
die legen die Stelle fest an der die Regel in der Chain stehen soll, also an 1. Stelle usw.
okay ned gewusst, allerdings durch -I wäre auch ohne die Nummer genau diese Reihenfolge entstanden :)
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
Das soll so möglich sein im schlechtesten Fall funktionierts nicht ^^

Die Zahlen sind dem Parameter -I geschuldet der angibt an welcher Stelle der Tabelle die Regel eingefügt werden soll.
Normalerweise werden die nacheinander eingefügt aber so ist nicht sichergestellt das die auch an erster Stelle anfangen. Das Problem hatte ich damals wo mir Götz weiterhelfen konnte mit einer POSTROUTING Chain. Die funktionierte solange nicht bis sie explizit angewiesen wurde sich doch an erster Stelle niederzulassen (bissel eigensinnig diese Ketten).
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
-I fängt immer an erster Stelle an und A an letzter ;-) I = insert und A = append
Die Ketten auf der DS sind kaum eigensinniger als iptables auf anderen Linux Systemen
 

goetz

Super-Moderator
Teammitglied
Sehr erfahren
Mitglied seit
18. Mrz 2009
Beiträge
14.167
Punkte für Reaktionen
415
Punkte
393
Hallo,
@jahlives
in seinem Beispiel ist es eigentlich egal aber mit der numerischen Angabe kann man ganz genau steuern an welcher Stelle die Regel steht. Ohne die Angabe würden seine Regeln in umgekehrter Reihenfolge stehen, die letzte kommt an die erste Stelle (man erspart sich die Umkehrung der Regeln beim einfügen).

Gruß Götz
 

Kidaru

Benutzer
Mitglied seit
04. Nov 2011
Beiträge
63
Punkte für Reaktionen
0
Punkte
6
@jahlives
Wie von dir prophezeit unterstützt iptables auf der DS die -s Angabe NICHT in der Form Anfang_IP-Ende_IP.
Ich hab -s jetzt mit IP_Adresse/24 eingetragen.

Grüße
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat