Linux + Active Directory 인증 + 특정 그룹 만 로그인 허용


14

Windows Active Directory 인증을 사용하는 Linux 상자가 있는데 제대로 작동합니다 (Samba + Winbind).

그래도 지금하고 싶은 것은 특정 사람이나 특정 그룹 만 Active Directory 자격 증명을 사용하여 로그인하도록 허용하는 것입니다. 현재 유효한 AD 계정을 가진 사람은 누구나 로그인 할 수 있습니다. 나는 이것을 소수의 그룹으로 제한하고 싶다. 이것이 가능합니까?

답변:


6

Linux 시스템에서 그룹을 사용할 수 있다고 가정하면 /etc/security/access.conf우분투, RedHat 배포판 및 포크 등을 편집 하는 것이 좋습니다 . 이것은 PAM 파일을 편집 할 필요가 없으며, 그것을하기에 좋은 표준 장소입니다. 일반적으로 파일에 예제가 있으며 주석 처리되었습니다.


고마워, 이것이 내가하고 싶었던 일을하기 위해 사용했던 결과, 위의 모든 대답은 위대하지만 이것이 나에게 가장 효과적이었습니다. Samba 파일을 사용하여 Samba를 잠그고 이제이 access.conf 파일을 사용하여 SSH 로그인을 잠그고 있습니다.
Luma

4

(여기서 삼바 3에 대해 이야기하고 있습니다. 지금 삼바 4에 대한 경험이 없습니다.)

/etc/pam.d/xxx 파일을 편집 할 필요가 없습니다. pam_winbind.conf 는 원하는 파일이며 일반적으로 /etc/security/pam_winbind.conf에 있습니다.

pam_winbind 모듈의 구성 파일이며 CentOS / Redhat 및 Debian / Ubuntu 모두에서 작동합니다. pam_winbind.conf매뉴얼 페이지 를 참조하십시오.

다음은 예제 파일입니다.

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

현재 AllowGroups지시문을 사용하여 /etc/ssh/sshd_config로그인 할 수 있는 사용자 를 제한합니다. 해당 회선에 하나 이상의 AD 그룹을 지정하면 해당 사용자 만이 로그인 할 수 있습니다.

사용자가있을 경우에만 작동 명심 에만 ssh를 통해 원격 서버에 액세스. 현지에서 노래를 부르는 경우 다른 해결책을 찾아야합니다.


3

예, 정확하게 달성하려는 것에 따라 몇 가지 방법이 있습니다.

첫 번째 방법은 samba 구성을 통해 수행 할 수 있습니다. 이렇게하면 이러한 사용자 만 Samba에 연결할 수 있으며 다른 사용자는 여전히 다른 서비스 (ssh, 로컬 용어 등)를 통해 로그인 할 수 있습니다. 이를 통해 smb.conf의 [global] 섹션에 행을 추가하려고합니다.

valid users = @groupA @groupB

다른 방법은 PAM 규칙을 수정하는 것입니다. 여기서는 배포마다 약간의 차이가 있지만 일반적으로 서비스 당 PAM 규칙과 일반적인 규칙이 있다고 가정하면 가장 적합한 것을 결정할 수 있습니다. pam_require 모듈을 사용하여 계정 제한을 추가하려고합니다. 내 랩탑 (Fedora 13)의 예는 /etc/pam.d/system-auth의 계정 섹션을 다음과 같이 수정하는 것입니다.

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

관리를 단순화하기 위해이 서버에 로그인 할 수있는 사용자를 추적하기 위해 AD에서 새 그룹을 만들 수 있습니다.


1

RHEL 7에서 위와 같은 작업을 수행하는 데 어려움을 겪었습니다. 아래는 내가 일할 수 있었던 것입니다.

/etc/sssd/sssd.conf

변경 access_provider = adaccess_provider = simple +simple_allow_groups = @group1-admins@xxx.xxx.com, @group2@xxx.xxx.com

비스도

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

sssd 서비스를 다시 시작하십시오.


-3

AD 인증을 통해 하나의 AD_USER 또는 AD_GROUP만이 Linux 상자에 ssh 로그인하도록했습니다.

세부 사항은 다음과 같습니다. (7 및 8 단계에주의하십시오)

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


정보가 없습니다
Geoffrey

링크가 죽었습니다. 쓸모없는 게시물입니다.
FreeSoftwareServers

404 단계 만 보았습니다. 7 번과 8 번.
Todd Walton
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.