Se stai lavorando con uno 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.
Prima di te Inizia
Prima di apportare modifiche al database MySQL, è importante effettuare il backup del 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 della 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 che tu non abbia 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 tuo 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.
Le posizioni di cui sopra sono le posizioni predefinite per i file di configurazione di MySQL. Se questi comandi non funzionano, dovrai cercare i file pertinenti (my.cnf, mysqld.cnfo my.ini) manualmente per individuare il percorso del file pertinente.
Impostazione di un intervallo IP di indirizzi di associazione sicuri
- Successivamente, gli utenti Linux e Mac possono riavviare MySQL digitando mysql.server stop && mysql.server starto mysql.server restart. Potrebbe essere necessario elevare il comando usando sudo (es. sudo mysql.server restart) e utilizzare il percorso appropriato al file mysql.server (es. /usr /local/bin/mysql.server).
Se non sei sicuro del nome corretto del servizio su Windows, digita net startper trovarlo.Se non riesci a ricaricare la configurazione, riavvia il server e ricarica MySQL manualmente (se necessario).
Configurazione dei firewall
In questa fase, il tuo database MySQL dovrebbe consentire connessioni remote da dispositivi utilizzando l'indirizzo IP che hai impostato come valore bind-addressnel tuo file di configurazione MySQL (o da tutti i dispositivi se imposti questo valore su 0.0.0.0invece). Tuttavia, le connessioni verranno comunque bloccate dal tuo 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 iptablescome utility firewall predefinita. Puoi configurarlo seguendo i passaggi seguenti.
Se iptables non è lo strumento firewall predefinito per la tua distribuzione Linux, dovrai consultare il manuale utente della tua distribuzione per ulteriori 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 stai utilizzando un PC o un server Windows per ospitare il tuo database, puoi configurare il tuo firewall seguendo questi passaggi:
Se hai problemi di connessione, ripeti questi passaggi sopra , assicurandoti di creare una nuova regola in uscitanelle impostazioni del firewall utilizzando gli stessi dettagli (porta 3306 e così via). Potrebbe anche essere necessario configurare il router di rete locale su 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.exesu Windows) da un terminale o da una finestra di PowerShell.
Se stai utilizzando Windows, dovrai assicurarti che MySQL è 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 proprio repository di app locale (es. sudo apt install mysql) per installare i pacchetti necessari.
Connessione a MySQL su Linux o Mac
Connessione a MySQL su Windows
Se non funziona, connettiti al server o al PC che ospita il tuo server MySQL utilizzando SSH (o accedi 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 mysqltramite una connessione SSH remota o accedendo direttamente al PC o al server che ospita il server.
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).
Protezione dei dati del database
Sia che tu stia lavorando con MySQL o con un altro tipo di SQL database, è importante proteggere le connessioni per mantenere la sicurezza dei dati. Un buon modo per farlo è generare chiavi SSH per l'accesso remoto sul tuo server, piuttosto che fare affidamento su password obsolete (e facilmente indovinabili).
Se sei preoccupato per la perdita di dati, puoi facilmente eseguire il 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 sistema di backup automatico per Windows simile, che ti consente di ripristinare i tuoi dati in caso di emergenza.