Разное

Активный и пассивный режим ftp: 🚼 Активный FTP и пассивный FTP сравнение и отличие — Information Security Squad

Содержание

🚼 Активный FTP и пассивный FTP сравнение и отличие — Information Security Squad

Вступление

Один из наиболее часто встречающихся вопросов при работе с брандмауэрами и другими проблемами подключения к Интернету — это различие между активным и пассивным FTP (протокол передачи файлов) и как лучше всего поддерживать один или оба из них.

Надеемся, что следующая статья поможет разобраться в путанице, связанной с поддержкой FTP в среде с межсетевым экраном.

Этот пост содержит примеры как активных, так и пассивных сеансов FTP из командной строки.

Эти примеры сессий должны помочь немного прояснить ситуацию.

Они также дают хорошую картину того, что происходит за кулисами во время сеанса FTP. Теперь перейдем к информации по теме…

Основы

FTP является исключительно службой на основе TCP.

Для FTP нет компонента UDP.

FTP является необычной службой, в которой используются два порта: порт данных и порт команды (также известный как порт управления).

Традиционно это порт 21 для командного порта и порт 20 для порта данных.

Однако возникает путаница, когда мы обнаруживаем, что в зависимости от режима порт данных не всегда находится на порте 20.

Активный FTP

В активном режиме FTP клиент подключается от случайного непривилегированного порта (N> 1024) к командному порту FTP-сервера, а именно 21.

Затем клиент начинает прослушивать порт N + 1 и отправляет команду FTP PORT N + 1 на FTP. сервер.

Затем сервер подключится к указанному клиенту порту данных через локальный порт данных, который является портом 20.

С точки зрения серверного брандмауэра, для поддержки активного режима FTP необходимо открыть следующие каналы связи:

  • Порт FTP-сервера 21 отовсюду (Клиент инициирует соединение)
    Порт 21 сервера FTP для портов> 1024 (сервер отвечает на порт управления клиента)
  • Порт 20 сервера FTP для портов> 1024 (сервер инициирует подключение данных к порту данных клиента)
  • Порт 20 сервера FTP от портов> 1024 (Клиент отправляет ACK на порт данных сервера)

При продолжительном соединение все выглядит следующим образом:

  • С клиентского порта 1026 (Cmd) на серверный порт 21 (Cmd)
  • С порта сервера 21 (Cmd) на порт клиента 1026 (Cmd)
  • С порта сервера 20 (данные) на порт клиента 1027 (данные)
  • С клиентского порта 1027 (данные) на серверный порт 20 (данные)

На шаге 1 командный порт клиента связывается с командным портом сервера и отправляет команду PORT 1027.

Затем сервер отправляет ACK обратно на командный порт клиента на шаге 2.

На шаге 3 сервер инициирует подключение через свой локальный порт данных к порту данных клиент указал ранее.

Наконец, клиент отправляет ACK обратно, как показано на шаге 4.

Основная проблема с активным режимом FTP на самом деле ложится на клиентскую сторону.

FTP-клиент не устанавливает фактическое соединение с портом данных сервера — он просто сообщает серверу, какой порт он прослушивает, и сервер снова подключается к указанному порту на клиенте.

Со стороны брандмауэра на стороне клиента это внешняя система, инициирующая соединение с внутренним клиентом, что обычно блокируется.

Пример активного FTP

Ниже приведен пример активного сеанса FTP.

Изменены только имена серверов, IP-адреса и имена пользователей.

В этом примере сеанс FTP инициируется от user01 (192.0.0.1), блока Solaris, на котором работает стандартный клиент командной строки FTP, к dest_serv (192.0.0.2), блока Solaris, на котором запущен solaris [TM] 9 ftpd.

Флаг отладки (-d) используется с клиентом FTP, чтобы показать, что происходит за кулисами.

Все, что выделено курсивом, является результатом отладки, который показывает фактические команды FTP, отправляемые на сервер, и ответы, генерируемые этими командами.

Есть несколько интересных вещей, чтобы рассмотреть об этом диалоге.

Обратите внимание, что при вводе команды PORT указывается порт в клиентской (192.0.0.1) системе, а не на сервере.

Мы увидим противоположное поведение, когда будем использовать пассивный FTP.

Пока мы находимся на этой теме, быстрое примечание о формате команды PORT.

Как видно из приведенного ниже примера, он отформатирован как последовательность из шести чисел, разделенных запятыми.

Первые четыре октета являются IP-адресом, а вторые два октета составляют порт, который будет использоваться для подключения к данным.

Чтобы найти действительный порт, умножьте пятый октет на 256, а затем добавьте шестой октет к сумме.

Таким образом, в приведенном ниже примере номер порта ((256 * 188) + 231) или 48359.

Быстрая проверка с помощью netstat должна подтвердить эту информацию.

$ ftp -d dest_serv
Connected to dest_serv.
220 dest_serv FTP server ready.
Name (dest_serv:boqueron): root
---> USER root
331 Password required for root.
Password:
---> PASS XXXX
230 User root logged in.
---> SYST
215 UNIX Type: L8 Version: SUNOS
Remote system type is UNIX.
---> TYPE I
200 Type set to I.
Using binary mode to transfer files.
ftp> ls
---> PORT 192,0,0,1,188,231
200 PORT command successful.
---> TYPE A
200 Type set to A.
---> NLST
150 Opening ASCII mode data connection for file list.
TT_DB
bin
(...)
var
vol
xfn
226 Transfer complete.
191 bytes received in 0.03 seconds (6.16 Kbytes/s)
---> TYPE I
200 Type set to I.
ftp> quit
---> QUIT
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 599 bytes in 1 transfers.
221-Thank you for using the FTP service on dest_serv.
221 Goodbye.
# netstat -a | grep 48359
dest_serv.ftp-data       user01.48359 33580      0 49640      0 TIME_WAIT

Пассивный FTP

Чтобы решить проблему с сервером, инициирующим соединение с клиентом, был разработан другой метод для FTP-соединений.

Он известен как пассивный режим, или PASV, после команды, использованной клиентом, чтобы сообщить серверу, что он находится в пассивном режиме.

В пассивном режиме FTP клиент инициирует оба подключения к серверу, решая проблему межсетевых экранов, фильтрующих входящее соединение порта данных с клиентом с сервера.

При открытии FTP-соединения клиент открывает два случайных непривилегированных порта локально (N> 1024 и N + 1).

Первый порт связывается с сервером через порт 21, но вместо того, чтобы затем выполнять команду PORT и разрешить серверу подключиться к своему порту данных, клиент выдаст команду PASV.

В результате сервер открывает случайный непривилегированный порт (P> 1024) и отправляет команду PORT P обратно клиенту.

Затем клиент инициирует соединение от порта N + 1 к порту P на сервере для передачи данных.

С точки зрения брандмауэра на стороне сервера, для поддержки FTP в пассивном режиме необходимо открыть следующие каналы связи:

  • Порт FTP-сервера 21 отовсюду (Клиент инициирует соединение)
  • Порт 21 сервера FTP для портов> 1024 (сервер отвечает на порт управления клиента)
  • Порты FTP-сервера> 1024 отовсюду (Клиент инициирует подключение данных к произвольному порту, указанному сервером)
  • Порты FTP-сервера> 1024 для удаленных портов> 1024 (Сервер отправляет ACK (и данные) на порт данных клиента)

При подключении FTP-соединение в пассивном режиме выглядит следующим образом:

  • С клиентского порта 1026 (Cmd) на серверный порт 21 (Cmd)
  • С порта сервера 21 (Cmd) на порт клиента 1026 (Cmd)
  • С клиентского порта 1027 (данные) на серверный порт 2024
  • С порта сервера 2024 (Cmd) на порт клиента 1027 (данные)

На шаге 1 клиент связывается с сервером через командный порт и выдает команду PASV.

Затем сервер отвечает на шаге 2 с помощью PORT 2024, сообщая клиенту, какой порт он прослушивает для подключения к данным.

На шаге 3 клиент затем инициирует соединение для передачи данных со своего порта данных на указанный порт данных сервера.

Наконец, сервер отправляет ACK на шаге 4 в порт данных клиента.

Хотя пассивный режим FTP решает многие проблемы на стороне клиента, он открывает целый ряд проблем на стороне сервера.

Самой большой проблемой является необходимость разрешить любое удаленное подключение к портам с высоким номером на сервере.

К счастью, многие FTP-демоны, включая демон Solaris in.ftpd, позволяют администратору указывать диапазон портов, которые будет использовать FTP-сервер. См. Приложение 1 для получения дополнительной информации.

Вторая проблема связана с поддержкой и устранением неполадок клиентов, которые поддерживают (или не поддерживают) пассивный режим.

Например, утилита FTP командной строки, поставляемая с демоном Solaris ftp, поддерживает пассивный режим начиная с Solaris 9 (начиная с sccs v1.20). Посмотрите справочные страницы (in.ftpd), опция -p.

С огромной популярностью Всемирной паутины, многие люди предпочитают использовать свой веб-браузер в качестве FTP-клиента.

Большинство браузеров поддерживают только пассивный режим при доступе к URL-адресам ftp://. Это может быть как хорошим, так и плохим фактов, в зависимости от того, какие серверы и брандмауэры настроены для поддержки.

Пример пассивного FTP

Ниже приведен пример пассивного сеанса FTP.

Изменены только имена серверов, IP-адреса и имена пользователей.

В этом примере сеанс FTP инициируется от user01 (192.0.0.1), окна Solaris, на котором работает стандартный клиент командной строки FTP, до dest_serv (192.0.0.2), Solaris, работающего под управлением Solaris 9 ftpd.

Флаг отладки (-d) используется с клиентом FTP, чтобы показать, что происходит за кулисами.

Все, что выделено курсивом, является результатом отладки, который показывает фактические команды FTP, отправляемые на сервер, и ответы, генерируемые этими командами.

Нормальный вывод на сервер показан черным, а ввод пользователя — жирным.

Обратите внимание на разницу в команде PORT в этом примере по сравнению с примером активного FTP.

Здесь мы видим, что порт открывается в системе сервера (192.0.0.2), а не на клиенте. См. Обсуждение формата команды PORT выше в разделе «Пример активного FTP».

$ ftp -d dest_serv
Connected to dest_serv.
220 dest_serv FTP server ready.
Name (dest_serv:boqueron): root
---> USER root
331 Password required for root.
Password:
---> PASS XXXX
230 User root logged in.
---> SYST
215 UNIX Type: L8 Version: SUNOS
Remote system type is UNIX.
---> TYPE I
200 Type set to I.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
---> PASV
227 Entering Passive Mode (192,0,0,2,7,176)
---> TYPE A
200 Type set to A.
---> NLST
150 Opening ASCII mode data connection for file list.
TT_DB
bin
cdrom
(...)
vol
xfn
226 Transfer complete.
191 bytes received in 0.027 seconds (7.04 Kbytes/s)
---> TYPE I
200 Type set to I.
ftp> quit
---> QUIT
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 599 bytes in 1 transfers.
221-Thank you for using the FTP service on dest_serv.
221 Goodbye.

Резюме

Следующая таблица должна помочь администраторам запомнить, как работает каждый режим FTP:

Активный FTP : 
команда : client >1024 -> server 21 
данные :    client >1024 <- server 20 
Пассивный FTP : 
команда : client >1024 -> server 21 
данные :    client >1024 -> server >1024

Краткий обзор плюсов и минусов активного и пассивного FTP также по порядку:

Активный FTP полезен для администратора сервера FTP, но вреден для администратора на стороне клиента.

FTP-сервер пытается подключиться к случайным высоким портам на клиенте, которые почти наверняка будут заблокированы брандмауэром на стороне клиента.

Пассивный FTP полезен для клиента, но вреден для администратора FTP-сервера.

Клиент установит оба соединения с сервером, но одно из них будет со случайным портом с высокой пропускной способностью, который почти наверняка будет заблокирован брандмауэром на стороне сервера.

К счастью, есть некоторый компромисс.

Поскольку администраторам, работающим с FTP-серверами, необходимо сделать свои серверы доступными для наибольшего числа клиентов, им почти наверняка потребуется поддержка пассивного FTP.

Доступность портов высокого уровня на сервере можно минимизировать, указав ограниченный диапазон портов для использования FTP-сервером.

Таким образом, все, кроме этого диапазона портов, может быть защищено на стороне сервера.

Хотя это не устраняет все риски для сервера, оно значительно снижает его. См. Приложение 1 для получения дополнительной информации.

system:ftp-nat [wiki.sys-adm.org.ua]

Введение

FTP (File Transfer Protocol — Протокол передачи файлов). FTP является протоколом высокого уровня, а именно, уровня приложений (7й уровень модели OSI). FTP служба построена по хорошо известной схеме «клиент-сервер», которая позволяет пользователю передавать/получать файлы с удаленного сервера.

Клиент посылает запросы серверу и принимает файлы. В качестве клиентов могут использоваться — internet explorer, Windows Commander, NetVampir, gftp и т.д.

Сервер обрабатывает запросы клиента на получение файла. В качестве серверов могут использоваться — vsftpd, IIS, wuftpd, proftpd и т.д.

FTP сервер — компьютер, на котором запущена программа FTP сервера. Общедоступные FTP сайты обычно доступны любому, зашедшему под именем anonymous или ftp. Имеется много отличных FTP сайтов, на которых есть архивы свободно распространяемого программного обеспечения для Unix.

FTP отличается от других приложений тем, что он использует два TCP соединения для передачи файла:

  • Управляющее соединение — соединение для посылки команд серверу и получение ответов от него.

  • Соединение данных — соединение для передачи файлов.

FTP был впервые разработан в калифорнийском университете для включения в 4.2BSD (Berkeley Unix). Для более детального ознакомления рекомендую прочитать RFC959.

Режимы работы FTP: активный и пассивный

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения — управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режимов. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В Активном режиме, когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

В Пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных. Главное отличие между Активным режимом FTP и Пассивным режимом FTP — это сторона, которая открывает соединение для передачи данных. В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.

Активный FTP «выгоден» для FTP-сервера, но «вреден» для стороны клиента. FTP сервер пытается соединиться со случайными высокими (по номеру) портами на клиенте, такое соединение наверняка будет блокировано брандмауэром на стороне клиента.

Пассивный FTP «выгоден» для клиента, но «вреден» для FTP-сервера. Клиент будет делать оба соединения к серверу, но одно из них будет к случайному высокому порту, такое соединение наверняка будет блокировано брандмауэром на стороне сервера.

Первоначальная настройка брандмауера

Создаем минимальный набор правил в нашем фаерволе. Этот пример создан лишь для того, чтобы показать принцип работы iptables. Для более углубленного понимания работы iptables рекомендую прочитать статью Оскара Андерсона в переводе Андрея Кисилева — Iptables Tutorial 1.1.19, которая считается классикой.

#
# /usr/local/firewall.sh
#
 
#!/bin/sh
IPTABLES="/sbin/iptables"
 
# Отчищаем все правила в таблицах filter, nat и mangle
 
$IPTABLES -t filter -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
 
# Удаляем все пользовательские цепочки в таблицах filter, nat и mangle
 
$IPTABLES -t filter -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
 
# Задаем политики по умолчанию
 
$IPTABLES -t filter -P INPUT DROP
$IPTABLES -t filter -P FORWARD DROP
$IPTABLES -t filter -P OUTPUT ACCEPT
 
# Создаем пользовательские цепочки. Как строить firewall каждый решает сам.
# Но лично мне удобно настраивать фаервол, когда все разбито по цепочкам
# и как бы разложено по своим полочкам. Тогда я точно знаю, что и где надо
# искать или исправлять. Думаю, названия цепочек говорят сами за себя.
 
$IPTABLES -N eth0-eth2
$IPTABLES -N eth2-eth0
$IPTABLES -N eth2-in
$IPTABLES -N eth0-in
 
# Направляем все входящие пакеты в соответствующие цепочки.
 
$IPTABLES -A INPUT -d 192.168.1.1 -j eth0-in
$IPTABLES -A INPUT -d 212.42.65.100 -j eth2-in
 
# Для удобства фильтрации, направляем все транзитные пакеты,
# в соответствующие цепочки.
# eth0-eth2 локальная сеть -> мир
# eth2-eth0 мир -> локальная сеть
 
$IPTABLES -A FORWARD -i eth0 -o eth2 -j eth0-eth2
$IPTABLES -A FORWARD -i eth2 -o eth0 -j eth2-eth0
 
# eth0-eth2. В данную цепочку попадают все транзитные пакеты,
# направленные из локальной сети в мир.
 
$IPTABLES -A eth0-eth2 -p tcp --dport 21 -j ACCEPT
$IPTABLES -A eth0-eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A eth0-eth2 -j LOG --log-prefix "eth0-eth2 " --log-level 7
$IPTABLES -A eth0-eth2 -j DROP
 
# eth2-eth0. В данную цепочку попадают все транзитные пакеты,
# направленные из мира в локальную сеть.
 
$IPTABLES -A eth2-eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A eth2-eth0 -j LOG --log-prefix "eth2-eth0 " --log-level 7
$IPTABLES -A eth2-eth0 -j DROP
 
# eth0-in. В данной цепочке открываем порты тех служб, которые
# должны быть доступны из локальной сети.
 
$IPTABLES -A eth0-in -i lo -j ACCEPT
$IPTABLES -A eth0-in -p tcp --dport 21 -j ACCEPT
$IPTABLES -A eth0-in -p tcp --dport 22 -j ACCEPT
$IPTABLES -A eth0-in -p tcp --dport 25 -j ACCEPT
$IPTABLES -A eth0-in -p udp --dport 53 -j ACCEPT
$IPTABLES -A eth0-in -p tcp --dport 80 -j ACCEPT
$IPTABLES -A eth0-in -p tcp --dport 110 -j ACCEPT
$IPTABLES -A eth0-in -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A eth0-in -j LOG --log-prefix "eth0-in " --log-level 7
$IPTABLES -A eth0-in -j DROP
 
# eth2-in. В данной цепочке открываем порты тех служб, которые
# должны быть доступны из мира.
 
$IPTABLES -A eth2-in -p tcp --dport 25 -j ACCEPT
$IPTABLES -A eth2-in -p tcp --dport 80 -j ACCEPT
$IPTABLES -A eth2-in -m state --state RELATED,ESTABLISHED -j ACCEPT
$IPTABLES -A eth2-in -j LOG --log-prefix "eth2-in " --log-level 7
$IPTABLES -A eth2-in -j DROP
 
# Производим сетевую трансляцию адресов (NAT)
 
$IPTABLES -A POSTROUTING -t nat -s 192.168.1.0/24 -o eth2 -j SNAT --to-source 212.42.65.100

eth0 — смотрит в локальную сеть, eth2 — смотрит в мир. Данным скриптом (firewall.sh) удобно пользоваться на стадии отладки правил.

# chmod +x /usr/local/firewall.sh
# /usr/local/firewall.sh

После того, как у вас все настроено, лучше воспользоваться штатными средствами управления iptables. Для этого воспользуемся скриптом для сохранения текущих правил в файл. В разных дистрибутивах набор правил может сохраняться по отличному от /etc/sysconfig/iptables пути. Данный путь является стандартным для Red Hat дистрибутивов и его клонов, например CentOS.

# iptables-save > /etc/sysconfig/iptables
# chkconfig --level 35 iptables on
# service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT: mangle filter nat         [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]

Но при таких настройках фаервола ftp через nat еще не будет работать. Для облегчения нашей задачи воспользуемся специальным модулем, который и был разработан как раз для этих целей. Загрузим модуль ip_nat_ftp, который и будет выполнять всю черную работу вместо нас.

# modprobe ip_nat_ftp
# lsmod | grep ftp
ip_nat_ftp              4336  0
ip_conntrack_ftp       71728  1 ip_nat_ftp
iptable_nat            19772  2 ip_nat_ftp
ip_conntrack           34740  4 ip_nat_ftp,ip_conntrack_ftp,iptable_nat,ipt_state

Обратите внимание, что в цепочке eth0-eth2, через которую проходят все транзитные пакеты, мы открыли только порт 21 и разрешили прохождение пакетов с состоянием RELATED и ESTABLISHED. Для работы ftp как в активном так и в пассивном режимах больше ничего не требуется, все остальные заботы берут на себя модули ip_nat_ftp и ip_conntrack_ftp.

Тестирование

После того, как мы загрузили модуль и правил можно приступить непосредственно к тестированию. Для этого можно воспользоваться любимым ftp клиентом и попробовать соединиться с любым ftp сервером. В качестве клиента я использовал ftp клиент встроенный в far, который позволяет использовать как активный, так и пассивный режимы. Если под рукой нет никакого ftp клиента всегда можно воспользоваться встроенным в windows клиентом как показано ниже.

C:\Documents and Settings\Admin>ftp ftp.sys-adm.org.ua
Связь с ftp.sys-adm.org.ua.
220 Welcome To SYS-ADM.ORG.UA FTP Server.
Пользователь (ftp.sys-adm.org.ua:(none)): alex
331 Please specify the password.
Пароль: *******
230 Login successful.
ftp> ls
200 PORT command successful. Consider using PASV.
150 Here comes the directory listing.
games
music
video
xxx
226 Directory send OK.
ftp: 26 байт получено за 0,00 (сек) со скоростью 26000,00 (КБ/сек).
ftp> quit
221 Goodbye.

Для наглядности можно посмотреть с помощью tcpdump что происходит при попытке подключиться к удаленному ftp серверу.

# tcpdump -npi eth2 port 21 and host ftp.sys-adm.org.ua
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth2, link-type EN10MB (Ethernet), capture size 96 bytes
23:17:52.626734 IP 212.42.65.100.1327 > 212.42.65.15.ftp: S 3449417565:3449417565(0) win 65535 
23:17:52.629494 IP 212.42.65.15.ftp > 212.42.65.100.1327: S 3892471215:3892471215(0) ack 3449417566 win 5840 
23:17:52.630370 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 1 win 65535
23:17:52.632693 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 1:42(41) ack 1 win 5840
23:17:52.709940 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 42 win 65494
23:17:55.258372 IP 212.42.65.100.1327 > 212.42.65.15.ftp: P 1:12(11) ack 42 win 65494
23:17:55.260886 IP 212.42.65.15.ftp > 212.42.65.100.1327: . ack 12 win 5840
23:17:55.263883 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 42:76(34) ack 12 win 5840
23:17:55.347886 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 76 win 65460
23:17:56.906175 IP 212.42.65.100.1327 > 212.42.65.15.ftp: P 12:25(13) ack 76 win 65460
23:17:56.909129 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 76:99(23) ack 25 win 5840
23:17:57.000080 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 99 win 65437
23:18:01.089040 IP 212.42.65.100.1327 > 212.42.65.15.ftp: P 25:50(25) ack 99 win 65437
23:18:01.091282 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 99:150(51) ack 50 win 5840
23:18:01.094867 IP 212.42.65.100.1327 > 212.42.65.15.ftp: P 50:56(6) ack 150 win 65386
23:18:01.097930 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 150:189(39) ack 56 win 5840
23:18:01.098865 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 189:213(24) ack 56 win 5840
23:18:01.100303 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 213 win 65323
23:18:03.367299 IP 212.42.65.100.1327 > 212.42.65.15.ftp: P 56:62(6) ack 213 win 65323
23:18:03.370123 IP 212.42.65.15.ftp > 212.42.65.100.1327: P 213:227(14) ack 62 win 5840
23:18:03.372775 IP 212.42.65.15.ftp > 212.42.65.100.1327: F 227:227(0) ack 62 win 5840
23:18:03.372968 IP 212.42.65.100.1327 > 212.42.65.15.ftp: . ack 228 win 65309
23:18:03.375854 IP 212.42.65.100.1327 > 212.42.65.15.ftp: F 62:62(0) ack 228 win 65309
23:18:03.377860 IP 212.42.65.15.ftp > 212.42.65.100.1327: . ack 63 win 5840

24 packets captured
54 packets received by filter
0 packets dropped by kernel

Ну вот собственно и вся настройка. Для того, чтобы каждый раз при загрузке системы модуль ip_nat_ftp загружался автоматически необходимо внести небольшие изменения в файл /etc/sysconfig/iptables-config.

#
# /etc/sysconfig/iptables-config
#

# Загрузка дополнительных модулей iptables (nat помощников)
#   По умолчанию: -пусто-
# Разделенный пробелами список "nat помощников" (например 'ip_nat_ftp ip_nat_irc'),
# которые загружаются после применения правил.
# Опции для "помощников" находятся  в /etc/modprobe.conf.
IPTABLES_MODULES="ip_nat_ftp ip_conntrack_ftp"

После этого при перезагрузке iptables или системы в целом данный модуль будет загружаться автоматически, а также подгружать все необходимые модули.

# service iptables restart
Flushing firewall rules:                                   [  OK  ]
Setting chains to policy ACCEPT:  mangle filter nat        [  OK  ]
Unloading iptables modules:                                [  OK  ]
Applying iptables firewall rules:                          [  OK  ]
Loading additional iptables modules: ip_nat_ftp            [  OK  ]

system/ftp-nat.txt · Последние изменения: 2010/12/14 01:35 (внешнее изменение)

Активный и пассивный режим работы ftp

Wiki

Активный и пассивный режим работы ftp

Категория:Виртуальный хостинг -> FTP

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения – управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы).
Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В активном режиме, когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных.

Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных. В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.

Категории:

FTP: активный/пассивный режим — myNetNotes — ЖЖ

?

LiveJournal

  • Main
  • Ratings
  • Interesting
  • iOS & Android
  • Disable ads

Login

FTP и NAT | Gamelton’s blog

Протокол передачи файлов, впервые стандартизированный в начале 1970-х годов, относится к протоколам прикладного уровня и для передачи данных использует транспортный протокол TCP. FTP был разработан во времена, когда клиенты и серверы взаимодействовали друг с другом напрямую, без посредников и с минимальным количеством препятствий.

Проблемы FTP в современных сетях

В современных сетях (NAT, брандмауэр, балансировщик нагрузки) следующие особенности FTP не позволяют ему нормально работать:

  1. Два отдельных соединения TCP / IP: для передачи данных и для передачи команд;
  2. Соединение для передачи данных может быть установлено на случайном номере порта;
  3. Соединение для передачи данных может исходить как от сервера к клиенту, так и от клиента к серверу;
  4. Адрес назначения соединения для передачи данных (выбор режима работы) согласовывается на лету между клиентом и сервером через соединение для передачи команд;
  5. Соединение для передачи команд находится в режиме ожидания, пока происходит передача данных через соединение для передачи данных.

Проблема 1 вызвана тем, что маршрутизирующее устройство или балансировщик должно поддерживать два соединения между одними и теми же источником и приемником.

Проблема 2 вызвана тем, что FTP не может работать в том случае, если входящие порты жестко ограничены только определенно известными. Т.е. в обычном режиме FTP не может работать только при открытом 21 входящем порте, используемым соединением для передачи команд, ему также необходим набор открытых портов высокого значения (49152-65534) для передачи данных.

Проблема 4 вызвана тем, что при использовании NAT, ему нужно на лету изменять содержимое пакетов соединения для передачи команд, для того чтобы внутренний адрес сервера заменялся внешним, а также перенаправлять приходящие на внешний адрес пакеты на внутренний адрес сервера.

Проблема 5 вызвана тем, что маршрутизирующие устройства могут прерывать «зависшие» соединения для передачи команд.

Два режима передачи данных в FTP

FTP поддерживает два режима работы: активный и пассивный. Они различаются механизмом установления соединения для передачи данных:

  • В активном режиме сервер подключается со своего 20-го порта на оговоренный порт клиента.
  • В пассивном режиме клиент подключается со своего случайного порта на оговоренный порт сервера.

Таким образом, все современные FTP-клиенты обговаривают с сервером то, от кого данные передаются и кто инициирует соединение. Клиент может указать использование активного режима, послав команду «PORT», которая сообщит серверу, что нужно подключиться на определенный IP и порт клиента, и начать отправку данных. Или клиент может использовать пассивный режим, послав команду “PASV” серверу, которая сообщит серверу, что клиент ожидает IP и порт сервера для начала приема данных.

Поскольку клиент изначально подключается к серверу для установления соединения для передачи команд, было бы логичным, если бы соединение для передачи данных устанавливал так же клиент, т.е. отправлял команду PASV (одновременно устраняя проблему между FTP и брандмауэром). Однако это не так, создатели спецификации FTP почему-то решили, что предпочитаемым режимом должен быть PORT, а поддержка PASV на стороне клиента даже необязательна.

Авторизация в FTP

FTP поддерживает доступ по логину и пароль, но это не безопасно т.к. они передаются открытым текстом. При использовании веб-браузера передать можно прямо в URL.

ftp://<user>:<password>@<host>:<port>/<url-path>

Пример сессий с использованием активного и пассивного режимов передачи данных

Пример активного режима, где клиент подключается анонимно и совершает одну активную передачу данных (просмотр директории).

Client:USER anonymous
Server:331 Guest login ok, send your e-mail address as password.
Client:PASS NcFTP@
Server:230 Logged in anonymously.
Client:PORT 192,168,1,2,7,138Клиент хочет чтобы сервер подключился на порт 1930 и IP адрес 192.168.1.2.
Server: 200 PORT command successful.
Client: LIST
Server: 150 Opening ASCII mode data connection for /bin/ls.Сервер подключается с порта 21 на порт 1930 и ip адрес 192.168.1.2.
Server: 226 Listing completed.Данные переданы успешно.
Client: QUIT
Server: 221 Goodbye.

Пример пассивного режима

Client:USER anonymous
Server:331 Guest login ok, send your e-mail address as password.
Client:PASS NcFTP@
Server:230 Logged in anonymously.
Client:PASVКлиент запрашивает у сервера данные для подключения.
Server: 227 Entering Passive Mode
(172,16,3,4,204,173)
Сервер отвечает клиенту, что нужно подключаться на порт 52397 и IP адрес 172.16.3.4.
Client: LIST
Server: 150 Data connection accepted from
172.16.3.4:52397; transfer starting.
Клиент подключился к серверу на порт 52397 и IP адрес 172.16.3.4.
Server: 226 Listing completed.Данные переданы успешно.
Client: QUIT
Server: 221 Goodbye.

Частные проблемы:

  • PORT режим — FTP клиент за NAT или брандмауэром

    Наибольшая проблема, с которой сталкиваются клиенты FTP, использующие активный режим – сервер должен сам подключаться на клиентский ip адрес. Если на его пути будет стоять брандмауэр, отсекающий все входящие подключения, сессия FTP не состоится. Другая проблема — если клиент находится за NAT и использует внутренний ip адрес. Сообщив свой внутренний адрес серверу, клиент обрекает его на невозможность подключения.

    Решение 1. Клиент FTP должен быть настроен на использование пассивного режима.

    Решение 2. Настройка NAT за слежением соединений FTP. Когда клиент использует активный режим, NAT устройство должно переписывать внутренний адрес клиента и заменять его внешним адресом устройства. Тогда соединение, для передачи данных с FTP сервера поступив на внешний адрес NAT устройства, будет проброшено им на внутренний адрес FTP клиента за NAT.

  • PASV режим — FTP сервер за брандмауэром

    Когда FTP сервер находится за брандмауэром, клиенты будут испытывать проблемы, используя пассивный режим для подключения к эфемерному порту FTP сервера. Наиболее частая проблема, когда брандмауэр, за которым находится FTP сервер, пропускает только ряд подключений на известные порты и блокирует прочие.

    Решение 1. Администратор может открыть группу портов на брандмауэре, через которые может происходить соединение с FTP сервером.

    Решение 2. Если есть поддержка со стороны брандмауэра, администратор может настроить так, чтобы порты автоматически открывались для установления пассивного соединения с FTP сервером. Эта настройка схоже с той, что была описана для активного клиента, находящегося за NAT. Таким образом, когда брандмауэр отслеживает ответ FTP сервера на пассивный запрос клиента, он временно открывает порт, указанный в ответе, и только для того IP, с которого исходил пассивный запрос.

  • PASV режим — FTP сервер за NAT

    В режиме PASV FTP сервер отвечает клиенту своим внутренним ip адресом и портом, чем обрекает клиента на невозможность подключения.

    Решение 1. Настройка NAT за слежением соединений FTP для передачи данных. Когда сервер отправляет ответ в пассивном режиме, NAT устройство должно переписывать внутренний адрес сервера и заменять его внешним адресом устройства. Тогда соединение для передачи данных с FTP клиента, поступив на внешний адрес NAT устройства, будет проброшено им на внутренний адрес FTP сервера за NAT.

  • PASV режим — FTP сервер за балансировщиком нагрузки

    Балансировщик представляет собой один ip адрес, подключение к которому будет перенаправляться на один из балансируемых серверов. Балансировщик представляет две проблемы для FTP. Первая происходит из-за того, что между FTP сервером и клиентом устанавливается несколько соединений: одно для передачи команд и одно или несколько для передачи данных. При пассивном режиме балансировщик должен перенаправлять соединение для передачи данных на тот же сервер, что и соединение для передачи команд. Вторая проблема является следствием первой: когда FTP сервер отвечает пассивным ответом, этот ответ будет содержать внутренний адрес FTP сервера, а не внешний адрес балансировщика.

    Решение 1. Каждому FTP серверу за балансировщиком присвоить легитимный ip адрес, доступный извне. В этом случае FTP сервер будет способен самостоятельно обслуживать FTP клиентов в пассивном режиме, минуя балансировщик.

    Решение 2. Настройка балансировщика за слежением соединений FTP для передачи данных. Когда сервер отправляет ответ в пассивном режиме, балансировщик должен переписывать внутренний адрес сервера и заменять его внешним адресом балансировщика. Тогда соединение для передачи данных с FTP клиента, поступив на внешний адрес балансировщика, будет проброшено им на внутренний адрес FTP сервера за балансировщиком.

    Решение 3. Настроить FTP сервер так, чтобы его ответы в пассивном режиме содержали внешний адрес балансировщика, а не сервера и надеется, что балансировщик перенаправит соединение на ожидающий сервер.

  • Неразрешимая проблема — брандмауэры на обоих концах

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

  • FTP сервер на нестандартном порте

    Некоторые маршрутизирующие устройства способны обрабатывать FTP сессии, только если они поступают на стандартный порт сервера. Поэтому если FTP сервер слушает на нестандартном порте, нужно настраивать маршрутизирующее устройство, так чтобы оно знало, что за этим портом сидит FTP сервер и корректно обрабатывало соединения.

    Но даже в этом случае брандмауэр на стороне клиента может помешать. Это может произойти, если брандмауэр на стороне клиента жестко требует, чтобы FTP соединение для передачи данных от FTP сервера исходило с 20 порта (в активном режиме). Если же сервер FTP работает на порту N, то по спецификации FTP его соединения для передачи данных будут исходить с порта N – 1 и блокироваться брандмауэром клиента.

  • Проблемы, вызванные брандмауэрами преждевременно завершающими FTP сессию

    Данная проблема наиболее часто встречается при передаче большого файла. Когда параметры соединения согласовались, и передача началась, соединение для передачи команд начнет простаивать до тех пор, пока передача файла не завершится. Если маршрутизирующее устройство не знает о FTP, и передача файла займет дольше времени, чем счетчик активности подключения на нем, соединение с точки зрения маршрутизирующего устройства превысит время ожидания и будет завершено, а входящие пакеты будут отброшены.

    Решением данной проблемы является устройство, поддерживающее соединение для передачи команд в активном состоянии даже не смотря на то, что по нему долго не передавались пакеты. Другой вариант — включение функции “Keep Alive” в стеке протокола TCP/IP на стороне клиента или сервера, которая отправляет пакет проверки доступности через определенные интервалы времени, и если сторона назначения не отвечает — закрывает нормально соединение. Если же принимающая сторона ответит, то соединение со стороны брандмауэра будет считаться активным.

Общие рекомендации

  • Использовать пассивный режим, когда возможно (в веб-браузерах используется по умолчанию)
  • Если подключение к FTP серверу прошло удачно, но просмотр директорий или передача файлов заканчиваются обрывом соединения, скорее всего проблема в таймерах активности подключения на брандмауэре
  • Используйте устройства, поддерживающие особенности работы FTP

Источник 1
Источник 2

Понравилось это:

Нравится Загрузка…

Полезные статьи. FTP. Общие сведения. LTD Beget.

FTP – это протокол передачи файлов. Основное назначение FTP – пересылать (копировать, передавать) файлы в Интернете (с удаленного компьютера на локальный и наоборот). Кроме того, при помощи FTP можно работать со своими файлами прямо на удаленном компьютере (переименовывать их, удалять, создавать каталоги и т.п.)

FTP-клиент

Чтобы воспользоваться протоколом FTP, понадобится специальная программа, так называемый FTP-клиент. FTP-клиентом может служить интернет-браузер (Internet Explorer, Mozilla Firefox, Google Chrome и другие), программа управления файлами FAR, специализированные программы CuteFTP, Filezilla и другие. FTP-клиент встроен также в некоторые HTML-редакторы, такие как HomeSite, Dreamweaver или FrontPage.

Как подключаться к своему аккаунту Beget по протоколу FTP

При подключении по FTP необходимо использовать логин и пароль, которые используются для доступа в Личный кабинет https://cp.beget.com. В то же время, с помощью раздела FTP в личном кабинете можно создать дополнительные аккаунты к отдельным сайтам или любым другим каталогам на вашем дисковом пространстве. Например, нужно предоставить доступ разработчику, но Вы не хотите, чтобы весь аккаунт был для него доступен, для этого можно создать отдельный аккаунт.

Можно ли использовать браузер для подключения по FTP?

Использовать браузер можно, для этого нужно набрать в адресной строке браузера:

ftp://ваш_логин:ваш_пароль@ваш_логин.beget.tech

Однако необходимо иметь в виду, что браузер не приспособлен для работы по FTP. Технически он может это делать, но многие необходимые функции в нем отсутствуют.

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения – управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В активном режиме, когда клиент говорит «Привет!», он также сообщает серверу номер порта (из диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя со своей стороны номер TCP-порта 20 для передачи данных.

В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных.

Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных. В активном режиме клиент должен принять соединение от FTP-сервера. В пассивном режиме клиент всегда инициирует соединение.

Вам необходимо включать пассивный режим в FTP-клиенте, чтобы можно было работать по FTP с нашими серверами.

Удачной работы! Если возникнут вопросы — напишите нам, пожалуйста, тикет из Панели управления аккаунта, раздел «Помощь и поддержка».

Настроить Ftp при подключении через маршрутизатор — просто!

И на самом деле, всё просто, когда есть знания происходящего… для людей с желанием разобраться — читайте ниже раздел «теория», для остальных «гайд» в картинках по настройке, на примере Zyxel KeeneticII Giga (прошивка V2) и G6FTP Server на одном из компьютеров в домашней сети.


Теория.

При работе по протоколу FTP между клиентом и сервером устанавливается два соединения — управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
Активный режим. Когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя со своей стороны номер TCP-порта 20 для передачи данных. Для клиента такое соединение является входящим. Так что зачастую работа в активном режиме клиентов, находящихся за файрволлом или NAT затруднена или требует дополнительных настроек.
Пассивный режим. В Пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту свой IP адрес и номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных. В дальнейшем будем называть их пассивными портами. При этом, как легко заметить, порты в таком соединении, как со стороны клиента, так и со стороны сервера оказываются произвольными. В пассивном режиме клиент легко может работать с сервером сквозь свой файрволл, но зачастую для поддержки пассивного режима сервером требуется соответствующая настройка файрволла уже на стороне сервера.

Главное отличие между Активным режимом FTP и Пассивным режимом FTP — это сторона, которая открывает соединение для передачи данных. В Активном режиме клиент должен суметь принять это соединение от FTP сервера. В Пассивном режиме клиент всегда инициирует это соединение сам, и принять его должен уже сервер.

Пассивный режим работы FTP предназначен для соединения клиентов, находящихся за Firewall.  В домашних сетях именно этот режим работы должен быть основным режимом FTP сервера, если Вы хотите, чтобы у пользователей не было проблем с доступом.


Теперь практика в картинках.

Для начала делаем привязку компьютера к IP , в моём случае это 10.0.0.100

затем настраиваем стандартные порты фтп

и добавляем порты для работы в пассивном режиме

после чего переходим к настройке G6Ftp Server

В «Диапазон портов для пассивного режима» пишу выбранные  и открытые на роутере пассивные порты 6021-6023, не забывая прописать ВНЕШНИЙ IP в пункт «Перенаправить PASV IP»!

теперь остаётся поставить галочку..

и можно идти проверять доступность нашего Ftp снаружи.

:mrgreen:

Режимы подключения FTP

(активный против пассивного) :: Документация по WinSCP

»Начало работы» Протоколы »FTP»

FTP может работать в активном или пассивном режиме, который определяет, как устанавливается соединение для передачи данных. В обоих случаях клиент создает управляющее соединение TCP с командным портом 21 сервера FTP . Это стандартное исходящее соединение, как и любой другой протокол передачи файлов ( SFTP , SCP ​​, WebDAV ) или любое другое клиентское приложение TCP (например,г. веб-браузер). Итак, при открытии контрольного соединения проблем обычно не возникает.

Если протокол FTP более сложен по сравнению с другими протоколами передачи файлов, это передача файлов. В то время как другие протоколы используют одно и то же соединение как для управления сеансом, так и для передачи файлов (данных), протокол FTP использует отдельное соединение для передачи файлов и списков каталогов.

В активном режиме клиент начинает прослушивать случайный порт на предмет входящих соединений данных от сервера (клиент отправляет команду FTP PORT , чтобы сообщить серверу, какой порт он прослушивает).В настоящее время типично, что клиент находится за брандмауэром (например, встроенным брандмауэром Windows) или маршрутизатором NAT (например, модемом ADSL) и не может принимать входящие TCP-соединения.

По этой причине был введен пассивный режим , который в основном используется в настоящее время. Это также значение по умолчанию для WinSCP. Использование пассивного режима предпочтительнее, поскольку большая часть сложной настройки выполняется только один раз на стороне сервера опытным администратором, а не индивидуально на стороне клиента (возможно) неопытными пользователями.

В пассивном режиме клиент использует управляющее соединение для отправки на сервер команды PASV , а затем получает IP-адрес сервера и номер порта сервера от сервера, которые затем клиент использует для открытия соединения для передачи данных с Получены IP-адрес сервера и номер порта сервера.1

Используйте настройки сеанса Passive mode для переключения между активным и пассивным режимами .

Конфигурация сети для пассивного режима

В пассивном режиме большая часть нагрузки по настройке лежит на стороне сервера.Администратор сервера должен настроить сервер, как описано ниже.

Брандмауэр и NAT на стороне FTP-сервера должны быть настроены не только для разрешения / маршрутизации входящих подключений на FTP-порт 21,2, но и для диапазона портов для входящих подключений для передачи данных. Как правило, программное обеспечение FTP-сервера имеет параметр конфигурации для настройки диапазона портов, которые сервер будет использовать. И тот же диапазон должен быть открыт / маршрутизирован на межсетевом экране / NAT.

Когда FTP-сервер находится за NAT, ему необходимо знать свой внешний IP-адрес, чтобы он мог предоставить его клиенту в ответ на команду PASV .

Часто FTP-сервер не настроен должным образом и предоставляет свой внутренний IP-адрес, который нельзя использовать из клиентской сети. По умолчанию WinSCP определяет, когда предоставляется немаршрутизируемый IP-адрес, и вместо этого использует адрес сервера (управляющего соединения). 3 Вы можете сказать, что это произошло, из журнала сеанса:

Сервер отправил пассивный ответ с немаршрутизируемым адресом ..., используя вместо этого адрес хоста.
 

Узнайте, как:

Примечания для нестандартных конфигураций локальной сети

Когда NAT происходит на стороне клиента, то, что FTP-сервер не может знать, IP-адрес, который он предоставляет, тоже неверен (с точки зрения клиента).Вы можете заставить WinSCP игнорировать IP-адрес, предоставленный сервером, используя IP-адрес Force для подключений в пассивном режиме Настройка сеанса .

При использовании ограничительного локального брандмауэра, который блокирует даже исходящие соединения, вам необходимо открыть не только порт 21 управляющего соединения, но также диапазон портов для соединений данных. Чтобы открыть как можно меньше портов, выясните, для каких портов настроен FTP-сервер. Если вы этого не знаете, вам нужно открыть весь диапазон непривилегированных портов, 1024–65535.

Конфигурация сети для активного режима

В активном режиме большая часть нагрузки по настройке лежит на стороне клиента.

Брандмауэр (например, брандмауэр Windows) и NAT (например, правила маршрутизации ADSL-модема) на стороне клиента должны быть настроены для разрешения / маршрутизации диапазона портов для входящих подключений данных. Поскольку WinSCP не позволяет настраивать диапазон портов, которые он использует для подключений к данным, все порты в динамическом диапазоне портов Windows 49152–655354 должны быть открыты.Чтобы открыть порты, перейдите в Панель управления > Система и безопасность> Брандмауэр Windows 5 > Расширенные настройки> Правила для входящих подключений> Новое правило . Для маршрутизации портов на NAT (если есть) обратитесь к его документации.

Если в вашей сети есть NAT, вам необходимо настроить внешний IP-адрес, который WinSCP должен предоставить FTP-серверу с помощью команды PORT . Чтобы сервер мог правильно подключиться к WinSCP, чтобы открыть соединение для передачи данных.Для этого используйте Внешний IP-адрес в настройках.

Интеллектуальные межсетевые экраны / NAT

Некоторые брандмауэры / NAT пытаются автоматически открывать / закрывать порты данных, проверяя управляющее соединение FTP и / или переводя IP-адреса соединения для передачи данных в трафик управляющего соединения.

С таким брандмауэром / NAT указанная выше конфигурация не требуется для простого незашифрованного FTP. Но это не может работать с FTPS, поскольку трафик контрольного соединения зашифрован, и межсетевой экран / NAT не может его проверить или изменить.

.

Активный FTP против пассивного FTP, окончательное объяснение

В комплекте:

Введение

Один из наиболее часто задаваемых вопросов при работе с межсетевыми экранами и
другие проблемы с подключением к Интернету — это разница между
активный и пассивный FTP и как лучше всего поддерживать один или оба
их. Надеюсь, следующий текст поможет прояснить некоторые из
путаница в том, как поддерживать FTP в среде с брандмауэром.

Это не может быть окончательным объяснением , как утверждается в названии,
однако я слышал достаточно хороших отзывов и видел ссылку на этот документ в
Достаточно мест, чтобы знать, что довольно много людей сочли это полезным.Я всегда ищу способы улучшить ситуацию, и если вы найдете
что-то не совсем ясное или требует дополнительных объяснений, пожалуйста, позвольте мне
знать! Недавние дополнения к этому документу включают примеры как
активные и пассивные сеансы FTP в командной строке. Эти примеры сессий
должно помочь прояснить ситуацию. Они также предоставляют
хорошая картина того, что происходит за кулисами во время FTP-сеанса.
Теперь к информации …

Основы

FTP — это служба исключительно на основе TCP.Нет компонента UDP для
FTP. FTP — необычный сервис, так как он использует два порта, «данные»
порт и «командный» порт (также известный как порт управления). Традиционно
это порт 21 для командного порта и порт 20 для данных
порт. Однако путаница начинается, когда мы обнаруживаем, что в зависимости от
В этом режиме порт данных не всегда находится на порте 20.

Активный FTP

В активном режиме FTP клиент подключается из случайного непривилегированного
порт (N> 1023) к командному порту FTP-сервера, порт 21.Затем
клиент начинает прослушивать порт N + 1 и отправляет команду FTP PORT
N + 1
к FTP-серверу. Затем сервер снова подключится к
указанный клиентом порт данных из его локального порта данных, то есть порта 20.

С точки зрения серверного брандмауэра для поддержки FTP в активном режиме
необходимо открыть следующие каналы связи:

  • Порт 21 FTP-сервера из любого места (клиент инициирует соединение)
  • FTP-сервер с порта 21 на порты> 1023 (сервер отвечает на
    порт управления клиента)
  • Порт 20 FTP-сервера на порты> 1023 (сервер инициирует данные
    подключение к порту данных клиента)
  • Порт 20 FTP-сервера из портов> 1023 (Клиент отправляет ACK на
    порт данных сервера)

В вытянутом состоянии соединение выглядит следующим образом:

На шаге 1 командный порт клиента связывается с командным портом сервера.
и отправляет команду ПОРТ 1027 .Затем сервер отправляет
ACK обратно к командному порту клиента на шаге 2. На шаге 3 сервер
инициирует соединение на своем локальном порте данных с портом данных клиента
указано ранее. Наконец, клиент отправляет ACK обратно, как показано на шаге
4.

Основная проблема с активным режимом FTP фактически ложится на клиента
сторона. FTP-клиент не устанавливает фактическое подключение к порту данных
сервера — он просто сообщает серверу, какой порт он прослушивает, и
сервер снова подключается к указанному порту на клиенте.Из
брандмауэр на стороне клиента это внешняя система, инициирующая
подключение к внутреннему клиенту — то, что обычно блокируется.

Пример активного FTP

Ниже приведен реальный пример активного сеанса FTP. Единственное, что
были изменены имена серверов, IP-адреса и имена пользователей. В
в этом примере сеанс FTP инициируется с testbox1.slacksite.com
(192.168.150.80), Linux-сервер, на котором запущен стандартный клиент командной строки FTP,
в testbox2.slacksite.com (192.168.150.90), Linux-сервер с ProFTPd
1.2.2RC2. Флаг отладки ( -d ) используется с FTP
клиент, чтобы показать, что происходит за кулисами. Все, что выделено красным, — это результат отладки, который показывает фактический FTP.
команды, отправляемые на сервер, и ответы, сгенерированные из этих
команды. Обычный вывод сервера показан черным, а пользовательский ввод — в
полужирный .

В этом диалоге есть несколько интересных моментов.Уведомление
что когда выдается команда PORT , она указывает порт на
система клиента (192.168.150.80), а не сервер. Мы
обратное поведение будет наблюдаться при использовании пассивного FTP. Пока мы на
в тему, небольшое примечание о формате ПОРТ
команда. Как вы можете видеть в примере ниже, он отформатирован как серия
из шести чисел, разделенных запятыми. Первые четыре октета — это IP
адрес, а последние два октета составляют порт, который будет использоваться
для передачи данных.Чтобы найти фактический порт, умножьте пятый октет
на 256, а затем добавьте шестой октет к итоговой сумме. Таким образом, в примере
под номером порта ((14 * 256) + 178) или 3762. Быстрая проверка с помощью
netstat должен подтвердить эту информацию.

testbox1: {/ home / p-t / slacker / public_html}%  ftp -d testbox2 
Подключен к testbox2.slacksite.com.
220 testbox2.slacksite.com FTP сервер готов.
Имя (testbox2: бездельник):  бездельник 
---> ПОЛЬЗОВАТЕЛЬ-бездельник
331 Пароль необходим для бездельника.Пароль:  TmpPass 
---> ПРОЙТИ XXXX
230 Пользователь бездельник вошел в систему.
---> СИСТЕМА
215 UNIX Тип: L8
Тип удаленной системы - UNIX.
Использование двоичного режима для передачи файлов.
ftp>  ls 
ftp: setsockopt (игнорируется): в доступе отказано
---> ПОРТ 192,168,150,80,14,178
Команда 200 PORT выполнена успешно.
---> СПИСОК
150 Открытие подключения к данным в режиме ASCII для списка файлов.
drwx ------ 3 бездельника 104 27 июля 01:45 public_html
226 Передача завершена.
ftp>  выйти из 
---> ВЫЙТИ
221 До свидания.

Пассивный FTP

Чтобы решить проблему инициализации сервером подключения к
клиент был разработан другой метод для FTP-соединений. Это было
известный как пассивный режим, или PASV , после команды, используемой
клиент, чтобы сообщить серверу, что он находится в пассивном режиме.

В пассивном режиме FTP клиент инициирует оба подключения к серверу,
решение проблемы межсетевых экранов, фильтрующих порт входящих данных
подключение к клиенту с сервера.При открытии FTP-соединения
клиент открывает два случайных непривилегированных порта локально (N> 1023 и
N + 1). Первый порт связывается с сервером через порт 21, но вместо этого
выдача команды PORT и разрешение серверу подключиться
обратно в свой порт данных, клиент выдаст PASV
команда. В результате сервер открывает случайный
непривилегированный порт (P> 1023) и отправляет P
обратно клиенту в ответ на команду PASV .Затем клиент инициирует соединение с порта
N + 1 к порту P на сервере для передачи данных.

С точки зрения серверного межсетевого экрана для поддержки пассивного режима FTP.
необходимо открыть следующие каналы связи:

  • Порт 21 FTP-сервера из любого места (клиент инициирует соединение)
  • Порт 21 FTP-сервера на порты> 1023 (Сервер отвечает на запросы клиента).
    порт управления)
  • портов FTP-сервера> 1023 из любого места (клиент инициирует данные
    подключение к случайному порту, указанному сервером)
  • Порты FTP-сервера> 1023 на удаленные порты> 1023 (сервер отправляет
    ACK (и данные) на порт данных клиента)

Нарисованное FTP-соединение в пассивном режиме выглядит так:

На шаге 1 клиент связывается с сервером через командный порт и выдает
команда PASV .Затем сервер отвечает на шаге 2 с
PORT 2024 , сообщая клиенту, какой порт он слушает
для передачи данных. На шаге 3 клиент затем инициирует данные
подключение от своего порта данных к указанному порту данных сервера. В заключение,
сервер отправляет обратно ACK на шаге 4 в порт данных клиента.

Хотя пассивный режим FTP решает многие проблемы со стороны клиента,
это открывает целый ряд проблем на стороне сервера. Самый большой
проблема заключается в необходимости разрешить любое удаленное подключение к портам с большим номером на
сервер.К счастью, многие демоны FTP, включая популярный WU-FTPD
разрешить администратору указать диапазон портов, которые FTP-сервер
буду использовать. См. Приложение 1 для получения дополнительной информации.
Информация.

Вторая проблема связана с поддержкой и устранением неполадок.
клиенты, которые поддерживают (или не поддерживают) пассивный режим. Например,
Утилита FTP из командной строки, поставляемая с Solaris, не поддерживает пассивные
режим, требующий стороннего FTP-клиента, такого как ncftp.

ПРИМЕЧАНИЕ. Это уже не так — используйте опцию -p с FTP-клиентом Solaris для
включить пассивный режим!

Благодаря огромной популярности всемирной паутины многие люди предпочитают
использовать свой веб-браузер в качестве FTP-клиента.Большинство браузеров поддерживают только
пассивный режим при доступе к ftp: // URL. Это может быть хорошо или плохо
в зависимости от того, на что настроены серверы и брандмауэры.

Пример пассивного FTP

Ниже приведен реальный пример пассивного сеанса FTP. Единственное, что
были изменены имена серверов, IP-адреса и имена пользователей. В
в этом примере сеанс FTP инициируется с testbox1.slacksite.com
(192.168.150.80), Linux-сервер, на котором запущен стандартный клиент командной строки FTP,
в testbox2.slacksite.com (192.168.150.90), Linux-сервер с ProFTPd
1.2.2RC2. Флаг отладки ( -d ) используется с FTP
клиент, чтобы показать, что происходит за кулисами. Все, что выделено красным, — это результат отладки, который показывает фактический FTP.
команды, отправляемые на сервер, и ответы, сгенерированные из этих
команды. Обычный вывод сервера показан черным, а пользовательский ввод — в
полужирный .

Обратите внимание на разницу в команде PORT в этом примере:
в отличие от активного примера FTP.Здесь мы видим, что порт открывается на
система server (192.168.150.90), а не клиент. Видеть
обсуждение формата команды PORT выше, в
раздел Пример активного FTP.

testbox1: {/ home / p-t / slacker / public_html}%  ftp -d testbox2 
Подключен к testbox2.slacksite.com.
220 testbox2.slacksite.com FTP сервер готов.
Имя (testbox2: бездельник):  бездельник 
---> ПОЛЬЗОВАТЕЛЬ-бездельник
331 Пароль необходим для бездельника.Пароль:  TmpPass 
---> ПРОЙТИ XXXX
230 Пользователь бездельник вошел в систему.
---> СИСТЕМА
215 UNIX Тип: L8
Тип удаленной системы - UNIX.
Использование двоичного режима для передачи файлов.
ftp>  пассивный 
Пассивный режим включен.
ftp>  ls 
ftp: setsockopt (игнорируется): в доступе отказано
---> PASV
227 Вход в пассивный режим (192,168,150,90,195,149).
---> СПИСОК
150 Открытие подключения к данным в режиме ASCII для списка файлов
drwx ------ 3 бездельника 104 27 июля 01:45 public_html
226 Передача завершена.ftp>  выйти из 
---> ВЫЙТИ
221 До свидания.
 

Прочие примечания

Читатель, Maarten Sjouw, отметил, что активный FTP не будет работать при использовании
в сочетании с устройством NAT (трансляция сетевых адресов) на стороне клиента, которое
недостаточно умен, чтобы изменять информацию об IP-адресе в FTP-пакетах.

Сводка

Следующая таблица должна помочь администраторам запомнить, как работает каждый режим FTP:

 Активный FTP:
     команда: клиент> 1023 -> сервер 21
     данные: клиент> 1023 1023 -> сервер 21
     данные: клиент> 1024 -> сервер> 1023
 

Краткое изложение плюсов и минусов активного vs.пассивный FTP также в
приказ:

Активный FTP полезен для администратора FTP-сервера, но вреден
администратору на стороне клиента. FTP-сервер пытается подключиться к
случайные высокие порты на клиенте, которые почти наверняка будут заблокированы
брандмауэром на стороне клиента. Пассивный FTP полезен для
клиент, но вреден для администратора FTP-сервера. Заказчик сделает
оба подключения к серверу, но одно из них будет со случайным высоким
порт, который почти наверняка будет заблокирован брандмауэром на сервере
сторона.

К счастью, здесь есть компромисс. Поскольку администраторы используют FTP
серверам нужно будет сделать свои серверы доступными для наибольшего числа
клиентов, им почти наверняка потребуется поддержка пассивного FTP. В
раскрытие портов высокого уровня на сервере можно минимизировать, указав
ограниченный диапазон портов для использования FTP-сервером. Таким образом, все, кроме
для этого диапазона портов может быть установлен брандмауэр на стороне сервера. Пока это
не устраняет весь риск для сервера, а значительно снижает его.См. Приложение 1 для получения дополнительной информации.

Список литературы

Отличный справочник о том, как работают различные интернет-протоколы и
проблемы, связанные с их защитой от брандмауэра, можно найти в O’Reilly и
Книга Associates, Building Internet Firewalls, 2nd Ed , by Brent
Чепмен и Элизабет Цвикки.

Примечание 2012: Эта книга ОЧЕНЬ старая и содержащаяся в ней информация может быть устаревшей!

Наконец, окончательной ссылкой на FTP будет RFC 959, который устанавливает
далее официальные спецификации протокола FTP.RFC могут быть
загружен из множества источников, включая http://www.faqs.org/rfcs/rfc959.html.


.

Активный или пассивный режим FTP: какой из них более безопасен?

FTP или протокол передачи файлов используется для передачи файлов между двумя компьютерами: один является хостом или сервером FTP, а другой — клиентом FTP. Помимо передачи файлов, FTP помогает получить доступ к физическому расположению сервера для изменения файлов, таких как удаление файлов, создание папок или даже изменение содержимого файлов.

Прежде чем узнать разницу между активным и пассивным FTP, вам необходимо знать, как работает FTP.Обычно, когда вы открываете FTP-соединение с FTP-сервером, между компьютерами открываются два соединения: одно используется для передачи данных, а другое используется для передачи сигналов управления. Оба канала являются TCP-соединениями. Для команд используется порт TCP номер 21, а порт номер 20 используется для данных.

Преимущество активного FTP: повышает безопасность FTP-сервера

Преимущество пассивного FTP: требует меньшего количества изменений конфигурации на клиентском компьютере.

Активный режим

В этом режиме клиентская машина FTP открывает соединение, используя случайный порт, к порту 21 сервера. Затем сервер открывает порт данных со своим номером порта 20 на случайный порт клиентской машины. Номер порта данных на клиентском компьютере предоставляется клиентским компьютером. И серверы, и клиенты несут ответственность за открытие соединения. Клиент запускает соединение с командным каналом, тогда как сервер запускает соединение с каналом данных. При настройке активного режима FTP вам необходимо убедиться, что порты на клиентских машинах открыты, если вы используете брандмауэр.

Пассивный режим

В пассивном режиме и команда, и канал данных открываются клиентским компьютером. На начальном этапе подключения клиент открывает TCP-соединение со случайным портом на порт 21 сервера, после чего клиент отправляет серверу команду PASV, а сервер отправляет номер порта, который он хочет использовать в качестве канала данных. . Затем клиент отправляет данные с номером порта, отправленным сервером. Номер порта, предоставленный сервером для канала данных, должен быть открыт в брандмауэре на стороне сервера.В IIS есть возможность выбрать диапазон портов, которые будут использоваться для канала данных. После определения диапазона портов вам необходимо открыть этот диапазон портов в брандмауэре сервера. Номер порта, используемый клинетом в пассивном режиме, всегда больше 1023.

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

Какой режим более безопасен? Оба режима небезопасны, потому что они не используют SSL.Следовательно, любой, кто обнюхивает сетевую карту, может прочитать данные, проходящие через FTP (как в активном, так и в пассивном режимах)

Похожие сообщения:

.

Как включить пассивный режим FTP

Как включить пассивный режим FTP


Последнее изменение: 2 июня 2020 г.

Обзор

В этом документе объясняется, как использовать активный или пассивный режим для подключения к серверу протокола передачи файлов (FTP).

Важно:

В cPanel и WHM версии 60 и новее система по умолчанию включает пассивные порты с 49152 по 65534 для серверов Pure-FTPd и серверов ProFTPd.Если вы используете плагин брандмауэра CSF, система также добавляет диапазоны пассивных портов к брандмауэру вашего сервера по умолчанию.
Если вы используете приложения IPTABLES или firewalld для своего брандмауэра, вы должны вручную включить настройки брандмауэра для пассивных портов. Для получения дополнительной информации о брандмауэрах прочтите нашу документацию по настройке брандмауэра для cPanel и служб WHM.

Сеансы в активном и пассивном режимах

FTP использует порт данных и командный порт для передачи информации между клиентом и сервером.Во время обычного сеанса активного режима командный порт использует порт 21 , а порт данных использует порт 20 . Однако при использовании сеанса в пассивном режиме порт данных не всегда использует порт 20 .

Активный

В активном режиме FTP-сервер отвечает на попытку подключения и возвращает FTP-клиенту запрос на подключение с другого порта. Конфигурации преобразования сетевых адресов (NAT) блокируют этот запрос на подключение.

Активный FTP

Активный FTP (с межсетевым экраном)

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

Пассивный

В пассивном режиме клиент FTP инициирует обе попытки подключения . Конфигурации NAT не блокируют этот запрос на соединение.

Пассивный FTP (с межсетевым экраном)

Брандмауэр не , а не блокирует попытку сервера установить связь с клиентом, потому что клиент инициировал связь оба раза.

Примечание:

Если пользователи FTP существуют на стороне частной сети конфигурации NAT, вы должны включить пассивный режим FTP и открыть диапазон пассивных портов в файле конфигурации вашего FTP-сервера.Вам также может потребоваться открыть диапазон пассивных портов на вашем брандмауэре.

Настроить FTP-серверы

В разделах ниже объясняется, как редактировать конфигурации по умолчанию для сервера Pure-FTPd и сервера ProFTPd.

Примечание:

  • Локальный файл содержит желаемые настройки, которые перезаписывают любые настройки по умолчанию из основного файла.
  • По умолчанию система включает пассивные порты с 49152 по 65534 для серверов Pure-FTPd и серверов ProFTPd.

Серверы Pure-FTPd

Чтобы изменить конфигурацию FTP для сервера PureFTP, выполните следующие действия:

  1. Войдите на сервер как пользователь root через SSH.
  2. Откройте файл / var / cpanel / conf / pureftpd / local , если он уже существует, в текстовом редакторе. Если он еще не существует, создайте файл / var / cpanel / conf / pureftpd / local .
  3. Добавьте желаемые изменения в файл. Если ваш FTP-сервер находится за конфигурацией NAT, установите для параметра ForcePassiveIP публичный IP-адрес FTP-сервера, как показано в следующем примере:
      ForcePassiveIP: 203.0,113,0  

    Если ваш сервер не существует в конфигурации NAT, установите для параметра ForcePassiveIP следующую запись:

    Важно:

    В файле конфигурации может существовать только одна запись ForcePassiveIP .

  4. Если вы хотите изменить диапазон пассивных портов вашего сервера по умолчанию, выполните следующие команды:
      1
    2
      
      echo "PassivePortRange: 49152 65534" >> / var / cpanel / conf / pureftpd / local
    / usr / local / cpanel / scripts / setupftpserver pure-ftpd --force  
  5. Настройте сервер так, чтобы диапазон пассивных портов проходил через брандмауэр.Для этого следуйте инструкциям в разделе «Настройка брандмауэра» ниже.
  6. Перезапустите службу PureFTP с помощью следующей команды:
      / usr / local / cpanel / scripts / setupftpserver pure-ftpd --force  

Серверы ProFTPd

Чтобы изменить конфигурацию FTP для сервера ProFTPd, выполните следующие действия:

  1. Войдите на сервер как пользователь root через SSH.
  2. Откройте файл / var / cpanel / conf / proftpd / local , если он уже существует, в текстовом редакторе.Если он еще не существует, создайте файл / var / cpanel / conf / proftpd / local .
  3. Добавьте желаемые изменения в файл. Если ваш FTP-сервер находится за конфигурацией NAT, установите для параметра MasqueradeAddress публичный IP-адрес FTP-сервера, как показано в следующем примере:
      Маскарад Адрес: 203.0.113.0  

    Если ваш сервер не существует в конфигурации NAT , установите для параметра MasqueradeAddress следующую запись:

    Важно:

    В файле конфигурации может существовать только , одна запись MasqueradeAddress .

  4. Если вы хотите изменить диапазон пассивных портов вашего сервера по умолчанию, выполните следующие команды:
      1
    2
      
      echo "PassivePorts: 49152 65534" >> / var / cpanel / conf / proftpd / local
    / usr / local / cpanel / scripts / setupftpserver proftpd --force  
  5. Настройте сервер так, чтобы диапазон пассивных портов проходил через брандмауэр. Для этого следуйте инструкциям в разделе «Настройка брандмауэра» ниже.
  6. Перезапустите службу ProFTP с помощью следующей команды:
      / usr / local / cpanel / scripts / setupftpserver proftpd --force  

Настроить межсетевой экран

Примечание:

Система по умолчанию включает пассивные порты с 49152 по 65534 для серверов Pure-FTPd и ProFTPd.

Может потребоваться вручную добавить диапазон пассивных портов FTP-сервера в брандмауэр.

CSF

Если вы используете подключаемый модуль CSF для управления брандмауэром сервера, откройте / etc / csf / csf.conf и убедитесь, что диапазон пассивных портов существует в конце строки TCP_IN . По умолчанию система добавляет диапазон пассивных портов FTP-сервера к брандмауэру. Для получения дополнительной информации о том, как установить и использовать CSF, посетите веб-сайт CSF.

IPTABLES

Если вы используете приложение IPTABLES для брандмауэра FTP-сервера, выполните следующие шаги, чтобы добавить диапазон пассивных портов в брандмауэр вашего сервера:

  1. Установите приложение IPTABLES , если оно еще не существует на вашем сервере.Для этого выполните следующую команду:
      yum install iptables-services  
  2. После добавления записи IPTABLES в файл / etc / sysconfig / iptables выполните следующие команды:
      1
    2
      
      iptables -I INPUT -p tcp --dport 49152: 65534 -j ПРИНЯТЬ
    сервис iptables сохранить  

пожарный

Если вы используете приложение firewalld для своего сервера CentOS 7, CloudLinux ™ 7 или Red Hat® Enterprise Linux (RHEL) 7, выполните следующие команды, чтобы добавить диапазон пассивных портов в брандмауэр вашего сервера:

  1
2
3
  
  firewall-cmd --permanent --zone = public --add-service = ftp
брандмауэр-cmd --permanent --add-port = 49152-65534 / tcp
firewall-cmd --reload  

SolusVM и Xen

Если вы используете SolusVM и Xen® на сервере CloudLinux ™, у вас могут возникнуть проблемы с пассивным FTP.Эти проблемы могут напоминать брандмауэр или другую проблему с подключением, даже если брандмауэр не существует.

Чтобы решить эти проблемы, выполните следующие действия:

  1. Замените строку IPTABLES_MODULES = ip_conntrack_netbios_ns в файле / etc / sysconfig / iptables-config на узле VPS следующей строкой:
      IPTABLES_MODULES = ipt_REJECT ipt_tos ipt_TOS ipt_LOG ip_conntrack ipt_limit ipt_multiport iptable_filter iptable_mangle ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_length ipt_tcpmss ipt_ttl ipt_length ipt_nat_state_900 ipt_tl_length ipt_nat_state_900 ipt_length ipt_nat_state_state_900

  2. Запустите команду service iptables restart , чтобы перезапустить службу iptables .

Устранение неполадок пассивного режима FTP

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

  • В cPanel и WHM версии 66 и более поздних, установите для параметра ForcePassiveIP символ тильды ( ~ ). Система интерпретирует этот символ как неопределенную директиву и предотвращает автоматическое изменение /etc/pure-ftpd.conf или / etc / proftpd.conf файлов.
  • В cPanel и WHM версии 64 и более ранних следуйте указаниям в нашей документации временного решения для пассивной конфигурации FTP и NAT.

.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *