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);