PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : tcp handshake unterbrechen



derguteweka
28.06.17, 12:13
Moin,

Hatte die Tage den Fall, dass ein client von mir, der zu einem server hin eine tcp Verbindung aufmachen soll, sich sehr eigenartig verhalten hat. Problem war der Server (auf den ich keinen Zugriff habe), aber ich wuerd' das gerne zu Testzwecken hier nochmal mit einem eigenen "kaputten Server" nachstellen.
Auf der Clientseite kam der connect() Aufruf (das connect aus der libc) nicht mehr zurueck.

Das kam anscheinend daher, dass der Client dem Server ein SYN geschickt hat und auf das SYN+ACK gewartet hat; von dem kam aber garnichts mehr zurueck.
So jetzt die Frage: Wie krieg ich's hin, dass auf meinem Rechner irgendwas laeuft, was sich genauso verhaelt: Also einfach auf ein ankommendes SYN hin garnichts macht..?

Gruss
WK

marce
28.06.17, 12:25
in einer beliebigen Programmiersprache einen TCP-Stackl implementieren und laufen lassen?

alternnativ auch per Firewall. Z.B. https://unix.stackexchange.com/questions/185213/simple-tcp-server-listening-on-a-port-but-not-returning-syn-ack (via Google)

florian0285
28.06.17, 13:09
http://packeth.sourceforge.net/packeth/Home.html

Gibts auch in diversen Repos.

Das hört sich nach Smurf an... dafür findest im Netz diversen C-Code.

Nachtrag: Wenn ich die Beschreibung wiederholt lese versteh ich sie immer anders. Also der Client schickt ein SYN, erhält die Antwort vom Server und antwortet dann nicht mehr? Dann wär das Smurf und ne immernoch gängige (D)DOS Attacke.

marce
28.06.17, 13:45
er will aber nichts senden, sondern auf ein gesendetes unvollständig antworten.

Damit dürfte alles wegfallen, was einen kompletten TCP-Stack implementiert oder verwendet.

derguteweka
28.06.17, 14:05
Moin,

Merci, der Link von marce zu stackexchange hat weitergeholfen. Genau das brauch' ich auch. Und laut wireshark sieht der Aufbauversuch der Verbindung nach:


iptables -A INPUT -p tcp --destination-port 52379 -j DROP

schonmal genauso aus, wie mit 'nem richtigen kaputten server ;-). Also nur der SYN vom Client zum Server (und danach noch ein paar verzweifelte Widerholungen...). aber vom Server kommt nie was zurueck.

Gruss
WK

florian0285
28.06.17, 14:36
Ja dann hab ich das genau anders herum verstanden.

Vielleicht mal den Admin anschreiben. Könnte ja ggf den selben iptables Befehl entdeckt und eingehakt haben... o. ä...