######################################################## # Please file all bug reports, patches, and feature # requests under: # https://sourceforge.net/p/logwatch/_list/tickets # Help requests and discusion can be filed under: # https://sourceforge.net/p/logwatch/discussion/ ######################################################## ##################################################### ## Copyright (c) 2008 Kirk Bauer ## Covered under the included MIT/X-Consortium License: ## http://www.opensource.org/licenses/mit-license.php ## All modifications and contributions by other persons to ## this script are assumed to have been donated to the ## Logwatch project and thus assume the above copyright ## and licensing terms. If you want to make contributions ## under your own copyright or a different license this ## must be explicitly stated in the contribution an the ## Logwatch project reserves the right to not accept such ## contributions. If you have made significant ## contributions to this script and want to claim ## copyright please contact logwatch-devel@lists.sourceforge.net. ######################################################### use strict; my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0; my @OtherList = (); my %FailedLogins; while (defined(my $ThisLine = )) { if ( ( $ThisLine =~ /^pam_get_user: no username obtained$/ ) or ( $ThisLine =~ /^pam_end: NULL pam handle passed/ ) or ( $ThisLine =~ /^Starting up$/ ) or ( $ThisLine =~ /^Shutting down/ ) ) { # We don't care about these } elsif ( $ThisLine =~ s/^FAILED LOGIN SESSION FROM ([^ ]+) FOR .*$/$1/ ) { $FailedLogins{$ThisLine}++; } else { # Report any unmatched entries... push @OtherList,$ThisLine; } } if ( (keys %FailedLogins) and ($Detail >= 10) ) { print "\nFailed Login Sessions:\n"; foreach my $ThisOne (keys %FailedLogins) { print " " . $FailedLogins{$ThisOne} . " from " . $ThisOne; } } if ($#OtherList >= 0) { print "\n**Unmatched Entries**\n"; print @OtherList; } exit(0); # vi: shiftwidth=3 tabstop=3 syntax=perl et # Local Variables: # mode: perl # perl-indent-level: 3 # indent-tabs-mode: nil # End: