Mamy replikację serwera SQL. Próbuję upewnić się, że replikacja odbywa się za pośrednictwem bezpiecznych kanałów. Biorąc pod uwagę, że MASTER_SSL_Allowed
to prawda („Tak”), czy to sugeruje, że rzeczy podróżują przez SSL / TLS?
Jak mogę się upewnić, że połączenie replikacji jest szyfrowane? Jak mogę skutecznie zabronić nieszyfrowanego ruchu między urządzeniem głównym a replikacją?
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.10.100
Master_User: slave_user
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin.000192
Read_Master_Log_Pos: 37748817
Relay_Log_File: mysqld-relay-bin.000032
Relay_Log_Pos: 1244
Relay_Master_Log_File: mysql-bin.000092
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB: omega
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 37748817
Relay_Log_Space: 124980
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: Yes
Master_SSL_CA_File: /etc/mysql/certs/omega-ca-cert.pem
Master_SSL_CA_Path:
Master_SSL_Cert: /etc/mysql/certs/omega-client-cert.pem
Master_SSL_Cipher:
Master_SSL_Key: /etc/mysql/certs/omega-client-key.pem
źródło
tcpdump
,Wireshark
lub inny analizator pakietów w sieci. To najlepszy sposób, aby wymyślić, że replikacja odbywa się za pomocą TLS zamiast czystego tekstu. Technika „sprawdzania wzorca” tutaj nie jest pomocna, ponieważ pokazuje tylko, czy wzorzec może obsługiwać TLS, a nie czy faktycznie jest używany. Podobnie możesz chcieć upewnić się, że TLS faktycznie działa, zanim zmodyfikujeszGRANT
s, aby użytkownik wymagał TLS.