Oke jadi postingan ini berisi catatan PF di OpenBSD
- Konfigurasi Dasar
Enable dan Disable PF
pfctl -e //untuk mengenable pf
pfctl -d //untuk mendisable pf
Konfigurasi Dasar di satu komputer
nano /etc/pf.conf
block in all //memblokir semua jaringan yang menuju ke komputer
pass out all //mengizinkan semua jaringan dari untuk keluar dari komputer
Rule pf dibaca dari atas jadi, jika di rule pertama sudah di blokir maka rule setelahnya bisa di eksekusi jika kita mengizinkan misal pass proto tcp to port { 22 80 443 }, maka kita mengizinkan koneksi dari protocol tcp untuk port 22(ssh), 80(http), 443 (https)
Macro pada PF
Apa itu Macro? sederhananya seperti membuat variabel dalam packet filtering misal
tcp_services = “{ ssh, smtp, domain, www, pop3, auth, https, pop3s }”
untuk menggunakannya kita cukup memanggil macro tersebut
pass out proto tcp to port $tcp_services
Perintah untuk mereload konfigurasi PF, jika tidak ada error maka pfctl tidak akan menampilkan pesan apapun.
pfctl -f /etc/pf.conf
Jika ingin mereload dan menampilkan konfigurasi kita tambahkan parameter -v
pfctl -vf /etc/pf.conf
![](https://aryapramudika.com/wp-content/uploads/2021/08/virtualbox_openbsd_12_08_2021_11_33_48.png?w=720)
Mengecek rules tanpa melakukan reload
pfctl -nf /etc/pf.conf
![](https://aryapramudika.com/wp-content/uploads/2021/08/virtualbox_openbsd_12_08_2021_11_35_59.png?w=720)
Monitoring traffic PF
pfctl -s info
- Build Simple Internet Gateway
![](https://aryapramudika.com/wp-content/uploads/2021/08/openbsd-in-gw-1.png?w=552)
Pertama kita aktifkan paket forwarding di openbsd agar bisa meneruskan paket dari 1 interface ke interface lain.
Kita gunakan perintah berikut:
sysctl net.inet.ip.forwarding=1
Untuk IPv6 menggunakan perintah berikut:
sysctl net.inet.ip6.forwarding=1
Melihat inteface di OpenBSD dengan perintah ifconfig -a
openbsd# ifconfig -a
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 32768
index 4 priority 0 llprio 3
groups: lo
inet6 ::1 prefixlen 128
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
inet 127.0.0.1 netmask 0xff000000
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
lladdr 08:00:27:d9:c8:c5
index 1 priority 0 llprio 3
groups: egress
media: Ethernet autoselect (1000baseT full-duplex)
status: active
inet 10.10.10.244 netmask 0xffffff00 broadcast 10.10.10.255
em1: flags=8802<BROADCAST,SIMPLEX,MULTICAST> mtu 1500
lladdr 08:00:27:10:46:32
index 2 priority 0 llprio 3
media: Ethernet autoselect (1000baseT full-duplex)
status: active
enc0: flags=0<>
index 3 priority 0 llprio 3
groups: enc
status: active
pflog0: flags=141<UP,RUNNING,PROMISC> mtu 33136
index 5 priority 0 llprio 3
groups: pflog
Konfigurasi IP Address di Interface em1
Untuk mengkonfigurasi interface di openbsd kita harus membuat file dengan format
/etc/hostname.if
if adalah nama interface
echo "inet 192.168.1.1 255.255.255.0" > /etc/hostname.em1
kita ubah permission nya
chmod 640 /etc/hostname.em1
Restart Network
sh /etc/netstart em1
Setelah itu kita buat rule baru di /etc/pf.conf
nano /etc/pf.conf
#Macro
ext_if="em0" #macro untuk interface external (yang menuju ke internet)
int_if="em1" # macro untuk internal interface (client)
localnet= $int_if:network # macro untuk network di interface internal
#NAT
match out on $ext_if inet from $localnet nat-to ($ext_if)
#RULE
block all
pass in proto tcp to port ssh # Mengizinkan koneksi ssh
pass from { self, $localnet } to any keep state
pass inet proto icmp # Mengizikan ping (nanti untuk troubleshooting jaringan)
Akan berlanjut.. stay tune 🙂