Install Bruteblock
cd /usr/ports/security/bruteblock; make && make install
Configure Bruteblock
vi /usr/local/etc/bruteblock/ssh.conf
Add line similar to following example according to your log in auth.log 
also you can use line below for commercial SSH 
OR 
the line already in your current setting is good enough for standard installation.
regexp2 = sshd2.*connection from \"(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})\"
Change max_count to
max_count = 10 (10 tries)
Change within_time to
within_time = 45 (within 45 second)
Change reset_ip to
reset_ip = 3600 (Block for 1 Hr.)
Enable bruteblock to the rc.conf
bruteblockd_enable="YES" bruteblockd_table="1" bruteblockd_flags="-s 60"
Add following line to /etc/firewall as second entry after flush or you can edit your standard firewall rule file
add deny ip from table(1) to any
Apply the changes
ipfw -f /etc/firewall
Add following line to /etc/syslog.conf
auth.info;authpriv.info |exec /usr/local/sbin/bruteblock -f /usr/local/etc/bruteblock/ssh.conf
restart syslogd
/etc/rc.d/syslogd restart
start bruteblockd
/usr/local/etc/rc.d/bruteblockd.sh start
How to check blocked IP
 ipfw table 1 list
How to flush table
 ipfw table 1 flush
Anything else in mind - GOOGLE it
This will help you keep you server live during any DDOS or bruteforce.
also, make person frustrated due to slow scan.
ipfw add allow tcp from xx.xx.xx.xx/24 to any setup limit src-addr 10 ipfw add allow tcp from any to me setup limit src-addr 4
NOTE : First rule is for your internal network. replace xx.xx.xx.xx your internal network.