FTP на Linux. ProFTPd.conf на русском
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 или возникла нестандартная проблема, то добро пожаловать на наш форум.
Добавить комментарий