OpenBSD : Packet Filtering Notes

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

Mengecek rules tanpa melakukan reload

pfctl -nf /etc/pf.conf

Monitoring traffic PF

pfctl -s info
  • Build Simple Internet Gateway
Topologi Internet Gateway

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 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *