Pengaturan OpenVPN di router kembali setelah reboot: perbaiki generatornya
Firmware yang membangun ulang konfigurasi OpenVPN setiap kali boot membuang editan Anda. Tambal kait generator, lalu bandingkan file yang dihasilkan setelah satu reboot.
Firmware pada router konsumen atau NAS sering membangun ulang konfigurasi OpenVPN pada setiap start, sehingga direktif yang Anda tambahkan hanya bertahan tepat sampai boot berikutnya. Hal yang sama berlaku untuk kunci yang diketik di formulir web, di mana nilai tersimpan bisa kembali rusak setelah disimpan. Tak satu pun dari gejala ini berarti perubahan ditolak. Artinya, editan itu mendarat di berkas yang diperlakukan firmware sebagai keluaran, dan tempat yang tahan lama berada satu langkah lebih awal dalam urutan boot.
Mengapa berkas yang diedit dibangun ulang
Skrip start merakit konfigurasi server dari templat lalu menjalankan daemon, yang membuat berkas hasil render menjadi artefak build alih-alih sumber. Apa pun yang ditambahkan setelah start tidak terlihat oleh jalankan berikutnya skrip itu. Pola kedua lebih halus: masukan kunci dan sertifikat di antarmuka web disimpan dalam bentuk ter-escape, dan menyimpan formulir bisa mendorong teks ter-escape itu ke berkas yang dibaca daemon. Bagaimanapun, konfigurasi hasil render adalah tempat yang salah untuk perubahan yang bertahan.
Lihat apa yang ditulis urutan boot dan kapan menulisnya. Jawabannya hampir selalu skrip di direktori init atau autorun firmware.
Sisipkan direktif di tempat skrip membangun berkas
Perangkat QTS membangun ulang konfigurasi server OpenVPN di dalam skrip init yang menjalankan daemon, jadi editannya harus terjadi di sana. Tambahkan penambahan tepat sebelum perintah start alih-alih menyunting berkas hasil.
sed -i '/daemon_mgr/i echo client-config-dir clientconfig >>/etc/openvpn/server.conf' /etc/init.d/vpn_openvpn.sh
grep -c client-config-dir /etc/openvpn/server.confJangkarkan penyisipan pada perintah yang tidak akan bergeser, karena nomor baris bergeser antarbuild. Karena skrip init itu sendiri diganti saat boot, perubahan harus diterbitkan ulang dari kait autorun firmware setiap kali sistem mulai. Setelah satu reboot, hitung kemunculan di berkas hasil: satu baris berarti tambalan berhasil, sedangkan dua berarti kait berjalan lebih dari sekali. Selidiki jalankan ganda secara terpisah, karena itu bukan kerusakan yang sama dengan perubahan yang hilang.
Perbaiki formulir yang menyimpan kunci ter-escape
Di halaman bergaya Asus, kolom sertifikat dan kunci menampilkan teks ter-escape, dan menyimpan setelah penyesuaian tak terkait bisa menuliskan entitas itu kembali ke disk. Bekerjalah dari salinan yang sudah didekode dan simpan hanya sekali, setelah semua editan siap.
openssl dhparam -out dh2048.pem 2048
grep -n "BEGIN DH PARAMETERS" dh2048.pemSaat menukar set parameter baru, tempelkan hanya muatan base64 jika label meminta badan kunci, dan pertahankan baris armor hanya saat kolom mengharapkan blok PEM lengkap. Memulihkan halaman yang sudah tersimpan dalam bentuk ter-escape biasanya berarti mengosongkan masukan yang terdampak dan menerapkan, yang memungkinkan firmware membangunnya lagi. Hasilkan apa pun di atas 2048 bit di workstation, karena pasokan entropi router membuat operasinya lambat dan kadang tidak andal. Simpan berkas parameter di tempat yang bisa Anda jangkau setelah reset pabrik.
Periksa lagi setelah pembaruan
Pembaruan firmware mengganti skrip init dan bisa menghapus direktori autorun, jadi tambalan harus dipasang ulang dan diuji lagi. Bandingkan berkas hasil bangun ulang dengan salinan yang Anda simpan dan pastikan direktif ada tepat satu kali. Nilai yang terlihat di antarmuka web bukan bukti bahwa daemon menerimanya, karena halaman membaca kolom tersimpan. Tuliskan perintah tambalan dan versi firmware ke catatan pemeliharaan agar pembaruan berikutnya membawanya serta.
Lalu hubungkan klien dan baca log server untuk opsi yang didorong. Pengaturan yang hanya pernah ada di formulir adalah pengaturan yang belum diuji siapa pun.