시작하기 전에..
mariadb 사용자 인증을 SSSD(System Security Services Daemon) + PAM을 이용하여 ActiveDirectory(이하 AD)와 연동하고자 한다.
2편으로 나누어 작성할 예정이며 먼저 SSSD를 이용하여 AD에 조인하고 ssh로 로그인해보는 설정을 할 것이다.
- [MariaDB] ActiveDirectory 와 연동하기 [1] - SSSD를 이용하여 AD 조인하기
- [MariaDB] ActiveDirectory 와 연동하기 [2] - sssd+pam+mariadb pam plugin으로 로그인 해보기
환경
OS(ad-client) : CentOS Stream release 8
MariaDB ver : 10.3.28
sssd ver : 2.9.4
AD Domain : test.com
AD DC : dc01.test.com(172.16.10.100), dc02.test.com(172.16.10.101)
필요 패키지 설치
yum install sssd realmd oddjob oddjob-mkhomedir sssd-tools
SSSD 설정
SSSD는 AD, LDAP 등의 인증을 사용할 수 있게 도와 준다.
DNS 설정
AD의 도메인을 알고 있는 DNS를 설정한다.
경로 : /etc/resolv.conf
search test.com
nameserver 172.16.10.100
nameserver 172.16.10.101
AD discover
realm discover을 통해 같은 네트워크에 있는 AD DC(Domain Controller)를 검색한다.
realm discover TEST.COM
결과
test.com
type: kerberos
realm-name: TEST.COM
domain-name: test.com
configured: no
server-software: active-directory
client-software: sssd
required-package: oddjob
required-package: oddjob-mkhomedir
required-package: sssd
required-package: adcli
required-package: samba-common-tools
AD 조인
바인드 도메인 사용자로 AD에 조인한다.
realm join test.com -U Administrator
AD 조인 확인
sssd-tools의 sssctl을 이용하여 도메인 상태정보를 조회 할 수 있다.
sssctl domain-status test.com
결과
Online status: Online
Active servers:
AD Global Catalog: dc02.test.com
AD Domain Controller: dc02.test.com
Discovered AD Global Catalog servers:
- dc02.test.com
- dc01.test.com
Discovered AD Domain Controller servers:
- dc02.test.com
- dc01.test.com
sssd.conf 확인
AD 조인이 완료되면 sssd.conf 라는 설정파일이 자동 생성 된다.
discover가 되지 않는다면 수동으로 설정파일을 업데이트 할 수 있다.
경로 : /etc/sssd/sssd.conf
[sssd]
domains = test.com
config_file_version = 2
services = nss, pam
[domain/test.com]
ad_domain = test.com
krb5_realm = TEST.COM
realmd_tags = manages-system joined-with-adcli
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/%u@%d
access_provider = ad
옵션 수정하기
경로 : /etc/sssd/sssd.conf
use_fully_qualified_names = [True|False]
- True : user@test.com 처럼 도메인을 붙이는 완전한 형태의 계정을 요구한다.
- False : 도메인 없이 user 로만 계정을 사용할 수 있다.
False로 수정 후 sssd를 재시작해준다.
use_fully_qualified_names = False
systemctl restart sssd
AD 특정 그룹만 허용하기
경로 : /etc/sssd/sssd.conf
test-group 이라는 AD 그룹내 user만 허용 하고 싶다면 아래와 같이 설정 한 후 sssd를 재시작한다.
#access_provider = ad
access_provider = simple
simple_allow_groups = test-group
id로 user를 조회해본다.
id test2
uid=986601580(test2) gid=986600513(domain users) groups=986600513(domain users),986601546(test-group)
혹은 user 정보를 조회할 수도 있다.
getent passwd test2
test2:*:986601379:986600513:test2:/home/test2@test.com:/bin/bash
cache
AD의 사용자 정보를 sssd 내에서 cache를 한다.
cache_credentials = True
cache에 대한 설정은 아래 링크를 참조한다.
특정 사용자의 사용자 cache를 삭제 하고자 한다면 아래와 같이 명령한다.
sss_cache -u test2
그외 옵션을 참고한다.
sss_cache -u (사용자)
sss_cache -U (모든 사용자)
sss_cache -E (모든 레코드)
sss_cache -g (그룹)
sss_cache -G (모든그룹)
그밖에 참고
sssctl
sssctl domain-status 외 다른 명령을 알아 보고자 한다.
sssd.conf 의 config 체크
sssctl config-check
가입되어 있는 도메인 리스트
sssctl domain-list
ssh에 로그인 해보기
지금까지의 설정으로 AD의 test-group내 사용자가 ssh로 로그인 할 수 있다.
$ ssh test2@ad-client
test2@ad-client's password: [패스워드]
[test2@ad-client ~]$
또한 sudo 권한을 설정된 그롭(test-group)에 줄수도 있다.
경로 : /etc/sudoers
%test-group ALL=(ALL) NOPASSWD: ALL
다음편으로..
'DATABASE > MYSQL' 카테고리의 다른 글
[MariaDB] ActiveDirectory 와 연동하기 [2] - sssd+pam+mariadb pam plugin으로 로그인 해보기 (0) | 2024.08.13 |
---|