Anda menempelkan kunci yang dibagikan sebelumnya dari pesan administrator ke dialog NetworkManager, mencentang kotak untuk menampilkannya, dan kunci itu cocok karakter demi karakter. Koneksi tetap berakhir pada kegagalan autentikasi sebelum terowongan naik. Saat pertama kali melihatnya, saya mengira kuncinya salah; ternyata tidak. Dua hal lain menentukan apa yang benar-benar dibaca daemon: berkas rahasia yang ditulis plugin untuk koneksi itu, dan apakah nilainya melewati dialog tanpa perubahan.

Penelusuran di bawah mengikuti kunci dari kolom ke berkas, dan urutan itulah yang memberi tahu Anda di mana kunci itu hilang. Lakukan pada mesin yang gagal, bukan pada mesin yang berfungsi, karena perbedaan antara kedua mesin itu biasanya tata letak berkas, bukan kuncinya.

Mulai dari dialog, tetapi jangan percaya pada kolomnya

Buka tab IPsec koneksi dan ketik ulang kuncinya alih-alih menempelkannya. Kunci yang disalin dari pesan chat, PDF, atau pengelola kata sandi bisa tiba dengan pemisah baris di akhir yang tidak ditampilkan kolom, dan karakter yang terlihat tetap tampak benar.

Klik kontrol tampilkan kata sandi dan lihat ujung string, bukan tengahnya. Jika kursor meninggalkan baris kosong di bawah teks, hapus baris itu dan ketik ulang karakter terakhir. Satu perbaikan itu menyelesaikan sebagian besar laporan semacam ini, dan biayanya lebih murah daripada membaca log apa pun.

Jika kunci berasal dari sistem tiket yang memotong baris panjang, mintalah melalui kanal yang tidak memotongnya. Bandingkan panjangnya dengan administrator alih-alih membandingkan dua string secara visual; karakter yang hilang di titik potong tidak terlihat pada fon proporsional.

Ikuti kunci ke dalam /etc/ipsec.d

Plugin tidak pernah menyerahkan PSK ke daemon IPsec sebagai argumen pada baris perintah. Sebagai gantinya ia menyimpan nilai dalam berkas rahasia dan mengatur agar daemon memuat berkas itu, dengan menambahkan baris include ke /etc/ipsec.secrets jika belum ada. Yang dipegang dialog adalah masukan bagi berkas yang dihasilkan itu, bukan nilai yang dipakai.

Daftar apa yang ada sebelum Anda mengubah apa pun:

ipsec --version
sudo ls -l /etc/ipsec.d/*.secrets /etc/ipsec.d/ipsec.nm-l2tp.secrets 2>/dev/null
sudo grep -n "include" /etc/ipsec.secrets

Rilis plugin yang lebih lama menulis satu berkas per koneksi, dinamai menurut UUID koneksi, misalnya /etc/ipsec.d/nm-l2tp-ipsec-<uuid>.secrets. Menghapus profil di applet tidak menghapus berkas itu secara andal. Jika berkas lama dari server sebelumnya masih ada di disk dan masih disertakan, daemon dapat memilih rahasia milik profil yang tidak lagi Anda pakai, dan koneksi gagal padahal kolom yang terlihat benar.

Pahami apa yang dilakukan perubahan 1.2.12 pada pemutakhiran

Versi plugin 1.2.12 menggantikan berkas rahasia per koneksi dengan satu berkas bersama, /etc/ipsec.d/ipsec.nm-l2tp.secrets. Pemutakhiran tidak membersihkan berkas lama per UUID, dan baris include /etc/ipsec.d/*.secrets yang sudah ada tetap memuatnya. Versi 1.2.16 mengubah penanganan proposal bawaan, bukan tata letak rahasianya.

Riwayat itu menjelaskan mengapa dua mesin dengan profil yang tampak sama berperilaku berbeda. Kuncinya identik; himpunan berkas yang dimuat daemon tidak. Saat menghapus berkas yatim, pindahkan ke samping alih-alih menghapusnya, pastikan koneksi, lalu hapus setelah keadaan yang berfungsi tercatat. Mengganti namanya menjaga nilai lama tetap dapat dipulihkan bila ternyata kesalahannya ada di tempat lain.

Pisahkan karakter yang tidak dapat ditampung format penyimpanan

Dokumentasi strongSwan untuk string rahasia bersama menyatakan bahwa nilainya tidak boleh memuat pemisah baris atau karakter tanda kutip ganda. Kunci yang ditempel dari dokumen dapat membawa salah satunya tanpa perbedaan visual apa pun di dialog biasa.

Sejak 1.2.12 nilai yang disimpan bukan lagi teks biasa. Plugin mengodekan PSK dengan base64 sebelum mencapai berkas, dan catatan rilis menyebut pengodean itu sebagai alasan tanda kutip ganda kini dapat diterima dalam kunci. Tanda kutip yang diketik di kolom karena itu dapat direpresentasikan; hal yang sama tidak berlaku untuk setiap karakter kendali.

Panjang adalah batasan lain. Tidak ada minimum universal pada perangkat lunak L2TP/IPsec: sebagian klien menerima kunci lebih pendek dari dua puluh karakter dan sebagian gateway memberlakukan minimum. Jika kunci pendek ditolak, aturannya milik kebijakan server atau validasi klien itu, dan menaikkan sesuatu secara lokal tidak akan mengubahnya.

Baca lapisan autentikasi mana yang gagal

Jalankan ipsec --version lebih dulu, karena strongSwan dan Libreswan memakai nama berkas dan sintaksis berbeda, dan saran untuk salah satunya dapat merusak yang lain. Lalu baca tahap kegagalan dari pesan klien atau log daemon: keluhan tentang kunci yang dibagikan sebelumnya adalah peristiwa yang berbeda dari nama pengguna dan kata sandi yang ditolak.

PSK mengautentikasi ujung terowongan. Nama pengguna dan kata sandi mengautentikasi orang di dalam L2TP, dan PPP menanganinya setelah asosiasi IPsec naik. PSK yang benar dengan akun yang salah tetap gagal, dan mengganti akun tidak akan memperbaiki kunci yang tidak pernah dibaca dengan benar oleh daemon.

Saat menutup tiket, tuliskan keempatnya: versi plugin, berkas rahasia yang dipakai, apakah kunci diketik ulang atau ditempel, dan lapisan yang disebut dalam kesalahan. Dengan begitu siapa pun yang mengulang penelusuran ini nanti dapat langsung melompat ke perbedaan antara mesin yang berfungsi dan yang gagal.

Artikel terkait