[sisyphus] Выбор ftp-сервера.

Алексей Любимов =?iso-8859-1?q?avl_=CE=C1_l14=2Eru?=
Ср Июн 2 15:28:19 MSD 2004


Кто может посоветовать в качестве корпоративного ftp сервера?

Обязательно:

Самостоятельный запуск (standalone), поскольку необходимы виртуальные ip 
и port серверы.

Авторизация в sasl2.

Виртуальные серверы по портам и адресам.

ACL на директории и файлы (по адресам получателя и именам пользователей)

Приличная история в части критических уязвимостей

Разумные требования к железу и вменяемый конфиг (или систему конфигов)

Ограничения на количество коннектов на сервер

Желательно:

Умение лазить за пользоватетелями в ldap

Наличие плагинчиков для ограничения скорости и объема трафика  
посредством acl или на уровне виртуальных серверов.

Реально работающий bind к интерфейсам.


Общая схема такая.

Имеем  N алиасов и (или) интерфейсов.

На каждый интерфейс в конфиге заводится  стандартная конструкция из 
одного или более миртуальных серверов.
Например,  на интерфейсе 192.168.1.1 три сервера на портах 21,8021,9021
на интерфейсе 192.168.1.2 два сервера на портах 21,8021
на интерфейсе 192.168.1.3 три сервера на портах 21,8021,9021

В идеале, на остальных интерфейсах порты 21,8021,9021 должны быть вообще 
закрыты.

Я рассматривал proftpd и uw-imapd. Последний мало что может и дыряв.
Первый может гораздо больше, но примерно полуторагодовалая практика 
показала, что он крайне запутан и капризен.

Кроме того, proftpd очень уж разлапист.

Проводим тест:

Создаем три виртуальных сервера на трех интерфейсах на портах 
192.168.1.1:21, 192.168.1.2:121,192.168.1.3:221
во всех трех записях присутствуют опции port и bind

слушаем nmap-om все три интерфейса и наблюдаем, что на всех трех открыты 
все три порта 21,121,221

заходим телнетом на все девять портов и наблюдаем, что три из них (как 
раз основные) работают, а на 6-ти побочных proftpd отвечает, что мол 
нету подходящего сервера.

В принципе, это поведение отвечает минимальным требованиям, но прямо 
скажем, "неаккуратненько".

Тест 2:

Пытаемся поднять схему  два интерфеса и два порта на каждом.
192.168.1.1:21 192.168.1.1:121 192.168.1.2:21 192.168.1.2:121
И тут уже получаем ошибку bind() 0.0.0.0:21 already use

При этом комбинация 192.168.1.1:21 192.168.1.2:21 192.168.1.3:21 
192.168.1.3:121 работает.

А если включить сюдаже желание proftpd иметь основной сервер помимо 
виртуальных (про port 0 читал, пробовал, не работает), что затрудняет 
автоматическую генерацию конфига...

Вопрос, есть ли серверы, которые ведут себя более предсказуемо и 
масштабируемо, нежели proftpd?



Да. vserver может решить все эти проблемы, но это другая тема.







Подробная информация о списке рассылки Sisyphus