Безопасный FTP – это легко!::Журнал СА 1.2008
www.samag.ru
     
Поиск   
              
 www.samag.ru    Web  0 товаров , сумма 0 руб.
E-mail
Пароль  
 Запомнить меня
Регистрация | Забыли пароль?
Журнал "Системный администратор"
Журнал «БИТ»
Подписка
Архив номеров
Где купить
Наука и технологии
Авторам
Рекламодателям
Контакты
   

  Опросы
  Статьи

Дата-центры  

Дата-центры: есть ли опасность утечки данных?

Российские компании уже несколько лет испытывают дефицит вычислительных мощностей. Рост числа проектов,

 Читать далее...

Книжная полка  

Защиты много не бывает

Среди книжных новинок издательства «БХВ» есть несколько изданий, посвященных методам социальной инженерии

 Читать далее...

Событие  

В банке рассола ждет сисадмина с полей фрактал-кукумбер

Читайте впечатления о слете ДСА 2024, рассказанные волонтером и участником слета

 Читать далее...

Организация бесперебойной работы  

Бесперебойная работа ИТ-инфраструктуры в режиме 24/7 Как обеспечить ее в нынешних условиях?

Год назад ИТ-компания «Крок» провела исследование «Ключевые тренды сервисного рынка 2023». Результаты

 Читать далее...

Книжная полка  

Читайте и познавайте мир технологий!

Издательство «БХВ» продолжает радовать выпуском интересных и полезных, к тому же прекрасно

 Читать далее...

СУБД PostgreSQL  

СУБД Postgres Pro

Сертификация по новым требованиям ФСТЭК и роль администратора без доступа к данным

 Читать далее...

Критическая инфраструктура  

КИИ для оператора связи. Готовы ли компании к повышению уровня кибербезопасности?

Похоже, что провайдеры и операторы связи начали забывать о требованиях законодательства

 Читать далее...

Архитектура ПО  

Архитектурные метрики. Качество архитектуры и способность системы к эволюционированию

Обычно соответствие программного продукта требованиям мы проверяем через скоуп вполне себе понятных

 Читать далее...

Как хорошо вы это знаете  

Что вам известно о разработках компании ARinteg?

Компания ARinteg (ООО «АРинтег») – системный интегратор на российском рынке ИБ –

 Читать далее...

Графические редакторы  

Рисование абстрактных гор в стиле Paper Cut

Векторный графический редактор Inkscape – яркий представитель той прослойки open source, с

 Читать далее...

День сисадмина  

Учите матчасть! Или как стать системным администратором

Лето – время не только отпусков, но и хорошая возможность определиться с профессией

 Читать далее...

День сисадмина  

Живой айтишник – это всегда движение. Остановка смерти подобна

Наши авторы рассказывают о своем опыте и дают советы начинающим системным администраторам.

 Читать далее...

Виртуализация  

Рынок решений для виртуализации

По данным «Обзора российского рынка инфраструктурного ПО и перспектив его развития», сделанного

 Читать далее...

Книжная полка  

Как стать креативным и востребованным

Издательский дом «Питер» предлагает новинки компьютерной литературы, а также книги по бизнесу

 Читать далее...

1001 и 1 книга  
19.03.2018г.
Просмотров: 6414
Комментарии: 0
Машинное обучение с использованием библиотеки Н2О

 Читать далее...

12.03.2018г.
Просмотров: 7118
Комментарии: 0
Особенности киберпреступлений в России: инструменты нападения и защита информации

 Читать далее...

12.03.2018г.
Просмотров: 4396
Комментарии: 0
Глубокое обучение с точки зрения практика

 Читать далее...

12.03.2018г.
Просмотров: 3086
Комментарии: 0
Изучаем pandas

 Читать далее...

12.03.2018г.
Просмотров: 3882
Комментарии: 0
Программирование на языке Rust (Цветное издание)

 Читать далее...

19.12.2017г.
Просмотров: 3897
Комментарии: 0
Глубокое обучение

 Читать далее...

19.12.2017г.
Просмотров: 6385
Комментарии: 0
Анализ социальных медиа на Python

 Читать далее...

19.12.2017г.
Просмотров: 3234
Комментарии: 0
Основы блокчейна

 Читать далее...

19.12.2017г.
Просмотров: 3530
Комментарии: 0
Java 9. Полный обзор нововведений

 Читать далее...

16.02.2017г.
Просмотров: 7364
Комментарии: 0
Опоздавших не бывает, или книга о стеке

 Читать далее...

17.05.2016г.
Просмотров: 10726
Комментарии: 0
Теория вычислений для программистов

 Читать далее...

30.03.2015г.
Просмотров: 12445
Комментарии: 0
От математики к обобщенному программированию

 Читать далее...

18.02.2014г.
Просмотров: 14097
Комментарии: 0
Рецензия на книгу «Читаем Тьюринга»

 Читать далее...

13.02.2014г.
Просмотров: 9192
Комментарии: 0
Читайте, размышляйте, действуйте

 Читать далее...

12.02.2014г.
Просмотров: 7142
Комментарии: 0
Рисуем наши мысли

 Читать далее...

10.02.2014г.
Просмотров: 5446
Комментарии: 3
Страна в цифрах

 Читать далее...

18.12.2013г.
Просмотров: 4683
Комментарии: 0
Большие данные меняют нашу жизнь

 Читать далее...

18.12.2013г.
Просмотров: 3495
Комментарии: 0
Компьютерные технологии – корень зла для точки роста

 Читать далее...

04.12.2013г.
Просмотров: 3212
Комментарии: 0
Паутина в облаках

 Читать далее...

03.12.2013г.
Просмотров: 3449
Комментарии: 0
Рецензия на книгу «MongoDB в действии»

 Читать далее...

02.12.2013г.
Просмотров: 3090
Комментарии: 0
Не думай о минутах свысока

 Читать далее...

Друзья сайта  

 Безопасный FTP – это легко!

Архив номеров / 2008 / Выпуск №1 (62) / Безопасный FTP – это легко!

Рубрика: Безопасность /  Безопасность

Иван Максимов

Безопасный FTP – это легко!

Именно такой лозунг у разработчиков Pure-FTPd, основанного на Troll-FTPd FTP-сервере. Простой в эксплуатации, легкий при установке и настройке, быстрый – так окрестили этот сервер пользователи, верно ли все это?

Этот FTP-сервер можно скачать с официальной страницы [1], но гораздо удобнее воспользоваться системой пакетов/портов в вашей *nix-операционной системе, благо данная программа включена в репозитарии почти всех ОС данного семейства.

Из основных функций рассматриваемого FTP-сервера стоит выделить: работу с СУБД MySQL и PostgreSQL, сервером LDAP, возможностью PAM-аутентификации, экспериментальной поддержкой TLS/SSL-шифрования и возможность мониторинга и журналирования. К полезным дополнительным функциям стоит отнести возможность «запирания» пользователей (chroot) в домашних директориях, смену кодировки на лету (опять же экспериментально), собственную БД (puredb), возможность ограничения пользователей по трафику, времени, скорости, IP-адресам, квоты и многое многое другое, о чем можно прочесть в штатной документации. Пожалуй, нужно сразу заметить, что документация на официальном сайте достаточно скудна, тогда как сам дистрибутив снабжен более полным описанием.

Все дальнейшие настройки мы будем выполнять в ОС Debian Linux 4, но большинство действий, кроме базовых, подготовительных работ с репозитарием, будут работать и в других подобных операционных системах.

Установка Pure-FTPd

Перед началом работы определим, какие функции необходимы в FTP-сервере. Во-первых, нужна аутентификация пользователей, она будет проходить с помощью БД puredb. 
Во-вторых, шифрование при передачи данных, так как пользователи работают через незащищенные сети. В-третьих, файловый сервер хранит данные в кодировке UTF8, для клиентов нужна будет перекодировка на лету из UTF8 в CP1251. В-четвертых, конечно же, нужны мониторинг и журналирование.

Итак, определившись с требованиями, начнем. Установку любого программного обеспечения всегда стоит начинать с обновления системы пакетов/портов:

# aptitude update

# aptitude upgrade

Далее найдем необходимый нам пакет:

# aptitude search pure-ftpd

pure-ftpd - Pure-FTPd FTP server

pure-ftpd-common - Pure-FTPd FTP server (Common Files)

pure-ftpd-ldap - Pure-FTPd FTP server with LDAP user authentication

pure-ftpd-mysql - Pure-FTPd FTP server with MySQL user authentication

pure-ftpd-postgresql - Pure-FTPd FTP server with PostgreSQL user authentication

К сожалению, готовый откомпилированный Pure-FTPd не содержит нужных нам функций, поэтому загрузим исходные коды нашего FTP-сервера для перенастройки:

# apt-get source pure-ftpd

Исходные коды получены, но перед тем как перейти в каталог и начать конфигурирование, установим дополнительные пакеты, такие как openSSL и библиотеки к нему.

# aptitude install openssl

# aptitude install libssl-dev

Создадим самоподписанный цифровой сертификат по алгоритму RSA с 1024-битным ключем:

# openssl req -x509 -nodes -newkey rsa:1024 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Теперь перейдем в каталог с исходными кодами Pure-FTPd и запустим конфигуратор с необходимыми нам ключами:

# ./configure --with-rfc2640 --with-puredb --with-tls --with-certfile=/etc/ssl/private/pure-ftpd.pem --with-ftpwho –with-altlog

Рассмотрим подробнее используемые ключи:

  • --with-rfc2640 – использовать спецификацию rfc2640 для работы с кодировками «на лету»;
  • --with-puredb – для аутентификации и авторизации пользователей использовать собственную БД (puredb);
  • --with-tls – включаем поддержку SSL/TLS;
  • --with-certfile – использовать сертификат по указанному пути;
  • --with-ftpwho – опция, необходимая для работы утилиты мониторинга pure-ftpwho;
  • --with-altlog – используем журналирование.

Если все прошло благополучно, в конце операции нам предложат посетить сайт разработчиков и подписаться на почтовую рассылку, если нет – смотрим ошибки, возможно, не все зависимости удовлетворены, или есть проблемы с правами доступа.

Откомпилируем пакет командами:

# make & make install

Настройка Pure-FTPd

Итак начнем настройку. Цифровой сертификат мы уже создали, теперь пришла очередь puredb, создадим ее и заполним пользовательскими учетными записями.

Перво-наперво создадим группу:

# groupadd ftpgroup

Далее учетную запись реального системного пользователя, от имени которой (и с правами которой) в дальнейшем будут работать виртуальные пользователи:

# useradd -m -g ftpgroup -d /dev/null -s /etc ftpuser

где параметр указывает:

  • -m – автоматически создавать домашнюю папку пользователя;
  • -g – использовать gid (group identificator) указанной группы, в нашем случае это вышесозданная ftpgroup;
  • -d – указывает на домашнюю папку пользователя, в нашем случае – в никуда (/dev/null), но можно и так – /sbin/nologin;
  • -s – указывает на используемую пользователем оболочку (shell).

И последнее, конечно же, указываем имя пользователя – ftpuser.

Проверим, создан ли пользователь:

# getent passwd ftpuser

ftpuser:x:1012:1012::/dev/null:/etc

Затем, если мы хотим импортировать учетные записи системных пользователей в список виртуальных, то можно воспользоваться утилитой pure-pwconvert, но мы будем создавать учетную базу пользователей «с нуля». Для этого воспользуемся другой утилитой – pure-pw.

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

# useradd -m -g ftpgroup -d /dev/null -s /etc ftpuser

где параметр:

  • useradd – добавить пользователя, в нашем случае max;
  • -u – использовать uid реального пользователя;
  • -d – домашняя папка пользователя.

Данная команда создаст учетную запись виртуального пользователя, после ввода нам предложат ввести для нее пароль. Проверим это:

# cat /etc/pureftpd.passwd

max:$1$d7Op62.0$DfYS5O0mjbf1eWmTWPGTF.:1012:1012::/home/ftpusers/max/./::::::::::::

На первом месте указано имя пользователя, далее – md5 хэш-пароля (md5 всегда легко узнается по характерному началу хэша «$1$» и последующим 31 символам ), gid, uid пользователя и в конце путь до пользовательской папки. В данном примере другие параметры отсутствуют, но легко заметить по множественным символам-разделителям «:», что параметров может быть гораздо больше, это именно так, воспользуемся утилитой pure-pw:

# pure-pw show max

Login              : max

Password           : $1$d7Op62.0$DfYS5O0mjbf1eWmTWPGTF.

UID                : 1012 (ftpuser)

GID                : 1012 (ftpgroup)

Directory          : /home/ftpusers/max/./

Full name          :

Download bandwidth : 0 Kb (unlimited)

Upload   bandwidth : 0 Kb (unlimited)

Max files          : 0 (unlimited)

Max size           : 0 Mb (unlimited)

Ratio              : 0:0 (unlimited:unlimited)

Allowed local  IPs :

Denied  local  IPs :

Allowed client IPs :

Denied  client IPs :

Time restrictions  : 0000-0000 (unlimited)

Max sim sessions   : 0 (unlimited)

Хорошо видно, что при желании мы можем дополнительно задать и другие параметры пользовательской учетной записи, это упоминалось в самом начале, теперь это видно наглядно, в данном примере, пользователь свободен от многих ограничений. Возможно, кто-то задаст вопрос: откуда в пути к домашней папке появилась «/./»? Это означает, что учетная запись пользователя «заперта» chroot.

После того как будут созданы (или импортированы) все пользователи, необходимо создать базу данных puredb на основе записей в файле /etc/pureftpd.passwd, это делается командой:

# pure-pw mkdb

Собственно, на этом базовая настройка FTP-сервера pure-ftpd закончена, запустим сервер:

# /usr/local/sbin/pure-ftpd -4 -A -B -E -j -U 022:022 -O clf:/var/log/pureftpd.log --fscharset=utf8 --clientcharset=cp1251 -lpuredb:/etc/pureftpd.pdb --tls=2

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

  • -4 – использовать только протокол IPv4;
  • -A – «запирать» всех пользователей в своих домашних папках (chroot);
  • -B – запускать сервер как службу (демон);
  • -E – запретить работу анонимным пользователям;
  • -j – разрешить автоматическое создание домашних директорий пользователей (стоит использовать лишь на первых порах);
  • -U 022:022 – все пользователи работают с указанной маской;
  • -O clf:/var/log/pureftpd.log – журналировать все действия демона в формате, подобном log-файлу веб-сервера Apache (IP:пользователь:время:ресурс);
  • --fscharset=utf8 –clientcharset=cp1251 – задаем перекодировку на лету с локальной UTF8 на «классическую» клиентскую cp1251;
  • -lpuredb:/etc/pureftpd.pdb – для авторизации пользователей использовать БД формата puredb, расположенную по указанному адресу;
  • --tls=2 – разрешать только зашифрованные соединения.

Собственно, на этом можно было бы и закончить, сервер работает, и, вооружившись соответствующим клиентом (поддерживающим шифрование данных), можно приглашать пользователей, но если настройка производится на реальном внешнем сервере, а не в локальном, для тестирования, скорее всего клиенты не получат доступ к FTP-северу. Рассмотрим некоторые замечания...

Возможные трудности

Первая трудность, которая может возникнуть, состоит в том, что FTP с поддержкой шифрования работает только в пассивном режиме, при этом firewall на сервере (где установлен pure-ftpd),

возможно, будет блокировать соединения по необходимым для работы портам. Прочитав врезку о различиях работы активного и пассивного FTP, отследим и внесем необходимые изменения в firewall сервера для нормальной работы pure-ftpd в данном режиме.

На практике все будет происходить так: клиенты проходят процедуру создания защищенного соединения (TLS), используя цифровой сертификат, затем – аутентификации, но при попытке получить доступ в домашние директории клиенты будут «виснуть». Следующая команда и ее вывод наглядно покажут нам причину «подвисания»:

# netstat -apn | grep ftp

tcp   0   0 85.250.250.250:43017   0.0.0.0:*            LISTEN      7698/pure-ftpd (IDL

tcp   0   0 0.0.0.0:21             0.0.0.0:*            LISTEN      7689/pure-ftpd (SER

tcp   0   0 85.250.250.250:4222    0.0.0.0:*            LISTEN      7707/pure-ftpd (IDL

tcp   0   0 85.250.250.250:65471   0.0.0.0:*            LISTEN      7699/pure-ftpd (IDL

tcp   0   0 85.250.250.250:21      85.251.251.251:1103  ESTABLISHED 7707/pure-ftpd (IDL

unix  2 [ ]   DGRAM       97031    7707/pure-ftpd (IDL

unix  2 [ ]   DGRAM       96948    7699/pure-ftpd (IDL

unix  2 [ ]   DGRAM       96932    7698/pure-ftpd (IDL

unix  2 [ ]   DGRAM       96837    7689/pure-ftpd (SER

Хорошо видно, что на стороне нашего сервера с адресом 85.250.250.250 открыто 3 соединения на портах выше 1024 (т.е. пассивного FTP), как и со стороны клиента, последний (85.251.251.251) – это шлюз, из сети которого работают пользователи.

Для решения данной задачи запустим наш Pure-FTPd-сервер с еще одним дополнительным параметром:

# /usr/local/sbin/pure-ftpd -4 -A -B -E -U 022:022 -p 50000:51000 -O clf:/var/log/pureftpd.log --fscharset=utf8 --clientcharset=cp1251 -lpuredb:/etc/pureftpd.pdb --tls=2

Ключ «p» (--forcepassiveip) принудительно задает диапазон портов при работе FTP-сервера в пассивном режиме.

Добавим в наш firewall правило, разрешающее входящие TCP-соединения на портах 50000-51000. На Debian Linux 4 (firewall – iptables) правило будет иметь подобный вид:

# iptables -I INPUT -p tcp --dport 50000:51000 -j ACCEPT

Проверим, работает ли правило:

# iptables -L

Chain INPUT (policy DROP)

target   prot opt source      destination

ACCEPT   tcp  --  anywhere    anywhere      tcp dpts: 50000:51000

Остальные цепочки не отображены из-за неактуальности.

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

Вторая проблема. Еще один firewall, который нам, возможно, нужно будет поправить, – шлюз (шлюзы), через которые работают клиенты. В этом может быть необходимость, если на нем жестко указаны порты, используемые клиентами для доступа в глобальную сеть. Зачастую подобные правила вводятся для ограничения особых пользователей из соображений безопасности, например бухгалтерии, где открытие лишних портов крайне нецелесообразно. Все это, конечно, возможно при условии, что имеется доступ к шлюзовому серверу клиентов, иначе им придется самостоятельно связываться с провайдером или местным системным администратором и передавать просьбу об открытии необходимых портов.

Возможно, кто-то заметит, что обычно при работе клиентов из-за NAT ответные соединения (established) разрешены всегда, что подобные проблемы возникают довольно редко и связаны скорее с изначально «неграмотной» настройкой шлюза клиентов, но, как показала практика, подобные ситуации все же имеют место быть, и, к сожалению, далеко не как исключения.

Итак, если необходимо сохранить прежние параметры клиентов, то добавим разрешение на открытие портов для подключения к пассивному FTP:

iptables -I FORWARD -i eth0 -s 192.168.0.20 -o eth1 -p tcp --dport 1024:4096 -j ACCEPT

или разрешим данному клиенту прохождение пакетов по всем портам:

iptables -I FORWARD -i eth0 -s 192.168.0.20 -o eth1 -j ACCEPT

где в обоих случаях eth0 – локальный интерфейс, а eth1  –соответственно внешний.

Пожалуй, еще одно затруднение может возникнуть с клиентами. В рассматриваемом примере мы разрешаем клиентам присоединяться к серверу только с использованием шифрования, опция --tls=2, к сожалению, многие стандартные FTP-клиенты «не понимают» этого. Самое простое решение заключается в изменении параметров запуска Pure-FTPd с ключом --tls=1, разрешающим как шифрованные, так и не зашифрованные соединения, но это не совсем правильный выход из сложившейся ситуации. В сети можно найти много FTP-клиентов под практически любые операционные системы, поддерживающие TSL/SSL-шифрование. Список подобных программ можно найти по адресу [2]. Вот наиболее функциональные: FTP Commander, Directory Opus, BitKinex, но из списка по ссылке больше всех приглянулась клиентам программа FileZilla: русскоязычная, с понятным пользовательским интерфейсом, портируемая (установленную программу можно записать на flash-память и держать всегда при себе), с автоматическим обновлением и, что немаловажно, свободно распространяемая.

Собственно, вышеперечисленные трудности, связанные с настройкой сервера Pure-FTPd, в целом – все. Если что-то не так работает, либо не собирается/транслируется/компилируется, «запускайте» клиентов, производите мониторинг системы и сетевых соединений, проверяйте права доступа и, конечно же, смотрите сообщения сервера в системных журналах в директории /var/log/.

Дополнительные функции

Пожалуй, первый вопрос, который чаще всего можно встретить на форумах о Pure-FTPd, звучит примерно так: можно ли осуществлять настройку FTP-сервера через «conf»-файлы, а не через командную строку? Ответ: конечно же можно. Рассмотрим пример запуска Pure-FTPd с использованием конфигурационного файла и заодно получим ответ на второй, вполне логичный вопрос: почему изначально настройка производилась не через «conf»-файл?

В архиве с исходными кодами находится каталог «configuration-file», в котором содержится файл-шаблон pure-ftpd.conf, скопируем его в папку /etc/. Далее в случае необходимости отредактируем его, но оставим пока все как есть. В том же каталоге сделаем исполняемый скрипт «pure-config.pl» командой:

# chmod 755 pure-config.pl

В каталоге находится еще один скрипт – «pure-config.py», отличается он лишь тем, что написан на языке Python, а не Perl, созданный для тех, кто не использует последний в своей работе.

Идем дальше, выполним команду:

# pure-config.pl /etc/pure-ftpd.conf

Running: /usr/local/sbin/pure-ftpd -A -c50 -B -C8 -D -fftp -H -I15 -L2000:8 -m4 -s -U133:022 -u100 -k99 -Z

Вот и ответ на второй, логичный вопрос. Скрипт читает параметры из конфигурационного файла /etc/pure-ftpd.conf и передает их в консоль – pure-ftpd, запуская FTP-сервер. То есть, «идя этим путем», мы выполним лишние действия ( хоть и немногочисленные ), а получим тот же результат.

Если все же необходимо зафиксировать параметры запуска FTP-сервера, эффективнее будет создать скрипт подобного вида:

#!/bin/bash

/usr/local/sbin/pure-ftpd -4 -A -B -E -U 022:022 -p 50000:51000 -O clf:/var/log/pureftpd.log \

    --fscharset=utf8 --clientcharset=cp1251 -lpuredb:/etc/pureftpd.pdb –tls=2

Чуть ниже мы воспользуемся этим маленьким скриптом, а пока перейдем к следующей теме. 

Второй популярный вопрос о Pure-FTPd касается автоматизации запуска сервера при старте системы. Самым простым решением будет запись параметров запуска в файл /etc/rc.local, но не всегда это возможно, да и более правильно будет добавить скрипты запуска на соответствующие уровни загрузки (SysVinit). Добавим на 3,4 уровни скрипты старта FTP-сервера.

Поместим ранее написанный маленький скрипт в папку /etc/inid.d/ назвав, допустим, ftpes и выполним команду (точка в конце обязательна):

# update-rc.d ftpes start 20 3 4 .

 Adding system startup for /etc/init.d/ftpes ...

   /etc/rc3.d/S20ftpes -> ../init.d/ftpes

   /etc/rc4.d/S20ftpes -> ../init.d/ftpes

По выводу команды видно, что были добавлены скрипты, запускающие FTP-сервер на указанных уровнях. Нужно заметить, что данный скрипт не сможет отрабатывать команды start/stop/restart/status, он всего лишь будет запускать FTP-сервер, если есть необходимость в подобном скрипте, его можно либо написать самостоятельно, либо взять из репозитария вместе с стандартным pureftpd. Если понадобится удалить скрипты запуска из всех rcX.d каталогов, выполним команду:

# update-rc.d -f ftpes remove

Что еще может понадобиться в работе FTP-сервера? Полезным может быть полное управление пользовательскими бюджетами, об этом уже говорилось в самом начале, теперь подробнее.

При компиляции можно задать ключи:

  • --with-peruserlimits – позволяет задавать ограничения для каждого пользователя;
  • --with-throttling – ограничение по скорости работы пользователей;
  • --with-ratios – ограничения по соотношению download/upload для пользователей;
  • --with-quotas – дисковые квоты пользователей;

Что это нам даст? Все функции, описанные в выводе команды:

# pure-pw --help

pure-pw useradd <login> [-f <passwd file>] -u <uid> [-g <gid>]

          -D/-d <home directory> [-c <gecos>]

          [-t <download bandwidth>] [-T <upload bandwidth>]

          [-n <max number of files>] [-N <max Mbytes>]

          [-q <upload ratio>] [-Q <download ratio>]

          [-r <allow client host>[/<mask>][,<allow client host>[/<mask>]]...]

          [-R <deny client host>[/<mask>][,<deny client host>[/<mask>]]...]

          [-i <allow local host>[/<mask>][,<allow client host>[/<mask>]]...]

          [-I <deny local host>[/<mask>][,<deny local host>[/<mask>]]...]

          [-y <max number of concurrent sessions>]

          [-z <hhmm>-<hhmm>] [-m]

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

На этом можно и остановиться, осталось еще много интересных решений на базе сервера Pure-FTPd и много не рассмотренных функций, но последние описаны в документации, а «интересные решения» обсуждаются на форумах в Интернете почти каждый день и при соответствующей задаче их всегда можно изучить.

Итоги

Что можно отметить и дополнить? Рассматриваемый FTP-сервер оказался простым в эксплуатации, поддерживающим множество опций, касающихся информационной безопасности, и не только. Конечно же, у него есть конкуренты, имеющие как свои плюсы, так и минусы.

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

У vsftpd (Very Secure FTP) много плюсов, включая большой набор опций, касающихся безопасности сервера в целом, но в то же время инструментов, относящихся к пользовательским бюджетам, там меньше.

Блуждая по сети, можно найти много «за» и «против», «плюсов» и «минусов» в различных FTP-серверах, но все же Pure-FTPd – простое решение по организации удаленного и безопасного доступа к документам организации.

Главное, чтобы всегда был выбор. Успехов в работе!

Приложение

Пассивный и активный FTP

Как передаются данные через протокол FTP? Сервер открывает одиночное соединение на 21 порту, называемоем сеансом управления (FTP control session), далее при передаче определенных данных (аутентификация, тип соединения и т. д.) открывается еще один дополнительный порт. Подобные соединения бывают пассивными и активными.

В чем разница? При активном соединении клиент передает серверу номер порта и IP-адрес для соединения, далее клиент создает и слушает порт в диапазоне 1024-65535, а сервер подключается к нему, передавая данные с 20 порта (FTP-Data). С пассивным FTP все наоборот. При соединении клиент запрашивает IP-адрес и порт для подключения у сервера, затем сервер создает порт в диапазоне 1024-65535, потом клиент на своей стороне открывает порт в диапазоне 1024>65535, далее идет передача данных. На рисунке изображена схема работы активного FTP; от пассивного она отличается только тем, что на стороне сервера вместо 20 порта используется диапазон 1024-65535. В зависимости от типа соединения в firewall клиента и сервера необходимо вносить соответствующие изменения. Этот вопрос обычно очень хорошо освещен в штатной документации любого *nix firewall, а также на сайте стандартов RFC [3]. Кстати говоря, первый документ, описывающий протокол FTP, датирован 16 апреля 1971 года, задержите внимание здесь и задумайтесь над датой, тогда еще не было Интернета, была только его родоначальница, сеть ARPANET.

Схема работы активного FTP

Схема работы активного FTP

  1. http://www.pureftpd.org – официальный сайт сервера Pure-FTPd.
  2. http://en.wikipedia.org/wiki/List_of_FTP_clients – список FTP-клиентов поддерживающих шифрование при передаче данных.
  3. http://rfc-editor.org – сайт, посвященный документации серии RFC (Request for Comments).

Комментарии отсутствуют

Добавить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

               Copyright © Системный администратор

Яндекс.Метрика
Tel.: (499) 277-12-45
E-mail: sa@samag.ru