Anda memulihkan sandaran, perkhidmatan bermula, dan klien bersambung pada percubaan pertama. Kejayaan itu ialah perangkap. Pemulihan mengembalikan fail yang ada pada pelayan ketika syot kilat diambil, bukan keadaan akses yang berubah sejak itu, dan jika titik akhir lama masih boleh dicapai kini ada dua mesin yang menjawab satu identiti. Penyelesaiannya bukan sandaran lebih baik; penyelesaiannya ialah memutuskan apa yang boleh menjadi hos yang dipulihkan sebelum ia menjawab satu jabat tangan pun.

Sandaran mengembalikan fail, bukan kuasa

Syot kilat menyimpan konfigurasi pelayan, kunci peribadi, pihak berkuasa sijil, senarai rakan dan peraturan tembok api seperti ketika sandaran dijalankan. Ia tidak boleh menyimpan apa yang berubah selepasnya: peranti yang anda batalkan, kunci yang anda keluarkan semula, rakan yang anda buang ketika komputer riba dijual, subnet yang anda pindahkan. Pemulihan mengundurkan fail ke saat itu. Ia tidak mengundurkan keputusan yang dibuat orang sejak itu.

Kerosakan datang tepat dari jurang itu. Komputer riba curian yang dibatalkan dua minggu selepas sandaran mengemukakan sijil yang masih sah terhadap CRL lama dalam pokok yang dipulihkan, dan pelayan menerima peranti yang anda bersarakan. WireGuard lebih langsung: rakan dibenarkan kerana tersenarai, jadi rakan yang dipadam selepas syot kilat hadir semula begitu sahaja. Tiada siapa meluluskan semula akses itu. Fail lama yang melakukannya.

Identiti pelayan dan identiti klien gagal dengan cara berbeza

Pada WireGuard identiti pelayan ialah kunci peribadi dalam wg0.conf, jadi menyalin fail itu ke hos kedua yang boleh dicapai mencipta dua pelayan dengan identiti sama dan tidak saling mengenali. Masing-masing menyimpan senarai rakan sendiri. Buang rakan pada hos baharu dan yang lama masih menerimanya; periksa wg show pada satu dan anda melihat separuh kebenaran. Klien juga tidak berpindah sendiri: profil membawa satu Endpoint, jadi peranti terus bercakap dengan alamat yang dikonfigurasikan, yang mungkin hos yang anda mahu bersarakan.

OpenVPN berganda pada lapisan sama dengan sijil pelayan, kunci peribadinya dan kunci statik tls-auth atau tls-crypt. Salin ketiga-tiganya dan klien tidak dapat membezakan instans; jika kedua-duanya boleh dicapai, sambungan semula mungkin mendarat pada mana-mana satu, dan setiap fail log menceritakan separuh kisah. Pihak berkuasa sijil ialah salinan lebih dalam. Pokok easy-rsa yang dipulihkan ialah sumber kebenaran kedua yang boleh mengeluarkan sijil sah untuk mana-mana nama yang anda berikan.

Klien juga digandakan, biasanya semasa migrasi itu sendiri. Menyalin profil ke peranti ganti «hanya untuk uji» menghasilkan peranti kedua dengan kunci dan nama umum yang sama. Dengan duplicate-cn kedua-dua sesi boleh kekal hidup serentak, dan penetapan alamat statik dalam ccd atau ifconfig-pool-persist boleh bertembung dengan peranti asal. Itu dua mesin memakai satu identiti, dan tiada apa dalam konfigurasi pelayan yang membezakannya.

Pilih satu daripada tiga keadaan untuk titik akhir lama

Pemulihan hanya selamat setelah nasib titik akhir lama diputuskan. Bersarakan ia: perkhidmatan lama mesti berhenti menerima port VPN sebelum hos baharu bermula, dan jika anda tidak dapat mencapai mesin itu, sekat port itu di tepi rangkaian untuk semua kecuali sumber pentadbiran anda. Baiki hos yang sama: menggunakan semula identiti tidak mengapa kerana satu mesin memegangnya, tetapi selepas itu musnahkan salinan cakera atau syot kilat VM kunci lama supaya ia tidak boleh kembali. Bina pasangan ketersediaan: dua hos memerlukan identiti hos berasingan dan satu titik akhir dikongsi, seperti alamat terapung, pengimbang beban atau DNS yang boleh anda pindahkan. Menyalin kunci peribadi bukan reka bentuk failover; itu dua pelayan yang menuntut satu nama.

Pastikan anda benar-benar dalam keadaan mana sebelum menyentuh klien. Hos lama yang menjawab pada port VPN itulah yang akan menerima peranti yang dibatalkan, walaupun DNS sudah berpindah. Periksa pendengar dan kunci awam:

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

Selaraskan rakan, pembatalan dan alamat dahulu

Senaraikan apa yang didakwa pemulihan berbanding apa yang dibenarkan sekarang. Pada WireGuard wg show wg0 memberi kunci, titik akhir, jabat tangan terakhir dan pembilang pemindahan setiap rakan, cukup untuk mengesan peranti yang tidak lagi anda miliki. Buangnya secara langsung dengan wg set wg0 peer <key> remove, kemudian sunting konfigurasi juga, jika tidak rakan itu kembali pada permulaan seterusnya. wg show wg0 allowed-ips mendedahkan masalah kedua: dua rakan pada satu alamat, atau alamat yang sudah anda peruntukkan semula.

Pada OpenVPN senarai pembatalan ialah fail bertarikh, dan pemulihan boleh mengembalikan yang lama. Periksanya sebelum klien bersambung:

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

Jika kemas kini terakhir mendahului pembatalan, pelayan masih memuliakan sijil yang anda batalkan. OpenVPN 2.4 dan seterusnya membaca semula fail CRL bagi setiap sambungan baharu, jadi menggantikan fail menghentikan sesi baharu, tetapi terowong yang terbentuk kekal sehingga rundingan semula; lalai reneg-sec ialah 3600 saat, dan menurunkannya atau memulakan semula perkhidmatan itulah yang memberi anda perubahan sekarang. Binaan lama mungkin tidak mengambil fail itu dengan begitu boleh dipercayai, jadi mulakan semula apabila anda tidak dapat mengesahkan tingkah laku versi itu. Manual wg(8) merangkumi pembuangan rakan dan sintaks allowed-ips yang digunakan di atas.

Bersihkan juga penetapan statik untuk peranti yang tidak lagi wujud. Menggunakan semula alamat peranti bersara untuk yang baharu sementara profil lama masih dipasang mencipta tepat pendua yang anda cuba elakkan.

Sahkan dengan klien yang anda batalkan

Jalankan pemeriksaan mengikut urutan, dari rangkaian di luar terowong. Pertama peranti dibenarkan bersambung, menyelesaikan DNS melalui penyelesai yang ditolak dan mencapai sumber peribadi. Kemudian peranti yang dibatalkan mesti gagal, menggunakan profil sedia ada dan bukan yang baharu. Kemudian cuba titik akhir lama dari luar: jika port VPN masih melengkapkan jabat tangan, hos lama masih hidup dan penggandaan itu nyata, bukan teori.

Mulakan semula hos yang dipulihkan dan ulangi pemeriksaan dibenarkan dan dibatalkan, kerana pada masa itulah fail konfigurasi mengalahkan apa yang anda ubah ketika berjalan. Bandingkan kunci awam atau cap jari sijil hos dengan yang digunakan mesin bersara. Cap jari sepadan pada dua mesin hidup bermakna pemulihan mengklon identiti; cap jari sepadan pada satu mesin adalah normal. Catat versi yang dipulihkan, cap jari kunci dan nombor siri atau kunci rakan yang dibatalkan, kemudian ambil sandaran seterusnya selepas penyelarasan ini, supaya ia mewakili perkhidmatan seperti sekarang. Ujian yang berkesan bukanlah klien bersambung. Ia adalah klien yang anda buang kekal di luar sementara titik akhir lama kekal tertutup.

Artikel berkaitan