BlogBlog ÜbersichtjailscriptportsoptFreeBSDLinksThermoskanne

Eine TCP-Verbindung trennen

Manchmal möchte man aus gewissen Gründen eine TCP-Verbindung trennen, zum Beispiel weil eine SSH oder FTP-Sitzung nicht sauber beendet worden ist. Dazu muss man zuerst herausfinden, welche Verbindung man kappen möchte. Dies findet man mit fstat auf OpenBSD oder sockstat -c auf FreeBSD heraus. Um die Verbindung zu beenden, braucht man die IP-Adresse und den TCP-Port vom Absender und dem Zielrechner.

Folgendermassen wird dann mit tcpdrop(8) eine Verbindung getrennt:

# tcpdrop <Lokale IP-Adresse> <Lokaler TCP-Port> <IP-Adresse des Benutzers> <TCP-Port>

Möchte man nun auf FreeBSD die SSH-Verbindung vom test-Benutzer trennen, muss man zuerst die benötigten Daten herausfinden und kann danach die Verbindung trennen:

# sockstat -c | grep sshd
test sshd 51960 3 tcp4 10.0.0.2:22 10.0.0.155:52711
# tcpdrop 10.0.0.2 22 10.0.0.155 52711

Auf OpenBSD findet man die benötigten Daten wie folgt:

# fstat | grep 'sshd.*internet.*<--'
test sshd 19075 5* internet stream tcp 0xd694bc84 10.0.0.1:22 <-- 10.0.0.155:53325

tcpdrop befindet sich sowohl in FreeBSD als auch in OpenBSD im Basissystem.

 Permalink