Thursday, August 25, 2011

OpenBSD: PF - Membuat Router Sederhana (NAT)

NAT biasanya dipakai apabila kita hanya mempunyai 1 jatah ip yang terkoneksi internet dari ISP, padahal komputer yang ingin terkoneksi internet jumlahnya lebih dari 1, maka kita dapat menggunakan NAT sebagai solusinya.

Karena NAT hampir selalu digunakan pada router dan gateway jaringan, kita perlu pengaktifkan IP Forwarding sehingga paket data dapat bergerak dengan leluasa antar interface jaringan di mesin OpenBSD. Pada OpenBSD IP Forwarding dapat diaktifkan dengan menggunakan mekanisme sysctl:
root# sysctl net.inet.ip.forwarding=1
root# sysctl net.inet6.ip6.forwarding=1
Untuk membuat perubahan tersebut secara permanen, artinya saat kita boot tidak hilang, maka kita buka file /etc/sysctl.conf dengan teks editor kesayangan anda kemudian hilangkan tanda '#' pagar pada kata  net.inet.ip.forwarding=1 dan net.inet6.ip6.forwarding=1 (untuk dukungan IPv6):
root# vi /etc/sysctl.conf
      net.inet.ip.forwarding=1
      net.inet6.ip6.forwarding=1
Kita asumsikan kita mempunyai 2 buah interface network yaitu external interface dengan chipset realtek (rl0) dan internal interface (vr0). External interface diberi ip dari ISP yaitu 10.16.15.14/28, dan untuk ip lokal yang dipasang pada internal interface adalah 192.169.100.1, sehingga nantinya jaringan komputer client mempunyai alamat network 192.169.100.0/24 .
Sekarang kita konfigurasi dulu ip external interface:
root# touch /etc/hostname.rl0
root# vi /etc/hostname.rl0
      inet 10.16.15.14 255.255.255.240 NONE
Setelah itu kita konfigurasi gateway dan DNS di /etc/mygate dan /etc/resolv.conf
root# vi /etc/mygate 
      10.16.15.1
root# vi /etc/resolv.conf
      nameserver 8.8.8.8
Nah, sekarang kita restart service networknya dengan perintah:
root# sh /etc/netstart
Dan coba ping dari mesin router OpenBSD kita:

root# ping -c 2 google.com
PING google.com (209.85.175.105) 56(84) bytes of data.
64 bytes from nx-in-f105.1e100.net (209.85.175.105): icmp_seq=1 ttl=51 time=44.5 ms
64 bytes from nx-in-f105.1e100.net (209.85.175.105): icmp_seq=2 ttl=50 time=42.3 ms

--- google.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 42.390/43.456/44.523/1.086 ms
Berarti mesin router OpenBSD kita sudah berhasil terkoneksi ke internet, sekarang tinggal kita setting ip pada internal interface kita:
root# touch /etc/hostname.rl0
root# vi /etc/hostname.rl0
      inet 192.169.100.1 255.255.255.240 NONE
Setelah selesai, langkah terakhir yaitu konfigurasi NAT pada PF, yaitu dengan menambahkan baris berikut pada konfigurasi PF di /etc/pf.conf :
match out on EXT_IF from LOCAL_NET to any nat-to EXT_IP
pass on EXT_IF from LOCAL_NET to any
Sehingga jika diimplementasikan pada contoh kasus:
root# vi /etc/pf.conf
match out on rl0 from 192.169.100.0/24 to any nat-to 10.16.15.14
pass on rl0 from 192.169.100.0/24 to any
Karena PF secara default sudah enable (aktif), tinggal kita load ulang konfigurasinya:
root# pfctl -f /etc/pf.conf
Sekarang router OpenBSD sudah siap dipakai.
Semoga bermanfaat.

Labels: , ,

Tuesday, August 23, 2011

OpenBSD: PF - Mengontrol PF dengan pfctl

Setelah boot, Operasi PF dapat kita atur dengan menggunakan program pfctl . Beberapa contoh perintahnya sebagai berikut:
# pfctl -f /etc/pf.conf     Load the pf.conf file

# pfctl -nf /etc/pf.conf Parse the file, but don't load it

# pfctl -sr Show the current ruleset

# pfctl -ss Show the current state table

# pfctl -si Show filter stats and counters

# pfctl -sa Show EVERYTHING it can show
Untuk melihat keterangan tentang perintah pfctl, anda dapat mengetikkan perintah:
#man pfctl
atau kunjungi pfctl manual page di http://bit.ly/qlvaTF

Labels: ,

OpenBSD: PF - Aktivasi PF

PF secara default sudah di-enable-kan mulai dari booting awal, jika ingin men-disable-nya saat boot, ganti baris berikut:
pf=NO  # To Enable use pf=YES
Pada file /etc/rc.conf.local dan reboot-lah komputer untuk mendapatkan hasilnya.
Kita juga dapat mengaktifkan (-e) maupun me-non-aktifkan (-d) secara manual service PF dengan menggunakan program pfctl
#pfctl -e
#pfctl -d
Perhatikanlah, perintah diatas hanya untuk meng-enable-kan atau men-disable PF, namun PF tidak benar-benar memuat sebuah ruleset. Ruleset harus dimuat secara terpisah, baik sebelum atau sesudah diaktifkan, misalnya:

 #pfctl -f /etc/pf.conf
Ini dapat dilakukan baik sebelum maupun sesudah PF diaktifkan, atau anda bisa menggunakan perintah dibawah ini untuk meng-enable-kan sekaligus memuat ruleset di /etc/pf.conf
#pfctl -ef /etc/pf.conf
Sekian, semoga bermanfaat.


Labels: ,