На Debian FTP сервер настраивается довольно просто, ProFTPD является лучшим вариантом, он эффективен, быстро и гибко конфигурируется. Он применяется несколько чаще TWOFTPD, VSFTPD и т.д.
Пакет устанавливается стандартным способом из репозитория
apt-get install proftpd
Если попытка установки оказалась неуспешна — необходимо добавить пути к репозиториям в /etc/apt/sources.list, посмотреть их можно на официальном сайте.
Для Jessie нужно добавить следующие строки:
deb http://deb.debian.org/debian jessie main
deb-src http://deb.debian.org/debian jessie main
Затем информация о подключенных репозиториях обновляется командой
apt-get update
В процессе установки запустится псевдографический интерфейс в котором стоит выбрать необходимость установки standalone версии пакета.
Настройки выполняются в главном конфигурационном файле /etc/proftpd/proftpd.conf, они довольно очевидны.
Если IPv6 не используется опцию следует деактивировать:
UseIPv6 off
После этого в конец файла добавляются строки
<Global>
RequireValidShell off
</Global>
DefaultRoot ~ ftpuser
<Limit LOGIN>
DenyGroup !ftpgroup
</Limit>
Они устанавливают отсутствие необходимости указывать пользовательскую оболочку (т.е. можно использовать /bin/false), ProFTPd дается инструкция не выпускать системных пользователей за пределы домашнего каталога.
Последняя опция определяет запрет на авторизацию всех системных пользователей, не входящих в группу ftpgroup.
Перезапускаем службу
/etc/init.d/proftpd restart
Создаем необходимую группу пользователей
addgroup ftpgroup
И пользователя
adduser user1 -shell /bin/false -home /var/www
Добавляем пользователя в группу
adduser user1 ftpgroup
На этом базовая настройка завершена, user1 может подключиться к серверу по FTP и работать с данными в пределах своего домашнего каталога.
Анонимные пользователи FTP в PFTPD
Дополнительные коррективы основного конфига/proftpd/proftpd.conf могут дать анонимным пользователям возможность просматривать файлы на сервере.
<Anonymous ~ftp>
User anonuser
Group nogroup
# We want clients to be able to login with «anonymous» as well as «ftp»
UserAlias anonymous ftp
# Cosmetic changes, all files belong to ftp user
DirFakeUser on ftp
DirFakeGroup on ftp
RequireValidShell off
# Limit the maximum number of anonymous logins
MaxClients 10
# We want 'welcome.msg' displayed at login, and '.message' displayed
# in each newly chdired directory.
DisplayLogin welcome.msg
DisplayFirstChdir .message
# Limit WRITE everywhere in the anonymous chroot
<Directory *>
<Limit WRITE>
DenyAll
</Limit>
</Directory>
# # Uncomment this if you're brave.
# # <Directory incoming>
# # # Umask 022 is a good standard umask to prevent new files and dirs
# # # (second parm) from being group and world writable.
# # Umask 022 022
# # <Limit READ WRITE>
# # DenyAll
# # </Limit>
# # <Limit STOR>
# # AllowAll
# # </Limit>
# # </Directory>
</Anonymous>
.
.
Пользователь добавляется в группу
adduser anonuser ftpgroup
Перезапускается служба
/etc/init.d/proftpd restart
После этого у anonuser появился доступ на просмотр содержимого каталогов файлов.