Nftables: Difference between revisions
Created page with "Setelah tulisan saya tentang IPTables maka saya menuliskan kembali penerus dari IPTables ini, yaitu nftables. Pada bagian pertama ini, adalah pengelanan syntax nftables, dengan firewall sederhana yang ditujukan untuk melindungi Laptop/PC dari akses dari luar. Rincian definisi ruleset: *Blokir semua akses dari luar Laptop. *Izinkan akses dari localhost. *Izinkan akses keluar menuju Internet dari Laptop. *Izinkan paket balasan dari luar (stateful firewall). Berikut isi..." |
No edit summary |
||
| Line 12: | Line 12: | ||
Berikut isi file /etc/nftables.conf | Berikut isi file /etc/nftables.conf | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1"> | ||
#!/usr/sbin/nft -f | #!/usr/sbin/nft -f | ||
| Line 40: | Line 40: | ||
Penjelasan perbaris file nftables.conf | Penjelasan perbaris file nftables.conf | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="1"> | ||
#!/usr/sbin/nft -f | #!/usr/sbin/nft -f | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 46: | Line 46: | ||
Baris pertama ini menunjukan kalau file ini adalah file configurasi nftables. | Baris pertama ini menunjukan kalau file ini adalah file configurasi nftables. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="3"> | ||
flush ruleset | flush ruleset | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 52: | Line 52: | ||
Reset semua ruleset yang telah ada sebelumnya. | Reset semua ruleset yang telah ada sebelumnya. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="7"> | ||
table ip filter { | table ip filter { | ||
} | } | ||
| Line 59: | Line 59: | ||
Pembuatan table filter | Pembuatan table filter | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="8"> | ||
chain INPUT { | chain INPUT { | ||
} | } | ||
| Line 66: | Line 66: | ||
Pembuatan Chain INPUT | Pembuatan Chain INPUT | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="9"> | ||
type filter hook input priority 0; policy drop; | type filter hook input priority 0; policy drop; | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 72: | Line 72: | ||
Default Drop policy, sehingga semua paket secara default di blokir | Default Drop policy, sehingga semua paket secara default di blokir | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="10"> | ||
ct state established,related accept | ct state established,related accept | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 78: | Line 78: | ||
kecuali paket yang datang sebagai balasan dari paket yang berasal dari dalam (Laptop) yang mana hal ini biasa di sebut stateful firewall. | kecuali paket yang datang sebagai balasan dari paket yang berasal dari dalam (Laptop) yang mana hal ini biasa di sebut stateful firewall. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="11"> | ||
iifname $lo_if accept | iifname $lo_if accept | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 84: | Line 84: | ||
Izinkan paket dari localhost | Izinkan paket dari localhost | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="12"> | ||
drop | drop | ||
</syntaxhighlight> | </syntaxhighlight> | ||
| Line 90: | Line 90: | ||
Block semua paket yang masuk bilamana tidak sesuai kriteria penerimaan paket sebagaimana dijelaskan diatas. | Block semua paket yang masuk bilamana tidak sesuai kriteria penerimaan paket sebagaimana dijelaskan diatas. | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash" line="1" start="15"> | ||
chain FORWARD { | chain FORWARD { | ||
type filter hook forward priority 0; policy drop; | type filter hook forward priority 0; policy drop; | ||
| Line 161: | Line 161: | ||
sudo nft -f /etc/nftables.conf | sudo nft -f /etc/nftables.conf | ||
</syntaxhighlight> | </syntaxhighlight> | ||
== Source == | |||
* [https://www.muntaza.id/nftables/2019/12/15/nftables-01.html muntaza.id] | |||
Latest revision as of 16:20, 22 January 2023
Setelah tulisan saya tentang IPTables maka saya menuliskan kembali penerus dari IPTables ini, yaitu nftables.
Pada bagian pertama ini, adalah pengelanan syntax nftables, dengan firewall sederhana yang ditujukan untuk melindungi Laptop/PC dari akses dari luar.
Rincian definisi ruleset:
- Blokir semua akses dari luar Laptop.
- Izinkan akses dari localhost.
- Izinkan akses keluar menuju Internet dari Laptop.
- Izinkan paket balasan dari luar (stateful firewall).
Berikut isi file /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
define lo_if = "lo"
table ip filter {
chain INPUT {
type filter hook input priority 0; policy drop;
ct state established,related accept
iifname $lo_if accept
drop
}
chain FORWARD {
type filter hook forward priority 0; policy drop;
drop
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
Penjelasan perbaris file nftables.conf
#!/usr/sbin/nft -f
Baris pertama ini menunjukan kalau file ini adalah file configurasi nftables.
flush ruleset
Reset semua ruleset yang telah ada sebelumnya.
table ip filter {
}
Pembuatan table filter
chain INPUT {
}
Pembuatan Chain INPUT
type filter hook input priority 0; policy drop;
Default Drop policy, sehingga semua paket secara default di blokir
ct state established,related accept
kecuali paket yang datang sebagai balasan dari paket yang berasal dari dalam (Laptop) yang mana hal ini biasa di sebut stateful firewall.
iifname $lo_if accept
Izinkan paket dari localhost
drop
Block semua paket yang masuk bilamana tidak sesuai kriteria penerimaan paket sebagaimana dijelaskan diatas.
chain FORWARD {
type filter hook forward priority 0; policy drop;
drop
}
Blokir perpindahan paket dari satu interface ke interface lainnya.
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
Izinkan paket keluar menuju internet.
Kemudian, pastikan bahwa nftables berjalan di sistem kita. kita mengeceknya dengan systemctl.
sudo systemctl status nftables
Output
● nftables.service - nftables
Loaded: loaded (/lib/systemd/system/nftables.service; enabled; vendor preset: enabled)
Active: active (exited) since Wed 2019-12-25 08:50:56 WITA; 49min ago
Docs: man:nft(8)
http://wiki.nftables.org
Process: 416 ExecStart=/usr/sbin/nft -f /etc/nftables.conf (code=exited, status=0/SUCCESS)
Main PID: 416 (code=exited, status=0/SUCCESS)
Dec 25 08:50:56 E202SA systemd[1]: Started nftables.
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Terlihat kalau nftables telah berjalan dan aktif saat setiap booting.
Terakhir, untuk mengecek ruleset yang sedang berjalan, kita menggunakan perintah nft:
sudo nft list ruleset
Output
table ip filter {
chain INPUT {
type filter hook input priority 0; policy drop;
ct state established,related accept
iifname "lo" accept
drop
}
chain FORWARD {
type filter hook forward priority 0; policy drop;
drop
}
chain OUTPUT {
type filter hook output priority 0; policy accept;
}
}
- Reload konfigurasi nftables setelah mengeedit file /etc/nftables.conf
sudo nft -f /etc/nftables.conf