Cheat Sheet Firewall: iptables vs nftables vs MikroTik — Perbandingan Rule Dasar Lengkap
Firewall merupakan salah satu komponen penting dalam infrastruktur jaringan. Baik pada server Linux maupun router, firewall digunakan untuk mengontrol trafik berdasarkan alamat IP, port, protokol, interface, connection state, hingga tujuan trafik.
Masalahnya, setiap platform memiliki sintaks dan konsep konfigurasi yang berbeda.
Administrator Linux mungkin terbiasa dengan:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Sementara pada sistem Linux modern, administrator dapat menggunakan:
nft add rule inet filter input tcp dport 22 accept
Di MikroTik, konsepnya berbeda lagi:
/ip firewall filter
add chain=input protocol=tcp dst-port=22 action=accept
Tujuannya sama: mengizinkan trafik TCP menuju port tertentu.
Namun cara berpikir, struktur rule, chain, table, NAT, dan mekanisme pemrosesannya tidak sepenuhnya identik.
Karena itu, memahami konsep firewall lebih penting daripada sekadar menghafalkan sintaks.
Artikel ini membahas tiga pendekatan firewall yang sangat umum dijumpai administrator jaringan:
- iptables
- nftables
- MikroTik RouterOS Firewall
Selain perbandingan teori, artikel ini juga menyediakan contoh rule dasar yang dapat dijadikan cheat sheet saat melakukan konfigurasi atau troubleshooting.
Catatan: contoh rule dalam artikel ini ditujukan sebagai referensi pembelajaran. Selalu sesuaikan interface, subnet, IP address, port, dan kebijakan keamanan dengan lingkungan sebenarnya sebelum diterapkan pada production.
Memahami Konsep Dasar Firewall
Sebelum membandingkan sintaks, pahami terlebih dahulu apa yang sebenarnya dilakukan firewall.
Secara sederhana:
Client
│
│ Packet
▼
┌───────────────┐
│ FIREWALL │
│ │
│ Match Rule │
│ ↓ │
│ ACCEPT/DROP │
│ ↓ │
│ NAT / Forward │
└───────────────┘
│
▼
Server / Internet
Firewall mengambil keputusan berdasarkan kondisi tertentu.
Misalnya:
Source IP : 192.168.10.0/24
Destination : Server
Protocol : TCP
Destination Port : 22
Action : ACCEPT
Artinya, trafik TCP dari jaringan tertentu menuju SSH dapat diizinkan.
Sebaliknya:
Source : ANY
Destination : Server
Protocol : TCP
Destination Port : 23
Action : DROP
Trafik menuju Telnet ditolak.
Firewall bukan sekadar blokir port
Firewall modern dapat melakukan filtering berdasarkan berbagai parameter:
- Source IP
- Destination IP
- Source port
- Destination port
- Protocol
- Interface
- Connection state
- MAC address pada konteks tertentu
- Packet mark
- Connection mark
- NAT state
- Address list
- Time
- Traffic direction
Pada router dan firewall yang lebih kompleks, firewall bahkan dapat menjadi bagian dari sistem routing, NAT, QoS, VPN, dan policy enforcement.
iptables vs nftables vs MikroTik
Tiga platform ini memiliki pendekatan berbeda.
| Fitur | iptables | nftables | MikroTik Firewall |
|---|---|---|---|
| Platform utama | Linux | Linux | RouterOS |
| Filtering | Ya | Ya | Ya |
| NAT | Ya | Ya | Ya |
| Stateful Firewall | Ya | Ya | Ya |
| Rule syntax | Command-based | Native rule syntax | RouterOS CLI |
| Chain | INPUT, OUTPUT, FORWARD | Custom chain | input, output, forward |
| Address list | Tidak seperti MikroTik | Set | Address List |
| GUI | Umumnya eksternal | Umumnya eksternal | WinBox/WebFig |
| Firewall modern Linux | Legacy/kompatibilitas | Ya | N/A |
| Cocok untuk router | Bisa | Bisa | Sangat umum |
| Cocok untuk Linux server | Ya | Sangat baik | Tidak |
Yang paling penting bukan menganggap salah satu sebagai pengganti langsung yang memiliki sintaks sama.
iptables dan nftables sama-sama firewall Linux, sedangkan MikroTik Firewall merupakan firewall yang terintegrasi dengan RouterOS.
1. Cheat Sheet iptables
iptables merupakan salah satu tool firewall Linux yang sangat populer dan telah digunakan selama bertahun-tahun.
Meskipun pada banyak distribusi Linux modern implementasi firewall semakin diarahkan ke nftables, iptables masih banyak ditemukan pada server lama, script administrasi, dokumentasi, dan sistem yang mempertahankan kompatibilitas.
Melihat rule
sudo iptables -L -n -v
Dengan nomor rule:
sudo iptables -L -n -v --line-numbers
Untuk tabel NAT:
sudo iptables -t nat -L -n -v
Mengizinkan SSH
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
Penjelasannya:
-A INPUT
Menambahkan rule ke chain INPUT.
-p tcp
Memilih protokol TCP.
--dport 22
Memilih destination port 22.
-j ACCEPT
Memberikan tindakan ACCEPT.
Mengizinkan HTTP dan HTTPS
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Mengizinkan trafik dari subnet tertentu
Misalnya jaringan administrasi:
192.168.10.0/24
Rule:
sudo iptables -A INPUT -s 192.168.10.0/24 -j ACCEPT
Memblokir IP tertentu
sudo iptables -A INPUT -s 192.168.10.50 -j DROP
Artinya seluruh trafik dari IP tersebut akan ditolak pada chain INPUT.
Memblokir port
Contoh memblokir Telnet:
sudo iptables -A INPUT -p tcp --dport 23 -j DROP
Mengizinkan koneksi established dan related
Ini merupakan pola yang sangat umum:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Rule tersebut memungkinkan trafik yang merupakan bagian dari koneksi yang sudah diizinkan atau berkaitan dengan koneksi tersebut.
Mengizinkan loopback
sudo iptables -A INPUT -i lo -j ACCEPT
Loopback digunakan oleh sistem untuk komunikasi internal melalui interface lo.
Default policy DROP
Salah satu pendekatan umum:
sudo iptables -P INPUT DROP
Tetapi hati-hati.
Jika akses SSH sedang berlangsung dan rule SSH belum diizinkan, administrator dapat kehilangan akses ke server.
Urutan rule firewall bukan sekadar kosmetik. Urutan yang salah dapat menghasilkan konfigurasi yang berbeda dari yang diharapkan.
2. Cheat Sheet nftables
nftables merupakan framework firewall Linux yang dirancang sebagai penerus arsitektur firewall berbasis iptables.
Salah satu keunggulannya adalah struktur konfigurasi yang lebih modern dan fleksibel.
Melihat konfigurasi
sudo nft list ruleset
Melihat tabel tertentu:
sudo nft list table inet filter
Membuat table
sudo nft add table inet filter
Di sini:
inet
dapat digunakan untuk menangani IPv4 dan IPv6 dalam satu family.
Membuat chain input
sudo nft add chain inet filter input \
'{ type filter hook input priority 0; policy drop; }'
Strukturnya mulai terlihat berbeda dengan iptables.
Table
└── Chain
└── Rule
Mengizinkan loopback
sudo nft add rule inet filter input iifname "lo" accept
Mengizinkan established dan related
sudo nft add rule inet filter input ct state established,related accept
Mengizinkan SSH
sudo nft add rule inet filter input tcp dport 22 accept
Mengizinkan HTTP dan HTTPS
sudo nft add rule inet filter input tcp dport { 80, 443 } accept
Ini menunjukkan salah satu kemampuan menarik nftables: beberapa nilai dapat dikelompokkan menggunakan set.
Mengizinkan subnet tertentu
sudo nft add rule inet filter input ip saddr 192.168.10.0/24 accept
Memblokir IP
sudo nft add rule inet filter input ip saddr 192.168.10.50 drop
Memblokir port
sudo nft add rule inet filter input tcp dport 23 drop
3. Cheat Sheet MikroTik Firewall
MikroTik RouterOS memiliki firewall yang terintegrasi langsung dengan sistem operasi router.
Konfigurasi dapat dilakukan melalui:
- WinBox
- WebFig
- CLI
- API
- Script
Struktur dasar firewall filter MikroTik menggunakan tiga chain utama:
input
output
forward
Input
Digunakan untuk trafik yang menuju router itu sendiri.
Contoh:
Client → MikroTik
Misalnya akses:
WinBox
SSH
DNS router
WebFig
Output
Digunakan untuk trafik yang berasal dari router.
MikroTik → Internet
Forward
Digunakan untuk trafik yang melewati router.
LAN → MikroTik → Internet
Ini salah satu konsep yang sangat penting bagi administrator MikroTik.
Jika ingin mengontrol trafik client LAN menuju Internet, biasanya perhatian utama berada pada chain forward, bukan input.
Contoh Rule MikroTik
Mengizinkan SSH
/ip firewall filter
add chain=input protocol=tcp dst-port=22 action=accept
Mengizinkan HTTP dan HTTPS
/ip firewall filter
add chain=input protocol=tcp dst-port=80,443 action=accept
Memblokir IP
/ip firewall filter
add chain=input src-address=192.168.10.50 action=drop
Memblokir Telnet
/ip firewall filter
add chain=input protocol=tcp dst-port=23 action=drop
Mengizinkan koneksi established dan related
/ip firewall filter
add chain=input connection-state=established,related action=accept
Drop invalid
/ip firewall filter
add chain=input connection-state=invalid action=drop
Perbandingan Rule Berdampingan
Sekarang kita bisa melihat bagaimana rule yang sama ditulis pada tiga platform.
Misalnya kita ingin mengizinkan SSH pada port 22.
iptables
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
nftables
nft add rule inet filter input tcp dport 22 accept
MikroTik
/ip firewall filter
add chain=input protocol=tcp dst-port=22 action=accept
Secara konsep:
iptables nftables MikroTik
---------------------------------------------------------
Chain INPUT input input
Protocol -p tcp tcp protocol=tcp
Port --dport 22 dport 22 dst-port=22
Action -j ACCEPT accept action=accept
Inilah alasan memahami konsep firewall jauh lebih berguna daripada sekadar menghafal command.
Perbandingan Rule HTTP/HTTPS
iptables
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
nftables
nft add rule inet filter input tcp dport {80,443} accept
MikroTik
/ip firewall filter
add chain=input protocol=tcp dst-port=80,443 action=accept
Ketiganya menghasilkan tujuan yang sama, tetapi mekanisme dan sintaksnya berbeda.
Perbandingan DROP
Misalnya kita ingin memblokir Telnet.
iptables:
iptables -A INPUT -p tcp --dport 23 -j DROP
nftables:
nft add rule inet filter input tcp dport 23 drop
MikroTik:
/ip firewall filter
add chain=input protocol=tcp dst-port=23 action=drop
Pola mentalnya:
MATCH → ACTION
Contohnya:
TCP + port 23 → DROP
Firewall Filtering vs NAT
Ini juga sering membingungkan administrator pemula.
Filtering menentukan apakah trafik diperbolehkan atau ditolak.
NAT mengubah informasi alamat atau port pada trafik.
Contohnya:
LAN
192.168.10.0/24
│
▼
Router
│
│ NAT
▼
Internet
Firewall dan NAT dapat bekerja bersama, tetapi keduanya bukan hal yang sama.
Contoh NAT dengan iptables
Masquerade:
sudo iptables -t nat -A POSTROUTING \
-o eth0 -s 192.168.10.0/24 \
-j MASQUERADE
Artinya trafik dari subnet LAN akan menggunakan alamat IP interface keluar saat menuju Internet.
Contoh NAT dengan nftables
Contoh konsep masquerade:
sudo nft add table ip nat
Kemudian chain NAT:
sudo nft add chain ip nat postrouting \
'{ type nat hook postrouting priority 100; }'
Rule:
sudo nft add rule ip nat postrouting \
oifname "eth0" ip saddr 192.168.10.0/24 masquerade
Contoh NAT MikroTik
Masquerade:
/ip firewall nat
add chain=srcnat out-interface=WAN action=masquerade
Dalam konfigurasi MikroTik nyata, nama interface harus disesuaikan dengan router yang digunakan.
Firewall Stateful
Firewall modern umumnya menggunakan konsep stateful filtering.
Secara sederhana, firewall tidak hanya melihat satu paket secara terpisah.
Firewall dapat memahami bahwa:
Client → Server
merupakan bagian dari koneksi yang kemudian menghasilkan:
Server → Client
Sebagai contoh:
Client
│
│ SYN
▼
Server
│
│ SYN/ACK
▼
Client
Firewall stateful dapat mempertahankan informasi koneksi tersebut.
Pada Linux:
-m conntrack --ctstate ESTABLISHED,RELATED
atau nftables:
ct state established,related
Pada MikroTik:
connection-state=established,related
Konsepnya sama, meskipun sintaks berbeda.
Contoh Skenario: Server Web Linux
Misalnya terdapat server:
IP : 192.168.10.10
SSH : 22
HTTP : 80
HTTPS : 443
Kebijakan:
SSH → hanya admin
HTTP → public
HTTPS → public
Lainnya → deny
Secara konseptual:
Internet
│
┌─────▼─────┐
│ Firewall │
└─────┬─────┘
│
┌────────┼────────┐
│ │ │
22 80 443
Admin HTTP HTTPS
│ │ │
ALLOW ALLOW ALLOW
Rule firewall harus dibuat berdasarkan kebutuhan tersebut, bukan sekadar membuka semua port.
Best Practice Firewall
Ada beberapa prinsip yang sebaiknya diterapkan pada hampir semua lingkungan.
Gunakan prinsip least privilege
Buka hanya trafik yang benar-benar dibutuhkan.
Jika server hanya membutuhkan:
22
80
443
tidak ada alasan untuk membuka puluhan port lain tanpa kebutuhan yang jelas.
Tentukan default policy
Pendekatan umum:
Default → DROP
Exception → ACCEPT
Namun implementasinya harus dilakukan secara hati-hati agar administrator tidak kehilangan akses.
Gunakan established/related
Pada firewall stateful, rule established dan related dapat mengurangi kebutuhan membuat rule dua arah secara berlebihan.
Batasi akses management
Port administrasi seperti:
22 SSH
8291 WinBox
8728 API
8729 API-SSL
sebaiknya tidak dibuka ke Internet secara sembarangan.
Lebih baik membatasi berdasarkan:
- IP management
- VLAN management
- VPN
- jump host
- trusted network
Dokumentasikan rule
Rule:
accept tcp port 443
kurang informatif dibandingkan:
ALLOW HTTPS public web server
Dokumentasi akan sangat membantu ketika firewall sudah memiliki puluhan atau ratusan rule.
Kesalahan yang Sering Terjadi
Salah memilih chain
Pada MikroTik, administrator pemula sering menggunakan:
chain=input
untuk trafik yang sebenarnya hanya melewati router.
Padahal:
input
adalah trafik menuju router.
Sedangkan:
forward
adalah trafik yang melewati router.
Salah urutan rule
Firewall umumnya memproses rule berdasarkan urutan tertentu.
Misalnya:
1. DROP ALL
2. ACCEPT SSH
Rule SSH tidak akan pernah efektif jika rule nomor 1 sudah menghentikan pemrosesan terlebih dahulu.
Karena itu:
SPECIFIC RULE
↓
GENERAL RULE
sering lebih tepat dibandingkan sebaliknya.
Mengunci diri sendiri
Kesalahan klasik:
iptables -P INPUT DROP
dijalankan sebelum rule SSH dibuat.
Akibatnya:
SSH connection
↓
DROP
↓
Administrator kehilangan akses
Untuk remote server, selalu siapkan jalur recovery.
Menganggap DROP dan REJECT sama
Keduanya sama-sama dapat membuat koneksi gagal, tetapi perilakunya berbeda.
DROP secara sederhana membuang paket tanpa memberikan respons.
REJECT memberikan respons penolakan tertentu.
Pilihan antara DROP dan REJECT harus mempertimbangkan kebutuhan keamanan, troubleshooting, dan desain jaringan.
Membuka port terlalu banyak
Contoh konfigurasi yang buruk:
22
23
25
53
80
110
143
443
445
3389
5900
...
padahal hanya beberapa service yang benar-benar digunakan.
Semakin banyak service yang terekspos, semakin besar pula attack surface.
Tips Profesional untuk Administrator
Gunakan pendekatan berikut ketika membuat firewall baru.
Pertama, inventarisasikan service:
Service
Port
Protocol
Source
Destination
Purpose
Kemudian buat tabel kebijakan:
| Service | Port | Source | Action |
|---|---|---|---|
| SSH | 22/TCP | Management VLAN | ACCEPT |
| HTTP | 80/TCP | Internet | ACCEPT |
| HTTPS | 443/TCP | Internet | ACCEPT |
| Telnet | 23/TCP | Any | DROP |
| Other | Any | Any | DROP |
Setelah itu baru diterjemahkan ke platform.
Security Policy
│
▼
Firewall Logic
│
├── iptables
├── nftables
└── MikroTik
Ini jauh lebih aman daripada mencari command di Internet lalu langsung menempelkannya ke production.
Cheat Sheet Super Singkat
iptables
# List
iptables -L -n -v
# Allow SSH
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Allow HTTP/HTTPS
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j ACCEPT
# Drop IP
iptables -A INPUT -s 192.168.10.50 -j DROP
# Drop port
iptables -A INPUT -p tcp --dport 23 -j DROP
# Established
iptables -A INPUT -m conntrack \
--ctstate ESTABLISHED,RELATED -j ACCEPT
nftables
# List
nft list ruleset
# Allow SSH
nft add rule inet filter input tcp dport 22 accept
# Allow HTTP/HTTPS
nft add rule inet filter input \
tcp dport {80,443} accept
# Drop IP
nft add rule inet filter input \
ip saddr 192.168.10.50 drop
# Drop port
nft add rule inet filter input \
tcp dport 23 drop
# Established
nft add rule inet filter input \
ct state established,related accept
MikroTik
# Allow SSH
/ip firewall filter
add chain=input protocol=tcp dst-port=22 action=accept
# Allow HTTP/HTTPS
/ip firewall filter
add chain=input protocol=tcp dst-port=80,443 action=accept
# Drop IP
/ip firewall filter
add chain=input src-address=192.168.10.50 action=drop
# Drop Telnet
/ip firewall filter
add chain=input protocol=tcp dst-port=23 action=drop
# Established
/ip firewall filter
add chain=input connection-state=established,related action=accept
Kapan Menggunakan iptables, nftables, atau MikroTik?
Tidak ada satu sintaks firewall yang cocok untuk semua kebutuhan.
Jika bekerja dengan Linux server, pemahaman iptables tetap berguna karena banyak sistem lama dan dokumentasi masih menggunakannya. Namun untuk konfigurasi Linux modern, nftables merupakan teknologi yang penting untuk dipahami.
Jika bekerja dengan router MikroTik, fokuskan pemahaman pada:
input
output
forward
NAT
connection-state
address-list
mangle
Yang paling penting adalah memahami konsep filtering dan packet flow.
Seorang administrator yang memahami konsep tersebut dapat berpindah platform dengan jauh lebih mudah.

Kesimpulan
iptables, nftables, dan MikroTik Firewall memiliki sintaks yang berbeda, tetapi memiliki tujuan dasar yang sama: mengendalikan trafik berdasarkan kebijakan keamanan jaringan.
Perbedaan terbesar berada pada cara setiap platform merepresentasikan:
Table
Chain
Rule
Match
Action
State
NAT
Jangan hanya menghafalkan command.
Biasakan berpikir:
Siapa?
↓
Dari mana?
↓
Menuju ke mana?
↓
Protocol apa?
↓
Port berapa?
↓
Status koneksi?
↓
Action apa?
Jika pola berpikir tersebut sudah dikuasai, berpindah dari iptables ke nftables atau MikroTik tidak lagi terasa seperti belajar firewall dari nol.
Firewall pada akhirnya bukan tentang seberapa banyak rule yang bisa dibuat, tetapi seberapa tepat rule tersebut merepresentasikan kebutuhan keamanan jaringan.
FAQ
Pertanyaan: Apa perbedaan utama iptables dan nftables?
Jawaban: Keduanya merupakan framework firewall Linux, tetapi nftables menggunakan arsitektur dan sintaks yang lebih modern serta dirancang sebagai penerus iptables.
Pertanyaan: Apakah nftables menggantikan iptables?
Jawaban: nftables dirancang sebagai penerus teknologi firewall berbasis iptables. Namun iptables masih dapat ditemukan pada sistem dan konfigurasi yang mempertahankan kompatibilitas.
Pertanyaan: Apa perbedaan chain input dan forward di MikroTik?
Jawaban: Input menangani trafik menuju router itu sendiri, sedangkan forward menangani trafik yang melewati router menuju jaringan lain.
Pertanyaan: Apakah DROP dan REJECT sama?
Jawaban: Tidak. DROP membuang paket tanpa respons penolakan, sedangkan REJECT mengirimkan respons penolakan tertentu.
Pertanyaan: Apakah firewall bisa digunakan untuk NAT?
Jawaban: Pada banyak platform firewall dan NAT berada dalam subsistem yang berdekatan, tetapi fungsi dasarnya berbeda. Firewall melakukan filtering, sedangkan NAT mengubah alamat atau port tertentu.
Pertanyaan: Mana yang harus dipelajari terlebih dahulu, iptables atau nftables?
Jawaban: Untuk memahami Linux modern, nftables penting dipelajari. Namun pemahaman iptables tetap berguna karena masih banyak digunakan pada sistem lama dan dokumentasi.
Pertanyaan: Mengapa rule firewall harus diperhatikan urutannya?
Jawaban: Karena rule biasanya diproses berdasarkan urutan tertentu. Rule yang lebih umum dapat menghentikan pemrosesan sebelum rule yang lebih spesifik dijalankan.
Pertanyaan: Apakah membuka port 22 ke Internet aman?
Jawaban: SSH dapat diekspos secara aman dengan hardening dan kontrol akses yang tepat, tetapi membatasi akses berdasarkan jaringan management, VPN, firewall, dan mekanisme autentikasi yang kuat umumnya lebih terkendali.
Firewall bukan sekadar kumpulan command yang ditempel ke terminal. Memahami bagaimana packet flow, chain, rule, connection state, filtering, dan NAT bekerja akan membuat konfigurasi jauh lebih aman dan mudah ditroubleshooting.
Jika cheat sheet ini membantu, bagikan artikel ini kepada rekan sesama sysadmin, network administrator, guru TJKT/TKJ, atau siswa yang sedang belajar Linux dan networking.
Punya contoh rule iptables, nftables, atau MikroTik yang sering digunakan di lab maupun production? Tulis di kolom komentar. Kita bisa membandingkan bagaimana satu kebutuhan jaringan diterjemahkan ke tiga platform tersebut.
Jangan lupa jelajahi artikel teknologi lainnya tentang Linux Server, MikroTik, networking, virtualization, monitoring, cybersecurity, DevOps, dan system administration.
Dukung kami dengan Subscribe & Join Membership channel YouTube | Walid Umar
Akses video pembelajaran eksklusif, materi persiapan UKK (Uji Kompetensi Siswa) dan Penyelesaian Soal LKS ITNSA