GNU/Linux >> Belajar Linux >  >> Panels >> Panels

Cara mengkonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04

Pada artikel ini, kami akan menunjukkan cara mengkonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04 VPS. Jika Anda menggunakan koneksi tidak terenkripsi untuk terhubung ke server MariaDB/MySQL jarak jauh Anda, maka semua orang yang memiliki akses ke jaringan dapat memantau dan menganalisis data yang dikirim atau diterima antara klien dan server. Panduan ini juga dapat digunakan pada sistem VPS Linux lainnya, tetapi telah diuji dan ditulis untuk VPS Ubuntu 16.04.

1. Masuk ke VPS Anda melalui SSH

ssh my_sudo_user@my_server

Langkah-langkah dalam tutorial ini mengasumsikan bahwa Anda telah menginstal MySQL 5.7 dengan konfigurasi default.

Aktifkan Koneksi SSL:

2. Buat otoritas sertifikat lokal baru

Kami akan menggunakan otoritas sertifikat lokal sebagai sertifikat root yang ditandatangani sendiri yang akan kami gunakan untuk menandatangani sertifikat server dan klien. Untuk membuat file otoritas sertifikat lokal baru, jalankan perintah berikut:

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. Buat Sertifikat dan Kunci Server

Untuk menghasilkan sertifikat server dan kunci, jalankan perintah berikut:

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. Buat Sertifikat dan Kunci Klien

Selanjutnya, kita perlu membuat sertifikat klien. Jalankan perintah berikut untuk membuat sertifikat dan kunci klien:

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

Jika Anda ingin memiliki sertifikat SSL yang ditandatangani CA, Anda dapat membeli sertifikat SSL tepercaya di sini.

5. Aktifkan Koneksi SSL Server MySQL

Buka file konfigurasi MySQL dengan editor teks Anda:

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

dan batalkan komentar pada baris berikut:

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

Simpan file dan mulai ulang layanan MySQL:

sudo systemctl restart mysql 

Untuk memverifikasi bahwa SSL diaktifkan, login ke server MySQL

mysql -uroot -p

dan jalankan perintah berikut:

mysql> show variables LIKE '%ssl%';

Outputnya harus mirip dengan yang berikut:

+---------------+----------------------------+
| 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. Aktifkan Koneksi Jarak Jauh melalui SSL

Secara default, MySQL hanya mendengarkan koneksi di localhost. Untuk mengaktifkan koneksi jarak jauh, Anda perlu mengkonfigurasi ulang MySQL di server Anda untuk mendengarkan di semua antarmuka, untuk melakukannya buka file konfigurasi MySQL:

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

dan ubah

bind-address            = 127.0.0.1

untuk

bind-address            = 0.0.0.0

Agar perubahan diterapkan, restart server MySQL dengan perintah berikut:

sudo systemctl restart mysql 

Verifikasi bahwa server MySQL Anda mendengarkan semua antarmuka:

sudo netstat -anp | grep 3306

outputnya harus mirip dengan yang berikut:

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

Untuk mengaktifkan klien MySQL Anda untuk terhubung ke server MySQL, Anda perlu memberikan akses pengguna database ke database di server jauh.

Misalnya jika Anda ingin memberikan akses ke dbuser pengguna ke database_name database dan untuk memaksa SSL, login ke shell MySQL sebagai root dan jalankan perintah berikut:

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

di mana 192.168.1.10 adalah alamat IP mesin klien MySQL Anda.

Selanjutnya, Anda perlu mengonfigurasi klien MySQL Anda untuk menggunakan sertifikat SSL yang dibuat sebelumnya. Salin file berikut dari server MySQL Anda ke mesin klien MySQL Anda:

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

7. Konfigurasi Klien MySQL

buka konfigurasi klien MySQL Anda dan tambahkan baris berikut:

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

8. Uji Koneksi Anda

Anda sekarang dapat menguji koneksi Anda dari mesin klien ke server database MySQL:

mysql -udbuser -pdbuserpassword -h 192.168.1.5

di mana 192.168.1.5 adalah alamat IP server database MySQL Anda.

Itu dia. Anda telah berhasil mengonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04 VPS Anda. Untuk informasi lebih lanjut tentang koneksi aman MySQL, silakan merujuk ke dokumentasi resmi MySQL.

Tentu saja, Anda tidak perlu mengonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04 jika Anda menggunakan salah satu Layanan Hosting VPS Ubuntu kami, dalam hal ini Anda dapat meminta admin Linux ahli kami untuk mengonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04 untuk Anda. Mereka tersedia 24×7 dan akan segera memenuhi permintaan Anda.

PS . Jika Anda menyukai posting ini tentang cara mengkonfigurasi koneksi jarak jauh dan aman untuk MySQL di Ubuntu 16.04, silakan bagikan dengan teman-teman Anda di jejaring sosial menggunakan tombol di sebelah kiri atau cukup tinggalkan balasan di bawah. Terima kasih.


Panels
  1. Cara Menginstal dan Mengonfigurasi CyberPanel di Ubuntu 18.04

  2. Cara Menginstal WordPress di Ubuntu 18.04 dan Mengonfigurasinya untuk Menggunakan Database Jarak Jauh

  3. Cara Menginstal dan Menggunakan MySQL di Ubuntu 20.04

  1. Cara menginstal dan mengkonfigurasi SuiteCRM dengan OPcache di Ubuntu 14.04 VPS

  2. Cara Menginstal dan Mengonfigurasi LibreNMS di Ubuntu 20.04

  3. Cara Menginstal dan Mengonfigurasi StrongSwan VPN di Ubuntu 18.04

  1. Cara menginstal dan mengkonfigurasi Tinyproxy di Ubuntu 14.04

  2. Cara Menginstal dan Mengonfigurasi LibreNMS di Ubuntu 16.04

  3. Cara Menginstal dan Mengkonfigurasi OpenSSH di Ubuntu 16.04