Secure MariaDB Dengan Dukungan SSL pada Ubuntu 16.04

MariaDB adalah database open source gratis, dan merupakan pengganti drop-in yang paling banyak digunakan untuk MySQL. Itu dibuat oleh pengembang MySQL dan dimaksudkan untuk tetap bebas di bawah GNU GPL. Ini sangat cepat, scalable, dan dilengkapi dengan serangkaian fitur yang kaya yang membuatnya sangat fleksibel untuk berbagai macam kasus penggunaan.

Tutorial ini akan memandu Anda melalui cara menginstal dan mengkonfigurasi MariaDB dengan dukungan SSL di Ubuntu 16.04.

Persyaratan

  • Contoh Ubuntu 16.04 Vultr yang baru.
  • Pengguna non-root dengan hak sudo.
  • Alamat IP statis 192.168.0.190 dikonfigurasi pada instance server.
  • Alamat IP statis 192.168.0.191 dikonfigurasikan pada mesin klien.

Langkah 1: Instal MariaDB

Secara default, versi terbaru dari MariaDB tidak tersedia di repositori Ubuntu 16.04; jadi Anda perlu menambahkan repositori MariaDB ke sistem Anda.

Pertama, unduh kunci dengan perintah berikut:

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

Selanjutnya, tambahkan repositori MariaDB ke /etc/apt/sources.listfile:

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

Perbarui indeks apt dengan perintah berikut:

sudo apt-get update -y

Setelah indeks apt telah diperbarui, instal server MariaDB dengan perintah berikut:

sudo apt-get install mariadb-server -y

Mulai server MariaDB dan aktifkan untuk memulai saat boot:

sudo systemctl start mysql
sudo systemctl enable mysql

Selanjutnya, Anda harus menjalankan mysql_secure_installationskrip untuk mengamankan instalasi MariaDB. Skrip ini memungkinkan Anda untuk mengatur kata sandi root, menghapus pengguna anonim, melarang login root jarak jauh dan menghapus database pengujian:

sudo mysql_secure_installation

Langkah 2: Buat Sertifikat SSL dan Kunci Pribadi untuk Server

Pertama, buat direktori untuk menyimpan semua file kunci dan sertifikat.

sudo mkdir /etc/mysql-ssl

Selanjutnya, ubah direktori menjadi /etc/mysql-ssldan buat sertifikat CA dan kunci pribadi dengan perintah 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 pertanyaan seperti yang ditunjukkan di bawah ini:

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]

Selanjutnya, buat kunci pribadi untuk server dengan perintah berikut:

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

Jawab semua pertanyaan seperti yang Anda lakukan pada perintah sebelumnya.

Selanjutnya, ekspor kunci pribadi server ke kunci tipe RSA dengan perintah berikut:

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

Akhirnya, buat sertifikat server menggunakan sertifikat CA sebagai 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 sekarang dapat melihat semua sertifikat dan kunci dengan perintah berikut:

ls

Anda akan melihat output berikut:

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

Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.

Langkah 3: Konfigurasikan Server MariaDB untuk menggunakan SSL

Anda harus memiliki semua sertifikat dan kunci pribadi; dan sekarang Anda harus mengonfigurasi MariaDB untuk menggunakan kunci dan sertifikat. Anda dapat melakukan ini dengan mengedit /etc/mysql/mariadb.conf.d/50-server.cnffile:

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

Tambahkan baris berikut di bawah [mysqld]bagian:

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 file, lalu mulai ulang layanan MariaDB untuk menerapkan perubahan ini:

sudo systemctl restart mysql

Sekarang, Anda dapat memeriksa apakah konfigurasi SSL berfungsi atau tidak dengan kueri berikut:

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

Jika konfigurasi berhasil, 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 memperhatikan have_ssldan have_opensslnilai diaktifkan pada output di atas.

Langkah 4: Buat Pengguna dengan Hak Istimewa SSL

Buat pengguna jarak jauh yang memiliki hak istimewa untuk mengakses server MariaDB melalui SSL. Lakukan ini dengan menjalankan perintah berikut:

Pertama, masuk ke shell MySQL:

mysql -u root -p

Selanjutnya, buat remotehak pengguna dan berikan untuk mengakses server melalui SSL.

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

Kemudian, siram hak istimewa dengan perintah berikut:

MariaDB [(none)]>FLUSH PRIVILEGES;

Akhirnya, keluar dari shell MySQL dengan perintah berikut:

MariaDB [(none)]>exit;

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

Server Anda sekarang siap untuk memungkinkan koneksi ke pengguna jarak jauh.

Langkah 5: Buat Sertifikat Klien

Konfigurasi sisi server Anda selesai. Selanjutnya, Anda harus membuat kunci dan sertifikat baru untuk klien.

Di mesin server, buat kunci klien dengan perintah berikut:

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

Selanjutnya, proses kunci RSA klien dengan perintah berikut:

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

Terakhir, tandatangani sertifikat klien dengan perintah 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 Klien MariaDB untuk Menggunakan SSL

Semua sertifikat dan kunci siap untuk klien. Selanjutnya, Anda perlu menyalin semua sertifikat klien ke mesin klien mana pun di mana Anda ingin menjalankan klien MariaDB.

Anda perlu menginstal klien MariaDB di mesin klien.

Pertama, pada mesin klien, unduh kunci untuk MariaDB dengan perintah berikut:

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

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

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

Selanjutnya, perbarui indeks apt dengan perintah berikut:

sudo apt-get update -y

Setelah indeks apt diperbarui, instal klien MariaDB di mesin klien dengan perintah berikut:

sudo apt-get install mariadb-client -y

Sekarang buat direktori untuk menyimpan semua sertifikat:

sudo mkdir /etc/mysql-ssl

Selanjutnya, salin semua sertifikat klien dari mesin server ke mesin klien dengan perintah berikut:

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

Kemudian, Anda harus mengonfigurasi klien MariaDB untuk menggunakan SSL. Anda dapat melakukan ini dengan membuat /etc/mysql/mariadb.conf.d/50-mysql-clients.cnffile:

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 file saat Anda selesai.

Langkah 7: Verifikasi Koneksi Jarak Jauh

Sekarang semuanya sudah terkonfigurasi, saatnya memverifikasi apakah Anda dapat terhubung ke server MariaDB dengan sukses atau tidak.

Di mesin klien, jalankan perintah berikut untuk menyambung ke server MariaDB:

mysql -u remote -h 192.168.0.190 -p mysql

Anda akan diminta memasukkan remotekata sandi pengguna. Setelah memberikan kata sandi, Anda akan masuk ke server MariaDB jarak jauh.

Periksa status koneksi dengan perintah berikut:

MariaDB [mysql]> status

Anda akan 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 akan melihat SSL: Cipher in use is DHE-RSA-AES256-SHAdalam output di atas. Itu berarti koneksi Anda sekarang aman dengan SSL.

Kesimpulan

Selamat! Anda telah berhasil mengonfigurasi server MariaDB dengan dukungan SSL. Anda sekarang dapat memberikan akses ke klien lain untuk mengakses server MariaDB melalui SSL.



Leave a Comment

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Cara Menginstal PostgreSQL 11.1 Di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo. Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Memasang MongoDB 4.0 di Arch Linux

Cara Memasang MongoDB 4.0 di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini) Akses Sudo: Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Cara Mencadangkan dan Mengembalikan Basis Data PostgreSQL di Ubuntu 16.04

Cara Mencadangkan dan Mengembalikan Basis Data PostgreSQL di Ubuntu 16.04

Pendahuluan PostgreSQL adalah sistem manajemen basis data sumber bebas dan terbuka yang dapat digunakan untuk menyimpan informasi yang terkait dengan situs web. Juga dikenal a

Cara Memasang MariaDB 10.3 atau MySQL 8.0 di Arch Linux

Cara Memasang MariaDB 10.3 atau MySQL 8.0 di Arch Linux

Prasyarat Server Vultr berjalan terbaru Arch Linux (lihat artikel ini.) Akses Sudo: Perintah yang diperlukan untuk dijalankan karena root diawali oleh #, dan satu

Mengamankan MongoDB

Mengamankan MongoDB

MongoDB tidak aman secara default. Jika Anda menginstal MongoDB dan meluncurkannya tanpa mengonfigurasinya untuk otentikasi, Anda akan mengalami kesulitan

Cara Memasang Apache Cassandra 3.11.x di Ubuntu 16.04 LTS

Cara Memasang Apache Cassandra 3.11.x di Ubuntu 16.04 LTS

Menggunakan Sistem yang Berbeda? Apache Cassandra adalah sistem manajemen basis data NoSQL gratis dan open source yang dirancang untuk memberikan skalabilitas, hig

Mencadangkan Database MySQL

Mencadangkan Database MySQL

MySQL adalah perangkat lunak paling populer di dunia yang digunakan untuk basis data. Memastikan bahwa Anda memiliki cadangan dari basis data Anda sangat penting. Praktek ini memungkinkan

Cara Memasang Apache Cassandra 3.11.x di CentOS 7

Cara Memasang Apache Cassandra 3.11.x di CentOS 7

Menggunakan Sistem yang Berbeda? Apache Cassandra adalah sistem manajemen basis data NoSQL gratis dan open source yang dirancang untuk memberikan skalabilitas, hig

Instal MongoDB Versi Baru di Debian 7

Instal MongoDB Versi Baru di Debian 7

MongoDB adalah database NoSQL yang cepat dan kuat. Namun, repositori Debian memperbarui secara lambat dan sering berisi versi paket yang sangat lama. Tutoria ini

Cara Memasang dan Mengkonfigurasi ArangoDB pada CentOS 7

Cara Memasang dan Mengkonfigurasi ArangoDB pada CentOS 7

Menggunakan Sistem yang Berbeda? Pendahuluan ArangoDB adalah sumber terbuka NoSQL database dengan model data yang fleksibel untuk dokumen, grafik, dan nilai kunci. ini

Instal RockMongo di CentOS 7

Instal RockMongo di CentOS 7

RockMongo adalah alat Manajemen MongoDB berbasis web yang mirip dengan alat Manajemen MySQL: phpMyAdmin. Tutorial ini akan membahas proses installin

Instal InfluxDB di Debian Jessie dengan Telegraf

Instal InfluxDB di Debian Jessie dengan Telegraf

Pendahuluan InfluxDB adalah basis data berbasis seri waktu yang ditulis dalam Go. InfluxDB memiliki banyak kegunaan praktis, salah satunya adalah menyimpan data pemantauan di server. saya

Menyebarkan Set Replika dengan Ketersediaan Tinggi di MongoDB 3.4 Menggunakan Keyfile untuk Kontrol Akses di Ubuntu 16.04

Menyebarkan Set Replika dengan Ketersediaan Tinggi di MongoDB 3.4 Menggunakan Keyfile untuk Kontrol Akses di Ubuntu 16.04

Sejak konsepsi pada tahun 2009 MongoDB telah memimpin industri NoSQL. Salah satu konsep inti dari MongoDB adalah Kumpulan Replika, jadi sebelum bekerja dengan i

Cara Memasang phpRedisAdmin di CentOS 7

Cara Memasang phpRedisAdmin di CentOS 7

phpRedisAdmin adalah aplikasi web yang mengelola basis data Redis dengan antarmuka pengguna grafis yang intuitif. Tutorial ini akan menjelaskan cara memasang

Cara Mengkonfigurasi WordPress dengan Redis

Cara Mengkonfigurasi WordPress dengan Redis

Redis adalah toko struktur data. Ini populer di situs WordPress karena menawarkan peningkatan kinerja besar karena pendekatan yang dioptimalkan pada caching.

Cadangkan Banyak Basis Data MySQL Atau MariaDB Secara Otomatis

Cadangkan Banyak Basis Data MySQL Atau MariaDB Secara Otomatis

Pendahuluan Dalam artikel ini, baik berjalan bagaimana cara membuat cadangan beberapa database MySQL atau MariaDB yang duduk di mesin yang sama menggunakan skrip bash khusus

Cara Memasang Redis di Ubuntu 15.10

Cara Memasang Redis di Ubuntu 15.10

Redis adalah solusi penyimpanan data nilai-kunci, sering disebut sebagai basis data NoSQL. Ini dapat mencapai kecepatan baca / tulis yang sangat tinggi karena ini adalah memori di dalam memori

Cara Memasang MyCLI di Linux (CentOS, Debian, Fedora, dan Ubuntu)

Cara Memasang MyCLI di Linux (CentOS, Debian, Fedora, dan Ubuntu)

Pendahuluan MyCLI adalah klien baris perintah untuk MySQL dan MariaDB yang memungkinkan Anda untuk melengkapi secara otomatis dan membantu sintaksis perintah SQL Anda. MyCL

Cara Backup, Restore atau Transfer Database MySQL / MariaDB di Ubuntu 16.04

Cara Backup, Restore atau Transfer Database MySQL / MariaDB di Ubuntu 16.04

Mencadangkan adalah bagian penting dari berurusan dengan basis data. Terlepas apakah Anda menjalankan situs perusahaan, atau hanya meng-host WordPress, penting untuk mendukung Anda

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

Wawasan tentang 26 Teknik Analisis Data Besar: Bagian 1

6 Hal yang Sangat Menggila dari Nintendo Switch

6 Hal yang Sangat Menggila dari Nintendo Switch

Banyak dari Anda tahu Switch keluar pada Maret 2017 dan fitur-fitur barunya. Bagi yang belum tahu, kami sudah menyiapkan daftar fitur yang membuat 'Switch' menjadi 'gadget yang wajib dimiliki'.

Janji Teknologi Yang Masih Belum Ditepati

Janji Teknologi Yang Masih Belum Ditepati

Apakah Anda menunggu raksasa teknologi untuk memenuhi janji mereka? periksa apa yang belum terkirim.

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Fungsionalitas Lapisan Arsitektur Referensi Big Data

Baca blog untuk mengetahui berbagai lapisan dalam Arsitektur Big Data dan fungsinya dengan cara yang paling sederhana.

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Bagaimana AI Dapat Membawa Otomatisasi Proses ke Tingkat Selanjutnya?

Baca ini untuk mengetahui bagaimana Kecerdasan Buatan menjadi populer di antara perusahaan skala kecil dan bagaimana hal itu meningkatkan kemungkinan untuk membuat mereka tumbuh dan memberi keunggulan pada pesaing mereka.

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA: Berapa Lama Itu Bisa Tetap Menjadi Teknik yang Layak Untuk Perbedaan Human-AI?

CAPTCHA telah berkembang cukup sulit bagi pengguna untuk dipecahkan dalam beberapa tahun terakhir. Apakah itu akan tetap efektif dalam deteksi spam dan bot di masa mendatang?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Singularitas Teknologi: Masa Depan Peradaban Manusia yang Jauh?

Saat Sains Berkembang dengan kecepatan tinggi, mengambil alih banyak upaya kita, risiko menundukkan diri kita pada Singularitas yang tidak dapat dijelaskan juga meningkat. Baca, apa arti singularitas bagi kita.

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Telemedicine Dan Perawatan Kesehatan Jarak Jauh: Masa Depan Ada Di Sini

Apa itu telemedicine, perawatan kesehatan jarak jauh dan dampaknya terhadap generasi mendatang? Apakah itu tempat yang bagus atau tidak dalam situasi pandemi? Baca blog untuk menemukan tampilan!

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Pernahkah Anda Bertanya-tanya Bagaimana Hacker Menghasilkan Uang?

Anda mungkin pernah mendengar bahwa peretas menghasilkan banyak uang, tetapi pernahkah Anda bertanya-tanya bagaimana cara mereka mendapatkan uang sebanyak itu? mari berdiskusi.

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Pembaruan Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Masalah Daripada Menyelesaikan

Baru-baru ini Apple merilis macOS Catalina 10.15.4 pembaruan suplemen untuk memperbaiki masalah tetapi tampaknya pembaruan menyebabkan lebih banyak masalah yang mengarah ke bricking mesin mac. Baca artikel ini untuk mempelajari lebih lanjut