FreeBSD 9.2 + natd + vsftpd (пассивный режим)

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
redmax
проходил мимо
Сообщения: 1
Зарегистрирован: 2013-11-20 12:18:43

FreeBSD 9.2 + natd + vsftpd (пассивный режим)

Непрочитанное сообщение redmax » 2013-11-30 18:35:23

Уважаемые Гуру, подскажите пожалуйста иначе мне бессонница гарантирована :-)
Есть сеть предприятия с адресом - 192.168.16.0/24.
В этой сети есть шлюз (192.168.16.1), через который осуществляется выход в Интернет. На шлюзе работает FreeBSD 9.2, работает (ipfw) и поднят natd.
В сети есть ещё один сервер с FreeBSD (192.168.16.2) здесь поднят vsftpd.
Хочу дать доступ к ftp серверу внешним пользователям. Причем так, чтобы сервер работал в пассивном режиме.
Для этого я сделал следующее:
Пробросил порт в natd(на шлюзе) с помощью: redirect_port tcp 192.168.16.2:21 21
В настройках vsftpd указал:
pasv_address=XX.XX.XX.XX #(мой внешний адрес)
pasv_min_port=65201
pasv_max_port=65535

Клиента настроил подключаться только в режиме пассивного сервера. Запустил. Как и следовало ожидать к серверу я подключился, но списка каталогов я не получаю так как порты 65201-65535 я не пробрасывал с помощью redirect_port.

Далее начинаются непонятки. Если в настройках vsftpd закомментировать параметр pasv_address, то ftp поднимается в полном объеме.
При этом на сервере после команды:
"PASV"
формируется ответ:
"227 Entering Passive Mode (192,168,16,2,255,252)" (что логично)

Но ко мне на клиент приходит уже:

"227 Entering Passive Mode (XX,XX,XX,XX,255,252)" (кто-то подменил неправильный ответ на правильный).

Отсюда вопрос:
1. Кто способен подменить адрес внутри ftp-протокола: natd или zyxel P330W EE (который стоит у меня дома)?
2. И самое главное! Каким образом natd пробрасывает порт 65532 на 192.168.16.2, если я не редиректю эти порты!

В первую очередь меня беспокоит 2-ой вопрос.

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

BlitzKrieg
ст. прапорщик
Сообщения: 538
Зарегистрирован: 2008-03-13 12:02:59

Re: FreeBSD 9.2 + natd + vsftpd (пассивный режим)

Непрочитанное сообщение BlitzKrieg » 2013-12-02 11:35:48

Вы пробросили только 21 порт, порт команд. Далее вы говорите команду PASV. Сообщение от сервера с ответом на эту команду "227 Entering Passive Mode (192,168,16,2,255,252)" передается также по порту команд. Все, что передается наружу проходит нат, поэтому адрес в этом сообщении меняется.
Соединение по порту данных так и не устанавливается о чем говорит невозможность выполнить команду листинга каталога.
Как-то так.

Аватара пользователя
skipper
рядовой
Сообщения: 23
Зарегистрирован: 2009-12-07 18:59:11
Контактная информация:

Re: FreeBSD 9.2 + natd + vsftpd (пассивный режим)

Непрочитанное сообщение skipper » 2013-12-02 17:32:55

Настройте ftp-proxy на вашем шлюзе и будет вам счастье :)

Код: Выделить всё

/usr/sbin/ftp-proxy -b 192.168.16.1 -p 21 -R 192.168.16.2 -P 21
По поводу "почему так, а не иначе", читайте подробнее про проброс ftp.