Apakah koneksi TCP saya disabotase oleh pemerintah negara saya?

14

Saya curiga bahwa pemerintah negara saya menghancurkan paket ACK yang diterima pada koneksi TCP, entah bagaimana.

Ketika saya mencoba membuat koneksi TCP ke host luar di port selain 80 handshake TCP tidak akan berhasil. Saya menangkap file pcap (gmail.pcap: http://www.slingfile.com/file/aWXGLLFPwb ) dan saya mengetahui bahwa komputer saya akan menerima ACK setelah mengirim TCP SYN tetapi alih-alih membalas dengan SYN ACK itu akan mengirimnya sebuah RST.

Saya memeriksa paket ACK dari host luar, tetapi tampaknya sepenuhnya sah. Nomor urut dan semua bendera yang saya ketahui, sudah benar. Adakah yang bisa memberitahu saya mengapa komputer saya (mesin linux) akan mengirim paket RST?

tangkapan layar pcap

Mohammad
sumber
Bolehkah kami menanyakan negara mana?
Kev
Saya sengaja tidak menyebutkannya. Tapi sekarang setelah Anda bertanya, saya tidak bisa memikirkan alasan mengapa tidak memberi tahu. Ini adalah salah satu masalah saya sehari-hari di Iran.
Mohammad
Apakah tangkapan diambil dari mesin Anda mencoba membuat koneksi?
the-wabbit
Iya. Saya menjalankan tcpdump -w gmail.pcap dan kemudian telnet gmail.com 443.
Mohammad
telnet tidak akan berfungsi, Anda perlu melihat jawaban saya di bawah ini :-)
The Unix Janitor

Jawaban:

6

Dari garis cmd:

openssl s_client -connect serveryourtryingtocontact.com:443

Ini harus memverifikasi jika Anda dapat SSL terhubung ke host jarak jauh. Mungkin membuat Wireshark dari traffic ini.

Jika Anda tidak memiliki openssl, maka Anda bisa apt-get install openssl.

Kita harus menentukan di mana RST dihasilkan. Apakah itu terjadi pada semua situs SSL? Apakah Anda memiliki koneksi langsung ke NAT-gateway Anda? Apakah Anda menggunakan proxy?

Menggunakan metode ini mengesampingkan masalah dengan tumpukan SSL Anda.

Unix Janitor
sumber
Masalahnya bukan SSL. Itu adalah TCP. Sambungan TCP tidak akan terbentuk sejak awal, sehingga SSL bahkan tidak akan mulai mengirim headernya. bukan hanya nomor port 443 misalnya saya bahkan tidak bisa memulai koneksi http normal ke server pada port 8000 dan perintah openssl Anda akan menghasilkan "connect: Connection time out"
Mohammad
5

Meskipun pemerintah Iran dikabarkan akan memecah HTTPS dari waktu ke waktu, dari data yang Anda berikan itu hanya tampak seperti SYN yang merespons, paket ACK dari 173.194.32.22 tiba di tuan rumah Anda, tetapi tidak pernah berhasil masuk ke tumpukan TCP Anda. Stack mencoba mengirim kembali SYN setelah satu detik, dua detik, empat detik, dan delapan detik dengan hormat - tetapi tampaknya tidak pernah melihat respons.

SYN yang masuk, ACK tampaknya disaring - Anda tidak memiliki iptablesaturan untuk lalu lintas tcp dalam rantai INPUT Anda yang memiliki REJECT --reject-with tcp-resettarget?

the-wabbit
sumber
Tidak, iptables saya tidak memiliki aturan sama sekali dan pada catatan lain saya harus mengatakan bahwa saya dapat membuat koneksi TCP berhasil ke host di dalam iran atau bahkan beberapa situs web asing (hanya kernel.org sebenarnya!)
Mohammad
1
Dugaan saya adalah bahwa pemerintah mengubah paket kedua (SYN / ACK) sehingga paket tersebut tidak valid dan karenanya tidak pernah membuatnya ke TCP stack.
Mohammad
1
@Mohammad Paket ini valid. Bahkan jika tidak, stack tidak akan melakukan keduanya: merespons dengan RST dan melanjutkan seolah-olah belum diterima. Ada yang menangkapnya saat menuju tumpukan. Saya menyarankan untuk mem-boot instalasi yang dikenal-bersih (misalnya CD Linux langsung) dan menjalankan kembali tes
the wabbit
Terima kasih. Saya tidak dapat menemukan masalah dengan paket ACK sendiri juga. Tapi masalahnya adalah masalah ini terjadi setiap hari (dari 4 hari yang lalu) di pagi hari di tempat kerja saya! Setiap orang (sekitar 50 orang) memiliki masalah yang persis sama dan saya masih bertanya-tanya mengapa? Saya tidak memiliki masalah yang sama di rumah tetapi saya mendengar dari teman-teman saya bahwa Internet memiliki masalah serius akhir-akhir ini.
Mohammad
3
@Mohammad memeriksa malware lalu. Menjalankan instalasi yang dikenal-bersih seperti yang disarankan di atas adalah tes yang mudah dan signifikan untuk kasus ini.
the-wabbit