Adakah peningkatan Ubuntu merosakkan L2TP/IPsec? Bandingkan cadangan IKEv1
Profil dan kata laluan tidak berubah, tetapi fasa 1 kini gagal. Cadangan yang boleh diterima klien telah berubah, dan pelayan masih menawarkan apa yang selalu ditawarkannya.
Sambungan berfungsi pada Khamis, peningkatan dijalankan pada Jumaat, dan pada Isnin klien berpusing pada “connecting” lalu mengalah. Komputer riba yang sama, pelayan yang sama, akaun yang sama, kunci yang dikongsi lebih awal yang sama. Tiada apa-apa dalam profil diedit, sebab itulah suspek yang jelas, kata laluan dan firewall, membuang masa anda.
Yang berubah ialah senarai transformasi yang sanggup ditawarkan oleh mesin anda. Kedua-dua tindanan IPsec yang digunakan pada Ubuntu, strongSwan dan Libreswan, memangkas algoritma yang tidak lagi mereka anggap selamat, dan plugin NetworkManager di hadapannya mempunyai senarai sendiri, yang bergerak mengikut jadual berbeza. Pelayan yang dipasak pada 3DES, SHA1 dan kumpulan Diffie-Hellman 1024 bit boleh akhirnya tidak mendengar apa-apa yang diterimanya.
Apa yang sebenarnya diubah oleh peningkatan itu
Dua lapisan menyuap cadangan IKEv1. Daemon membawa set cadangan lalai yang dikompil, dan plugin L2TP sama ada bergantung padanya atau menyediakan senarai sendiri. Sebelum NetworkManager-l2tp 1.2.16 plugin bergantung padanya, jadi cadangan anda ialah apa yang dianggap wajar oleh daemon yang dipasang. Dari 1.2.16 ke atas plugin menghantar senarai terdokumen yang dimodelkan pada klien Windows dan Apple, dan senarai itu lebih luas daripada lalai lama tetapi tidak lagi mengandungi setiap gabungan warisan di hadapan baris gilir.
Pemisahan itu menjelaskan mod kegagalan yang dianggap mengelirukan oleh orang ramai: dua mesin pada keluaran Ubuntu yang sama boleh berkelakuan berbeza kerana satu mempunyai pakej pengedaran dan satu lagi mempunyai backport, dan versi daemon pada kedua-duanya kelihatan sama dalam laporan pepijat. Periksa versi plugin, bukan versi daemon sahaja, sebelum membuat kesimpulan bahawa peningkatan itu tidak mengubah apa-apa yang berkaitan.
Ada perangkap yang lebih kecil di kawasan yang sama. Kedua-dua daemon menulis kumpulan Diffie-Hellman lengkung eliptik secara berbeza, satu menulis ecp384 dan satu lagi ecp_384. Tampal ejaan yang salah ke dalam dialog Advanced dan daemon akan menolak tetapan itu sebagai tidak dapat dihuraikan, yang muncul dalam log sebagai masalah rundingan dan bukan salah taip dalam konfigurasi.
Baca kegagalan sebelum mengubah apa-apa
Mulakan dengan backend mana yang anda jalankan, kerana jawapannya menentukan sintaks dan lokasi log.
ipsec --version
nmcli connection show "Your VPN name" | grep -i ipsec
Kemudian baca pertukaran itu sendiri. Pada strongSwan daemon menulis ke journal pada keluaran semasa dan ke /var/log/syslog pada keluaran lama, dan bahagian yang menarik ialah cadangan yang dihantarnya, bukan baris terakhir. Anda mencari frasa tentang tiada cadangan yang sepadan, yang merupakan masalah algoritma; kegagalan pengesahan, yang menunjuk kepada kunci atau akaun; atau timeout biasa, yang menunjuk kepada kebolehcapaian.
Ketiga-tiga hasil ini terlalu kerap dianggap sebagai satu simptom. Timeout dengan log daemon kosong bermakna paket tidak tiba. Penolakan cadangan bermakna paket tiba dan ditolak. Jika log anda senyap, naikkan tahap nyahpepijat plugin untuk satu percubaan dan turunkannya selepas itu, kerana output terperinci cepat memenuhi journal.
Fasa 1 dan fasa 2 ialah pertaruhan berasingan
IKEv1 berunding dua kali. Mod utama membina persatuan keselamatan IKE daripada algoritma penyulitan, algoritma integriti, kumpulan Diffie-Hellman dan kaedah pengesahan. Mod pantas kemudian membina persatuan ESP yang akan membawa L2TP. Pelayan bebas menerima yang pertama dan menolak yang kedua, jadi profil separa betul gagal lebih lambat daripada yang anda jangkakan dan kelihatan seperti pepijat lain.
Phase 1: 3des-sha1-modp1024!
Phase 2: 3des-sha1!
Tanda seru ialah sintaks strongSwan untuk entri ketat: tawarkan gabungan ini sahaja dan tiada yang lain. Tanpanya entri menyertai senarai sandaran, yang baik apabila rakan sebaya moden dan tidak produktif apabila ia peranti dengan satu dasar berkod keras. Anggap pasangan di atas sebagai ilustrasi bentuk, bukan cadangan untuk apa-apa yang anda bina hari ini.
Ubah satu medan, kemudian ulangi ujian
Pada plugin semasa, ujian pertama terpantas ialah mengosongkan kedua-dua medan cadangan sepenuhnya dan menyambung semula, kerana senarai lalai yang dibekalkan sudah merangkumi gabungan Windows dan Apple yang biasa. Pada plugin lama, mengosongkannya mengembalikan kawalan kepada daemon yang mungkin telah membuang algoritma yang ditekankan oleh pelayan anda, dan kegagalan menjadi lebih teruk.
Jika pengosongan tidak membantu, tetapkan pasangan ketat yang didokumenkan oleh pelayan anda, satu fasa pada satu masa. Ubah fasa 1, sambung semula, dan baca log sebelum menyentuh fasa 2. Apabila gabungan akhirnya berfungsi, catatkannya di sebelah model pelayan dan versi plugin, kerana lalai akan bergerak lagi dan catatan itulah yang menjadikan peningkatan seterusnya sebagai pemeriksaan lima minit.