diff --git a/cowrie.cfg.dist b/cowrie.cfg.dist index 97ed7418..93e10799 100644 --- a/cowrie.cfg.dist +++ b/cowrie.cfg.dist @@ -89,6 +89,12 @@ txtcmds_path = txtcmds ttylog = true +# Interactive timeout determines when logged in sessions are +# terminated for being idle. +# (default: 180) +interactive_timeout = 180 + + # ============================================================================ # Network Specific Options diff --git a/cowrie/core/protocol.py b/cowrie/core/protocol.py index d17b44e2..b186ae34 100644 --- a/cowrie/core/protocol.py +++ b/cowrie/core/protocol.py @@ -86,7 +86,12 @@ class HoneyPotBaseProtocol(insults.TerminalProtocol, TimeoutMixin): self.realClientPort = pt.transport.getPeer().port self.clientVersion = self.getClientVersion() self.logintime = time.time() - self.setTimeout(180) + + try: + timeout = self.cfg.getint('honeypot', 'interactive_timeout') + except: + timeout = 180 + self.setTimeout(timeout) # Source IP of client in user visible reports (can be fake or real) try: