W obrębie Twojego ekosystemu MySQL może znajdować się od jednego do ponad dziesięciu portów. Zależy to od tego, co masz włączone, jakich komponentów używasz, jak łączą się Twoje aplikacje i innych cech Twojego środowiska.
Z punktu widzenia bezpieczeństwa, porty te powinny być otwarte na tyle szeroko, aby umożliwić różnym komponentom komunikację, jednocześnie blokując wszystko inne, co próbuje się włamać – celem jest wprowadzenie zasady bezpieczeństwa „najmniejszego przywileju”. Oczywiście, to czego nie powinieneś robić, to otwierać wszystko, aby wszystko działało, tylko po to, aby później odkryć, że zostawiłeś siebie całkowicie odsłoniętego i zhakowanego. Nie bądź „tym adminem lub DBA”.
Oczywiście, jak blokować i otwierać porty z odpowiednimi regułami wejścia i wyjścia zależy od twojego środowiska – gdzie masz różne narzędzia firewall, VPN, możliwości systemów operacyjnych, itp. W przypadku niektórych z naszych pakietów instalacyjnych, naszym celem jest zapewnienie bezpieczeństwa domyślnie, jak również użyteczności, i będziemy pomagać, ale zazwyczaj tylko dla najbardziej podstawowych portów. Na przykład, instalator MySQL dla Windows doda reguły do zapory Windows, lub pakiety linuksowe dodadzą reguły do SELinux lub AppArmor.
Jednakże dla mniej popularnych, opcjonalnych lub zewnętrznych portów specyficznych dla produktu, nie otworzymy ich w naszych pakietach, więc będziesz musiał zrobić to sam w tych przypadkach. Z komendami jak ta dla SELinux jak
semanage port -a -t mysqld_port_t -p tcp <port otwarty dla mysqld>
W każdym razie, dla tego bloga celem jest tylko świadomość portów, więc chciałem je tylko wymienić, aby upewnić się, że są znane i zrozumiałe w odniesieniu do
- Czym są
- Co ich używa
- Kiedy są używane
- Czy komunikacja jest domyślnie szyfrowana (Tak w większości przypadków)
- Ograniczenie dostępu
Ten odnośnik dotyczy MySQL 5.7 i 8.0
Wizualnie wygląda to mniej więcej tak.
To NIE jest pełne odniesienie – tabele poniżej zawierają pełne odniesienie.
Aby uzyskać wszystkie szczegóły, zobacz
- Szczegółowe informacje o portach MySQL – PDF
.
And a handy MySQL PORT quick reference table
MySQL Ports
Technology | Default Port | SSL|Enc Def. | Required | ||
---|---|---|---|---|---|
Client – Server Connections (msql client, connectors, mysqldump, mysqlpump) |
|||||
Połączenia klient-serwer MySQL – protokół Protokół MySQL – 3306 | 3306/tcp | Y | Y chyba, że korzystasz tylko z 33060 | ||
Klient MySQL do serwera – New X Protokół – 33060 | 33060/tcp | Y | Y | Y chyba że używasz 3306 | |
MySQL Shell | |||||
MySQL Client to Server – protokół MySQL Protokół MySQL – 3306 | 3306/tcp | Y | Y chyba, że właśnie używa 33060 | ||
MySQL Client to Server – New X Protocol – 33060 | 33060/tcp | Y | Y chyba, że właśnie używa 3306 | ||
Dla sprawdzenia, z Shell do serwera GR podczas konfiguracji klastra InnoDB. | 33061/tcp | Y | Y jeśli działa klaster InnoDB | ||
MySQL Workbench | |||||
MySQL Client to Server – protokół MySQL wybierz co najmniej 1 | |||||
Połączenia przez tunel SSH | 22/tcp | Y | Opcjonalne – wybierz co najmniej 1 | ||
Połączenia klient – router – | |||||
Klient MySQL Każdy SQL do routera – protokół MySQL Protokół MySQL | 6446/tcp | dziedziczony | Wymagany, jeśli router zapewnia dostęp RW | ||
Klient MySQL Tylko do odczytu SQL do routera Protokół MySQL | 6447/tcp | „” | Wymagane, jeśli router ma dostęp tylko do odczytu | ||
MySQL Router do serwera Protokół MySQL | 3306/tcp | „” | Wymagane | ||
Klient MySQL Wszelkie wywołania API do Routera – Nowy Protokół X – 33060 | 6448/tcp | „” | Wymagane, jeśli Router zapewnia dostęp RW Wymagane, jeśli router zapewnia dostęp RW | ||
Połączenia tylko do odczytu klienta MySQL z routerem – nowy protokół X – 33060 | 6449/tcp | „” | Wymagane, jeśli router zapewnia dostęp tylko do odczytu | ||
Połączenia tylko do odczytu klienta MySQL z serwerem – nowy protokół X | |||||
High Availability | |||||
MySQL Group Replication wewnętrzny port komunikacyjny -. 33061 | 33061/tcp | Y | |||
MySQL Replikacja grupowa | 3306/tcp | Y | Y | Y | |
Uwierzytelnianie zewnętrzne * | |||||
Uwierzytelnianie MySQL Enterprise -. LDAP * | 389/tcp | Y | Tylko w przypadku użycia Autentykacji zewnętrznej do LDAP. Obsługuje również uwierzytelnianie SASL | ||
MySQL Enterprise Authentication. AD * | 389/tcp | Y | Tylko w przypadku korzystania z zewnętrznego uwierzytelniania do LDAP | ||
Zarządzanie kluczami (dla TDE, Keyring Functions, etc) * | |||||
KMIP – używany z Oracle Key Vault, Gemalto KeySecure, Thales Vormetric key management server, Fornetix Key Orchestration * | Varies, See key manager/vault specific documentation. | Y | Tylko wymagane, jeśli TDE używa serwera KMIP | ||
Usługi klucza – AWS KMS AWS KMS * | 443/tcp | Y | Tylko wymagane jeśli TDE używa AWS KMS | ||
MEB backup | |||||
Komunikacja z lokalną instancją | 3306/tcp | Y | Opcjonalne -. can connect with tcp|socket|pipe|memory | ||
If Innodb Cluster/Group Replication | 3306/tcp | Y | Required for InnoDB Cluster Backup | ||
Oracle Object Store | 443/tcp | Y | Optional | ||
AWS S3 | 443/tcp | Y | Optional | ||
Backup to Media Manager (SBT API) * | Varies – Varies. Patrz dokumentacja specyficzna dla menedżera nośników kopii zapasowych | Zależne od producenta | Opcjonalne |
.