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 authenticationdan 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 Root
root
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 dengan perintah seperti berikut. Ganti user_baru dengan nama user yang kita inginkan:
adduser user_baru
- Tambahkan user_baru ke grup administrator sistem (admin) dengan menggunakan perintah berikut. Ganti user_baru dengan user yang tadi kita buat:
usermod -a -G sudo user_baru
- Kemudian kita keluar dari root agar bisa masuk dengan user yang baru kita buat, dengan perintah:
logout
- Sekarang kita coba login lagi ke server atau VPS kita dengan user baru.
Sekarang anda bisa mengelola server dengan menggunakan nama user yang barusan anda buat, tanpa harus sebagai
Non Aktifkan Root Login & Ubah Port SSH
root
. Jika anda ingin mengeksekusi perintah superuser (sebagai root
), anda bisa menambahkan sudo
didepan perintah tsb. Sebagai contoh jika anda ingin mengupdate server, gunakan perintah sudo apt-get update
. Hampir semua perintah superuser bisa dieksekusi dengan menggunakan sudo
, dan semua perintah yang dieksekusi dengan sudo
akan di catat /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.- Langkah pertama adalah dengan memperbarui file konfigurasi SSH dengan menggunakan perintah berikut:
sudo nano /etc/ssh/sshd_config
- Ubah
PermitRootLogin
keno
seperti nampak berikut ini:PermitRootLogin no
- Ganti port SSH dari 22 ke port lain, semisal 3342. Cari konfigurasi port 22 dan ganti dengan port sesuai keinginan anda.
Port 3342
- Simpan konfigurasi yang sudah kita ubah dengan menekan tombol keyboard Ctrl-X, dan kemudian Y.
- Restart SSH dengan menggunakan perintah berikut:
sudo service ssh restart
Setelah SSH di restart, konfigurasi baru akan dipakai oleh SSH.
Membuat Firewall
Selanjutnya kita akan membuat firewall untuk membatasi atau memblokir trafik inbound yang tidak diinginkan. Konfigurasi firewall berikut ini adalah contoh sederhana, yakni hanya membuka port 80 (http), 443 (https) dan 3342 (port SSH yang sebelumnya kita ganti dari port default 22). Anda bisa bebas mengubah konfigurasi sesuai dengan kebutuhan server.
- Periksa dulu konfigurasi firewall saat ini dengan menggunakan perintah:
sudo iptables -L
- Lihat outputnya. Jika sebelumnya anda belum pernah mengedit firewall, maka akan melihat empty ruleset, seperti dibawah ini:
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination - Buat sebuah file untuk menyimpan konfigurasi firewall kita, dengan perintah:
sudo nano /etc/iptables.firewall.rules
- Sekarang kita masukkan beberapa firewall rules ke file
iptables.firewall.rules
yang anda buat diatas. - Simpan konfigurasi diatas dengan menekan tombol Ctrl-X, dan kemudian Y.
- Aktifkan firewalldengan menjalankan perintah berikut:
sudo iptables-restore < /etc/iptables.firewall.rules
- Cek ulang konfigurasi firewallkita dengan perintah:
sudo iptables -L
- Periksa outputnya. Ruleset yang baru akan nampak seperti berikut:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere
REJECT all -- anywhere 127.0.0.0/8 reject-with icmp-port-unreachable
ACCEPT all -- anywhere anywhere state RELATED,ESTABLISHED
ACCEPT tcp -- anywhere anywhere tcp dpt:www
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere state NEW tcp dpt:ssh
ACCEPT icmp -- anywhere anywhere icmp echo-request
LOG all -- anywhere anywhere limit: avg 5/min burst 5 LOG level debug prefix `iptables denied: '
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain FORWARD (policy ACCEPT)
target prot opt source destination
REJECT all -- anywhere anywhere reject-with icmp-port-unreachable
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
ACCEPT all -- anywhere anywhere - Untuk memastikan konfigurasi firewall kita berjalan pada saat server di restart, kita harus membuat script baru dengan perintah:
sudo nano /etc/network/if-pre-up.d/firewall
- Salin dan masukkan baris berikut:
#!/bin/sh
/sbin/iptables-restore < /etc/iptables.firewall.rules - Tekan Ctrl-X dan kemudian Y untuk menyimpan script.
- Chmod script kita dengan perintah:
sudo chmod +x /etc/network/if-pre-up.d/firewall
Firewall sudah terinstal, dan akan melindungi server kita. Ingat, anda harus mengubah konfigurasi diatas jika menginstall software baru. Semisal jika anda menginstall layanan DNS, maka anda harus membuka port 53.
Instal Fail2Ban
Fail2Ban adalah aplikasi yang akan mendeteksi percobaan login secara berulang-ulang ke server kita, Fail2Ban akan membuat rule firewall sementara untuk memblokir alamat IP si penyerang server kita. Fail2Ban dapat memonitor bermacam protokol, seperti SSH, HTTP dan SMTP. Tetapi secara default, Fail2Ban hanya memonitor SSH saja.
Berikut adalah cara menginstal Fail2Ban:
- Instal Fail2Ban dengan menggunakan perintah:
sudo apt-get install fail2ban
- Secara default Fail2Ban akan memproteksi SSH setelah diinstal, tidak perlu langkah lainnya. Tetapi jika anda mengubah konfigurasi default dari Fail2Ban, anda dapat membuat file
jail.local
baru. Dengan perintah berikut:sudo nano /etc/fail2ban/jail.local
- Set variabel
bantime
untuk mengatur berapa lama blokir diterapkan (dalam detik). - Set variabel
maxretry
untuk mengatur batasan berapa kali percobaan login yang bisa dilakukan sebelum alamat IP diblokir. - Tekan tombol Ctrl-X dan kemudian Y untuk menyimpan konfigurasi.
Fail2Ban sekarang akan memonitor SSH server kita. Jika ada yang mencoba login ke server kita, hingga bebera kali percobaan gagal login, Fail2Ban akan memblokir alamt IP si penyerang dan akan mencatatnya di
Instal (D)DoS Deflate
/var/log/fail2ban.log
.Instal (D)DoS Deflate
(D)DoS Deflate adalah bash shell script ringan yang didesain untuk membantu proses pemblokiran serangan DoS (Denial of Service).
Proses instalasinya sangat mudah, berikut langkahnya:
- Download script (D)DoS Deflate dengan perintah:
wget https://www.inetbase.com/scripts/ddos/install.sh
- Kemudian chmod script instalasinya dengan perintah:
chmod 0700 install.sh
- Jalankan script instalasinya
./install.sh
- Untuk keluar dari tampilan readme, ketikkan perintah
:q
Selesai! Server anda sudah terproteksi dari serangan Denial of Service dengan menggunakan (D)Dos Deflate!
Post a Comment