ProFTPD на Debian, установка ftp сервера

На 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 появился доступ на просмотр содержимого каталогов файлов.