Discussion:
Passive FTPS - nie działa z zewnątrz
(Wiadomość utworzona zbyt dawno temu. Odpowiedź niemożliwa.)
Piotr C
2023-08-25 06:12:31 UTC
Permalink
Niebawem ćwierć wieku minie jak bawię się sieciami, a tu taki prosty problem... Domowy serwerek ftp. Serwer to CentOS, na nim vsftpd skonfigurowany tak, że passive jest enabled, porty to 9090 - 9100. Na routerze przekierowane 21 i owe porty. Z sieci lokalnej łączy się bez problemu, również na IP publiczny (na 100% nie pamiętam ale chyba poł. przychodzą ze 192.168.0.1 czyli adresu routera). No i teraz z zewnątrz jest problem. Active ftp działa - ale no wiadomo, dzisiaj już tylko z otwartych serwerów czyli np. backup z home.pl przechodzi. Passive ftp działa ale tylko w nieszyfrowanym ftp. Czyli porty przekierowane i działają. Ale passive ftps wygląda tak, że cała negocjacja przechodzi, LIST trwa dość długo po czym otwiera się puste okno (używam TotalCmd). Niczego nie daje się wgrać. Poniżej końcówka logów z totalcmd oraz config. Co to może być?

Connect ok!
PWD
257 "/"
Get directory
TYPE A
200 Switching to ASCII mode.
PASV
227 Entering Passive Mode (192,168,0,200,35,136).
Server reports local IP -> Redirect to: 184.103.161.117
Connected to PASV port
LIST
Data handshake failed: -2146893052
ABOR

# cat vsftpd.conf
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
log_ftp_protocol=YES
connect_from_port_20=YES
xferlog_std_format=NO
chroot_local_user=YES
allow_writeable_chroot=YES
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
listen_ipv6=NO
pasv_enable=YES
port_enable=YES
#pasv_address=mabanana.com
#pasv_addr_resolve=YES
pasv_min_port=9090
pasv_max_port=9100

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
userlist_deny=NO

rsa_cert_file=/etc/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/vsftpd/vsftpd.pem
ssl_enable=YES
allow_anon_ssl=YES
force_local_data_ssl=NO
force_local_logins_ssl=NO
require_ssl_reuse=NO
reverse_lookup_enable=NO
Arnold Ziffel
2023-08-27 18:37:40 UTC
Permalink
Post by Piotr C
Data handshake failed: -2146893052
Szesnastkowo 0x80090304, zgodnie z tym:

https://learn.microsoft.com/en-us/windows/win32/secauthn/schannel-error-codes-for-tls-and-ssl-alerts

SEC_E_INTERNAL_ERROR
0x80090304

Wiele nie mówi :)
Post by Piotr C
require_ssl_reuse=NO
Spróbuj zmienić na YES (ale strzelam).
--
Dwa koguty chodzą po mieście i strasznie się nudzą. Jeden z nich w
końcu mówi:
- Chodź do garmażerii pooglądamy sobie gole kury.
Piotr C
2023-08-29 05:38:13 UTC
Permalink
Post by Arnold Ziffel
SEC_E_INTERNAL_ERROR
0x80090304
Wiele nie mówi :)
Post by Piotr C
require_ssl_reuse=NO
Wydawało mi się że strzał w dzisiątke. Zwłaszcza, że faktycznie certyfikat miałem sprzed 2 lat (samodzielnie generowany) i możliwe że wyekspirował, nie pamiętam na ile był. Zrobiłem nowy i niestety nie pomogło. ssl_reuse jest w ogóle bardziej wymagający i TotalCommander podał błąd:
522 SSL connection failed; session reuse required: see require_ssl_reuse option in vsftpd.conf man page

No więc mam nowy certyfikat i stary problem - łączy, ale LIST zajmuje dużo czasu i w końcu zwraca błąd. Dalej szedłbym tropem certyfikatu, gdyby nie to, że przecież po sieci lokalnej działa... No nic, będe eksperymentować dalej.

P.
Piotr C
2023-08-29 05:44:36 UTC
Permalink
Post by Piotr C
No więc mam nowy certyfikat i stary problem - łączy, ale LIST zajmuje dużo czasu i w końcu zwraca błąd. Dalej szedłbym tropem certyfikatu, gdyby nie to, że przecież po sieci lokalnej działa... No nic, będe eksperymentować dalej.
Dobra, naprawione! Poniekąd, bo pytanie dalej zasadne.
- testowałem z sieci lokalnej ale przez ProtonVPN
- natomiast jak przełączyłem się na sieć z telefonu komórkowego, to pięknie poszło
Teraz powstaje pytanie, czy ProtonVPN coś próbuje grzebać z certyfikatami czy po prostu nie działa bo nie działa (a powinno - wszakże mówimy o passive FTP więc łaski nie robi).

P.
Arnold Ziffel
2023-09-01 23:34:27 UTC
Permalink
Post by Piotr C
522 SSL connection failed; session reuse required: see require_ssl_reuse
option in vsftpd.conf man page
To błąd z vsftpd. TC tylko go wyświetlił.
Post by Piotr C
Dobra, naprawione! Poniekąd, bo pytanie dalej zasadne.
- testowałem z sieci lokalnej ale przez ProtonVPN
A widzisz, tego nie napisałeś :)
Post by Piotr C
Teraz powstaje pytanie, czy ProtonVPN coś próbuje grzebać z
certyfikatami czy po prostu nie działa bo nie działa (a powinno -
wszakże mówimy o passive FTP więc łaski nie robi).
Nie zdziwiłbym się. Masz tam openssl w wersji konsolowej? Pod Linuksem
jest domyślnie, na Windowsie trzeba zainstalować.

Zrób:

openssl s_client -connect host:port -showcerts

To pokaże certyfikaty, które dostajesz. Zrób to przez komórkę i przez
Protona i porównaj je.

Możliwe, że Proton łączy się w twoim imieniu po SSLu, rozszyfrowuje sobie
połączenie, robi jakieś sobie tylko znane cuda, a tobie szyfruje
połączenie już jakimś swoim certyfikatem (którego CA pewnie musi być
zainstalowane w systemie). Tak zgaduję.

Możliwe, że dla https (99,9% użytkowników) to działa, a dla ftps coś się
sypie.

Ale to tylko teoria, nie znam Protona...
--
Siedząc w urzędzie jakiś czarny koleś spytał się mnie:
- Hej, jaki masz numerek?
- My, biali, nie mamy numerów. Mamy imiona.
Kontynuuj czytanie narkive:
Loading...