Provided by: sshguard_1.7.1-1_amd64 bug

NAME

       sshguard - block brute-force attacks by aggregating system logs

SYNOPSIS

       sshguard  [-v]  [-a thresh] [-b thresh:file] [-f service:pidfile] [-i pidfile] [-l source]
       [-p interval] [-s interval] [-w address | file]

DESCRIPTION

       sshguard protects hosts from brute-force  attacks  against  SSH  and  other  services.  It
       aggregates system logs and blocks repeat offenders using one of several firewall backends,
       including iptables, ipfw, and pf.

       sshguard can read log messages from standard input (suitable for piping  from  syslog)  or
       monitor  one  or  more  log  files.  Log messages are parsed, line-by-line, for recognized
       patterns. If an attack, such as several login failures within a few seconds, is  detected,
       the  offending  IP  is  blocked.  Offenders are unblocked after a set interval, but can be
       semi-permanently banned using the blacklist option.

       See http://www.sshguard.net/docs/setup/ for setup instructions.

       Other  features,  attack  signatures,  and  additional  documentation  can  be  found   at
       http://www.sshguard.net/.

OPTIONS

       -a thresh (default 30)
              Block  an  attacker when its dangerousness exceeds thresh. Each attack pattern that
              is matched contributes a fixed dangerousness of 10.

       -b thresh:file
              Blacklist an attacker when its dangerousness exceeds thresh.  Blacklisted addresses
              are  added  to  file so they can be read at the next startup. Blacklisted addresses
              are never automatically unblocked, but it is good practice  to  periodically  clean
              out stale blacklist entries.

       -f service:pidfile
              Deprecated. See LOG VALIDATION below.

       -i pidfile
              Write the PID of sshguard to pidfile.

       -l source
              Monitor  source  for  log  messages.  By  default, sshguard reads log messages from
              standard input. Give this option once for every source to monitor instead. sshguard
              transparently  handles  log  rotations.  When  using this option, standard input is
              ignored, but can be re-added by giving '-l -'.

       -p interval (default 120 secs, or 2 minutes)
              Wait at  least  interval  seconds  before  releasing  a  blocked  address.   Repeat
              attackers  are  blocked  for  1.5 times longer after each attack.  Because sshguard
              unblocks attackers only at infrequent intervals, this parameter is inexact  (actual
              blocks will be longer).

       -s interval (default 1800 secs, or 30 minutes)
              Forget about an attacker interval seconds after its last attempt. Its dangerousness
              will be reset to zero.

       -w address | file
              Whitelist the given  address,  hostname,  or  address  block.  Alternatively,  read
              whitelist  entires  from  file.  This  option  can  be  given  multiple  times. See
              WHITELISTING below for details.

       -v     Print version information and exit.

ENVIRONMENT

       SSHGUARD_DEBUG
              Enable additional debugging information.

WHITELISTING

       sshguard supports address whitelisting. Whitelisted addresses are not blocked even if they
       appear  to  generate  attacks.  This  is useful for protecting lame LAN users (or external
       friendly users) from being incidentally blocked.

       Whitelist addresses are controlled through the -w command-line option. This option can add
       explicit addresses, host names and address blocks:

       addresses
              specify the numeric IPv4 or IPv6 address directly, like:

                 -w 192.168.1.10

              or in multiple occurrences:

                 -w 192.168.1.10 -w 2001:0db8:85a3:0000:0000:8a2e:0370:7334

       host names
              specify the host name directly, like:

                 -w friendhost.enterprise.com

              or in multiple occurrences:

                 -w friendhost.enterprise.com -w friend2.enterprise.com

              All  IPv4  and  IPv6 addresses that the host resolves to are whitelisted. Hosts are
              resolved to addresses once, when sshguard starts up.

       address blocks
              specify the IPv4 or IPv6 address block in the usual CIDR notation:

                 -w 2002:836b:4179::836b:0000/126

              or in multiple occurrences:

                 -w 192.168.0.0/24 -w 1.2.3.128/26

       file   When longer lists are needed for whitelisting, they can be  wrapped  into  a  plain
              text file, one address/hostname/block per line, with the same syntax given above.

              sshguard  can  take whitelists from files when the -w option argument begins with a
              '.' (dot) or '/' (slash).

              This is a sample whitelist file (say /etc/friends):

                 # comment line (a '#' as very first character)
                 #   a single IPv4 and IPv6 address
                 1.2.3.4
                 2001:0db8:85a3:08d3:1319:8a2e:0370:7344
                 #   address blocks in CIDR notation
                 127.0.0.0/8
                 10.11.128.0/17
                 192.168.0.0/24
                 2002:836b:4179::836b:0000/126
                 #   hostnames
                 rome-fw.enterprise.com
                 hosts.friends.com

              And this is how sshguard is told to make a whitelist up from the /etc/friends file:

                 sshguard -w /etc/friends

       The -w option can be used only once for files.  For  addresses,  host  names  and  address
       blocks it can be used with any multiplicity, even with mixes of them.

LOG VALIDATION

       Syslog  and  syslog-ng  typically  insert  a  PID  of  the generating process in every log
       message. This can be checked for authenticating the source of the message and avoid  false
       attacks to be detected because malicious local users inject crafted log messages. This way
       sshguard can be safely used even on hosts where this assumption does not hold.

       Log validation is only needed when sshguard is  fed  log  messages  from  syslog  or  from
       syslog-ng.  When  a  process  logs  directly  to a raw file and sshguard is configured for
       polling logs directly from it, you only need to adjust the log file  permissions  so  that
       only root can write on it.

       For enabling log validation on a given service the -f option is used as follows:

          -f 100:/var/run/sshd.pid

       which  associates  the  given  pidfile to the ssh service (code 100). A list of well-known
       service codes is available at http://www.sshguard.net/docs/reference/service-codes/.

       The -f option can be used multiple times for associating  different  services  with  their
       pidfile:

          sshguard -f 100:/var/run/sshd.pid -f 123:/var/run/mydaemon.pid

       Services  that are not configured for log validation follow a default-allow policy (all of
       their log messages are accepted by default).

       PIDs are checked with the following policy:

       1. the logging service is searched in the list of services configured for  validation.  If
          not found, the entry is accepted.

       2. the logged PID is compared with the pidfile. If it matches, the entry is accepted

       3. the PID is checked for being a direct child of the authoritative process. If it is, the
          entry is accepted.

       4. the entry is ignored.

       Low I/O load is  committed  to  the  operating  system  because  of  an  internal  caching
       mechanism. Changes in the pidfile value are handled transparently.

SEE ALSO

       syslog(1), syslog.conf(5), hosts_access(5)

       Glossary: http://www.sshguard.net/docs/terminology/

       Website: http://www.sshguard.net/

AUTHORS

       Michele Mazzucchi <mij@bitchx.it>, Kevin Zheng <kevinz5000@gmail.com>