Настраиваем FTP сервер Proftpd

ProFTPКогда-то давным давно в 2002 году я поставил себе свой первый дистрибутив linux Redhat 7.2. И первым приложением, которое сам установил и настроил это был Proftpd сервер. В те годы довольно частенько находили дыры в безопасности этого ftp сервера и мне приходилось достаточно часто обновляться. Но сейчас с безопасностью все встало нормально, редко-редко я встречаю про найденную дыру в безопасности в данном продукте, да и то в каких-нибудь редко используемых модулях типа SQL или LDAP. Не знаю почему, но я все еще кипячу компилирую сам из исходников proftpd. Скорей всего это какая-то ностальгия по тому далекому времени, когда я сам потратил около 2 дней на установку и настройку этого сервера.

Установка proftpd

Все у кого стоит proftpd пакет могут смело пропустить этот раздел и переходить к настройке конфигурации сервера.
Установка во freebsd


#cd /usr/ports/ftp/proftpd/
#make all install
#make clean

Установка в debian like дистрибутивах (например ubuntu)


sudo aptitude install proftpd

При установке proftpd в debian & etc скрипт установщика самостоятельно создаст директории, конфигурационный файл proftpd.conf и добавит запуск сервера в скрипты автоматической загрузки ОС.

Установка из исходников. Качаем последний релиз proftpd с сайта.
Конфигурируем и устанавливаем


configure
make
make install

Конечно так как выше написано я бы не советовал делать, по уму надо сначала собрать пакет а потом его инсталлировать. В противном случае деинсталлировать такой пакет будет проблематично. Но данная статья не о том как собирать пакеты.

Конфигурирование proftpd

Наша задача сконфигурировать сервер так,

  • чтобы каждый пользователь системы при авторизации на ftp попадал в свою дирректорию
  • создать пользователя для анонимного доступа (например для доступа на чтение к какой-то определенной папке)

Приводим стандартный конфиг proftpd.conf к такому содержанию. Данная конфигурация является стандартной и вам почти ничего менять не придется. В эту часть входит и авторизация пользователя в своем домашнем каталоге.
Конфиг показать


Т.к. в конфигурации мы запускаем сервер proftpd через ined сервер, то идем в файл /etc/inetd.conf и раскомментируем строку и перезапустим inetd

ftp     stream  tcp     nowait  root    /usr/sbin/tcpd  proftpd

Перезапускаем демон inetd

killall -HUP inetd

Теперь создадим пользователя с именем anonymous. Почему именно с таким? Да потому что, теперь можно в программах клиентах ftp указывать только имя сервера без указания имени пользователя. По умолчанию в таком случае подставится имя anonymous. Пароль для данного пользователя можно задать, а можно и не задавать. Я для простоты не задавал.

А можно сделать совсем просто. В конфигурации proftpd.conf прописать alias пользователя anonymous на любого другого пользователя системы. Я бы советовал прописать на пользователя ftp, т.к. он уже создан.


UserAlias anonymous ftp

Потом надо только создать директорию /home/ftp и назначить права на эту директорию для пользователя ftp. Насчет пароля пользователя тут либо вы задаете пароль пользователю ftp (тогда anonymous будет с паролем), либо в конфигурации proftpd отключаете требование пароля на данного пользователя. Смотрите часть конфига ниже.

Если вы хотите тонко задавать различные права на какую-либо директорию в proftpd, то вот вам заготовка для пользователя anonymous, который в данном случае может читать все каталоги в директории /mnt
показать

Я думаю вы уловили идею. Если надо что-то ограничить какому-либо пользователю создавайте по шаблону как у anonymous и заставляйте его играть по вашим правилам ;)

Статья просмотрена 6 137 раз
Запись опубликована в рубрике FTP, Сервера с метками , , . Добавьте в закладки постоянную ссылку.

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

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>