- don't try using Net::IP when it's not installed, fixes #8
- format Changes to markdown
- make new sshd error 'maximum authentication attempts exceeded for root' a naughy condition.
- improve the --update function
- invalid users are naughty
- change shebang: /usr/bin/env perl ->
which perl
- changed shebang: /usr/bin/perl -> /usr/bin/env perl
- try loading Net::IP early, set $has_netip
- move "or die..." clause to prevent an innocuous perl 5.20 warning
- if LWP::UserAgent not installed, try using curl, wget, or fetch
- pass perl critic
- count root attempts as naughty (was failed)
- updated version check to GitHub URL
- added fix for FTP log parsing, m/ / -> m/\s+/ for WS split
- added vpopmail vchkpw-smtp parsing (limit SMTP brute-force)
- added check_sentry NRPE plugin, for Nagios monitoring
- added fix for ssh log parsing, m/ / -> m/\s+/ for WS split
- added dovecot log parsing (limit POP & IMAP brute-force)
- added the skeleton of a CPAN dist
- fix for unblacklist not removing from tcpwrappers (sn3ak)
- Adds IPv6 support if Net::IP is installed
- switched from file/dir to DB|GDBM|NDBM (whichever is installed)
- automatically imports old format into DB (uses FAR less disk space)
- reporting even a million connections is practically instant
- added error messages where failures were previously handled silently
- adjusted SYNOPSIS docs so usage syntax is clearer -ian
- added POD docs for update feature
- removed wc TODO after testing. Using wc is no faster than perls builtin methods. Added notes to EFFICIENT portion of man page.
- POD cleanups
- added methods _unblock_tcpwrappers, _unblock_pf, unblock_ipfw. When unblocking an IP, also remove the IP from the tcpd/firewall
- added FTP log parsing
- properly account for FreeBSD + sshd + PAM logins
- if an IP is whitelisted and blacklisted, remove from blacklist
- IPs were getting whitelisted and blacklisted, because the do_???list subs were not returning a success code "do_ and exit;". Added missing result code and altered methods to not depend on them "do_; exit;".
- sentry.pl wasn't being installed unless --update was selected. If no version is installed, install anyway.
- when doing an IP report, show the log file entries if --verbose
- if FTP logs are enabled but not found, report error.
- updates to pod docs and comments. -mps
- added a couple more sshd log pattern matches
- reworked the --update feature, works better.
- ssh log entries that didn't meet the listed criteria were not being counted, preventing the 10 strikes and you're out rule from kicking in
- added ssh probe detection in log parser (spurred on by Kevin Golding)
- rewrote portions of the pod docs
- added method version_check, (checks tnpi web site for latest version)
- abstracted self_update and configure_tcpwrappers out of check_setup
- pf table in docs was sentry, updated to sentry_blacklist (make docs match the code (thanks Kevin Golding).
- pfctl add/remove was not working properly. Fixed and tested.
- fixed some bugs in the POD documentation
- skip setup checks when --help is selected
- added --help option, based on usability study
- sprinkled a few comments in various places
- added a few more file tests before attempting to open file handles
- added better error handling for file accessing methods
- added placeholder _parse_mail_logs
- CentOS 5.2 logs this IP to syslog: 24.19.45.95 but the 'address' it logs to hosts via %a is ::ffff:208.75.177.98. Sure would be nice if that change was documented in hosts_access(5).
- warn if unable to determine syslog location for sshd
- discovered and worked around an 'interesting' problem in external files referenced by some implementations of tcpwrappers
- fixed a copy/paste induced bug preventing delist from working on whitelist
- updated syslog finding script to be more robust on various platforms
- added checks for read permission to $root_dir before attempting to report or setup
- firewalls off by default
- if selected, report is dispatched first
- script will self-install itself in $root_dir if it doesn't exist there
- don't require an IP for reports
- added warnings when common and important operations fail
- added report summary (-v -r)
- added pod documentation
- reworked the tcpwrappers black/whitelisting after discovery that libwrap doesn't include the very handy file include feature that tcpwrappers has on FreeBSD and Linux
- if hosts.allow and deny are missing, auto-configure them
- added default log locations for numerous platforms