Rumusan masalah :
Apa saja persiapan kunci (perangkat keras dan lunak) agar set-up Master-Slave berjalan tanpa kendala?
Bagaimana cara membangun benteng pertahanan (security) yang kokoh untuk menjaga integritas data pada server?
Seperti apa panduan langkah-demi-langkah yang paling efisien dalam mengintegrasikan Master-Slave database cluster?
Spesifikasi Lingkungan (Environment):
Provider: Virtual Private Server (VPS) Hostinger
Sistem Operasi: Ubuntu 24.04 LTS (Noble Numbat)
Container Engine: Docker (untuk manajemen aplikasi)
Database: MariaDB (sebagai sistem manajemen basis data relasional)
Keamanan & Monitoring:
Fail2ban: Proteksi serangan brute force melalui pemantauan file log sistem.
Monarx: Solusi antivirus untuk perlindungan server secara real-time.
A. Set-up Server
Ada beberapa langkah-langkah yang harus kita siapkan dalam set-up server database untuk master slave database cluster, seperti : setup user, port SSH, firewall, dan security untuk keamanan server.
1. Set-up User :
Proses ini untuk membuat user agar bisa akses ke server, untuk user root nantinya akan kita non-aktifkan.
run :
adduser randidevMasukan password dan retype password
Berikan akses sudo :
usermod -aG randidevCheck user :
groups
2. Ganti Port SSH
Mengganti port ssh bertujuan untuk meningkatkan keamanan dengan menyamarkan server dari serangan otomatis, terutama serangan bruto force dan port scanning yang sering menargetkan port 22.
Edit sshd config :
sudo nano /etc/ssh/sshd_configCari baris
Port 22, ubah menjadiPort 2221Restart ssh :
sudo systemctl restart ssh
3. Set-Up Firewall
Firewall berfungsi untuk membangun penghalang keamanan antara jaringan internal pribadi Anda (baik rumah maupun kantor) dan jaringan eksternal yang tidak aman, seperti internet.
Check status firewall :
ufw statusAllow Port SSH :
ufw allow 2221/tcpAllow Port Database :
ufw allow 3306/tcpAktifkan firewall :
ufw enableReload firewall :
ufw reload
4. Set-up SSH Key
SSH Key adalah kredensial autentikasi kriptografi yang terdiri dari pasangan kunci publik dan kunci privat, digunakan untuk masuk ke server secara aman tanpa kata sandi, mengotomatisasi tugas, dan memastikan komunikasi antar mesin melalui protokol SSH (Secure Shell) terenkripsi.
Pada komputer / PC lokal, run :
ssh-keygen -t ed25519 -C "Database Master Slave Hostinger"Masukan Passphrase
Masukan penamaan file :
database-clusterHasilnya :
/nama-folder/.ssh/database-cluster(private) dan/nama-folder/.ssh/database-cluster.pub(public)Copy-kan ke VPS :
ssh-copy-id randidev@ip-address-public-server -p 2221Update sshd_config VPS :
sudo nano /etc/ssh/sshd_configSet variabel berikut :
PasswordAuthentication no PermitEmptyPasswords no UsePAM no X11Forwarding no PermitRootLogin no AuthenticationMethods publickey AllowUsers randidevRestart sshd :
sudo systemctl restart sshCoba akses server menggunakan ssh :
ssh -p 2221 -i ~/.ssh/database-cluster randidev@ip-address-public-server
5. Instalasi Fail2ban
Fail2ban adalah alat keamanan (security framework) yang sangat populer untuk server Linux, termasuk Ubuntu. Fungsi utamanya adalah melindungi server dari serangan brute-force, yaitu upaya login berulang kali secara ilegal oleh bot atau peretas.
Pertama, pastikan repositori sistem Anda mutakhir dan instal paketnya:
sudo apt update sudo apt install fail2ban -yMembuat File Konfigurasi Local
Di Fail2ban, Anda sebaiknya tidak mengedit file /etc/fail2ban/jail.conf secara langsung karena file tersebut bisa tertimpa saat ada pembaruan sistem. Kita akan membuat salinannya ke file .local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.localMengatur Konfigurasi Global
Buka file .local tersebut menggunakan teks editor (seperti Nano):
sudo nano /etc/fail2ban/jail.localCari bagian
[DEFAULT]dan sesuaikan nilai-nilai berikut sesuai kebutuhan Anda:-
ignoreip: Masukkan alamat IP komputer pribadi Anda agar tidak terkunci secara tidak sengaja (Contoh:127.0.0.1/8 ::1 192.168.1.100).-
bantime: Durasi pemblokiran IP. (Contoh:1huntuk satu jam, atau1duntuk satu hari).-
findtime: Rentang waktu untuk menghitung jumlah kegagalan login.-
maxretry: Berapa kali percobaan gagal yang diperbolehkan sebelum diblokir (Contoh:3atau5).Mengaktifkan Proteksi SSH
Scroll ke bawah sampai Anda menemukan bagian [sshd] , pastikan pengaturannya terlihat seperti ini:
[sshd] enabled = true port = 2221 filter = sshd logpath = /var/log/auth.log backend = %(sshd_backend)s maxretry = 3 bantime = 86400 findtime = 3600(Catatan: Mengatur bantime menjadi 24h di sini akan memberikan hukuman lebih berat khusus untuk serangan SSH).
Menjalankan dan Menerapkan Perubahan
sudo systemctl restart fail2ban sudo systemctl enable fail2banCara Memantau Status Fail2ban
Setelah aktif, Anda bisa memantau siapa saja yang mencoba menyerang server anda dengan perintah berikut:
# Melihat status umum sudo fail2ban-client status # Melihat IP yang sedang diblokir di SSH sudo fail2ban-client status sshd # Cara melepas blokir IP (Unban) jika anda salah pencet sudo fail2ban-client set sshd unbanip [ALAMAT_IP_TARGET]
6. Instalasi Monarx sebagai Antivirus
Berbeda dengan sistem Linux pada umumnya yang mengharuskan instalasi malware scanner secara manual via Terminal, layanan VPS Hostinger sudah dilengkapi dengan Monarx secara gratis. Keunggulan Monarx terletak pada antarmuka grafisnya yang intuitif, sehingga memudahkan pengguna pemula dalam mengamankan server tanpa perlu keahlian teknis yang mendalam.
Setelah menyiapkan VPS Anda, ikuti langkah-langkah berikut untuk menginstal Monarx:
Masuk ke hPanel lalu klik VPS pada menu.
Pilih VPS Anda, lalu buka Security → Malware Scanner di sidebar kiri.
Klik banner pendeteksi malware dan pilih Install pada pop-up yang muncul.