DNS-Server mit mehreren Interfaces ohne UDP

theton

theton

Bitmuncher
Da ich keinen besseren Platz gefunden habe, packe ich mein Problem einfach mal hier rein. Uns fehlt definitiv ein Bereich für "Sonstige Server-Applikationen". ;)

Problem ist folgendes: Ich habe 2 DNS-Server am laufen ns1 und ns2 (beide BIND 9.3.2). Einer dieser Server hat nur ein Netzwerk-Interface und so reicht es, wenn ich dort nur TCP in der Firewall für Port 53 freigebe und er funktioniert einwandfrei. Um eine bessere Anbindung an's LAN zu ermöglichen, hat ns2 nun eine zweite Netzwerkkarte bekommen. Dadurch benötigt der DNS-Server jetzt (laut RFC 1035) UDP und TCP um korrekt zu funktionieren. Habe das auch ausprobiert und es ist tatsächlich so. Mache ich UDP in der Firewall dicht, bekomme ich bei anfragen an den DNS-Server nur Timeouts.

Ich möchte aber nur sehr ungern auf einem Port UDP zulassen und suche daher nun nach einem Weg, mit dem ich trotz mehrerer Netzwerk-Interfaces im Server nur TCP nach aussen freigeben muss. Sollte also jemand eine Idee oder einen Ansatzpunkt haben, immer her damit. :D
 
naja, dns abfragen sind eben nun mal immer udp pakete und IMHO nur der zonentransfer erfolgt über tcp. aber eigentlich müsste es gehen wenn man rfc1034 glauben darf:
In the Internet, queries are carried in UDP datagrams or over
TCP connections
.
man müsste also im speziellen BIND dazu bewegen auch auf TCP zu hören.

unter http://seclists.org/security-basics/2002/Nov/0045.html hab ich folgendes gefunden:
Also, ALL versions of BIND use TCP for queries in some cases. The
original query is tried using UDP. If the response is longer than
the allocated buffer, the resolver will retry the query using a TCP
connection. If you block access to TCP port 53 as suggested above,
you may find that some things don't work.
eine frage stellt sich mir: warum willst du tcp zulassen und kein udp? aus security-gründen kann es ja nicht sein eigentlich. oder? das risiko eines offenen udp-ports im vergleich zu einenm tcp-port sollte nicht höher sein.
 
Das Risiko ist aber höher, wenn auch nur minimal, da UDP-Flooder im Netz weitaus verbreiteter sind als TCP-Flooder. Ich möchte einfach eine Überlastung des Services durch UDP-Floods verhindern. Script-Kiddies fühlen sich von offenen UDP-Ports ja regelrecht angezogen. So zumindest meine bisherige Erfahrung, wenn ich mal irgendwo UDP offengelassen habe.
DNS funktioniert mit TCP und ohne UDP einwandfrei, solange der Server nur ein Netzwerk-Interface hat. UDP kommt (seltsamerweise) erst in's Spiel sobald mehrere Interfaces im Server vorhanden sind. Für ns1 reicht es daher nur TCP in der Firewall freizugeben, was jetzt bei ns2 durch die zweite Netzwerkkarte nicht mehr möglich ist. Auch ein explizites Setzen von 'listen-on' brachte keine Abhilfe und ich finde auch sonst irgendwie nichts, womit ich den UDP-Kram unterbinden kann. Ich müsste es irgendwie schaffen die Verfügbarkeitsinformationen unnötig zu machen.
rfc1035 schrieb:
The purpose of WKS RRs is to provide availability information for
servers for TCP and UDP. If a server supports both TCP and UDP, or has
multiple Internet addresses, then multiple WKS RRs are used.
Bei ns1 werden diese Infos ja offenbar auch nicht gebraucht. Mir stellt sich halt die Frage, warum die gebraucht werden sobald mehrere Interfaces vorhanden sind, aber nicht bei einem einzelnen und ob bzw. wie man das umgehen kann.
 
hmmm...lässt sich bind dann mit einem virtuellen interface evtl. austricksen?
was würde das auskommentieren von
domain 53/udp # Domain Name Server
in der /etc/services bewirken? nur so ein spontan-dummer gedanke :sly:
 

Ähnliche Themen

DNS, DNS-Crypt und Firewall

iptables - default policy - Server macht dicht

OpenVPN - Server kann clients nicht erreichen.

Problem mit Squid-Proxy Transparent + ASA 5505

DNS Server with IPv6 support

Zurück
Oben