Саботируются ли мои TCP-соединения правительством моей страны?
Я подозреваю, что правительство моей страны каким-то образом уничтожает полученный ACK-пакет по TCP-соединениям.
Когда я пытаюсь установить TCP-соединение с внешним хостом на портах, отличных от 80, квитирование TCP не будет успешным. Я захватил файл pcap (gmail.pcap: http://www.slingfile.com/file/aWXGLLFPwb) и обнаружил, что мой компьютер будет получать ACK после отправки TCP SYN, но вместо ответа с SYN ACK он отправит RST.
Я проверил пакет ACK от внешнего хоста, но он кажется вполне законным. Порядковый номер и все известные мне флаги верны. Может кто-нибудь сказать мне, почему мой компьютер (машина Linux) будет отправлять пакет RST?
2 ответа
Из строки cmd:
openssl s_client -connect serveryourtryingtocontact.com:443
Это должно проверить, если вы можете SSL-соединение с удаленным хостом. Возможно, сделайте Wireshark из этого трафика.
Если у вас нет openssl, то вы можете apt-get install openssl
,
Мы должны определить, где генерируется RST. Это происходит со всеми сайтами SSL? Есть ли у вас прямое подключение к вашему NAT-шлюзу? Ты используешь прокси?
Использование этого метода исключает любые проблемы с вашим стеком SSL.
Хотя иранское правительство, по слухам, время от времени нарушает HTTPS, из предоставленных вами данных просто выглядит как ответный SYN, пакет ACK из 173.194.32.22 прибывает на ваш хост, но никогда не попадает в ваш стек TCP. Стек повторяет отправку SYN через секунду, две секунды, четыре секунды и восемь секунд соответственно - но, очевидно, никогда не видит ответа.
Кажется, что входящий SYN,ACK отфильтрован - у вас нет iptables
правило для TCP-трафика в цепочке INPUT, который имеет REJECT --reject-with tcp-reset
цель случайно?