sql >> Databáze >  >> RDS >> Mysql

Jak omezit přístup k portu MySQL

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:

  1. Přihlaste se na svůj server pomocí SSH.
  2. Na příkazovém řádku otevřete soubor /etc/my.cnf pomocí preferovaného textového editoru soubor.
  3. Vyhledejte následující řádek v souboru my.cnf soubor:
    #skip-networking
    Pokud tento řádek není v souboru my.cnf soubor, přidejte jej.
  4. Smažte # podepsat na začátku řádku, takže řádek vypadá takto:

    skip-networking
  5. Uložte změny do /etc/my.cnf soubor a poté ukončete textový editor.
  6. 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:

  1. Přihlaste se na svůj server pomocí SSH.
  2. Na příkazovém řádku otevřete pomocí preferovaného textového editoru soubor /etc/mysql/my.cnf soubor.
  3. 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.
  4. Pokud jste provedli nějaké změny v souboru /etc/my.cnf soubor, uložte je a poté ukončete textový editor.
  5. 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

  1. Definujte kroky pro SQL Server Cursor - SQL Server / TSQL výukový program

  2. Jak odstranit databázi v MySQL/MariaDB

  3. Nejčistší způsob, jak vytvořit řetězec SQL v Javě

  4. Jak transformovat dotaz MSSQL CTE na MySQL?