|
Server : Apache/2.2.17 (Unix) mod_ssl/2.2.17 OpenSSL/0.9.8e-fips-rhel5 DAV/2 PHP/5.2.17 System : Linux localhost 2.6.18-419.el5 #1 SMP Fri Feb 24 22:47:42 UTC 2017 x86_64 User : nobody ( 99) PHP Version : 5.2.17 Disable Function : NONE Directory : /usr/share/logwatch/scripts/services/ |
Upload File : |
##########################################################################
# $Id: stunnel,v 1.6 2005/02/24 17:08:05 kirk Exp $
##########################################################################
$^W=1;
use strict;
my $Debug = $ENV{'LOGWATCH_DEBUG'} || 0;
my $Detail = $ENV{'LOGWATCH_DETAIL_LEVEL'} || 0;
my $DebugCounter = 0;
if ( $Debug >= 5 ) {
print STDERR "\n\nDEBUG: Inside stunnel Filter \n\n";
$DebugCounter = 1;
}
my @OtherList = ();
my %OtherList = ();
my %connections = ();
my %versioninfo = ();
my $sockdata = 0;
my $ssldata = 0;
sub other {
my $msg = shift;
unless (exists $OtherList{$msg}) {
$OtherList{$msg} = 1;
push(@OtherList, $msg);
} else {
$OtherList{$msg}++;
}
}
my $ThisLine;
while (defined($ThisLine = <STDIN>)) {
if ( $Debug >= 5 ) {
print STDERR "DEBUG($DebugCounter): $ThisLine";
$DebugCounter++;
}
chomp($ThisLine);
my $origline = $ThisLine;
if ($ThisLine =~ m/^(.+) connected from (\d+\.\d+\.\d+\.\d+)/) {
my $service = $1;
my $ip = $2;
if (! exists($connections{$service}{$ip})) {
$connections{$service}{$ip} = 0;
}
++$connections{$service}{$ip};
} elsif ($ThisLine =~ m/^Connection (reset|closed): (\d+) bytes sent to SSL, (\d+) bytes sent to socket/) {
$ssldata += $2;
$sockdata += $3;
} elsif ($ThisLine =~ m/^Connection (reset|closed)/) {
# ignore
} elsif ($ThisLine =~ m/^stunnel [\d\.]+ on [\w\-]+ [\w\+]+ with OpenSSL [\w\.]+ \d+ \w+ \d+/) {
$versioninfo{$ThisLine} = 1;
} else {
# Report any unmatched entries...
other($ThisLine);
}
}
if (keys %connections) {
print "\nconnections:\n";
foreach my $service (sort keys %connections) {
print " $service\n";
my $ips = $connections{$service};
foreach my $ip (sort keys %$ips) {
print " $ip ", $ips->{$ip}, "\n";
}
}
}
if ($sockdata > 0) {
printf "\namount of socket data transferred: %.2f KB\n", $sockdata / 1024;
}
if ($ssldata > 0) {
printf "\namount of SSL data transferred: %.2f KB\n", $ssldata / 1024;
}
if (keys %versioninfo) {
print "\nversion information:\n";
foreach my $v (sort keys %versioninfo) {
print " $v\n";
}
}
if (@OtherList) {
print "\n**Unmatched Entries**\n";
for (@OtherList) {
my $count = $OtherList{$_};
print "($count) $_\n";
}
}
exit(0);
# vi: shiftwidth=3 tabstop=3 syntax=perl et