Konfigurasi SSL, Backup dan PhpMyAdmin MariaDB pada Ubuntu 20.04

Database Server

Pada suatu perusahaan atau organisasi bisa memliki banyak data yang harus disimpan pada waktu tertentu. Database server merupakan solusi dari permasalahan ini, dimana database server dapat menyimpan informasi penting dalam jumlah besar pada suatu komputer.

Database merupakan informasi atau data yang dikumpulkan secara terstruktur da terorganisir yang kemudian disimpan dalam sistem komputer. Berbeda dengan Database, Database Server adalah program komputer yang menyediakan layanan pengelolaan dan penyimpanan data yang menggunakan model client server. Suatu basis data biasanya dimanajemen oleh Database Management System (DBMS), suatu software yang mengatur user dapat mengelola dan memanipulasi data yang ada didalamnya.

Salah satu database server yang mendapatkan popularitas dan reputasi yang baik adalah MariaDB. MariaDB adalah sistem manajemen basis data (DBMS) yang bersifat open-source dan merupakan cabang dari Mysql.

MariaDB

MariaDB merupakan DBMS yang dikembangkan oleh Mysql, bisa dibilang MariaDB merupakan versi lain dari Mysql. MariaDB memiliki keunggulan kompatibilitas dengan Mysql. Source code dari MariaDB sama-sama open source dengan Mysql, sehingga para pengguna memiliki fleksibilitas untuk menggunakan, memodifikasi, dan mendistribusikan ulang perangkat lunak ini. MariaDB bekerja layaknya Mysql, dimana menggunakan mode klien server dengan program server yang mengajukan permintaan dari program klien.

SSL

Seperti halnya Web Service pada Database Service tentu juga memerlukan SSL untuk menjaga keamanan database. Dengan metode enkripsi yang dimiliki SSL kita dapat menjaga informasi dan data yang sangat penting dari pihak – pihak yang tidak bertanggung jawab. Selain itu, dapat membuat klien lebih percaya akan keamanan data yang disimpan pada server database yang dimiliki.

Step 1 – Instalasi

  1. Pertama update dulu server ubuntu yang akan digunakan untuk konfigurasi MariaDB server.$sudo apt update -y
  2. Instal Package MariaDB server dengan mengetikkan perintah dibawah.$sudo apt install mariadb-server -y
  3. Instal setingan untuk MariaDB.$sudo mysql_secure_installationNantinya akan muncul beberapa pertanyaan. Kalian dapat mengikuti langkah – langkah dibawah atau juga dapat menyesuaikan sesuai kebutuhan.
  4. Masuk ke user sudo.$sudo su
  5. Membuat direktori untuk meyimpan sertifikat SSL untuk MariaDB.#mkdir /var/lib/mysql/ssl
  6. Masuk ke direktori SSL yang telah dibuat#cd /var/lib/mysql/ssl

Step 2 – Membuat Sertifikat SSL

  1. Selanjutnya kita akan membuat file key untuk Sertifikat Authority dengan perintah dibawah.#openssl genrsa -out CAkey.key 2048Note: “2048” untuk mendeklarasikan panjang key yang akan dibuat.
  2. Buatlah Sertifikat Authority menggunakan perintah dibawah.#openssl req -new -x509 -days 365 -key CAkey.key -out CA.crtNote: “365” digunakan untuk waktu expired dari Sertifikat Authority yang dibuat.Nantinya akan diminta untuk mengisi form yang menanyakan data wilayah seperti:
    • Country Name: Isi dengan code negara.
    • State or Province Name: Di isi dengan nama provinsi masing-masing.
    • Locality Name (city): Di isi dengan nama kota wilayah kalian.
    • Organization Name: Isi dengan nama organisasi
    • Organizational Unit Name:Isi dengan nama unit organisasi
    • Common Name: Boleh di isi apapun sesuai keinginan, bisa juga mungkin di isi dengan nama Sertifikat yang mau dibuat.
    Note: Tidak semua harus di isi kalian juga dapat menskip pertanyaan diatas.
  3. Membuat file request Sertifikat Server menggunakan perintah dibawah.#openssl req -new > mysql-req.req -nodesNantinya akan diminta mengisi form seperti saat membuat Sertifikat Authority, bedanya disini pada permintaan Common Name harus di isi dengan IP atau domain yang ingin digunakan sebagai mariadb server.
  4. kita akan membuat rsa key untuk Sertifikat Server. Disini perintah rsa berguna untuk mengenkripsi isi file yang ada pada privkey.pem dengan metode enkripsi rsa dan kemudian disimpan pada file dengan nama mysql.key.#openssl rsa -in privkey.pem -out mysql.key
  5. Terakhir kita buat Sertifikat Server menggunakan perintah dibawah. Disini Sertifikat Server saya beri nama mysql.crt.#openssl x509 -req -in mysql-req.req -signkey mysql.key -CA CA.crt -CAkey CAkey.key -days 365 -out mysql.crt -CAcreateserial

Step 3 – Konfigurasi MariaDB

  1. Mengubah pemilik akses direktori ssl menjadi mysql.#chown -R mysql. /var/lib/mysql/ssl
  2. Konfigurasi SSL pada MariaDB agar SSL dapat berjalan.#vim /etc/mysql/mariadb.conf.d/50-server.cnfPada line 98 uncomment perintah dibawah pada file 50-server.cnf, agar MariaDB dapat menggunakan SSL.ssl-ca=/var/lib/mysql/ssl/CA.crt ssl-cert=/var/lib/mysql/ssl/mysql.crt ssl-key=/var/lib/mysql/ssl/mysql.key
  3. Setelah melakukan semua konfigurasi, restart MariaDB dengan perintah dibawah.#systemctl restart mariadb

Step 4 – Pengujian

  1. Login mysql dengan tambahan perintah –ssl.#mysql --ssl
  2. Kemudian jalankan perintah dibawah untuk melihat apakah sudah jalan atau belum.>show status like 'ssl_cipher';Jika berhasil maka akan muncul hasil seperti gambar dibawah. Dapat dilihat pada hasilnya pada variable ssl_cipher memiliki Value.
  3. Sekarang kita akan mencoba tes login menggunakan perintah biasa.#mysql
  4. Kemudian jalankan lagi perintah untuk melihat ssl ciphernya.>show status like 'ssl_cipher';Maka hasilnya akan seperti gambar dibawah. Dapat dilihat bahwa saat menggunakan user root tanpa SSL, Value ssl ciphernya tidak ada. Berbeda saat menggunakan SSL Value ssl ciphernya ada isi.
  5. Selanjutnya kita akan mencoba untuk membuat user yang login harus menggunakan SSL.>create user ubuntu identified by 'pasword' require sslKemudian kita select untuk melihat apakah user yang dibuat sudah menggunakan SSL atau belum.Dari hasil select dapat dilihat bahwa user ubuntu yang telah dibuat memerlukan SSL untuk login.
  6. Terakhir kita uji coba login dengan menggunakan user yang telah dibuat.Seperti yang terlihat ketika kita mencoba login menggunakan perintah biasa tanpa tambahan perintah –ssl maka user tidak dapat diberikan akses untuk login. Sedangkan saat menggunakan perintah –ssl user dapat login ke MariaDB.

Backup MariaDB

Backup merupakan proses menyalin suatu data atau informasi. Pada Database menggunakan backup sangatlah penting. Ini adalah langkah kritis dalam mengamankan data jika terjadi kegagalan sistem, kehilangan data, atau serangan malware.

Step 1 – Instalasi

  1. Pertama kita install terlebih dahulu tool backup dari MariaDB, karena tool tidak terinstal langsung saat penginstalan MariaDB Server.$sudo apt install mariadb-backup -y

Step 2 – Pengujian

  1. Selanjutnya, lakukan backup MariaDB menggunakan perintah dibawah. Pada perintah kita membackup semua data MariaDB dalam direktori /home/mariadb_backup.$sudo mariabackup --backup --target-dir /home/mariadb_backup -u root
  2. Silahkan melihat isi dari direktori home yang dimana kita mencoba menyimpan file backupnya.$ll /home/Jika berhasil maka akan muncul direktori backupnya.Disini kita dapat melihat ada folder bernama mariadb_backup. Folder ini berisi semua data dari mariadb yang telah kita backup.
  3. Selanjutnya kita akan mencoba melakukan restore, sebelum itu kita akan menghentikan layanan MariaDB dan menghapus file bawaan MariaDB. Gunakan perintah dibawah untuk melakukan.$sudo systemctl stop mariadb $sudo rm -rf /var/lib/mysql/*
  4. Sebelum melakukan restore jalankan dulu perintah untuk mempersiapkan backup yang akan direstore.$sudo mariabackup --prepare --target-dir /home/mariadb_backup
  5. Jalankan perintah dibawah untuk melakukan restore.$sudo mariabackup --copy-back --target-dir /home/mariadb_backup
  6. Edit kepemilikian direktori MariaDB menjadi mysql dengan menggunakan perintah dibawah.$sudo chown -R mysql. /var/lib/mysql
  7. Jalankan lagi layanan MariaDB yang tadinya dimatikan$sudo systemctl start mariadb
  8. Sekarang cek kembali direktori MariaDB yang sudah dihapus, nantinya semua file yang terhapus akan dikembalikan lagi, setelah melakukan restore.$ll /var/lib/mysql

PHPMyAdmin MariaDB dengan Nginx

PHPMyAdmin merupakan aplikasi web untuk mengelola database Mysql atau MariaDB menggunakan User Interface (UI). Dengan menggunakan phpmyadmin ini kita dapat mudah dalam mengelola database mysql untuk kebutuhan yang diperlukan. Phpmyadmin menyediakan UI yang sangat friendly sehingga kita dapat dengan mudah mengelola database.

Step 1 – Instalasi

  1. Pertama kita akan melakukan penginstalan php7.4 dengan beberapa ekstensi tambahan. Karena PHPMyAdmin bekerja menggunakan bahasa php.$sudo apt install php7.4 php7.4-fpm php7.4-mysql php-common php7.4-cli php7.4-common php7.4-json php7.4-opcache php7.4-readline php7.4-mbstring php7.4-xml php7.4-gd php7.4-curl -y
  2. Kemudian, kita instal nginx sebagai web server untuk PHPMyAdmin nantinya.$sudo apt install nginx -y
  3. Lalu, instal phpmyadminnya.$sudo apt install phpmyadmin
  4. Saat penginstalan nanti akan diberi beberapa pertanyaan. Pada permintaan untuk mengisi web server yang akan digunakan, dikosongkan saja dan langsung klik ok. Karena kita akan menggunakan Nginx nantinya sebagai web server.Disini ada kita ditanya untuk melakukan konfigurasi phpmyadmin dengan dbconfig-common, cukup klik yes saja.Lalu, PHPMyAdmin akan membuat sebuah database phpmyadmin dengan username phpmyadmin dan akan diminta juga untuk membuat password PHPMyAdminnya, isikan password yang ingin digunakan.Konfirmasi lagi password yang akan digunakan

Step 2 – Konfigurasi

  1. Sekarang kita akan melakukan konfigurasi pada VirtualHost Nginx. Disini saya membuat file baru bernama phpmyadmin, dimana file ini berisi konfigurasi untuk menjalankan phpmyadmin pada Nginx.$sudo vim /etc/nginx/sites-enabled/phpmyadminBerikut ini merupakan perintah – perintah yang digunakan.server { listen 80; listen [::]:80; server_name localhost; root /usr/share/phpmyadmin/; index index.php index.html index.htm index.nginx-debian.html; access_log /var/log/nginx/phpmyadmin_access.log; error_log /var/log/nginx/phpmyadmin_error.log; location / { try_files $uri $uri/ /index.php; } location ~ ^/(doc|sql|setup)/ { deny all; } location ~ \.php$ { fastcgi_pass unix:/run/php/php7.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; include snippets/fastcgi-php.conf; } location ~ /\.ht { deny all; } }
  2. Kemudian kita akan meng unlink VirtualHost default Nginx$sudo unlink /etx/nginx/sites-enabled/default
  3. Lalu, restart layanan nginx agar semua konfigurasi dapat berjalan.$sudo systemctl restart nginx Note: Jika saat restart mengalami kegagalan, coba untuk menghapus apache2, karena pada saat penginstalan PHPMyAdmin by default PHPMyAdmin akan menginstallkan apache2 pada server kita.$sudo apt purge apache2 -y && apt autoremove Lalu coba untuk restart ulang kembali

Step 3 – Pengujian

  1. Buka web browser untuk uji coba, ketikkan ip atau domain dari web server yang telah dikonfigurasi.
  2. Kemudian login menggunakan username phpmyadmin dan password yang telah dibuat saat penginstalan tadi. Phpmyadmin siap digunakan.

Kesimpulan

Database merupakan informasi atau data yang dikumpulkan secara struktur dan terorganisir yang kemudian disimpan pada suatu komputer. Sedangkan Database Server merupakan sebuah komputer yang menyimpan informasi atau data tersebut. Penggunaan Database Server ini sangatlah bermanfaat untuk suatu perusahaan atau organisasi untuk menyimpan informasi ataupun data penting lainnya, yang dimana perlu dikelola dengan baik. Suatu basis data ini biasanya dikelola oleh Database Management System (DBMS). DBMS merupakan perangkat lunak yang berfungsi untuk mengelola pengguna agar dapat mengakses dan memanipulasi data tesebut. Dengan DBMS juga kita dapat menjaga keamanan, integritas, serta pencadangan (backup) dan pemulihan (recovery) data. Selain itu, penggunaan phpmyadmin dalam mengelola database mysql atau mariadb sangatlah membantu. Dengan UI yang dimiliki kita dapat dengan mudah melakukan pengelolaan, tapi perlu diingat juga saat menggunakan phpmyadmin, perlu memastikan keamanan dalam pengaksesannya agar tidak mudah dibajak oleh pihak-pihak yang tidak bertanggung jawab.

Tertarik Mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti. Klik disini untuk info lengkapnya.