Anda memulihkan cadangan, layanan menyala, dan klien terhubung pada percobaan pertama. Keberhasilan itu jebakannya. Pemulihan mengembalikan file yang dimiliki server pada saat snapshot, bukan status akses yang berubah sejak itu, dan jika endpoint lama masih dapat dijangkau, kini ada dua mesin yang menjawab satu identitas. Solusinya bukan cadangan yang lebih baik; solusinya adalah memutuskan apa yang boleh menjadi host yang dipulihkan sebelum ia menjawab satu jabat tangan pun.

Cadangan mengembalikan file, bukan wewenang

Snapshot menyimpan konfigurasi server, kunci privat, otoritas sertifikat, daftar peer, dan aturan firewall sebagaimana adanya saat cadangan berjalan. Snapshot tidak dapat menyimpan apa yang berubah sesudahnya: perangkat yang Anda cabut, kunci yang Anda terbitkan ulang, peer yang Anda hapus saat laptop dijual, subnet yang Anda pindahkan. Pemulihan memundurkan file ke saat itu. Pemulihan tidak memundurkan keputusan yang diambil orang sejak itu.

Kerusakan datang tepat dari celah itu. Laptop curian yang dicabut dua minggu setelah cadangan menyajikan sertifikat yang masih tervalidasi terhadap CRL lama di pohon yang dipulihkan, dan server menerima perangkat yang sudah Anda pensiunkan. WireGuard lebih langsung: peer diotorisasi karena terdaftar, jadi peer yang dihapus setelah snapshot kembali hadir begitu saja. Tidak ada yang menyetujui akses itu lagi. File lama yang melakukannya.

Identitas server dan identitas klien gagal dengan cara berbeda

Pada WireGuard, identitas server adalah kunci privat di wg0.conf, jadi menyalin file itu ke host kedua yang dapat dijangkau menciptakan dua server dengan identitas sama dan tanpa saling tahu. Masing-masing menyimpan daftar peer sendiri. Hapus peer di host baru dan host lama masih menerimanya; periksa wg show di salah satu dan Anda melihat separuh kebenaran. Klien juga tidak berpindah sendiri: profil membawa satu Endpoint, jadi perangkat terus berbicara dengan alamat tempat ia dikonfigurasi, yang bisa jadi host yang ingin Anda pensiunkan.

OpenVPN terduplikasi di lapisan yang sama dengan sertifikat server, kunci privatnya, dan kunci statis tls-auth atau tls-crypt. Salin ketiganya dan klien tidak dapat membedakan instansnya; jika keduanya dapat dijangkau, sambung ulang bisa mendarat di salah satunya, dan setiap berkas log bercerita separuh. Otoritas sertifikat adalah salinan yang lebih dalam. Pohon easy-rsa yang dipulihkan adalah sumber kebenaran kedua yang dapat menerbitkan sertifikat sah untuk nama apa pun yang Anda berikan.

Klien juga terduplikasi, biasanya selama migrasi itu sendiri. Menyalin profil ke perangkat cadangan «hanya untuk uji» menghasilkan perangkat kedua dengan kunci dan nama umum yang sama. Dengan duplicate-cn kedua sesi dapat tetap hidup bersamaan, dan penetapan alamat statis di ccd atau ifconfig-pool-persist dapat bentrok dengan perangkat asli. Itu dua mesin memakai satu identitas, dan tidak ada apa pun di konfigurasi server yang membedakannya.

Pilih satu dari tiga keadaan untuk endpoint lama

Pemulihan baru aman setelah nasib endpoint lama diputuskan. Pensiunkan: layanan lama harus berhenti menerima port VPN sebelum host baru menyala, dan jika Anda tidak dapat menjangkau mesinnya, blokir port itu di tepi jaringan untuk semua kecuali sumber administratif Anda. Perbaiki host yang sama: memakai ulang identitas tidak masalah karena satu mesin memegangnya, tetapi setelah itu musnahkan salinan disk atau snapshot VM kunci lama agar tidak bisa kembali. Bangun pasangan ketersediaan: dua host memerlukan identitas host berbeda plus satu endpoint bersama, seperti alamat mengambang, penyeimbang beban, atau DNS yang dapat Anda pindahkan. Menyalin kunci privat bukan rancangan failover; itu dua server yang mengklaim satu nama.

Pastikan Anda benar-benar berada di keadaan mana sebelum menyentuh klien. Host lama yang menjawab di port VPN adalah yang akan menerima perangkat yang dicabut, meskipun DNS sudah berpindah. Periksa pendengar dan kunci publik:

ss -lunp | grep -E ':51820|:1194'
wg show wg0
wg pubkey < /etc/wireguard/server.key

Rekonsiliasikan peer, pencabutan, dan alamat terlebih dahulu

Daftar apa yang diklaim pemulihan terhadap apa yang kini diotorisasi. Pada WireGuard, wg show wg0 memberi kunci, endpoint, jabat tangan terakhir, dan penghitung transfer setiap peer, cukup untuk melihat perangkat yang tak lagi Anda miliki. Hapus langsung dengan wg set wg0 peer <key> remove, lalu sunting konfigurasinya juga, atau peer itu kembali saat penyalaan berikutnya. wg show wg0 allowed-ips menyingkap masalah kedua: dua peer pada satu alamat, atau alamat yang sudah Anda tetapkan ulang.

Pada OpenVPN, daftar pencabutan adalah berkas bertanggal, dan pemulihan dapat mengembalikan yang lama. Periksa sebelum klien terhubung:

openssl crl -in /etc/openvpn/crl.pem -noout -lastupdate -nextupdate
grep -E 'crl-verify|reneg-sec' /etc/openvpn/server.conf

Jika pembaruan terakhir mendahului pencabutan, server masih menghormati sertifikat yang Anda cabut. OpenVPN 2.4 dan sesudahnya membaca ulang berkas CRL untuk setiap koneksi baru, jadi mengganti berkas menghentikan sesi baru, tetapi terowongan yang sudah terbentuk bertahan sampai negosiasi ulang; bawaan reneg-sec adalah 3600 detik, dan menurunkannya atau memulai ulang layananlah yang memberi Anda perubahan sekarang. Build lama mungkin tidak mengambil berkas itu seandalnya, jadi mulai ulang bila Anda tidak dapat memastikan perilaku versinya. Panduan wg(8) mencakup penghapusan peer dan sintaks allowed-ips yang dipakai di atas.

Bersihkan juga penetapan statis untuk perangkat yang tak lagi ada. Memakai ulang alamat perangkat pensiunan untuk perangkat baru sementara profil lama masih terpasang menciptakan persis duplikat yang ingin Anda hindari.

Verifikasi dengan klien yang Anda cabut

Jalankan pemeriksaan berurutan, dari jaringan di luar terowongan. Pertama perangkat resmi terhubung, menyelesaikan DNS lewat resolver yang didorong, dan mencapai sumber daya privat. Lalu perangkat yang dicabut harus gagal, memakai profil lamanya bukan yang baru. Kemudian coba endpoint lama dari luar: jika port VPN masih menyelesaikan jabat tangan, host lama hidup dan duplikasinya nyata, bukan teoretis.

Mulai ulang host yang dipulihkan dan ulangi pemeriksaan resmi dan dicabut, karena saat itulah berkas konfigurasi mengalahkan apa yang Anda ubah saat berjalan. Bandingkan kunci publik atau sidik jari sertifikat host dengan yang dipakai mesin pensiunan. Sidik jari sama pada dua mesin hidup berarti pemulihan mengkloning identitas; sidik jari sama pada satu mesin wajar. Catat versi yang dipulihkan, sidik jari kunci, dan nomor seri atau kunci peer yang dicabut, lalu ambil cadangan berikutnya setelah rekonsiliasi ini, agar mewakili layanan sebagaimana adanya sekarang. Uji yang berhasil bukanlah klien bisa terhubung. Melainkan klien yang Anda hapus tetap di luar sementara endpoint lama tetap tertutup.

Artikel terkait