PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : iptables Problem mit der Syntax ethx



OliverFfm
18.04.2007, 12:13
Hallo,

ich habe ein Script für meine eigenen iptables rules geschrieben.
Das Startscript funktioniert wunderbar. Die Regeln werden geladen.
Aber sie funktionieren nicht so wie ich es mir dachte.

Ich habe einen Router, der gleichzeitig die Firewall beinhaltet.
Das Betriebssystem ist Suse Linux 10.2

Mein LAN ist das Netz 192.168.2.0/24
Mein externes Netz ist 192.168.1.0/24

Ich simuliere im Endeffekt ein Firmennetzwerk, dass einen Anschluss an ein externes Netz hat

Der Router hat 2 Interfaces:
192.168.1.254
192.168.2.254

Meine Routingtabelle baut sich wie folgt auf:
Ziel................Gateway.............Netzmaske
192.168.2.0....192.168.2.254....255.255.255.255... .eth0
192.168.1.0....192.168.1.254....255.255.255.255... .eth1

Ich habe kein DNS-Server und keinen Standard-Gateway, da ich das System nicht im Internet laufen habe. Ich simuliere nur.

2 Hosts sind im Einsatz:
192.168.1.5.......externe Netz
192.168.2.10......LAN

Nun aber zu dem eigentlichen Problem
Ich zeige euch erstmal einen Auszug aus meinem Script:

modprobe ip_tables
modprobe ip_conntrack
modprobe ip_conntrack_ftp

iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP

INTERFACE="eth0"
EXT_INTERFACE="eth1"
IPADDR="192.168.2.254"
EXT_IPADDR="192.168.1.254"

#Regel1
#für alle ausgehenden Verbindungen Forward erlauben; eingehende nur bekannte Verbindungen erlauben
iptables -A FORWARD -o $EXT_INTERFACE -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT
iptables -A FORWARD -i $INTERFACE -m state --state ESTABLISHED,RELATED,NEW -j ACCEPT

'Regel2
#SSH aus dem LAN Verbindung zu einer SSH erlauben, reinkommend nur nach Versuch des Verbindungsaufbau des internen Netzes
iptables -A FORWARD -i $INTERFACE -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -o $EXT_INTERFACE -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT

#Regel3
#telnet
iptables -A INPUT -i $EXT_INTERFACE -p tcp --dport 23 -m state --state ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o $EXT_INTERFACE -p tcp --sport 23 -m state --state NEW,ESTABLISHED -j ACCEPT

#Regel4
#icmp
iptables -A INPUT -p icmp -m state --state NEW -j REJECT --reject-with icmp-net-prohibited

Meine Probleme sind nun folgende:
zu Regel 1

Ich möchte den Befehl nmap -sS -n -r -vv -d -P0 192.168.x.x ausführen
Mach ich das aus dem LAN zu 192.168.1.5 funktioniert es. Anders herum aber auch. Will das aber nicht. Also dachte ich mir ich setze state für das in-interface auf ESTABLISH,RELATED. Und schon kann der andere Rechner nicht mehr auf die Syn-Pakete antworten. Wie realisiere ich das, dass es doch geht? Meine jetzigen beiden Regeln sind das gleiche als wenn ich FORWARD ohne Spezifiszierung des Interfaces angebe. Ich will aber rausgehend erlauben, dass ich auch eine neue Verbindung aufbauen darf, aber reinkommend nur bekannte Verbinungen erlaubt sind.

zu Regel 2:

ist das gleiche wie 1 nur ein spezieller Fall für SSH

zu Regel 3:

Ist Regel 3 richtig, wenn ich sage ich darf eine Verbindung von meinem Router ins externe Netz zu Telnet aufbauen, aber der Host aus dem externen Netz darf nur bei einer bekannten Verbindung kommunizieren? Im Endeffekt sende ich doch von dem externen Interface (eth1) an einen Host und bekomme über die externe Schnittstelle (eth1) eine Antwort

zu Regel 4:

Ich habe gesagt, wenn mich ein Host anpingt, dann verwerfe das Paket und sende die angegebene ICMP-Fehlermeldung.
Mache ich das von dem Rechner 192.168.2.10 (LAN) funktioniert es. ping 192.168.1.254
Mache ich das von dem Rechner 192.168.1.5 bekomme ich diese icmp Nachricht nicht. ping 192.168.2.254
Wieso?

Ich dachte mir, wenn man kein Interface für INPUT,OUTPU oder FORWARD benennt, gilt es für alle Interfaces am Router. Also für eth0 und eth1.
Ist das richtig? Oder muß ich immer ein Interface angeben, da sonst als default eth0 verwendet wird?
Wenn ich FORWARD als Chain verwende welches Interface muß ich für -o verwenden, wenn ich vom LAN ins externe Netz möchte? eth0 oder eth1? Das verwirrt mich etwas

Vielen Dank, dass ihr euch die Mühe schon gemacht habt und diesen Test durchzulesen

Gruß Oliver