반응형
시작하기 전에..
지난 편의 ad-client에 sssd 설정에 이어 mariadb에 pam plugin을 설치하고 PAM과 sssd를 연동 함으로써 최종적으로 AD의 사용자로 MariaDB에 로그인할 수 있는 설정을 하려고 한다.
- [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)
PAM 설정
auth, account에 대한 pam 설정을 한다. 이 설정은 mariadb에 사용자를 생성할 때 사용되게 된다.
- auth는 로그인 성공여부에 대한 인증을 수행한다.
- account는 auth 인증이 성공 후에 접근에 대한 권한이 있는지를 검사한다.
- pam_permit.so 으로 설정하면 접근 권한 없이 접근이 가능하게 된다.
경로 : /etc/pam.d/mariadb
auth required pam_sss.so domains=test.com
account required pam_sss.so domains=test.com
#account required pam_permit.so
MariaDB 설정
MariaDB 설치
yum install mariadb-server mariadb-devel
root 패스워드 설정
systemctl restart mariadb
mysql_secure_installation
PAM plugin 설치
MariaDB [(none)]> INSTALL SONAME 'auth_pam';
혹은 my.cnf에 시스템 변수를 추가 할 수도 있다.
경로 : /etc/my.cnf.d/mariadb-server.cnf
[mariadb]
plugin_load_add = auth_pam
PAM plugin 설치 확인
show plugins;
+-------------------------------+----------+--------------------+-------------+---------+
| Name | Status | Type | Library | License |
+-------------------------------+----------+--------------------+-------------+---------+
...
| pam | ACTIVE | AUTHENTICATION | auth_pam.so | GPL |
+-------------------------------+----------+--------------------+-------------+---------+
사용자 생성 및 권한 설정
AD의 계정을 사용하고 인증도 AD 에서 하지만 mariadb에서도 AD에서 사용할 계정을 생성해 주어야한다.
# 계정 생성 mariadb pam 인증을 사용한다.
MariaDB [(none)]> CREATE USER test2@'%' IDENTIFIED VIA pam USING 'mariadb';
Query OK, 0 rows affected (0.002 sec)
# 권한은 테스트를 위하여 모든 권한을 준다.
MariaDB [(none)]> GRANT ALL PRIVILEGES ON *.* TO 'test2'@'%';
Query OK, 0 rows affected (0.001 sec)
MariaDB [(none)]> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.001 sec)
AD 사용자로 로그인해보기
mysql -u test2 -p
...
MariaDB [(none)]> select user();
+-----------------+
| user() |
+-----------------+
| test2@localhost |
+-----------------+
1 row in set (0.001 sec)
MariaDB [(none)]> show grants for test2;
+-------------------------------------------------------------------------------+
| Grants for test2@% |
+-------------------------------------------------------------------------------+
| GRANT ALL PRIVILEGES ON *.* TO `test2`@`%` IDENTIFIED VIA pam USING 'mariadb' |
+-------------------------------------------------------------------------------+
로그 확인해보기
접근 권한이 없는 사용자 즉, test-group 그룹에 속하지 않은 사용자로 mariadb에 사용자를 추가하고 로그인을 시도했을때 secure 로그를 확인해 보면 authentication success로 인증을 통과했지만 Access denied로 접근 권한 획득에 실패한다.
Aug 13 18:20:00 test-AD02 mysqld[42784]: pam_sss(mariadb:auth): authentication success; logname= uid=27 euid=27 tty= ruser= rhost= user=test2
Aug 13 18:20:00 test-AD02 mysqld[42784]: pam_sss(mariadb:account): Access denied for user test2: 6 (Permission denied)
반응형
'DATABASE > MYSQL' 카테고리의 다른 글
[MariaDB] ActiveDirectory 와 연동하기 [1] - SSSD를 이용하여 AD 조인하기 (0) | 2024.08.13 |
---|