Uji pemulihan pelayan VPN selepas but semula: apa yang perlu diperiksa dahulu
But semula tanpa ada yang log masuk, kemudian sambung dari luar. Periksa unit, antara muka, laluan dan peraturan firewall yang mesti kembali sendiri.
But semula pelayan tanpa ada yang log masuk, kemudian sambung dari rangkaian yang anda tidak kawal. Ujian tunggal ini menjawab sama ada pemulihan itu benar, kerana terowong yang hanya berfungsi selepas seseorang menjalankan arahan secara manual bukan pemulihan, ia pembaikan. Kebanyakan pemeriksaan berhenti terlalu awal: daemon kelihatan aktif, antara muka naik, dan halaman masih tidak dimuatkan. Jurangnya hampir selalu pada ketahanan bahagian di sekeliling terowong, bukan pada arahan terowong itu sendiri.
Empat pemilik, empat ujian berbeza
Sebelum but semula, namakan apa yang sepatutnya mengembalikan terowong. Ujian yang anda jalankan dan pembaikan yang anda gunakan kedua-duanya bergantung pada jawapan itu, dan terdapat empat pemilik biasa: unit systemd untuk daemon VPN, unit contoh wg-quick untuk antara muka WireGuard, runtime kontena atau profil pengurus rangkaian. Jika anda tidak dapat menamakan pemiliknya, berhenti dan cari, kerana ujian but semula tanpa laluan permulaan yang dijangka hanya memberitahu bahawa sesuatu berlaku.
Setiap pemilik menyimpan konfigurasinya di tempat berbeza. Pelayan OpenVPN yang diuruskan systemd membaca konfigurasinya semasa mula, jadi apa sahaja dalam fail semasa but itulah yang berjalan. Antara muka wg-quick memperoleh alamat, laluan dan DNS daripada fail yang sama, bermakna antara muka yang dinaikkan secara manual dari shell dan tidak pernah didayakan sebagai unit tidak akan kembali. Kontena mengembalikan titik masuknya tetapi bukan perubahan firewall hos, melainkan jika perubahan itu berada di luar kontena.
Garis dasar dahulu, jika tidak hasilnya tidak bermakna
Catat keadaan yang berfungsi semasa ia berfungsi: alamat pada terowong, laluan untuk subnet klien, peraturan NAT atau penghantaran, soket pendengar, dan sysctl penghantaran. ip addr show wg0, ip route, nft list ruleset atau iptables-save, ss -lunp dan sysctl net.ipv4.ip_forward mencukupi pada kebanyakan hos.
Catat bagaimana perkhidmatan dikonfigurasikan untuk bermula, bukan hanya ia berjalan. systemctl is-enabled wg-quick@wg0 dan systemctl is-active wg-quick@wg0 menjawab soalan berbeza, dan keadaan didayakan itulah yang penting semasa but, seperti diterangkan dalam systemctl(1). Untuk OpenVPN, periksa templat mana yang digunakan hos, kerana openvpn@server dan openvpn-server@server ialah unit berbeza dengan lalai berbeza.
Jalankan but semula dan baca kegagalan pertama
But semula dengan sengaja, dalam tetingkap yang anda pilih, dengan konsol atau laluan luar jalur terbuka. Perhatikan urutan peristiwa bukan keadaan akhir: hos boleh dicapai, unit diaktifkan, antara muka hadir, laluan dipasang, peraturan firewall hadir, pendengar terikat, klien diterima. Langkah pertama yang tidak berlaku ialah penemuan; segala selepasnya ialah bunyi bising.
Daemon boleh aktif semasa terowong tidak boleh digunakan, dan itulah kelulusan palsu yang paling biasa. Permulaan boleh selesai sebelum rangkaian dalam talian jika unit hanya menunggu network.target dan bukan network-online.target. Fail yang dirujuk seperti sijil, kunci atau CRL mungkin tidak boleh dibaca pada ketika itu kerana lekap atau laluan rahsia belum sedia. Kedua-dua masalah tidak muncul dalam systemctl status sehingga anda membaca jurnal unit.
Uji dari luar hos. Klien pada LAN yang sama boleh berjaya melalui laluan yang tiada klien jauh akan gunakan, dan sesi SSH ke mesin itu tidak membuktikan apa-apa tentang terowong. Sambung, selesaikan nama dalaman, capai sumber peribadi, kemudian sambung semula sekali untuk mengesahkan keadaan pembatalan dan kunci masih terpakai.
Tiga syarat yang menentukan pembaikan anda
Jika terowong kembali tetapi klien tidak mencapai apa-apa, kegagalan ada pada penghalaan atau ketahanan NAT. Jika klien tidak dapat menyelesaikan jabat tangan, kegagalan ada pada antara muka atau bahan pengesahan. Jika perkhidmatan tidak pernah bermula, kegagalan ada pada fail unit atau kebergantungannya. Ketiga-tiga cabang membawa kepada pembaikan berbeza, sebab itulah but semula buta tanpa garis dasar mengambil masa lebih banyak daripada yang dijimatkan.
Lakukan pembaikan di tempat tetapan dimiliki. Letakkan penghantaran dalam sysctl drop-in, letakkan peraturan NAT dalam set peraturan yang dimuatkan semasa but, dayakan unit dan bukan memulakannya, dan simpan rahsia pada laluan yang wujud sebelum unit bermula. Menambah tidur pada unit menyembunyikan kebergantungan dan bukan mengisytiharkannya.
Catat hasilnya dalam runbook
Tulis apa yang kembali sendiri, apa yang anda terpaksa mulakan, dan berapa lama jurang itu berlangsung. Sertakan arahan tepat yang anda gunakan untuk mengesahkan, supaya orang seterusnya mengulang ujian itu dan bukan mencipta yang baharu. Jika mana-mana langkah memerlukan arahan manual, arahan itu milik konfigurasi, bukan runbook sebagai langkah kekal.
Kemudian jadualkan ujian seterusnya selepas perubahan seterusnya pada tindanan rangkaian hos, bukan untuk tarikh kalendar enam bulan akan datang. Mod kegagalan yang anda lindungi ialah arahan sementara yang terasa kekal, dan ia muncul tepat apabila seseorang menyunting peraturan firewall atau memindahkan perkhidmatan ke unit baharu.