I have some rules in my pf.conf for ssh brute force where it should
block and log the offending IP address in /etc/bruteforce file. I also
told syslog to log all ssh logging in /var/log/sshd. I can see some
failed login in /var/log/sshd but my /etc/bruteforce file is still
empty. Here's my pf.conf -
ext_if = "fxp0"
tcp_services = "{80, 443, 123}"
udp_services = "{123}"
icmp_services = "{echo_req}"
set block-policy drop
set loginterface $ext_if
scrub in all fragment reassemble
scrub out all random-id fragment reassemble
block all
pass quick on lo0 all
pass out quick on lo0 all
table <bruteforce> persist file "/etc/bruteforce"
block quick from <bruteforce>
antispoof log for { lo0, $ext_if }
block drop in quick log on $ext_if inet6 all
pass in log on $ext_if inet proto tcp from any to ($ext_if) port
$tcp_services flags S/SA keep state
pass in on $ext_if inet proto tcp from any to ($ext_if) port $udp_services
pass inet proto tcp from any to any port ssh \
flags S/SA keep state \
(max-src-conn 10, max-src-conn-rate 5/3, \
overload <bruteforce> flush global)
pass out log on $ext_if inet proto tcp from any to any port $tcp_services
block drop in quick on $ext_if from any to {255.255.255.255, 192.168.25.255}
block drop out quick on $ext_if inet proto icmp from any to {192.168.25.1}
block quick from any os NMAP
pass out log on $ext_if proto { tcp, udp, icmp } all keep state
block drop out quick log on $ext_if inet proto tcp from any to port 22
Here's what I can see on my /var/log/sshd -
Invalid user test from xxx.xx.xx.xx
input_userauth_request: invalid user test
Failed password for invalid user test from xxx.xx.xx.xx port 43734 ssh2
Is there anything I am doing wrong in my pf.conf? Thanks for any help.