V ekosystému MySQL může být použit jeden až více než deset portů. Záleží na tom, co máte povoleno, jaké komponenty používáte, jak se vaše aplikace připojují a na dalších charakteristikách vašeho prostředí.
Z hlediska bezpečnosti je třeba tyto porty otevřít právě tak široce, aby umožnily komunikaci různým komponentám, které mají komunikovat, a zároveň zablokovaly cokoli jiného, co se snaží nabourat dovnitř – cílem je prosadit bezpečnostní princip „nejmenšího oprávnění“. Je zřejmé, že byste neměli otevírat všechno, aby vše fungovalo, jen abyste později zjistili, že jste se nechali zcela odhalit a hacknout. Nebuďte „tím administrátorem nebo DBA“.
Způsob blokování a otevírání portů pomocí správných vstupních a výstupních pravidel samozřejmě závisí na vašem prostředí – kde máte různé nástroje firewallů, VPN, možnosti operačních systémů atd. U některých našich instalačních balíčků je naším cílem výchozí zabezpečení i použitelnost a my vám s tím pomůžeme, ale obvykle jen u těch nejzásadnějších portů. Například instalační program MySQL pro Windows přidá pravidla do firewallu systému Windows nebo balíčky pro Linux přidají pravidla do SELinuxu nebo AppArmor.
U méně obvyklých, volitelných nebo externích portů specifických pro daný produkt vám je však v našich balíčcích neotevřeme, takže to v těchto případech budete muset udělat sami. Pomocí příkazů, jako je ten pro SELinux, například
semanage port -a -t mysqld_port_t -p tcp <port open to mysqld>
Každopádně pro tento blog je cílem pouze povědomí o portech, takže jsem je chtěl jen vyjmenovat, abych se ujistil, že jsou známé a pochopené vzhledem k tomu
- Co jsou zač
- Kdo je používá
- Kdy se používají
- Je komunikace ve výchozím nastavení šifrovaná (ve většině případů ano)
- Omezení přístupu
Tento odkaz platí pro MySQL 5.7 a 8.0
Vizuálně to vypadá nějak takto.
Nejedná se o úplný odkaz – v tabulkách níže je uveden úplný odkaz.
Nebo všechny podrobnosti viz
- Podrobná reference portů MySQL – PDF
.
A praktická rychlá referenční tabulka PORTŮ MySQL
Porty MySQL
Technologie | Výchozí port | SSL|Enc Def. | Povinný | ||
---|---|---|---|---|---|
Klient – připojení k serveru (msql klient, konektory, mysqldump, mysqlpump) |
|||||
Klient MySQL na server – Protokol MySQL – 3306 | 3306/tcp | Y | Y pokud právě nepoužíváte 33060 | ||
MySQL Client to Server – New X Protocol – 33060 | 33060/tcp | Y | Y pokud nepoužívá jen 3306 | ||
MySQL Shell | |||||
MySQL klient k serveru -. Protokol MySQL – 3306 | 3306/tcp | Y | Y, pokud právě nepoužívá 33060 | ||
MySQL Client to Server – New X Protocol – 33060 | 33060/tcp | Y | Y, pokud právě nepoužívá 3306 | ||
Pro kontrolu, ze shellu na server GR při konfiguraci clusteru InnoDB. | 33061/tcp | Y | Y, pokud běží InnoDB cluster | ||
MySQL Workbench | |||||
MySQL Client to Server -. Protokol MySQL – 3306 | 3306/tcp | Y | Volitelný – vybrat alespoň 1 | ||
MySQL klient k serveru – Nový protokol X – 33060 | 33060/tcp | Y | Volitelný – vybrat alespoň 1 | ||
MySQL klient k serveru – Nový protokol X – 33060 | 33060/tcp | Y | Volitelný – vybrat alespoň 1 vybrat alespoň 1 | ||
Připojení přes SSH tunel | 22/tcp | Y | Volitelné – vybrat alespoň 1 | ||
Připojení klient – směrovač – | |||||
MySQL klient libovolný SQL ke směrovači -. MySQL Protocol | 6446/tcp | Inherited | Vyžaduje se, pokud Router poskytuje RW přístup | ||
MySQL Client ReadOnly SQL to Router – MySQL Protocol | 6447/tcp | „“ | Vyžadováno, pokud Router poskytuje ReadOnly přístup | ||
MySQL Router to Server – ReadOnly MySQL Protocol | 3306/tcp | „“ | Požadováno | ||
MySQL Client Any API calls to Router – New X Protocol – 33060 | 6448/tcp | „“ | Požadováno, pokud Router. poskytuje RW přístup | ||
Volání klienta MySQL pouze pro čtení na Router – Nový X protokol – 33060 | 6449/tcp | „“ | Vyžadováno, pokud Router poskytuje ReadOnly přístup | ||
MySQL Směrovač k serveru – nový protokol X – 33060 | 33060/tcp | „“ | Požadováno | ||
Vysoká dostupnost | |||||
MySQL Group Replication vnitřní komunikační port -. 33061 | 33061/tcp | Y | Y | ||
Replikace MySQL | 3306/tcp | Y | Y | Y | |
Externí autentizace * | |||||
MySQL Enterprise Authentication -. LDAP * | 389/tcp | Y | Pouze v případě použití externího ověřování do LDAP. Podporuje také použití SASL | ||
MySQL Enterprise Authentication -. AD * | 389/tcp | Y | Pouze při použití externího ověřování do LDAP | ||
Správa klíčů (pro TDE, Keyring Functions, etc.) * | |||||
KMIP – používá se s Oracle Key Vault, Gemalto KeySecure, Thales Vormetric key management server, Fornetix Key Orchestration * | Různé, viz dokumentace ke konkrétnímu key manageru/vaultu. | Y | Vyžaduje se pouze v případě, že TDE používá server KMIP | ||
Key Services -. AWS KMS * | 443/tcp | Y | Pouze pokud TDE používá AWS KMS | ||
Zálohování MEB | |||||
Komunikace s místní instancí | 3306/tcp | Y | Volitelné – může se připojit pomocí tcp|socket|pipe|paměť | ||
Pokud Innodb Cluster/Group Replication | 3306/tcp | Y | Vyžadováno pro InnoDB Cluster Backup | ||
Oracle Object Store | 443/tcp | Y | Volitelné | ||
AWS S3 | 443/tcp | Y | Volitelné | ||
Zálohování na Media Manager (SBT API) * | Různé – Viz dokumentace ke konkrétnímu správci zálohovacích médií | Závislé na dodavateli | Volitelné |
.