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