Selamatkan MariaDB Dengan Sokongan SSL di Ubuntu 16.04

MariaDB adalah pangkalan data sumber terbuka percuma, dan merupakan pengganti drop-in yang paling banyak digunakan untuk MySQL. Ia dibuat oleh pembangun MySQL dan bertujuan untuk tetap bebas di bawah GNU GPL. Ini sangat cepat, dapat diskalakan, dan dilengkapi dengan serangkaian fitur yang kaya yang menjadikannya sangat serbaguna untuk berbagai macam kes penggunaan.

Tutorial ini akan memandu anda bagaimana memasang dan mengkonfigurasi MariaDB dengan sokongan SSL di Ubuntu 16.04.

Keperluan

  • Contoh Ubuntu 16.04 Vultr yang segar.
  • Pengguna bukan root dengan hak istimewa sudo.
  • Alamat IP statik 192.168.0.190 dikonfigurasikan pada contoh pelayan.
  • Alamat IP statik 192.168.0.191 dikonfigurasikan pada mesin pelanggan.

Langkah 1: Pasang MariaDB

Secara lalai, versi terbaru MariaDB tidak terdapat di repositori Ubuntu 16.04; jadi anda perlu menambahkan repositori MariaDB ke sistem anda.

Pertama, muat turun kunci dengan arahan berikut:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Seterusnya, tambahkan repositori MariaDB ke /etc/apt/sources.listfail:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Kemas kini indeks apt dengan arahan berikut:

sudo apt-get update -y

Setelah indeks apt telah dikemas kini, pasang pelayan MariaDB dengan arahan berikut:

sudo apt-get install mariadb-server -y

Mulakan pelayan MariaDB dan aktifkan pada masa boot:

sudo systemctl start mysql
sudo systemctl enable mysql

Seterusnya, anda perlu menjalankan mysql_secure_installationskrip untuk mendapatkan pemasangan MariaDB. Skrip ini membolehkan anda menetapkan kata laluan root, membuang pengguna tanpa nama, tidak membenarkan masuk root jauh dan membuang pangkalan data ujian:

sudo mysql_secure_installation

Langkah 2: Buat Sijil SSL dan Kunci Peribadi untuk Pelayan

Pertama, buat direktori untuk menyimpan semua fail kunci dan sijil.

sudo mkdir /etc/mysql-ssl

Seterusnya, ubah direktori ke /etc/mysql-ssldan buat sijil CA dan kunci peribadi dengan arahan berikut:

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

Jawab semua soalan seperti di bawah:

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

Seterusnya, buat kunci peribadi untuk pelayan dengan arahan berikut:

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

Jawab semua soalan seperti yang anda lakukan dalam arahan sebelumnya.

Seterusnya, eksport kunci peribadi pelayan ke kekunci jenis RSA dengan arahan berikut:

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

Akhirnya, buat sijil pelayan menggunakan sijil CA seperti berikut:

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

Anda kini dapat melihat semua sijil dan kunci dengan arahan berikut:

ls

Anda harus melihat output berikut:

ca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem

Setelah selesai, anda boleh meneruskan ke langkah seterusnya.

Langkah 3: Konfigurasikan MariaDB Server untuk menggunakan SSL

Anda harus mempunyai semua sijil dan kunci peribadi; dan sekarang anda perlu mengkonfigurasi MariaDB untuk menggunakan kunci dan sijil. Anda boleh melakukan ini dengan mengedit /etc/mysql/mariadb.conf.d/50-server.cnffail:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Tambahkan baris berikut di bawah [mysqld]bahagian:

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

##Change this value to connect the MariaDB server from another host.
bind-address = *

Simpan fail, kemudian mulakan semula perkhidmatan MariaDB untuk menerapkan perubahan ini:

sudo systemctl restart mysql

Sekarang, anda boleh menyemak sama ada konfigurasi SSL berfungsi atau tidak dengan pertanyaan berikut:

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

Sekiranya konfigurasi berjaya, anda akan melihat output berikut:

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

Anda harus perhatikan have_ssldan have_opensslnilai diaktifkan dalam output di atas.

Langkah 4: Buat Pengguna dengan Keistimewaan SSL

Buat pengguna jauh yang mempunyai hak istimewa untuk mengakses pelayan MariaDB melalui SSL. Lakukan ini dengan menjalankan perintah berikut:

Pertama, login ke shell MySQL:

mysql -u root -p

Seterusnya, buat pengguna remotedan berikan hak istimewa untuk mengakses pelayan melalui SSL.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

Kemudian, lengkapkan hak istimewa dengan arahan berikut:

MariaDB [(none)]>FLUSH PRIVILEGES;

Akhirnya, keluar dari shell MySQL dengan arahan berikut:

MariaDB [(none)]>exit;

Catatan: 192.168.0.191 adalah alamat IP mesin pengguna jauh (Pelanggan).

Pelayan anda kini bersedia untuk membenarkan sambungan ke pengguna jauh.

Langkah 5: Buat Sijil Pelanggan

Konfigurasi sisi pelayan anda selesai. Seterusnya, anda perlu membuat kunci dan sijil baru untuk pelanggan.

Pada mesin pelayan, buat kunci klien dengan arahan berikut:

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

Seterusnya, proseskan kunci RSA klien dengan arahan berikut:

sudo openssl rsa -in client-key.pem -out client-key.pem

Akhirnya, tandatangani sijil pelanggan dengan arahan berikut:

sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

Langkah 6: Konfigurasikan Pelanggan MariaDB untuk Menggunakan SSL

Semua sijil dan kunci siap untuk pelanggan. Seterusnya, anda perlu menyalin semua sijil klien ke mana-mana mesin pelanggan di mana anda ingin menjalankan klien MariaDB.

Anda perlu memasang klien MariaDB pada mesin pelanggan.

Pertama, pada mesin pelanggan, muat turun kunci untuk MariaDB dengan arahan berikut:

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Kemudian, tambahkan repositori MariaDB ke /etc/apt/sources.listfail:

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

Seterusnya, kemas kini indeks apt dengan arahan berikut:

sudo apt-get update -y

Setelah indeks apt dikemas kini, pasang klien MariaDB pada mesin pelanggan dengan arahan berikut:

sudo apt-get install mariadb-client -y

Sekarang buat direktori untuk menyimpan semua sijil:

sudo mkdir /etc/mysql-ssl

Seterusnya, salin semua sijil klien dari mesin pelayan ke mesin pelanggan dengan arahan berikut:

sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/

Kemudian, anda perlu mengkonfigurasi klien MariaDB untuk menggunakan SSL. Anda boleh melakukan ini dengan membuat /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffail:

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

Tambahkan baris berikut:

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

Simpan fail apabila anda selesai.

Langkah 7: Sahkan Sambungan Jauh

Setelah semuanya dikonfigurasikan, sudah tiba masanya untuk mengesahkan sama ada anda dapat menyambung ke pelayan MariaDB dengan jayanya atau tidak.

Pada mesin pelanggan, jalankan arahan berikut untuk menyambung ke pelayan MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Anda akan diminta memasukkan remotekata laluan pengguna. Setelah memberikan kata laluan, anda akan log masuk ke pelayan MariaDB yang jauh.

Periksa status sambungan dengan arahan berikut:

MariaDB [mysql]> status

Anda harus melihat output berikut:

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       [email protected]
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

Anda harus melihat SSL: Cipher in use is DHE-RSA-AES256-SHApada output di atas. Ini bermakna sambungan anda kini selamat dengan SSL.

Kesimpulannya

Tahniah! Anda berjaya mengkonfigurasi pelayan MariaDB dengan sokongan SSL. Anda kini boleh memberikan akses kepada klien lain untuk mengakses pelayan MariaDB melalui SSL.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut