Czy port MySQL 3306 jest zaszyfrowany, a jeśli nie, jak mogę go zaszyfrować?

26

Pracuję nad audytem bezpieczeństwa systemu w mojej pracy i jednym z wymagań jest szyfrowanie całego ruchu przez sieci publiczne / niechronione. Ponieważ uzyskujemy dostęp do bazy danych MySQL (przez port 3306) na jednym z naszych zewnętrznych serwerów z naszej sieci biurowej, połączenie z MySQL musi być szyfrowane.

Czy jest już zaszyfrowany, a jeśli nie, jak mogę go zaszyfrować?

Używam narzędzi i skryptów, które nie mogą używać fantazyjnych przekierowań portów SSH ani VPN ... czy to nadal możliwe?

Stephen RC
źródło
1
Tylko dla osób wpadających na ten wątek Dokument jest teraz (2018) pod innym linkiem; dev.mysql.com/doc/refman/5.7/en/encrypted-connections.html
CeD

Odpowiedzi:

14

Nie, domyślnie ruch mysql nie jest szyfrowany. Najlepszym rozwiązaniem jest skonfigurowanie MySQL do pracy z OpenSSL dla poszczególnych połączeń. Większość plików binarnych ma obecnie obsługę protokołu SSL, ale łatwo jest sprawdzić, czy Twoja wersja ją obsługuje. Z dokumentacji:

Aby sprawdzić, czy plik binarny serwera jest skompilowany z obsługą SSL, wywołaj go z opcją --ssl. Błąd wystąpi, jeśli serwer nie obsługuje protokołu SSL:

shell> mysqld --ssl --help
060525 14:18:52 [ERROR] mysqld: unknown option '--ssl'
nedm
źródło
Hiperłącze nie działa.
JellicleCat
Link do wersji 5.6: dev.mysql.com/doc/refman/5.6/en/ssl-connections.html (również zaktualizowany powyżej)
smhg
6

Domyślnie MySQL nie szyfruje komunikacji klient / serwer:

Możesz skonfigurować MySQL, aby akceptował połączenia przez SSL i wymagał od użytkowników używania SSL. Oto przewodnik po konfiguracji SSL:

sreimer
źródło
linki są zepsute
knocte