вторник, 19 февраля 2013 г.

FTP server за 15 минут!

Разворачиваем FTP-server за 15 минут на Ubuntu server 10.04

Ставим необходимые пакеты:
$ 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

ну и пробросить соответствующие порты на шлюзе.

Комментариев нет:

Отправить комментарий