Октябрь 16, 2018, 05:47:04 am

Автор Тема: Настройка FTP сервера в PCLinuxOS (используем PureFTPd)  (Прочитано 4651 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн etc

  • Модераторы
  • Долгожитель
  • ***
  • Сообщений: 578
  • Рейтинг помощника: +47/-0
  • PCLinuxOS : Radically Simple
    • EtcPCLinuxOS
Если понадобится поднять FTP сервер на PCLinuxOS, делаем так:

Примечания:
1. Поднимать и настраивать будем Pure-FTPd сервер, а не стандартный ProFTPd, потому что:
[spoiler]
Функциональные возможности Pure-FTPd:
    * Простота установки и конфигурирования.
    * Встроенная поддержка UTF-8.
    * При подключении по медленным каналам и работе с несколькими серверами возможна работа по FXP протоколу.
    * Может выполняться как отдельный демон (standalone mode), так и через супер-сервер inetd.
    * Поставляется с программой мониторинга pure-ftpwho (с версии 0.97.7), которая в реальном времени показывает кто скачивает/загружает файлы и с какой скоростью. Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде HTML или XML.
    * Сообщения сервера на данный момент переведены на 21 язык (в том числе и на русский).
    * Поддержка как базового, так и расширенного (например MLST) набора FTP команд[3].
    * Возможность использования различных методов идентификации: unix (для пользователей перечисленных в /etc/passwd), PAM, LDAP (поддерживаются методы plaintext, Crypt, MD5, SMD5, SHA и SSHA), MySQL, PostgreSQL, PureDB (механизм самого Pure-FTPd), расширенный (возможность написать и подключить свой модуль идентификации). Допустимо использование нескольких методов одновременно. Имя пользователя и пароль будут проверяться каждым методом последовательно. Проверка завершается и оставшиеся методы использованы не будут если пользователь найден (вне зависимости от того, правильный пароль или нет).
    * Возможен запуск рабочих процессов в chroot-е.
    * Создание виртуальных пользователей.
    * Задание индивидуальных квот, не связанных с системными, для пользователей (максимальное количество файлов, максимальный размер каталога, максимальная скорость скачивания/закачивания).
    * После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, для проверки на вирусы, расчет MD5 хэшей файлов, отправка уведомлений о загрузке).
    * Возможность создания виртуальных FTP серверов (поскольку ftp протокол не поддерживает обращение к серверу по имени, то для каждого сервера необходим выделенный IP адрес).
    * Можно запускать несколько копий сервера с различными конфигурационными опциями.
    * Запрет доступа к dot-файлам (имя которых начинается с точки, например, .ssh directories, .bash_history files, .rhosts).
    * Создание псевдонимов (алиасы) для директорий. Например, если создать алиас pictures для /home/user/pictures и выполнить команду cd находясь в /home, то сервер автоматически совершит редирект в /home/user/pictures (конечно при условии, что не существует директории /home/pictures). Может использоваться для быстрого перехода в определенные каталоги (т.е. работать как shortcuts).
    * Операции загрузки файлов атомарны.
    * Работа по IPv6, в том числе поддержка EPSV/EPRT команд.
    * По заявлению авторов, Pure-FTPd — первый сервер поддерживающий ESTA и ESTP команды.
[/spoiler]
2. Поднимать и настраивать будем пока только анонимный FTP сервер. Если будет не лень кучу конфигов разбирать, постепенно напишу, как настроить FTP сервер с идентификацией пользователей через базу данных MySQL...

1. Скачиваем PureFTPd отсюда.
2. Ставим сервер из исходников:
     ./configure --with-everything
     make
     make install
3. После установки сервер прицепится к папке /var/ftp.
4. В ней нужно создать две папки:
     pub - права на запись только у вас, остальным - только скачивание;
     incoming - права на запись всем.
5. Выдаем права на обе эти папки:
     chmod -R 0755 /var/ftp/pub
     chmod -R 0777 /var/ftp/incoming
6. Запускаем сервер из консоли:
pure-ftpd -4 -A -B -M -l unix -U 022:022 - анонимный FTP с поддержкой учетных записей;
pure-ftpd -4 -A -B -M -e -U 022:022 - только анонимный FTP;
pure-ftpd -4 -A -B -M -E -U 022:022 - только неанонимный FTP.
7. Проверяем работоспособность сервера: запускаем Filezilla - Менеджер сайтов - Новый сайт - Указываем сервер localhost (или ваш IP (если другие на ваш сервер будут заходить, то, естественно, они должны будут вводить ваш IP, но можно к IP и домен прикрутить, тогда по имени зайдут)) - Анонимный вход - Соединяемся - Видим две папки pub, incoming - Пользуемся...
8. Если нужно, чтобы сервер запускался при старте системы, прописать одну из этих команд в автозагрузку.

P.S. Если кому захочется настроить данный сервер с идентификацией пользователей через базу данных MySQL, то сначала установите сам MySQL, а затем перед установкой сервера сконфигурируйте его с параметром ./configure --with-mysql=/***/***, где /***/*** - путь к библиотекам MySQL. А потом создавайте, правьте конфиги, базы данных, пользователей... ;)
« Последнее редактирование: Февраль 17, 2011, 10:12:43 pm от etc »

Оффлайн landgraf

  • *buntu-ненавистник
  • Administrator
  • Гуру форума
  • *****
  • Сообщений: 421
  • Рейтинг помощника: +10/-9
    • http://blog.zhukoff.net
Re: Настройка FTP сервера в PCLinuxOS (используем PureFTPd)
« Ответ #1 : Февраль 17, 2011, 11:11:27 pm »
Спасибо за очередной полезный HOWTO, как только сдеаем (восстановим) сайт - перенесем обязательно туда.

Оффлайн etc

  • Модераторы
  • Долгожитель
  • ***
  • Сообщений: 578
  • Рейтинг помощника: +47/-0
  • PCLinuxOS : Radically Simple
    • EtcPCLinuxOS
Re: Настройка FTP сервера в PCLinuxOS (используем PureFTPd)
« Ответ #2 : Февраль 18, 2011, 05:37:27 pm »
Еще несколько примечаний по FTP серверу:

1. В команде pure-ftpd -4 -A -B -M -l unix -U 022:022 прописаны такие параметры:
-4 - ipv4only, -A - chroot everyone - обязательный параметр, который запирает пользователя в его домашней директории -B - режим демона, -l unix использовать для аутентификации пароли unix, -U - выбираем маску для файлов и директорий - подробнее об этом параметре - man pure-ftpd.

2. Если в Filezilla  вместо анонимного входа пробить свои логин и пароль PCLinuxOS, то попадете не в папку ftp, а в свой родной home. То же касается rootа.

3. Если будете ставить Apache, MySQL, PHP пакетом task-lamp (как я писал здесь), то он автоматом подтянет ProFTPd сервер. Можно и его запустить...
а) Запускаете службу proftpd: service proftpd start. Можно и через графику запускать в настройках системы (Центр управления - Система - Включение и отключение системных сервисов).
б) По умолчанию он заходит на локалхост под пользователем в home и под root (так же, как и PureFTPd).
в) Чтобы настроить анонимный вход в /var/ftp/ поправить два конфига: /etc/proftpd.conf (пример здесь) и /etc/proftpd-anonymous.conf (пример здесь) и дать права на папки (chown -R юзер:группа /var/ftp/incoming и chown -R юзер:группа /var/ftp/pub).

4. Если что-то с ProFTPd не получается, вам сюда. На мой взгляд, лучше использовать PureFTPd: устанавливается и запускается без правки конфигов, работает без сбоев, защищен хорошо и т.д.
« Последнее редактирование: Февраль 18, 2011, 06:27:45 pm от etc »