[MySQL] SSL 접속 확인 방법
- Databases/MySQL
- 2021. 7. 23.
MySQL 클라이언트를 이용해서 접속을 하면 자신이 현재 SSL/TLS을 이용해서 접속을 했는지 아니면 일반 암호 접속을 했는지 알아내는 방법입니다.
my.cnf 의 파라미터를 이용해서 SSL/TLS 접속만을 강제하거나 클라이언트 환경에 따라 일반접속, SSL/TLS접속을 선택해서 접속할 수 있습니다.
혹은 계정을 생성할 때 강제로 TLS/SSL접속만 접속할 수 있게끔 할 수 있습니다.
여기서는 자신의 접속상태가 SSL/TLS인지 일반접속인지 여부에 대해서 알아보고 SSL/TLS 환경설정 및 접속방법에 대해서는 다음 페이지를 참고하시기 바랍니다.
https://myinfrabox.tistory.com/14?category=804724
■ SSL/TLS 접속 여부 확인
mysql클라이언트를 이용해서 접속 후 's'를 입력하면 다음과 같은 화면이 나옵니다.
mysql> s
--------------
mysql Ver 14.14 Distrib 5.7.11, for Linux (x86_64) using EditLine wrapper
Connection id: 7
Current database:
Current user: root@localhost
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.7.11-log MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: latin1
Db characterset: latin1
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/lib/mysql/mysql.sock
Uptime: 36 min 33 sec
이 내용중 SSL 섹션에 Cipher로 시작하는 단어가 나온다면 SSL로 접속한 것입니다.
현제 세션 상태를 조회해서 확인해 볼 수 있습니다.
mysql> show status like 'Ssl_version';
+---------------+---------+
| Variable_name | Value |
+---------------+---------+
| Ssl_version | TLSv1.1 |
+---------------+---------+
mysql> show status like 'Ssl_cipher';
+---------------+--------------------+
| Variable_name | Value |
+---------------+--------------------+
| Ssl_cipher | DHE-RSA-AES256-SHA |
+---------------+--------------------+
전체 세션에 대한 조회는 다음과 같습니다.
1. performance schema 조회방법
mysql> SELECT sbt.variable_value AS tls_version, t2.variable_value AS cipher,
processlist_user AS user, processlist_host AS host
FROM performance_schema.status_by_thread AS sbt
JOIN performance_schema.threads AS t ON t.thread_id = sbt.thread_id
JOIN performance_schema.status_by_thread AS t2 ON t2.thread_id = t.thread_id
WHERE sbt.variable_name = 'Ssl_version' and t2.variable_name = 'Ssl_cipher' ORDER BY tls_version;
+-------------+--------------------+------+-----------+
| tls_version | cipher | user | host |
+-------------+--------------------+------+-----------+
| | | root | localhost |
| TLSv1 | DHE-RSA-AES256-SHA | root | localhost |
| TLSv1.1 | DHE-RSA-AES256-SHA | root | localhost |
+-------------+--------------------+------+-----------+
2. sys schema 조회방법
sys스키마의 session_ssl_status 뷰를 조회합니다.
ssl_cipher와 ssl_version에 내용이 표시되면 SSL/TLS로 접속이 된 것입니다.
mysql> select pt.PROCESSLIST_ID, pt.THREAD_ID, sss.ssl_cipher, ssl_version, ipl.`USER`, ipl.HOST
from sys.session_ssl_status sss,
information_schema.processlist ipl,
performance_schema.threads pt
WHERE 1=1
and pt.THREAD_ID = sss.thread_id
and pt.PROCESSLIST_ID = ipl.ID
;
+----------------+-----------+------------------------+-------------+------+--------------------+
| PROCESSLIST_ID | THREAD_ID | ssl_cipher | ssl_version | USER | HOST |
+----------------+-----------+------------------------+-------------+------+--------------------+
| 8 | 49 | | | repl | 192.168.0.12:56050 |
| 10 | 51 | | | repl | 192.168.0.13:51150 |
| 11 | 52 | TLS_AES_256_GCM_SHA384 | TLSv1.3 | root | localhost |
+----------------+-----------+------------------------+-------------+------+--------------------+
'Databases > MySQL' 카테고리의 다른 글
[MySQL] Java MySQL Connector 에러-Public Key (0) | 2021.07.30 |
---|---|
[MySQL] Thread 모니터링 및 튜닝 (0) | 2021.07.26 |
[MySQL]카탈로그를 이용하여 각종 정보 조회 (0) | 2021.07.18 |
[MySQL] Memory 모니터링 (1) | 2021.07.18 |
[MySQL] events_statements_summary_by_digest를 이용하여 SQL성능 분석 (0) | 2021.07.10 |