Jaký je výchozí port MySQL (3306) a jak jej bezpečně změnit

1. Jaký je výchozí port MySQL?

Číslo portu MySQL a jeho role

Ve výchozím nastavení MySQL komunikuje pomocí portu 3306. Číslo portu se používá k rozlišení mezi více službami v síti a je klíčovým elementem protokolu TCP/IP. Každá služba používá unikátní číslo portu, což umožňuje spouštět více procesů současně na stejném serveru.

Pro MySQL se klient připojuje k serveru přes port 3306 k provádění operací s databází. Například MySQL Workbench a další nástroje pro databáze používají tento port k přístupu k databázi.

Proč se používá port 3306?

Port 3306 je standardní port pro MySQL a používá se ve většině výchozích konfigurací. Použití tohoto portu umožňuje vývojářům aplikací připojit se k databázi bez dalšího nastavení, což je pohodlné. Nicméně, protože to může být bezpečnostní riziko, je vyžadováno řádné řízení.

2. Jak zkontrolovat port MySQL

Kontrola přes příkaz

K zjištění, který port MySQL server aktuálně používá, spusťte následující příkaz:

SHOW VARIABLES LIKE 'port';

Toto zobrazí číslo portu, který server používá. Ve většině případů je to výchozí 3306, ale může se lišit, pokud byla změněna konfigurace.

Kontrola v konfiguračním souboru

Číslo portu můžete také zkontrolovat v konfiguračním souboru my.cnf (nebo my.ini na Windows). Tyto soubory se obvykle nacházejí v následujících adresářích:

  • Linux: /etc/mysql/my.cnf
  • Windows: C:ProgramDataMySQLMySQL Servermy.ini

Nastavení port uvnitř souboru definuje, který port se používá.

[mysqld]
port=3306

Kontrolou tohoto souboru můžete potvrdit aktuální číslo portu.

3. Jak změnit port MySQL

Proč změnit port?

Existuje několik důvodů pro změnu výchozího portu MySQL. Nejprve z bezpečnostních důvodů: protože útočníci často cílí na port 3306, přepnutí na jiný port může riziko snížit. Také, pokud spouštíte více instancí MySQL na stejném serveru, musíte každé přiřadit jiný port.

Kroky k změně portu

K změně portu MySQL upravte konfigurační soubor my.cnf. Například k změně portu na 3307 aktualizujte soubor následovně:

[mysqld]
port=3307

Po uložení konfigurace restartujte MySQL server. Na Linuxu ho můžete restartovat následujícím příkazem:

sudo systemctl restart mysql

Na Windows restartujte službu MySQL. Také se ujistěte, že aktualizujete nastavení firewallu tak, aby umožňoval nový port.

4. Bezpečnostní opatření

Rizika otevírání portů

Exponování portu MySQL světu zvenčí přináší bezpečnostní rizika. Útočníci mohou skenovat otevřené porty a pokoušet se o neoprávněný přístup, zejména cíleně na výchozí port 3306. Proto jsou další bezpečnostní opatření nezbytná.

Firewall a omezení přístupu

Nastavením firewallu tak, aby umožňoval připojení pouze ze specifických IP adres, můžete zablokovat neoprávněný přístup. Například na Linuxu můžete použít iptables k povolení připojení pouze ze specifické IP adresy k portu 3306:

sudo iptables -A INPUT -p tcp -s <Allowed-IP-Address> --dport 3306 -j ACCEPT

Je také doporučeno použít SSH tunel k šifrování připojení MySQL, což zajišťuje bezpečný přístup místo přímého exponování portu.

Povolení SSL/TLS

Dalším bezpečnostním opatřením je povolení SSL/TLS k šifrování komunikace mezi MySQL serverem a klienty. To pomáhá chránit data přenášená přes síť a snižuje riziko odposlechu nebo manipulace.

5. Řešení problémů s portem MySQL

Konflikty portů

Pokud port MySQL konfliktuje s jinou službou, musíte port změnit. Například, pokud jiná aplikace již používá stejný port, MySQL se nemusí spustit. V takovém případě postupujte podle výše uvedených kroků k přiřazení jiného portu.

Problémy s externím připojením

Pokud se nemůžete připojit k MySQL z externího hostitele, problém může být v nastavení firewallu nebo konfiguračním souboru MySQL. K povolení externích připojení nastavte bind-address na 0.0.0.0 v konfiguračním souboru:

[mysqld]
bind-address = 0.0.0.0

Navíc se ujistěte, že je firewall nakonfigurován tak, aby umožňoval přístup k portu.

6. Nejlepší postupy pro porty MySQL

Použijte vlastní port

Pokud nepoužíváte výchozí port 3306, zvažte nastavení náhodného vysokého čísla portu. To snižuje pravděpodobnost, že bude cílem útoků port scan, zejména pokud je povolen externí přístup.

Monitorujte logy

Pravidelně monitorujte logy připojení MySQL a chybové logy, abyste mohli brzy detekovat bezpečnostní incidenty. Pokud je detekován podezřelý přístup, okamžitě podněte akci. Monitorování logů by mělo být součástí vaší celkové strategie řízení bezpečnosti.

7. Závěr

V tomto článku jsme se zabývali základy portů MySQL a nejlepšími postupy pro bezpečnost. Ačkoli se běžně používá port 3306, je důležité ho změnit, když je to nutné, a posílit bezpečnost pomocí firewallů, SSH tunelů a SSL/TLS. Také jsme diskutovali o řešení běžných problémů s připojením a monitorování logů. Implementací těchto opatření můžete udržet svůj server MySQL bezpečný a spolehlivý.