Puncte:0

Nu se poate ftp în modul activ din instanța ec2 (ca client)

drapel cn

Trebuie să facem ftp pe „modul activ” folosind instanța Ubuntu ec2 ca a client pe un server ftp la distanță nu ec2.

Din păcate, nu putem folosi funcționalitatea sftp. Și ne putem conecta folosind modul pasiv, dar tot ce avem nevoie este să folosim „modul activ”. Știu că modul activ este problematic la nivel NAT (IP-uri private-publice), dar există o modalitate de a depăși asta?

Pe client (instanță ec2), folosind modul activ, am primit:

#ftp 11.11.11.11
Conectat la 11.11.11.11.
220 (vsFTPd 3.0.2)
Nume (11.11.11.11:ubuntu): ftpuser
331 Vă rugăm să specificați parola.
Parola:
230 Conectare reușită.
Tipul de sistem la distanță este UNIX.
Utilizarea modului binar pentru a transfera fișiere.
ftp> fișiere cd
250 Directorul a fost schimbat cu succes.
ftp> ls
500 Comanda PORT ilegală.
ftp: bind: Adresă deja utilizată

Configurația serverului ftp (nu instanța ec2) este următoarea:

asculta=DA
listen_ipv6=NU
anonymous_enable=NU
local_enable=DA
write_enable=DA
dirmessage_enable=DA
use_localtime=DA
xferlog_enable=DA
connect_from_port_20=DA
ascii_upload_enable=DA
ascii_download_enable=DA
chroot_local_user=DA
chroot_list_enable=DA
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable=DA
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=ftp
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
seccomp_sandbox=NU
allow_writeable_chroot=DA
pasv_enable=DA
pasv_min_port=10024
pasv_max_port=10048
port_enable=DA
pasv_address=11.11.11.11

Inbound and Outbound este larg deschis către lume!

introduceți descrierea imaginii aici introduceți descrierea imaginii aici

A.B avatar
drapel cl
A.B
Totul se întâmplă pe partea clientului, deoarece FTP-ul activ se conectează înapoi de la server la client. Dacă fiecare strat de firewall sau NAT între client și server nu implementează un [ALG](https://en.wikipedia.org/wiki/Application-level_gateway) pentru FTP, nu va funcționa. Poate dacă utilizați un tunel între client și server pentru a evita NAT...
Appleoddity avatar
drapel ng
Luați în considerare mai întâi că o instanță EC2 are o adresă IP privată atribuită, dar printr-un gateway de internet este accesibil printr-o adresă IP publică. Comanda PORT include trimiterea unei adrese IP către serverul de la distanță pentru a o utiliza pentru a se conecta înapoi la client (în modul activ). Dar, clientul știe doar despre adresa sa IP privată. Deci, cel puțin, serverul primește o adresă IP nevalidă la care să se conecteze (IP-ul privat al instanței EC2). Nu sunt sigur de ce eroarea „adresă în uz” anume, dar trebuie să rezolvați problema principală înainte de a vă îngrijora.
Appleoddity avatar
drapel ng
Clientul FTP trebuie să aibă o caracteristică care să recunoască adresa IP publică sau să configureze adresa IP trimisă în comanda PORT. În caz contrar, ești blocat să faci hack-uri incredibil de neelegante ca acesta: https://serverfault.com/questions/889934/ftp-active-mode-and-nat-with-private-addressing-aws
Appleoddity avatar
drapel ng
Clientul `lftp` acceptă această caracteristică (specificând adresa IP pentru comanda PORT) `ftp:port-ipv4`. Sunt sigur că mai sunt și alții. Vremurile drastice necesită măsuri drastice.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.