Twoftpd, универсальный ftp сервер настройка которого довольно проста, функционал при этом включает возможность работы с виртуальными пользователями, не существующими в системе и chroot. chroot — возможность создания рамок для FTP пользователя, указание каталога, который он будет видеть как корень сервера и за пределы которого выйти не сможет.
Установка и настройка FTP сервера TwoFTPD на Debian Wheezy
Обновляем список репозиториев и устанавливаем пакет
apt-get update
apt-get install twoftpd
Переходим в каталог /etc/twoftpd и редактируем конфигурационные файлы
cd /etc/twoftpd
mcedit run
#!/bin/sh
exec 2>&1
umask 022
exec tcpsvd -v -llocalhost 0 21 \
chpst -m30000000 -e./env \
twoftpd-auth cvm-pwfile twoftpd-xfer
В последней строке задан pwfile, т.е. информацию о пользователях twoftpd будет брать из файла, который будет создан на одном из последующих шагов.
cd env/
Далее создаем файлы, которые потребуются для работы пакета при их отсутствии и вставляем приведенное содержимое каждого из них
mcedit CVM_PWFILE_PATH
/etc/twoftpd/passwd
mcedit CVM_PWFILE_PWCMP
crypt
mcedit LOGREQUESTS
1
Теперь создаем файл, в котором будут храниться данные о пользователях и зашифрованные пароли
touch /etc/twoftpd/passwd
Также добавляем в файл /var/log/twoftpd/config 2 строки 1) s10000000, 2) n14. Ключ -e используем чтобы команда echo корректно считала символ переноса строки
echo -e «s10000000 \n n14» > /var/log/twoftpd/config
После завершения настроек содержимое каталога с конфигурационными файлами пакета должно выглядеть так:
Добавление пользователей Twoftpd
Далее шифруем пароль при помощи утилиты mkpasswd
mkpasswd -m md5 PASSWORD
PASSWORD потребуется заменить на настоящий более сложный пароль пользователя
Добавляем имя пользователя, пароль, домашний каталог пользователя, и оболочку
mcedit /etc/twoftpd/passwd
user:$1$oVl7mKv6$o96hqhAQJzRqw9CtNliXI0:1000:1000::/var/www/sites/example.com:/bin/false
user — имя пользователя twoftpd
$1$oVl7mKv6$o96hqhAQJzRqw9CtNliXI0 — зашифрованный пароль PASSWORD
/var/www/sites/example.com — домашний каталог пользователя
/bin/false — оболочка, не позволяющая авторизацию
Перезапускаем twoftpd
sv t twoftpd
Затем проверяем состояние сервиса
sv s twoftpd
twoftpd — ftp сервер настройка которого имеет свои особенности, но выполнив ее можно получить сервер способный обеспечивать работу виртуальных пользователей. Часто это нужно для интеграции с 1С. Для нормальной работы twoftpd потребуется выставить на каталоги с которыми, работает пакет права 777.
Альтернативой twoftpd может быть proftpd — он гораздо быстрее настраивается, но не позволяет легко создавать пользователей FTP, которые не являются системными.