Xác thực thư mục Linux + Active + chỉ cho phép một số nhóm nhất định đăng nhập


14

Tôi có một số hộp linux sử dụng xác thực Windows Active Directory, nó hoạt động tốt (Samba + Winbind).

Những gì tôi muốn làm bây giờ mặc dù chỉ cho phép một số người hoặc một số nhóm nhất định đăng nhập bằng thông tin đăng nhập Active Directory. Hiện tại bất cứ ai có tài khoản AD hợp lệ đều có thể đăng nhập. Tôi muốn giới hạn điều này chỉ một vài nhóm. Đây có phải là có thể làm được?

Câu trả lời:


6

Giả sử các nhóm có sẵn cho hệ thống Linux, tôi khuyên bạn nên chỉnh sửa /etc/security/access.confcho Ubuntu, các bản phân phối RedHat (và dĩa của họ) và có thể là một nhóm khác. Điều này không yêu cầu chỉnh sửa các tệp PAM và là nơi tiêu chuẩn độc đáo để thực hiện. Thường có các ví dụ trong tập tin, nhận xét.


Cảm ơn, đây là những gì tôi đã sử dụng để làm những gì tôi muốn làm, tất cả các câu trả lời ở trên tuyệt vời nhưng đây là câu trả lời tốt nhất cho tôi. Tôi sử dụng tệp Samba để khóa Samba và bây giờ tôi đang sử dụng tệp access.conf này để khóa thông tin đăng nhập SSH.
Luma

4

(Tôi đang nói về samba 3 ở đây, không có kinh nghiệm về samba 4 bây giờ.)

Không cần chỉnh sửa các tập tin /etc/pam.d/xxx đó. pam_winbind.conf là tệp bạn muốn, nó thường nằm ở /etc/security/pam_winbind.conf .

Đây là tệp cấu hình của mô-đun pam_winbind và nó hoạt động cho cả CentOS / Redhat và Debian / Ubuntu. Bạn có thể đọc trang man của pam_winbind.conf để tham khảo.

Đây là một tập tin ví dụ.

#
# 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

Tôi hiện đang sử dụng AllowGroupschỉ thị /etc/ssh/sshd_configđể giới hạn người có thể đăng nhập. Chỉ định một hoặc nhiều nhóm AD trên dòng đó và những người đó sẽ là những người duy nhất có thể đăng nhập.

Hãy nhớ rằng điều này chỉ hoạt động nếu người dùng của bạn chỉ truy cập máy chủ từ xa thông qua ssh. Nếu họ hát ở địa phương, bạn sẽ cần tìm giải pháp khác.


3

Vâng, có một vài cách để làm điều này tùy thuộc vào những gì bạn đang cố gắng thực hiện chính xác.

Phương pháp đầu tiên có thể được thực hiện thông qua cấu hình samba. Điều này sẽ chỉ cho phép những người dùng này kết nối với Samba, những người dùng khác vẫn có thể đăng nhập thông qua các dịch vụ khác (ssh, thuật ngữ địa phương, v.v.). Với điều này, bạn sẽ muốn thêm một dòng vào phần [toàn cầu] của mình trong smb.conf:

valid users = @groupA @groupB

Phương pháp khác là bằng cách sửa đổi các quy tắc PAM. Các bản phân phối khác nhau có sự khác biệt nhỏ ở đây, nhưng nói chung có các quy tắc PAM trên mỗi dịch vụ cũng như các quy tắc chung, bạn có thể quyết định điều gì là tốt nhất. Bạn sẽ muốn thêm một hạn chế tài khoản bằng mô-đun pam numquire. Một ví dụ trên máy tính xách tay của tôi (Fedora 13) sẽ sửa đổi phần tài khoản trong /etc/pam.d/system-auth thành:

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

Để đơn giản hóa việc quản trị, bạn có thể muốn tạo một nhóm mới trong AD nhằm mục đích theo dõi người dùng có thể đăng nhập vào máy chủ này.


1

Tôi đã vật lộn với bất kỳ điều nào ở trên để làm việc cho tôi trong RHEL 7. Dưới đây là những gì tôi có thể làm việc.

/etc/sssd/sssd.conf

Thay đổi access_provider = ad thành access_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

thị giác

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

khởi động lại dịch vụ sssd.


-3

Tôi đã đạt được chỉ cho phép một AD_USER hoặc AD_GROUP đăng nhập vào hộp linux thông qua xác thực AD.

Các chi tiết được liệt kê như ở đây: (chú ý đến bước 7 và 8)

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


Thông tin bị thiếu
Geoffrey

Liên kết là chết, bài vô dụng.
FreeSoftwareServers

Tôi chỉ thấy bước 404. Số 7 và 8.
Todd Walton
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.