Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » vsftpd

Модерирует : lynx, Crash_Master, dg, emx, ShriEkeR

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Есть машина, на которой блокированы порты 20 и 21
Выбрал 2 неблокированных порта 2020 и 2021
В vsftpd.conf написал:
connect_from_port_20=NO
listen_port=2021
ftp_data_port=2020
 
Но что-то это непомогает. Вот что получается:
C:\>ftp
ftp> open server.ru 2021
Connected to server.ru.
220 (vsFTPd 2.0.3)
User (server.ru:(none)): user
331 Please specify the password.
Password:
230 Login successful.
ftp> ls
500 Illegal PORT command.
425 Use PORT or PASV first.
ftp> pasv
Invalid command.
ftp> port 2020
Invalid command.
 
Farом тоже не получается.
Еще, когда Фаром подключаюсь, то она зачем то локальные адреса упоминает:
-> PWD
<- 257 "/home/user"
-> PORT 192,168,0,152,4,156
<- 500 Illegal PORT command
 
Кстати, в локалке все работает отлично и в активном режиме и в пассивном.
iptables - не причем, т.к. пробовал отключать.
 
Какая-то заморочка либо с портами, либо с адресами.
Посоветуйте, что подкрутить.

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 18:57 19-07-2005 | Исправлено: vii, 20:10 19-07-2005
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vii

Цитата:
ftp> pasv
Invalid command.

Все верно. Твой клиент это сообщает, а не сервер.

Цитата:
ftp> port 2020
Invalid command.

то же самое. к тому же у команды port параметры указываются не так.
 
Запусти ftp без параметров и выполни команду help, не соединяясь ни с каким сервером, и ты не увидишь в появившемся списке ни команды pasv, ни port.
 

Цитата:
Еще, когда Фаром подключаюсь, то она зачем то локальные адреса упоминает:

Все верно. Изучай RFC.
 

Цитата:
iptables - не причем, т.к. пробовал отключать.  

при чем. ip_nat_ftp отслеживает соединения по порту 21, а не 2021.
 
А теперь ты спросишь, что же делать. Соединяйся в пассивном режиме, но не стандартным виндовым клиентом, а хоть тем же фаром.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 22:06 19-07-2005 | Исправлено: ooptimum, 22:11 19-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum

Цитата:
Запусти ftp без параметров и выполни команду help, не соединяясь ни с каким сервером, и ты не увидишь в появившемся списке ни команды pasv, ни port.  

Что их там нет, я и сам знаю. Поэтому и спрашиваю.
Как работает фтп я в общих чертах знаю, только не помогает это.

Цитата:
Соединяйся в пассивном режиме, но не стандартным виндовым клиентом, а хоть тем же фаром.

Так в том то и дело, что Фаром не работает ни в активном, ни в пассивном!
В пассивном режиме пишет такое:
<- 215 UNIX Type: L8
-> PWD
<- 257 "/home/v"
-> REST 0
<- 350 Restart position accepted (0).
-> PASV
<- 227 Entering Passive Mode (192,168,1,3,51,56)
-----------------------------------------
16:45:23 "Requesting folder name"
[71.247.203.207 -> 71.247.203.207]
 
 
:LOOP
Немного повисев в таком состоянии он пишет
No transfer to ABOR.
И показывает мне пустую дерикторию. При попытке ее сменить, получаем следующее:
-> CWD ..
<- 250 Directory successfully changed.
-> PWD
<- 257 "/"
-> PASV
<- 227 Entering Passive Mode (192,168,1,3,240,122)
-----------------------------------------
17:13:07 "Requesting folder name"
[71.247.203.207 -> 71.247.203.207]
 
И так до бесконечности (goto LOOP)
 
В локалке все работает нормально.
Я так думаю, что в локалке они передают таки данные по 20-му порту.
А тут не могут договориться насчет 2020 и тоже пытаются по 20-му. А он закрыт.
Только не пойму, клиент виноват или сервер.
Но ведь люди как-то настраивают фтп на нестрандарных портах!
 
Добавлено:
Забыл уточнить.

Цитата:
Есть машина, на которой блокированы порты 20 и 21

Имеется ввиду удаленная машина. Т.е. 20-й и 21-й порты блокированы у провайдера.

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 01:19 20-07-2005 | Исправлено: vii, 01:22 20-07-2005
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vii
В пассивном режиме удаленная машина не пытается соединиться на твой порт (который ты указываешь командой port), а открывает порт у себя, к которому пытается присоединиться твой клиент. В первом случае это был порт 13112 (192,168,1,3,51,56), а во втором -- 61562 (192,168,1,3,240,122). Оба на машине с адресом 192.168.1.3, которая в нормальных условиях не должна быть доступна через интернет из-за своего адреса. Поэтому я делаю вывод, что скорее всего машина находится за шлюзом, на котором настроен проброс портов. Если это так, то откуда шлюзу было знать, что было необходимо пробрасывать эти порты? Более того, даже если я не угадал про проброс портов и шлюз, твоя машина пыталась установить соединение с хостом 192.168.1.3. А теперь вопрос -- на всем пути, начиная с твоей машины, настроена ли маршрутизация до этого хоста?

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 07:59 20-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum
Спасибо. Кое-что начинает вырисовываться.

Цитата:
машина находится за шлюзом, на котором настроен проброс портов.

Совершенно верно. Там настроено перекидывать внешние запросы по портам 2020 и 2021 на 192.168.1.3.

Цитата:
откуда шлюзу было знать, что было необходимо пробрасывать эти порты

Т.е. правильно ли я понимаю? Мне надо в vshtpd.conf указать, к примеру:
pasv_min_port=2022
pasv_max_port=2030
А на шлюзе пробрасывать эти порты на 192.168.1.3

Цитата:
твоя машина пыталась установить соединение с хостом 192.168.1.3. А теперь вопрос -- на всем пути, начиная с твоей машины, настроена ли маршрутизация до этого хоста?

Я соединяюсь с внешним IP раутера, а он видит, что порт 2021 и перекидывает во внутреннюю сеть на фтп-сервер. Вроде логично...

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 17:37 20-07-2005
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vii

Цитата:
Совершенно верно. Там настроено перекидывать внешние запросы по портам 2020 и 2021 на 192.168.1.3...
Я соединяюсь с внешним IP раутера, а он видит, что порт 2021 и перекидывает во внутреннюю сеть на фтп-сервер.

Это значит, что для соединения с этим сервером в:
 
А) активном режиме, если клиент не имеет "белого" адреса и находится внутри сети за шлюзом, необходимо научить NAT на этом шлюзе, что командные соединения с FTP происходят не только на порт 21, но и на 2021, чтобы NAT атоматически пробрасывал порты, открываемые на клиентской машине в течение сеанса по команде PORT или EPRT, на данную клиентскую машину. А именно тебе надо научить ip_nat_ftp, коль скоро у тебя iptables, -- у этого модуля есть параметр ports, в котором можно перечислить до 8 портов, на которых необходимо осуществлять мониторинг командного канала ftp. По умолчанию этот модель отслеживает только соединения на порт 21.  Проблема: это необходимо проделать всем клиентам (1 раз на каждый шлюз), планирующим соединения с данным сервером в активном режиме.
 
Б) пассивном режиме необходимо научить NAT на шлюзе, отделяющем FTP-сервер от глобальной сети, анализировать командный канал FTP на порту 2021 (отслеживать ответы на команды PASV и EPSV), чтобы автоматически пробрасывать порты, открываемые на данном FTP-сервере в течение сессии с клиентом, на данный FTP-сервер. Если NAT на шлюзе не умеет следить за командным каналом FTP, то можно настроить статический проброс определенного диапазона портов на данный FTP-сервер. vsftpd имеет параметры pasv_min_port и pasv_max_port для настройки диапазона портов, открываемых в пассивном режиме, а также pasv_address для настройки адреса, передаваемого при включении пассивного режима. Например:
Код:
pasv_min_port=50000
pasv_max_port=60000
pasv_address=внешний адрес шлюза


Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 22:48 20-07-2005 | Исправлено: ooptimum, 22:57 20-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо! Помогло!

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 23:16 20-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum
Такой еще вопрос.
Я так понимаю, что если другой компьютер из моей сети будет, к примеру, лазить по сайтам в интернете, и кто-то захочет подключиться к нему на темпорари порт из диапазона, который перебрасывается на фтп-сервер, то получится обломс-с-с.
Отсюда вопрос, какой диапазон мне лучше использовать? Брать адреса повыше и не очень много?

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 08:24 21-07-2005
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vii
Такой вариант возможен при настройках по умолчанию. Для того, чтобы этого избежать, имеется возможность задавать используемый NAT-ом диапазон портов. Для таргета SNAT есть параметр "--to-source <ipaddr>[-<ipaddr>][:port-port]", а для MASQUERADE -- "--to-ports <port>[-<port>]", в которых ты и можешь задать диапазон портов, который не будет пересекаться с диапазоном от vsftpd.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 16:02 24-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А у меня НАТ обеспечивается раутером (в смысле железякой). Там вроде такого нет.
Или я что-то не так понял?
Т.е. топология такая:
Есть ДСЛ-модем (он же раутер) с несколькими изернет-портами. И сетка в эти порты воткнута.

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 09:14 29-07-2005
jacktheripper



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Зайди в модем и сделай переброс портов если он (модем) работает как роутер
Какой у тя ADSL-модем?

Всего записей: 4 | Зарегистр. 27-01-2004 | Отправлено: 01:56 30-07-2005 | Исправлено: jacktheripper, 02:02 30-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Так переброс портов я и так сделал.
У меня сейчас 2021-2030 уходят на фтп.
 
vsftpd.conf:
listen_port=2021
pasv_min_port=2022
pasv_max_port=2030
 
Все работает.
Просто я имею в виду, что другая машина из моей сети может общаться с каким-нибудь внешним хостом и попросить коннекшн на порт 2025. А этот коннекшон пойдет не к ней, а на фтп.

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 02:48 30-07-2005
ooptimum



Silver Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vii
Какой модем? В Д-линках, например, можно указать диапазон портов для SNAT.

Всего записей: 2898 | Зарегистр. 30-05-2002 | Отправлено: 12:22 30-07-2005
vii



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Нечто вроде этого
http://westell.com/content/sales/327W.pdf

Всего записей: 444 | Зарегистр. 21-10-2004 | Отправлено: 19:24 30-07-2005
kmskmskms

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
ooptimum
такой вопрос. Дома стоит vsftpd за шлюзом в качестве которого выступает Dlink DIR 1000, на нём проброшен чисто 21 порт на мой комп с vsftpd со внешки все ко мне заходят и всё работает отлично в пассивном режиме.
конфиг  
-----------
listen=YES
anonymous_enable=YES
anon_root=/home/ftp
local_enable=NO
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
 
max_clients=10
--------------
На работе, тоже стоит vsftpd с точно таким же конфигом, также проброшен чисто 21 порт на шлюзе в качестве которого выступает фряха,  но из внешки туда достучаться никто не может. все порты открыты.  
Вариант в стиле  
-----------
pasv_min_port=50000  
 pasv_max_port=60000  
 pasv_address=внешний адрес шлюза
---------------  
и проброса соответствующих портов работает, но нежелателен. ибо с локалки доступ становится невозможенн на фтп так как он выдаёт свой внешний ип. Да и вообще. в чём может быть косяк, ведь дома всё работает, с пробросом только 21 порта и без какихлибо доп настроек на vsftpd или шлюзе и без UPnP. Конфиги абсолютно идентичные что там что там. Остальные сервисы и пробросы портов на работе работают отлично, это www, жабер, почта, sql, ssh и тд. а с фтп какойто затык. Ещё раз уточняю, дома я никаких дополнительных настроек не делал, тупо прокинул на длинке 21 порт и всё заработало искаропки.

Всего записей: 1 | Зарегистр. 18-06-2011 | Отправлено: 15:27 18-06-2011 | Исправлено: kmskmskms, 15:37 18-06-2011
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Компьютеры » В помощь системному администратору » vsftpd


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru