Lewatkan ke konten utama

Pengamanan Server Menggunakan Fail2Ban

Fail2Ban disini ditujukan untuk mengatasi masalah agar web server atau web dapat melihatmemblokir IP publik visitorclient yang ditempatkanmelakukan aktivitas berbahaya pada jaringan mikrotik denga konfigurasi NAT maka dapat menggunakan fitur Hairpin NAT atau NAT Reflection.

Skenarionya sebagaimana contoh berikut:

server 1: 36.67.22.18 -> 192.168.80.50 port 80
server 2: 36.67.22.19 -> 192.168.80.51 port 80
server 3: 36.67.22.20 -> 192.168.80.52 port 80

permasalahnya adalah saat cek ip lewat internet di server 1, server 2 dan server 3 yang terbaca adalah ip 36.67.22.18. Artinya ip publik pertama saja yang terbaca, sedangkan ip pengunjung server yang terdeteksi hanya ip gateway nya saja:
server 1: 36.67.22.18 -> 192.168.80.50 port 80 -> terdeteksi ip pengunjung 192.168.80.1
server 2: 36.67.22.19 -> 192.168.80.51 port 80 -> terdeteksi ip pengunjung 192.168.80.1
server 3: 36.67.22.20 -> 192.168.80.52 port 80 -> terdeteksi ip pengunjung 192.168.80.1

sedangkan solusi yang diinginkan adalah ketika cek ip lewat internet setiap server terdeteksi ip publiknya masing-masing:
server 1: cek ip lewat internet -> 36.67.22.18
server 2: cek ip lewat internet -> 36.67.22.19
server 3: cek ip lewat internet -> 36.67.22.20

tujuannya adalah agar dapat melihat ip visitor yang mengunjungi aplikasi/website pada server:
server 1: 36.67.22.18 -> 192.168.80.50 port 80 -> terdeteksi ip publik pengunjung
server 2: 36.67.22.19 -> 192.168.80.51 port 80 -> terdeteksi ip publik pengunjung
server 3: 36.67.22.20 -> 192.168.80.52 port 80 -> terdeteksi ip publik pengunjungserver.

nahInstallasi:
sudo apt install fail2ban

Konfigurasi Dasar untuk ituSSH
sudo konfigurasinyanano adalah sebagai berikut:

buat rule

/ip firewall nat
add chain=srcnat src-address=192.168.80.0/24 dst-address=192.168.80.0/24 out-interface=ether8-SERVER action=masquerade

add chain=dstnat dst-address=36.67.22.18 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.80.50 to-ports=80

add chain=dstnat dst-address=36.67.22.19 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.80.51 to-ports=80

add chain=dstnat dst-address=36.67.22.20 protocol=tcp dst-port=80 action=dst-nat to-addresses=192.168.80.52 to-ports=80

add chain=srcnat src-address=192.168.80.50 protocol=tcp out-interface=ether8-SERVER action=masqueradeetc/fail2ban/jail.local

addisi:
[sshd]
enabled chain=srcnat= src-address=192.168.80.51true
port protocol=tcp= out-interface=ether8-SERVERssh
filter action=masquerade= sshd
logpath = /var/log/auth.log
maxretry = 5
bantime = 1h
findtime = 10m

add[apache-auth]
enabled chain=srcnat= src-address=192.168.80.52true
port protocol=tcp= out-interface=ether8-SERVERhttp,https
logpath action=masquerade= /var/log/apache*/*error.log
maxretry = 5

addRestart chain=srcnatFail2Ban
sudo out-interface=ether3-WAN-ASTINETsystemctl action=masqueraderestart fail2ban
sudo systemctl enable fail2ban

Cek Status Jail
sudo fail2ban-client status