Linux + Otentikasi direktori aktif + hanya membiarkan grup tertentu masuk


14

Saya memiliki beberapa kotak linux yang menggunakan otentikasi Direktori Aktif Windows, yang berfungsi dengan baik (Samba + Winbind).

Apa yang ingin saya lakukan sekarang adalah hanya mengizinkan orang atau kelompok tertentu untuk masuk menggunakan kredensial Active Directory. Saat ini siapa pun yang memiliki akun AD yang valid dapat masuk. Saya ingin membatasi ini hanya untuk beberapa grup. Apakah ini bisa dilakukan?

Jawaban:


6

Dengan asumsi grup tersedia untuk sistem Linux, saya sarankan mengedit /etc/security/access.confuntuk Ubuntu, distribusi RedHat (dan garpu mereka) dan mungkin banyak lainnya. Ini tidak memerlukan pengeditan file PAM, dan merupakan tempat standar yang baik untuk melakukannya. Biasanya ada contoh dalam file, berkomentar.


Terima kasih, inilah yang akhirnya saya gunakan untuk melakukan apa yang ingin saya lakukan, semua jawaban di atas bagus tapi inilah yang paling berhasil bagi saya. Saya menggunakan file Samba untuk mengunci Samba dan sekarang saya menggunakan file access.conf ini untuk mengunci login SSH.
Luma

4

(Saya berbicara tentang samba 3 di sini, tidak ada pengalaman pada samba 4 sekarang.)

Tidak perlu mengedit file /etc/pam.d/xxx tersebut. pam_winbind.conf adalah file yang Anda inginkan, biasanya terletak di /etc/security/pam_winbind.conf .

Ini adalah file konfigurasi modul pam_winbind, dan berfungsi baik untuk CentOS / Redhat dan Debian / Ubuntu. Anda dapat membaca halaman manual pam_winbind.conf untuk referensi.

Berikut ini contoh file.

#
# pam_winbind configuration file
#
# /etc/security/pam_winbind.conf
#

[global]

# turn on debugging
;debug = no

# turn on extended PAM state debugging
;debug_state = no

# request a cached login if possible
# (needs "winbind offline logon = yes" in smb.conf)
cached_login = yes

# authenticate using kerberos
;krb5_auth = no

# when using kerberos, request a "FILE" krb5 credential cache type
# (leave empty to just do krb5 authentication but not have a ticket
# afterwards)
;krb5_ccache_type =

# make successful authentication dependend on membership of one SID
# (can also take a name)
# require_membership_of = SID,SID,SID
require_membership_of = S-1-5-21-4255311587-2195296704-2687208041-1794

# password expiry warning period in days
;warn_pwd_expire = 14

# omit pam conversations
;silent = no

# create homedirectory on the fly
mkhomedir = yes

3

Saat ini saya menggunakan AllowGroupsarahan /etc/ssh/sshd_configuntuk membatasi siapa yang bisa login. Tentukan satu atau lebih grup AD pada baris itu, dan orang-orang itu akan menjadi satu-satunya yang dapat login.

Perlu diingat bahwa ini hanya berfungsi jika pengguna Anda hanya mengakses server dari jarak jauh melalui ssh. Jika mereka bernyanyi secara lokal, Anda harus mencari solusi lain.


3

Ya, ada beberapa cara untuk melakukan ini tergantung pada apa yang ingin Anda capai dengan tepat.

Metode pertama dapat dilakukan melalui konfigurasi samba. Ini hanya akan memungkinkan pengguna untuk terhubung ke Samba, pengguna lain masih dapat masuk melalui layanan lain (ssh, istilah lokal, dll). Dengan ini, Anda ingin menambahkan baris ke bagian [global] Anda di smb.conf:

valid users = @groupA @groupB

Metode lainnya adalah dengan memodifikasi aturan PAM. Distribusi yang berbeda memiliki sedikit perbedaan di sini, tetapi secara umum ada aturan PAM per layanan serta aturan umum, Anda dapat memutuskan mana yang terbaik. Anda ingin menambahkan batasan akun menggunakan modul pam_require. Contoh pada laptop saya (Fedora 13) adalah memodifikasi bagian akun di /etc/pam.d/system-auth ke:

account     required      pam_unix.so
account     required      pam_require.so @groupA @groupB
account     sufficient    pam_localuser.so
account     sufficient    pam_succeed_if.so uid < 500 quiet
account     required      pam_permit.so

Untuk menyederhanakan administrasi, Anda mungkin ingin membuat grup baru dalam AD untuk tujuan melacak pengguna yang dapat masuk ke server ini.


1

Saya berjuang untuk mendapatkan salah satu di atas untuk bekerja untuk saya di RHEL 7. Di bawah ini adalah apa yang saya bisa mulai bekerja.

/etc/sssd/sssd.conf

Ubah access_provider = ad ke access_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

visudo

  • %group1-admins@xxx.xxx.com ALL=(ALL) ALL

restart layanan sssd.


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.