OpenVPN mencetak peringatan saat mulai yang menyarankan auth-nocache, dan tanggapan yang menggoda adalah menambahkan opsi itu dan melihat barisnya hilang. Nasihat itu mengandaikan login interaktif. Begitu nama pengguna dan kata sandi tinggal di berkas, perbandingannya berubah: opsi berhenti melindungi salinan yang tahan lama, dan pada klien yang melepaskan hak istimewa opsi itu dapat merusak negosiasi ulang nanti. Dua model penyimpanan layak dipisahkan sebelum Anda menyunting profil.

Dua cara menjawab permintaan kredensial

Model pertama adalah orang yang mengetikkan kredensial di terminal, atau antarmuka manajemen yang menyimpannya untuk sesi tersebut. OpenVPN menyimpan salinan itu agar dapat menjawab negosiasi ulang berikutnya tanpa bertanya lagi, dan itulah tepatnya yang dimaksud peringatan itu. Tidak ada yang terlibat di disk, jadi satu-satunya yang perlu dilindungi adalah proses yang memegang nilai itu. Tutup klien dan salinannya ikut hilang.

Model kedua adalah auth-user-pass yang menunjuk ke berkas, di mana berkas itulah penyimpanannya dan klien membacanya saat nilai dibutuhkan. Paparan yang penting di sini bukan memori proses melainkan izin dan kepemilikan berkas itu. Peringatan saat mulai berasal dari direktif dalam konfigurasi, bukan dari pemeriksaan cara Anda memasok kata sandi, jadi peringatan itu muncul pada kedua model dan tidak menunjuk ke salah satunya.

Sisa perbandingan ini mengikuti pembagian itu: penanganan memori untuk satu model, penanganan berkas dan identitas proses untuk yang lain.

Apa yang sebenarnya dibuang auth-nocache

Dengan login interaktif, --auth-nocache menghapus salinan tersimpan dari memori setelah dipakai. Biayanya adalah permintaan baru pada setiap interval negosiasi ulang, karena putaran berikutnya tidak dapat memakai ulang apa yang telah dibuang.

Dengan login berbasis berkas klien dapat membaca berkas itu lagi, jadi pembuangannya sebagian besar tak terlihat. Ia menjadi terlihat di satu tempat yang tidak orang duga: setelah daemon melepaskan hak istimewa, jika berkas kredensial tidak dapat dibaca oleh akun yang kini menjalankannya.

Tambahkan opsi itu karena Anda memahami pertukaran tersebut, bukan karena peringatan muncul. Opsi yang ditambahkan untuk membuat log lebih tenang adalah opsi yang efeknya tidak diukur siapa pun.

Di mana jalur berbasis berkas rusak

Klien yang mulai sebagai root untuk membuka perangkat terowongan lalu beralih ke user dan group membaca berkas kredensial dua kali: sekali sebelum beralih, sekali pada negosiasi ulang sesudahnya. Jika berkas bermode 600 dan dimiliki root, pembacaan kedua gagal, dan kegagalan itu muncul satu jam kemudian sebagai galat autentikasi yang tampak seperti masalah server. Periksa log klien di sekitar interval negosiasi ulang, lalu periksa akun dan berkasnya bersama-sama.

stat -c '%a %U:%G' /etc/openvpn/client.creds
ps -o user:12,args -C openvpn | head

Kedua baris itu penting. Yang pertama memberi tahu siapa yang dapat membaca berkas, yang kedua memberi tahu siapa daemon yang benar-benar berjalan, dan ketidakcocokan di antara keduanya menjelaskan kegagalan yang tidak akan diperbaiki oleh pengetikan ulang kata sandi berapa pun.

Perbaikannya praktis dan tidak mentereng: pindahkan berkas ke direktori dan pemilik yang dapat dibaca akun daemon, atau pertahankan pembacaan istimewa dan pastikan klien Anda hanya membaca sekali. Jangan selesaikan dengan membuat berkas itu dapat dibaca semua orang.

Kasus yang memang menginginkan opsi itu

Login yang membawa kode sekali pakai menginginkan auth-nocache karena alasan berbeda. Kode sekali pakai habis oleh autentikasi pertama, jadi salinan di cache tidak berguna pada negosiasi ulang berikutnya dan nilai basi bahkan bisa diputar ulang.

Itu pertanyaan tentang jenis kredensial, bukan tentang tempat menyimpannya. Kata sandi statis dalam berkas terlindungi punya profil sebaliknya: ia harus dapat dibaca pada setiap negosiasi ulang, dan perlindungan yang Anda butuhkan ada pada berkasnya.

Pisahkan kedua alasan itu dalam komentar profil, sebab jika tidak administrator berikutnya akan menganggap opsi itu ada karena alasan yang akan ia pilih.

Perbandingan dalam satu keputusan

Pilih model interaktif ketika ada orang dan kesegaran penting, lalu terima permintaan berulang sebagai biayanya. Pilih model berkas ketika klien berjalan tanpa pengawasan, dan belanjakan usahanya pada kepemilikan, mode, dan pelepasan hak istimewa.

Tidak ada model yang membuat kata sandi tersimpan aman dengan sendirinya, dan tidak ada yang membuat peringatan saat mulai bermakna.

Jika peringatan itu satu-satunya alasan Anda membuka profil, catat keputusannya alih-alih opsi tanpa penjelasan: kredensial berasal dari berkas yang dapat dibaca akun daemon, negosiasi ulang telah terlihat berhasil, dan bagian tentang negosiasi ulang dalam panduan OpenVPN 2.6 telah dibaca sebelum intervalnya diubah. Catatan itu bertahan lebih lama daripada bendera mana pun.

Artikel terkait