PF Firewall : Contoh implementasi
Bismillah,
Saya bermaksud mengulang kembali tulisan tentang OpenBSD PF Firewall yang dulu pernah saya tulis di sini dengan beberapa catatan tambahan, dengan harapan agar bermanfaat di kemudian hari.
Dibawah ini adalah diagram network sederhana, yang menggambarkan sebuah Virtual Machine (vm) yang punya 1 (satu) interface yang terhubung ke internet dengan IP Public.
Kemudian, saya tampilkan full isi file pf.conf, yang akan saya jelaskan isinya.
Baiklah, saya coba memulai menjelaskannya:
Interface yang digunakan, yaitu vio0
Port yang di izinkan untuk di akses dari Internet, tinggal di tambahkan port lainnya, kalau di perlukan.
Jangan filter interface lo untuk akses network local. Biasanya lo ini diberi alamat 127.0.0.1/8
Secara default, block semua koneksi keluar dan masuk, termasuk icmp, sehingga server tidak terkena serangan PoD
Buat daftar IP dengan fungsi ‘table’, dengan nama ip_safe, yang mengambil dari daftar IP di file /etc/ip_safe
Izinkan akses dari VM ke luar hanya menuju IP di daftar ip_safe yang telah kita buat diatas.
Persiapkan daftar kosong untuk IP yang melakukan tindakan DOS, IP yang terperangkap akan masuk ke daftar ini.
Kalau ternyata ada yang terperangkap, block total dari IP tersebut.
Daftar IP dari Indonesia. Saya mengambilnya dari sini
Izinkan akses ke port yang telah di definisikan di atas ‘hanya’ dari IP yang berasal dari Indonesia, gunakan fungsi Synproxy, dan kalau ada IP yang mencoba melakukan DOS, maka masukkan IP itu ke daftar abusive_hosts serta putuskan koneksinya.
Serangan yang di cegah dengan konfigurasi ini:
Izinkan koneksi dari SSL Lab untuk melakukan test konfigurasi TLS server kita. Bagian ini tidak mesti, hanya merupakan saran saja.
Tolak koneksi remote ke port 6000 sampai 6010
User _pbuild tidak perlu koneksi internet. Baris ini sebenarnya tidak diperlukan, karena firewall ini sudah di setting untuk default deny, yaitu semua di block kecuali yang di izinkan.
Kemudian, table abusive_hosts diatas perlu di clear setiap 3 (tiga) menit sekali, yang mana saya menggunakan root cron untuk keperluan itu.
Adapun isi file flush.sh adalah sebagai berikut:
Maknanya, masukkan daftar yang ada saat ini di table abusive_hosts ke file /home/muntaza/daftar, lalu hapus isi daftar abusive_hosts.
Tanya Jawab
-
Bagaimana cara reload konfigurasi pf setelah saya mengedit file /etc/pf.conf?
Jawab:
$ doas /sbin/pfctl -f /etc/pf.conf
Alhamdulillah
Sekian Penjelasan tentang contoh implementasi OpenBSD Packet Filter ini, semoga bermanfaat.
Muhammad Muntaza
Daftar Pustaka