Biner openvpn mana yang berjalan? Periksa jalur peluncuran
Nama perintah, jalur layanan, dan berkas paket bisa menjadi tiga objek berbeda. Periksa jalur peluncuran, verifikasi berkas paket, lalu singkirkan pembungkusnya.
Sebuah solusi lama memindahkan berkas eksekusi OpenVPN ke tempat lain dan meninggalkan pembungkus shell di jalur aslinya. Berbulan-bulan kemudian datang pembaruan, dan membatalkan solusi itu berubah menjadi tebak-tebakan tentang berkas mana yang benar-benar klien. Nama perintah, berkas eksekusi yang dikonfigurasi di layanan, dan daftar berkas paket itu sendiri semuanya bisa menunjuk ke objek yang berbeda, dan memperbaiki salah satunya tanpa yang lain menghasilkan host yang tampak beres dan berperilaku lebih buruk.
Mulai dari jalur yang diluncurkan layanan
Terminal dan unit systemd tidak menyelesaikan berkas eksekusi dengan cara yang sama. Shell mencari di PATH; unit menyebut sebuah jalur, dan penggantian drop-in dapat menggantinya tanpa menyentuh berkas yang sedang Anda baca. Perbedaan itulah yang menjelaskan sebagian besar kebingungan dalam tugas ini. Perbedaan itu juga menentukan berkas mana yang harus menjadi sasaran perbaikan Anda.
Tanyakan kepada unit apa yang dijalankannya, termasuk drop-in yang mengubahnya, dan baca baris ExecStart yang dihasilkan, bukan fragmen yang Anda anggap otoritatif. Lalu ikuti jalur itu melalui tautan simbolik mana pun hingga berkas terakhir. Pembungkus yang berakhir dengan exec ke direktori tersembunyi adalah susunan umum dari perbaikan lama ini.
Catat jalur yang telah diselesaikan sebelum Anda mengubah apa pun.
systemctl cat [email protected] | grep -n 'ExecStart'
readlink -f "$(command -v openvpn)"Bandingkan nama perintah dengan jalur layanan
Kedua jawaban sering berbeda, dan perbedaan itu tidak otomatis merupakan kesalahan. Plugin NetworkManager dapat meluncurkan jalurnya sendiri, dan kontainer dapat memasang jalur lain.
Yang penting adalah mengetahui pemilik mana yang meluncurkan proses yang melayani lalu lintas. Jika unit menjalankan /usr/local/sbin/openvpn-wrapper sementara shell Anda menyelesaikan /usr/sbin/openvpn, memperbaiki berkas kedua tidak mengubah apa pun pada layanan.
Tanyakan paket mana yang memiliki setiap kandidat, lalu putuskan apakah berkas itu dikelola paket atau ditempatkan secara lokal. Berkas tanpa paket pemilik adalah berkas yang sengaja diletakkan seseorang di sana, dan ia layak mendapat nama, pemilik, dan alasan sebelum dihapus. Kesalahan sebaliknya juga umum: menimpa berkas paket dengan biner lama yang disimpan karena sebuah pos forum memakai direktori yang sama.
Biarkan basis data paket berbicara tentang berkas paket
Ketika perangkat lunak berasal dari paket Debian, basis data paket dapat memberi tahu apakah berkasnya masih cocok dengan yang dipasang. Itu pertanyaan integritas yang sempit, bukan vonis keamanan, dan perbedaannya penting saat Anda memutuskan apa yang harus diperbaiki. Ketidakcocokan berarti berkas berubah setelah pemasangan, yang bisa jadi solusi lama Anda atau penyuntingan lokal yang sah. Keluarannya tidak memutuskan yang mana, jadi bacalah sebagai penunjuk, bukan kesimpulan.
Jalankan verifikasi dan baca keluarannya alih-alih memperlakukan hasil kosong sebagai bukti apa pun.
dpkg -S /usr/sbin/openvpn
dpkg --verify openvpnManual dpkg mendokumentasikan bahwa verifikasi membandingkan berkas terpasang dengan metadata yang dicatat secara lokal, menggunakan checksum tersimpan bila ada. Verifikasi itu mencatat berkas paket yang berubah, dan tidak dapat memberi tahu apakah biner lain yang diluncurkan sebagai gantinya.
Catat keadaan sebelum memperbaiki
Kumpulkan jalur peluncuran yang telah diselesaikan, hubungan berkas dengan paket, lokasi pembungkus, dan catatan perubahan yang memperkenalkannya. Salin pembungkus ke tempat terlindungi jika berisi pekerjaan integrasi yang akan diperlukan nanti.
Jangan tempelkan isi pembungkus ke utas dukungan sebelum membacanya, karena skrip ini kadang membawa kredensial atau detail gateway.
Catat profil mana yang dipakai layanan dan siapa yang terhubung selama Anda bekerja, karena memulai ulang terowongan dapat memutus sesi yang Anda gunakan untuk mengelola host.
Verifikasi peluncuran, lalu singkirkan pembungkus
Setelah perbaikan, jalankan layanan dan pastikan proses berjalan pada jalur yang Anda maksudkan. Kueri versi yang dijalankan dengan tangan membuktikan berkas berfungsi; itu tidak membuktikan unit memakainya.
Lalu sambungkan kembali klien dan periksa apakah profil masih mengautentikasi, karena penggantian biner yang mengabaikan opsi asli akan gagal dengan cara yang tampak seperti masalah sertifikat.
Singkirkan pembungkus yang tergeser melalui catatan perubahan yang sama yang memperkenalkannya. Perbaikan yang selesai menyatakan biner mana yang berjalan, mengapa, dan berkas mana yang dihapus; memulihkan nama berkas dan berharap bukanlah hal yang sama.