sql >> Database teknologi >  >> RDS >> Mysql

Sådan begrænser du MySQL-portadgang

På nogle Linux-distributioner er port 3306 åben, efter du har installeret MySQL. Denne artikel beskriver to metoder til at begrænse eller blokere adgang til port 3306 på en ikke-administreret server.

Oplysningerne i denne artikel gælder kun for ikke-administrerede produkter. Du skal have root-adgang til serveren for at følge procedurerne beskrevet nedenfor.

Metode #1:Deaktiver MySQL-netværk

Hvis du ikke har brug for at få adgang til MySQL fra en ekstern computer, kan du deaktivere MySQL-netværk.

Følg den relevante procedure nedenfor for din Linux-distribution.

Selv med MySQL-netværk deaktiveret, kan du stadig få adgang til MySQL sikkert fra en fjerncomputer, hvis du har brug for det. For at gøre dette kan du konfigurere en SSH-tunnel. For information om, hvordan du gør dette, se venligst denne artikel.
CentOS og Fedora

Følg disse trin for at deaktivere MySQL-netværk på CentOS og Fedora:

  1. Log ind på din server ved hjælp af SSH.
  2. Ved kommandoprompten skal du bruge din foretrukne teksteditor til at åbne /etc/my.cnf fil.
  3. Find følgende linje i my.cnf fil:
    #skip-networking
    Hvis denne linje ikke er i my.cnf fil, tilføj den.
  4. Slet # tegn i begyndelsen af ​​linjen, så linjen ser sådan ud:

    skip-networking
  5. Gem dine ændringer i /etc/my.cnf fil, og forlad derefter teksteditoren.
  6. Indtast følgende kommando for at genstarte MySQL-tjenesten:

    service mysqld restart

    Port 3306 er nu lukket på serveren.

Debian og Ubuntu

Som standard er MySQL på Debian og Ubuntu konfigureret til kun at bruge localhost interface (IP-adresse 127.0.0.1) til netværk. Det betyder, at port 3306 er lukket for eksterne forbindelser. For at bekræfte, at dette er konfigurationen på din server, skal du følge disse trin:

  1. Log ind på din server ved hjælp af SSH.
  2. Brug din foretrukne teksteditor ved kommandoprompten til at åbne /etc/mysql/my.cnf fil.
  3. Find MySQL bindingsadresse linje i my.cnf fil. Det skulle se sådan ud:
    bind-address = 127.0.0.1
    Hvis MySQL bindingsadresse linje er indstillet til 0.0.0.0 (eller slet ingen adresse), så er forbindelser åbne på alle grænseflader.
  4. Hvis du har foretaget ændringer i /etc/my.cnf fil, gem dem og forlad teksteditoren.
  5. For at genstarte MySQL-tjenesten skal du skrive følgende kommando:

    service mysql restart

    Port 3306 er nu lukket på serveren.

Metode #2:Konfigurer firewallregler

Du kan bruge iptables til at oprette firewallregler, der begrænser adgangen til port 3306. Fordelen ved denne metode er, at du selektivt kan tildele eller nægte adgang til port 3306 baseret på IP-adresser eller andre kriterier.

For f.eks. at blokere ekstern adgang til port 3306 fuldstændigt, skal du skrive følgende kommando:

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

På samme måde, for at give adgang til en specifik IP-adresse og blokere alle andre, skal du skrive følgende kommandoer. Erstat xxx.xxx.xxx.xxx med den IP-adresse, som du vil give adgang til:

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

Du kan give MySQL adgang til yderligere IP-adresser ved at indsætte regler i INPUT kæde før DROP Herske. For eksempel:

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

  1. Sideinddeling i SQL Server ved hjælp af OFFSET/FETCH

  2. Hvad er fordele og ulemper ved at holde SQL i Stored Procs versus kode

  3. Sådan fungerer AUTOINCREMENT i SQLite

  4. Måder at migrere SQL Server Database til Azure SQL Database