LINUX.ORG.RU

Как повлиять на локальный стек TCP/IP, чтобы он забыл про установленное соединение, а приложение увидело закрывшееся соединение?


0

2

Есть коннект с локального на удалённый ip:port. Хочется устроить локальному приложению ситуацию завершения соединения с той стороны. То есть хочется, чтобы локальное приложение подумало, что та сторона завершила (FIN, ACK FIN, ACK) или грубо оборвала соединение (RST). Приложение всё равно (наверное) смотрит в дескриптор сокета и получит эту новость как код возврата -1 из функции read() - так что способ закрытия соединения неважен.

То есть хочется как-нибудь повлиять на локальный стек TCP/IP, чтобы он забыл про существующее соединение.

(пускай состояние удалённого стека TCP нам до лампочки - он просто получит обычный пакет RST от нашего стека при попытке дальнейших коммуникаций, т.к. наш стек уже про это соединение не будет знать).

★☆

Последнее исправление: kiverattes (всего исправлений: 1)

Выдернуть сетевой шнур/ifconfig eth0 down. Или нужно делать так, чтобы все другие локальные приложения не теряли сеть?

amomymous ★★★
()
Ответ на: комментарий от amomymous

Шнур выдёргивай-не выдёргивай, TCP-коннекты от этого не попадают.

Да, нужно другие соединение оставить в покое.

kiverattes ★☆
() автор топика

Поищи lankiller или любую другую rst пушку. Их полно на security-сайтах.

Svoloch ★★★
()

Perl-скрипт для закрытия TCP-соединения (IPv4/IPv6), независимо от его состояния (полуоткрытые, установлено, ожидание или закрытие состоянии):
http://sourceforge.net/projects/killcx/

DiMoN ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.