VSFTPD FileZilla erro GnuTLS -15 (pacote TLS inesperado foi recebido)

3

Eu configurei duas novas caixas CentOS 7 simultaneamente, então as configurações devem ser idênticas, apenas diferentes endereços IP e nomes de host.

Eu instalei o VSFTPD e configurei para portas passivas. Uma caixa se conecta bem, sem problemas, no entanto, a segunda caixa continuamente me lança esse erro:

GnuTLS error -15: An unexpected TLS packet was received.

Aqui está o rastreio de depuração do 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

O erro é sempre logo após a verificação da senha.

Eu sei que o problema NÃO É SELinux, pois eu desabilitei isso. O problema também não é o firewall, já que tentei desativar o Daemon do Firewall (firewalld).

Aqui está a parte relevante do arquivo /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

Eu fiz uma pesquisa no Google, mas não vi nenhum código de erro.

Pensamentos?

    
por Sarah Weinberger 17.03.2016 / 23:09

5 respostas

3

Estou postando esta resposta na esperança de que possa ajudar alguém no futuro, possivelmente eu, enquanto sofria a solução desse problema.

Eu não tinha local_root no arquivo /etc/vsftpd/vsftpd.conf definido corretamente. A configuração apontava para uma pasta que não existia.

O que através de mim foi que eu vi a falha no comando senha no FileZilla, então eu pensei que não gostou da senha. O que me levou a pensar na direção certa foi que aproveitei para pesquisar por que não recebia registros detalhados. Eu não recebi registros. Uma vez que comecei a receber logs de depuração, onde vi os protocolos FTP, vi que o servidor FTP disse OK para a senha. Infelizmente, não havia registro de nenhum tipo, mas me deparei com o pensamento de que negociar a raiz local seria o próximo curso de ação após a autenticação da senha. Eu estava certo e isso me levou ao problema.

Aqui está o fragmento de código no arquivo /etc/vsftpd/vsftpd.conf , contendo a raiz local.

# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
#local_root=/mnt/raid1
local_root=/ftproot
#chroot_list_enable=YES
# (default follows)
#chroot_list_file=/etc/vsftpd/chroot_list

Aqui está como eu finalmente liguei o log verboso, embora eu desligue isso agora para economizar espaço em disco e melhorar o desempenho.

# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=NO
log_ftp_protocol=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES

IMHO, eu consideraria o comentário um bug, como xferlog_enable é mais do que o upload e download de arquivos. Essa propriedade também ativa o log. Uma pesquisa do Google prova que log_ftp_protocol=YES requer xferlog_enable=YES .

    
por 18.03.2016 / 17:56
4

Eu tive o mesmo erro após o comando PASS no CENTOS 7. (Erro GnuTLS -15: Um pacote TLS inesperado foi recebido.)

Minha solução é a seguinte:

Eu tive que adicionar o seguinte ao vsftpd.conf:

allow_writeable_chroot=YES

chroot_local_user=YES 
local_root=/ftphome/$USER 
user_sub_token=$USER
    
por 15.08.2016 / 15:23
1

Eu enfrentei exatamente o mesmo erro (erro: erro GnuTLS -15: um pacote TLS inesperado foi recebido) e bati com a cabeça por uma hora, mas descobri que o diretório home dos usuários FTP que estava no volume Gluster não estava montado . O volume e o problema do Gluster montados foram resolvidos.

    
por 13.09.2016 / 20:03
0

Você precisa permitir o chroot gravável no seu arquivo de configuração:

sudo nano /etc/vsftpd.conf

Em seguida, adicione esta linha na parte inferior:

allow_writeable_chroot=YES

E reinicie o serviço:

sudo service vsftpd restart
    
por 25.01.2018 / 12:39
0

Estranhamente, este problema surgiu ao tentar ls após o login.

Descobri que eu tinha desinstalado httpd em favor de nginx e a pasta que estava usando pertencia a apache:apache e o usuário foi removido quando removi httpd . Eu chcon 'd os diretórios para nginx:nginx e, em seguida, substitui o usuário nessas linhas no meu arquivo de configuração: guest_username=nginx nopriv_user=nginx

Espero que isso ajude alguém por aí, porque as mensagens de erro não ajudaram em nada.

    
por 14.11.2018 / 14:30