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

Come limitare l'accesso alla porta MySQL

Su alcune distribuzioni Linux, la porta 3306 è aperta dopo l'installazione di MySQL. Questo articolo descrive due metodi per limitare o bloccare l'accesso alla porta 3306 su un server non gestito.

Le informazioni in questo articolo si applicano solo ai prodotti non gestiti. È necessario disporre dell'accesso root al server per seguire le procedure descritte di seguito.

Metodo n. 1:disabilita la rete MySQL

Se non hai bisogno di accedere a MySQL da un computer esterno, puoi disabilitare la rete MySQL.

Segui la procedura appropriata di seguito per la tua distribuzione Linux.

Anche con la rete MySQL disabilitata, puoi comunque accedere a MySQL in modo sicuro da un computer remoto, se necessario. Per fare ciò, puoi configurare un tunnel SSH. Per informazioni su come eseguire questa operazione, consultare questo articolo.
CentOS e Fedora

Per disabilitare la rete MySQL su CentOS e Fedora, segui questi passaggi:

  1. Accedi al tuo server utilizzando SSH.
  2. Al prompt dei comandi, usa il tuo editor di testo preferito per aprire /etc/my.cnf file.
  3. Cerca la seguente riga in my.cnf file:
    #skip-networking
    Se questa riga non è in my.cnf file, aggiungilo.
  4. Elimina il # segno all'inizio della riga in modo che la riga assomigli alla seguente:

    skip-networking
  5. Salva le modifiche in /etc/my.cnf file, quindi esci dall'editor di testo.
  6. Digita il seguente comando per riavviare il servizio MySQL:

    service mysqld restart

    La porta 3306 è ora chiusa sul server.

Debian e Ubuntu

Per impostazione predefinita, MySQL su Debian e Ubuntu è configurato per utilizzare solo localhost interfaccia (indirizzo IP 127.0.0.1) per il collegamento in rete. Ciò significa che la porta 3306 è chiusa alle connessioni esterne. Per confermare che questa è la configurazione sul tuo server, segui questi passaggi:

  1. Accedi al tuo server utilizzando SSH.
  2. Al prompt dei comandi, usa il tuo editor di testo preferito per aprire /etc/mysql/my.cnf file.
  3. Individua MySQL indirizzo di rilegatura riga nel my.cnf file. Dovrebbe essere simile al seguente:
    bind-address = 127.0.0.1
    Se il MySQL indirizzo di rilegatura la linea è impostata su 0.0.0.0 (o nessun indirizzo), le connessioni sono aperte su tutte le interfacce.
  4. Se hai apportato modifiche a /etc/my.cnf file, salvali e poi esci dall'editor di testo.
  5. Per riavviare il servizio MySQL, digita il seguente comando:

    service mysql restart

    La porta 3306 è ora chiusa sul server.

Metodo n. 2:configurare le regole del firewall

Puoi utilizzare iptables per creare regole firewall che limitano l'accesso alla porta 3306. Il vantaggio di questo metodo è che puoi concedere o negare selettivamente l'accesso alla porta 3306 in base a indirizzi IP o altri criteri.

Ad esempio, per bloccare completamente l'accesso esterno alla porta 3306, digitare il comando seguente:

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

Allo stesso modo, per concedere l'accesso a un indirizzo IP specifico e bloccare tutti gli altri, digitare i seguenti comandi. Sostituisci xxx.xxx.xxx.xxx con l'indirizzo IP per il quale si desidera concedere l'accesso:

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

Puoi concedere a MySQL l'accesso a indirizzi IP aggiuntivi inserendo regole in INPUT catena prima del DROP regola. Ad esempio:

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