
Server atau VPS yang kita gunakan untuk menghosting website kita terkoneksi dengan Internet, siapa saja dapat mengaksesnya. Untuk melindungi dari akses tangan-tangan jahil, kita perlu mengamankan server atau VPS tersebut. Kita akan memasang firewall, SSH key pair authentication dan sistem blokir otomatis yang disebut dengan fail2ban. Diharapkan dengan langkah-langkah tersebut dibawah ini, server atau VPS kita bisa mampu terlindungi dari serangan pihak yang tidak bertanggungjawab.
Login Non Rootroot
adalah user yang sangat powerful di mesin Linux. Tapi masalah muncul apabila login sebagai root
ialah kita dapat mengeksekusi semua perintah, baik perintah yang standar maupun perintah yang bisa menghancurkan server kita! Oleh sebab itu, ada baiknya kita tidak login ke server atau VPS menggunakan root
, yakni dengan membuat user lain dan menggunakannya disaat kita bekerja pada server atau VPS. Walaupun login dengan user non-root, kita masih bisa mengeksekusi perintah root
dengan menggunakan sudo
.
Berikut cara membuat user baru non-root:
- Login seperti biasa menggunakan root ke server atau VPS.
- Install program sudo dulu jika belum ada dengan perintah berikut:
apt-get install sudo
- Buat user baru (ganti
user_baru
sesuai keinginan):adduser user_baru
- Tambahkan
user_baru
ke grup administrator sistem:usermod -a -G sudo user_baru
- Keluar dari sesi
root
:logout
- Login kembali ke server/VPS menggunakan user baru.
Sekarang anda bisa mengelola server dengan menggunakan nama user yang barusan anda buat, tanpa harus sebagai root
. Jika anda ingin mengeksekusi perintah superuser (sebagai root
), anda bisa menambahkan sudo
di depan perintah tersebut. Contoh untuk update server:
sudo apt-get update
Hampir semua perintah superuser bisa dieksekusi dengan menggunakan sudo
, dan semua perintah yang dieksekusi dengan sudo
akan dicatat di /var/log/auth.log
.
Non Aktifkan Root Login & Ubah Port SSH
Karena kita sudah membuat user baru untuk login SSH dengan kemampuan sudo
, ada baiknya kita non aktifkan root login & mengganti default port SSH. Ini untuk meningkatkan keamanan dan meminimalisir serangan.
- Edit konfigurasi SSH:
sudo nano /etc/ssh/sshd_config
- Ubah
PermitRootLogin
menjadino
:PermitRootLogin no
- Ganti port SSH dari 22 ke port lain (misal 3342):
Port 3342
- Simpan perubahan (Ctrl+X lalu Y).
- Restart SSH:
sudo service ssh restart
Selanjutnya kita akan membuat firewall untuk membatasi atau memblokir trafik inbound yang tidak diinginkan. Contoh sederhana berikut hanya membuka port 80 (HTTP), 443 (HTTPS) dan 3342 (port SSH yang kita ganti). Silakan sesuaikan sesuai kebutuhan.
- Cek konfigurasi firewall saat ini:
sudo iptables -L
Jika belum pernah diset, biasanya ruleset kosong.
- Buat file rules:
sudo nano /etc/iptables.firewall.rules
- Isi dengan rules berikut (sesuaikan --dport SSH dengan port yang anda pakai):
*filter -A INPUT -i lo -j ACCEPT -A INPUT -d 127.0.0.0/8 -j REJECT -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT -A OUTPUT -j ACCEPT -A INPUT -p tcp --dport 80 -j ACCEPT -A INPUT -p tcp --dport 443 -j ACCEPT -A INPUT -p tcp -m state --state NEW --dport 3342 -j ACCEPT -A INPUT -p icmp -j ACCEPT -A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7 -A INPUT -j REJECT -A FORWARD -j REJECT COMMIT
- Simpan (Ctrl+X lalu Y).
- Aktifkan firewall:
sudo iptables-restore < /etc/iptables.firewall.rules
- Verifikasi:
sudo iptables -L
- Agar rules otomatis ter-apply saat boot, buat script:
sudo nano /etc/network/if-pre-up.d/firewall
#!/bin/sh /sbin/iptables-restore < /etc/iptables.firewall.rules
Simpan, lalu:
sudo chmod +x /etc/network/if-pre-up.d/firewall
Catatan: Ubah konfigurasi jika meng-install layanan baru. Misal untuk DNS buka port 53.
Instal Fail2BanFail2Ban adalah aplikasi yang mendeteksi percobaan login berulang ke server, lalu membuat rule firewall sementara untuk memblokir alamat IP penyerang. Dapat memonitor SSH, HTTP, SMTP, dsb. Default-nya memonitor SSH.
- Instal:
sudo apt-get install fail2ban
- Opsional, ubah konfigurasi default dengan membuat
jail.local
:sudo nano /etc/fail2ban/jail.local
Set variabel penting seperti:
bantime
— lamanya blokir (detik)maxretry
— berapa kali percobaan sebelum blokir
Simpan (Ctrl+X lalu Y).
Fail2Ban akan memonitor SSH. Ketika ada beberapa kali gagal login, alamat IP akan diblokir dan dicatat di /var/log/fail2ban.log
.
(D)DoS Deflate adalah bash shell script ringan untuk membantu memblokir serangan DoS (Denial of Service).
- Unduh script:
wget https://www.inetbase.com/scripts/ddos/install.sh
- Ubah permission:
chmod 0700 install.sh
- Jalankan installer:
./install.sh
- Keluar dari tampilan README (jika muncul):
:q
Selesai! Server anda sudah terproteksi dari serangan Denial of Service dengan menggunakan (D)DoS Deflate.
Posting Komentar