sql >> Database >  >> RDS >> Mysql

Toegang tot MySQL-poorten beperken?

Op sommige Linux-distributies is poort 3306 open nadat u MySQL hebt geïnstalleerd. Dit artikel beschrijft twee methoden voor het beperken of blokkeren van de toegang tot poort 3306 op een onbeheerde server.

De informatie in dit artikel is alleen van toepassing op onbeheerde producten. U moet root-toegang tot de server hebben om de hieronder beschreven procedures te volgen.

Methode #1:MySQL-netwerken uitschakelen

Als u MySQL niet vanaf een externe computer hoeft te openen, kunt u MySQL-netwerken uitschakelen.

Volg de onderstaande procedure voor uw Linux-distributie.

Zelfs als MySQL-netwerken zijn uitgeschakeld, hebt u indien nodig nog steeds veilig toegang tot MySQL vanaf een externe computer. Om dit te doen, kunt u een SSH-tunnel configureren. Zie dit artikel voor informatie over hoe u dit kunt doen.
CentOS en Fedora

Volg deze stappen om MySQL-netwerken op CentOS en Fedora uit te schakelen:

  1. Log in op uw server met SSH.
  2. Gebruik bij de opdrachtprompt de teksteditor van uw voorkeur om de /etc/my.cnf te openen bestand.
  3. Zoek de volgende regel in de my.cnf bestand:
    #skip-networking
    Als deze regel niet in de my.cnf . staat bestand, voeg het toe.
  4. Verwijder de # teken aan het begin van de regel zodat de regel er als volgt uitziet:

    skip-networking
  5. Sla uw wijzigingen op in de /etc/my.cnf bestand en sluit vervolgens de teksteditor.
  6. Typ de volgende opdracht om de MySQL-service opnieuw te starten:

    service mysqld restart

    Poort 3306 is nu gesloten op de server.

Debian en Ubuntu

Standaard is MySQL op Debian en Ubuntu geconfigureerd om alleen de localhost te gebruiken interface (IP-adres 127.0.0.1) voor netwerken. Dit betekent dat poort 3306 is afgesloten voor externe verbindingen. Om te bevestigen dat dit de configuratie op uw server is, volgt u deze stappen:

  1. Log in op uw server met SSH.
  2. Gebruik bij de opdrachtprompt de teksteditor van uw voorkeur om de /etc/mysql/my.cnf te openen bestand.
  3. Zoek de MySQL bind-adres regel in de my.cnf het dossier. Het zou er als volgt uit moeten zien:
    bind-address = 127.0.0.1
    Als de MySQL bind-adres regel is ingesteld op 0.0.0.0 (of helemaal geen adres), dan zijn verbindingen open op alle interfaces.
  4. Als u wijzigingen heeft aangebracht in de /etc/my.cnf bestand, sla ze op en sluit de teksteditor af.
  5. Typ de volgende opdracht om de MySQL-service opnieuw te starten:

    service mysql restart

    Poort 3306 is nu gesloten op de server.

Methode #2:Firewallregels configureren

U kunt iptables gebruiken om firewallregels te maken die de toegang tot poort 3306 beperken. Het voordeel van deze methode is dat u selectief toegang tot poort 3306 kunt verlenen of weigeren op basis van IP-adressen of andere criteria.

Om bijvoorbeeld de externe toegang tot poort 3306 volledig te blokkeren, typt u de volgende opdracht:

iptables -A INPUT -p tcp --dport 3306 -j DROP

Evenzo, om toegang te verlenen tot een specifiek IP-adres en alle andere te blokkeren, typt u de volgende opdrachten. Vervang xxx.xxx.xxx.xxx met het IP-adres waarvoor u toegang wilt verlenen:

iptables -A INPUT -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

U kunt MySQL-toegang verlenen tot extra IP-adressen door regels in te voegen in de INPUT ketting voor de DROP regel. Bijvoorbeeld:

iptables -I INPUT 1 -p tcp --dport 3306 -s xxx.xxx.xxx.xxx -j ACCEPT

  1. [Video] Inleiding tot JSON-gegevenstypen in PostgreSQL

  2. Foreign key naar een van de vele tabellen?

  3. pdo voorbereide uitspraken met jokertekens

  4. Hoe gebruik ik de opbouwfunctie voor expressies in Access 2016?