| Current File : //usr/local/nagios/libexec/check_csf |
#!/usr/bin/perl
$output ="";
$status = 0;
$folder = "/etc/csf";
if (!-e $folder ) {
$output = "CSF CRITICAL – NOT installed";
$status = 2;
} else {
@stat = `sudo csf --status | grep DROP -c`;
if ($stat[0] > 0){
$lfd = `ps aux | grep 'lfd' | grep -v grep | wc -l`;
chomp($lfd);
if ($lfd eq 0){
$output = "CSF WARNING – CSF is running but LFD is stopped";
$status = 1;
} else {
$output = "CSF OK – Running";
$status = 0;
}
} else {
$output = "CRITICAL - CSF is stopped";
$status = 2;
}
}
if ( -e "/etc/csf/ru" ){
$ru = 1;
}
if ( -e "/etc/csf/br" ){
$br = 1;
}
if ( -e "/etc/csf/cn" ){
$cn = 1;
}
if ( -e "/etc/csf/cnbr" ){
$cnbr = 1;
}
if ( -e "/root/migration" ){
$mig = 1;
}
if ( -e "/root/x11" ){
$x11 = 1;
}
if ( -e "/root/ssh-alt" ){
$ssh = 1;
}
if ( -e "/root/ssh-ticket" ){
$ticket = 1;
}
$string = "$br$cn$cnbr";
$count = ($string =~ tr/1//);
if ($count gt 1 ) {
$output = $output . " - INVALID CONFIGURATION. Only one of /etc/csf/br , /etc/csf/cn or /etc/csf/cnbr can exist !";
$status = 2;
} else {
if ($br) {
$output = $output . " - Brasil banned" if $br;
#$status = 1 if ($status eq 0 );
}
if ($cn) {
$output = $output . " - China banned " if $cn;
#$status = 1 if ($status eq 0 );
}
}
if ($ru) {
$output = $output . " - Russia banned " if $ru;
#$status = 1 if ($status eq 0 );
}
if ($mig) {
$output = $output . " - Server in migration mode " if $mig;
$status = 2;
}
if ($x11) {
$output = $output . " - nginx in X11 ban mode";
$status = 1;
}
if ($ssh) {
$output = $output . " - ssh in alternate ( 22022 ) config ";
}
if ($ticket) {
$output = $output . " - ssh in ticket mode ";
$status = 2;
}
print $output."\n";
exit($status);