Heimnetzwerke - WIFI, LAN, Router und Co 16.472 Themen, 80.546 Beiträge

Ports für DNS Auflösung ? (Services.exe)

PandoraX / 9 Antworten / Flachansicht Nickles

Hi ho,

ich habe ein Problem, daß mich noch in den Wahnsinn treibt.

Seit kurzem habe ich mir eine Firewall installiert (Tiny Firewall). Ich habe versucht alles so gut wie es geht einzuschränken, aber aus der services.exe (ich habe w2k) werde ich nicht ganz schlau.

Ich brauche diese Datei nur um DNS Auflösungen durchzuführen (Port 53, soweit ich weiß). Also habe ich die Regel eingestellt, daß dieses Programm alles über Port 53 machen darf (für incomming, als auch outgoing). Für simple DNS lookups müßte das doch reichen, oder ?

Hatte ich zumindest gedacht. Er sendet auf Port 53 was raus (OK darf er ja), aber der Nameserver sendet auf irgendeinem Port (1000 - 3000 ungefähr) was zurück.

Jetzt endlich die Frage: Ist es richtig, daß die Nameserver sich den Antwortsports selber aussuchen ? (Kann ich mir nicht vorstellen, denn dann müsste ich alle incoming Ports erlauben, was nicht so prickelnd ist)

Wer hat dieses Problem auch schon gehabt, bzw. eine Lösung dafür.

Gruß
PandoraX

bei Antwort benachrichtigen
xafford PandoraX „Dank dir für die antwort, ich habe mir sowas schon fast gedacht, wollte es aber...“
Optionen

hm...ich glaube du solltest dir mal ein paar artikel über protokolle durchlesen, du scheinst nämlich noch einen grundlegenden aber verbreiteten denkfehler zu machen. ports sind irgendwie immer dynamisch und beliebig. es gibt nur der einfachheit halber die vereinbarung, daß bestimmte protokolle kontakt über bestimmte ports aufnehmen, sie können aber auch beliebige andere ports belegen, nur weiß halt dann der client nicht, auf welchen port er kontaktieren muss. aber genausogut könnte der dns-server auf port 5300 abhören. außerdem findet nur die kontaktaufnahme auf dem port statt, nach dem ACK wird auch vom server aus auf einem freien port weiter kommuniziert. mal ein beispiel:
dein rechner nimmt kontakt mit nem webserver auf. er startet eine verbindungsanfrage von port xxxx auf port 80 des servers, outbound traffic (das heißt ausgehender verkehr) von deinem rechner auf die ip des servers muß in der firewall erlaubt sein.
auf dem http-server geht die anfrage ein, inbound traffic auf dem dns (eingehender verkehr) von deiner ip aus muß auf dem dns erlaubt sein. der server schaut welche verbindungen er schon offen hat und sucht sich nen freien unprevelegierten port (sprich einen port über 1023) den er für die verbindung nutzen will, schickt das angebot des ports zu (SYN-ACK) dir. die firewall hat entweder inbound vom server schon als regel zulassen in der tabelle, oder sieht daß es die antwort auf eine intern abgesendete anfrage ist und lässt die verbindung von port yyyy, den der server angeboten hat, zu port xxxx bei dir zu, was dein client nochmal per ACK bestätigt. von nun an erfolgt der datenaustausch von xxxx nach yyyy. ein neuer socket ist erstellt. das ganze dient dazu den port 80 des http-servers wieder frei zu machen, um auf neue verbindungen zu lauschen, da er ansonsten durch den traffic mit dir blockiert wäre für neue verbindungsversuche anderer clients...das ganze öffnet natürlich ein paar lücken die für nette attacken (SYN_FLOOD, IP_SPOOF) genutzt werden können.
noch ein netter ms-bug...wenn du nun im internet surfst und eine verbindung zu einem webserver hast, dabei einen netstat -a durchführst und es analysierst wird dir auffallen, daß die verbindung von deinem port xxxx an port 80 des servers angezeigt wird, und zwar permanent. das ist aber falsch...ist ein alter ms-bug im ip-stack, der nie behoben wurde. es wird immer nur der ursprungsport angezeigt, was auch zu dem verbreiteten irrtum führt, daß der gesamte traffic des servers auf dem 80er port stattfindet....
so...genug getippt..ich hoffe du kannst damit was anfangen...

Pauschalurteile sind immer falsch!!!
bei Antwort benachrichtigen