Ставим необходимые пакеты:
$ sudo apt-get install proftpd
Настраиваем:
$ sudo mcedit /etc/proftpd/proftpd.conf
#Тип сервера (выделенный)
ServerType standalone
#Чтобы предотвратить попытку положить или взломать демон proftpd командой "ls */../*/../*/..."
DenyFilter \*.*/
#Разрешить перезапись файлов
AllowOverwrite on
#Разрешить "дозаливку" файлов при ошибках
AllowStoreRestart on
#Максимальное кол-во подключений с одного хоста + сообщение при превышении ограничения
MaxClientsPerHost 2 "too many connections by peer"
#Общее максимальное кол-во подключений
MaxInstances 10
#Мыло админа
ServerAdmin admin@my.domen.com
#Имя сервера
ServerName "MY FTP SERVER"
#Замыкать всех в каталоге "/mnt/users/ftp"
DefaultRoot /mnt/users/ftp
#Удалить данные при прерывании сессии
DeleteAbortedStores on
#Не показывать файлы пока они полностью не загружены на сервер
HiddenStores on
#Маска прав для вновь созданных файлов и каталогов
#первый параметр для файлов (666 - параметр = новый файл)
#второй параметр для каталогов (777 - параметр = новый каталог)
Umask 022 022
#Root`y логиниться запрещено
RootLogin off
#Сообщение при удачном логине
DisplayLogin /etc/proftpd/.welcome.msg
#Запретить удаление файлов всем, кроме пользователя alah
<Limit WRITE>
AllowUser alah
DenyAll
IgnoreHidden on
</Limit>
#Разрешить всем выкладывать файлы на сервер
<Limit STOR>
AllowAll
</Limit>
#Глобальные настройки сервера для всех виртуальных
<Global>
DefaultRoot /mnt/users/ftp
DeleteAbortedStores on
HiddenStores on
Umask 022 022
RootLogin off
DisplayLogin /etc/proftpd/.welcome.msg
</Global>
#Настройки анонимных подключений
<Anonymous /mnt/users/ftp>
#Юзер, от имени которого будем работать
User ftp
Group ftp
UserAlias anonymous ftp
#Проверять наличие у юзера оболочки
RequireValidShell off
#Просить пароль у анонимов
AnonRequirePassword off
#Разрешить фнонимам презаписывать файлы
AllowOverwrite off
#Максимальное кол-во анонимов
MaxClients 10 "Sorry, max %m users -- try again later"
#Ограничить логины анонимов с определенных хостов
<Limit LOGIN>
Order allow,deny
Allow from all
Deny from .microsoft.com, .msn.com
</Limit>
#Запретить анонима удалять файлы с сервера
<Limit WRITE>
DenyAll
</Limit>
</Anonymous>
На папку /mnt/users/ftp нужно дать права 777
Готово! Можно пользоваться.
P.S.
Если FTP-сервер за NAT`ом - необходимо добавить в конфиг следующие опции:
MasqueradeAddress ftp.mydomain.com # FQDN вашего FTP MasqueradeAddress 123.45.67.89 # внешний IP PassivePorts 57000 58000 # диапазон портов для пассивного подключения
и разрешить диапазон портов пассивного подключения в IPTABLES:
# iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT # iptables -A INPUT -p tcp --match multiport --dports 57000:58000 -j ACCEPT
ну и пробросить соответствующие порты на шлюзе.
Комментариев нет:
Отправить комментарий