Bismillah,

Ini adalah lanjutan dari tulisan saya yang pertama tentang nftables. Pada bagian kedua ini, akan saya contohkan penggunaan nftables sebagai firewall sekaligus gateway ke internet bagi localnet. Localnet di sini, masih menggunakan virtual mesin di Virtualbox. Berikut ini script /etc/nftables.conf

#!/usr/sbin/nft -f

flush ruleset

define lo_if  = "lo"
define int_if = "tap11"
define ext_if = "wlp1s0"

table ip nat {
	chain PREROUTING {
		type nat hook prerouting priority 0; policy accept;
	}

	chain POSTROUTING {
		type nat hook postrouting priority 0; policy accept;
		oifname $ext_if masquerade
	}
}
table ip filter {
	chain INPUT {
		type filter hook input priority 0; policy drop;
		ct state established,related accept
		iifname $lo_if accept
		iifname $int_if accept
	}

	chain FORWARD {
		type filter hook forward priority 0; policy drop;
		iifname $ext_if oifname $int_if ct state established,related accept
		iifname $int_if oifname $ext_if accept
	}

	chain OUTPUT {
		type filter hook output priority 0; policy accept;
	}
}

Baiklah, di sini akan saya jelaskan beberapa hal baru sebagai lanjutan tulisan saya yang pertama.

define int_if = "tap11"
define ext_if = "wlp1s0"

keyword define ini untuk mendefinisikan variable, disini kita definisikan internal interface dan external interface.

table ip nat {
	chain PREROUTING {
		type nat hook prerouting priority 0; policy accept;
	}

	chain POSTROUTING {
		type nat hook postrouting priority 0; policy accept;
		oifname $ext_if masquerade
	}
}

Ini adalah fungsi NAT di nftables.

	chain FORWARD {
		type filter hook forward priority 0; policy drop;
		iifname $ext_if oifname $int_if ct state established,related accept
		iifname $int_if oifname $ext_if accept
	}

Ini fungsi packet forwarding di nftables, sama seperti yang pernah saya sampaikan tentang IPTables di sini, yaitu mengizinkan paket berpindah antar interface, yaitu dari interface local ke interface internet dan sebaliknya.

Namun, kernel harus kita setting di /etc/sysctl.conf agar mengizinkan perpindahan paket antar interface. Edit file /etc/sysctl.conf pada bagian net.ipv4.ip_forward, ganti nilai 0 menjadi 1 sehingga tampil seperti contoh di bawah ini:

$ cat /etc/sysctl.conf | grep ipv4.ip_forward
net.ipv4.ip_forward=1

Sampai di sini dulu dan akan saya lanjutkan, insyaAllah, tentang cara mencegah reverse telnet dengan nftables di waktu yang akan datang.

Alhamdulillah

Daftar Pustaka