PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : DNS und IPTABLES



boxa
03.07.02, 14:45
HAllo Experten!

ich habe ein großes Verständnisproblem mit Iptables und DNS.

Zu meiner Konfiguration:
Ich bastel an einem offiziellen Webserver mit Apache, Qmail und Proftp.

Jetzt hab ich das Problem, dass ich nicht so genau weiß was ich in Bezug
auf DNS in meinem Iptables Script freischalten muss. Momentan sieht der DNS Part so aus:

#DNS
#UDP Packete vom DNS akzeptieren
iptables -A INPUT -p udp -s $NAMESERVER_1 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s $NAMESERVER_1 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT

In der Datei /etc/services findet man den Port 42 jeweils mit tcp oder udp Protocol. Der Dienst heißt Nameserver.
Was brauch ich jetzt für meine Zwecke, den Port 53, beide oder 42??

Mit den o.g. Zeilen funktioniert der Server schon ganz gut. Nur die Anmeldung am Proftpd dauert ewig! Vielleicht leigt es ja an der DNS Sache.

Thomas Mitzkat
03.07.02, 14:56
du sagst nicht, wo der dns sitzt
du sagst nicht, wie dein netzwerk überhaupt aussieht.
du sagst nicht, für wenn der apache usw. überhaupt erreichbar sein soll.
ftp hat nix mit dns-port zu tun, weil es über die ports 21 und 22 läuft.

keine hilfe von mir möglich :eek:

boxa
03.07.02, 15:14
Also mein Rechner hat eine offizielle IP Adresse. Den DNS stellt der Provider der Standleitung zur Verfügung. Wer Webserver soll für alle zur Verfügung stehen.

Ich habe die DNS Server des Provider im Server eingetragen.

Berufspenner
03.07.02, 20:53
hi@all

klein Frage abseitz des Themas:
@boxa
Von welchem Anbieter ist die Standleitung(Website)? Privater oder gewerblicher Nutzen?

Das würde mich wegen dem Eigeninteresse mal interesieren.

Harry
03.07.02, 22:15
Hallo,

ganz ähnlich wie bei Deinem qmail-Problem auch hier:

Du benötigst auf Deinem Server eine DNS-Auflösung, bedienst Dich also dabei der beiden angegebenen externen Nameserver (Du selbst betreibst scheinbar keinen DNS).

Dein Resolver muss also DNS-Anfragen raussenden können; per Default über UDP auf den Port 53 eines DNS-Servers -> OUTPUT-Regel. Deine Anfrage selbst wird von einem nicht-privilegierten Port versendet (>1023). Der Server möchte Dir auch gerne antworten und zwar vom Port 53 über UDP auf Deinen Highport -> INPUT-Regel.

53/tcp wird zumeist nur in der Kommunikation zwischen zwei DNS-Servern genutzt und zwar dort zum Zonentransfer oder Fallback. Damit hat Dein Host also nichts zu tun.

Der Port 42 hat mit DNS überhaupt nix am Hut, ist für Dich also auch uninteressant.

Desweiteren:
Wenn Du schon mit dynamischen Regeln arbeitest, dann konfiguriere "... -m state --state ESTABLISHED,RELATED -j ACCEPT", damit beispielsweise auch ICMP-Pakete den Weg zu Dir oder zum Partner finden, die während der DNS-Anfrage möglicherweise von einem Router oder sonstigem generiert werden.

Harry

nikolei
09.07.02, 11:37
hallo,
fuer eine dns abfrage reicht normalerweise udp port 53. andere ports sind unueblich. tcp wird normalerweise nur bei benacherichtigungen, zonentransfers u.ae. zwischen dns servern verwendet. nur selten findet es bei neiner normalen
dns abfrage gebrauch. es sei denn, das udp packet ist fuer die zu uebermittelnde nachricht zu klein. hab ich aber noch nicdht erlebt. deshalb kannst du tcp ganz weglassen. es sei denn, du willst auf nummer sicher gehen.

die abfrage des dns servers geschieht ja folgendermassen:
(1) client (udp port > 1034) --> nameserver (udp port 53)
(2) nameserver (udp port 53) --> client (udp port > 1023)

damit ergibt sich fuer iptable und deine beiden nameserver folgendes bild:

iptables -A OUTPUT -p udp -d $NAMESERVER_1 --sport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp -d $NAMESERVER_2 --sport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER_1 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT

niko

boxa
09.07.02, 12:39
vielen dank für deine antwort. jetzt hab ich es verstanden

boxa
10.07.02, 09:48
da stimmt doch was nicht. In der Input Chain brauch iuch doch dport anstatt sport, oder??

Jinto
10.07.02, 09:53
In der Input Chain brauch ich doch dport anstatt sport, oder?
Nein.

nikolei
10.07.02, 10:09
sorry, aber gut aufgepasst, muss natuelich nen dport rein:

iptables -A OUTPUT -p udp -d $NAMESERVER_1 --dport 53 -m state --state NEW -j ACCEPT
iptables -A OUTPUT -p udp -d $NAMESERVER_2 --dport 53 -m state --state NEW -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER_1 --sport 53 -m state --state ESTABLISHED -j ACCEPT
iptables -A INPUT -p udp -s $NAMESERVER_2 --sport 53 -m state --state ESTABLISHED -j ACCEPT



niko

boxa
10.07.02, 10:20
ich habe außerdem festgestellt, dass im Outputteil ESTABLISHED nicht ausreicht. Ich habe dann den Zustand NEW ergänzt und jetzt läufts. Verstehen kann ich das nicht