Рейтинг:0

Не удается подключиться по ftp в активном режиме из экземпляра ec2 (как клиент)

флаг cn

Нам нужно использовать ftp в «активном режиме», используя экземпляр Ubuntu ec2 в качестве клиент на удаленном не ec2 ftp сервере.

К сожалению, мы не можем использовать функциональность sftp. И мы можем подключиться в пассивном режиме, но все, что нам нужно, это использовать «активный режим». Я знаю, что активный режим проблематичен на уровне NAT (частные-общедоступные IP-адреса), но есть ли способ преодолеть это?

На клиенте (экземпляр ec2) в активном режиме мы получили:

#ftp 11.11.11.11
Подключено 11.11.11.11.
220 (vsFTPd 3.0.2)
Имя (11.11.11.11:ubuntu): ftpuser
331 Пожалуйста, укажите пароль.
Пароль:
230 Вход в систему выполнен успешно.
Тип удаленной системы — UNIX.
Использование бинарного режима для передачи файлов.
фтп > cd файлы
250 Каталог успешно изменен.
фтп> лс
500 Недопустимая команда порта.
ftp: bind: адрес уже используется

Конфигурация ftp-сервера (не экземпляра ec2) выглядит следующим образом:

слушать = ДА
listen_ipv6 = НЕТ
анонимный_включить = НЕТ
local_enable = ДА
write_enable = ДА
dirmessage_enable = ДА
use_localtime = ДА
xferlog_enable = ДА
connect_from_port_20=ДА
ascii_upload_enable = ДА
ascii_download_enable = ДА
chroot_local_user = ДА
chroot_list_enable = ДА
chroot_list_file=/etc/vsftpd.chroot_list
ls_recurse_enable = ДА
secure_chroot_dir=/var/run/vsftpd/пусто
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 = НЕТ
allow_writeable_chroot = ДА
pasv_enable = ДА
pasv_min_port=10024
pasv_max_port=10048
порт_включить = ДА
pasv_address=11.11.11.11

Входящие и исходящие широко открыты для всего мира!

введите описание изображения здесь введите описание изображения здесь

A.B avatar
флаг cl
A.B
Все это происходит на стороне клиента, так как активный FTP подключается обратно от сервера к клиенту. Если каждый уровень брандмауэра или NAT между клиентом и сервером не реализует [ALG] (https://en.wikipedia.org/wiki/Application-level_gateway) для FTP, это не сработает. Возможно, если вы используете туннель между клиентом и сервером, чтобы избежать NAT...
Appleoddity avatar
флаг ng
Сначала учтите, что экземпляру EC2 назначен частный IP-адрес, но через интернет-шлюз он доступен через общедоступный IP-адрес. Команда PORT включает отправку IP-адреса на удаленный сервер, чтобы использовать его для обратного подключения к клиенту (в активном режиме). Но клиент знает только о своем частном IP-адресе. Так что, по крайней мере, сервер получает недопустимый IP-адрес для подключения (частный IP-адрес экземпляра EC2). Я не уверен, почему возникает конкретная ошибка «используемый адрес», но вам нужно решить основную проблему, прежде чем беспокоиться об этом.
Appleoddity avatar
флаг ng
FTP-клиент должен иметь функцию распознавания общедоступного IP-адреса или настройки IP-адреса, отправленного в команде PORT. В противном случае вы застрянете, делая невероятно неэлегантные хаки, подобные этому: https://serverfault.com/questions/889934/ftp-active-mode-and-nat-with-private-addressing-aws
Appleoddity avatar
флаг ng
Клиент `lftp` поддерживает эту функцию (указание IP-адреса для команды PORT) `ftp:port-ipv4`. Я уверен, что есть и другие. Суровые времена требуют радикальных мер.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.