Назад | Перейти на главную страницу

Невозможно получить доступ к vsftpd с общедоступного IP-адреса

Я пытаюсь настроить vsftpd на ubuntu

Я установил успешно установленный vsftpd

Мои сети работают так

Сеть LAN на хосте (localhost, 127.0.0.1, 192.168.1.105) -> подключается к маршрутизатору (192.168.1.1 (LAN) -> 10.255.1.204 (WAN)) -> подключается к интернет-провайдеру (10.255.1.1 -> DNS -> 106.34.26.78 (публичный IP)). (Примечание: IP-адреса используются только для иллюстрации, а не настоящие)

Я включил перенаправление портов на моем маршрутизаторе, который перенаправляет все запросы на порт 21 на мою локальную машину, на которой работает vsftp deamon.

Я могу получить доступ к ftp со своих внутренних адресов LAN и интерфейса, который подключается к интернет-провайдеру (например, 10.255.1.204). Но я не могу получить к нему доступ с моего общедоступного IP-адреса (например, 106.34.26.78), я получаю следующее сообщение:

Status: Connecting to 106.34.26.78:21...
Status: Connection established, waiting for welcome message...
Response:   220 (vsFTPd 3.0.2)
Command:    AUTH TLS
Error:  Connection timed out after 20 seconds of inactivity
Error:  Could not connect to server

Мой vsftpd.conf (/etc/vsftpd.conf)

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_root=/var/www
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES

#virutal user settings
user_config_dir=/etc/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd

Мой vsftpd (/etc/pam.d/vsftpd)

auth required pam_pwdfile.so pwdfile /etc/vsftpd/ftpd.passwd
account required pam_permit.so

Голову ломаю уже месяц, статей нашла мало, но они не были связаны с доступом по публичному IP.

РЕДАКТИРОВАТЬ

Я также включил переадресацию портов на 20-м порту.

Из вашей сетевой настройки ваша проблема может заключаться в шпилька NAT

Кроме того, вы, похоже, пытаетесь согласовать соединение TLS с AUTTH TLS команда, но у вас нет ссылок, чтобы включить поддержку TLS в вашем vsftpd.conf

Хотя для другого FTP-сервера также прочтите этот ответ о потенциальных проблемах с FTP через TLS и NAT.

Я наконец решил эту проблему, включив ssl и прокомментировав несколько строк в моем vsftpd.conf, чтобы разрешить пользователям системы вместо тех, которые определены с помощью pam.d.

Теперь я могу получить доступ к sftp (и я сильно сомневаюсь, что мой интернет-провайдер блокирует доступ 21, в любом случае, как это дало мне более безопасный доступ), из внешней сети с помощью следующего /etc/vsftpd.conf

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_root=/var/www
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES

#virutal user settings
user_config_dir=/etc/vsftpd_user_conf
#guest_enable=YES
virtual_use_local_privs=YES
#pam_service_name=vsftpd
#nopriv_user=vsftpd
#guest_username=vsftpd

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

require_ssl_reuse=NO
ssl_ciphers=HIGH

start on (filesystem
        and net-device-up IFACE!=lo)

Надеюсь, это поможет любому, кто столкнется с таким же в будущем.