Se stai lavorando con un Database MySQL, allora sei già consapevole delle sfide che devi affrontare per mantenere sicuro il tuo database. Dai tentativi di hacking del database che utilizzano le iniezioni SQL agli attacchi di forza bruta, è difficile mantenere i tuoi dati al sicuro, soprattutto se stai lavorando con un database in remoto.

Esistono modi per configurare un server SQL per consentire le connessioni remote. , ma devi stare attento, poiché consentire connessioni remote su un server MySQL può rendere il tuo database un facile bersaglio per gli hacker. Se desideri consentire connessioni remote e sicure a un database MySQL, ecco cosa devi sapere.

Sommario

Prima di iniziare

Prima di apportare modifiche al database MySQL, è importante esegui il backup del tuo database, soprattutto se stai lavorando su un server di produzione (un server in uso attivo). Qualsiasi modifica apportata al database, o al server che lo ospita, potrebbe causare una grave perdita di dati se qualcosa va storto.

Potresti anche scoprire che le modifiche alle connessioni del tuo server potrebbero impedirti di accedervi in ​​seguito. In tal caso, potrebbe essere necessario consultare un amministratore del server per ulteriore supporto. Una buona idea è provare qualsiasi modifica su un server MySQL eseguito localmente per verificare se le modifiche funzionano prima di provarle in remoto.

È anche probabile che se stai apportando modifiche a un server remoto, tu’Avrò bisogno di un modo sicuro per connetterti e apportare modifiche. SSH (Secure Shell) è spesso il modo migliore per farlo, poiché ti consente di connetterti al tuo server remoto. Puoi anche utilizzare SSH per connetterti ai server sulla tua rete locale, come quelli ospitato su un Raspberry Pi.

Questa guida ti guiderà attraverso i passaggi per configurare MySQL per consentire le connessioni remote, ma dovrai prima assicurarti di avere accesso diretto o remoto al server che ospita il tuo server MySQL.

Supponiamo non hai accesso remoto al tuo server tramite SSH (ad esempio). In tal caso, non sarai in grado di configurare il tuo database MySQL per consentire connessioni remote direttamente a meno che il tuo account mySQL di root non consenta già connessioni remote. Quindi, dovrai stabilire questa connessione prima di poter procedere.

Modifica del file di configurazione MySQL

Il primo passo nella configurazione di MySQL per consentire connessioni è modificare il file di configurazione di MySQL. A questo punto, questa guida presumerà che tu sia già connesso al server, al PC o al Mac che ospita il tuo database mySQL in remoto e che tu abbia accesso alla console.

In alternativa, puoi configurare un server MySQL locale utilizzando un terminale aperto su Mac o Linux o un editor di testo su Windows.

Per iniziare, usa il tuo editor di testo della console preferito per modificare il file del database MySQL. Su Linux, digita sudo nano/etc/mysql/mysql.conf.d/mysqld.cnf in un terminale o in una finestra SSH per modificare questo file utilizzando l’editor nano (supponendo il tuo database MySQL si trova nella posizione predefinita). Se stai utilizzando Windows, apri Esplora file e accedi alla cartella contenente la tua installazione di MySQL (es. C:/Programmi/MySQL/MySQL Server 8.0). Apri il file my.ini utilizzando il tuo editor di testo predefinito (ad es. Blocco note) facendo doppio clic sulla voce. Se non è presente, crea prima il file. Su Mac, apri una finestra di terminale e digita sudo nano/usr/local/etc/my.cnf. Questo è il file di configurazione predefinito per MySQL se hai installato MySQL usando homebrew.

Le posizioni sopra indicate sono le posizioni predefinite per la configurazione di MySQL File. Se questi comandi non funzionano, dovrai cercare i file pertinenti (my.cnf, mysqld.cnf o my.ini) manualmente per individuare il percorso del file pertinente.

Impostazione di un intervallo IP di indirizzi di associazione sicuri

Una volta aperto il file di configurazione di MySQL per il tuo server, usa il tasto freccia della tastiera per raggiungere la sezione bind-address del file. Questo intervallo IP limita le connessioni al database, che in genere è impostato per consentire solo le connessioni dalla macchina o dal server locale utilizzando 127.0.0.1. Se desideri configurare il tuo database MySQL per consentire le connessioni dai dispositivi che utilizzano la tua connessione Internet attuale, trova prima il tuo indirizzo IP pubblico, quindi sostituisci 127.0.0.1 con quell’indirizzo IP. In alternativa, sostituiscilo con un indirizzo IP per il dispositivo o il server da cui desideri consentire le connessioni. In alcune circostanze, potresti voler consentire tutte le connessioni remote a un database MySQL. Ciò comporta un rischio estremo e non dovrebbe essere utilizzato su un server di produzione. Se desideri consentire ciò, tuttavia, sostituisci 127.0.0.1 con 0.0.0.0. Prendi nota della porta valore nella sezione Impostazioni di base. Questo sarà richiesto nella prossima sezione. Se non è visibile, verrà utilizzato il valore predefinito, ovvero la porta 3306. Puoi aggiungere la tua porta digitando port=xxxx su una nuova riga, sostituendo xxxx con un valore di porta adatto. Dopo aver configurato l’indirizzo di associazione nel tuo File di configurazione MySQL, salva il file. Se sei su Linux, seleziona Ctrl + O e Ctrl + X per farlo. Su Mac, seleziona Comando + O e Comando + X. Gli utenti Windows possono salvare selezionando File > Salva. Successivamente, gli utenti Linux e Mac possono riavviare MySQL digitando mysql.server stop && mysql.server start o mysql.server restart. Potrebbe essere necessario elevare il comando usando sudo (es. sudo mysql.server restart) e usa il percorso appropriato al file mysql.server (es. /usr/local/bin/mysql.server ).  Se il comando precedente non funziona, prova sudo service mysql restart invece. Per riavviare MySQL su Windows, apri una nuova finestra di PowerShell facendo clic con il pulsante destro del mouse sul menu Start e selezionando Windows PowerShell (amministratore). Nella finestra di PowerShell, digita net stop mysql80 seguito da net start mysql80, sostituendo mysql80 con il nome del servizio corretto sul tuo PC.

Se non sei sicuro del nome del servizio corretto su Windows, digita net start per trovarlo. Se non riesci a ricaricare la configurazione, riavvia il server e ricarica MySQL manualmente (se necessario).

Configurazione dei firewall

A questo punto, il database MySQL dovrebbe consentire le connessioni remote dai dispositivi utilizzando l’indirizzo IP impostato come valore bind-address nel tuo MySQL file di configurazione (o da tutti i dispositivi se imposti questo valore su 0.0.0.0). Tuttavia, le connessioni verranno comunque bloccate dal dispositivo o firewall di rete.

La maggior parte dei server e dei PC utilizza un firewall per bloccare le connessioni a meno che non venga concesso l’accesso a una porta specifica. I passaggi per configurarlo variano a seconda che tu stia eseguendo MySQL su Windows o Linux. I firewall Mac sono disabilitati per impostazione predefinita, quindi non dovresti aver bisogno di completare ulteriori passaggi qui.

Configura i firewall Linux

Molti server Linux usano iptables come utility firewall predefinita. Puoi configurarlo seguendo i passaggi seguenti.

Apri un terminale o una connessione SSH e digita sudo iptables-A INPUT-p tcp-s X.X.X.X –dport YYYY-j ACCEPT. Sostituisci XXXX con l’indirizzo IP del dispositivo da cui desideri consentire le connessioni MySQL da e sostituisci YYYY con il valore della porta corrispondente dalla tua configurazione MySQL file (es. 3306). Questo configurerà temporaneamente il firewall. Se stai utilizzando un server Linux basato su Debian o Ubuntu, rendi permanente questa modifica digitando sudo netfilter-persistent save e sudo netfilter-persistent reloadnel terminale o SSH finestra.

Se iptables non è lo strumento firewall predefinito per la tua distribuzione Linux, dovrai consulta il manuale utente della tua distribuzione per maggiori informazioni. Se alcuni pacchetti (come netfilter-persistent) non sono disponibili, usa lo strumento di repository del software della tua distribuzione per installarlo (es. sudo apt install netfilter-persistent).

Configura Windows Firewall

Se utilizzi un PC o un server Windows per ospitare il tuo database, puoi configurare il firewall seguendo questi passaggi:

Giusto-fai clic sul menu Start e seleziona Esegui. Nella casella Esegui, digita wf.msc e seleziona OK. Nella finestra Windows Defender, seleziona Regole in entrata > Nuova regola. Nella finestra Creazione guidata nuova regola in entrata, seleziona Porta > Avanti. Nel menu successivo, seleziona TCP dalle opzioni, digita 3306 (o qualsiasi valore di porta elencato nel file di configurazione di MySQL), quindi seleziona Avanti. Nel menu Azione, lascia il opzione predefinita su Consenti la connessione abilitata, quindi seleziona Avanti. Conferma che desideri applicare la regola a tutti i tipi di rete, quindi seleziona Avanti. Digita un nome descrittivo per la regola (es. MySQL ) nella porta fornita, quindi seleziona Fine per aggiungerlo all’elenco delle regole del firewall.

Se hai problemi a connetterti, ripeti questi passaggi sopra, assicurandoti di creare una nuova regola in uscita nelle impostazioni del firewall utilizzando gli stessi dettagli (porta 3306 e così via). Potrebbe anche essere necessario configurare il router di rete locale per aprire le porte bloccate necessarie per consentire le connessioni in entrata e in uscita al database.

Connessione a un server remoto tramite MySQL

Dopo aver configurato il database MySQL per consentire le connessioni remote, dovrai effettivamente stabilire una connessione ad esso. Puoi farlo utilizzando il comando mysql (mysql.exe su Windows) da un terminale o da una finestra di PowerShell.

Se stai utilizzando Windows, dovrai assicurarti che MySQL sia installato localmente prima di iniziare. Gli utenti Mac possono installare MySQL usando homebrew dal terminale (brew install mysql), mentre gli utenti Linux possono utilizzare il loro repository di app locale (es. sudo apt install mysql) per installare i pacchetti necessari.

Connessione a MySQL su Linux o Mac

Per connetterti al tuo server MySQL remoto su Mac o Linux, apri una nuova finestra di terminale e digita mysql-u username-h XXXX:XXXX-p. Sostituisci X.X.X.X:XXXX con l’indirizzo IP del tuo server remoto e il numero di porta (es. 100.200.100.200:3306) e nome utente con il tuo nome utente MySQL. Quando richiesto, conferma la password. Se la connessione ha esito positivo, nel terminale verrà visualizzato un messaggio di successo.

Connessione a MySQL su Windows

Per connettersi a un server MySQL remoto su Windows, aprire una nuova finestra di PowerShell facendo clic con il pulsante destro del mouse sul menu Start e selezionando Windows PowerShell (amministratore ). Nella nuova finestra di PowerShell, digita cd “C:\Programmi\MySQL\MySQL Workbench 8.0\” per accedere alla cartella corretta, sostituendo questa directory con la directory di installazione corretta sul PC. Ad esempio, se la tua versione di MySQL è 8.0.1, usa invece la cartella MySQL Workbench 8.0.1. Da lì, digita .\mysql.exe-u username-h XXXX:XXXX-p . Sostituisci XXXX:XXXX con l’indirizzo IP del tuo server remoto e il numero di porta (es. 100.200.100.200:3306) e nome utente con un nome utente MySQL che consente l’accesso remoto (come root). Segui eventuali istruzioni aggiuntive sullo schermo. Fornisci la password, quando richiesto, per completare il processo di accesso e accedere al tuo database MySQL in remoto.

Se non funziona, connettiti al server o al PC che ospita il tuo server MySQL utilizzando SSH (o accedervi direttamente) seguendo questi passaggi e utilizzando l’argomento -h localhost. È quindi possibile creare un account utente adatto seguendo i passaggi seguenti.

Consentire l’accesso utente remoto a un database MySQL

A questo punto, dovresti essere in grado di connettersi al tuo server MySQL in remoto utilizzando l’account utente root del tuo server o un altro account utente con privilegi elevati. Poiché questo livello di accesso non è sicuro, potresti preferire creare un account più limitato per accedere al tuo database MySQL.

Questo account avrà accesso limitato al tuo server MySQL, consentendogli di interagire solo con database selezionati. Non sarà in grado di apportare modifiche più serie, come l’accesso ad altri dati del database, la creazione di nuovi account utente, ecc. 

Dovrai avere la possibilità di accedere al tuo server MySQL in remoto. Se non puoi utilizzare il tuo account di root in remoto, dovrai accedere alla shell del tuo server utilizzando il comando mysql tramite una connessione SSH remota o accedendo direttamente al PC o al server che ospita il server.

Nella tua shell MySQL remota (usando lo strumento mysql), digita CREATE USER “username”@”xxxx” IDENTIFICATO DA “password”; e seleziona Invio. Sostituisci nome utente con il nome utente che desideri creare, x.x.x.x con l’indirizzo IP da cui desideri connetterti e password con una password adeguata. Dovrai concedere al tuo nuovo account le autorizzazioni necessarie. Per fare ciò, digita GRANT ALL ON databasename.* TO username@”x.x.x.x”; e sostituisci nomedatabase, nome utente e x.x.x.x  con i dettagli corretti. Se lo desideri, sostituisci nomedatabase con * per concedergli l’accesso a tutti i database.

Con l’accesso concesso, segui i passaggi nella sezione precedente per connetterti al tuo server in remoto utilizzando il tuo nuovo account (es. mysql-u username-h XXXX:XXXX-p).

Proteggere il tuo database Dati

Sia che tu stia lavorando con MySQL o un altro tipo di database SQL, è importante proteggere le tue connessioni per mantenere la sicurezza dei tuoi dati. Un buon modo per farlo è genera chiavi SSH per l’accesso remoto al tuo server, invece di fare affidamento su password obsolete (e facilmente indovinabili).

Se sei preoccupato per la perdita di dati, puoi facilmente backup del database online. La maggior parte dei database viene eseguita utilizzando server Linux: puoi automatizza facilmente un backup di file Linux. Se stai eseguendo MySQL su Windows, puoi configurare un simile sistema di backup automatico per Windows, che ti consente di ripristinare i tuoi dati in caso di emergenza.

Categories: IT Info