Jak prawidłowo skonfigurować vsftp tls?

Witam
Bardzo proszę o pomoc w konfiguracji prostego serwera ftp z obsługa tls mianowicie korzystałem z dostępnych poradników w sieci i nie mogę się pozbyć błędów. filezilla wyświetla między innymi taki błąd
Błąd GnuTLS -15: An unexpected TLS packet was received.
Bez szyfrowania wszystko działa prawidłowo, certyfikat jest wygenerowany lokalnie a konfiguracja wygląda tak jak poniżej.

listen=YES
listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES
pasv_min_port=40000
pasv_max_port=50000
require_ssl_reuse=NO
debug_ssl=YES
ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

Przestaw listen na domyślne NO, lub usuń tą linię.
listen=NO
Resztę zostaw, mimo że zawsze zaczyna się od ustawień minimalnych.

Po tej zmianie w ogóle serwer nie działa.

Jaki masz system, w Debianie i pochodnych jak masz sudo zrób tak.

sudo service vsftpd start # lub restart

No i tak jak próbowałeś zaloguj się przez filezilla.

zrestartowałem usługe po zmianie konfiguracji i wtedy nie działa po za tym nie wiem jaka jest różnica między standalone a inetd. system to ubuntu 16,04

Chyba za dużo wyciąłeś z konfiguracji, zobacz na takiej.

listen=NO
listen_ipv6=YES

dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem  #<= błąd

listen_port=21
anonymous_enable=NO
local_enable=YES
write_enable=YES

require_ssl_reuse=NO

ssl_enable=YES
ssl_tlsv1=YES
ssl_sslv2=NO
ssl_sslv3=NO

Sprawdzę czy czegoś ja nie wyciąłem z tego minimum. Sprawdzałem działa, oczywiście z innymi moimi certyfikatami. Można jeszcze parę wywalić (np. listen_port=21 to jest domyślny i tak) i później układać dla siebie.

https://www.systutorials.com/docs/linux/man/5-vsftpd.conf/

A masz błąd w rsa_private_key_file musi być key np.

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/ssl_jakieś.key

Nie widziałem tego bo brałem swoje.

Korzystałem z tego poradnika https://www.tecmint.com/secure-ftp-server-using-ssl-tls-on-ubuntu/

zmiana z listen z yes na no sprawia że serwer w ogóle nie działa.

Przecież w tym poradniku nie ma nic o zmianie w listen, ja na Debianie mam trochę inaczej z certyfikatami, ale sprawdzałem ten twój tutek i działa prawidłowo na Debianie. Z tą różnicą do tego tutka, że ja mam plik konfiguracji w /etc/vsftpd.conf, a nie /etc/vsftpd/vsftpd.conf.

tłumacze że jeśli nie wpiszę listen=YES serwer w ogóle nie działa.

Od powtarzania błędów w konfiguracji vsftpd jeszcze nikt nie umarł. Zrób tak utwórz użytkownika na którego chcesz się zalogować przez ftp, może już masz to zrobione. Skopiuj swoją konfiguracje z /etc/vsftpd.conf gdzieś i zastęp to tym minimalistycznym wpisem z wymuszeniem logowania po haśle, bez dostępu dla anonimowych. Tylko to, nic innego tam ma nie być.

listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
anonymous_enable=NO
local_enable=YES

Zrestartuj vsftpd i zaloguj się do ftp, może być przez przeglądarkę, jak przez filezille to ustaw by można się logować bez TLS-a. Jeżeli robiłeś coś z firewall-em i nie możesz się połączyć to wyłącz i oczyść filtrowanie pakietów na czas testów. Jak się połączysz to rozwijaj ustawienia dalej.

bez tls działa prawidłowo, korzystam z konta w linuxie a nie dedykowanego dla ftp.

Ftp to nie jest najbezpieczniejsza metoda, zwłaszcza do łączenia się na główne konto, lepiej się łączyć przez Secure Shell, ale to nie moja sprawa.

No to nie muszę wspominać że listen=NO jest wartością domyślną i w ogóle może jej nie być.

Do tego co było na górze dodaj to co jest pod ustawienia TLS, jak ma być prawo do zapisu to dodać jeszcze write_enable=YES:
Całość ma wygladać tak, z zahaszowanymi uprawnieniami do zapisu:

listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
anonymous_enable=NO
local_enable=YES

#write_enable=YES

#ustawienia TLS, katalog i nazwa dla ułatwienia jak u ciebie
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

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

Jakby były jeszcze problemy skasować stary certyfikat i wygenerować nowy zgodnie z opisem w tutku. Restart vsftpd i sprawdzić w filezill-y. Jak działa można dodawać inne opcje, wszystko jest opisane w linku co podałem.

wiem że najprościej korzystać z ssh bo nie trzeba nic konfigurować ale po prostu chcę wiedzieć jak postawić ftp, właśnie testuje kropka w kropkę twoją konfigurację, zobaczymy czy będzie ok. Chciałbym tylko wiedzieć co powoduje ten błąd i dlaczego zmiana opcji listen=yes na no ma to zmienić? dam znać czy wszytko jest ok jak na razie zauważyłem tylko taki komunikat na twojej konfiguracji Status: Odłączono od serwera

wciąż to samo konfiguracja dokładnie jak podałeś.

Musi być program obsługujący ftp z TLS, jak np. filezilla.

Status: Odłączono od serwera: ECONNABORTED - Połączenie zamknięte

Wygeneruj nowy certyfikat, tak jak pisałem i zrestartuj vsftpd. Dla porządku podje.

sudo rm /etc/ssl/private/vsftpd.pem

sudo openssl req -x509 -nodes -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem -days 365 -newkey rsa:2048

A ja sprawdzę czy się nie pomyliłem.

Wszystko jest dobrze z konfiguracją, przez filezill-e nie ma problemu z połączeniem z serwerem.

Zrobiłem dokładnie jak napisałeś i dalej to samo. korzystam z filezilla

Czy ta filezilla jest na Linuksie, czy ty łączysz się z innego komputera.

Pobrałem teraz livecd Ubuntu 16.04, takie samo jak ty masz i wszystko działa prawidłowo. Wytnij ustawienia z TLS i restartuj vsftpd sprawdź czy działa jeszcze na tych prostych ustawieniach. Plik konfiguracyjny /etc/vsftpd.conf widzę że w Ubuntu jest w tym samym miejscu jak u mnie w Debianie, a nie jak w tutku. Jak uruchomisz z TLS na nowo to sprawdź czy otwiera port 21, jak otwiera to zobacz czy jest dostęp do certyfikatu, najlepiej na innym komputerze z Linuksem, to będzie tak.

openssl s_client -connect adresIP:21 -starttls ftp

Uwaga na adresIP tam oczywiście adres z tego serwera.

CONNECTED(00000003)
depth=0 C = PL, ST = FTPS, L = FTPS, O = FTPS KIMSUFI
verify error:num=18:self signed certificate
verify return:1
depth=0 C = PL, ST = FTPS, L = FTPS, O = FTPS KIMSUFI
verify return:1
---
Certificate chain
 0 s:/C=PL/ST=FTPS/L=FTPS/O=FTPS KIMSUFI
   i:/C=PL/ST=FTPS/L=FTPS/O=FTPS KIMSUFI
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIDVzCCAj+gAwIBAgIJANWNXP9r0N8kMA0GCSqGSIb3DQEBCwUAMEIxCzAJBgNV
BAYTAlBMMQ0wCwYDVQQIDARGVFBTMQ0wCwYDVQQHDARGVFBTMRUwEwYDVQQKDAxG
VFBTIEtJTVNVRkkwHhcNMTgxMTI4MjAzMTQyWhcNMTkxMTI4MjAzMTQyWjBCMQsw
CQYDVQQGEwJQTDENMAsGA1UECAwERlRQUzENMAsGA1UEBwwERlRQUzEVMBMGA1UE
CgwMRlRQUyBLSU1TVUZJMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA
tOepeCbSreZR78LfCr1VVmu8yLflbBJWkXodUOYMZmxL5q6Hcz0vyEeIdYBYuEeB
sV51vZbD5pduU4wtpxog/Nxw8NnsfU1fn29gDB8opX67nvITt+myb715l61dmAz9
8tnQygTA3+DPv/qohrgn608ELdQBMnwZe37i5TdGUiJNLTPVq0aXiQxFUZx3e7CA
FmJbs/GAWXeYiAGhY+jJ5tnV9DPfo2TK0i/4r8+LI3Kdfql82KteT8BqwUfKHy3C
p30muuJmreKCEPNyGPJuuJLtivXWigL8UICSu/E015hvEG+3/DmVFv5mdDjcKFtO
wADXH0M1chFR0Nwi1gaNnwIDAQABo1AwTjAdBgNVHQ4EFgQUwkSBvqEH3gvvq9xk
XoPWAcKPru4wHwYDVR0jBBgwFoAUwkSBvqEH3gvvq9xkXoPWAcKPru4wDAYDVR0T
BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAQEAbQsedirzo40d4XfSb9lNTn9pFodB
qPqXTycUSFhxno/FJ4kjs8LGjziqQ1qsPZbF5dQaQXVEQr25fMsGZuewVHuHwqP9
Gd+sx0Ix+a8JEBjM8zx/edQkMXRVo3qimSh9S9WaHJckgw350e4idqdQlYISCHdC
sS3G4+es0OYTo34AVg3UQzpxaGj1lgqGwGzHgU5fGpuDLEBI0HyzPgUJrgZiLMOe
T4nMnVLXMsGtMcslIl0z5p3Jq4ySu8Snm5IGhd37Yy6Q62nyt5QVpbRnw+UnA5NQ
/ZfgBXZnFwQ0xVMm0apAcSCWrtmWB4MP2mG1ChGKxQcaRP5vdEBUQNL1QA==
-----END CERTIFICATE-----
subject=/C=PL/ST=FTPS/L=FTPS/O=FTPS KIMSUFI
issuer=/C=PL/ST=FTPS/L=FTPS/O=FTPS KIMSUFI
---
No client certificate CA names sent
Client Certificate Types: RSA sign, DSA sign, ECDSA sign
Requested Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SHA384:DS                                                     A+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+SHA224:E                                                     CDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1
Shared Requested Signature Algorithms: RSA+SHA512:DSA+SHA512:ECDSA+SHA512:RSA+SH                                                     A384:DSA+SHA384:ECDSA+SHA384:RSA+SHA256:DSA+SHA256:ECDSA+SHA256:RSA+SHA224:DSA+S                                                     HA224:ECDSA+SHA224:RSA+SHA1:DSA+SHA1:ECDSA+SHA1
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 1606 bytes and written 324 bytes
Verification error: self signed certificate
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES256-GCM-SHA384
    Session-ID: C60040D4C0B961D5D72C53CED748DFBCD85BABA52227EC41FE1D92F44E19FF57
    Session-ID-ctx:
    Master-Key: 2F3FC9FCEEEDB0E760B9CF8DB1921F951BEEA883AC23E438B37AE34F91DA4552                                                     A20A476C0B488E15F83728D49791122A
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    TLS session ticket lifetime hint: 300 (seconds)
    TLS session ticket:
    0000 - 0f 37 2f 8d 2a 76 ff cf-bb eb 8a 94 71 0c 45 e7   .7/.*v......q.E.
    0010 - 31 ca 06 c3 d3 94 e9 6b-64 13 46 cd 21 d9 5c ce   1......kd.F.!.\.
    0020 - f2 88 cb 96 40 af 31 ea-d0 39 ab 53 0d c6 8c a7   ....@.1..9.S....
    0030 - 03 70 3b 8d f8 01 12 6f-11 f8 7b 33 14 d6 7b 24   .p;....o..{3..{$
    0040 - 55 fd 36 dc 44 c4 de 43-28 16 97 97 50 57 c1 52   U.6.D..C(...PW.R
    0050 - 4a e9 c3 51 93 1f ed 02-69 13 f5 eb 1a 6c b0 21   J..Q....i....l.!
    0060 - c7 e5 8e 6b 61 24 2f a5-de 38 34 31 69 52 30 8c   ...ka$/..841iR0.
    0070 - 0e 38 2a f2 84 ce 25 a5-b8 4b 75 0a 15 18 18 91   .8*...%..Ku.....
    0080 - bb bb 55 eb 87 bb b0 ff-2e b8 fd 3c f3 5f 0b a6   ..U........<._..
    0090 - 6f ea 73 7f 15 cf f1 fd-9c 4d 83 cb c3 c3 76 e0   o.s......M....v.

    Start Time: 1543439662
    Timeout   : 7200 (sec)
    Verify return code: 18 (self signed certificate)
    Extended master secret: no
---
220 (vsFTPd 3.0.3)