Hadkan log masuk OpenVPN kepada satu kumpulan dengan dasar PAM
Perkhidmatan PAM khusus boleh menerima hanya ahli kumpulan VPN tanpa menyentuh peraturan log masuk seluruh sistem. Halakan plugin auth-pam kepadanya dan uji hasilnya.
Biarkan setiap akaun boleh log masuk seperti biasa, tetapi benarkan hanya satu kumpulan menggunakan VPN. PAM boleh meluahkan perbezaan itu tanpa stor kata laluan kedua, dan plugin OpenVPN boleh dihalakan ke perkhidmatan yang hanya mengandungi pemeriksaan yang anda maksudkan. Helahnya ialah membina perkhidmatan itu tanpa mewarisi timbunan seluruh sistem secara tidak sengaja.
Panduan di sini bermula daripada nama perkhidmatan plugin, membina dasar, dan kemudian menguji tiga hasil yang penting: ahli, orang luar dengan kata laluan yang sah, dan kelayakan yang buruk.
Mengapa perkhidmatan PAM berasingan
Plugin auth-pam mengambil nama perkhidmatan sebagai hujahnya. Nama itu memilih fail di bawah /etc/pam.d, dan timbunan dalam fail itu yang berjalan semasa log masuk VPN. Jika anda memberikan nama yang sama dengan log masuk seluruh sistem, anda mewarisi setiap keputusan dalam timbunan itu, termasuk yang ditambah kemudian atas sebab tidak berkaitan.
Cipta perkhidmatan khusus sebagai gantinya. Mulakan dengan timbunan berfungsi yang sudah mengesahkan terhadap backend yang dimaksudkan, seperti fail kata laluan tempatan, SSSD atau perkhidmatan direktori, kemudian tambah peraturan kelayakan. Menyalin dua baris ke fail kosong ialah kesilapan biasa: luput kata laluan, kunci akaun dan pemeriksaan lain mungkin berada dalam timbunan yang tidak anda salin.
Mengasingkan perkhidmatan juga mengehadkan skop kerosakan. Peraturan khusus VPN dalam timbunan dikongsi boleh menafikan akses SSH atau konsol kepada semua orang, yang menjadikan perubahan akses sebagai gangguan.
Menulis peraturan kumpulan
Pemeriksaan kelayakan tergolong dalam fasa akaun, selepas kelayakan disahkan. Peraturan seperti account required pam_succeed_if.so user ingroup vpnusers membenarkan pemprosesan diteruskan hanya apabila pengguna yang disahkan ialah ahli kumpulan itu.
Baris itu ialah serpihan, bukan perkhidmatan lengkap. Gabungkannya di tempat setiap laluan yang diterima mencapainya, dan periksa bendera kawalan di sekelilingnya. Kawalan sufficient atau lompatan lebih awal dalam timbunan boleh menamatkan pemprosesan sebelum peraturan anda berjalan, yang menjadikan sekatan itu sebagai cadangan.
Jangan tambah use_uid kerana kebiasaan. Tanpanya modul menilai pengguna yang disahkan; dengannya modul menilai akaun tempat proses OpenVPN berjalan, yang biasanya root atau akaun perkhidmatan dan oleh itu bukan orang yang log masuk.
Keahlian kumpulan datang daripada penyelesaian identiti sistem, bukan daripada nama yang anda kenali. Untuk pengguna direktori, sahkan bahawa backend yang sama menjawab pertanyaan kumpulan bagi pengguna itu, kerana kumpulan tempatan dengan nama biasa ialah objek berbeza daripada kumpulan direktori dengan nama yang sama.
Perangkap susunan dan identiti
Letakkan peraturan kumpulan selepas timbunan pengesahan dan selepas setiap pemeriksaan yang masih mesti terpakai, tetapi sebelum atau bersama pemeriksaan akaun yang anda kekalkan. PAM menilai modul mengikut susunan fail, dan nilai kawalan pada setiap baris menentukan sama ada kegagalan itu muktamad.
Awas timbunan berganda. Corak biasa ialah include yang sudah mengandungi peraturan akaun, diikuti peraturan kumpulan anda sendiri, yang menghasilkan dua keputusan di tempat anda menjangka satu. Baca fail yang disertakan, bukan hanya yang anda sunting. Cara cepat untuk melihat susunan berkesan ialah membaca fail dari atas ke bawah dan mencatat setiap nilai kawalan.
Kekalkan keperluan kemasukan lain tanpa diusik. Kata laluan yang berjaya tidak menggantikan pemeriksaan sijil, faktor kedua atau kebenaran selepas sambungan, dan dasar ini bukan pengganti mana-mana daripadanya. Ia hanya menentukan sama ada akaun itu layak dipertimbangkan untuk akses VPN.
Menguji ahli, orang luar dan kata laluan salah
Uji tiga kes sebelum anda menganggap dasar itu selesai. Seorang ahli bersambung dengan jayanya. Akaun sah di luar kumpulan mengesahkan kata laluannya tetapi ditolak akses VPN. Kata laluan salah untuk mana-mana akaun ditolak pada peringkat pengesahan, bukan oleh peraturan kumpulan.
Lihat ralat yang kelihatan kepada klien dan log pelayan bersama-sama, kerana kedua-dua kegagalan boleh kelihatan serupa kepada orang yang bersambung. Perbezaannya penting untuk sokongan: orang luar dengan kata laluan betul memerlukan perubahan kumpulan, manakala kata laluan salah memerlukan penetapan semula kelayakan.
Biarkan sesi kedua terbuka semasa anda menyunting PAM, dan sahkan juga log masuk SSH biasa selepas perubahan. Inti perkhidmatan khusus ialah log masuk sistem sepatutnya tidak terjejas, dan satu-satunya cara untuk mengetahuinya ialah mengujinya.
Jika sesuatu rosak, pulihkan fail perkhidmatan sebelumnya daripada salinan. Peraturan yang anda mahukan mudah dinyatakan: keahlian menjadikan akaun layak untuk akses VPN, dan setiap pemeriksaan wajib yang lain masih terpakai.