Question to people more knowledgeable about #BSD systems (primarily #FreeBSD, but the more answers the merrier)!
On Linux, I can use ipset (or nftables sets) to create a set of IP addresses I can match against with one rule. Like:
# ipset create test-set iphash
# iptables -I INPUT -m set --match-set test-set src -j DROP
This would drop any and all source addresses that I add to test-set in the future, without having to update INPUT. It also does some magic hashing thing to make all this efficient.
The reason I want this is because I'll be adding a lot of unique IPs to this set (about half a million, if not more). When adding them directly to iptables, the Linux kernel was very unhappy about that. But with a set? Worked like a charm.
Can pf or any other packet filter tool on the BSDs do something similar? Allow me to block a very large number of unique IPs?
Blocking ASNs or ranges is not feasible, I need to block unique IPs.
Bonus points if it can automatically expire entries that were added or updated N seconds ago.
Boosts appreciated.