Страница 1 из 2

Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-23 21:32:35
Plohish
Добрый день господа.
Сразу предупрежу, опыта совсем мало, только начал разбираться с фряхой.
Поднял роутер на Freebsd 7.2 для домашних нужд...
внутренняя сеть 172.16.1.0 rl0
внешняя 192.168.0.0
во внешней сети стоит сервер инета 192.168.100.201, подключение по pptp, настроил mpd5
встал вопрос о пробросе портов под FTP на домашней машине.
адрес её 172.16.1.2
сделал по примеру указанному в статье http://www.lissyara.su/?id=1967
файервол для начала полностью открыт
правила:

#вешаем нат на внешний ип с редиректом:
nat 1 config log if rl0 reset same_ports redirect_port tcp 172.16.1.2:24 24

#далее диверт:
add 10130 nat 1 ip from any to any in via rl0

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

заранее благодарен за ответ.

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 10:29:05
Plohish
Ситуация ещё смешнее, заменил первое правило на полное перенаправление по адресу 172.16.1.2

nat 1 config log if rl0 redirect_addr 172.16.1.2 0.0.0.0

ситуация та же... даже и не знаю что думать...

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 10:49:11
schizoid
1. фтп использует 20 , 21 порт в активном режиме, и

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

PassivePorts 45501 45510
в пасивном

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

ipfw nat 760 config if rl1 redirect_port tcp 192.168.0.100:45500-45510 45500-45510
ipfw nat 750 config if rl1 redirect_port tcp 192.168.0.100:21 21
ipfw nat 700 config if rl1 redirect_port tcp 192.168.0.100:20 20

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 11:01:11
Plohish
почему тогда вот в таком виде на 21 порт не работает?
nat 1 config log if rl0 redirect_addr 172.16.1.2 0.0.0.0

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 13:10:36
schizoid
а где указывается у вас 21-й порт?

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 13:36:41
terminus
Plohish писал(а):почему тогда вот в таком виде на 21 порт не работает?
nat 1 config log if rl0 redirect_addr 172.16.1.2 0.0.0.0
потому, что надо так:

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

nat 1 config log redirect_addr 172.16.1.2 192.168.100.201

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 13:47:34
Plohish
terminus писал(а): потому, что надо так:

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

nat 1 config log redirect_addr 172.16.1.2 192.168.100.201
мне нужен доступ к FTP не из инета, а из внутренней сети провайдера, расположенной за роутером, и я так полагаю что в предложенном вами варианте доступ к FTP например с адреса 192.168.33.15 будет не возможен?
да и суть то не меняется, если указываем

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

nat 1 config log redirect_addr 172.16.1.2 0.0.0.0
это означает что пакеты от любого адреса на внешний интерфейс пойдёт на машину 172.16.1.2
либо я чего то не понимаю?

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:09:45
terminus
redirect_addr localIP publicIP
localIP - куда "пересылать"
publicIP - с какого "внешнего адреса" (адрес используемый на вашем сетевом интерфейсе)

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

nat 1 config log redirect_addr 172.16.1.2 192.168.100.201
в этой конструкции нет параметра if или ip - адрес для своей работы он берет из publicIP.

---

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

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

nat 1 config log if rl0 reset same_ports redirect_port tcp 172.16.1.2:21 21 redirect_port tcp 172.16.1.2:45501-45510 45501-45510
Если выставить на клиенте работу в активном режиме то тогда надо пробрасывать только 21 порт.

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

nat 1 config log if rl0 reset same_ports redirect_port tcp 172.16.1.2:21 21

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:23:24
Plohish
извините, я наверное непонятно написал в первом своем посте.
на роутере
внешний интерфейс rl0 с адресом 192.168.28.214
локальный интерфейс хl0 с адресом 172.16.1.1
за роутером во внешней сети стоит машинка (шлюз) в инет, её адрес 192.168.100.201
я так думаю эта машинка к моей проблеме не имеет отношения.

внутри моей сети стоит машинка с адресом 172.16.1.2 и на ней FTP сервер, к которому нужно из сети 192.168.0.0 иметь доступ.

я не могу понять почему при обращении к моему FTP:
TotalCommander - работает
FireFox - работает
а вот эксплорер или проводник винды - НЕ работает!!!
при прямом соединении, без роутера, просто соседние машинки в сети, всё прекрасно работает и с эксплорером в том числе.

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:31:12
terminus
это должно дать то что вы хотите.

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

nat 1 config log if rl0 reset same_ports redirect_port tcp 172.16.1.2:21 21 redirect_port tcp 172.16.1.2:45501-45510 45501-45510
адрес 192.168.28.214 он возьмет из "if rl0". Все будет.
Только разберитесь какой диапазон портов использует ваш фтп сервер на 172.16.1.2 для обеспечения работы клиента в пассивном режиме, и соответсвенно поменяйте диапазон 45501-45510.

---
я не могу понять почему при обращении к моему FTP:
TotalCommander - работает
FireFox - работает
а вот эксплорер или проводник винды - НЕ работает!!!
все дело в настройках клиента - в каком режиме он работает - активном или пассивном.
фаерфокс наверно умный и по умолчанию работает в активном режиме (сервер с 20 порта коннектится к нему), а эксплоррер в пассивном (пытается коннектится к серверу сам).

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:35:09
Plohish
у FTP сервера принудительно указаны порты для пассива 6021-6023
дописал их в редирект как Вы и посоветовали, толку НОЛЬ

всё по прежнему, тотал и файерфокс работают... интернет эксплорер нет.
пробовал уже с разных машин в сетке... одно и тоже...
прям идиотизм какой то... обидно себя чувствовать ущербным :cz2:

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:36:29
terminus
попробуйте нат сервер рестартнуть. нат иногда тупит при изменениях конфигурации - проверьте как будет работать после рестарта.

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:39:42
Plohish
пробую рестартануть сервак полностью.
про пассив и актив...
тот же тотал командер, у него есть возможность указать в настройках пассивный режим (подключаться как броузер)
и это тоже работает!
...

нет, рестарт не помогает, прям мистика...

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:50:34
Plohish
terminus
гляньте личку

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 14:58:41
terminus
на самом фтп сервере фаервол не может мешать?

какой фтп сервер вы используете - встроенный или vsftpd/proftpd?

попробуйте на фтп сервере выполнить команду

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

nc -k -l 0.0.0.0 6021
а на виндовом клиенте выполните телнет на

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

telnet 192.168.28.214 6021
и понажимайте клавиши - повводите какой-нить текст. при этом на фтп сервере где выполняется команда nc этот текст должен будет появится на терминале.
так можно проверить, что нат работает и фаервол нигде не мешает.

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:03:44
terminus
тот же тотал командер, у него есть возможность указать в настройках пассивный режим (подключаться как броузер)
и это тоже работает!
может быть, что тотал командер умный и, когда происходит отлуп по пассивному он тут же пытается соединиться по активному. у него логи при соединении и передачи данных не показываются? если показываются, то там можно видеть через какие порты происходит передача данных (20 <-> x или 6021 <-> x)?

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:11:40
Plohish
FTP сервер на машинке с виндой, используется FileZilla сервер
файервол на машинке с FTP отключен, не мешает.
логи у тотала есть:
актив:

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

----------
Connect to: (24.12.2009 15:08:54)
hostname=192.168.28.214
username=user
startdir=/etc
220-FileZilla Server version 0.9.33 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
USER user
331 Password required for user
PASS ***********
230 Logged on
SYST
215 UNIX emulated by FileZilla
FEAT
211-Features:
 MDTM
 REST STREAM
 SIZE
 MLST type*;size*;modify*;
 MLSD
 UTF8
 CLNT
 MFMT
211 End
CLNT Total Commander (UTF-8)
200 Don't care
OPTS UTF8 ON
200 UTF8 mode enabled
CWD /etc
550 CWD failed. "/etc": directory not found.
Connect ok!
PWD
257 "/" is current directory.
Чтение каталога...
TYPE A
200 Type set to A
PORT 192,168,28,52,209,213
200 Port command successful
LIST
150 Opening data channel for directory list.
Загрузка
Ожидание ответа сервера...
226 Transfer OK
QUIT
221 Goodbye
пассив

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

Connect to: (24.12.2009 15:09:53)
hostname=192.168.28.214
username=user
startdir=/etc
220-FileZilla Server version 0.9.33 beta
220-written by Tim Kosse (Tim.Kosse@gmx.de)
220 Please visit http://sourceforge.net/projects/filezilla/
USER user
331 Password required for user
PASS ***********
230 Logged on
SYST
215 UNIX emulated by FileZilla
FEAT
211-Features:
 MDTM
 REST STREAM
 SIZE
 MLST type*;size*;modify*;
 MLSD
 UTF8
 CLNT
 MFMT
211 End
CLNT Total Commander (UTF-8)
200 Don't care
OPTS UTF8 ON
200 UTF8 mode enabled
CWD /etc
550 CWD failed. "/etc": directory not found.
Connect ok!
PWD
257 "/" is current directory.
Чтение каталога...
TYPE A
200 Type set to A
PASV
227 Entering Passive Mode (172,16,1,2,23,134)
Server reports local IP -> Redirect to: 192.168.28.214
LIST
150 Connection accepted
Загрузка
Ожидание ответа сервера...
226 Transfer OK
QUIT
221 Goodbye

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:17:35
Plohish
а вот лог с самого FTP сервера при подключении к нему виндовым эксплорером:

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

(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> Connected, sending welcome message...
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> 220-FileZilla Server version 0.9.33 beta
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> USER anonymous
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> 331 Password required for anonymous
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> PASS *****
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> 530 Login or password incorrect!
(000038) 24.12.2009 15:18:53 - (not logged in) (192.168.28.52)> disconnected.
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> Connected, sending welcome message...
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> 220-FileZilla Server version 0.9.33 beta
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> USER user
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> 331 Password required for user
(000039) 24.12.2009 15:18:57 - (not logged in) (192.168.28.52)> PASS ******
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> 230 Logged on
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> opts utf8 on
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> 200 UTF8 mode enabled
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> syst
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> 215 UNIX emulated by FileZilla
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> site help
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> 504 Command not implemented for that parameter
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> PWD
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> 257 "/" is current directory.
(000039) 24.12.2009 15:18:57 - user (192.168.28.52)> disconnected.
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> Connected, sending welcome message...
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> 220-FileZilla Server version 0.9.33 beta
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> 220-written by Tim Kosse (Tim.Kosse@gmx.de)
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> 220 Please visit http://sourceforge.net/projects/filezilla/
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> USER user
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> 331 Password required for user
(000040) 24.12.2009 15:18:58 - (not logged in) (192.168.28.52)> PASS ******
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 230 Logged on
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> opts utf8 on
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 200 UTF8 mode enabled
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> syst
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 215 UNIX emulated by FileZilla
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> site help
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 504 Command not implemented for that parameter
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> PWD
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 257 "/" is current directory.
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> TYPE A
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 200 Type set to A
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> PASV
(000040) 24.12.2009 15:18:58 - user (192.168.28.52)> 227 Entering Passive Mode (172,16,1,13,23,133)
далее таймаут...

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:43:24
terminus
Мнда... Идей не очень много.

Такое поведение с любой виндовой машины из сети 192.168 ? Пробовали с других коннектится эксплоррером?

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

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

kldload alias_ftp.ko

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:51:50
Plohish
с любой другой машинки домашней подсети, с применением именно эксплорера, заходит, так как пакеты бегут не через роутер, а только через коммутатор...
kldload alias_ftp.ko грузить пробовал (я ведь читал вашу статью :) ) - не помогает...

опа здрасти!!!
подгрузил kldload alias_ftp.ko и заработало!!! :shock:
офигеть! спасибо Вам за усидчивость и терпение к таким как я. :oops:

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 15:58:37
terminus
Ага. Интересно блин... Выходит, что alias_ftp умеет отслеживать не только пассивные соединения идущие от клиента, а еще и идущие от сервера. Не знал - думал, что только клиентские! Спасибо, что проверили.

Теперь те redirect_port tcp 172.16.1.2:45501-45510 45501-45510 можно убрать, а редирект на 21 порт оставить.
Чтобы модуль alias_ftp загружался автоматом при старте сервера его надо прописать в /boot/loader.conf

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

alias_ftp_load="YES"

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 16:00:47
Plohish
уже прописал ;-)
а пробовать убрать порты для пассива - боюсь :)
шутка, сейчас попробую, отпишусь.

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 16:16:59
Plohish
отписываюсь, всё работает и без дополнительных указаний портов для пассивного соединения.
похоже данный фокус прокатывает только с 21 портом...
если использовать что то другое, не работает...
Ещё раз спасибо.
Попозже буду мучить вас вопросом открытия портов для torrents, теоретически всё понятно, я открывал один tcp порт, и вроде работает, но скорость на приём отличная, а на отдачу совсем маленькая...

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-24 21:11:39
Gerk
Не надо нас мучать, порт пробросил, проверяешь - идешь по ссылке http://www.utorrent.com/testport.php?port=11111 (для 1111 порта).
Когда напишет, что тест успешен появится p2p :-D

Re: Помогите начинающему пробросить порты под FTP

Добавлено: 2009-12-26 13:16:33
Plohish
извините тормознул, не р2р а торрентс
порт я пробрасываю, и даже торрент работает, скачивает замечательно, а вот отдача очень медленная...
такое впечатление что надо открывать ещё что то...
да и тест порта не проходит, что удивительно...
может ещё и обратное перенаправление какое нить нужно?