Я рассмотрю установку и настройка proFTPd на сервер под управлением UbuntuProFTPd — ftp-сервер для UNIX-подобных операционных систем. Он работает со многими системами а том числе и Ubuntu.

Для его установки надо установить всего один пакет proftpd, делается это как всегда одной командой.

sudo apt-get install proftpd

Во время установки Вас спросят как запускать сервер: самостоятельно или автоматически (через initd). Выберете что считаете лучшем для себя.

Пакет proftpd так сказать ядро ftp-сервера, т.е. после его установки ftp-сервер готов к использованию. Так же можно установить паке gproftpd.

sudo apt-get install gproftpd

Это графический интерфейс управления ftp-сервером, их можно ставить на разные компьютеры. Но сначала давайте поговорим о настройки proftpd без графического интерфейса.

Как не сложно догадаться для остановки, запуска и рестарта сервера используется команда

sudo /etc/init.d/proftpd stop/start/restart

После изменения конфигураций сервера, его обязательно надо перезагружать как и apache.
Конфигурационный файл в proFTPd один и находится он в /etc/proftpd/proftpd.conf

Вообще настройка ftp-сервера только через конфигураций файл сложновата, в помощь выложу примерный перевод файла proftpd.conf, переведён он не мной поэтому я за него не отвечаю.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
#
# /etc/proftpd/proftpd.conf -- This is a basic ProFTPD configuration file.
# To really apply changes reload proftpd after modifications.
#
# Includes DSO modules
Include /etc/proftpd/modules.conf
# Set off to disable IPv6 support which is annoying on IPv4 only boxes.
UseIPv6                         off
# Имя сервера
ServerName                      "MY FTP"
#Как запускается (в нашем случае через standalone, т.е. самостоятельно)
ServerType                      standalone
#не показывать версию сервера ServerIdent  off
# но можно что-то свое
ServerIdent on               "moi FTP Server"
DeferWelcome                    off
MultilineRFC2228                                on
DefaultServer                   on
ShowSymlinks                    on
# сек; никаких действий после входа
TimeoutIdle                     300
# сек; отводится на авторизацию)
TimeoutLogin                    120
# сек; вошел, но не начал передачу)
TimeoutNoTransfer               600
# максимальная длительность сессии; по умолчанию - 0 (бесконечность)
TimeoutSession                  900
#сек; замирание во время пересылки файла
TimeoutStalled                  900
# Вывод сообщений при входе
DisplayLogin                    welcome.msg
DisplayFirstChdir               .message
ListOptions                     "-l"
# запрещаем шаблон *.*
DenyFilter                      *.*/
# запираем в свсоих домашних каталогах, после ! имеют доступ ко всему
DefaultRoot                     ~
# не всем, имеющим доступ к ftp, нужен shell
RequireValidShell               no
# стандартный порт
Port                            21
# ~ максимальное число одновременно запускаемых процессов в режиме standalone
MaxInstances                    15
# Пользователь и группа, под которой работает демон
#User nobody # uid/gid по умолчанию с ничтожными правами
User                            nobody
Group                           nogroup
# Маска для ограничения создания директорий и файлов
Umask                           022
#разрешить перезаписывать существующие файлы
AllowOverwrite                  on
# Ограничение трафика. В данном случае мы ограничиваем закачку и скачивание всем пользователям на 50k кроме рута
TransferRate RETR,STOR,APPE 50 user !root
# Логи
# %t - локальное время, %h - DNS имя клиента, %a - IP адрес клиента,
# %s - числовой код ответа сервера, %m - имя команды, полученной от клиента
# %f - абсолютное имя файла, %b - отправленных байтов, %T - число секунд, потраченных на передачу
# %r - текст командной строки
LogFormat default "%t %h %a %s %m %f %b %T "%r""
ExtendedLog     /var/log/proftp/extended.log     ALL default
SystemLog    /var/log/proftp/system.log     ALL default
TransferLog    /var/log/proftp/transfer.log     ALL default
CharsetLocal UTF-8
CharsetRemote CP1251
# Включаем докачку
# AllowRetrieveRestart - для загрузок с сервера (по умолчанию и так включено)
# AllowStoreRestart - для докачки файлов на сервер
# HiddenStor позволяет включить режим, когда недокаченные файлы имеют являются скрытыми.
#Это полезно при совместной работе и файлы становятся видимыми только после их полной закачки на сервер
#HiddenStor on|off
<IfModule mod_tls.c>
TLSEngine off
</IfModule>
<IfModule mod_quota.c>
QuotaEngine on
</IfModule>
<IfModule mod_ratio.c>
Ratios on
</IfModule>
# Delay engine reduces impact of the so-called Timing Attack described in
# It is on by default.
<IfModule mod_delay.c>
DelayEngine on
</IfModule>
<IfModule mod_ctrls.c>
ControlsEngine        on
ControlsMaxClients    2
ControlsLog           /var/log/proftpd/controls.log
ControlsInterval      5
ControlsSocket        /var/run/proftpd/proftpd.sock
</IfModule>
<IfModule mod_ctrls_admin.c>
AdminControlsEngine on
</IfModule>
# Открываем доступ анонимным пользователям
 <Anonymous ~ftp>  #директория-свободного-доступа
  User                         ftp
  Group                        nogroup
  UserAlias                    anonymous ftp
# Ограничения по анонимным клиентам (anonymous logins)
 MaxClients                   5
 MaxClientsPerHost            2 "Sorry, You can't connect more than TWO times from ONE host"
 DisplayFirstChdir .message
# ананимам записи нет
  <Directory *>
    <Limit WRITE>
      DenyAll
    </Limit>
  </Directory>
 </Anonymous>

Через этот файл удобно выставлять глобальные настройки сервера, а что касается прав доступа то их проще настраивать через графический интерфейс.

Ха, сейчас писал этот пост, поставил себе пакет gproftp из стандартного репазитория, он конечно поставился но запускаться отказался писал следующую ошибку «Произошёл сбой при выполнении процесса-потомка “su-to-root” (No such file or directory)». Скачав отсюдаhttp://debian.cs.binghamton.edu/debian/pool/main/g/gadmin-proftpd/ последнюю версию пакета у установив её всё заработало.

Короче, после установки у Вас в Приложения>>Системные появится «GADMIN-PROFTPD».

Меню GADMIN-PROFTPD.

После запуска у Вас спросят пароль. Спросят перезаписывать ли конфигураций файл proftpd.conf и Вы увидите такое окно.

Окно GADMIN-PROFTP.

Тут Вы можете создавать пользователей, группы, устанавливать права и т.д. в удобном графическом интерфейсе. Я сам ещё не до конца разобрался, но думою, что тут уже нет ничего сложного. После того как вы сделали все настройки, gproftpd перепишет конфигурационный файл ftp сервера. Потом Вы можете посмотреть сделанные Вами настройки в proftpd.conf и исправить их ручками. Так же в качестве web-интерфейса для ftp-сервера отлично подойдёт webmin.