[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables und DHCP




Christian Schmidt schrieb:
Marco Ehrentreich schrieb/wrote:


Ich hatte schon seit geraumer Zeit das Problem, dass mein DHCP-Server mit dynamischer DNS-Unterstüzung zwar sauber IPs vergibt und die Namenseinträge im DNS macht, aber scheinbar nichts geschieht, wenn ein Client aus dem Netz geht und eigentlich seine Lease wieder freigeben müsste. Den Grund hab ich jetzt glaub entdeckt: Die böse (von mir) falsch konfigurierte Firewall (iptables) Wenn ich an einem Windows-Client manuell mit "ipconfig /release" die IP freigebe, sehe ich anschließend in meiner mysql-Datenbank (ULOGD), dass die Firewall zwei UDP-Pakte der Art

 ip 0.0.0.0 sport 68 > ip 255.255.255.255 dport 67

blockt. Weiß jemand, ob das was mit den DHCP-Release befehlen zu tun haben könnte?


Ja. Hat es auch.
Der DHCP-Client fragt erstmal per Broadcast, ob jemand da ist, der ihm
eine IP-Konfiguration zukommen laesst (DHCPDISCOVER).
Das ganze sollte auch in /var/log/daemon.log auftauchen.


Dachte ich eigentlich auch, aber warum funktioniert mein DHCP dann überhaupt? Es gibt doch keinen Grund, dass die erste DHCPDISCOVER-Anfrage durchgelassen wird und die zweite geblockt oder probiert ein DHCP-Client verschiedene Anfragen?

Diese Pakete sind mir früher auch schon mal aufgefallen, aber ich dachte eigentlich, dass die mit der Regel

$IPTABLES -A UDP_INT -p udp -s 0.0.0.0 --sport 68 -d 255.255.255.255 --dport 67 -j ACCEPT

durchgelassen werden sollten!


Steht die Regel auch an der richtigen Stelle?
Wenn das Paket schon auf eine vorher definierte Regel "matcht", dann
kommt diese gar nicht meh zum Tragen.

Du hast hoffentlich "UDP_INT" auch korrekt als Chain definiert?

Gruss,
Christian

Also das sind meine Regeln in der UDP_INT Chain. In dieser Chain werden die UDP-Pakete von Intern behandelt (der Übersicht halber)

zur Erklärung:

$INT_NET		die Netzwerkadresse meines LANs
$INT_BCAST		die Broadcastadresse des LANs
$INT_IP			die interne IP meines DHCP-Servers


$IPTABLES -A UDP_INT -p udp -s $INT_NET -d $INT_BCAST -m multiport --dports 67,137,138 -j ACCEPT

$IPTABLES -A UDP_INT -p udp -s $INT_NET -d $INT_IP -m multiport --dport 67,69 -j ACCEPT

$IPTABLES -A UDP_INT -p udp -s 0.0.0.0 --sport 68 -d 255.255.255.255 --dport 67 -j ACCEPT

$IPTABLES -A UDP_INT -p udp -s $INT_NET --sport 68 -d 255.255.255.255 --dport 67 -j ACCEPT

Also für mich sieht's richtig aus, aber wahrscheinlich hab ich's schon viel zu oft gesehen. Vielleicht kommt ja jemand von Euch auf den Fehler?!?

Danke!

Marco


--
Christian Schmidt | Germany | christian.schmidt@chemie.uni-hamburg.de
PGP Key ID: 0x28266F2C







Reply to: