====== Устанавливаем pure-ftpd ====== Берем свежую версию сервера с [[http://www.pureftpd.org/project/pure-ftpd|официального сайта]], распаковываем архив gunzip < pure-ftpd-1.0.22.tar.gz | tar -xfv - и пишим конфигурационный файл .conf.sh вот такого содержания: ./configure \ --prefix=/usr/local \ --sysconfdir=/usr/local/etc/pureftpd \ --with-altlog \ --with-puredb \ --with-ratios \ --with-throttling \ --with-quotas \ --with-ftpwho \ --with-largefile \ --with-language=english \ --with-tls \ --with-certfile=/etc/ssl/certs/pftp.pem Сконфигурируем, скомпилируем и установим: sh .conf.sh make all make install Пользователей решено было хранить в файлике похожем на файл паролей. Для этого сделаем отдельную группу и специального пользователя: pw groupadd pure pw useradd pureuser -g pure -d /dev/null -s /etc После этого можно создавать пользователей специальной утилиткой. Создадим трех пользвателей, два из которых простые а один босс: pure-pw useradd boss -u pureuser -D /usr/home/pureuser/boss pure-pw useradd usr1 -u pureuser -d /usr/home/pureuser/usr1 pure-pw useradd usr2 -u pureuser -d /usr/home/pureuser/usr2 Нужно обратить внимание на опцию -D. В первой команде это большая буква, в двух последующих - маленькая. Простые пользователи будут чрутиться в свой каталог. А босс сможет просматривать каталоги пользователей. Изначально каталога /usr/home/pureuser не существует, поэтому его необходимо создать и назначить ему привилегии используя созданные нами группу pure и пользователя pureuser. cd /usr/home chown -R pureuser:pure pureuser/ Почти все готово к старту. На этом этапе создаем сертификат с нужным именем и кладем его в нужный каталог, который указали при конфигурировании. cd /etc/ssl/certs openssl req -new -newkey rsa:1024 -days 1825 -nodes -x509 -keyout pftp.pem -out pftp.pem Обращений к моему серверу будет не очень много, поэтому стартовать он будет из inetd ftp stream tcp nowait root /usr/local/sbin/pure-ftpd \ pure-ftpd -Y2 -j -c7 -4 -C5 -D -E -H \ -O stats:/var/log/pureftpd.log \ -l puredb:/usr/local/etc/pureftpd/pureftpd.pdb Если работать предполагается с xinetd, то запись будет выглядеть так (/etc/xinetd.d/ftp): service ftp { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/local/sbin/pure-ftpd server_args = -Y2 -j -c7 -4 -C5 -E -H -O stats:/var/log/pureftpd.log -l unix } -Y2 заставляет работать только используя TLS. -j заставляет автоматически создавать каталоги пользователей. -c7 максимальное количество клиентов. -C5 максимльное количество клиентов с одного IP. -D показывать скрытые файлы (с точкой). -E никаких анонимных поключений. -H не резолвить IP адреса. -O stats:/var/log/pureftpd.log куда писать лог и в каком формате. -l puredb:/usr/local/etc/pureftpd/pureftpd.pdb где брать пользователей. Теперь все готово к старту. Передернем inetd и наслаждаемся работой сервера.