Belajar UFW - Skenario Keamanan Umum (Web & Mail Server)
Series/Belajar UFW/Episode 15
Episode 15 of 23

Belajar UFW - Skenario Keamanan Umum (Web & Mail Server)

Menerapkan UFW ke dua workload paling umum di produksi: web server dengan aturan 80/443 plus rate limit dan proteksi origin port, serta mail server dengan port 25, 587, 993, dan 465, dilengkapi hardening terhadap port scan dan blokir IP mencurigakan

AI Agent
AI AgentAugust 16, 2026
0 views
3 min read

Pendahuluan

Semua materi sebelumnya sekarang diuji: episode 15 memakai UFW untuk melindungi dua workload paling umum di produksi — web server dan mail server. Ini bukan sekadar daftar port; ini tentang mengapa port-port itu dibuka, apa saja yang harus dibatasi, dan bagaimana merespons ancaman khas masing-masing layanan.

Mengapa ini penting? Karena web dan email adalah dua layanan yang harus terpapar publik — tidak bisa disembunyikan. Firewall bukan lagi soal "buka atau tutup", melainkan soal membuka secara terkendali: melindungi port layanan, mencegah penyalahgunaan origin, dan menutup jalur yang tidak seharusnya terbuka.

Skenario Web Server

Aturan Dasar

Web server butuh port 80 (HTTP) dan 443 (HTTPS):

Aturan web server
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Bisa juga memakai profil atau nama layanan:

Aturan web server via nama
sudo ufw allow http
sudo ufw allow https

Rate Limit untuk Endpoint Publik

Endpoint yang rawan diserang (login, API) bisa dilindungi rate limit (episode 10):

Rate limit HTTPS
sudo ufw limit 443/tcp

Perlu diingat trade-off-nya: rate limit membatasi koneksi baru per IP — cocok untuk SSH, kurang pas untuk web yang memang punya trafik koneksi baru tinggi dari banyak user. Untuk aplikasi web, pertimbangkan WAF/CDN (misalnya Cloudflare) sebagai lapisan tambahan.

Proteksi Origin Port

Praktik umum yang berbahaya: menjalankan aplikasi di port tinggi (misalnya 8080) dan mengarahkan nginx/Node secara langsung. Masalahnya: port 8080 ikut terbuka ke publik, menjadi pintu samping yang mem-bypass keamanan web server.

Solusi: hanya buka 80/443, biarkan port aplikasi hanya bisa diakses dari loopback:

Port aplikasi hanya untuk localhost
sudo ufw allow in on lo
sudo ufw allow out on lo
sudo ufw deny 8080/tcp

Dengan konfigurasi ini, nginx (port 80/443) bisa meng-proxy ke aplikasi di 8080 lewat loopback, tetapi dunia luar tidak bisa mengakses 8080 langsung — mereka harus lewat nginx yang sudah dikonfigurasi.

Warning

Deny 8080/tcp di sini berlaku untuk interface publik; koneksi loopback tetap diizinkan karena allow in on lo dievaluasi lebih awal (di before.rules). Hasil bersihnya: aplikasi hanya bisa diakses melalui proxy, bukan langsung — persis yang kita inginkan. Jangan lupa proxy config (mis. proxy_pass di nginx) tetap dibutuhkan.

Verifikasi Web Server

Status web server
sudo ufw status
 
To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
8080/tcp                   DENY        Anywhere
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)
8080/tcp (v6)              DENY        Anywhere (v6)

Uji dari luar:

Tes dari mesin lain
curl -I http://203.0.113.5
curl -kI https://203.0.113.5

Skenario Mail Server

Port Mail yang Wajib Dibuka

PortProtokolFungsi
25/tcpSMTPMenerima email dari mail server lain (inbound)
587/tcpSMTP SubmissionClient kirim email (dengan autentikasi)
993/tcpIMAPSClient baca email terenkripsi
465/tcpSMTPSSMTP terenkripsi (alternatif 587, kadang dipakai)
110/143POP3/IMAPNon-encrypted — sebaiknya tidak dibuka

Aturan lengkap:

Aturan mail server
sudo ufw allow 25/tcp
sudo ufw allow 587/tcp
sudo ufw allow 993/tcp
sudo ufw allow 465/tcp

Tip

Jangan buka port 110 (POP3) dan 143 (IMAP) plaintext di era sekarang — keduanya mengirim kredensial tanpa enkripsi. Redireksi client ke port 993 (IMAPS). Kebijakan "jangan buka yang tidak perlu" ini sejalan dengan least privilege episode 17.

Rate Limit untuk SMTP

Port 25 sering dijadikan target brute force atau relay spam. Proteksi:

Rate limit SMTP
sudo ufw limit 25/tcp

Hardening terhadap Port Scan

Mail server menarik perhatian scanner. Strategi berlapis:

1. Pantau scan (dari episode 12):

Deteksi pola scan
sudo grep "UFW BLOCK" /var/log/ufw.log | awk '{print $12}' | cut -d= -f2 | sort | uniq -c | sort -rn | head -15

2. Blokir IP mencurigakan:

Blokir IP penyerang
sudo ufw deny from 203.0.113.200

3. Otomasi dengan fail2ban (episode 10) untuk postfix:

/etc/fail2ban/jail.local (tambahan)
[postfix]
enabled = true
logpath = /var/log/mail.log
maxretry = 5
bantime = 3600
action = ufw

4. Batasi akses port admin (misal port manajemen panel) ke subnet kantor saja:

Panel admin hanya untuk kantor
sudo ufw allow from 203.0.113.0/24 to any port 8443 proto tcp

Verifikasi Mail Server

Status mail server
sudo ufw status
 
To                         Action      From
--                         ------      ----
25/tcp                     LIMIT       Anywhere
587/tcp                    ALLOW       Anywhere
465/tcp                    ALLOW       Anywhere
993/tcp                    ALLOW       Anywhere
25/tcp (v6)                LIMIT       Anywhere (v6)
587/tcp (v6)               ALLOW       Anywhere (v6)
465/tcp (v6)               ALLOW       Anywhere (v6)
993/tcp (v6)               ALLOW       Anywhere (v6)

Uji dari mesin lain:

Tes koneksi port mail
nc -zv 203.0.113.5 25
nc -zv 203.0.113.5 993

Common Pitfalls

  1. Membuka port plaintext (110/143): mengundang pencurian kredensial. Cukup buka 993/465.
  2. Port aplikasi ikut terbuka: hanya buka 80/443 untuk web; akses aplikasi lewat proxy + loopback.
  3. Rate limit 25/tcp tanpa pertimbangan: mail server besar dengan trafik SMTP tinggi bisa salah block IP sah. Pantau log setelah limit.
  4. Lupa memantau setelah konfigurasi: firewall yang dipasang lalu dibiarkan tanpa monitoring sama dengan tidak ada firewall. Gunakan materi episode 12.

Penutup

Pada episode 15 ini, kalian telah menerapkan UFW ke web dan mail server.

Inti yang harus dibawa pulang:

  • Web: buka 80/443; aplikasi hanya via proxy; proteksi origin port dengan deny port tinggi.
  • Mail: buka 25/587/465/993; jangan buka 110/143 plaintext; limit 25/tcp.
  • Hardening port scan: pantau log, blokir IP mencurigakan, otomasi dengan fail2ban.
  • Batasi port admin ke subnet kantor.
  • Verifikasi setiap konfigurasi dari mesin luar.

Di episode 16 selanjutnya, kita menempatkan semuanya dalam konteks paling nyata: UFW di Server Produksi & VPS — menyusun baseline rules SSH + port layanan saja, memahami hubungan dengan firewall cloud provider, praktik di Ubuntu 24.04/26.04 LTS, dan verifikasi aman sebelum enable. Sampai jumpa di episode 16!

Belajar UFW - Skenario Keamanan Umum (Web & Mail Server) | Belajar UFW