V některých distribucích Linuxu je port 3306 otevřený po instalaci MySQL. Tento článek popisuje dva způsoby omezení nebo blokování přístupu k portu 3306 na nespravovaném serveru.
Informace v tomto článku se týkají pouze nespravovaných produktů. Abyste mohli postupovat podle níže popsaných postupů, musíte mít k serveru přístup root.Metoda č. 1:Deaktivace sítě MySQL
Pokud nepotřebujete přistupovat k MySQL z externího počítače, můžete síť MySQL zakázat.
Postupujte podle příslušného postupu níže pro vaši distribuci Linuxu.
I když je síť MySQL vypnutá, můžete v případě potřeby stále bezpečně přistupovat k MySQL ze vzdáleného počítače. Chcete-li to provést, můžete nakonfigurovat tunel SSH. Informace o tom, jak to provést, naleznete v tomto článku.CentOS a Fedora
Chcete-li zakázat síť MySQL na CentOS a Fedoře, postupujte takto:
- Přihlaste se na svůj server pomocí SSH.
- Na příkazovém řádku otevřete soubor /etc/my.cnf pomocí preferovaného textového editoru soubor.
- Vyhledejte následující řádek v souboru my.cnf soubor:
#skip-networking
Pokud tento řádek není v souboru my.cnf soubor, přidejte jej. -
Smažte # podepsat na začátku řádku, takže řádek vypadá takto:
skip-networking
- Uložte změny do /etc/my.cnf soubor a poté ukončete textový editor.
-
Pro restartování služby MySQL zadejte následující příkaz:
service mysqld restart
Port 3306 je nyní na serveru uzavřen.
Debian a Ubuntu
Ve výchozím nastavení je MySQL na Debianu a Ubuntu nakonfigurováno tak, aby používala pouze localhost rozhraní (IP adresa 127.0.0.1) pro práci v síti. To znamená, že port 3306 je uzavřen pro externí připojení. Chcete-li potvrdit, že se jedná o konfiguraci na vašem serveru, postupujte takto:
- Přihlaste se na svůj server pomocí SSH.
- Na příkazovém řádku otevřete pomocí preferovaného textového editoru soubor /etc/mysql/my.cnf soubor.
- Vyhledejte MySQL bind-address řádku v souboru my.cnf soubor. Mělo by to vypadat takto:
bind-address = 127.0.0.1
Pokud MySQL bind-address řádek je nastaven na 0.0.0.0 (nebo žádná adresa), pak jsou připojení otevřená na všech rozhraních. - Pokud jste provedli nějaké změny v souboru /etc/my.cnf soubor, uložte je a poté ukončete textový editor.
-
Chcete-li restartovat službu MySQL, zadejte následující příkaz:
service mysql restart
Port 3306 je nyní na serveru uzavřen.
Metoda č. 2:Konfigurace pravidel brány firewall
Pomocí iptables můžete vytvořit pravidla brány firewall, která omezují přístup k portu 3306. Výhodou této metody je, že můžete selektivně povolit nebo zakázat přístup k portu 3306 na základě IP adres nebo jiných kritérií.
Chcete-li například zcela zablokovat externí přístup k portu 3306, zadejte následující příkaz:
iptables -A INPUT -p tcp --dport 3306 -j DROP
Podobně, chcete-li udělit přístup ke konkrétní IP adrese a zablokovat všechny ostatní, zadejte následující příkazy. Nahraďte xxx.xxx.xxx.xxx s IP adresou, pro kterou chcete udělit přístup:
iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT iptables -A INPUT -p tcp --dport 3306 -j DROP
Přístup k MySQL můžete udělit dalším IP adresám vložením pravidel do INPUT řetěz před DROP pravidlo. Například:
iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT