FTP-сервер в локальной сети
-
У Вас получается что локальный клиент идет через НАТ наружу а потом портфорвардом опять внутрь. Вот тут и затык при ответе - сервак пытается ответить напрямую локальной машинке, а она ждет ответа от удаленного хоста ИП.
В 1С прописан ФТП по ИП или как доменное имя?
-
Да, это известная проблема с доступом из локалки к локальным ресурсам по внешнему адресу. NAT Reflection как раз и должен эту проблему решать. Также можно сделать настроить DNS, чтобы при обращении к серверу по имени вместо внешнего IP отдавался внутренний.
Я, наверное, плохо объяснил суть. Есть сервер в локалке (192.168.1.1 порт 8021). Делаем portforwarding 26 WAN –> 8021 192.168.1.1. При включенной опции NAT Reflection сервер доступен при подключении по адресу WAN:26 и снаружи и из локальной сети. Теперь меняем правило на 21 WAN --> 8021 192.168.1.1. Подключаемся на 21 порт снаружи - всё работает. Изнутри - сервер недоступен. -
Ну если как вы говорите FTP-Helper отключен, то скорее всего или какие-то правила внутренние мешают, или особенности поведения NAT-portforward. Позже время будет - попробую разобрать что и как там маскируется и какие правила мешают.
Сейчас, как проще всего, можно попробовать перенести порт локального сервера 192.168.1.1 на 8021 и настроить портфорвард на него.
Интересно сработает или нет? -
А он и так на этом порту. Я пробовал ставить его и на 21, это ничего не меняет. Важно на какой порт коннектится клиент из локалки, а куда потом пробрасывается - не имеет значения.
-
А он и так на этом порту. Я пробовал ставить его и на 21, это ничего не меняет. Важно на какой порт коннектится клиент из локалки, а куда потом пробрасывается - не имеет значения.
Смотреть /tmp/rules.debug
–--
А, ну да.. Nat Reflection работает для портов > 1024. А тут 21 порт.Прописываем правило NAT для LAN.
-
Да, это известная проблема с доступом из локалки к локальным ресурсам по внешнему адресу. NAT Reflection как раз и должен эту проблему решать. Также можно сделать настроить DNS, чтобы при обращении к серверу по имени вместо внешнего IP отдавался внутренний.
Я, наверное, плохо объяснил суть. Есть сервер в локалке (192.168.1.1 порт 8021). Делаем portforwarding 26 WAN –> 8021 192.168.1.1. При включенной опции NAT Reflection сервер доступен при подключении по адресу WAN:26 и снаружи и из локальной сети. Теперь меняем правило на 21 WAN --> 8021 192.168.1.1. Подключаемся на 21 порт снаружи - всё работает. Изнутри - сервер недоступен.1. Почему средствами DNS не делаешь?
2. NAT reflection и FTP - скорее всего не пролезет, в FTP несколько портов используется. Перепроверь что ftp-helper выключен везде и скажи в каком FTP режиме у тебя должна работать эта связка - active или passive? -
Смотреть /tmp/rules.debug
А, ну да.. Nat Reflection работает для портов > 1024. А тут 21 порт.
Прописываем правило NAT для LAN./tmp/rules.debug гляну, спасибо.
Я проверял, эта штука работает на 26 порту, на 22 и ещё какие-то проверял. А на 21 не работает хоть ты что делай.
Если поможете с этим правилом для NAT - буду весьма признателен, поковырялся и не получилось у меня ничего. -
1. Почему средствами DNS не делаешь?
2. NAT reflection и FTP - скорее всего не пролезет, в FTP несколько портов используется. Перепроверь что ftp-helper выключен везде и скажи в каком FTP режиме у тебя должна работать эта связка - active или passive?1. Сделаю, оставил этот способ как крайнюю меру. Мне не очень нравится то, что результат будет зависеть от того, какой DNS прописан у клиента. Они автоматом выдаются, конечно, но… В общем, это решение проблемы и если с NAT не получится - сделаю DNS.
2. FTP работает в основном в пассивном режиме (я правильно помню, что режим соединения определяет клиент, а не сервер?). Для этого помимо 21 порта проброшен диапазон 4400-4499. Я пока тестирую в активном режиме, чтобы не заморачиваться ещё и этим правилом. Если я правильно понял, NAT reflection позволяет использовать до 500 портов.Я сейчас использую в качестве основного роутера ipcop, у него таких проблем не возникало, Port Forward в локалку автоматом добавляет маскарадинг для локального адреса и я вообще сначала долго не мог понять, почему с pfsense такие проблемы возникают. Сейчас мне нужен MultiWan и что-то для анализа трафика, NetFlow очень хорошо для этого подходит. Такие дела.
-
Итак, посмотрел rules.debug.
Если сделать переадресацию 89.21.XXX.XXX:26 –> 192.168.1.130:8021, там прописывается:
rdr on rl0 proto tcp from any to 89.21.XXX.XXX port { 26 } -> 192.168.1.130 port 8021Reflection redirects
rdr on $lan proto tcp from any to 89.21.XXX.XXX port { 26 } -> 127.0.0.1 port 19101
IMSpector rdr anchor
А если правило поменять на 89.21.XXX.XXX:21 --> 192.168.1.130:8021, содержимое будет таким:
rdr on rl0 proto tcp from any to 89.21.XXX.XXX port { 21 } -> 192.168.1.130 port 8021Reflection redirects
IMSpector rdr anchor
Т.е. для этого порта Reflection redirects не создается. Осталось понять, с какой такой радости. Можно как-то вручную впихнуть нужное правило и прибить его гвоздями в конфиге? Простое добавление строки не помогает, и любое изменение правила возвращает все как было.
Вот еще, есть там такой раздел:
FTP Proxy/helper
table <onetoonelist>{ 192.168.1.130 }
table <vpns>{ }
Что бы это могло значить и для чего нужно?</vpns></onetoonelist> -
Похоже, проблема не разрешается так просто… http://forum.pfsense.org/index.php/topic,8562.0.html
FTP helper какой-то, не отключаемый вдобавок...В общем, я понял что делать. Достаточно адрес сервера прописать в виде wan:8021 (к примеру) и пробросить 8021 на ftp-сервер. Тогда всё работает отлично.
На стандартном 21 порту NAT Reflection не работает. -
Похоже, проблема не разрешается так просто… http://forum.pfsense.org/index.php/topic,8562.0.html
FTP helper какой-то, не отключаемый вдобавок...В общем, я понял что делать. Достаточно адрес сервера прописать в виде wan:8021 (к примеру) и пробросить 8021 на ftp-сервер. Тогда всё работает отлично.
На стандартном 21 порту NAT Reflection не работает.Вообще-т ftp-helper должен отключаться, не слышал про такие проблемы. А вот, что nat-reflection не работает с 21-м - наверное логично, чтобы не конфиликта с ftp-helper'ом не было.
-
Вообще-т ftp-helper должен отключаться, не слышал про такие проблемы. А вот, что nat-reflection не работает с 21-м - наверное логично, чтобы не конфиликта с ftp-helper'ом не было.
Я ровно об этом и говорю - он вроде как отключается, но nat-reflection на этом порту всё равно не работает. Т.е. он отключается, но не полностью. Если я выключил nat-helper конфликта с ним быть не может, так ведь?