MariaDB는 10.1.2 버전에서 기본적으로 simple_password_check Plugin이 패키지에 포함되어 있다.
simple_password_check Plugin은 암호에 최소 자리 수, 대문자, 숫자 특수 문자등의 복잡도를 설정할 수 있습니다. 처음 암호의 길이는 기본값이 8자리로 설정되어 있습니다.
1. Simple_password_check 설정 확인
플러그인은 MariaDB 용 모든 플러그인 라이브러리가 포함 된 플러그인 디렉토리에 있어야 한다.
a. Plugin이 디렉토리의 위치를 확인
MariaDB [(none)]> show global variables like 'plugin_dir%';
--------------
show global variables like 'plugin_dir%'
--------------
+---------------+--------------------------+
| Variable_name | Value |
+---------------+--------------------------+
| plugin_dir | /usr/lib64/mysql/plugin/ |
+---------------+--------------------------+
1 row in set (0.00 sec)
MariaDB [(none)]>
b. simple_password_check.so 라이브러리파일이 해당 디렉토리에 있어야 하며
만약 없으면 상위 버전을 설치하거나 상위버전의 라이브러리에서 해당 파일을 copy해 온다.
$ ls /usr/lib64/mysql/plugin/simple_password*
/usr/lib64/mysql/plugin/simple_password_check.so
c. Plugin 리스트를 통해 simple_password_check Plugin이 설치되어 있는지 확인
MariaDB [(none)]> show plugins ;
--------------
show plugins
--------------
+-------------------------------+----------+--------------------+---------+---------+
| Name | Status | Type | Library | License |
+-------------------------------+----------+--------------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| mysql_old_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| wsrep | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CLIENT_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INDEX_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| TABLE_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| USER_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
… 생략
| INNODB_TABLESPACES_SCRUBBING | ACTIVE | INFORMATION SCHEMA | NULL | BSD |
| Aria | ACTIVE | STORAGE ENGINE | NULL | GPL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| SEQUENCE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEEDBACK | DISABLED | INFORMATION SCHEMA | NULL | GPL |
| user_variables | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
+-------------------------------+----------+--------------------+---------+---------+
52 rows in set (0.00 sec)
d. simple_password_check 환경변수가 설정되어 있는지 확인
MariaDB [(none)]> show global variables like 'simple_password%';
--------------
show global variables like 'simple_password%'
--------------
Empty set (0.00 sec)
MariaDB [(none)]>
2. Simple_password_check 설치
라이브러리 파일을 확인 했다면 simple_password_check 설치는 매우 간단하게 할 수 있다.
a. Install plugin 명령으로 simple_password_check plugin 설치
MariaDB [(none)]> INSTALL SONAME 'simple_password_check';
Query OK, 0 rows affected (0.01 sec)
b. simple_password_check Plugin이 설치되어 있는지 확인
MariaDB [(none)]> show plugins ;
--------------
show plugins
--------------
+-------------------------------+----------+---------------------+--------------------------+---------+
| Name | Status | Type | Library | License |
+-------------------------------+----------+---------------------+--------------------------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| mysql_native_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| mysql_old_password | ACTIVE | AUTHENTICATION | NULL | GPL |
| wsrep | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CLIENT_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INDEX_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| TABLE_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| USER_STATISTICS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| INNODB_TRX | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| INNODB_LOCKS | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
… 생략
| INNODB_TABLESPACES_SCRUBBING | ACTIVE | INFORMATION SCHEMA | NULL | BSD |
| Aria | ACTIVE | STORAGE ENGINE | NULL | GPL |
| PERFORMANCE_SCHEMA | ACTIVE | STORAGE ENGINE | NULL | GPL |
| SEQUENCE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEEDBACK | DISABLED | INFORMATION SCHEMA | NULL | GPL |
| user_variables | ACTIVE | INFORMATION SCHEMA | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| SERVER_AUDIT | ACTIVE | AUDIT | server_audit.so | GPL |
| simple_password_check | ACTIVE | PASSWORD VALIDATION | simple_password_check.so | GPL |
+-------------------------------+----------+---------------------+--------------------------+---------+
54 rows in set (0.00 sec)
c. simple_password_check 환경변수가 설정되어 있는지 확인한다.
기본적으로 최소 8자리, 숫자 1, 대문자 1, 특수문자 1 이상으로 설정되어 있다.
MariaDB [(none)]> show global variables like 'simple_password%' ;
+-----------------------------------------+-------+
| Variable_name | Value |
+-----------------------------------------+-------+
| simple_password_check_digits | 1 |
| simple_password_check_letters_same_case | 1 |
| simple_password_check_minimal_length | 8 |
| simple_password_check_other_characters | 1 |
+-----------------------------------------+-------+
4 rows in set (0.00 sec)
MariaDB [(none)]>
d. 기본설정값에서 수정을 원한다면 DB에서 바로 설정이 가능하며 DB 재기동시 설정값이 기본값으로 변경되므로 my.cnf에 설정하도록 한다.
MariaDB [(none)]> set global simple_password_check_minimal_length = 10 ;
MariaDB [(none)]> set global simple_password_check_digits = 2 ;
MariaDB [(none)]> set global simple_password_check_letters_same_case = 2 ;
MariaDB [(none)]> set global simple_password_check_other_characters = 2 ;
e. my.cnf 설정은 mysqld 밑에 설정을 해주면 된다.
simple_password_check = ON 으로 설정되어야 복잡도 정책이 설정이 되며
OFF로 설정하면 아래 설정값이 무효화 된다.
[mysqld]
simple_password_check_ = ON
simple_password_check_minimal_length = 10
simple_password_check_digits = 2
simple_password_check_letters_same_case = 2
simple_password_check_other_characters = 2
설정 옵션에 대한 상세한 사항은 아래 링크를 참조한다.
https://mariadb.com/kb/en/simple-password-check-plugin/
3. password 복잡도 확인
복잡도 설정이 끝났으면 유저 생성 테스트를 해본다.
a. 유저 생성 테스트
MariaDB [(none)]> show global variables like 'simple_password%' ;
+-----------------------------------------+-------+
| Variable_name | Value |
+-----------------------------------------+-------+
| simple_password_check_digits | 1 |
| simple_password_check_letters_same_case | 1 |
| simple_password_check_minimal_length | 8 |
| simple_password_check_other_characters | 1 |
+-----------------------------------------+-------+
4 rows in set (0.00 sec)
-- 길이 8자리 미만
MariaDB [(none)]> create user test@'%' identified by 'Test!23' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 대문자 미포함
MariaDB [(none)]> create user test@'%' identified by 'test!234' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 숫자 미포함
MariaDB [(none)]> create user test@'%' identified by 'test!test' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 특수문자 미포함
MariaDB [(none)]> create user test@'%' identified by 'test1234' ;
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
-- 복잡도 만족
MariaDB [(none)]> create user test@'%' identified by 'Test!234' ;
Query OK, 0 rows affected (0.00 sec)
이상 MariaDB Password 복잡도 설정을 설명하였습니다.
'Database > Mysql' 카테고리의 다른 글
Mysql/Mariadb 숫자함수 (ABS, CEILING, FLOOR, ROUND, TRUNCATE) (0) | 2020.12.14 |
---|---|
Mysql / Mariadb에서 쉘명령어 사용하기 (0) | 2020.12.14 |
mysql / mariadb grant 설정 (0) | 2020.12.14 |
MariaDB Audit 설정하기 (0) | 2020.12.14 |
EC2에서 Mariadb 설치하기 (0) | 2020.12.14 |
댓글