Loading...
MySQL 9.5 Reference Manual 9.5의 A.9 MySQL 9.5 FAQ: Security의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
A.9.1. MySQL의 보안 이슈를 다루는 Documentation은 어디에서 찾을 수 있습니까?
A.9.2. MySQL 9.5에서 기본 authentication plugin은 무엇입니까?
A.9.3. MySQL은 SSL을 네이티브로 지원합니까?
A.9.4. SSL 지원이 MySQL binary에 내장되어 있습니까, 아니면 이를 활성화하기 위해 binary를 직접 다시 컴파일해야 합니까?
A.9.5. MySQL은 LDAP directory에 대한 built-in authentication을 제공합니까?
A.9.6. MySQL은 Roles Based Access Control(RBAC)을 지원합니까?
A.9.7. MySQL은 TLS 1.0 및 1.1을 지원합니까?
| A.9.1. | MySQL의 보안 이슈를 다루는 Documentation은 어디에서 찾을 수 있습니까? |
| 가장 좋은 시작점은 Chapter 8, Security입니다. | |
| 특정 보안 관련 이슈에 대해 유용할 수 있는 MySQL Documentation의 다른 부분은 다음과 같습니다:<br>- Section 8.1.1, “Security Guidelines”.<br>- Section 8.1.3, “Making MySQL Secure Against Attackers”.<br>- Section B.3.3.2, “How to Reset the Root Password”.<br>- Section 8.1.5, “How to Run MySQL as a Normal User”.<br>- Section 8.1.4, “Security-Related mysqld Options and Variables”.<br>- Section 8.1.6, “Security Considerations for LOAD DATA LOCAL”.<br>- Section 2.9, “Postinstallation Setup and Testing”.<br>- Section 8.3, “Using Encrypted Connections”.<br>- Loadable Function Security Precautions. | |
| 또한, MySQL Enterprise Edition Server의 일반적인 binary 배포를 배포할 때 MySQL 설치의 보안을 관리하기 위한 기능을 제공하는 절차를 설명하는 Secure Deployment Guide도 있습니다. | |
| A.9.2. | MySQL 9.5에서 기본 authentication plugin은 무엇입니까? |
MySQL 8.0 시점의 기본 authentication plugin은 caching_sha2_password입니다. 이 plugin에 대한 정보는 Section 8.4.1.1, “Caching SHA-2 Pluggable Authentication”을 참조하십시오. | |
caching_sha2_password plugin은 사용이 중단된 mysql_native_password plugin(이는 MySQL 8.0 이전 버전에서의 기본 plugin)이 제공하는 것보다 더 안전한 패스워드 암호화를 제공합니다. 이 기본 plugin 변경이 서버 동작과, 서버와 클라이언트 및 커넥터의 호환성에 미치는 영향에 대한 정보는 caching_sha2_password as the Preferred Authentication Plugin을 참조하십시오. | |
| 플러그형 인증 및 사용 가능한 다른 인증 plugin에 대한 일반적인 정보는 Section 8.2.17, “Pluggable Authentication”과 Section 8.4.1, “Authentication Plugins”을 참조하십시오. | |
| A.9.3. | MySQL은 SSL을 네이티브로 지원합니까? |
| 예, binary에는 클라이언트와 서버 간 SSL 연결에 대한 지원이 포함되어 있습니다. Section 8.3, “Using Encrypted Connections”을 참조하십시오. | |
| 또한, (예를 들어) 클라이언트 애플리케이션이 SSL 연결을 지원하지 않는 경우 SSH를 사용하여 연결을 터널링할 수도 있습니다. 예시는 Section 8.3.4, “Connecting to MySQL Remotely from Windows with SSH”을 참조하십시오. | |
| A.9.4. | SSL 지원이 MySQL binary에 내장되어 있습니까, 아니면 이를 활성화하기 위해 binary를 직접 다시 컴파일해야 합니까? |
| 예, binary에는 보안, 인증, 또는 둘 다가 적용된 클라이언트/서버 연결에 대해 SSL이 활성화되어 있습니다. Section 8.3, “Using Encrypted Connections”을 참조하십시오. | |
| A.9.5. | MySQL은 LDAP directory에 대한 built-in authentication을 제공합니까? |
| Enterprise Edition에는 LDAP directory에 대한 인증을 지원하는 PAM Authentication Plugin이 포함됩니다. | |
| A.9.6. | MySQL은 Roles Based Access Control (RBAC)을 지원합니까? |
| 아직은 지원하지 않습니다. | |
| A.9.7. | MySQL은 TLS 1.0 및 1.1을 지원합니까? |
| TLSv1 및 TLSv1.1 연결 프로토콜에 대한 지원은 MySQL 8.0.28부터 제거되었습니다. 이 프로토콜들은 MySQL 8.0.26부터 사용 중단(deprecated)되었습니다. 이 제거의 결과에 대해서는 Removal of Support for the TLSv1 and TLSv1.1 Protocols를 참조하십시오. | |
| TLS 버전 1.0 및 1.1에 대한 지원은 이 프로토콜 버전들이 오래되었기 때문에 제거되었습니다. 각각 1996년과 2006년에 출시되었으며, 사용된 알고리즘은 약하고 오래되었습니다. | |
| 아주 오래된 MySQL Server 또는 커넥터 버전을 사용하지 않는 한, TLS 1.0 또는 1.1을 사용하는 연결을 가지고 있을 가능성은 낮습니다. MySQL 커넥터와 클라이언트는 기본적으로 사용 가능한 가장 높은 TLS 버전을 선택합니다. | |
| MySQL Server에 TLS 1.2 지원은 언제 추가되었습니까? MySQL Community Server는 커뮤니티 서버가 MySQL 5.6, 5.7, 8.0에 대해 OpenSSL로 전환했을 때 TLS 1.2 지원을 추가했습니다(2019년). MySQL Enterprise Edition의 경우, OpenSSL은 MySQL Server 5.7.10에서 2015년에 TLS 1.2 지원을 추가했습니다. | |
| 활성 사용 중인 TLS 버전을 어떻게 확인할 수 있습니까? MySQL 5.7 또는 8.0의 경우, 다음 쿼리를 실행하여 TLS 1.0 또는 1.1이 사용 중인지 여부를 확인하십시오: | |
sql<br>SELECT<br> `session_ssl_status`.`thread_id`, `session_ssl_status`.`ssl_version`,<br> `session_ssl_status`.`ssl_cipher`, `session_ssl_status`.`ssl_sessions_reused`<br>FROM `sys`.`session_ssl_status` <br>WHERE ssl_version NOT IN ('TLSv1.3','TLSv1.2');<br> | |
| TLSv1.0 또는 TLSv1.1을 사용하는 스레드가 나열되어 있으면, 다음 쿼리를 실행하여 이 연결이 어디에서 오는지 확인할 수 있습니다: | |
sql<br>SELECT thd_id,conn_id, user, db, current_statement, program_name <br>FROM sys.processlist<br>WHERE thd_id IN (<br> SELECT `session_ssl_status`.`thread_id`<br> FROM `sys`.`session_ssl_status` <br> WHERE ssl_version NOT IN ('TLSv1.3','TLSv1.2')<br> );<br> | |
| 또는, 다음 쿼리를 실행할 수 있습니다: | |
sql<br>SELECT * <br>FROM sys.session <br>WHERE thd_id IN (<br> SELECT `session_ssl_status`.`thread_id`<br> FROM `sys`.`session_ssl_status` <br> WHERE ssl_version NOT IN ('TLSv1.3','TLSv1.2')<br> );<br> | |
| 이러한 쿼리는 TLS 1.2 또는 1.3을 지원하지 않는 어떤 애플리케이션이 있는지 파악하고, 해당 애플리케이션에 대해 업그레이드를 수행하는 데 필요한 세부 정보를 제공합니다. | |
TLS 1.0 또는 1.1을 테스트할 수 있는 다른 옵션이 있습니까? 예, 서버를 최신 버전으로 업그레이드하기 전에 이러한 버전을 비활성화할 수 있습니다. mysql.cnf (또는 mysql.ini)에서 또는 SET PERSIST를 사용하여 예를 들어 --tls-version=TLSv12와 같이 사용할 버전을 명시적으로 지정하십시오. | |
모든 MySQL Connector(5.7 및 8.0)는 TLS 1.2 이상을 지원합니까? C 및 C++ 애플리케이션에서 사용하는 libmysql은 어떻습니까? C 및 C++ 애플리케이션에서 커뮤니티 libmysqlclient 라이브러리를 사용하는 경우, OpenSSL 기반 라이브러리를 사용하십시오(즉, YaSSL은 사용하지 마십시오). OpenSSL 사용은 2018년에 통합되었습니다(MySQL 8.0.4 및 5.7.28에서 각각). 이는 Connector/ODBC 및 Connector/C++에도 동일하게 적용됩니다. 사용 중인 라이브러리 의존성을 확인하려면, 다음 명령을 실행하여 OpenSSL이 나열되는지 확인하십시오. Linux에서는 다음 명령을 사용합니다: | |
| ```terminal<br>$> sudo ldd usr/local/mysql/lib/libmysqlclient.a | |
| MacOS에서는 다음 명령을 사용합니다: | |
| ```terminal<br>$> sudo otool -l /usr/local/mysql/lib/libmysqlclient.a | |
| 각 커넥터에 대한 Documentation을 확인하십시오. 이들은 모두 TLS 1.2 및 TLS 1.3을 지원합니다. |
A.8 MySQL 9.5 FAQ: Migration
A.10 MySQL 9.5 FAQ: NDB Cluster