Ini adalah dokumen versi lama!
Daftar isi
Modul 4: Network Security, Firewall (UFW/iptables), & SSH Hardening
Tujuan
- Memahami prinsip dasar keamanan jaringan dan ancaman umum.
- Mengonfigurasi firewall menggunakan UFW dan iptables.
- Mengamankan layanan SSH (hardening).
Dasar Teori
Prinsip CIA
| Prinsip | Arti |
|---|---|
| Confidentiality | Data hanya dapat diakses oleh pihak yang berwenang |
| Integrity | Data tidak berubah tanpa izin |
| Availability | Layanan tersedia saat dibutuhkan |
Ancaman Umum
| Ancaman | Keterangan | Mitigasi |
|---|---|---|
| Brute force | Menebak password berulang kali | Autentikasi kunci, batas percobaan, fail2ban |
| Port scanning | Mencari port/layanan yang terbuka | Firewall, tutup port yang tidak dipakai |
| DoS/DDoS | Membanjiri layanan hingga tidak bisa diakses | Rate limiting, firewall |
| Man-in-the-middle | Penyadapan atau pengubahan komunikasi | Enkripsi (SSH, HTTPS) |
Firewall
Firewall menyaring paket masuk dan keluar berdasarkan aturan (alamat, port, protokol). Prinsip yang disarankan: default deny, yaitu tolak semuanya, lalu izinkan hanya yang diperlukan.
- iptables: alat bawaan Linux untuk mengatur aturan paket (netfilter), fleksibel namun sintaksnya rumit.
- UFW (Uncomplicated Firewall): antarmuka sederhana di atas iptables, cocok untuk pemula.
Langkah Praktikum
A. Firewall dengan UFW
Peringatan: izinkan port SSH sebelum mengaktifkan UFW agar tidak terkunci dari server.
sudo apt install ufw -y # Kebijakan dasar sudo ufw default deny incoming sudo ufw default allow outgoing # Izinkan layanan yang dibutuhkan sudo ufw allow 22/tcp sudo ufw allow 80/tcp sudo ufw allow 443/tcp # Aktifkan dan cek status sudo ufw enable sudo ufw status verbose
Perintah lain yang berguna:
sudo ufw allow from 192.168.1.0/24 to any port 22 proto tcp sudo ufw limit 22/tcp sudo ufw delete allow 80/tcp sudo ufw status numbered
B. Firewall dengan iptables
Urutan penting: aturan ACCEPT dibuat dulu, kebijakan DROP dipasang terakhir.
# Izinkan koneksi yang sudah berjalan dan loopback sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT sudo iptables -A INPUT -i lo -j ACCEPT # Izinkan SSH dan Web sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # Izinkan ping (opsional) sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT # Terakhir: tolak semua selebihnya sudo iptables -P INPUT DROP # Lihat aturan sudo iptables -L -n -v --line-numbers
Simpan agar permanen setelah reboot:
sudo apt install iptables-persistent -y sudo netfilter-persistent save
Gunakan salah satu (UFW atau iptables), jangan keduanya sekaligus agar aturan tidak bentrok.
C. SSH Hardening
1. Buat kunci SSH di komputer klien dan salin ke server:
ssh-keygen -t ed25519 ssh-copy-id user@192.168.1.10
2. Pastikan login dengan kunci berhasil, lalu edit /etc/ssh/sshd_config di server:
PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes MaxAuthTries 3 LoginGraceTime 30 AllowUsers user
3. Periksa sintaks dan restart:
sudo sshd -t sudo systemctl restart ssh
Peringatan: jangan tutup sesi SSH yang sedang aktif sebelum menguji login baru dari terminal lain. Jika konfigurasi salah, sesi lama masih bisa dipakai untuk memperbaikinya.
Opsi tambahan: mengganti port SSH (misalnya Port 2222) mengurangi serangan otomatis, tetapi bukan pengamanan utama. Jika dipakai, izinkan port baru di firewall sebelum restart SSH.
Proteksi brute force dengan fail2ban:
sudo apt install fail2ban -y sudo systemctl enable --now fail2ban sudo fail2ban-client status sshd
Verifikasi
# Port yang terbuka di server sudo ss -tulpn # Pindai dari komputer lain (hanya port yang diizinkan boleh terbuka) nmap 192.168.1.10 # Uji login SSH sebagai root (harus ditolak) ssh root@192.168.1.10 # Lihat percobaan login gagal sudo journalctl -u ssh | grep -i "failed"
Tugas
- Terapkan aturan firewall (UFW atau iptables) yang hanya mengizinkan SSH, HTTP, dan HTTPS.
- Pindai server dengan
nmapsebelum dan sesudah firewall aktif, lalu bandingkan hasilnya. - Aktifkan login SSH dengan kunci dan nonaktifkan login root serta password.
- Lampirkan tangkapan layar
ufw status(atauiptables -L) dan hasil percobaan login root yang ditolak.
Referensi
- Dokumentasi Ubuntu: UFW dan OpenSSH.
- Manual
iptablesdansshd_config(man iptables,man sshd_config).
Modul ini merupakan bagian dari Knowledge Base Lab Komunikasi Data – Kelompok 10.
