====== Устанавливаем 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 и наслаждаемся работой сервера.