Ejemplo n.º 1
0
class SshMonitorPlugin(Plugin, Thread):
    name = 'ssh monitoring plugin for elmot by Frolov Dmitry'
    keyword = 'sshmon'
    controlled = False
    
    def __init__(self):
        Plugin.__init__(self)
        Thread.__init__(self)
        self.api = Api()
	
    def follow(self, thefile):
        thefile.seek(0,2)
        while True:
            line = thefile.readline()
            if not line:
                time.sleep(0.1)
                continue
            if ('Failed password' in line):
                yield line.split(': ')[1].split('port')[0]


    def run(self):
        logfile = open('/var/log/auth.log')
        loglines = self.follow(logfile)
        
        for line in loglines:
            line = line.replace('invalid user ', '', 1)
            self.api.tweet(line)
Ejemplo n.º 2
0
    def run(self):
        mgr = PluginManager()
        api = Api()
        for mes in api.listenMessages():
            m = Message(mes.text,mes.sender)
            plugin = mgr.getPlugin(m.keyword)

            if plugin.action == 2:
                api.tweet(plugin.execute(m))
            elif plugin.action == 1:
                api.sendDirectMessage(m.sender.id, plugin.execute(m))
            elif plugin.action == 0:
                plugin.execute(m)