ПлохоНиже среднегоПосредственноХорошоОтлично (3 оценок, среднее: 3,67 из 5)
.

FTP на Linux. ProFTPd.conf на русском

Я думаю, каждый из вас когда-то пользовался FTP сервером и прекрасно представляет, что это и с чем его едят. Поэтому нет смысла описывать лишнее, а поведаю как я вам лучше про установку и конфигурирование. Заодно расскажу, с какими ошибками я столкнулся и как это исправить.

Итак, ftp сервер ставится из пакета proftpd. Пакет находится в стандартных репозиториях, поэтому дополнительно ничего подключать не надо. Для установки используйте привычную вам утилиту, в зависимости от типа Linux дистрибутива. Будь то apt-get, aptitude, yum, emerge или что-то ещё. Мне же приходилось устанавливать proftpd только на Ubuntu и Debian. Здесь основные конфигурационные файлы хранятся в папке /etc/proftpd/,а самый главный конфиг, это ptoftpd.conf (вот о нём-то и пойдёт речь, а чтобы лучше понять, что к чему – я перевёл его на русский, как смог). Proftpd.conf, кстати не сильно отличается и во FreeBSD, так что можете смело, но внимательно, использовать его и там.

ProFTPd УСТАНОВКА

Итак, предположим, что мы устанавливаем proftpd на дистрибутив ветки Debian:

1.# apt-get install proftpd

2. Пакет скачивается и начинается графическая установка. В ходе установки выполняется преконфигурация. А именно, у вас спросят, в каком режиме должен работать proftpd – standalone или inetd. Если к вам будет подключаться небольшое кол-во человек одновременно — рекомендуем использовать inetd. Это снизит нагрузку. В случае с standalone при каждом новом подключении будет создаваться новый процесс, что значительно повысит нагрузку на ваш сервер. ВНИМАНИЕ! Для корректной работы в режиме inetd необходимо наличие файла inetd.conf в папке /etc. Я не зря это упомянул, ибо иногда этот файл не создаётся автоматом при выборе режима inetd. Вот такой вот подводный камень, а как решить эту проблему я опишу в конце статьи.

3. Создаются пользователи ‘ftp’ и ‘proftpd’.

4. Управление демоном proftpd (останов и запуск)

/etc/init.d/proftpd start | stop

Кстати, заметил забавную фичу — команда STOP не останавливает, а перезапускает proftpd… всегда.

 

ProFTPd НАСТРОЙКА

Установить просто, а вот выполнить настройку ProFTPd, как анонимного, так и не анонимного доступа без соответствующего мануала по ProFTPd нелегко. Несмотря на то, что оригинальный файл конфигурации proftpd.conf полон различных комментариев всегда возникают вопросы, иначе не было бы кучи запросов в поисковиках, типа: «proftpd настройка ubuntu» (я бы всё-таки рекомендовал Debian). Да и файлы конфигураций и комментарии к ним практически всегда на английском языке, без которого сейчас никуда. Ну а если с английским проблемы? Или трудно сделать перевод конфига в силу большого количества непонятных технических терминов? Вот для этой цели мною и был выполнен перевод proftpd.conf и написан подробный мануал по настройке proftpd сервера. Я надеюсь, что не зря, и вам это очень поможет.

Ну а теперь я думаю стоит представить вам перевод proftpd.conf

################################################################

Перевод ProFTPd.conf на русский язык.

Вы можете использовать настройки ProFTPd.conf с комментариями на русском языке в   своей  системе.

Вы можете свободно распространять текст перевода ProFTPd.conf со ссылкой на источник.

Конфигурационный файл ProFTPd.conf переведён Squ1sh специально для StudyLinux.ru

################################################################

/etc/proftpd/proftpd.conf — Это базовый конфигурационный файл ProFTPD

Чтобы изменения вступили в силу вам необходимо перезагрузить proftpd.

включаем модули DSO. Это различные файлы с модулями.

Не заморачивайтесь.

Include /etc/proftpd/modules.conf

Выберите «off» для отключения IPv6 и работы только IPv4.

#Если ваша сеть работает на IPv6, то включите (on)

UseIPv6                 off

Попробуйте включить эту опцию при задержках связи.

IdentLookups            off

#Собственно, имя сервера.

#Оно будет сообщено пользователю при подключении к нему

ServerName              «StudyLinux.ru»

#Принцип работы. Standalone или inetd.

ServerType              inetd

Вывести приветствие до аутентификации

DeferWelcome            off

Поддержка RFC2228

MultilineRFC2228        on

Сервер по умолчанию

DefaultServer           on

Показывать символические ссылки

ShowSymlinks            on

#Настройка таймаутов

TimeoutNoTransfer       600

TimeoutStalled              600

TimeoutIdle             1200

#Название файла приветственного сообщения

#(находится в папке пользователя)

DisplayLogin                    welcome.msg

Показывать приветственное сообщение (true)

DisplayChdir               .message true

ListOptions                «-l»

Это так называемый фильтр запрета. Все файлы разом (по маске .)

#вы не сможете удалить. Только по одному.

DenyFilter              *.*/

«Запереть» пользователя в его папке. Это значит, что пользователь

#будет попадать в свою папку. Иначе вам нужно будет явно указать целевую директорию вместо «~» символа.

DefaultRoot            ~

Эту опцию можно не менять.

RequireValidShell      off

Порт для работы FTP. Стандартный порт — 21

Port               21

В некоторых случаях вы должны указать диапазон пассивных портов в

#обход для обхода файрволла. Для этого укажите диапазон портов.

#Вполне возможно использование более узкого диапазона. Если на

#файрволле не запрещён 21 порт, то опцию можно не #расскоментировать.

# PassivePorts                  49152 65534

Если вы работаете за NAT’ом, эта опция поможет способствовать

#пассивной передаче данных. Для этого укажите здесь ваш внешний

#адрес и откройте пассивные порты на файрволле.

# MasqueradeAddress         1.2.3.4

Эту опцию нужно использовать при маскарадинге динамических IP-#адресов:

Обновлять настройки маскараденные IP-адреса каждые 8 часов

# DynMasqRefresh 28800

Для предотвращения DoS атак, укажите максимальное число дочерних

#процессов (стандартно — 30).

#Если в ваши потребности входит более 30 одновременных подключений

#- просто поменяйте это значение. ВНИМАНИЕ! Эта опция заработает

#только в режиме standalone! В режиме inetd всё работает на одном

#процессе, так что в этом плане DoS атака не страшна

MaxInstances            30

Укажите пользователя и его группу, от имени которого будет работать FTP-сервер. (Эти значения можно не менять)

User               proftpd

Group              nogroup

Маска доступа 022 это хороший стандарт маски доступа на запись\чтение. Так и оставим.

Umask                   022  022

Разрешим перезапись уже созданных файлов.

AllowOverwrite              on

Расскомментируйте это, если хотите использовать NIS или LDAP авторизацию

# PersistentPasswd      off

Расскомментируйте это если хотите использовать PAM-аутентификацию

#и локальные пароли

# AuthOrder             mod_auth_pam.c* mod_auth_unix.c

Будьте внимательны при использовании этой опции. Она позволит

#видеть прогресс и скорость закачки файлов, но даст значительную #нагрузку на процессор

# UseSendFile           off

Куда писать логи.

TransferLog /var/log/proftpd/xferlog

SystemLog   /var/log/proftpd/proftpd.log

QuotaEngine off

Ratios off

Задержки движка. Зачем — непонятно. Включено по умолчанию.

#Однако в оригинальной версии proftpd.conf файла тут была ссылка на описание.

Ссылка оказалась нерабочей.

DelayEngine on

ControlsEngine        off

ControlsMaxClients    2

ControlsLog           /var/log/proftpd/controls.log

ControlsInterval      5

ControlsSocket        /var/run/proftpd/proftpd.sock

AdminControlsEngine off

Фреймворки алтернативной аутентификации.

Я думаю что здесь нужно раскомментировать нужный метод.

Никогда сам не пользовался (только стандартная UNIX-аутентификация)

#Include /etc/proftpd/ldap.conf

#Include /etc/proftpd/sql.conf

А вот эта опция используется для FTPS соединения

Т.е. защищенное ssl соединение. (Ну если совсем уж всё секретно)

#Include /etc/proftpd/tls.conf

Так и не понял, что это за опция и зачем нужна

Если кто знает — подскажите

#Include /etc/proftpd/virtuals.con

Базовая конфигурация анонимного соединения без каталогов для загрузки.

Если вы не желаете открывать анонимный доступ, то можете закомментировать всё,

что находится ниже или просто удалить 🙂

User                 ftp

Group                nogroup

Привязка Анонимуса к пользователю ‘ftp’. Т.е. назначение анонимусу прав этого пользователя

UserAlias            anonymous ftp

#   # Все файлы принадлежат пользователю ‘ftp’.

#   DirFakeUser    on ftp

#   DirFakeGroup on ftp

#

RequireValidShell        off

#

#   # Сколько анонимусов может подключиться одновременно

#   MaxClients              10

#

#   # Показывать приветственное сообщение при переходе

#   # в каждую директорию

#   DisplayLogin            welcome.msg

#   DisplayChdir        .message

#

#   # Ограничение по директиве Write

#       DenyAll

#

#   # Uncomment this if you’re brave.

#   #

#   #   # Маска доступа 022 это хороший стандарт маски доступа на  запись\чтение.

#   #   # (Только тут отдельные правила для анонимусов)

#   #   Umask               022  022

#   #            DenyAll

#   #            AllowAll

################################################################

 

Вот и весь файл. На первый взгляд кажется сложным, но на самом деле тут вовсе нечего конфигурировать.  Принцип работы анонимного proftpd сервера заключается в авторизации пользователя ‘ftp’ без пароля. Именно в папку /home/ftp попадает пользователь при попытке анонимного соединения. Конечно можно создать иную папку и «привязать» к ней пользователя путём редактирования директивы «DefaultRoot» файла proftpd.conf, но это следует делать только в том случае, если вы хотите, чтобы несколько разных ftp-пользователей попадало в одну общую папку. Смысл только при нескольких ftp-аккаунтах. Вообще же можно просто добавить нового пользователя linux

adduser ftpuser (как пример)

Задать ему пароль, и готов аккаунт. Никто не запрещает вам использовать и свои собственные логин/пароль (тогда попадёте к себе в папку /home/yourname). Единственный запрет – логин/пароль root’a. Конечно вы можете назначить пароль пользователю «ftp»:

passwd ftp

Но тогда будут невозможны анонимные соединения.

Я думаю вопросов по анонимному соединению у вас нет. Да и по не анонимному тоже. Минимальное конфигурирование файла proftpd.conf сводится к выбору «standalone» или «inetd». В принципе ничего больше для работы не анонимного proftpd сервера не нужно.

Кстати, я говорил, что для режима inetd необходимо наличие файла inetd.conf в папке /etc

Обычно этот файл создаётся автоматически при выборе режима inetd во время установки, но случаются и ошибки, в результате которых нужного нам файла нет. Тогда мы увидим такое сообщение при попытке запуска proftpd:

 

ProFTPd warning: cannot start neither in standalone nor in inetd/xinetd mode. Check your configuration.

Паниковать не стоит. Просто создаём в папке /etc файлик inetd.conf и вписываем туда тот минимум, что нужен для работы proftpd сервера, а именно эти 2 строчки:

ftp stream tcp nowait root   /usr/sbin/tcpd   /usr/sbin/proftpd

swat stream tcp nowait.400 root   /usr/sbin/tcpd   /usr/sbin/swat

 

Пробуем перезапускать. Должно всё заработать.

Я надеюсь что данной статьёй помог вам разобраться в том, как установить ftp сервер на Linux и доходчиво объяснил основной принцип работы в плане авторизации и типов работы как standalone, так и inetd. А также помог решить часто возникающую проблему. Если у вас всё-таки остались вопросы по настройке proftpd или возникла нестандартная проблема, то добро пожаловать на наш форум.

adminОбзорыПрограммыСтатьиDebian,FTP,ProFTPd,Безопасность,Программы,Сети,Установка
FTP на Linux. ProFTPd.conf на русском Я думаю, каждый из вас когда-то пользовался FTP сервером и прекрасно представляет, что это и с чем его едят. Поэтому нет смысла описывать лишнее, а поведаю как я вам лучше про установку и конфигурирование. Заодно расскажу, с какими ошибками я столкнулся и как это...
ПлохоНиже среднегоПосредственноХорошоОтлично (3 оценок, среднее: 3,67 из 5)