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?

Luma
sumber

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.

Slartibartfast
sumber
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
yanqian
sumber
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.

EEAA
sumber
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.

Ryan Bair
sumber
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 = @[email protected], @[email protected]

visudo

restart layanan sssd.

Adam S
sumber
-3

Saya telah mencapai biarkan hanya satu AD_USER atau AD_GROUP untuk ssh login kotak linux melalui otentikasi AD.

Detailnya tercantum di sini: (perhatikan langkah 7 dan 8)

https://gist.githubusercontent.com/xianlin/8c09d916994dac7630b9/raw/ee07817a03bc5904a5404a7e7c94e08ea0c7560a/CentOS_AD_Integration

Xianlin
sumber
Informasi tidak ada
Geoffrey
Tautan sudah mati, pos tidak berguna.
FreeSoftwareServers
Saya hanya melihat langkah 404. No. 7 dan 8.
Todd Walton