[linux-l] ftp lahmt

Peter Ross Peter.Ross at alumni.tu-berlin.de
Mo Nov 26 00:26:03 CET 2007


On Sun, 25 Nov 2007, Mike Dornberger wrote:

> On Sun, Nov 25, 2007 at 04:55:25PM +1100, Peter Ross wrote:
> 
> > Aber oft reicht es, wenn der Client bei Verbindungsaufbau via ICMP ein 
> > Reject meldet ("ich habe keinen identd") und der Server ists zufrieden.
> 
> Sagt die entsprechende RFC nicht eigentlich, da hat ein TCP-Reset zu kommen,
> wenn auf dem (TCP-)Port nichts läuft? Jedenfalls ist das daß, was in
> entsprechenden Howtos udgl. gesagt wird: iptables -A INPUT -p tcp --dport
> ident -j REJECT --reject-with tcp-reset

Warum das denn?

TCP-Resets werden sinnvollerweise _während_ einer offenen TCP-Verbindung 
benutzt, um der anderen Seite Schwierigkeiten (wie z.B. 
Networkstack-Überlauf, Rekonfiguration) mitzuteilen, um evt. eine neue 
Verbindung aufzubauen, so daß weiterhin ein verläßlicher Datentransfer 
gesichert werden kann.

Ein TCP-reset ist Teil einer TCP-verbindung, d.h. man antwortet auf 
TCP-Ebene.

Wenn aber kein Daemon läuft, sollte gar keine TCP-Verbindung aufgebaut 
werden, deshalb eine Antwort auf ICMP-Ebene.

Deine Antwort hat mich überrascht, deshalb habe ich gegooglet.

http://pages.cpsc.ucalgary.ca/~carey/papers/2005/TCP-Resets.pdf

stellt fest, daß viele Verbindungen nicht mehr TCP-Standards folgen, z.B. 
viele HTTP-Verbindungen sind fehlerhaft implementiert und benutzen 
TCP-Resets sinnentstellend.

Das Howto dürfte auch falsch sein, IMHO.

Ich sehe das gerade sogar in der iptables-Manpage.. Grrrh.

"The option tcp-reset can be used on rules which only match the TCP 
protocol: this causes a TCP RST packet to be sent back.  This is mainly 
useful for blocking ident (113/tcp) probes which frequently occur when 
sending mail to broken mail hosts (which won't accept your mail 
otherwise)."

Keine Ahnung, welcher Mail-Server so kaputt ist, daß nicht mal ein ICMP 
reicht:-( Due Idee, darauf mit noch einer RFC-Verletzung zu antworten, ist 
allkerdsings sehr bizarr.

Anyway, FreeBSDs inetd stellt einen internen auth (identd)-Service bereit, 
mit Fake-ID-Support, um einen Anfrager happy zu machen. Bei linux finde 
ich gerade keine Entsprechung.

Man muß leider feststellen, daß Linux einige Netzwerkprobleme bereitet, 
teils durch fehlerhafte Implementationen im Kernel (z.B. Antworten auf 
ARP-Requests in ein Netzwerk, in dem das betreffende Interface gar nicht 
liegt), teils durch fehlerhafte Implementation auf Konfigurationsebene.

netfilter ist sehr mächtig - so mächtig, daß man da auch viele Fehler 
machen kann:-(

Es grüßt
Peter


Mehr Informationen über die Mailingliste linux-l