วิธีที่ดีที่สุดในการทำเช่นนี้คือการกำหนดตารางและสร้างกฎเพื่อบล็อกโฮสต์ในpf.conf:
table <badhosts> persist
block on fxp0 from <badhosts> to any
จากนั้นเพิ่ม / ลบที่อยู่ IP แบบไดนามิก:
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T delete 1.2.3.4
คำสั่งอื่น ๆ 'ตาราง' รวมflush(ลบทั้งหมด) และreplace showดูman pfctlเพิ่มเติม
หากคุณต้องการรายการที่ถาวรมากขึ้นคุณสามารถเก็บไว้ในหนึ่ง (หรือมากกว่า) ไฟล์ ในpf.conf:
table <badhosts> persist file "/etc/badguys1" file "/etc/badguys2"
block on fxp0 from <badhosts> to any
คุณสามารถเพิ่มชื่อโฮสต์แทนที่อยู่ IP ดูส่วน "ตาราง" ของและman pf.confman pfctl
หมายเหตุ : ตัวอย่างด้านบนถือว่าเป็นส่วนต่อประสานกับอินเทอร์เน็ตfxp0โปรดเปลี่ยนตามการตั้งค่าของคุณ นอกจากนี้โปรดทราบว่ากฎในpf.confจะได้รับการประเมินตามลำดับและสำหรับblockหรือpassกฎของกฎการจับคู่ล่าสุดที่ใช้ ด้วยกฎนี้
table <badhosts> persist
block on fxp0 from <badhosts> to any
pass inet tcp from 192.168.0.0/24 to any port 80
และหลังจากเพิ่ม 1.2.3.4 และ 192.168.0.10 ไปยังbadhostsตาราง
$ pfctl -t badhosts -T add 1.2.3.4
$ pfctl -t badhosts -T add 192.168.0.10
การรับส่งข้อมูลทั้งหมดจาก 1.2.3.4 และ 192.168.0.10 จะถูกบล็อก แต่โฮสต์ที่สองจะสามารถทำการเชื่อมต่อกับพอร์ต 80 ของเครื่องอื่นได้เนื่องจากpassกฎจะจับคู่และแทนที่blockกฎ