Cara terbaik untuk melakukan ini adalah dengan mendefinisikan tabel dan membuat aturan untuk memblokir host, di pf.conf:
table <badhosts> persist
block on fxp0 from <badhosts> to any
Dan kemudian secara dinamis menambahkan / menghapus alamat IP dari itu:
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4
Perintah 'tabel' lainnya termasuk flush(hapus semua), replacedan show. Lihat man pfctllebih lanjut.
Jika Anda menginginkan daftar yang lebih permanen, Anda dapat menyimpannya dalam satu (atau lebih) file. Dalam pf.conf:
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any
Anda juga dapat menambahkan nama host alih-alih alamat IP. Lihat bagian "Tabel" dari man pf.confdan man pfctl.
Catatan : Contoh di atas menganggap bahwa antarmuka yang menghadap internet adalah fxp0, silakan ubah sesuai pengaturan Anda. Juga, perlu diingat bahwa aturan di pf.confdievaluasi secara berurutan dan untuk blockatau passaturan itu aturan pencocokan terakhir yang berlaku. Dengan aturan ini
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
dan setelah menambahkan 1.2.3.4 dan 192.168.0.10 ke badhoststabel
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10
semua lalu lintas dari 1.2.3.4 dan 192.168.0.10 akan diblokir tetapi tuan rumah kedua akan dapat membuat koneksi ke port 80 mesin lain karena passaturan cocok dan mengesampingkan blockaturan.