The client logs when control channel netstat -tulpan | grep curl * subject: CN=www C=11 ST=aaa L=bbb O=ddd OU=aaa start date: 00:13:54 GMT * SSLv3, TLS change cipher, Client hello (1): * SSLv3, TLS handshake, Server hello (2): * SSLv3, TLS handshake, Client hello (1): * successfully set certificate verify locations: * Doing the SSL/TLS handshake on the data stream % Total % Received % Xferd Average Speed Time Time Time CurrentĠ 0 0 0 0 0 0 0 -:-:-:-:-:-:- 0connected These are the client logs from the start of downloading until the control session is curl -v -limit-rate 10K -o file.txt -u rado:pass -k -ftp-ssl => success : connection has been closed ! received child signal, checking results. all done, sending USR1 signal to parent and exiting sending RST to remote host as well with SeqNum setting up filter to sniff ACK on for 5 seconds Logs when the control connection is being closed and netstat -tulpan | grep curl How to forcibly kill an established TCP connection in Linux. To verify the scenario we are going to setup a simple test scenario like inĭoes IPv4 based FTPS server supports EPSV FTP protocol extension blog .Īs the curl client by default is not closing the control connections (what is a correct behavior that we will discuss at the end of this blog) we are going to use an active method to close an established tcp session described here What happens to a file transfer if the control session is terminated by the client. The client started a new data session to download a large file from the server or is uploading a file using the passive mode. We assume that we were able to established a successful FTPS base session between a client and server. It is importantĪs in the default FTP configuration the control as well as the data channel use clear text to exchange commands There are couple of extensions added to standard FTP protocol to make it secure.