Mengapa peer WireGuard yang dipadam kembali selepas dimulakan semula
Dua keadaan memegang senarai peer: antara muka yang berjalan dan apa yang menulisnya semasa boot. Buangnya daripada kedua-duanya, dan semak SaveConfig sebelum mengubah apa-apa.
Identiti hilang daripada antara muka yang berjalan dan perubahan itu kelihatan selesai. Selepas perkhidmatan dimulakan semula, ia kembali, yang dibaca seolah-olah WireGuard mengabaikan arahan itu. Apa yang sebenarnya berlaku lebih mudah: konfigurasi semasa boot masih mengandungi peer itu.
Dua keadaan memegang senarai itu. Pembatalan hanya benar apabila kedua-duanya kehilangannya.
Apa yang sebenarnya diubah oleh wg set
Arahan wg set wg0 peer <public-key> remove menyunting antara muka yang berjalan di dalam kernel. Ia tidak menulis apa-apa ke cakera. Fail konfigurasi, profil NetworkManager atau keadaan tersimpan penghala kekal tidak disentuh. Itulah reka bentuknya, bukan pepijat.
Pemisahan itu disengajakan, kerana alat itu tidak tahu siapa pemilik antara muka. Arahan masa jalan mesti selamat terhadap antara muka yang diuruskan oleh sesuatu yang lain. Ia tidak boleh meneka di mana salinan tahan lama berada. Kesannya mudah dinyatakan: pembuangan semasa masa jalan adalah sementara secara binaan.
Jadi peer kembali pada permulaan semula seterusnya, dan ia kembali dengan awalan yang dibenarkan asalnya. Apa sahaja yang dihalakan melaluinya turut dicipta semula. Identiti yang dianggap sudah dibatalkan boleh sampai ke destinasinya yang lama selepas dimuat semula. Tiada apa-apa dalam output masa jalan yang memberi amaran kepada sesiapa.
Cari penulis sebelum menyunting fail
Antara muka mempunyai pemilik. Ia mungkin wg-quick yang membaca fail, NetworkManager yang menggunakan profil, konfigurasi antara muka penghala itu sendiri, atau titik masuk kontena yang mencipta semula antara muka semasa bermula. Menyunting fail yang tidak pernah dibaca oleh pemilik tidak menghasilkan sebarang perubahan kekal.
Mulakan daripada antara muka yang berjalan dan kenal pasti kunci awam, kerana nama dan alamat ialah pengecam yang lebih lemah daripada kunci itu sendiri. Kemudian bandingkan senarai itu dengan konfigurasi tersimpan yang benar-benar dibaca oleh pemilik.
wg show wg0 peers
wg show wg0 allowed-ips
systemctl status wg-quick@wg0 --no-pager
ls -l /etc/wireguard
Antara muka hidup yang senarai peer dan kandungan failnya tidak sepadan ialah keseluruhan diagnosis. Konfigurasi tersimpan menang semasa boot, dan keadaan masa jalan kalah. Bandingkan kedua-duanya sebelum mengubah mana-mana satu.
Perangkap SaveConfig
wg-quick menambah satu lipatan yang menangkap orang yang menyunting fail secara manual. Apabila SaveConfig diaktifkan, tingkah laku penutupannya yang didokumenkan menulis keadaan masa jalan semasa ke atas fail konfigurasi.
Itu membalikkan arah kegigihan yang biasa. Anda membuang peer daripada fail, kemudian perkhidmatan berhenti. Keadaan yang berjalan ditulis semula ke atas suntingan anda dan memulihkan peer yang baru anda hapuskan.
Jadi urutan penting: sunting fail semasa antara muka dimatikan, atau nyahdayakan SaveConfig sebelum menyunting, kemudian naikkan semula antara muka dan sahkan apa yang dimuatkan. Suntingan tangan semasa antara muka dihidupkan ialah perlumbaan dengan penulisan semasa penutupan.
Tukar kedua-dua keadaan, kemudian muat semula
Dalam masa jalan, buang peer mengikut kunci. Dalam konfigurasi tersimpan, buang blok yang sama melalui operasi yang disokong pemilik, bukan dengan menyunting di sekelilingnya.
Kemudian semak apa yang dibawa oleh peer itu. Rangkaian berhalau yang dahulunya milik identiti yang dibatalkan harus ditugaskan semula dengan sengaja atau dibuang, bukan diwarisi secara senyap oleh peer yang disunting seterusnya.
Kekalkan laluan pemulihan terbuka jika get laluan turut membawa akses pentadbiran anda. Permulaan semula yang membuang peer yang salah ialah gangguan yang anda cipta sendiri. Perkara sama berlaku untuk permulaan semula yang membuang laluan yang salah.
Bagaimana ujian yang lulus kelihatan
Muat semula atau mulakan semula perkhidmatan, kemudian baca senarai peer sekali lagi. Kunci lama mesti tiada, dan peer yang anda mahu kekalkan mesti masih ada dan berfungsi.
wg show wg0 peers
wg show wg0 allowed-ips
sudo wg-quick down wg0 && sudo wg-quick up wg0
wg show wg0 peers
Di mana keadaan mengizinkan, sahkan bahawa identiti lama tidak lagi sampai ke sumber dayanya yang dahulu. Senarai antara muka yang kemas sebelum permulaan semula ialah separuh ujian. Separuh lagi ialah apa yang masih boleh dilakukan oleh identiti itu selepasnya.
Jika sesuatu pengurus terus memulihkan peer itu, berhenti mengulangi pembuangan peringkat rendah. Betulkan inventori yang dibaca oleh penulis itu, kerana sehingga itu setiap permulaan semula ialah satu lagi jemputan untuk identiti itu muncul semula.