GNU/Linux >> Znalost Linux >  >> Panels >> Panels

Jak nakonfigurovat vzdálená a zabezpečená připojení pro MySQL na Ubuntu 16.04

V tomto článku vám ukážeme, jak nakonfigurovat vzdálená a bezpečná připojení pro MySQL na Ubuntu 16.04 VPS. Pokud pro připojení ke vzdálenému serveru MariaDB/MySQL používáte nešifrované připojení, pak každý s přístupem k síti může sledovat a analyzovat data odesílaná nebo přijímaná mezi klientem a serverem. Tato příručka by měla fungovat i na jiných systémech Linux VPS, ale byla testována a napsána pro Ubuntu 16.04 VPS.

1. Přihlaste se ke svému VPS přes SSH

ssh my_sudo_user@my_server

Kroky v tomto tutoriálu předpokládají, že jste nainstalovali MySQL 5.7 s výchozí konfigurací.

Povolit připojení SSL:

2. Vytvořte novou místní certifikační autoritu

Lokální certifikační autoritu použijeme jako kořenový certifikát s vlastním podpisem, který budeme používat k podepisování serverových i klientských certifikátů. Chcete-li vytvořit nový soubor místní certifikační autority, spusťte následující příkazy:

sudo openssl genrsa -out /etc/mysql/ca-key.pem 2048
sudo chmod 600 /etc/mysql/ca-key.pem
sudo openssl req -new -key /etc/mysql/ca-key.pem -out /etc/mysql/ca-csr.pem -subj /CN=mysql-CA/
sudo openssl x509 -req -in /etc/mysql/ca-csr.pem -out /etc/mysql/cacert.pem -signkey /etc/mysql/ca-key.pem -days 3650
sudo echo 01 > /etc/mysql/cacert.srl

3. Vygenerovat certifikát a klíč serveru

Chcete-li vygenerovat certifikát serveru a klíč, zadejte následující příkazy:

sudo openssl genrsa -out /etc/mysql/server-key.pem 2048
sudo chmod 600 /etc/mysql/server-key.pem
sudo openssl req -new -key /etc/mysql/server-key.pem -out /etc/mysql/server-csr.pem -subj /CN=mysql/
sudo openssl x509 -req -in /etc/mysql/server-csr.pem -out /etc/mysql/server-cert.pem -CA /etc/mysql/cacert.pem -CAkey /etc/mysql/ca-key.pem -days 365

4. Vygenerujte klientský certifikát a klíč

Dále musíme vygenerovat klientský certifikát. Spuštěním následujících příkazů vygenerujte klientský certifikát a klíč:

sudo openssl genrsa -out /etc/mysql/client-key.pem 2048
sudo chmod 600 /etc/mysql/client-key.pem
sudo openssl req -new -key /etc/mysql/client-key.pem -out /etc/mysql/client-csr.pem -subj /CN=mysql/
sudo openssl x509 -req -in /etc/mysql/client-csr.pem -out /etc/mysql/client-cert.pem -CA /etc/mysql/cacert.pem -CAkey /etc/mysql/ca-key.pem -days 365

Pokud chcete mít certifikát SSL podepsaný CA, můžete si zde zakoupit důvěryhodný certifikát SSL.

5. Povolit připojení MySQL Server SSL

Otevřete konfigurační soubor MySQL pomocí textového editoru:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

a odkomentujte následující řádky:

ssl-ca=/etc/mysql/cacert.pem
ssl-cert=/etc/mysql/server-cert.pem
ssl-key=/etc/mysql/server-key.pem

Uložte soubor a restartujte službu MySQL:

sudo systemctl restart mysql 

Chcete-li ověřit, že je povoleno SSL, přihlaste se k serveru MySQL

mysql -uroot -p

a spusťte následující příkaz:

mysql> show variables LIKE '%ssl%';

Výstup by měl být podobný následujícímu:

+---------------+----------------------------+
| Variable_name | Value                      |
+---------------+----------------------------+
| have_openssl  | YES                        |
| have_ssl      | YES                        |
| ssl_ca        | /etc/mysql/cacert.pem      |
| ssl_capath    |                            |
| ssl_cert      | /etc/mysql/server-cert.pem |
| ssl_cipher    |                            |
| ssl_crl       |                            |
| ssl_crlpath   |                            |
| ssl_key       | /etc/mysql/server-key.pem  |
+---------------+----------------------------+
9 rows in set (0.15 sec)

6. Povolit vzdálená připojení přes SSL

Ve výchozím nastavení MySQL naslouchá pouze připojení na localhost. Chcete-li povolit vzdálená připojení, musíte překonfigurovat MySQL na vašem serveru tak, aby naslouchalo na všech rozhraních, otevřete konfigurační soubor MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

a změnit

bind-address            = 127.0.0.1

do

bind-address            = 0.0.0.0

Aby se změny projevily, restartujte MySQL server pomocí následujícího příkazu:

sudo systemctl restart mysql 

Ověřte, že váš server MySQL naslouchá na všech rozhraních:

sudo netstat -anp | grep 3306

výstup by měl být podobný následujícímu:

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      938/mysqld

Chcete-li povolit připojení vašeho klienta MySQL k serveru MySQL, musíte uživateli databáze udělit přístup k databázi na vzdáleném serveru.

Například pokud chcete udělit přístup k dbuser uživatele na database_name databáze a pro vynucení SSL se přihlaste do prostředí MySQL jako root a spusťte následující příkaz:

GRANT ALL ON database_name.* TO [email protected] IDENTIFIED BY 'dbuserpassword' REQUIRE SSL;

kde 192.168.1.10 je IP adresa vašeho klientského počítače MySQL.

Dále musíte nakonfigurovat klienta MySQL tak, aby používal dříve vygenerovaný certifikát SSL. Zkopírujte následující soubory ze serveru MySQL do klientského počítače MySQL:

/etc/mysql/cacert.pem
/etc/mysql/client-cert.pem
/etc/mysql/client-key.pem

7. Konfigurace klienta MySQL

otevřete konfiguraci klienta MySQL a přidejte následující řádky:

[client]
ssl-ca=/etc/mysql/cacert.pem
ssl-cert=/etc/mysql/client-cert.pem
ssl-key=/etc/mysql/client-key.pem

8. Otestujte své připojení

Nyní můžete otestovat své připojení z klientského počítače k ​​databázovému serveru MySQL:

mysql -udbuser -pdbuserpassword -h 192.168.1.5

kde 192.168.1.5 je IP adresa vašeho databázového serveru MySQL.

A je to. Úspěšně jste nakonfigurovali vzdálená a zabezpečená připojení pro MySQL na vašem Ubuntu 16.04 VPS. Další informace o zabezpečených připojeních MySQL naleznete v oficiální dokumentaci MySQL.

Samozřejmě nemusíte konfigurovat vzdálená a zabezpečená připojení pro MySQL na Ubuntu 16.04, pokud používáte jednu z našich hostingových služeb Ubuntu VPS. V takovém případě můžete jednoduše požádat naše zkušené administrátory Linuxu, aby nakonfigurovali vzdálená a zabezpečená připojení pro MySQL na Ubuntu 16.04 pro vás. Jsou k dispozici 24×7 a okamžitě se postarají o váš požadavek.

PS . Pokud se vám líbil tento příspěvek o tom, jak nakonfigurovat vzdálené a zabezpečené připojení pro MySQL na Ubuntu 16.04, sdílejte jej se svými přáteli na sociálních sítích pomocí tlačítek vlevo nebo jednoduše zanechte odpověď níže. Děkuji.


Panels
  1. Jak nainstalovat a nakonfigurovat SuiteCRM s OPcache na Ubuntu 14.04 VPS

  2. Jak nainstalovat a nakonfigurovat Tinyproxy na Ubuntu 14.04

  3. Jak nainstalovat a nakonfigurovat LibreNMS na Ubuntu 16.04

  1. Jak nainstalovat a nakonfigurovat OpenSSH na Ubuntu 16.04

  2. Jak nainstalovat WordPress na Ubuntu 18.04 a nakonfigurovat jej pro použití vzdálené databáze

  3. Jak nainstalovat a používat MySQL na Ubuntu 20.04

  1. Jak nainstalovat a nakonfigurovat CyberPanel na Ubuntu 18.04

  2. Jak nainstalovat a nakonfigurovat LibreNMS na Ubuntu 20.04

  3. Povolte SSL a vzdálená připojení pro MySQL