<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://noctkj.net/index.php?action=history&amp;feed=atom&amp;title=Linux_%3A_Firewall_Dasar_dengan_nftables</id>
	<title>Linux : Firewall Dasar dengan nftables - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://noctkj.net/index.php?action=history&amp;feed=atom&amp;title=Linux_%3A_Firewall_Dasar_dengan_nftables"/>
	<link rel="alternate" type="text/html" href="https://noctkj.net/index.php?title=Linux_:_Firewall_Dasar_dengan_nftables&amp;action=history"/>
	<updated>2026-07-12T05:41:14Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://noctkj.net/index.php?title=Linux_:_Firewall_Dasar_dengan_nftables&amp;diff=1278&amp;oldid=prev</id>
		<title>Maintenance script: Protected &quot;Linux : Firewall Dasar dengan nftables&quot;: Materi editorial WIKI TKJ ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))</title>
		<link rel="alternate" type="text/html" href="https://noctkj.net/index.php?title=Linux_:_Firewall_Dasar_dengan_nftables&amp;diff=1278&amp;oldid=prev"/>
		<updated>2026-07-12T00:03:46Z</updated>

		<summary type="html">&lt;p&gt;Protected &amp;quot;&lt;a href=&quot;/index.php/Linux_:_Firewall_Dasar_dengan_nftables&quot; title=&quot;Linux : Firewall Dasar dengan nftables&quot;&gt;Linux : Firewall Dasar dengan nftables&lt;/a&gt;&amp;quot;: Materi editorial WIKI TKJ ([Edit=Allow only administrators] (indefinite) [Move=Allow only administrators] (indefinite))&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 07:03, 12 July 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://noctkj.net/index.php?title=Linux_:_Firewall_Dasar_dengan_nftables&amp;diff=1277&amp;oldid=prev</id>
		<title>Maintenance script: Tambah materi firewall dasar dengan nftables untuk siswa TKJ</title>
		<link rel="alternate" type="text/html" href="https://noctkj.net/index.php?title=Linux_:_Firewall_Dasar_dengan_nftables&amp;diff=1277&amp;oldid=prev"/>
		<updated>2026-07-12T00:03:31Z</updated>

		<summary type="html">&lt;p&gt;Tambah materi firewall dasar dengan nftables untuk siswa TKJ&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= Linux : Firewall Dasar dengan nftables =&lt;br /&gt;
&lt;br /&gt;
== Tujuan ==&lt;br /&gt;
Setelah praktik ini, kamu diharapkan bisa:&lt;br /&gt;
* memahami fungsi firewall di server Linux;&lt;br /&gt;
* membaca aturan dasar `nftables`;&lt;br /&gt;
* membuat aturan firewall sederhana untuk server SSH/Web;&lt;br /&gt;
* mengecek apakah aturan sudah aktif tanpa asal tebak;&lt;br /&gt;
* tahu risiko paling umum supaya tidak mengunci diri sendiri dari server.&lt;br /&gt;
&lt;br /&gt;
== Konteks nyata ==&lt;br /&gt;
Di dunia kerja, server jarang dibiarkan terbuka semua port-nya. Server web biasanya cukup menerima trafik tertentu, misalnya SSH untuk admin, HTTP untuk website, dan HTTPS untuk website aman. Port lain yang tidak dipakai sebaiknya ditutup.&lt;br /&gt;
&lt;br /&gt;
Di Linux modern, `nftables` adalah framework firewall yang menggantikan keluarga lama seperti `iptables`, `ip6tables`, `arptables`, dan `ebtables`. Banyak distro baru tetap menyediakan perintah `iptables`, tapi di belakang layar sering sudah memakai backend nftables. Jadi, belajar nftables itu relevan untuk admin Linux, cloud server, VPS, router Linux, sampai lab cybersecurity defensif.&lt;br /&gt;
&lt;br /&gt;
== Analogi sederhana ==&lt;br /&gt;
Bayangkan server seperti ruang server di sekolah.&lt;br /&gt;
&lt;br /&gt;
* Alamat IP itu seperti alamat gedung.&lt;br /&gt;
* Port itu seperti pintu ruangan: pintu SSH, pintu web, pintu database, dan seterusnya.&lt;br /&gt;
* Firewall itu seperti satpam di gerbang.&lt;br /&gt;
* Rule firewall itu seperti daftar tamu: siapa boleh lewat, lewat pintu mana, dan kapan harus ditolak.&lt;br /&gt;
&lt;br /&gt;
Kalau semua pintu dibiarkan terbuka, orang yang tidak perlu masuk bisa ikut mencoba. Kalau semua pintu ditutup, admin sendiri bisa terkunci di luar. Jadi firewall yang baik bukan asal blokir semuanya, tapi membuka jalur yang memang dibutuhkan.&lt;br /&gt;
&lt;br /&gt;
== Kebutuhan awal ==&lt;br /&gt;
Praktik ini cocok untuk Debian/Ubuntu server di lab.&lt;br /&gt;
&lt;br /&gt;
Kamu butuh:&lt;br /&gt;
* akses `sudo` atau root;&lt;br /&gt;
* koneksi terminal ke server;&lt;br /&gt;
* tahu port SSH yang sedang dipakai, biasanya `22`;&lt;br /&gt;
* akses console VM atau snapshot kalau sedang belajar di mesin virtual;&lt;br /&gt;
* jangan jalankan di server produksi sebelum paham dampaknya.&lt;br /&gt;
&lt;br /&gt;
Kalau server kamu memakai SSH port custom, ganti angka `22` di contoh menjadi port SSH yang benar. Kalau salah, kamu bisa terkunci dari server.&lt;br /&gt;
&lt;br /&gt;
== Konsep penting nftables ==&lt;br /&gt;
Struktur nftables biasanya begini:&lt;br /&gt;
&lt;br /&gt;
* `table`: wadah besar untuk aturan, seperti map besar di pos satpam.&lt;br /&gt;
* `chain`: jalur pemeriksaan, misalnya trafik masuk ke server.&lt;br /&gt;
* `rule`: aturan spesifik, misalnya izinkan SSH atau tolak paket lain.&lt;br /&gt;
* `policy`: keputusan default kalau tidak ada rule yang cocok.&lt;br /&gt;
&lt;br /&gt;
Untuk server biasa, chain yang paling sering dilihat adalah:&lt;br /&gt;
* `input`: trafik yang masuk ke server ini;&lt;br /&gt;
* `forward`: trafik yang lewat melalui server, biasanya router;&lt;br /&gt;
* `output`: trafik yang keluar dari server.&lt;br /&gt;
&lt;br /&gt;
== Langkah praktik ==&lt;br /&gt;
&lt;br /&gt;
=== 1. Cek service yang sedang terbuka ===&lt;br /&gt;
Sebelum bikin firewall, lihat dulu pintu mana yang sedang terbuka.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ss -tulpen&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perhatikan kolom `Local Address:Port`. Misalnya ada `:22`, `:80`, dan `:443`, berarti server menerima SSH, HTTP, dan HTTPS.&lt;br /&gt;
&lt;br /&gt;
=== 2. Install nftables ===&lt;br /&gt;
Di Debian/Ubuntu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt update&lt;br /&gt;
sudo apt install nftables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cek versi dan aturan yang sedang aktif:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nft --version&lt;br /&gt;
sudo nft list ruleset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kalau output `list ruleset` kosong, artinya belum ada aturan nftables yang aktif.&lt;br /&gt;
&lt;br /&gt;
=== 3. Buat konfigurasi dasar ===&lt;br /&gt;
Buka file konfigurasi:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nano /etc/nftables.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Isi contoh berikut cocok untuk server lab yang menerima SSH, HTTP, dan HTTPS:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/sbin/nft -f&lt;br /&gt;
&lt;br /&gt;
flush ruleset&lt;br /&gt;
&lt;br /&gt;
table inet filter {&lt;br /&gt;
    chain input {&lt;br /&gt;
        type filter hook input priority 0; policy drop;&lt;br /&gt;
&lt;br /&gt;
        iif &amp;quot;lo&amp;quot; accept&lt;br /&gt;
        ct state established,related accept&lt;br /&gt;
&lt;br /&gt;
        ip protocol icmp accept&lt;br /&gt;
        meta l4proto ipv6-icmp accept&lt;br /&gt;
&lt;br /&gt;
        tcp dport 22 accept&lt;br /&gt;
        tcp dport { 80, 443 } accept&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    chain forward {&lt;br /&gt;
        type filter hook forward priority 0; policy drop;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    chain output {&lt;br /&gt;
        type filter hook output priority 0; policy accept;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Penjelasan singkat:&lt;br /&gt;
* `flush ruleset` membersihkan aturan lama sebelum aturan baru dipasang;&lt;br /&gt;
* `table inet` bisa menangani IPv4 dan IPv6 dalam satu tempat;&lt;br /&gt;
* `policy drop` berarti trafik masuk ditolak kecuali ada izin khusus;&lt;br /&gt;
* `iif &amp;quot;lo&amp;quot; accept` mengizinkan komunikasi lokal di dalam server;&lt;br /&gt;
* `ct state established,related accept` mengizinkan balasan dari koneksi yang sudah sah;&lt;br /&gt;
* `icmp` dan `ipv6-icmp` membantu ping dan fungsi jaringan dasar;&lt;br /&gt;
* `tcp dport 22 accept` membuka SSH;&lt;br /&gt;
* `tcp dport { 80, 443 } accept` membuka HTTP dan HTTPS.&lt;br /&gt;
&lt;br /&gt;
=== 4. Tes syntax dulu ===&lt;br /&gt;
Jangan langsung menyalakan firewall kalau file masih salah. Tes dulu:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nft -c -f /etc/nftables.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kalau tidak ada error, syntax-nya aman untuk diterapkan.&lt;br /&gt;
&lt;br /&gt;
=== 5. Terapkan aturan ===&lt;br /&gt;
Aktifkan aturan dari file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nft -f /etc/nftables.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lalu aktifkan service agar aturan dimuat saat boot:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo systemctl enable --now nftables&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kalau kamu sedang remote SSH, jangan tutup terminal lama dulu. Buka terminal baru, lalu coba login SSH lagi. Kalau terminal baru berhasil masuk, berarti rule SSH tidak memutus akses admin.&lt;br /&gt;
&lt;br /&gt;
== Verifikasi ==&lt;br /&gt;
Cek status service:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
systemctl status nftables --no-pager&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cek ruleset yang sedang aktif:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nft list ruleset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dari komputer lain di jaringan lab, kamu bisa cek port yang memang boleh terbuka:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
nmap -Pn -p 22,80,443 IP_SERVER&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hasil yang sehat untuk contoh ini:&lt;br /&gt;
* port SSH terbuka jika memang dipakai admin;&lt;br /&gt;
* port 80/443 terbuka jika server menjalankan web;&lt;br /&gt;
* port lain tidak ikut terbuka tanpa alasan.&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== SSH tiba-tiba tidak bisa masuk ===&lt;br /&gt;
Kemungkinan port SSH di rule salah. Kalau punya console VM, login dari console lalu cek:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ss -tulpen | grep ssh&lt;br /&gt;
sudo nft list ruleset&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jika SSH ternyata berjalan di port custom, ubah rule `tcp dport 22 accept` menjadi port yang benar.&lt;br /&gt;
&lt;br /&gt;
=== Website tidak bisa diakses ===&lt;br /&gt;
Pastikan web server benar-benar listen di port 80/443:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo ss -tulpen | grep -E &amp;#039;:80|:443&amp;#039;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Kalau service web aktif tapi tetap tidak bisa diakses, cek apakah rule HTTP/HTTPS ada di `nft list ruleset`.&lt;br /&gt;
&lt;br /&gt;
=== Error saat menjalankan nft -f ===&lt;br /&gt;
Biasanya karena typo, kurung kurawal kurang, atau nama interface salah. Jalankan:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo nft -c -f /etc/nftables.conf&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Perbaiki error sesuai baris yang ditunjukkan.&lt;br /&gt;
&lt;br /&gt;
=== Rule terasa bentrok dengan UFW atau firewalld ===&lt;br /&gt;
Sebaiknya jangan mengelola firewall dari dua alat sekaligus tanpa paham betul. Pilih salah satu pendekatan. Kalau memakai UFW, kelola dari UFW. Kalau memakai firewalld, kelola dari firewalld. Kalau ingin belajar nftables langsung, pastikan layanan firewall lain tidak sedang menimpa aturanmu.&lt;br /&gt;
&lt;br /&gt;
== Catatan keamanan ==&lt;br /&gt;
* Praktikkan dulu di VM lab, bukan langsung di server penting.&lt;br /&gt;
* Simpan akses console atau snapshot sebelum mengubah firewall.&lt;br /&gt;
* Buka hanya port yang memang dibutuhkan.&lt;br /&gt;
* Jangan menutup ICMP secara asal, karena ICMP membantu diagnosa jaringan dan IPv6 butuh ICMPv6 untuk fungsi penting.&lt;br /&gt;
* Jangan campur banyak firewall manager kalau belum paham urutan dan dampaknya.&lt;br /&gt;
* Firewall bukan pengganti update sistem, konfigurasi SSH aman, password kuat, dan monitoring log.&lt;br /&gt;
&lt;br /&gt;
== Kesimpulan ==&lt;br /&gt;
`nftables` adalah firewall modern di Linux. Cara berpikirnya sederhana: tentukan pintu mana yang boleh dibuka, tulis rule dengan rapi, tes syntax, aktifkan, lalu verifikasi dari sisi server dan sisi klien.&lt;br /&gt;
&lt;br /&gt;
Untuk siswa TKJ, nftables bagus dipelajari karena menghubungkan konsep jaringan, server, keamanan, dan troubleshooting. Di industri, skill seperti ini sering dipakai saat mengamankan VPS, server sekolah, router Linux, lab cloud, dan layanan web internal.&lt;br /&gt;
&lt;br /&gt;
== Sumber belajar lanjutan ==&lt;br /&gt;
* [https://www.netfilter.org/projects/nftables/index.html netfilter.org - The nftables project]&lt;br /&gt;
* [https://wiki.nftables.org/wiki-nftables/index.php/Quick_reference-nftables_in_10_minutes nftables wiki - Quick reference]&lt;br /&gt;
* [https://documentation.ubuntu.com/security/security-features/network/firewall/nftables/ Ubuntu Security Documentation - nftables]&lt;br /&gt;
* [https://docs.redhat.com/en/documentation/red_hat_enterprise_linux/7/html/security_guide/chap-getting_started_with_nftables Red Hat Docs - Getting started with nftables]&lt;br /&gt;
&lt;br /&gt;
[[Category:TKJ]]&lt;br /&gt;
[[Category:Linux]]&lt;br /&gt;
[[Category:Server]]&lt;br /&gt;
[[Category:Jaringan]]&lt;br /&gt;
[[Category:Cyber Security]]&lt;/div&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
</feed>