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

Re: kleine verstaendisfrage zu iptables



Hallo,

Andreas Pakulat <apaku@gmx.de>:

>> Im Übrigen gibt es durchaus SSH-Clients, die einen Sourceport < 1024
>> verwenden, z.B. weil sie setuid root laufen.
>
>Mal aus Interesse: Aus welchem Grund laeuft ein ssh client setuid
>root?

Um die .rhosts Semantik von rlogin/rsh/rcp nachbilden zu können.

Diese besagt, dass sich User unter gleichem Benutzernamen auf der
Zielmaschine ohne Passwort einloggen können, wenn die Zielmaschine der
Quellmaschine entsprechend vertraut. Das setzt authentische
Informationen über den Benutzernamen auf der Quellmaschine
voraus. Verbindungen von Quellports >= 1024 sind dazu nicht geeignet,
da prinzipiell jeder Benutzer einem modifizierten rlogin Client mit
gefaktem Benutzernamen selber compilieren könnte.

>Und selbst dann denke ich wird der client eher nicht auf nem
>Port < 1024 die Verbindung aufmachen, solange man ihn nicht dazu
>zwingt (geht das ueberhaupt??)

Programme, die unter root laufen, bekommen vom Betriebssystem per
Default einen Source Port <1024, sofern sie nicht einen anderen
explizit anfordern.

>> Generell ist die Angabe
>> eines Sourceports in einer TCP-Regel fast immer sinnfrei.
>
>Wieso dass? Wenn ich z.B. verhindern moechte das bestimmte Dienste
>nach aussen angeboten werden ist der sport ja doch die einzig
>sinnvolle Moeglichkeit bei tcp oder?

Dienste idenzifizieren sich bei TCP immer über den Zielport eines
initialen (SYN) Paketes. Der Quellport hat den Zweck, verschiedene
Verbindungen vom selben Rechner auf den selben Dienst unterscheidbar
zu machen. Wenn Du einen Dienst sperren willst, sperre in der INPUT
Queue SYN Pakete bzw. --state NEW auf den entsprechenden Port.

Die einzige zusätzliche Semantik des Quellports bei TCP besteht in
der Unterscheidung zwischen den privilegierten und nicht privilegierten
Ports (1-1023 bzw. 1024-65535). Diese wird aber mehr und mehr verwässert,
da kaum noch Dienste im Einsatz sind, die diese Unterscheidung zu
Authentifikationszwecken benutzen.

Bei UDP sieht das alles ein bisschen anders aus. Hier wird der Quellport
manchmal zur Unterscheidung des Nutzungsszenarios verwendet, z.B. bei DNS:

Port 53      -> Port 53:  Server-zu-Server Kommunikation
Port >=1024  -> Port 53:  Client-zu-Server Kommunikation

Oder bei bootp (DHCP), wo Clients immer den Port 68 (bootpc) und
Server den Port 67 (bootps) verwenden sollen. Auch hier sollten aber
keine sicherheitskritischen Entscheidungen aufgrund des Quellports
getroffen werden, da er von jedem root gefälscht werden kann.

Gruß, Harald

-- 
Harald Weidner                           hweidner@gmx.net



Reply to: