ESP membawa trafik dalam VPN IPsec, dan runbooknya bermula dengan satu peraturan: baca perkaitan keselamatan sebelum mengubah dasar. Kebanyakan tingkah laku ESP yang tidak dapat dijelaskan berpunca daripada pemilih yang tidak sepadan, mod yang diandaikan dan bukan dibaca, atau pembilang yang tiada siapa periksa semasa satu aliran dihantar. Tiga langkah di bawah menetapkan apa membawa apa, membuktikan bahawa satu aliran menggunakannya, dan meninggalkan pembalikan yang tidak bergantung pada ingatan. Setiap langkah menghasilkan satu pemerhatian yang wajar dicatat.

Kenali medan sebelum membacanya

ESP meletakkan pengepala di hadapan data yang dilindungi dan treler di belakangnya. Pengepala membawa indeks parameter keselamatan yang mengenal pasti perkaitan mana yang patut digunakan oleh penerima, nombor jujukan untuk mengesan pengulangan, dan pelapik dalam treler yang mengekalkan muatan sejajar untuk sifer. Medan pengepala seterusnya dalam treler menyatakan kandungan yang dilindungi, dan begitulah penerima tahu apa yang telah dinyahkapsulnya.

Mod mengubah apa yang berada di dalam perlindungan itu. Dalam mod terowong, bahan yang dilindungi ialah paket IP dalaman yang lengkap, dan pengepala luar baharu membawanya antara dua hujung. Dalam mod pengangkutan, perlindungan membalut muatan lapisan atas paket sedia ada, jadi tiada pengepala IP kedua untuk dibuka. Mod mana yang digunakan ialah fakta konfigurasi, bukan soal tafsiran. Bacalah daripada entri keadaan dan bukan mengagaknya daripada rajah.

Kedua-dua mod tidak menyembunyikan pengalamatan luar yang harus menyampaikan paket. Itu sifat reka bentuk dan bukan kekurangan, dan itulah sebabnya pemerhati di tengah masih dapat melihat dua alamat mana yang bercakap walaupun muatan itu legap.

Langkah satu: baca keadaan, kemudian dasar

Entri keadaan menyimpan kunci dan pembilang; entri dasar menyimpan pemilih yang menentukan apa yang boleh menggunakannya. Dalam Linux kedua-duanya kelihatan tanpa menangkap paket, dan membacanya dalam urutan itu mengekalkan dua soalan secara berasingan.

ip xfrm state
ip xfrm policy

Dalam output keadaan, periksa sumber dan destinasi perkaitan, modnya, dan sama ada pengekapsulan menunjukkan port UDP. Port itu bermakna perlintasan NAT sedang digunakan, yang mengubah apa yang mesti dibenarkan oleh tembok api di tengah, tetapi bukan pemilih atau kunci mana yang terpakai di hujung.

Kemudian baca pemilih dalam dasar. Pemilih yang menamakan awalan lebih sempit daripada trafik yang anda uji ialah sebab paling biasa sebuah terowong yang berfungsi kelihatan mengabaikan satu aliran, dan pemilih untuk protokol yang salah menghasilkan kesunyian yang sama.

FieldWhere it appearsWhat it decides
Security parameter indexESP header, and the receiving state entryWhich association and keys the receiver applies
Sequence numberESP headerReplay detection for that association
Next headerESP trailerWhat the decapsulated payload contains
Inner IP headerInside tunnel-mode payload onlyThe original source and destination the endpoints act on
Traffic selectorsPolicy, not the packetWhich local traffic is allowed to use the association

Alat vendor mencetak maklumat yang sama dalam bentuk yang lebih mesra. ipsec statusall pada strongSwan alat itu menyenaraikan perkaitan anak, pemilihnya dan pembilang baitnya, yang selalunya lebih pantas daripada membaca output xfrm mentah apabila anda sudah tahu anak mana yang perlu dilihat.

Langkah dua: buktikan satu aliran menggerakkan pembilang

Pembilang hanya bermakna jika anda tahu apa yang sepatutnya menggerakkannya, jadi pilih sumber dan destinasi yang pasti diliputi oleh pemilih dan hantar satu permintaan tidak berbahaya. Kemudian baca entri yang sama sekali lagi dan bandingkan.

ip -s xfrm state
tcpdump -ni any esp

Dua bacaan menceritakan kisah yang berbeza. Paket yang meningkat di sebelah keluar tetapi tidak pernah di sebelah masuk menunjukkan masalah penghantaran atau laluan balik dan bukan masalah kunci, kerana paket itu telah dikapsulkan dan pergi. Jika tiada pembilang bergerak, trafik itu tidak pernah sepadan dengan dasar, dan pemilih ialah tempat untuk melihat.

Tangkapan dalam langkah yang sama mengesahkan pengekapsulan pada wayar, termasuk sama ada paket luar itu ESP atau ESP yang dikapsulkan dalam UDP. Ia juga menunjukkan alamat yang benar-benar membawa aliran itu, dan itu kadangkala berbeza daripada yang terdapat dalam konfigurasi yang anda baca.

Langkah tiga: ubah satu perkara dan kekalkan pembalikan

Catat sumber, destinasi, mod, pemilih dan pembilang perkaitan sebelum mengedit apa-apa. Jika sesuatu perubahan memburukkan keadaan, catatan itulah yang membolehkan anda memulihkan keadaan sebelumnya dan bukannya membina semula konfigurasi yang berfungsi daripada tekaan. Catatan itu mengambil masa seminit untuk ditulis dan menjimatkan satu jam kemudian. Ia juga satu-satunya artifak yang kekal selepas orang yang membuat perubahan itu.

Ubah satu pemilih atau satu parameter, muat semula, dan ulangi langkah dua pada aliran yang sama. Memadam perkaitan meruntuhkan setiap aliran yang menggunakannya, jadi suntingan bersasar dan muat semula anak hampir selalu lebih baik daripada mengosongkan keadaan untuk melihat apa yang berlaku.

Pembalikan untuk suntingan pemilih ialah memulihkan dasar sebelumnya dan memuat semulanya, dengan syarat rakan mungkin memerlukan perubahan yang sepadan jika pemilih dirundingkan dan bukan setempat. Tulis kebergantungan itu semasa ia masih segar, kerana pasangan yang separuh dipulihkan lebih sukar difikirkan daripada mana-mana satu daripada dua keadaan akhir.

Akhir sekali, kekalkan skop dengan jujur. Perkaitan ESP yang mengalir membuktikan kedua-dua gerbang melindungi dan menyampaikan segmen itu, dan ia tidak mengatakan apa-apa tentang sama ada aplikasi di atasnya mengesahkan penggunanya atau menyulitkan apa yang disimpannya. Itu kawalan berasingan dengan bukti berasingan, dan runbook hanya selesai apabila orang seterusnya dapat mengulanginya daripada catatan.

Artikel berkaitan