Am Donnerstag, 22. Mai 2003 14:08 schrieb guenther.mair@energis.it: Hallo günther! Danke für die schnelle Antwort. Ich werde dein Skript jetzt einmal testen. Wollte auf die conntarck zunächst verzichten (möglichst wenig einbauen). Merkwürdig ist wohl das Verhalten von dem Test-Skript. Ich habe zwar ein ganz gutes Buch hier von M&T Jahr 2002, aber netfilter scheint doch komplizierter zu sein als man zunächst annimt. Nochmals danke Bis bald luigi
Hallo!
Ich bin zwar kein Experte in Sachen DHCP und habe auch nicht so schnell die Möglichkeit etwas zu testen, aber grundsätzlich kann ich folgendes Sagen:
- mangle/nat Tabellen sind üblicherweise nur dazu da um
"Sonderfälle" zu handhaben und IP-Header im Ein-/Ausgang zu verändern; sie dürften keinen Einfluß auf DHCP nehmen
- X-Windows Desktop-Manager (wie viele andere
Client/Server-Anwendungen) benutzen Unix- oder TCP/IP-Sockets um mit anderen Anwendungen zu kommunizieren; das macht die Verwendung von "X-Clients" (oder nennen wir sie zum besseren Verständnis "Network Clients" oder "Thin Clients") über xdmcp erst möglich
- wenn die lokale Anmeldung nach Einsatz der FW-Tools nicht
läuft, würde das bedeueten, dass dies bei SuSE über eine öffentliche IP-Adresse erfolgt (loopback ist ja frei).... Sinn und Unsinn sei dahingestellt; es gibt bei SuSE allerdings irgendwo eine Konfigurationsdatei wo dies eingestellt wird..... /etc/sysconfig/xdm oder /etc/X11/xdm oder irgendsowas.... bin mir nicht mehr 100%ig sicher in der Sache (versuch evtl. kurz ein "lsof -i" dann siehst du welche Anwendung sich lokal an welchen Port bindet)
Im Anhang die abgekürzte Version des gleichen Skripts unter Verwendung von stateful connections. Ich habe das mit DHCP noch nicht getestet, aber denke schon, dass das conntrack-Modul die Sachen erkennt. Nimm bei Nicht-Funktionieren evtl. die state-Befehle weg, im Log sollte sich schon einiges finden. Ausserdem ist es vielleicht nützlich (und korrekter) die LOG-Befehle einzuschränken sonst ist dein Server bei viel Verkehr womöglich innerhalb ein paar Stunden mit einem großen Logfile zugestopft.
Grüße,
Günther
(See attached file: fwtest.txt)
Günther Mair Internet Engineer
ENERGIS Italia GmbH Pfarrhofstrasse 60/A I-39100 Bozen (BZ) Tel.: +39 0471 254000 Fax: +39 0471 251617 Email: guenther.mair@energis.it Web: http://www.energis.it
luigi <in3dzz@gmx.de> An: liste lugbz
lugbz-list@lugbz.org Gesendet von: Kopie: lugbz-list-admin Thema: [Lugbz-list] iptables @lugbz.org
22.05.2003 11:44 Bitte antworten an lugbz-list
Hallo Liste! Kämpfe gerade mit iptables. Dabei habe ich zunächste versucht dhcp für das LAN frei zu bekommen. ref: SuSE-8.1, iptables 1.2.7a-17. Hier das Skript
#!/bin/bash #/root/fw-ipt/fw-start # 0.1 - 14.5.2003
# Dieses Skript entfernt alle Regeln, Ketten und auch die Module. # Es funktioniert bestimmt. /root/fw-ipt/fw-stop
#################################Module laden########################################################### modprobe ip_tables modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe ipt_state modprobe iptable_nat modprobe ipt_MASQUERADE echo "fw-start -- Module geladen."
################################# IPT=/usr/sbin/iptables
LAN_INTERFACE="eth0" # Interface zum LAN LOOPBACK_INTERFACE="lo" # Loopback-Interface
LAN_IPADDR="192.168.1.1" # Adresse des Lan-Interfaces LAN_ADDRESSES="192.168.1.0/24" # LAN-Bereich" BROADCAST_SRC="0.0.0.0" # Broadcast-Absender BROADCAST_DEST="255.255.255.255" # Broadcast-Empfänger
################################################################# #######################################
$IPT -P INPUT DROP $IPT -P OUTPUT DROP $IPT -P FORWARD DROP
$IPT -t nat -P PREROUTING DROP $IPT -t nat -P OUTPUT ACCEPT $IPT -t nat -P POSTROUTING ACCEPT
$IPT -t mangle -P PREROUTING DROP $IPT -t mangle -P OUTPUT ACCEPT
#Loopback freischalten $IPT -A INPUT -i lo -j ACCEPT $IPT -A OUTPUT -o lo -j ACCEPT
################################################################# #######################################
# DHCP
#source-address 0.0.0.0.68 dest-address 255.255.255.255.67 #dhcp-discover und dhcp-request benutzen das gleiche Muster $IPT -A INPUT -i $LAN_INTERFACE -p udp -s $BROADCAST_SRC --sport 68 -d $BROADCAST_DEST --dport 67 -j ACCEPT
#source-address 192.168.1.1.67 dest-address 192.168.1.199.68 #dhcp-offer und dhcp-ack benutzen das gleiche Muster $IPT -A OUTPUT -o $LAN_INTERFACE -p udp -s $LAN_IPADDR --sport 67 -d $LAN_ADDRESSES --dport 68 -j ACCEPT
#source-address 192.168.1.199.68 dest-address 192.168.1.1.67 #Freigeben oder erneuern benutzen diese Muster $IPT -A INPUT -i $LAN_INTERFACE -p udp -s $LAN_ADDRESSES --sport 68 -d $LAN_IPADDR --dport 67 -j ACCEPT
$IPT -A OUTPUT -o $LAN_INTERFACE -j LOG $IPT -A INPUT -i $LAN_INTERFACE -j LOG
exit 0
Wenn ich nat/POSTROUTING,OUTPUT und mangle/OUTPUT nicht auf ACCEPT setze, dann kann ich vom W98-Client (ausführen --> winipcgf --> aktualisieren) die Adresse nicht mehr aktualisieren. Ein Überprüfen der /var/log/messages sagt dann lintsz01 dhcpd: DHCPACK on 192.168.1.199 to 00:a0:24:ef:94:a1 via eth0 lintsz01 dhcpd: send_packet: Operation not permitted
Ein Überwachen des Interfaces (tcpdump -i eth0 "udp[2:2] = 67 or udp[2:2] = 68] zeigt, dass eine Anfrage zwar ankommt, aber keine Antwort abgeht.
Und hier die Fragen
- Warum muß ich nat/POSTROUTING,OUTPUT und mangle/OUTPUT auf
ACCEPT stellen? 2. Damit dhcp funktioniert sollte ich also entsprechende Regeln auch für diese drei Ketten anfügen? Wie kann sowas aussehen? 3. Diese Einstellungen verhindern auch die Anmeldungen am KDE bzw., wenn KDE bereits aktiv ist kann man keine neue Anwendung aufrufen. Warum?
Danke für die Hilfe und bitte nicht laut lachen..... Luigi
http://www.lugbz.org/mailman/listinfo/lugbz-list LUGBZ is pcn.it-powered