Nastavil jsem dva nové boxy CentOS 7 současně, takže konfigurace by měly být totožné, jen různé IP adresy a názvy hostitelů.
Nainstaloval jsem VSFTPD a nakonfiguroval pro pasivní porty. Jeden box se připojuje dobře, žádné problémy, ale druhý box mi neustále hází tuto chybu:
GnuTLS error -15: An unexpected TLS packet was received.
Zde je trasování ladění FileZilla:
Status: Connecting to 192.168.20.68:21...
Status: Connection established, waiting for welcome message...
Trace:  CFtpControlSocket::OnReceive()
Response:   220 (vsFTPd 3.0.2)
Trace:  CFtpControlSocket::SendNextCommand()
Command:    AUTH TLS
Trace:  CFtpControlSocket::OnReceive()
Response:   234 Proceed with negotiation.
Status: Initializing TLS...
Trace:  CTlsSocket::Handshake()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnSend()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::ContinueHandshake()
Trace:  TLS Handshake successful
Trace:  Protocol: TLS1.2, Key exchange: ECDHE-RSA, Cipher: AES-256-GCM, MAC: AEAD
Status: Verifying certificate...
Status: TLS connection established.
Trace:  CFtpControlSocket::SendNextCommand()
Command:    USER datamover
Trace:  CTlsSocket::OnRead()
Trace:  CFtpControlSocket::OnReceive()
Response:   331 Please specify the password.
Trace:  CFtpControlSocket::SendNextCommand()
Command:    PASS *******
Trace:  CTlsSocket::OnRead()
Trace:  CTlsSocket::Failure(-15)
Error:  GnuTLS error -15: An unexpected TLS packet was received.
Trace:  CRealControlSocket::OnClose(106)
Trace:  CControlSocket::DoClose(64)
Trace:  CFtpControlSocket::ResetOperation(66)
Trace:  CControlSocket::ResetOperation(66)
Error:  Could not connect to server
Chyba je vždy hned po kontrole hesla.
Vím, že problém NENÍ SELinux, protože jsem to zakázal. Problém také není v firewallu, protože jsem zkoušel deaktivovat Firewall Daemon (firewalld).
Zde je relevantní část souboru /etc/vsftpd/vsftpd.conf.
listen=YES
listen_ipv6=NO
pasv_enable=YES
pasv_max_port=10100
pasv_min_port=10090
pasv_address=192.168.20.88
ssl_enable=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_ciphers=HIGH
require_ssl_reuse=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
Provedl jsem vyhledávání Google, ale nenašel jsem žádných 15 chybových kódů.
Myšlenky?
Přijatá odpověď:
Měl jsem stejnou chybu po příkazu PASS v CENTOS 7. (Chyba GnuTLS -15:Byl přijat neočekávaný paket TLS.)
Moje řešení je následující:
Do vsftpd.conf jsem musel přidat následující:
allow_writeable_chroot=YES
chroot_local_user=YES 
local_root=/ftphome/$USER 
user_sub_token=$USER