Skrip penyediaan yang melaporkan ralat dan terus berjalan lebih teruk daripada skrip yang tidak pernah berjalan. Persediaan klien menyentuh kunci terlindung, identiti di gateway dan perkhidmatan yang mungkin sudah menyediakan trafik. Setiap satunya memerlukan syarat berhenti, dan skrip perlu tahu peringkat mana yang dicapainya apabila berhenti.

Anggap keseluruhannya sebagai satu transaksi dengan lima titik semak, dan jadikan setiap titik semak enggan meneruskan dengan sendirinya.

Betulkan input sebelum menyentuh sistem fail

Mulakan dengan kontrak yang jelas: satu identiti, satu sumber profil, satu pemilik perkhidmatan yang dimaksudkan. Sahkan bahawa profil itu wujud, bahawa sijil dan kunci yang dirujuknya boleh dibaca, dan bahawa direktori sasaran milik pakej yang dijangka. Laluan yang diselesaikan bukan bukti bahawa bahan di belakangnya lengkap.

Tolak pemboleh ubah kosong lebih awal. $DEVICE yang tidak ditetapkan dan mengembang kepada tiada menjadikan install -m 400 $KEY /etc/openvpn/client/ satu salinan yang ditujukan kepada direktori, dan kegagalan datang kemudian sebagai perkhidmatan yang tidak dapat membaca kuncinya.

Himpunkan set profil dalam direktori pementasan

Bina dahulu set lengkap di tempat peribadi: profil, CA, sijil klien, kunci dan sebarang pembantu yang dipanggil profil. Salin dengan install -m 400 -o root -g root supaya kebenaran ditetapkan semasa penciptaan dan bukan selepasnya. Kemudian semak rujukan di dalam profil, kerana baris ca atau key yang relatif diselesaikan terhadap direktori kerja unit sebaik sahaja perkhidmatan bermula. Tiada apa yang patut ditulis ke direktori aktif sehingga keseluruhan set disahkan.

Catat cap jari bukan rahsia bagi apa yang dihasilkan oleh larian ini, contohnya sha256sum office.conf yang disimpan di sebelah penanda versi. Nilai tunggal itulah yang membolehkan larian semula membezakan kemas kini daripada tiada tindakan.

Tukar secara atomik dan simpan set sebelumnya

Alihkan set yang disediakan ke tempatnya sebagai satu operasi di mana sistem fail mengizinkannya, dan simpan set sebelumnya yang telah disemak di bawah nama bertanda masa. Salinan separa yang meninggalkan profil baharu di sebelah kunci lama menghasilkan perkhidmatan yang mengesahkan identiti yang salah dan tidak mencatat apa-apa yang berguna tentang puncanya. Jika pertukaran tidak boleh atomik, susun peralihan supaya profil tiba paling akhir.

Apabila sasaran sudah wujud, putuskan secara jelas sama ada larian ini ialah kemas kini, larian semula yang serupa, atau konflik dengan profil peranti lain. Menimpa secara senyap profil milik identiti lain ialah cara dua mesin akhirnya berkongsi satu sijil. Tolak larian itu dan namakan pemilik yang berkonflik.

Aktifkan satu pemilik dan buktikannya

Pilih satu laluan pengaktifan, sama ada instans systemd atau NetworkManager, dan gunakannya secara konsisten. Memulakan proses openvpn yang tidak diurus di sebelah unit yang diaktifkan memberikan dua terowong, kemas kini DNS yang bersaing dan tiada jawapan jelas tentang yang mana dituju oleh arahan berhenti. Selepas pengaktifan, semak systemctl is-active openvpn-client@office, kemudian laluan ke awalan jauh, kemudian resolvectl status untuk penyelesai yang dipasang oleh terowong. Akhiri dengan mencapai satu sumber yang menjadi sebab terowong itu wujud.

Proses yang berjalan dan ikon dulang hijau ialah fakta proses, bukan bukti bahawa identiti dan dasar trafik terselamat daripada penyerahan.

Larian semula dan persaraan ialah aliran kerja berasingan

Larian kedua sepatutnya menumpu pada fail yang sama yang telah disemak dan pemilik yang sama, bukan mencipta akaun kedua atau daemon kedua. Persaraan ialah prosedurnya sendiri: hentikan pemilik yang tepat, arkibkan atau hapuskan profil tempatan mengikut dasar, dan batalkan identiti di gateway. Menghapuskan fail kunci tempatan tidak membatalkan salinan yang sudah meninggalkan mesin.

Kekalkan laluan pemulihan yang tidak bergantung pada terowong, seperti akses konsol atau laluan pengurusan kedua. Perubahan penyediaan yang mengunci anda di luar mesin ialah perubahan yang gagal walaupun setiap peringkat melaporkan kejayaan.

Skrip yang wajar disimpan ialah transaksi tentang pemilikan dan bukti. Senarai pendek arahan salin istimewa bukan perkara yang sama.

Artikel berkaitan