Modul ini disusun untuk mata pelajaran Administrasi Sistem Jaringan (ASJ) jenjang SMK Kelas XII (Fase F - Konsentrasi Keahlian Teknik Komputer dan Jaringan).
Setelah mempelajari modul ini secara komprehensif, peserta didik diharapkan mampu:
Keamanan jaringan (Network Security) bukan sekadar memasang antivirus atau mengaktifkan password, melainkan proses berkelanjutan untuk melindungi integritas, kerahasiaan, dan ketersediaan data dari akses tanpa izin.
[ CONFIDENTIALITY ]
(Kerahasiaan Data)
/ \
/ \
/ \
[ INTEGRITY ] ------------- [ AVAILABILITY ]
(Keutuhan Data) (Ketersediaan Sistem)Firewall adalah garda pertahanan terdepan yang memeriksa setiap paket data yang melintasi antarmuka jaringan dan memutuskan apakah paket tersebut diizinkan lewat (ACCEPT), ditolak dengan pemberitahuan (REJECT), atau dibuang tanpa respons (DROP) berdasarkan aturan (ruleset) yang telah ditentukan.
NEW, ESTABLISHED, RELATED, dan INVALID.ESTABLISHED,RELATED.[ KLIEN INTERNET ] ---> [ FIREWALL (UFW/Iptables) ] ---> [ IDS/IPS (Snort) ] ---> [ LINUX WEB/DB SERVER ]
- Cek IP & Port - Deep Packet Inspect - Port 80, 443, 2222
- Block Brute Force - Deteksi Serangan - Layanan TerlindungiMeskipun firewall dapat memblokir port yang tidak diizinkan, firewall standar tidak dapat memeriksa isi payload di dalam port yang dibuka (misalnya port 80 HTTP dan port 443 HTTPS). Untuk mendeteksi serangan yang menyusup di dalam lalu lintas resmi, dibutuhkan sistem IDS/IPS.
| Parameter | Intrusion Detection System (IDS) | Intrusion Prevention System (IPS) |
|---|---|---|
| Posisi Jaringan | Passive / Out-of-band (Menerima salinan paket via SPAN port) | Inline / In-line (Paket data wajib melewati sensor IPS) |
| Tindakan Utama | Menganalisis, mencatat log, dan mengirim Peringatan / Alert | Menganalisis, mencatat log, dan LANGSUNG MEMBLOKIR (DROP) |
| Dampak Kegagalan | Jika sensor mati, lalu lintas jaringan tetap mengalir normal | Jika sensor hang/crash, lalu lintas jaringan dapat terputus |
| Perangkat Lunak | Snort (Mode NIDS), Zeek (Bro), Suricata (Passive) | Snort (Mode Inline / NFQ), Suricata (IPS Mode) |
# Mendeteksi dan memblokir upaya pemindaian port TCP SYN scan
alert tcp any any -> $HOME_NET any (flags: S; msg:"TERDETEKSI: Potensi TCP Port Scan via Nmap"; sid:1000001; rev:1;)
# Mendeteksi upaya eksekusi remote command injection
drop tcp any any -> $HTTP_SERVERS 80 (content:"/bin/sh"; nocase; msg:"BAHAYA: Remote Shell Command Injection Dicegah!"; sid:1000002; rev:1;)Layanan SSH (port 22) di internet secara konstan dipindai oleh ribuan bot otomatis yang mencoba menebak username dan password (Dictionary Attack / Brute Force).
Fail2ban bekerja dengan memantau log sistem secara real-time (misalnya /var/log/auth.log pada Debian/Ubuntu). Jika terdeteksi IP tertentu gagal login sebanyak batas yang ditentukan (misal 5 kali gagal dalam 10 menit), Fail2ban akan secara dinamis menyuntikkan aturan baru ke Iptables untuk memblokir IP tersebut selama waktu tertentu (misal 24 jam atau permanen).
2222 atau 43222).CLOSED). Port baru akan dibuka secara otomatis oleh firewall HANYA jika klien mengirimkan urutan paket "ketukan" rahasia ke port-port tertentu terlebih dahulu (misalnya: ketuk port 7000 TCP -> 8000 TCP -> 9000 TCP).VPN menciptakan terowongan terenkripsi (Encrypted Virtual Tunnel) yang aman melintasi jaringan internet publik yang tidak aman. Seluruh data yang dikirimkan dienkripsi dari ujung ke ujung (end-to-end encryption), sehingga pihak penyerang yang berada di jaringan publik (misalnya di WiFi kafe/sekolah) tidak dapat menyadap isi komunikasi (packet sniffing).
[ KLIEN REMOTE / LAPTOP ] === (Enkripsi ChaCha20-Poly1305) ===> [ GATEWAY VPN WIREGUARD ] ---> [ SERVER LOKAL LAB ]Sebuah server Debian 12 di laboratorium ASJ difungsikan sebagai web server produksi. Teknisi bertugas melakukan hardening keamanan: mengaktifkan firewall stateful UFW, memasang Fail2ban untuk proteksi brute force SSH, serta mengonfigurasi VPN WireGuard untuk akses remote manajemen aman.
sudo apt update && sudo apt upgrade -y
sudo apt install ufw fail2ban wireguard iptables-persistent -y# Set aturan dasar: Tolak semua paket masuk, Izinkan semua paket keluar
sudo ufw default deny incoming
sudo ufw default allow outgoing
# Izinkan port SSH kustom (misal port 2222) dan port web server
sudo ufw allow 2222/tcp comment 'SSH Custom Management'
sudo ufw allow 80/tcp comment 'HTTP Web Server'
sudo ufw allow 443/tcp comment 'HTTPS Secure Web'
# Izinkan port VPN WireGuard (UDP)
sudo ufw allow 51820/udp comment 'WireGuard VPN Tunnel'
# Aktifkan Firewall UFW
sudo ufw enable
sudo ufw status verboseBuat salinan konfigurasi lokal agar tidak tertimpa saat pembaruan paket:
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.localSesuaikan parameter keamanan pada blok [sshd]:
[sshd]
enabled = true
port = 2222
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
findtime = 600
bantime = 86400Artinya: Jika terjadi 3 kali kegagalan login dalam kurun 10 menit (600 detik), IP penyerang akan diblokir total selama 24 jam (86.400 detik).
Restart dan periksa status penjara (jail) Fail2ban:
sudo systemctl restart fail2ban
sudo fail2ban-client status sshdGenerate pasangan kunci privat dan publik server:
cd /etc/wireguard
umask 077
wg genkey | tee server_private.key | wg pubkey > server_public.keyBuat file konfigurasi interface wg0.conf:
[Interface]
Address = 10.50.0.1/24
ListenPort = 51820
PrivateKey = <ISI_DARI_server_private.key>
SaveConfig = false
# IP Forwarding & NAT Masquerade agar klien dapat mengakses internet/server internal
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Peer Klien Teknisi (Laptop Siswa)
[Peer]
PublicKey = <ISI_DARI_client_public.key>
AllowedIPs = 10.50.0.2/32Aktifkan IP Forwarding pada kernel Linux:
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -pJalankan antarmuka WireGuard:
sudo systemctl enable --now wg-quick@wg0
sudo wg showREJECT dan DROP! Mengapa untuk server produksi publik yang terhubung ke internet, kebijakan DROP jauh lebih direkomendasikan daripada REJECT?