diff --git a/config-example.py b/config_example.py similarity index 100% rename from config-example.py rename to config_example.py diff --git a/ssh_server/__init__.py b/terminal/__init__.py similarity index 100% rename from ssh_server/__init__.py rename to terminal/__init__.py diff --git a/terminal/config_example.py b/terminal/config_example.py new file mode 100644 index 000000000..9cde69b99 --- /dev/null +++ b/terminal/config_example.py @@ -0,0 +1,93 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# + +import logging +import os + + +BASE_DIR = os.path.dirname(os.path.abspath(__name__)) +LOG_LEVEL_CHOICES = { + 'debug': logging.DEBUG, + 'info': logging.INFO, + 'warning': logging.WARNING, + 'error': logging.ERROR, + 'critical': logging.CRITICAL +} + + +class Config: + LOG_LEVEL = '' + LOG_DIR = os.path.join(BASE_DIR, 'logs') + LOGGING = { + 'version': 1, + 'formatters': { + 'verbose': { + 'format': '%(levelname)s %(asctime)s %(module)s %(process)d %(thread)d %(message)s' + }, + 'main': { + 'datefmt': '%Y-%m-%d %H:%M:%S', + 'format': '%(asctime)s [%(module)s %(levelname)s] %(message)s', + }, + 'simple': { + 'format': '%(levelname)s %(message)s' + }, + }, + 'handlers': { + 'null': { + 'level': 'DEBUG', + 'class': 'logging.NullHandler', + }, + 'console': { + 'level': 'DEBUG', + 'class': 'logging.StreamHandler', + 'formatter': 'main' + }, + 'file': { + 'level': 'DEBUG', + 'class': 'logging.FileHandler', + 'formatter': 'main', + 'filename': os.path.join(PROJECT_DIR, 'logs', 'jumpserver.log') + }, + }, + 'loggers': { + 'django': { + 'handlers': ['null'], + 'propagate': False, + 'level': LOG_LEVEL, + }, + 'django.request': { + 'handlers': ['console', 'file'], + 'level': LOG_LEVEL, + 'propagate': False, + }, + 'django.server': { + 'handlers': ['console', 'file'], + 'level': LOG_LEVEL, + 'propagate': False, + }, + 'jumpserver': { + 'handlers': ['console', 'file'], + 'level': LOG_LEVEL, + }, + 'jumpserver.users.api': { + 'handlers': ['console', 'file'], + 'level': LOG_LEVEL, + }, + 'jumpserver.users.view': { + 'handlers': ['console', 'file'], + 'level': LOG_LEVEL, + } + } + } + + def __init__(self): + pass + + def __getattr__(self, item): + return None + + + +if __name__ == '__main__': + pass diff --git a/terminal/logs/.gitkeep b/terminal/logs/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/ssh_server/server.py b/terminal/ssh_server.py similarity index 91% rename from ssh_server/server.py rename to terminal/ssh_server.py index e93e8761b..7d6a6dee3 100644 --- a/ssh_server/server.py +++ b/terminal/ssh_server.py @@ -37,14 +37,7 @@ from users.utils import ssh_key_gen, check_user_is_valid logger = get_logger(__name__) -class SSHService(paramiko.ServerInterface): - # data = (b'AAAAB3NzaC1yc2EAAAABIwAAAIEAyO4it3fHlmGZWJaGrfeHOVY7RWO3P9M7hp' - # b'fAu7jJ2d7eothvfeuoRFtJwhUmZDluRdFyhFY/hFAh76PJKGAusIqIQKlkJxMC' - # b'KDqIexkgHAfID/6mqvmnSJf0b5W8v5h2pI/stOSwTQ+pxVhwJ9ctYDhRSlF0iT' - # b'UWT10hcuO4Ks8=') - # good_pub_key = paramiko.RSAKey(data=decodebytes(data)) - # host_key = paramiko.RSAKey(filename='test_rsa.key') - +class SSHServerInterface(paramiko.ServerInterface): host_key_path = os.path.join(BASE_DIR, 'host_rsa_key') def __init__(self): @@ -138,10 +131,10 @@ class SSHServer: logger.warning('(Failed to load moduli -- gex will be unsupported.)') raise - transport.add_server_key(SSHService.get_host_key()) - service = SSHService() + transport.add_server_key(SSHServerInterface.get_host_key()) + ssh_interface = SSHServerInterface() try: - transport.start_server(server=service) + transport.start_server(server=ssh_interface) except paramiko.SSHException: print('*** SSH negotiation failed.') return @@ -158,7 +151,7 @@ class SSHServer: channel.send('We are on fire all the time! Hooray! Candy corn for everyone!\r\n') channel.send('Happy birthday to Robot Dave!\r\n\r\n') server_channel = self.connect() - if not service.event.is_set(): + if not ssh_interface.event.is_set(): print('*** Client never asked for a shell.') return server_data = [] diff --git a/terminal/utils.py b/terminal/utils.py new file mode 100644 index 000000000..f5c5d234f --- /dev/null +++ b/terminal/utils.py @@ -0,0 +1,8 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# + +import logging + + + diff --git a/terminal/web_server.py b/terminal/web_server.py new file mode 100644 index 000000000..f93d0bec7 --- /dev/null +++ b/terminal/web_server.py @@ -0,0 +1,7 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# + + +if __name__ == '__main__': + pass