1

Кажется, у меня проблема с конфигурацией, и мне нужна помощь.

У меня есть веб-сервер под Debian Jessie с установленным (и обновленным) чистым ftpd-mysql.

Я могу подключиться к серверу через FTP, когда он находится в активном режиме, но когда я прошу перейти в пассивный режим, у меня истекло время ожидания операции:

ftp ftp.***.com
Connected to ftp.***.com.
220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
220-You are user number 1 of 50 allowed.
220-Local time is now 12:31. Server port: 21.
220-This is a private system - No anonymous login
220-IPv6 connections are also welcome on this server.
220 You will be disconnected after 15 minutes of inactivity.
Name (ftp.***.com:tilotiti): 
331 User tilotiti OK. Password required
Password: 
230 OK. Current restricted directory is /
ftp> ls
200 PORT command successful
150 Connecting to port 50405
drwxr-xr-x    2 2001       ftp              4096 Dec 21 11:12 test1
drwxrwxrwx    2 2001       ftp              4096 Apr 28  2017 test2
226-Options: -l 
226 2 matches total
ftp> passive
Passive mode on.
ftp> ls
227 Entering Passive Mode (10,3,98,75,127,233)
ftp: connect: Operation timed out
ftp> 

Я размещен на скайвей и проверил, что там, где нет правил, настроенных как сетевой брандмауэр.

Я попытался настроить некоторые порты пассивного диапазона, создав файл /etc /pure-ftpd /conf /PassivePortRange:

30000 50000

Я проверил, что мой серверный брандмауэр не блокирует соединение:

$ iptables -L
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination

И я перезагрузил сервер, чтобы убедиться, что новая конфигурация была принята.

Но это не работает, я совершенно потерян. Мне нужна эта пассивная связь.

Кто-нибудь может мне помочь, пожалуйста?

Большое спасибо.

1 ответ1

1

227 Entering Passive Mode (10,3,98,75,127,233)

Означает, что сервер ожидает входящего подключения к порту 10.3.98.75 32745. Конечно, это потому, что сервер NATed и (FTP-сервер) не знает об этом.

Вам все еще нужно сделать две (из 3) вещи:

  • установите FTP-сервер так, чтобы он "публиковал" известный общедоступный IP-адрес вместо своего частного IP-адреса. Вот как это делается из документации по чисто ftpd:

    - '-P <ip address or host name>': Force the specified IP address in reply to a PASV/EPSV/SPSV command. If the server is behind a masquerading (NAT) box that doesn't properly handle stateful FTP masquerading, put the ip address of that box here. If you have a dynamic IP addBindress, you can put the public host name of your gateway, that will be resolved every time a new client will connect.

Debian(?) Конфигурация оболочки для него выглядит как ForcePassiveIP <ip address or host name>

  • установите для него использование только определенного диапазона портов (уже сделано, вы выбрали 30000:50000). Диапазон, который не перекрывает динамический диапазон портов, как видно из /proc/sys/net/ipv4/ip_local_port_range должен быть выбран для повышения безопасности.
  • Измените настройки брандмауэра /nat Scaleway, чтобы разрешить переадресацию портов для диапазона портов TCP на предыдущем шаге (здесь может иметь значение безопасность, о которой я упоминал выше). Извините, я не знаю, где найти конкретную документацию по этому поводу. Я даже не понял, какие конфигурации сети доступны на Scaleway. Если на хосте фактически есть два IP-адреса, один из которых 10.3.98.75, другой общедоступный, то вместо использования ForcePassiveIP будет достаточно опции Bind (=> -S ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .