RHEL4- ssh服务(十一)ssh防范之DenyHosts的配置(daemon-control默认配置文件)

 

#!/usr/bin/env python
# denyhosts      Bring up/down the DenyHosts daemon
#
# chkconfig: 2345 98 02
# description: Activates/Deactivates the
#     DenyHosts daemon to block ssh attempts
#
###############################################
 
###############################################
#### Edit these to suit your configuration ####
###############################################
 
DENYHOSTS_BIN    = "/usr/bin/denyhosts.py"
DENYHOSTS_LOCK = "/var/lock/subsys/denyhosts"
DENYHOSTS_CFG    = "/usr/share/denyhosts/denyhosts.cfg"
 
PYTHON_BIN       = "/usr/bin/env python"
 
###############################################
####          Do not edit below             ####
###############################################
 
DENYHOSTS_BIN = "%s %s" % (PYTHON_BIN, DENYHOSTS_BIN)
 
import os, sys, signal, time
 
# make sure 'ps' command is accessible (which should be
# in either /usr/bin or /bin. Modify the PATH so
# popen can find it
env = os.environ.get('PATH', "")
os.environ['PATH'] = "/usr/bin:/bin:%s" % env
 
STATE_NOT_RUNNING = -1
STATE_LOCK_EXISTS = -2
 
def usage():
    print "Usage: %s {start [args...] | stop | restart [args...] | status | debug | condrestart [args...] }" % sys.argv[0]
    print
    print "For a list of valid 'args' refer to:"
    print "$ denyhosts.py --help"
    print
    sys.exit(0)
 
 
def getpid():
    try:
        fp = open(DENYHOSTS_LOCK, "r")
        pid = int(fp.readline().rstrip())
        fp.close()
    except Exception, e:
        return STATE_NOT_RUNNING
 
   
    if not sys.platform.startswith('freebsd') and os.access("/proc", os.F_OK):
        # proc filesystem exists, look for pid
        if os.access(os.path.join("/proc", str(pid)), os.F_OK):
            return pid
        else:
            return STATE_LOCK_EXISTS
    else:
        # proc filesystem doesn't exist (or it doesn't contain PIDs), use 'ps'
        p = os.popen("ps -p %d" % pid, "r")
        p.readline() # get the header line
        pid_running = p.readline()
        # pid_running will be '' if no process is found
        if pid_running:
            return pid
        else:
            return STATE_LOCK_EXISTS
 
 
def start(*args):
    cmd = "%s --daemon " % DENYHOSTS_BIN
    if args: cmd += ' '.join(args)
       
    print "starting DenyHosts:   ", cmd
 
    os.system(cmd)
 
 
def stop():
    pid = getpid()
    if pid >= 0:
        os.kill(pid, signal.SIGTERM)
        print "sent DenyHosts SIGTERM"
    else:
        print "DenyHosts is not running"
 
def debug():
    pid = getpid()
    if pid >= 0:
        os.kill(pid, signal.SIGUSR1)
        print "sent DenyHosts SIGUSR1"
    else:
        print "DenyHosts is not running"
       
def status():
    pid = getpid()
    if pid == STATE_LOCK_EXISTS:
        print "%s exists but DenyHosts is not running" % DENYHOSTS_LOCK
    elif pid == STATE_NOT_RUNNING:
        print "Denyhosts is not running"
    else:
        print "DenyHosts is running with pid = %d" % pid
 
 
def condrestart(*args):
    pid = getpid()
    if pid >= 0:
        restart(*args)
       
 
def restart(*args):
    stop()
    time.sleep(1)
    start(*args) 
 
 
if __name__ == '__main__':
    cases = {'start':       start,
             'stop':        stop,
             'debug':       debug,
             'status':      status,
             'condrestart': condrestart,
             'restart':     restart}
   
    try:
        args = sys.argv[2:]
    except:
        args = []
 
    try:
        # arg 1 should contain one of the cases above
        option = sys.argv[1]
    except:
        # try to infer context (from an /etc/init.d/ script, perhaps)
        procname = os.path.basename(sys.argv[0])
        infer_dict = {'K': 'stop',
                      'S': 'start'}
        option = infer_dict.get(procname[0])
        if not option:
            usage()
 
    try:
        if option in ('start', 'restart', 'condrestart'):
            if '--config' not in args and '-c' not in args:
                args.append("--config=%s" % DENYHOSTS_CFG)
 
        cmd = cases[option]
        apply(cmd, args)
    except:
        usage()
   
 

——————————————————————————————————

特别声明:--

一、本文为原创,著作权及使用权为(作者笔名:闪电cto)本人所有。 ­

二、本文首发于51cto个人博客(http://xudeqiang.blog.51cto.com)。  ­

三、本文只供互联网上的读者分享,不供共享范畴,希知。 ­

四、未经许可严禁对本文作修改、节选、断章性质的处理。 ­

五、可转载,但必须注明原文章首发的出处网址,及文章作者,严禁复制。 ­

六、如若转摘用于杂志网络媒体新闻,必须通知作者得到允许后方可,需收稿费。­

七、作者联系信息:QQ:306718122   邮箱[email protected]

——————————————————————————————

你可能感兴趣的:(ssh,文件,服务,休闲,denyhosts)