Ping berfungsi, SSH berfungsi, halaman kecil dimuatkan, kemudian setiap respons besar tersekat sehingga tamat masa. Corak klasik menunjuk kepada saiz paket, bukan kebolehcapaian: laluan membawa jabat tangan dan beberapa kilobait pertama, kemudian segmen bersaiz penuh hilang. Pada gateway IPsec Linux, peraturan TCP MSS selalunya penyelesaiannya, tetapi hanya jika anda faham apa yang diubahnya dan di mana paket yang disentuhnya benar-benar berada. Urutan di bawah mengikut paket dari gejala hingga penempatan peraturan, supaya anda boleh berhenti sebaik sahaja penjelasan tidak lagi sepadan.

Gejala yang mencadangkan MSS

TCP berunding saiz segmen maksimum dalam jabat tangan. Jika nilai itu lebih besar daripada yang laluan boleh bawa selepas enkapsulasi, penghantar terus menghasilkan segmen yang tidak pernah tiba, dan sambungan tersekat selepas pusingan pertama. Respons kecil muat; yang besar tidak.

Maklum balas ICMP boleh menyelamatkan sambungan melalui penemuan MTU laluan, dan firewall yang menggugurkan mesej itu menjadikan sekatan sebagai lubang hitam senyap. Itulah sebabnya terowong yang sama berfungsi untuk satu aplikasi dan gagal untuk aplikasi lain tanpa perbezaan jelas dalam konfigurasi.

Apa yang dilakukan peraturan TCPMSS dan apa yang tidak

Peraturan itu menulis semula pilihan MSS dalam paket jabat tangan TCP semasa ia melaluinya. Ia tidak menetapkan MTU antara muka terowong, tidak mengubah dasar IPsec, dan pada kernel semasa ia hanya menurunkan nilai yang diiklankan dan bukannya menaikkan nilai yang sudah lebih kecil. Ia juga hanya menyentuh TCP; muatan UDP, tingkah laku DNS dan pemilih trafik yang dirundingkan berada di luar jangkauannya.

Kerana perubahan berlaku semasa jabat tangan, sambungan sedia ada yang dibina sebelum peraturan mengekalkan nilai lamanya. Uji dengan sambungan baharu, dan jangkakan percubaan pertama selepas perubahan itulah yang memberitahu anda sesuatu. Tiada apa dalam peraturan itu yang mencapai sambungan yang sudah terbuka. Itulah sebabnya pembaikan yang digunakan di tengah-tengah insiden boleh kelihatan seperti tidak melakukan apa-apa.

Letakkan peraturan pada laluan TCP dalam

Pada gateway Linux berasaskan dasar, paket yang dimajukan masih kelihatan seperti TCP biasa apabila firewall melihatnya. Dasar IPsec memutuskan bahawa paket itu akan dilindungi; firewall tidak melihat pengepala ESP untuk aliran dalam, jadi pemadanan dengan ESP di sini menerangkan paket yang sama sekali berbeza. Ketidakpadanan itulah sebabnya sesetengah peraturan kelihatan betul dan tidak pernah sepadan.

Dalam istilah iptables, peraturan itu tergolong dalam jadual mangle pada laluan pemajuan, terhad kepada paket jabat tangan: iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1270. Nombor itu contoh, bukan pemalar sejagat; terbitkannya daripada overhed enkapsulasi dan MTU sebenar laluan. Setara nftables menetapkan saiz segmen maksimum dalam rantai forward atau postrouting.

Asingkan peraturan pendengar luar untuk IKE dan ESP daripada peraturan pemajuan dalam. Satu peraturan yang cuba membenarkan aliran aplikasi dan protokol luar sekali gus akhirnya tidak sepadan dengan mana-mana satu pun secara boleh dipercayai.

Hormati pemilik firewall dan susunan NAT

Jika UFW memiliki firewall hos, tambahkan perubahan mangle dan pemajuan melalui konfigurasi berterusan yang disokongnya dan bukannya menaip arahan yang hilang pada muat semula seterusnya. Peraturan yang dimasukkan ke dalam jadual yang salah atau selepas peraturan terminal tidak memberi kesan, dan jadual hidup menyembunyikan perkara itu daripada anda.

Terjemahan sumber ialah keputusan berasingan yang sering berinteraksi dengan yang ini. Pengecualian yang diletakkan sebelum peraturan masquerade umum menghalang trafik terlindung daripada kehilangan sumber yang dikehendaki oleh dasarnya; ia tidak membaiki masalah saiz, dan peraturan saiz tidak membaiki masalah terjemahan.

Sahkan secara sempit, kemudian berhenti

Buka sambungan baharu ke perkhidmatan yang gagal dan perhatikan kedua-dua aplikasi dan pembilang peraturan. Jika sekatan hilang, anda mempunyai bukti tentang laluan TCP itu dengan enkapsulasi itu. Anda tidak mempunyai bukti bahawa setiap protokol VPN sepadan, setiap aplikasi UDP telah dibaiki, atau perkhidmatan huluan tertentu ialah punca asal.

Biarkan maklum balas saiz ICMP berfungsi di tempat dasar membenarkannya, dan tangani pelarasan automatik berdasarkan MTU laluan dengan berhati-hati apabila laluan IPsec luar tidak diwakili oleh laluan dalam. Semakin sempit kesimpulannya, semakin mudah insiden seterusnya didiagnosis.

Artikel berkaitan