Hemat 15% untuk semua layanan hosting

Uji kemampuanmu dan dapatkan Diskon pada paket hosting apa saja

Gunakan kode: Skills Memulai
Bagian FAQ
Administrasi Keamanan

Cara Mengkonfigurasi Aturan Firewall: Panduan Teknis Lengkap

Sebuah aturan firewall adalah entri kebijakan yang menginstruksikan mesin firewall untuk mengizinkan, menolak, atau mencatat lalu lintas jaringan berdasarkan kriteria yang ditentukan seperti alamat IP sumber/tujuan, nomor port, protokol transport, dan arah lalu lintas. Aturan firewall yang dikonfigurasi dengan benar membentuk lapisan penegakan utama antara infrastruktur Anda dan internet publik, menjadikannya kontrol keamanan tunggal yang paling berpengaruh pada server atau perangkat jaringan mana pun.

Panduan ini mencakup arsitektur aturan firewall, UFW di Linux, firewalld, Windows Defender Firewall, nftables, dan praktik operasional yang membedakan lingkungan yang diperkuat dari yang salah dikonfigurasi.

Apa yang Sebenarnya Dikendalikan oleh Aturan Firewall

Setiap aturan dalam kumpulan aturan firewall dievaluasi terhadap lima atribut paket inti, yang umumnya disebut 5-tuple:

  • Alamat IP sumber — host atau subnet asal (misalnya, 192.168.1.0/24)
  • Alamat IP tujuan — host atau rentang target
  • Port sumber — port sementara di sisi inisiasi
  • Port tujuan — port layanan di sisi penerima (misalnya, 443 untuk HTTPS, 22 untuk SSH)
  • ProtokolTCP, UDP, ICMP, atau nomor protokol

Di luar 5-tuple, firewall stateful juga melacak status koneksi (NEW, ESTABLISHED, RELATED, INVALID), yang memungkinkan mereka mengizinkan lalu lintas balik untuk koneksi keluar tanpa menulis aturan masuk eksplisit untuk setiap respons.

Firewall Stateful vs. Stateless

FiturStatefulStateless
Melacak status koneksiYaTidak
Mengizinkan lalu lintas balik secara otomatisYaTidak — memerlukan aturan eksplisit
Overhead kinerjaSedangSangat rendah
Kasus penggunaan umumFirewall host, NGFWRouter inti, ACL throughput tinggi
Ketahanan terhadap spoofingTinggiRendah
Kompleksitas aturanLebih rendahLebih tinggi
Contoh alatiptables (conntrack), UFW, Windows DefenderAWS NACL, ACL dasar pada Cisco IOS

Untuk hampir semua penerapan server — termasuk VPS Hosting dan Dedicated Server — firewall berbasis host stateful adalah pilihan default yang tepat.

Pemrosesan Aturan Firewall: Masalah Urutan

Salah satu sumber kesalahan konfigurasi yang paling umum adalah kesalahpahaman tentang urutan aturan. Sebagian besar firewall mengevaluasi aturan dari atas ke bawah dan menerapkan aturan yang pertama cocok, lalu berhenti. Ini berarti:

  • Aturan ALLOW yang luas yang ditempatkan di atas aturan DENY yang spesifik akan menimpanya secara diam-diam.
  • Sebuah DENY ALL di bagian atas rantai memblokir segalanya, terlepas dari apa yang mengikutinya.
  • Aturan duplikat atau yang tersembunyi membuang siklus pemrosesan dan menciptakan kebingungan audit.

Praktik terbaik: Selalu tempatkan aturan spesifik sebelum aturan umum. Tempatkan aturan DENY eksplisit untuk sumber yang diketahui berbahaya di dekat bagian atas, diikuti oleh aturan ALLOW spesifik untuk layanan tepercaya, dan akhiri setiap rantai dengan kebijakan DENY default.

Mengonfigurasi Aturan Firewall di Linux dengan UFW

UFW (Uncomplicated Firewall) adalah frontend untuk iptables dan nftables pada sistem berbasis Debian/Ubuntu. Ini mengabstraksikan sintaks rantai tingkat rendah menjadi perintah yang mudah dibaca manusia sambil mempertahankan kontrol penuh atas pemfilteran port, protokol, IP, dan antarmuka.

Langkah 1: Instal dan Aktifkan UFW

UFW sudah terinstal sebelumnya di Ubuntu. Verifikasi statusnya sebelum mengaktifkan:

sudo ufw status verbose

Jika tidak aktif, aktifkan:

sudo ufw enable

Peringatan kritis: Jika Anda terhubung melalui SSH dan belum mengizinkan port 22, mengaktifkan UFW akan mengunci Anda. Selalu izinkan SSH sebelum mengaktifkan firewall di server jarak jauh.

Langkah 2: Tetapkan Kebijakan Default

Kebijakan default menentukan apa yang terjadi pada lalu lintas yang tidak cocok dengan aturan eksplisit mana pun. Dasar keamanan yang aman adalah:

sudo ufw default deny incoming
sudo ufw default allow outgoing

Ini memblokir semua koneksi masuk yang tidak diminta sambil mengizinkan semua lalu lintas keluar. Jika kebijakan keamanan Anda memerlukan pemfilteran egress (misalnya, mencegah eksfiltrasi data atau callback C2), ubah default keluar:

sudo ufw default deny outgoing

Kemudian izinkan secara eksplisit hanya tujuan keluar yang dibutuhkan aplikasi Anda.

Langkah 3: Izinkan Layanan dan Port Tertentu

UFW mendukung nama layanan dari /etc/services atau nomor port eksplisit:

# Allow SSH by service name
sudo ufw allow ssh

# Allow HTTP and HTTPS
sudo ufw allow http
sudo ufw allow https

# Allow a custom application port
sudo ufw allow 8080/tcp

# Allow a UDP service (e.g., DNS resolver)
sudo ufw allow 53/udp

Untuk mengizinkan rentang port (misalnya, FTP pasif):

sudo ufw allow 49152:65535/tcp

Langkah 4: Batasi Akses ke IP Sumber Tertentu

Mengekspos port administratif ke 0.0.0.0/0 adalah penyebab utama kompromi brute-force. Kunci SSH ke IP manajemen yang diketahui:

sudo ufw allow from 203.0.113.50 to any port 22 proto tcp

Untuk mengizinkan seluruh subnet manajemen:

sudo ufw allow from 10.0.0.0/8 to any port 22 proto tcp

Langkah 5: Tolak Lalu Lintas dari IP atau Subnet Tertentu

Blokir IP yang diketahui berbahaya:

sudo ufw deny from 198.51.100.77

Blokir seluruh subnet (misalnya, blok geografis atau rentang ASN yang kasar):

sudo ufw deny from 198.51.100.0/24

Kasus tepi: Aturan deny UFW mengirimkan respons TCP RST atau ICMP port-unreachable, yang mengonfirmasi keberadaan host. Gunakan reject untuk membuang paket secara diam-diam:

sudo ufw reject from 198.51.100.0/24

Langkah 6: Periksa Aturan Aktif

sudo ufw status numbered

Flag numbered menetapkan indeks untuk setiap aturan, yang diperlukan untuk penghapusan yang ditargetkan:

[ 1] 22/tcp                     ALLOW IN    203.0.113.50
[ 2] 80/tcp                     ALLOW IN    Anywhere
[ 3] 443/tcp                    ALLOW IN    Anywhere

Untuk output verbose lengkap termasuk kebijakan default dan pengikatan antarmuka:

sudo ufw status verbose

Langkah 7: Hapus Aturan

Hapus berdasarkan nomor aturan (lebih disukai — menghindari ambiguitas):

sudo ufw delete 3

Hapus berdasarkan spesifikasi aturan:

sudo ufw delete allow 8080/tcp

Langkah 8: Muat Ulang dan Pertahankan Aturan

Aturan UFW bertahan secara otomatis setelah reboot. Setelah perubahan massal, muat ulang tanpa memutus koneksi yang ada:

sudo ufw reload

Untuk mereset semua aturan sepenuhnya dan memulai dari awal:

sudo ufw reset

UFW Lanjutan: Profil Aplikasi

UFW mendukung profil aplikasi bernama yang disimpan di /etc/ufw/applications.d/. Ini memungkinkan Anda mendefinisikan aturan multi-port di bawah satu nama:

sudo ufw app list
sudo ufw allow 'Nginx Full'
sudo ufw app info 'Nginx Full'

Membuat profil kustom untuk API Node.js:

[NodeAPI]
title=Node.js API Server
description=Custom Node.js application
ports=3000,3001/tcp

Kemudian terapkan:

sudo ufw allow NodeAPI

Mengonfigurasi Aturan Firewall dengan firewalld (RHEL/CentOS/Fedora)

firewalld menggunakan model berbasis zona daripada kumpulan aturan datar. Setiap antarmuka jaringan ditetapkan ke zona (misalnya, public, internal, dmz), dan aturan diterapkan per zona. Ini secara arsitektur lebih fleksibel untuk server multi-homed.

Operasi Dasar firewalld

# Check status
sudo firewall-cmd --state

# List all active zones and their interfaces
sudo firewall-cmd --get-active-zones

# List rules in the public zone
sudo firewall-cmd --zone=public --list-all

Izinkan dan Hapus Layanan

# Allow HTTPS permanently
sudo firewall-cmd --zone=public --add-service=https --permanent

# Allow a custom port
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent

# Remove a service
sudo firewall-cmd --zone=public --remove-service=http --permanent

# Reload to apply permanent changes
sudo firewall-cmd --reload

Rich Rules untuk Kebijakan Spesifik IP

Rich rules firewalld memberikan granularitas iptables dengan sintaks yang lebih mudah dibaca:

# Allow SSH only from a specific IP
sudo firewall-cmd --zone=public 
  --add-rich-rule='rule family="ipv4" source address="203.0.113.50" service name="ssh" accept' 
  --permanent

# Block all traffic from a subnet
sudo firewall-cmd --zone=public 
  --add-rich-rule='rule family="ipv4" source address="198.51.100.0/24" drop' 
  --permanent

sudo firewall-cmd --reload

Mengonfigurasi Aturan Firewall dengan nftables

nftables adalah pengganti modern untuk iptables, menawarkan kerangka kerja terpadu untuk pemfilteran IPv4, IPv6, ARP, dan bridge dengan kinerja yang jauh lebih baik dan penggantian aturan atomik.

Kumpulan Aturan nftables Dasar

# Flush existing ruleset
sudo nft flush ruleset

# Create a basic filtering table
sudo nft add table inet filter

# Add input, forward, and output chains
sudo nft add chain inet filter input { type filter hook input priority 0 ; policy drop ; }
sudo nft add chain inet filter forward { type filter hook forward priority 0 ; policy drop ; }
sudo nft add chain inet filter output { type filter hook output priority 0 ; policy accept ; }

# Allow established and related connections
sudo nft add rule inet filter input ct state established,related accept

# Allow loopback
sudo nft add rule inet filter input iif lo accept

# Allow SSH from a specific IP
sudo nft add rule inet filter input ip saddr 203.0.113.50 tcp dport 22 accept

# Allow HTTP and HTTPS from anywhere
sudo nft add rule inet filter input tcp dport { 80, 443 } accept

Untuk membuat kumpulan aturan persisten, simpan ke file konfigurasi default:

sudo nft list ruleset > /etc/nftables.conf
sudo systemctl enable nftables

Mengonfigurasi Aturan Firewall di Windows

Windows Defender Firewall with Advanced Security menyediakan antarmuka GUI dan baris perintah (netsh, PowerShell) untuk manajemen aturan.

Menggunakan GUI

  1. Buka Windows Defender Firewall with Advanced Security melalui wf.msc.
  2. Pilih Inbound Rules atau Outbound Rules di panel kiri.
  3. Klik New Rule di panel kanan.
  4. Pilih jenis aturan:
  • Port — filter berdasarkan nomor port TCP/UDP
  • Program — filter berdasarkan jalur executable
  • Predefined — gunakan definisi layanan Windows bawaan
  • Custom — kontrol penuh atas semua parameter
  1. Tentukan port atau program, pilih Allow atau Block, pilih profil yang berlaku (Domain, Private, Public), dan beri nama aturan.

Menggunakan PowerShell (Direkomendasikan untuk Otomasi)

# Allow inbound HTTPS
New-NetFirewallRule -DisplayName "Allow HTTPS Inbound" `
  -Direction Inbound -Protocol TCP -LocalPort 443 -Action Allow

# Allow inbound SSH (Windows OpenSSH)
New-NetFirewallRule -DisplayName "Allow SSH Inbound" `
  -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow `
  -RemoteAddress 203.0.113.50

# Block inbound traffic from a specific IP
New-NetFirewallRule -DisplayName "Block Malicious IP" `
  -Direction Inbound -RemoteAddress 198.51.100.77 -Action Block

# View all inbound rules
Get-NetFirewallRule -Direction Inbound | Select-Object DisplayName, Enabled, Action

# Remove a rule by name
Remove-NetFirewallRule -DisplayName "Allow HTTPS Inbound"

Menggunakan netsh (Lama tetapi Didukung Luas)

:: Allow inbound port 443
netsh advfirewall firewall add rule name="Allow HTTPS" protocol=TCP dir=in localport=443 action=allow

:: Block a specific IP
netsh advfirewall firewall add rule name="Block IP" dir=in remoteip=198.51.100.77 action=block

:: Delete a rule
netsh advfirewall firewall delete rule name="Allow HTTPS"

Jebakan dan Kasus Tepi Aturan Firewall yang Kritis

Izin Implisit untuk Lalu Lintas ESTABLISHED

Pada firewall stateful, kegagalan untuk secara eksplisit mengizinkan koneksi ESTABLISHED dan RELATED di rantai input akan memutus semua sesi yang diinisiasi secara keluar (misalnya, apt update, curl, pencarian DNS) bahkan ketika rantai output diatur ke ACCEPT. Ini adalah kesalahan konfigurasi paling umum pada pengaturan iptables atau nftables mentah.

# This rule MUST appear before any DROP rules in the input chain
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Paritas IPv6

Banyak administrator mengonfigurasi aturan IPv4 dengan cermat dan melupakan IPv6 sepenuhnya. Jika server Anda memiliki alamat IPv6 dan dukungan IPv6 UFW tidak diaktifkan, penyerang dapat melewati semua aturan IPv4 dengan menghubungkan melalui ::. Verifikasi bahwa /etc/default/ufw berisi:

IPV6=yes

Antarmuka Loopback

Selalu izinkan secara eksplisit lalu lintas pada antarmuka loopback (lo). Banyak layanan lokal (basis data, antrean pesan, API internal) berkomunikasi melalui 127.0.0.1 atau ::1. Memblokir loopback memutus komunikasi antar-proses secara diam-diam.

sudo ufw allow in on lo
sudo ufw allow out on lo

Pembatasan Laju untuk Mencegah Brute Force

UFW mendukung pembatasan laju koneksi secara native, yang sangat penting untuk SSH dan layanan autentikasi lainnya:

sudo ufw limit ssh

Ini mengizinkan maksimum 6 upaya koneksi per 30 detik dari satu IP sebelum memicu blokir sementara otomatis — alternatif ringan untuk fail2ban untuk penerapan dasar.

ICMP dan Lalu Lintas Diagnostik

Memblokir semua ICMP adalah praktik umum tetapi kontraproduktif. Ini memutus ping, traceroute, penemuan jalur MTU, dan beberapa protokol routing. Pendekatan yang benar adalah mengizinkan jenis ICMP tertentu:

  • Tipe 0 (Echo Reply) dan Tipe 8 (Echo Request) — untuk ping
  • Tipe 3 (Destination Unreachable) — untuk penemuan jalur MTU
  • Tipe 11 (Time Exceeded) — untuk traceroute

Blokir Tipe 17 (Address Mask Request) dan Tipe 18 (Address Mask Reply), yang tidak memiliki penggunaan modern yang sah.

Aturan Firewall dan Lingkungan Hosting

Strategi firewall yang tepat sangat bergantung pada lapisan infrastruktur Anda.

Pada Shared Web Hosting, firewall dikelola di tingkat platform oleh penyedia. Penyewa biasanya mengonfigurasi kontrol akses lapisan aplikasi daripada filter paket tingkat kernel.

Pada VPS dengan cPanel, cPanel/WHM menyertakan ConfigServer Security & Firewall (CSF), yang membungkus iptables dengan antarmuka tingkat tinggi, deteksi brute-force otomatis, dan dukungan port knocking. CSF adalah solusi firewall standar untuk lingkungan cPanel dan harus digunakan sebagai preferensi daripada UFW mentah pada sistem tersebut.

Pada VPS Hosting atau Dedicated Server yang tidak dikelola, Anda memiliki kontrol penuh atas firewall kernel. Di sinilah UFW, firewalld, dan nftables adalah alat yang tepat. Dasar penguatan harus mencakup:

  • Kebijakan masuk default-deny
  • SSH dibatasi ke IP manajemen yang diketahui atau gateway VPN
  • Semua port yang tidak penting ditutup
  • Pembatasan laju pada port autentikasi
  • Logging diaktifkan untuk lalu lintas yang ditolak

Jika Anda menjalankan beban kerja GPU atau layanan inferensi ML pada GPU Hosting, perhatikan secara khusus port yang diekspos oleh notebook Jupyter, TensorBoard, dan API penyajian model — ini sering menjadi target bot cryptomining yang memindai port bernomor tinggi yang terbuka.

Daftar Periksa Audit dan Pemeliharaan Aturan Firewall

Audit aturan secara berkala sama pentingnya dengan konfigurasi awal. Aturan menumpuk seiring waktu dan menjadi usang, menciptakan permukaan serangan yang tidak perlu.

Tugas audit yang dilakukan setiap kuartal:

  • Jalankan sudo ufw status numbered atau yang setara dan tinjau setiap aturan terhadap inventaris layanan saat ini
  • Hapus aturan untuk layanan yang sudah dinonaktifkan, alamat IP lama, dan pengecualian sementara yang tidak pernah dibersihkan
  • Verifikasi bahwa kebijakan default masih deny incoming
  • Periksa bahwa aturan IPv6 mencerminkan aturan IPv4
  • Konfirmasi bahwa logging diaktifkan dan log lalu lintas yang ditolak sedang dicerna oleh SIEM atau agregator log Anda
  • Uji aturan dengan nmap dari host eksternal untuk memverifikasi bahwa permukaan serangan sesuai dengan niat Anda
# Scan your own server from an external host to verify exposed ports
nmap -sS -sV -p 1-65535 --open YOUR_SERVER_IP
  • Validasi bahwa aturan ESTABLISHED/RELATED ada dan diurutkan dengan benar
  • Tinjau aturan pembatasan laju dan sesuaikan ambang batas berdasarkan pola lalu lintas yang diamati

Matriks Keputusan: Memilih Alat Firewall yang Tepat

SkenarioAlat yang DirekomendasikanAlasan
Server Ubuntu/Debian, kumpulan aturan sederhanaUFWSintaks mudah dibaca, persisten secara default
Server RHEL/CentOS/FedorafirewalldIntegrasi native, model zona cocok untuk pengaturan multi-NIC
Pemfilteran berkinerja tinggi atau kompleksnftablesPembaruan atomik, kerangka kerja tunggal untuk IPv4/IPv6/ARP
RHEL/CentOS 6 lamaiptablesSatu-satunya pilihan pada kernel yang lebih lama
Windows ServerWindows Defender + PowerShellNative, dapat dikelola GPO, dapat di-script
VPS cPanelCSF (ConfigServer Firewall)Dibuat khusus untuk cPanel, termasuk daemon LFD
VM Cloud (AWS/GCP/Azure)Grup keamanan cloud + firewall hostPertahanan berlapis; SG cloud bersifat stateful dan gratis

Poin Penting Praktis

  • Tetapkan default-deny inbound sebelum menulis aturan izin apa pun. Ini memastikan bahwa aturan apa pun yang Anda lupa tulis menghasilkan koneksi yang diblokir, bukan yang terbuka.
  • Jangan pernah mengekspos SSH ke 0.0.0.0/0 di server produksi. Batasi ke IP manajemen, subnet VPN, atau gunakan port knocking.
  • Tulis aturan izin sespesifik mungkin. Lebih suka from 203.0.113.50 to any port 22 proto tcp daripada allow 22.
  • Cerminkan aturan IPv4 di IPv6. Firewall yang hanya memfilter IPv4 adalah setengah firewall.
  • Aktifkan pembatasan laju koneksi pada semua port autentikasi sebagai mitigasi brute-force dasar.
  • Catat lalu lintas yang ditolak. Pembuangan diam-diam tanpa logging membuat respons insiden hampir tidak mungkin.
  • Audit aturan secara terjadwal. Aturan yang usang adalah kewajiban, bukan jaring pengaman.
  • Uji dari luar. Gunakan nmap atau pemindai port eksternal setelah setiap perubahan aturan yang signifikan untuk mengonfirmasi permukaan serangan yang efektif.
  • Gunakan ufw reload daripada ufw disable && ufw enable untuk menghindari pemutusan koneksi aktif selama pembaruan aturan.
  • Pada nftables dan iptables, selalu tempatkan aturan accept ESTABLISHED/RELATED di bagian atas rantai input untuk menghindari pemutusan sesi yang diinisiasi secara keluar.

Pertanyaan yang Sering Diajukan

Apa perbedaan antara aturan firewall dan grup keamanan di lingkungan cloud?

Grup keamanan (AWS, GCP, Azure) adalah filter paket stateful yang dikelola cloud yang diterapkan di tingkat hypervisor sebelum lalu lintas mencapai VM Anda. Aturan firewall berbasis host (UFW, firewalld) berjalan di dalam kernel OS. Keduanya harus digunakan secara bersamaan untuk pertahanan berlapis — grup keamanan cloud sebagai perimeter luar dan firewall host sebagai lapisan penegakan dalam.

Mengapa UFW menampilkan aturan sebagai aktif tetapi lalu lintas masih diblokir?

Penyebab paling umum adalah urutan aturan. Aturan DENY yang lebih awal dalam rantai cocok sebelum aturan ALLOW Anda. Jalankan sudo ufw status numbered dan periksa urutannya. Juga verifikasi bahwa aturan IPv6 ada jika klien terhubung melalui IPv6, dan konfirmasi antarmuka yang benar ditargetkan jika server multi-homed.

Haruskah saya memblokir ICMP sepenuhnya untuk keamanan?

Tidak. Memblokir semua ICMP memutus penemuan jalur MTU, yang menyebabkan sesi TCP tergantung pada jaringan dengan MTU non-standar. Ini juga memutus traceroute dan membuat diagnostik jaringan jauh lebih sulit. Blokir hanya jenis ICMP yang tidak memiliki penggunaan operasional yang sah (tipe 17 dan 18). Izinkan echo request/reply, destination unreachable, dan time exceeded.

Apa yang terjadi pada koneksi SSH aktif ketika saya memuat ulang UFW?

sudo ufw reload memuat ulang kumpulan aturan tanpa menghapus entri status conntrack yang ada. Sesi SSH aktif tetap terhubung karena tabel pelacakan koneksi kernel masih menyimpan status ESTABLISHED mereka. Hanya sudo ufw disable diikuti oleh sudo ufw enable yang akan menghapus status dan berpotensi memutus koneksi aktif.

Bagaimana cara mencegah aturan firewall hilang setelah reboot sistem?

UFW mempertahankan aturan secara otomatis setelah reboot melalui file konfigurasi /etc/ufw/. Untuk firewalld, gunakan flag --permanent pada setiap aturan dan jalankan sudo firewall-cmd --reload. Untuk nftables mentah, simpan kumpulan aturan dengan sudo nft list ruleset > /etc/nftables.conf dan pastikan layanan systemd nftables diaktifkan. Untuk iptables, gunakan iptables-save > /etc/iptables/rules.v4 dan instal paket iptables-persistent.

Administrasi Linux
Administrasi
Administrasi Linux