IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Пингвинятник (ОС *NIX) (http://www.imho.ws/forumdisplay.php?f=76)
-   -   FTP vsftpd невиден снаружи (http://www.imho.ws/showthread.php?t=147280)

Hatifnatt 22.05.2007 23:27

vsftpd за роутером
 
Есть проблема с которой пока никак не получается справиться, возможно кто-то сможет мне помоч.

Имеется комп (качалка/сервер) на OpenSuSE 10.2 находится он за ADSL модемом с роутером. Так же к модему подключен еще один комп и точка доступа. Итого выглядит так
Код:

LINUX --->\
          |--> ROUTER --> INTERNET
WINXP --->/

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

Теперь более подробно.
vsftpd запущен как демон т.е. сам по себе, а не из под xinetd, благодаря чудесному провайдеру называемому по простому СТРИМ, 21 порт прикрыт. И сервер крутится на не стандартном порте 2133, в стенке линукса нужные порты открыты, 2133, 2020 порты прокинуты в роутере.
конфиг сервера:

Код:

listen=YES
background=YES
listen_address=192.168.1.20
listen_port=2133
pasv_min_port=30000
pasv_max_port=30016
write_enable=YES
dirmessage_enable=YES
nopriv_user=ftpsecure
ftpd_banner="Welcome to Hatifnatt FTP service."
max_clients=4
max_per_ip=4
local_enable=YES
local_umask=002
chroot_local_user=YES
anonymous_enable=NO
anon_world_readable_only=YES
syslog_enable=NO
log_ftp_protocol=YES
xferlog_enable=YES
vsftpd_log_file=/var/log/vsftpd.log
#xferlog_std_format=YES
xferlog_file=/var/log/xferlog
dual_log_enable=YES
connect_from_port_20=YES
ftp_data_port=2020
idle_session_timeout=600
data_connection_timeout=120
pasv_enable=YES
port_enable=YES
pasv_promiscuous=YES
port_promiscuous=YES
pam_service_name=vsftpd
ssl_enable=NO

pasv_min_port=30000
pasv_max_port=30016
Стоит не зря, если эти порты в роутере прокинуть на сервер, то становиться возможным заходить броузером, но на удивление не любым (ИЕ не коннектит, Опера нормуль, ФФ тоже) и не отовсюду, с работы допустим я могу зайти, а товарищь зайти не может.
НО с другой стороны FAR у меня с работы так и не приконнектился, а CuteFTP вполне нормально и в пассиве и в активе.

Собственно как нужно настроить сервер и какие порты прокинуть в роутере чтоб без проблем можно было зайти любым броузером и ftp-клиентом в активном режиме и в пассивном.

Объяснил возможно несколько сумбурно, если нужно что-то уточнить то это с легкостью.

Очень надеюсь на решение вопроса с вашей помощью :)

hizel 25.05.2007 01:26

посмотреть со стороны ftp сервера пакетики tcpdump-ом или другим подобным инструментом - что к чему и в соответствии с результатами действовать

Hatifnatt 25.05.2007 12:37

hizel, а более подробно ?

sht62 28.05.2007 21:05

Может быть из-за запрета выполнения команды "ls -R" на сервере, если клиент использует её для получения листинга? Надо глянуть логи.
По умолчанию стоит "ls_recurse_enable=NO", можно попробовать поставить в YES и посмотреть что получится.
Правда пишут: "ls_recurse_enable - When enabled, this setting will allow the use of "ls -R". This is a minor security risk, because a "ls -R" at the top level of a large site may consume a lot of resources. Default: NO"

hizel 02.06.2007 02:04

Цитата:

Сообщение от Hatifnatt
hizel, а более подробно ?

Странно почему почта не приходит по этой ветке :/
В общем надеюсь не поздно.

Обычно в таких случая вешаем на интерфейс tcpdump
например >tcpdump -i eth0 -np host clientftphostip
и смотрим, что делается заодно держим в уме теорию
работы ftp в пассивном и активном режиме. Смотрим например здесь.

Если что то не летает хотя должно, смотрим в фаервол и логи ftp сервака.

kot_michael 23.10.2012 12:31

FTP vsftpd невиден снаружи
 
Господа у меня такая пролема - невиден FTP сервер снаружи. Исходные данные: сервер на CentOS 5.8 с поднятым vsftpd. по локальной сети коннект и пеедача файлов проходят. имеем kerio control как шлюз для выхода в инет. белый IP. на керио настраиваю проброс с входящего порта например 20721 на внутренний IP ftp сервера и на его порт. из дома выхожу в инет соответственно неимея белый IP. коннекчусь к внешнему адресу. пароль-логин проходит но прочитать список каталогов на сервере немогу. totalcommander пишет : команда PORT невыполнена а filezilla пишет: "Сервер отправил пассивный ответ с неопределяемым адресом. Использую существующий адрес сервера."
вот полный лог filezilla:

Соединяюсь с 77.*.*.*:20721...
Статус: Соединение установлено, ожидание приглашения...
Ответ: 220 Wellcome FTP
Команда: USER user
Ответ: 331 Please specify the password.
Команда: PASS *********
Ответ: 230 Login successful.
Команда: SYST
Ответ: 215 UNIX Type: L8
Команда: FEAT
Ответ: 211-Features:
Ответ: EPSV
Ответ: MDTM
Ответ: PASV
Ответ: REST STREAM
Ответ: SIZE
Ответ: TVFS
Ответ: UTF8
Ответ: 211 End
Команда: OPTS UTF8 ON
Ответ: 200 Always in UTF8 mode.
Статус: Соединение установлено
Статус: Получение списка каталогов...
Команда: PWD
Ответ: 257 "/"
Команда: TYPE I
Ответ: 200 Switching to Binary mode.
Команда: PASV
Ответ: 227 Entering Passive Mode (192,168,0,7,137,80)
Статус: Сервер отправил пассивный ответ с неопределяемым адресом. Использую существующий адрес сервера.
Команда: LIST
Ошибка: Превышено время ожидания соединения
Ошибка: Не могу получить список каталогов!


что нехватает? толи на kerio надо открыть толи сам vsftpd сервер недонастроен. непойму.

P.P.S конфиг vsftpd


anonymous_enable=NO
local_enable=YES
write_enable=YES

local_umask=022
dirmessage_enable=YES
xferlog_enable=YES

connect_from_port_20=YES
xferlog_std_format=YES
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES




local_root=/home/FTPuser
chroot_local_user=YES
ftpd_banner=Wellcome FTP
listen_port=10721

Plague 23.10.2012 16:32

1. попробовать с прямым пробросом порта, а не 20721 -> 10721 (а еще лучше с стандартным портом (21))
2. в Тотале попробовать отключить/включить пассивный режим.

albo 23.10.2012 17:29

pasv_address укажите

Borland 23.10.2012 19:25

Посмотрел мануал.
Для того, чтобы сервер из-под NAT отдавал правильный (внешний) адрес для пассива - в конфиге требуется указать pasv_address.
Кроме того - нужно указать диапазон портов для пассивного режима (pasv_min_port, pasv_max_port) и на файрволле пробросить и эти порты (а не только 21-й).
И возможно (а если внешний адрес динамический - обязательно) в качестве pasv_address указать не IP, а DNS-имя, и включить pasv_addr_resolve (YES).

kot_michael 24.10.2012 11:21

Цитата:

Сообщение от Borland (Сообщение 1764883)
Посмотрел мануал.
Для того, чтобы сервер из-под NAT отдавал правильный (внешний) адрес для пассива - в конфиге требуется указать pasv_address.
Кроме того - нужно указать диапазон портов для пассивного режима (pasv_min_port, pasv_max_port) и на файрволле пробросить и эти порты (а не только 21-й).

Интересно. в моём мануале http://centos.name/?page/howto/Install-Vsftpd этого параметра нет.
указал в pasv_address свой внешний адрес. диапазон портов и прокинул их на шлюзе. Теперь работает. правда с обрывами но зато работает ))
Спасибо за помощь.!! :beer:


Часовой пояс GMT +4, время: 11:50.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.