LINUX.ORG.RU

RAW_SOCKET


0

0

Здравствуйте.

Создаю своими силами TCP соединение, посылаю SYN серверу, получаю ACK, но ОС шлет RST серверу, так как клиент использует RAW SOCKET.

как можно решить проблему?

Спасибо.


> но ОС шлет RST серверу, так как клиент использует RAW SOCKET

А она с тобой не разговаривает?

tailgunner ★★★★★ ()

1) задизейблить локальный TCP 2) написать драйвер который не будет пропускать пакеты которые вы скажите вверх по стеку

больше что-то в голову ничего не приходит

anonymous ()

какая ОС?
если freebsd, то можно сделать sysctl -w net.inet.tcp.blackhole=2
в линуксе наверное придеться ядро патчить

Cosmicman ★★ ()

А если

iptables -A INPUT -j DROP
? Тогда по идее ты через «сырой сокет» будешь получать все пакеты, но TCP-стек ядра их видеть не будет.

Deleted ()

лекарство: iptables -A OUTPUT --tcp-flags RST RST -dport <port> -d <dest> -j DROP

и более красивое: создать сокет на нужном порту и слушать его (listen), чтобы обмануть ядро

Chumka ★★★ ()

Спасибо всем за ответы. Досадно, что приходится эту проблему решать такими путями.

kasha ()
Ответ на: комментарий от Chumka

боюсь в общем случае это работать не будет. например локальный тсп будет слать RST на данные/ACK которые приходят в LISTEN сокет что не обрадует удаленный тсп. хотя на этапе хендшейка работать это будет, да

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