URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 94974
[ Назад ]

Исходное сообщение
"proftpd доступ из lan и снаружи"

Отправлено doutside , 02-Сен-13 16:31 
Привет, сообщество!

Делаю корпоративный FTP за натом.
Внешний адрес (преобразуется натом во внутренний): 55.55.55.55
Внутренний: 10.0.0.2
Настроил пассивный режим, включил masqueradeaddress. Снаружи все работает.
Напрямую из сети - не работает. Следуя этому (http://www.proftpd.org/docs/howto/NAT.html)
мини-howto добавил <VirtualHost> директиву (кусок конфига ниже).

Часть конфига:
================================================
ServerName                      "FTP Site"
ServerType                      standalone
DefaultServer                   on
ScoreboardFile          /var/run/proftpd/proftpd.scoreboard

# Port 21 is the standard FTP port.
Port                            21

#DefaultAddress 10.0.0.2
MasqueradeAddress 55.55.55.55
PassivePorts 21300 21800

<VirtualHost 10.0.0.2>
    ServerName "Dataplus FTP {lan connection}"
</VirtualHost>
================================================

Однако, не помогло. Из внутренней сети доступа все равно нет. proftpd выдает:
------------------------------------------------
Starting proftpd.
- warning: "Dataplus FTP {lan connection}" address/port (10.0.0.2:21) already in use by "FTP Site"
10.0.0.2 - 10.0.0.2:21 masquerading as 55.55.55.55
------------------------------------------------

Что делать дальше? На ум приходит только повесить proftpd на два интерфейса (что бы заработала директива <VirtualHost>). Один использовать для внутренних пользователей, другой для внешних.
Может быть имеются другие альтернативы?



Содержание

Сообщения в этом обсуждении
"proftpd доступ из lan и снаружи"
Отправлено Vaka , 03-Сен-13 12:58 
В глобальном конфиге не указан DefaultAddress. В этом случае демон слушает на всех интерфейсах. После этого в настройке ВиртуалХоста указан адрес, который уже на прослушке. Из-за этого и ошибка address/port (10.0.0.2:21) already in use.

Как вариант - указать DefaultAddress 127.0.0.1, а ВиртуалХост уже описівать с настоящим адресом.

> #DefaultAddress 10.0.0.2
> <VirtualHost 10.0.0.2>
>  - warning: "Dataplus FTP {lan connection}" address/port (10.0.0.2:21) already in use
> by "FTP Site"
> 10.0.0.2 - 10.0.0.2:21 masquerading as 55.55.55.55


"proftpd доступ из lan и снаружи"
Отправлено doutside , 03-Сен-13 16:04 
> В глобальном конфиге не указан DefaultAddress. В этом случае демон слушает на
> всех интерфейсах. После этого в настройке ВиртуалХоста указан адрес, который уже
> на прослушке. Из-за этого и ошибка address/port (10.0.0.2:21) already in use.
> Как вариант - указать DefaultAddress 127.0.0.1, а ВиртуалХост уже описівать с настоящим
> адресом.

Интересное предложение, однако оно не решает мою проблему.
У меня всего один физический интерфейс (кроме lo) и в решении, предложенным вами я все равно не могу сделать разные настройки режима работы фтп для разных клиентов, которые к нему стучатся.

Например, если сделать:
==================================
DefaultAddress 127.0.0.1

<VirtualHost 55.55.55.55>
    ServerName "FTP"
    MasqueradeAddress 55.55.55.55
    PassivePorts 21300 21800
</VirtualHost>

<VirtualHost 10.0.0.2>
    ServerName "FTP {lan connection}"
</VirtualHost>
==================================

То в этом случае первая секция <VirtualHost> просто не сработает, так как у сервера нет интерфейса с ip 55.55.55.55.

У сервера есть только один ip 10.0.0.2, на который фаервол (корпоративный, на отдельной коробке) транслирует внешние обращения на ip 55.55.55.55

То есть, со стороны сервера мы можем разделять запросы на внутренние и внешние только по src ip запроса.

В связи с этим уточню свой вопрос: возможно ли настроить разные режимы работы proftpd сервера для разных клиентов, которые коннектятся к нему?


"proftpd доступ из lan и снаружи"
Отправлено Vaka , 03-Сен-13 18:10 
> Интересное предложение, однако оно не решает мою проблему.
> У меня всего один физический интерфейс (кроме lo) и в решении, предложенным
> вами я все равно не могу сделать разные настройки режима работы
> фтп для разных клиентов, которые к нему стучатся.

Как я понял, для соединений из вне нужен passive mode, а для локалки обычный?

Тогда например так:

на физический интерфейс дбавляется еще один адрес из локальной сети типа 10.0.0.3
в глобальном конфиге надо описать все как для локалки с указанием DefaultAddress 10.0.0.2
в виртуалхосте с ip 10.0.0.3 нарисовать маскарад и пассивные порты.
со стороны маршрутизатора сделать перенаправление ftp на 10.0.0.3


"proftpd доступ из lan и снаружи"
Отправлено doutside , 04-Сен-13 12:43 
>[оверквотинг удален]
>> вами я все равно не могу сделать разные настройки режима работы
>> фтп для разных клиентов, которые к нему стучатся.
> Как я понял, для соединений из вне нужен passive mode, а для
> локалки обычный?
> Тогда например так:
> на физический интерфейс дбавляется еще один адрес из локальной сети типа 10.0.0.3
> в глобальном конфиге надо описать все как для локалки с указанием DefaultAddress
> 10.0.0.2
> в виртуалхосте с ip 10.0.0.3 нарисовать маскарад и пассивные порты.
> со стороны маршрутизатора сделать перенаправление ftp на 10.0.0.3

Да, спасибо! Именно так оно изначально и реализовано. Хотел прояснить возможность организации доступа с использованием одного интерфейса.


"proftpd доступ из lan и снаружи"
Отправлено Vaka , 04-Сен-13 12:51 
>  Да, спасибо! Именно так оно изначально и реализовано. Хотел прояснить возможность
> организации доступа с использованием одного интерфейса.

Имел ввиду - используя один ip адрес?

Можно и на одном, но придется разнести конфиг для локалки и мира по разным портам, т.е. в глобальном конфиге все остается так же (настройка для локалки), а в виртуалхосте описывается нестандартный порт. Например

<VirtualHost 10.0.0.2>
Port 2121
....

Со стороны маршрутизатора делается проброс с 55.55.55.55 порт 21 на 10.0.0.2 порт 2121


"proftpd доступ из lan и снаружи"
Отправлено doutside , 04-Сен-13 13:00 
>>  Да, спасибо! Именно так оно изначально и реализовано. Хотел прояснить возможность
>> организации доступа с использованием одного интерфейса.
> Имел ввиду - используя один ip адрес?

Ага.
Ну proftpd, как я понимаю, эти понятия не разделяет. Не суть, в общем.

> Можно и на одном, но придется разнести конфиг для локалки и мира
> по разным портам, т.е. в глобальном конфиге все остается так же
> (настройка для локалки), а в виртуалхосте описывается нестандартный порт. Например
> <VirtualHost 10.0.0.2>
>  Port 2121
> ....
> Со стороны маршрутизатора делается проброс с 55.55.55.55 порт 21 на 10.0.0.2 порт
> 2121

Глупость написал ранее. Тоже хороший вариант, надо будет опробовать.


"proftpd доступ из lan и снаружи"
Отправлено reader , 03-Сен-13 21:06 
на какой адрес клиент из локалки пытается подключится на 55.55.55.55 или 10.0.0.2, клиенты тоже в подсети 10.0.0.2, лог подключения с клиента есть?

"proftpd доступ из lan и снаружи"
Отправлено doutside , 04-Сен-13 12:48 
> на какой адрес клиент из локалки пытается подключится на 55.55.55.55 или 10.0.0.2,
> клиенты тоже в подсети 10.0.0.2, лог подключения с клиента есть?

Из локальной сети клиенты подключаются на адрес 10.0.0.2, клиенты в той же подсети.
Лога не осталось, однако видно, что сервер переходит в пассивный режим и объявляет себя 55.55.55.55. Клиентский компьютер, естественно, пытается продолжить общение с ip 55.55.55.55 и запросы уходят в интернет.

Проблема в том, что я не могу настроить proftpd в различных режимах, в зависимости от клиентского адреса.


"proftpd доступ из lan и снаружи"
Отправлено Vaka , 04-Сен-13 12:55 
>  Проблема в том, что я не могу настроить proftpd в различных
> режимах, в зависимости от клиентского адреса.

Это делается не на proftpd а на iptables.

Различные режимы работы описываются в разных виртуалхостах с разными портами. iptables занимается редиректом на эти порты исходя из адреса источника или любого другого условия.


"proftpd доступ из lan и снаружи"
Отправлено doutside , 04-Сен-13 13:04 
>>  Проблема в том, что я не могу настроить proftpd в различных
>> режимах, в зависимости от клиентского адреса.
> Это делается не на proftpd а на iptables.

Это мне уже понятно.

> Различные режимы работы описываются в разных виртуалхостах с разными портами. iptables
> занимается редиректом на эти порты исходя из адреса источника или любого
> другого условия.

Ну если будет работать, считаем за годный вариант. Ты реализовывал такую схему уже?


"proftpd доступ из lan и снаружи"
Отправлено Vaka , 04-Сен-13 13:20 
> Ну если будет работать, считаем за годный вариант. Ты реализовывал такую схему
> уже?

на почтовых сервисах реализовывал, для фтп нет - не было необходимости.