Open AndreLaxe opened 4 years ago
os: ubuntu 20.04 (docker image) python: 3.8.2 pyftpdlib version: 1.5.6
my server:
from pyftpdlib.authorizers import DummyAuthorizer from pyftpdlib.handlers import TLS_FTPHandler from pyftpdlib.servers import FTPServer class ftp_server: def __init__(self): self.authorizer = DummyAuthorizer() def run(self): class MyHandler(TLS_FTPHandler): def on_connect(self): print("CONNECT") def on_disconnect(self): print("DISCONNECT") def on_file_received(self, file): print(file) self.handler = MyHandler self.handler.certfile = 'keycert.pem' self.handler.authorizer = self.authorizer self.handler.log_prefix = 'XXX [%(username)s]@%(remote_ip)s' self.server = FTPServer(("0.0.0.0",21), self.handler) logging.basicConfig(filename = 'pyftpd.log',level=logging.DEBUG) self.server.serve_forever() def del_user(self, username, ip_address): self.authorizer.remove_user(str(username)) this_ftp = ftp_server() thread_server = threading.Thread(target = this_ftp.run, args = ()).start()
This class works great in ftp (with FTPHandler) and I use the .cert file provided in this repository.
output:
INFO:pyftpdlib:XXX []@192.168.134.1 FTP session opened (connect) DEBUG:pyftpdlib:XXX []@192.168.134.1 -> 220 pyftpdlib 1.5.6 ready. DEBUG:pyftpdlib:XXX []@192.168.134.1 <- AUTH TLS DEBUG:pyftpdlib:XXX []@192.168.134.1 -> 234 AUTH TLS successful. DEBUG:pyftpdlib:[debug] securing SSL connection (<MyHandler(id=140240693800144, addr='192.168.134.1:59236')>) DEBUG:pyftpdlib:[debug] call: _do_ssl_handshake, err: ssl-want-read (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True)>) DEBUG:pyftpdlib:[debug] call: _do_ssl_handshake, err: ssl-want-read (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True)>) DEBUG:pyftpdlib:[debug] SSL connection established (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True)>) DEBUG:pyftpdlib:XXX []@192.168.134.1 <- USER user DEBUG:pyftpdlib:XXX []@192.168.134.1 -> 331 Username ok, send password. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- PASS ****** DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 230 Login successful. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- OPTS UTF8 ON DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 501 Invalid argument. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- PBSZ 0 DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 200 PBSZ=0 successful. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- PROT P DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 200 Protection set to Private DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- OPTS MLST type;perm;size;modify;unix.mode;unix.uid;unix.gid; DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 200 MLST OPTS type;perm;size;modify;unix.mode;unix.uid;unix.gid; DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- PWD DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 257 "/" is the current directory. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- TYPE I DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 200 Type set to: Binary. DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- PASV DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 227 Entering passive mode (172,30,0,3,233,239). DEBUG:pyftpdlib:XXX [user]@192.168.134.1 <- MLSD DEBUG:pyftpdlib:XXX [user]@192.168.134.1 -> 150 File status okay. About to open data connection. DEBUG:pyftpdlib:[debug] call: recv(), err: SysCallError(-1, 'Unexpected EOF') (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True, user='user')>) DEBUG:pyftpdlib:[debug] call: _do_ssl_shutdown(), shutdown completed (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True, user='user')>) DEBUG:pyftpdlib:[debug] call: close() (<MyHandler(id=140240693800144, addr='192.168.134.1:59236', ssl=True, user='user')>) DEBUG:pyftpdlib:[debug] call: close() (<pyftpdlib.handlers.PassiveDTP listening 172.30.0.3:0 at 0x7f8c54be5310>) INFO:pyftpdlib:XXX [user]@192.168.134.1 FTP session closed (disconnect).
I tryed Filezilla with passive and active mode, same output.
Hi have you figured it out? addr='192.168.134.1:59236' and <pyftpdlib.handlers.PassiveDTP listening 172.30.0.3:0 not matching I think this is the problem
os: ubuntu 20.04 (docker image) python: 3.8.2 pyftpdlib version: 1.5.6
my server:
This class works great in ftp (with FTPHandler) and I use the .cert file provided in this repository.
output:
I tryed Filezilla with passive and active mode, same output.