Alat Pengguna

Alat Situs


materi_4

Ini adalah dokumen versi lama!


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

  1. Terapkan aturan firewall (UFW atau iptables) yang hanya mengizinkan SSH, HTTP, dan HTTPS.
  2. Pindai server dengan nmap sebelum dan sesudah firewall aktif, lalu bandingkan hasilnya.
  3. Aktifkan login SSH dengan kunci dan nonaktifkan login root serta password.
  4. Lampirkan tangkapan layar ufw status (atau iptables -L) dan hasil percobaan login root yang ditolak.

Referensi

  • Dokumentasi Ubuntu: UFW dan OpenSSH.
  • Manual iptables dan sshd_config (man iptables, man sshd_config).

Modul ini merupakan bagian dari Knowledge Base Lab Komunikasi Data – Kelompok 10.

materi_4.1793023351.txt.gz · Terakhir diubah: oleh aulia