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

Linux - Сети

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

Вы всегда можете оставить в комментариях свои замечания и пожелания по доработке, изменению или исправлению статьи. Мы работаем для вас!

Поделится с другими

Комментарии  

 
-4 #1 Женя 19.05.2011 07:21
Спасибо большое, очень помог мануал на русском)))))Без перевода не во всём смог разобраться сам...
Цитировать
 
 
-2 #2 Artur 24.05.2011 12:23
Здесь http://www.artcom-ufa.ru/?posts/2011/05/19/ustanovka-i-nastroika-proftpd я описал как настроить proftpd на debian для небольшого хостинга, с шифрованием, пользователи авторизуются через файл /etc/proftpd/ftpd.passwd.
Цитировать
 
 
-2 #3 ArT666 25.05.2011 08:29
Цитирую Artur:
Здесь http://www.artcom-ufa.ru/?posts/2011/05/19/ustanovka-i-nastroika-proftpd я..

Молдец, Artur, хорошо написал ;) Нихотел бы стать автором и на этом сайте? Вот пришли эту статью на этот адресс
Цитировать
 
 
+1 #4 Zheka 07.06.2011 11:19
При старте выдает ошибку, файл inetd.conf создал:

Neither inetd nor xinetd appears installed: check your configuration.
Цитировать
 
 
-3 #5 Squ1sh 07.06.2011 23:57
Убедитесь что всё правильно.
Файл inet.d лежит в корне /etc
Файл inet.d содержит указанные мною строчки
Если не сработало, то проверьте работает ли у вас ProFTPd вообще. Например в режиме standalone - (Параметр ServerType standalone)
Если что - пишите, поможем )
Цитировать
 
 
-3 #6 Suberjin 03.10.2011 21:34
Спасибо. Статья написана хорошо и не в спешке. качественно.
Цитировать
 
 
-2 #7 cssnik 06.10.2011 02:06
Столкнулся с такими проблемами:

вывод консоли можно увидеть здесь http://selfnotes.net/80e53b90e95f71ce7bfa1709a049ee56
Цитировать
 
 
-2 #8 cssnik 06.10.2011 02:48
А как сделать вот как здесь ftp://centos.alt.ru/ не обязательно с графикой и дизайном, а именно так, чтобы мог любой зайти и просто тупо скачать?! Помогите пожалуйста!
Цитировать
 
 
-2 #9 Squ1sh 07.10.2011 00:57
cssnikЭто просто анонимный FTP сервер. Поднимаете его, затем через браузер заходите. Просто в адресной строке вместо http пишите ftp. И указываете адрес. Нужно указать IP адрес или имя хоста (если прописан в DNS)
По поводу ошибок при установке - попробуйте установить proftpd c ключом -f (force)
# apt-get -f install proftpd
Цитировать
 
 
-2 #10 remalex 24.04.2012 09:58
Можно ли привязать FTP к определённому интерфейсу, например к eth2?
Цитировать
 

Добавить комментарий



Обновить

Рейтинг пользователей: / 4
ХудшийЛучший 



Кто онлайн?

    Donate

    Помочь проекту Сделать пожертвование

    Реклама

    

    Мы в twitter

    Последние комментарии

    • Ну да, для дома или пары клиентов рублей 9 выкину...
      By a148ru
    • Бизнес в интернете - ровно как и заработок в интер...
      By culbipa
    • непонял
      By DragoN
    • ДЕЛАЛ ПОЛНОСТЬЮ ПО МАНУАЛУ - В /BOOT НИ ЧЕ КРОМЕ G...
      By romka
    • Сам вспомнил, что днс спокойно можно клиентам раз...
      By alex2012
    • Великолепный сайт, читаю не отрываясь уже третий ч...
      By biz87
    • 2 Петр становитесь соавтором! :-)
      By Squ1sh
    • Так здорово наблюдать, как кто-то пытается разобра...
      By Петр
    линуксы.рф

    RamblerTop100