Tombol VPN berfungsi bagi administrator dan gagal bagi semua orang, jadi seseorang menambahkan baris ke sudoers. Baris itu biasanya hidup lebih lama daripada masalah yang seharusnya dipecahkan, dan sering memberi lebih banyak daripada yang dibutuhkan tombol. Sebelum menyunting kebijakan, periksa apakah pemilik koneksi yang didukung sudah bisa melakukan pekerjaannya. Tiga syarat di bawah ini menentukan apakah sudo terlibat sama sekali.

Syarat 1: pemilik yang didukung bisa melakukannya tanpa sudo

Di sebagian besar desktop Linux, manajer jaringan sudah memiliki koneksi VPN, dan otorisasinya melewati polkit, bukan sudo. Pengguna yang diizinkan menaikkan koneksi bisa melakukannya dari baris perintah tanpa aturan root apa pun. Periksa apa yang diizinkan manajer sebelum menganggap tombol itu butuh hak istimewa. Jika jawabannya ya, perubahan sudoers memecahkan masalah yang tidak ada.

nmcli connection show
nmcli connection up "Work VPN"

Jika manajer menolak, baca alasannya: aturan polkit yang hilang, koneksi milik pengguna lain, atau profil yang disimpan di tempat yang tidak bisa dibaca pengguna. Masing-masing punya perbaikan yang didukung dan lebih sempit daripada aturan sudo. Eskalasi hak istimewa adalah jalan terakhir, bukan yang pertama.

Syarat 2: aturan menyebut satu berkas eksekutabel dan argumennya

Jika sudo benar-benar diperlukan, aturan harus menyebut perintah persisnya dan, bila mungkin, argumen yang boleh dipakai. Aturan yang membiarkan pengguna menjalankan skrip pembungkus hanya seaman izin skrip itu, karena pengguna bisa menyunting apa yang akan dijalankan root. Aturan dengan karakter pengganti setelah perintah adalah masalah yang sama dalam bentuk lebih singkat.

sudo -l -U alice
ls -l /usr/local/sbin/vpn-up

Periksa setiap jalur dalam rantai perintah: biner, skrip yang dipanggilnya, berkas konfigurasi yang dibacanya, dan direktori apa pun di antaranya. Jika salah satunya bisa ditulis pengguna, aturan yang dibatasi itu praktisnya root tanpa batas. Argumen juga penting, karena perintah yang menerima jalur konfigurasi bisa diarahkan ke berkas yang dikendalikan pengguna. Tulis aturan untuk operasinya, bukan untuk tombolnya.

Berhenti jika perintah membutuhkan berkas yang dikendalikan pengguna agar bisa berjalan. Maka rancangannya salah, dan tidak ada sintaks sudoers yang membuatnya aman.

Syarat 3: seluruh kebijakan diurai, bukan hanya baris Anda

Validasi dengan editor yang mengunci berkas dan memeriksa sintaks, dan validasi kebijakan yang dirakit, bukan potongannya. Berkas yang berhasil diurai sendiri masih bisa merusak urutan penyertaan atau menggandakan aturan dengan cara yang mengubah perilaku.manual visudo mendokumentasikan editor pengunci dan mode hanya-periksa yang dipakai di sini.

sudo visudo -c
sudo visudo -cf /etc/sudoers.d/vpn-launcher

Pemeriksaan melaporkan berkas dan baris saat gagal, dan laporan itulah bagian yang berguna. Perbaiki perubahan yang dimaksud melalui editor, jangan memaksa menyimpan kesalahan yang sudah diketahui, karena kebijakan yang rusak bisa mengunci semua administrator sekaligus. Berkas di direktori penyertaan juga memerlukan kepemilikan dan mode yang diminta manual, atau akan diabaikan atau ditolak. Sintaks hanyalah gerbang pertama: setelah lolos, baca aturannya lagi dan tanyakan apa yang sebenarnya diizinkannya.

Berhenti jika satu-satunya cara membuat perubahan itu berfungsi adalah mematikan pemeriksaan sintaks. Itu bukan kebijakan, itu gangguan yang menunggu reboot.

Pemulihan: pertahankan sesi yang masih berfungsi

Sebelum menyimpan, pastikan sesi administratif yang sah sudah terbuka dan ada jalur kedua ke mesin itu. Kesalahan sudoers bisa menghilangkan kemampuan Anda memperbaikinya, dan tombol desktop tidak sepadan dengan risiko itu. Jika sudo sudah rusak, gunakan jalur pemulihan sistem yang terdokumentasi, jangan mengarang sendiri.

sudo -n true
id

Alternatif seperti pkexec bergantung pada pemasangan dan kebijakannya sendiri, jadi bukan prompt root kedua yang terjamin. Pisahkan juga otorisasi lokal dari penyediaan rahasia VPN: aturan sudo tidak bisa membuka agen rahasia yang tidak ada, dan tidak memenuhi MFA gateway. Setelah koreksi, uji akun normal yang hanya melakukan operasi yang dimaksud, lalu gunakan kontrol biasa manajer.

Keputusan berakhir saat Anda bisa mengatakan syarat mana yang membenarkan sudo, apa yang disebut aturan, bahwa seluruh kebijakan diurai, dan bagaimana Anda akan memulihkannya jika tidak. Peluncur berhak istimewa yang membuat Anda kehilangan akses administratif adalah pertukaran buruk, dan biasanya bisa dihindari.

Artikel terkait