Tighten a bit for ssh, differentiate:
/etc/pf.conf
table <bruteforce> persist
block quick from <bruteforce>
# tighter for ssh
pass quick proto tcp to port ssh \
keep state (max-src-conn 15, max-src-conn-rate 5/3, \
overload <bruteforce> flush global)
pass inet proto tcp to $int_if:network port $tcp_services \
keep state (max-src-conn 100, max-src-conn-rate 15/5, \
overload <bruteforce> flush global)Note: the slow brutes aka The Hail Mary Cloud likely a deliberate attemtp at avoiding this kind of measure (use keys-only auth!)