Password 복잡도
MariaDB의 계정의 패스워드에 대한 복잡도를 설정 할 수 있다.
계정의 패스워드에 최소 자리수, 대소문자, 특수문자, 숫자 등의 제한 값을 설정 할 수 있다.
이와 같은 내용을 설정 하는 플러그인 simple_password_check는 아래와 같이 적용 할 수 있다.
1. Plugin 확인
패스워드 복잡도를 설정하기위해 사용 할 simple_password_check 플러그인은 MariaDB와 함께 배포가 되지만,
기본적으로 설치되지는 않기에 확인 후 설치가 필요하다.
Plugin Directory 경로 확인
-- 플러그인 경로 확인
mysql
> show variables like 'plugin_dir%';
MariaDB의 플러그인이 모여있는 경로를 확인한다.
simple_password_check.so 파일을 확인
해당 경로로 가서 simple_password_check.so 파일을 확인한다.
플러그인 설치를 위해서는 해당 경로에 simple_password_check.so파일이 위치하고 있어야 한다.
Plugin 설치 목록 확인
-- Plugin List
mysql
> show plugins;
설치되어있는 플러그인 리스트를 확인해본다.
플러그인 목록에 simple_password_check가 없는 것을 확인하였으면 이어서 설치를 진행한다.
2. Plugin 설치
simple_password_check.so 파일이 정확한 경로에 위치하고 있다면, 설치는 간단하다.
Install
mysql
> install soname 'simple_password_check';
install 명령어를 통해 simple_password_check 설치한다.
Plugin 설치 목록 확인
mysql
> show plugins;
플러그인 리스트를 다시한번 확인해보면, simple_password_check가 설치되었음을 확인 할 수 있다.
simple_password_check 옵션 확인
mysql
> show global variables like 'simple_password%';
simple_password_check를 설치하고나면 기본 옵션으로 설정이 된다.
패스워드 복잡도의 옵션은 아래와 같은 내용을 뜻한다.
- simple_password_check_digits : value 값 이상의 숫자 포함
- simple_password_check_letters_same_case : value 값 이상의 대문자 포함
- simple_password_check_minimal_length : value 값 이상의 패스워드 길이
- simple_password_check_other_characters : value 값 이상의 특수문자 포함
simple_password_check 플러그인을 설치하면 기본적으로
비밀번호 8자리, 숫자1, 대문자1, 특수문자1의 패스워드 복잡도가 설정된다.
위 옵션에 맞지않는 패스워드를 사용시 아래와 같이 user를 생성 할 수 없다.
3. 옵션 변경 및 계정 생성
simple_password_check 의 옵션은 글로벌 동적 변수로 명령어를 통해 임시로 바로 반영 할 수 있다.
SET GLOBAL 임시 반영
글로벌 변수 반영은 아래와 같은 명령어로 임시로 반영 할 수 있다
MariaDB를 재시작 할 경우 기본값으로 돌아가므로 해당 변수들의 값을 유지하고 싶을 경우 my.cnf 파일을 수정해야 한다.
패스워드에 숫자가 2개 이상 포함되도록 수정
mysql
> set global simple_password_check_digits = 2;
패스워드에 대문자가 3개이상 포함되도록 수정
mysql
> set global simple_password_check_letters_same_case = 3;
패스워드에 특수문자가 4개이상 포함되도록 수정
mysql
> set global simple_password_check_other_characters = 4;
패스워드의 길이가 15자 이상이 되도록 수정
mysql
> set global simple_password_check_minimal_length = 15;
이렇게 패스워드의 옵션을 변경 후 옵션값을 확인하면 아래와같이 변경되어있음을 알 수 있다.
mysql
> show global variables like 'simple%';
my.cnf 시스템 파일 수정
위와 같은 명령어를 통해 임시로 패스워드옵션을 변경 할 경우 MariaDB 재기동시 초기화가 되어 기본값으로 돌아온다.
이를 방지하고자 원하는 값을 시스템 파일에 수정하여, 재기동시 MariaDB 시스템에 적용 될 수 있도록 한다.
vi /etc/my.cnf.d/server.cnf
> 문서 내용 수정
-----------------------------
[mysqld]
simple_password_check = ON
simple_password_check_minimal_length = 15
simple_password_check_digits = 2
simple_password_check_letters_same_case = 3
simple_password_check_other_characters = 4
- simple_password_check 값을 ON으로 정의할 경우 패스워드 복잡도를 사용하며, OFF 일 경우 사용하지 않는다.
- simple_password_check_minimal_length : value 값 이상의 패스워드 길이
- simple_password_check_digits : value 값 이상의 숫자 포함
- simple_password_check_letters_same_case : value 값 이상의 대문자 포함
- simple_password_check_other_characters : value 값 이상의 특수문자 포함
위 옵션을 적용 하기 위해서는 MariaDB 시스템을 재시작 하여야 한다.
User Create
패스워드 복잡도가 설정 된 후 User 생성을 할 경우, 복잡도와 맞지않는 패스워드를 설정하면 오류가 발생한다.
mysql
> create user TEST_USER@'%' identified by 'a1234';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements (simple_password_check)
위와 같은 에러메시지와 함께 유저가 생성되지 않는다.
mysql
> create user TEST_USER@'%' identified by '12ABC@@@@password';
설정한 패스워드 복잡도에 맞게 패스워드를 설정 할 경우 문제없이 생성이 완료된다.
'DATABASE > MariaDB' 카테고리의 다른 글
[MariaDB][Linux] Log Setting (1) - General Log, Slow Query Log 설정하기 (1) | 2024.01.19 |
---|---|
[DBA][MariaDB] 사용자 계정 접속 잠금, 비활성화(?) - ACCOUNT LOCK (0) | 2024.01.12 |
[MariaDB] 장애 조치 - Galera Cluster 동기화 전송 지연 (Delete_rows_log_event::find_row) (0) | 2024.01.05 |
[MariaDB][Linux] 보안 설치 - mariadb-secure-installation (0) | 2023.12.29 |
[MariaDB][Linux] MaxScale 설치 - Load Balancer (1) | 2023.08.03 |
[MariaDB][Linux] Galera Cluster 설치 - 이중화 / HA 구성 (1) | 2023.07.26 |
[MariaDB] 현재 Process 보는 방법 및 모니터링 팁 (0) | 2023.07.22 |
[MariaDB][Error] Can't lock aria control file 'aria_log_control' for exclusive use, error: 11. (3) | 2023.07.21 |