
이것은 포럼의 첫 번째 질문이므로 제 문제에 대한 중요한 정보를 놓쳤다고 화내지 마십시오.
저는 Debian 8을 사용하고 있으며 다음에 따라 SSSD를 사용하여 Active Directory 도메인(Windows Server 2012)에 가입했습니다.이 튜토리얼.
모든 것이 잘 작동합니다. AD 계정으로 로그인할 수 있습니다. 또한 이 서버에 연결할 수 있는 사용자를 모으기 위해 Active Directory 그룹을 만들었습니다.
다음 명령을 사용하여 이 그룹을 허용합니다.
realm permit -g [email protected]
지금까지는 모든 것이 정상이며 Active 디렉터리 계정을 사용하여 Linux 서버에 처음 연결하면 이 /home/domain/user
생성됩니다.
그런데 한 명의 사용자에 대해 서버 접속 권한을 취소하고 싶을 때(그래서 그룹에서 계정을 삭제합니다.) 해당 폴더는 /home/domain/user
여전히 서버에 남아 있으며 루트 계정(또는 sudo 권한이 있는 계정)은 더 이상 권한이 없는 사용자에게 연결할 수 있습니다(경고 메시지 포함 Access Denied (ignored)
).
마지막으로 허용하지 않는 유일한 방법 su <deleted user>
은 AD 계정을 제거하는 것입니다. (단, 권한을 취소할 때마다 AD 계정을 제거할 수는 없습니다.)
제 생각에는 이것은 끔찍한 보안 문제입니다. AD 계정 권한을 취소하면 Linux 서버에서 사용자(및 해당 폴더)를 확실히 제거할 수 있나요?
AD와 SSSD 간의 인증에 대한 정보를 공유해 주실 수 있나요?
아래 구성 파일을 참조하십시오.
의 내용 /etc/nsswitch.conf
:
passwd: compat sss
group: compat sss
shadow: compat sss
gshadow: files
hosts: files dns
networks: files
protocols: db files
services: db files sss
ethers: db files
rpc: db files
netgroup: nis sss
sudoers: files sss
의 내용 /etc/sssd/sssd.conf
:
[sssd]
domains = mydomain.com
config_file_version = 2
services = nss, pam
[domain/mydomain.com]
ad_domain = mydomain.com
krb5_realm = MYREALM.COM
realmd_tags = manages-system joined-with-samba
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = True
fallback_homedir = /home/%d/%u
access_provider = simple
simple_allow_groups = MyGroupAllowed
SSSD를 사용하기 전에 Winbind를 사용해 보았으나 동일한 문제가 발생했습니다.
답변해 주셔서 감사합니다.
답변1
제 생각에는 이것은 끔찍한 보안 문제입니다.
sudo
그렇다면 사용자가 Linux 서버의 계정에 연결할 수 있다는 사실이 보안 문제라고 생각하시나요 ? sudo
처음 수행한 사용자를 포함하여 사용자가 해당 계정으로 수행하는 모든 작업 은 그에 따라 기록됩니다 sudo
.
당신이 할 수 있는 일은 데몬이 LDAP를 폴링하고 계정을 동기화하도록 하는 것입니다. 상자에 연결할 수 있다면 모든 Linux 상자에 있을 필요도 없습니다.
편집: 앞으로 나아가는 또 다른 방법은 Kerberos 캐시가 제거되었는지 확인하는 것입니다. kdestroy
에서 사용하세요 /etc/bash.bash_logout
. 이런 식으로 사용자가 할 수 있는 유일한 "해로움"은 로컬이며 어쨌든 사용자가 할 수 있는 것은 '왜냐하면 루트는 로컬에서 무엇이든 할 수 있기 때문입니다.
참고: 이는 Windows와도 매우 유사합니다. 로컬 관리자는 쉽게 로컬 시스템이 될 수 있고, 로컬 시스템은 현재 로그인한 사용자를 가장하는 것을 포함하여 기본적으로 모든 작업을 수행할 수 있으며 kdestroy
로그아웃 시 사용하면 Windows 동작을 에뮬레이션할 수 있습니다.
이것이 바로 당신의 질문이 나에게 놀라운 이유였습니다. 더 나쁜 것은 실제로 Windows에서 특정 감사 규칙을 설정하지 않는 한 로컬 시스템이 사용자를 가장하거나 "현재 이 로컬 시스템 세션을 제어하여" 작업을 수행하는 사람을 볼 수 없다는 것입니다 jdoe
.