コード例 #1
0
def init_test_server_by_name(name, port=0):
    server_class = protocols.name_mapping[name]

    template = {
        "guardian_ast": "guardian_ast",
        "IEC104": "IEC104",
        "kamstrup_management": "kamstrup_382",
        "kamstrup_meter": "kamstrup_382",
    }.get(name, "default")

    # Required by SNMP
    class Args(SimpleNamespace):
        mibcache = None

    if name in ("ftp", "tftp"):
        core.initialize_vfs()

    server, greenlet = spawn_test_server(server_class,
                                         template,
                                         name,
                                         args=Args(),
                                         port=port)

    # special case protocol with more complex start() logic
    # TODO: add serve_forever-Event() to servers to fix this properly
    if name == "http":
        sleep(0.5)

    return server, greenlet
コード例 #2
0
    def setUp(self):
        conpot_core.initialize_vfs()

        self.ftp_server, self.greenlet = spawn_test_server(
            FTPServer, "default", "ftp")
        self.client = ftplib.FTP()

        self.vfs, self.data_fs = conpot_core.get_vfs("ftp")
コード例 #3
0
ファイル: test_ftp.py プロジェクト: agnivesh/conpot
 def setUp(self):
     # Initialize the file system
     conpot_core.initialize_vfs()
     # get the current directory
     self.dir_name = os.path.dirname(conpot.__file__)
     self.ftp_server = FTPServer(self.dir_name + '/templates/default/ftp/ftp.xml', None, None)
     self.server_greenlet = gevent.spawn(self.ftp_server.start, '127.0.0.1', 0)
     self.client = ftplib.FTP()
     gevent.sleep(1)
コード例 #4
0
 def setUp(self):
     # initialize the file system.
     conpot_core.initialize_vfs()
     self._test_file = '/'.join(conpot.__path__ + ['tests/data/test_data_fs/tftp/test.txt'])
     # get the current directory
     self.dir_name = os.path.dirname(conpot.__file__)
     self.tftp_server = TftpServer(self.dir_name + '/templates/default/tftp/tftp.xml',
                                   self.dir_name + '/templates/default', args=None)
     self.server_greenlet = gevent.spawn(self.tftp_server.start, '127.0.0.1', 0)
     gevent.sleep(1)
コード例 #5
0
 def setUp(self):
     # Initialize the file system
     conpot_core.initialize_vfs()
     # get the current directory
     self.dir_name = os.path.dirname(conpot.__file__)
     self.ftp_server = FTPServer(
         self.dir_name + '/templates/default/ftp/ftp.xml', None, None)
     self.server_greenlet = gevent.spawn(self.ftp_server.start, '127.0.0.1',
                                         0)
     self.client = ftplib.FTP()
     gevent.sleep(1)
コード例 #6
0
 def setUp(self):
     conpot_core.initialize_vfs()
     self._vfs = conpot_core.get_vfs()
     self._vfs.register_user('test_user', 13)
     self._vfs.create_group('test_grp', 13)
     self.test_vfs = self._vfs.mount_fs(
         fs_url='/'.join(conpot.__path__ + ['tests/data/test_data_fs/vfs']),
         dst_path='/data',
         owner_uid=13,
         group_gid=13,
         perms=0o750)
コード例 #7
0
    def setUp(self):
        conpot_core.initialize_vfs()

        self.tftp_server, self.greenlet = spawn_test_server(TftpServer,
                                                            template="default",
                                                            protocol="tftp")

        self.client = TftpClient(self.tftp_server.server.server_host,
                                 self.tftp_server.server.server_port)
        self._test_file = "/".join(conpot.__path__ +
                                   ["tests/data/test_data_fs/tftp/test.txt"])
コード例 #8
0
ファイル: test_vfs.py プロジェクト: renwinping/conpot
 def setUp(self):
     conpot_core.initialize_vfs()
     self._vfs = conpot_core.get_vfs()
     self._vfs.register_user("test_user", 13)
     self._vfs.create_group("test_grp", 13)
     self.test_vfs = self._vfs.mount_fs(
         fs_url="/".join(conpot.__path__ + ["tests/data/test_data_fs/vfs"]),
         dst_path="/data",
         owner_uid=13,
         group_gid=13,
         perms=0o750,
     )
コード例 #9
0
ファイル: test_vfs.py プロジェクト: mushorg/conpot
 def setUp(self):
     conpot_core.initialize_vfs()
     self._vfs = conpot_core.get_vfs()
     self._vfs.register_user('test_user', 13)
     self._vfs.create_group('test_grp', 13)
     self.test_vfs = self._vfs.mount_fs(
         fs_url='/'.join(conpot.__path__ + ['tests/data/test_data_fs/vfs']),
         dst_path='/data',
         owner_uid=13,
         group_gid=13,
         perms=0o750
     )
コード例 #10
0
ファイル: test_vfs.py プロジェクト: renwinping/conpot
 def setUp(self):
     conpot_core.initialize_vfs()
     self.test_vfs = conpot_core.get_vfs()
コード例 #11
0
ファイル: ftp_server.py プロジェクト: xushuo1/conpot
        self.handler = FTPCommandChannel
        self.handler.config = FTPConfig(self.template)

    def start(self, host, port):
        self.handler.host, self.handler.port = host, port
        connection = (self.handler.host, self.handler.port)
        self.server = StreamServer(connection, self.handler.stream_server_handle)
        logger.info("FTP server started on: {}".format(connection))
        self.server.serve_forever()

    def stop(self):
        logger.debug("Stopping FTP server")
        self.server.stop()
        del self.handler


# ---- For debugging ----
if __name__ == "__main__":
    # Set vars for connection information
    TCP_IP = "127.0.0.1"
    TCP_PORT = 10001
    import os

    conpot_core.initialize_vfs()
    test_template = os.getcwd() + "/../../templates/default/ftp/ftp.xml"
    server = FTPServer(test_template, None, None)
    try:
        server.start(TCP_IP, TCP_PORT)
    except KeyboardInterrupt:
        server.stop()
コード例 #12
0
ファイル: test_vfs.py プロジェクト: mushorg/conpot
 def setUp(self):
     conpot_core.initialize_vfs()
     self.test_vfs = conpot_core.get_vfs()
コード例 #13
0
ファイル: ftp_server.py プロジェクト: agnivesh/conpot
        self.server = None  # Initialize later
        # Initialize vfs here..
        self.handler = FTPCommandChannel
        self.handler.config = FTPConfig(self.template)

    def start(self, host, port):
        self.handler.host, self.handler.port = host, port
        connection = (self.handler.host, self.handler.port)
        self.server = StreamServer(connection, self.handler.stream_server_handle)
        logger.info('FTP server started on: {}'.format(connection))
        self.server.serve_forever()

    def stop(self):
        logger.debug('Stopping FTP server')
        self.server.stop()
        del self.handler


# ---- For debugging ----
if __name__ == '__main__':
    # Set vars for connection information
    TCP_IP = '127.0.0.1'
    TCP_PORT = 10001
    import os
    conpot_core.initialize_vfs()
    test_template = os.getcwd() + '/../../templates/default/ftp/ftp.xml'
    server = FTPServer(test_template, None, None)
    try:
        server.start(TCP_IP, TCP_PORT)
    except KeyboardInterrupt:
        server.stop()