PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables Konfiguration



Cerox
11.09.05, 11:50
Hallo zusammen,

ich bin noch Linux-Newbie und habe mir nun einige Regeln für iptables definiert:

iptables -A INPUT -p tcp -j DROP
iptables -A INPUT -p udp -j DROP
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -m icmp --icmp-type 5 -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 29000 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp -j ACCEPT
iptables -A OUTPUT -p udp -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT

Kann mir jemand sagen warum mit diesen Regeln kein ausgehender Datenverkehr mehr funktioniert, also ich kann im Browser keine URL's mehr aufrufen, auch keine IP's also an der Adressauflösung liegt es nicht. Anpingen etc. kann ich den Router, sobald ich mit "iptables --flush" alles lösche, geht ja auch alles^^

x86-64
11.09.05, 12:18
kleiner tipp schau dir mal das konzept von iptables nchmal an. deine regeln sind totaler schwachsinn weil sie nicht an ein interface gebunden sind.

Warum surfen nicht funktioniert:
- du verbietest erst allen tcp verkehr
- dann erlaubst du 10,21,22,53,29000

also ist port 80 geblockt und deshalb funktioniert kein http.

ich würde mir harrys iptablesgenerator anschauen den link findest in der linkliste.

Cerox
11.09.05, 12:24
Also ich dachte, wenn man die Regeln nicht an ein bestimmtes Interface bindet, gelten sie für ALLE Schnittstellen. Ich probiere es gleich mal mit dem Zusatz "-i eth0".

Ich verbiete absichtlich den eingehenden TCP Verkehr und dann möchte ich bestimmte Ports freischalten. Den Port 80 brauche ich nicht, da auf meinem Rechner kein HTTP Server wie Apache läuft. Für ausgehende Verbindungen werden in der Regel andere per Zufall generierte Ports verwendet.

Deshalb habe ich ja auch den ausgehenden Datenverkehr erlaubt. Ich probiere das gleich mal mit der Schnittstelle aus.

x86-64
11.09.05, 13:09
genau da ist der fehler wenn du von deinem pc ins internet gehst, kommt der verkehr auch an einer netzwerkschnittstelle (lo,eth?) an also greift die INPUT Policy. Du darfst allso diese Regeln nur auf das Interface anwenden dass ins Internet geht (z.B. ippp0, ppp0, usw).

x86-64
11.09.05, 13:20
Chain INPUT (policy DROP 161 packets, 42774 bytes)
pkts bytes target prot opt in out source destination
3520 2118K ACCEPT all -- lo * 0.0.0.0/0 0.0.0.0/0
1487 116K ACCEPT all -- eth1 * 0.0.0.0/0 0.0.0.0/0
860 319K ACCEPT all -- ippp0 * 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 ACCEPT icmp -- eth0 * 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68
0 0 ACCEPT tcp -- eth0 * 0.0.0.0/0 0.0.0.0/0 tcp spt:1194 dpt:1194
0 0 ACCEPT udp -- eth0 * 0.0.0.0/0 0.0.0.0/0 udp spt:1194 dpt:1194
0 0 DROP all -- eth0 * 0.0.0.0/0 0.0.0.0/0
47 13483 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID

Chain FORWARD (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
21700 2545K ACCEPT all -- eth1 ippp0 0.0.0.0/0 0.0.0.0/0
20883 22M ACCEPT all -- ippp0 eth1 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID

Chain OUTPUT (policy DROP 0 packets, 0 bytes)
pkts bytes target prot opt in out source destination
3520 2118K ACCEPT all -- * lo 0.0.0.0/0 0.0.0.0/0
1757 1094K ACCEPT all -- * eth1 0.0.0.0/0 0.0.0.0/0
1163 86217 ACCEPT all -- * ippp0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT icmp -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 ACCEPT udp -- * eth0 0.0.0.0/0 0.0.0.0/0 udp spts:67:68 dpts:67:68
0 0 ACCEPT tcp -- * eth0 0.0.0.0/0 0.0.0.0/0 tcp spt:1194 dpt:1194
0 0 ACCEPT udp -- * eth0 0.0.0.0/0 0.0.0.0/0 udp spt:1194 dpt:1194
46 6304 DROP all -- * eth0 0.0.0.0/0 0.0.0.0/0
0 0 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 state INVALID
[root@lg001 ~]# iptables -t nat -L -vn
Chain PREROUTING (policy ACCEPT 1480 packets, 124K bytes)
pkts bytes target prot opt in out source destination

Chain POSTROUTING (policy ACCEPT 99 packets, 9157 bytes)
pkts bytes target prot opt in out source destination
1252 72493 MASQUERADE all -- * ippp0 0.0.0.0/0 0.0.0.0/0

Chain OUTPUT (policy ACCEPT 242 packets, 24270 bytes)
pkts bytes target prot opt in out source destination

So dass sind meine iptables. du hast auch noch vergessen den Verkehr zuerlaub der durch die angeforert wurde bei mir ist des die Zeile mit state RELATED,ESTABLISHED.

Zur Erklärung eth0 ist bei mir wlan wo nur dhcp und openvpn erlaubt ist. eth1 ist lan und ippp0 ist internet wo alles eingehende gblockt wird.