PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IPTABLES - Port 110 und 5190 wollen nicht so wie ich



white-horse
15.01.05, 23:33
Hallo Zusammen,

ich bin absoluter Newbi beim Thema IPTABLE. Ich hab einen Linuxrouter den ich für die Interneteinwahl nutze und habe folgende Regeln eingestellt, aber ich bekomm es einfach nicht hin den Port 110 zum Email abrufen und den Port 5190 für ICQ zum laufen zu kriegen.

Ich hoffe mir kann jemand helfen, danke schonmal.



#!/bin/sh


#Added for BlockOutTraffic - BEGIN
/usr/local/bin/setfwrules
#Added for BlockOutTraffic - END

# Userbzogene Firewallregeln

# Deklaration der Netze
GREEN=172.16.0.0/16
BLUE=192.168.1.0/24
ORANGE=192.168.16.0/24

# Deklaration Ports
HTTP=80
HTTPS=8080
HIGHPORTS=1024:65535
FTP=21
FTPDATA=20
MAIL=25

# Deklaration der Clients
FWALLGREEN=172.16.1.254
FWALLBLUE=192.168.1.254
FWALLORANGE=192.168.16.254
WORKER=
INET=
NOTEBOOK=172.16.1.19
NOTEBOOK_WLAN=192.168.1.11

/sbin/iptables -F CUSTOMFORWARD
# alle evtl. vorhandenen rules werden gelöscht

#HTTP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $HTTP -j DROP
#niemand darf von GREEN nach RED in das Internet über http
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $HTTP -j DROP
# Außnahmen können folgendermaßen eingetragen werden (für Direktanschluss ohne Proxy)
# /sbin/iptables -I CUSTOMFORWARD -p tcp -s 172.16.1.1 -d 0/0 --dport $HTTP -j ACCEPT

#HTTPS
#/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 8080 -j ACCEPT

#ping
/sbin/iptables -I CUSTOMFORWARD -p icmp -s $GREEN -j DROP
/sbin/iptables -I CUSTOMFORWARD -p icmp -s $BLUE -j DROP

#ftp
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $FTP -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $FTP -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $ORANGE -d 0/0 --dport $FTP -j DROP
# Außnahme folgendes Clients
# /sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport $FTP -j ACCEPT

# highports
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport $HIGHPORTS -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --dport 5190 -j ACCEPT
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $FWALLGREEN -s 0/0 --dport $HIGHPORTS -j ACCEPT

# mail
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $MAIL -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $MAIL -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $ORANGE -d 0/0 --dport $MAIL -j DROP
# Außnahme für Notebook
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport $MAIL -j ACCEPT

# Testweise Port 110 fuer Emailabruf
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 110 -j ACCEPT

/sbin/iptables -L CUSTOMFORWARD
# laden und aktivieren der eigenen Firewallrules

klemens
15.01.05, 23:58
/usr/local/bin/setfwrules

Was da drinnen steht, weisst ich nicht.
_________

Wo wird die "CUSTOMFORWARD" -Chain angelegt und wie wird dann umgeleitet dorthin?




/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --dport 5190 -j ACCEPT

Das erlaubt einmal den Traffic von ICQ zu $NOTEBOOK aber von $NOTEBOOK zu ICQ finde ich nichts (vielleicht hab ich es auch übersehen) -- Ähnlich bei pop3


/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport $HIGHPORTS -j DROP

Das verbietet viel für $NOTEBOOK

Wie sind die Policies? Welcher Rechner/Netz soll überhaupt die gefragten Dienste in Anspruch nehmen -- da fehlt einiges.

Ich tu mir etwas schwer mit Deinem Firewallaufbau (3 Netze, die definiert sind und 5 Rechner, die extra definiert sind - da geht schnell was durcheinander!)

white-horse
16.01.05, 00:26
Hallo Klemens,

danke für die schnelle Antwort.


Was da drinnen steht, weisst ich nicht.
_________

Wo wird die "CUSTOMFORWARD" -Chain angelegt und wie wird dann umgeleitet dorthin?


Gute Frage, kann ich leider nicht beantworten.



Das erlaubt einmal den Traffic von ICQ zu $NOTEBOOK aber von $NOTEBOOK zu ICQ finde ich nichts (vielleicht hab ich es auch übersehen) -- Ähnlich bei pop3


ok, das habe ich Versucht zu korrigieren, hab das Skript mal unte gelistet.



Das verbietet viel für $NOTEBOOK

Wie sind die Policies? Welcher Rechner/Netz soll überhaupt die gefragten Dienste in Anspruch nehmen -- da fehlt einiges.

Da muss ich dir auch recht geben, mittlerweile schaut das schon etwas unübersichtlich aus, ich test aber auch schon seit Stunden *pfffff*

Ich habe die File jetzt mal auf ein Netzwerk beschränkt, wenn ich gecheckt habe wie das geht sollten die anderen auch kein Problem mehr sein.



Ich tu mir etwas schwer mit Deinem Firewallaufbau (3 Netze, die definiert sind und 5 Rechner, die extra definiert sind - da geht schnell was durcheinander!)

Schau doch bitte nochmal in das Script, irgendwo ist noch der Fehler.



#!/bin/sh


#Added for BlockOutTraffic - BEGIN
/usr/local/bin/setfwrules
#Added for BlockOutTraffic - END

# Userbzogene Firewallregeln

# Deklaration der Netze
GREEN=172.16.0.0/16

# Deklaration Ports
HTTP=80
HTTPS=8080
HIGHPORTS=1024:65535
FTP=21
FTPDATA=20
MAIL=25

# Deklaration der Clients
FWALLGREEN=172.16.1.254
NOTEBOOK=172.16.102.1

/sbin/iptables -F CUSTOMFORWARD
# alle evtl. vorhandenen rules werden gelöscht

#HTTP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $HTTP -j DROP
#niemand darf von GREEN nach RED in das Internet über http
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $HTTP -j DROP

#ping
/sbin/iptables -I CUSTOMFORWARD -p icmp -s $GREEN -j DROP
/sbin/iptables -I CUSTOMFORWARD -p icmp -s $BLUE -j DROP

#ftp
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $FTP -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $FTP -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $ORANGE -d 0/0 --dport $FTP -j DROP

# highports
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport $HIGHPORTS -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --dport 5189:5191 -j ACCEPT
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 5190 -j ACCEPT
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $FWALLGREEN -s 0/0 --dport $HIGHPORTS -j ACCEPT

# mail
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $GREEN -d 0/0 --dport $MAIL -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $BLUE -d 0/0 --dport $MAIL -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $ORANGE -d 0/0 --dport $MAIL -j DROP
# Außnahme für Notebook
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport $MAIL -j ACCEPT

# Testweise Port 110 fuer Emailabruf
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 110 -j ACCEPT
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --dport 110 -j ACCEPT

/sbin/iptables -L CUSTOMFORWARD
# laden und aktivieren der eigenen Firewallrules


Danke ;)

klemens
16.01.05, 00:59
Allgemein:
Dass Du mit "-I" arbeitest, ist ok - aber ehrlich: Für meine Augen, die "-A" gewohnt sind, steht da alles am Kopf und macht mir (und ev. auch anderen) das Leben nicht unbedingt leichter ;-)


# highports
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --dport 5189:5191 -j ACCEPT
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 5190 -j ACCEPT


--dport des $NOTEBOOK ist AFAIK ein beliebiger Highport bei ICQ
also:
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --sport 5190 -j ACCEPT

- Das ist jetzt aber ziemlich rausgeschnitten, weil man überhaupt nicht sehen kann, wie es dazu kommt :


#Added for BlockOutTraffic - BEGIN
/usr/local/bin/setfwrules
#Added for BlockOutTraffic - END

?? Wo hast das her? - Hab sowas noch nie gesehen.

white-horse
16.01.05, 10:12
Allgemein:
Dass Du mit "-I" arbeitest, ist ok - aber ehrlich: Für meine Augen, die "-A" gewohnt sind, steht da alles am Kopf und macht mir (und ev. auch anderen) das Leben nicht unbedingt leichter ;-)


Hi,
ich kenn halt bis dato nur "-I"



--dport des $NOTEBOOK ist AFAIK ein beliebiger Highport bei ICQ
also:
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $NOTEBOOK -s 0/0 --sport 5190 -j ACCEPT

- Das ist jetzt aber ziemlich rausgeschnitten, weil man überhaupt nicht sehen kann, wie es dazu kommt :

sport? nicht dport?

Also das "Problem" liegt an folgender Regel, wenn ich die rausnehme geht alles wunderbar. Aber ich würde schon gern die ganzen nicht benötigten Highports dicht machen:

/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport $HIGHPORTS -j DROP





?? Wo hast das her? - Hab sowas noch nie gesehen.

Das habe ich von hier (http://www.ipcop-forum.de/forum/viewtopic.php?t=499)

klemens
16.01.05, 11:19
sport? nicht dport?

Also das "Problem" liegt an folgender Regel, wenn ich die rausnehme geht alles wunderbar. Aber ich würde schon gern die ganzen nicht benötigten Highports dicht machen:

/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport $HIGHPORTS -j DROP

--sport
Ist die Möglichkeit die ICQ-Verbindung solala dingfest zu machen. Du bist mit ICQ über Port 5190 verbunden, also kommen von dort die Verbindungsdaten zu Deinem Netzwerk.

--dport $HIGHPORTS .. -j DROP

Damit blockierst Du _alles_, was an einen höhren Port (sprich an einen Client) vom Internet an das Netzwerk $GREEN gesendet wird.

Bei "-I" muss man halt die Regeln von unten nach oben lesen - ist halt nicht das, was wir im mitteleuropäischen Raum gewohnt sind ;-)
Dafür ist -I sehr nützlich, wenn man hinterher was ändern will. Du weisst dann, dass die Regel oben steht - wie auch immer ist "g'hupft wie g'hatscht"

white-horse
16.01.05, 12:10
.....Bei "-I" muss man halt die Regeln von unten nach oben lesen....

Das heißt also wenn ich "-A" angebe wird die Scriptdatei von oben nach unten ausgeführt und bei "-I" von unten nach oben.

Angenommen ich hab folgendes:


# highports
/sbin/iptables -I CUSTOMFORWARD -p tcp -d $GREEN -s 0/0 --dport 5190 -j DROP
/sbin/iptables -I CUSTOMFORWARD -p tcp -s $NOTEBOOK -d 0/0 --dport 5190 -j ACCEP
Da wird erst der Port 5190 für den Laptop freigeben und gleich danach wieder übers gesamte Netz gesperrt. Hab ich das richtig verstanden? Wenn ich jeweils -A angegeben würde sollte es ja dann funktionieren...

Danke für deine Hilfe

Gruß

Patrick

klemens
16.01.05, 21:51
Kurz zum Verständnis:
Stell Dir eine Chain einfach wie einen Turm aus Bausteinen vor - einer über den anderen.
Ein Paket wird Baustein für Baustein von oben nach unten durchgereicht.

-A: Ein Baustein wird unten hinzugefügt
-I: Ein Baustein wird oben hinzugefügt.

Ein Skript wird von der shell von oben nach unten Schritt für Schritt durchgelesen ->
Also bei -A: was im Skript oben steht, steht auch im Turm oben
-I: Was im Skript oben steht in der Chain dann unten.



Da wird erst der Port 5190 für den Laptop freigeben und gleich danach wieder übers gesamte Netz gesperrt. Hab ich das richtig verstanden? Wenn ich jeweils -A angegeben würde sollte es ja dann funktionieren...

Nein!
Wenn ein Paket auf eine zutreffende Regel stoßt dann verlässt es die Kette

Also bei Deinem Beispiel:
-I $GREEN: Du legst einen Baustein hin: Netz sperren
-I $NOTEBOOK: Du legst einen Baustein oben drauf: Laptop freigeben.

Also schaut die Chain so aus:
$NOTEBOOK
$GREEN

Das Paket kommt an - trifft auf $NOTEBOOK - Regel ist anwendbar -> verlässt die Chain - $GREEN kommt gar nicht zum Zug.

-- hoffe, ich hab die Verwirrung perfektioniert :D

white-horse
17.01.05, 08:28
Hallo,

danke für deine Erklärungen. Ich habs jetzt hinbekommen. Der Parameter "-A" hat mir geholfen. Zum weiteren Verständniss werde ich mir mal das eine oder andere Tutorial zum Thema iptables reinziehen ;)

Also danke nochmal und schönen Tag.

Patrick