def main(): """ Main function """ print "%s #v%s\n" % (NAME, VERSION) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="Configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() if not check_sudo(): exit("[x] please run with sudo/Administrator privileges") read_config(options.config_file) init_sensor() try: start_httpd() start_sensor() except socket.error, ex: exit("[x] can't start the HTTP server ('%s')" % ex)
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="Configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: msg, _ = "[!] please install pyopenssl", platform.linux_distribution( )[0].lower() for distro, install in { ("fedora", "centos"): "sudo yum install pyOpenSSL", ("debian", "ubuntu"): "sudo apt-get install python-openssl" }.items(): if _ in distro: msg += " (e.g. '%s')" % install break exit(msg) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % ( config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit( "[!] invalid configuration value for 'SSL_PEM' ('%s')\n[o] (hint: \"%s\")" % (config.SSL_PEM, hint)) def update_timer(): if config.USE_SERVER_UPDATE_TRAILS: update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")
def main(): if config.USE_SSL: try: import OpenSSL except ImportError: exit("[!] please install pyopenssl (e.g. 'apt-get install python-openssl')") if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % (config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) print "[!] invalid configuration value for 'ssl_pem' ('%s')" % config.SSL_PEM exit ("[i] hint: \"%s\"" % hint) def update_timer(): update() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() update_timer() if config.UDP_ADDRESS and config.UDP_PORT: start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print "\r[x] stopping (Ctrl-C pressed)"
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: if subprocess.mswindows: exit("[!] please install 'pyopenssl' (e.g. 'pip install pyopenssl')") else: msg, _ = "[!] please install 'pyopenssl'", platform.linux_distribution()[0].lower() for distro, install in {("fedora", "centos"): "sudo yum install pyOpenSSL", ("debian", "ubuntu"): "sudo apt-get install python-openssl"}.items(): if _ in distro: msg += " (e.g. '%s')" % install break exit(msg) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % (config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit("[!] invalid configuration value for 'SSL_PEM' ('%s')\n[?] (hint: \"%s\")" % (config.SSL_PEM, hint)) def update_timer(): if config.USE_SERVER_UPDATE_TRAILS: update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: if check_sudo() is False: exit("[!] please run '%s' with sudo/Administrator privileges when using 'UDP_ADDRESS' configuration value" % __file__) start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")
def main(): print "%s (server) #v%s\n" % (NAME, VERSION) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="Configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: exit( "[!] please install pyopenssl (e.g. 'apt-get install python-openssl')" ) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % ( config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) print "[!] invalid configuration value for 'ssl_pem' ('%s')" % config.SSL_PEM exit("[i] hint: \"%s\"" % hint) def update_timer(): update() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print "\r[x] stopping (Ctrl-C pressed)"
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="Configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: exit("[!] please install pyopenssl (e.g. 'apt-get install python-openssl')") if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % (config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit("[!] invalid configuration value for 'SSL_PEM' ('%s')\n[i] hint: \"%s\"" % (config.SSL_PEM, hint)) def update_timer(): if config.USE_SERVER_UPDATE_TRAILS: update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")
def main(): if config.USE_SSL: try: import OpenSSL except ImportError: exit( "[!] please install pyopenssl (e.g. 'apt-get install python-openssl')" ) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % ( config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) print "[!] invalid configuration value for 'ssl_pem' ('%s')" % config.SSL_PEM exit("[i] hint: \"%s\"" % hint) def update_timer(): update() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() update_timer() if config.UDP_ADDRESS and config.UDP_PORT: start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print "\r[x] stopping (Ctrl-C pressed)"
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: if subprocess.mswindows: exit("[!] please install 'pyopenssl' (e.g. 'pip install pyopenssl')") else: msg, _ = "[!] please install 'pyopenssl'", platform.linux_distribution()[0].lower() for distro, install in {("fedora", "centos"): "sudo yum install pyOpenSSL", ("debian", "ubuntu"): "sudo apt-get install python-openssl"}.items(): if _ in distro: msg += " (e.g. '%s')" % install break exit(msg) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % (config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit("[!] invalid configuration value for 'SSL_PEM' ('%s')\n[?] (hint: \"%s\")" % (config.SSL_PEM, hint)) def update_timer(): retries = 0 while retries < CHECK_CONNECTION_MAX_RETRIES and not check_connection(): sys.stdout.write("[!] can't update because of lack of network connection (waiting..." if not retries else '.') sys.stdout.flush() time.sleep(10) retries += 1 if retries: print(")") if retries == CHECK_CONNECTION_MAX_RETRIES: print("[x] going to continue without update") else: if config.USE_SERVER_UPDATE_TRAILS: update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: if check_sudo() is False: exit("[!] please run '%s' with sudo/Administrator privileges when using 'UDP_ADDRESS' configuration value" % __file__) start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) if "--version" in sys.argv: raise SystemExit parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) parser.add_option("--debug", dest="debug", action="store_true", help=optparse.SUPPRESS_HELP) options, _ = parser.parse_args() read_config(options.config_file) if options.debug: config.SHOW_DEBUG = True if config.USE_SSL: try: __import__("OpenSSL") except ImportError: if IS_WIN: exit( "[!] please install 'pyopenssl' (e.g. 'pip install pyopenssl')" ) else: msg = "[!] please install 'pyopenssl'" for distros, install in { ("fedora", "centos"): "sudo yum install pyOpenSSL", ("debian", "ubuntu"): "sudo apt-get install python-openssl" }.items(): for distro in distros: if distro in (platform.uname()[3] or "").lower(): msg += " (e.g. '%s')" % install break exit(msg) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % ( config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit( "[!] invalid configuration value for 'SSL_PEM' ('%s')\n[?] (hint: \"%s\")" % (config.SSL_PEM, hint)) def update_timer(): retries = 0 while retries < CHECK_CONNECTION_MAX_RETRIES and not check_connection( ): sys.stdout.write( "[!] can't update because of lack of Internet connection (waiting..." if not retries else '.') sys.stdout.flush() time.sleep(10) retries += 1 if retries: print(")") if retries == CHECK_CONNECTION_MAX_RETRIES: print("[x] going to continue without online update") _ = update_trails(offline=True) else: _ = update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: if config.UDP_PORT <= 1024 and not config.DISABLE_CHECK_SUDO and check_sudo( ) is False: exit( "[!] please run '%s' with root privileges when using 'UDP_ADDRESS' configuration value" % __file__) create_log_directory() start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: if config.USE_SERVER_UPDATE_TRAILS: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")
def main(): print("%s (server) #v%s\n" % (NAME, VERSION)) parser = optparse.OptionParser(version=VERSION) parser.add_option("-c", dest="config_file", default=CONFIG_FILE, help="configuration file (default: '%s')" % os.path.split(CONFIG_FILE)[-1]) options, _ = parser.parse_args() read_config(options.config_file) if config.USE_SSL: try: import OpenSSL except ImportError: if subprocess.mswindows: exit("[!] please install 'pyopenssl' (e.g. 'pip install pyopenssl')") else: msg, _ = "[!] please install 'pyopenssl'", platform.linux_distribution()[0].lower() for distro, install in {("fedora", "centos"): "sudo yum install pyOpenSSL", ("debian", "ubuntu"): "sudo apt-get install python-openssl"}.items(): if _ in distro: msg += " (e.g. '%s')" % install break exit(msg) if not config.SSL_PEM or not os.path.isfile(config.SSL_PEM): hint = "openssl req -new -x509 -keyout %s -out %s -days 365 -nodes -subj '/O=%s CA/C=EU'" % (config.SSL_PEM or "server.pem", config.SSL_PEM or "server.pem", NAME) exit("[!] invalid configuration value for 'SSL_PEM' ('%s')\n[?] (hint: \"%s\")" % (config.SSL_PEM, hint)) def update_timer(): retries = 0 while retries < CHECK_CONNECTION_MAX_RETRIES and not check_connection(): sys.stdout.write("[!] can't update because of lack of Internet connection (waiting..." if not retries else '.') sys.stdout.flush() time.sleep(10) retries += 1 if retries: print(")") if retries == CHECK_CONNECTION_MAX_RETRIES: print("[x] going to continue without online update") _ = update_trails(offline=True) else: _ = update_trails() update_ipcat() thread = threading.Timer(config.UPDATE_PERIOD, update_timer) thread.daemon = True thread.start() if config.UDP_ADDRESS and config.UDP_PORT: if config.UDP_PORT <= 1024 and not config.DISABLE_CHECK_SUDO and check_sudo() is False: exit("[!] please run '%s' with sudo/Administrator privileges when using 'UDP_ADDRESS' configuration value" % __file__) create_log_directory() start_logd(address=config.UDP_ADDRESS, port=config.UDP_PORT, join=False) try: if config.USE_SERVER_UPDATE_TRAILS: update_timer() start_httpd(address=config.HTTP_ADDRESS, port=config.HTTP_PORT, pem=config.SSL_PEM if config.USE_SSL else None, join=True) except KeyboardInterrupt: print("\r[x] stopping (Ctrl-C pressed)")