DragonFly On-Line Manual Pages
    
    
	
SSHLOCKOUT(8)          DragonFly System Manager's Manual         SSHLOCKOUT(8)
NAME
     sshlockout -- utility to block port 22 on preauth failures
SYNOPSIS
     #
     # pf(4) configuration.
     #
     # in /etc/pf.conf
     #
     table <lockout> persist { }
     # and later in /etc/pf.conf - see below
     #
     block in quick on $ext_if proto tcp from <lockout> to any port 22
     # in /etc/syslog.conf
     #
     auth.info;authpriv.info          |exec /usr/sbin/sshlockout -pf "lockout"
     # in root's crontab
     #
     3 3 * * *       pfctl -tlockout -T expire 86400
     #
     # ipfw(8) configuration.
     #
     ipfw table 0 create
     ipfw add deny ip from '<0>' to any
     # in /etc/syslog.conf
     #
     auth.info;authpriv.info         |exec /usr/sbin/sshlockout -ipfwtbl 0
     # in root's crontab
     #
     3 3 * * *       ipfw -fq table 0 expire 86400
DESCRIPTION
     This program is generally installed in /etc/syslog.conf as a pipe to
     parse the sshd(8) demons error log in realtime.  In addition, a root
     crontab entry should generally be created to clean out stale entries in
     the pf(4) or ipfw(8) table at least once a day.  Using expire instead of
     flush will maintain a rolling window of locked out IPs.  The pf(4) or
     ipfw(8) module must be loaded and running with the table and rules
     properly configured.
     This program will monitor the ssh syslog output and keep track of
     attempts to login to unknown users as well as preauth failures.  If 5
     attempts fail in any one hour period, a permanent entry is added to the
     pf(4) or ipfw(8) table for the associated IP address.  You still have to
     add a rule to pf.conf(5) or use ipfw(8) to block IP addresses listed in
     this table.  The cron entry you create cleans the block list out
     typically once a day.
     This program generally limits brute-force attempts to break into a
     machine via ssh.
     When setting up the pf(4) or ipfw(8) rules, note that the table will be
     filled based on failed ssh connections destined to that particular
     machine.  If the machine is acting as a router you can decide whether you
     want the pf(4) or ipfw(8) rule to lockout that suspect IP to just the
     machine, or to everything it routes to.  We usually recommend an
     unconditional blocking rule.
NOTICE
     This program is still a work in progress.
SEE ALSO
     ssh(1), pf(4), syslog.conf(5), ipfw(8), sshd(8)
HISTORY
     The sshlockout utility first appeared in DragonFly 4.1.
AUTHORS
     Matthew Dillon <dillon@backplane.com>
DragonFly 5.3                 September 13, 2017                 DragonFly 5.3