Инструменты пользователя

Инструменты сайта


pure-ftpd

Pure-FTPd

Функциональные возможности:

  • Встроенная поддержка UTF-8.
  • Поставляется с программой мониторинга pure-ftpwho, которая в реальном времени показывает кто скачивает/загружает файлы и с какой скоростью.
  • Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде HTML или XML.
  • Сообщения сервера на данный момент переведены на 21 язык.
  • Создание виртуальных пользователей.
  • Задание индивидуальных квот, не связанных с системными, для пользователей (максимальное количество файлов, максимальный размер каталога, максимальная скорость скачивания/закачивания).
  • После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, для проверки на вирусы, расчет MD5 хэшей файлов, отправка уведомлений о загрузке).
  • Запрет доступа к dot-файлам (имя которых начинается с точки, например, .ssh directories, .bash_history files, .rhosts).
  • Создание псевдонимов (алиасы) для директорий (т.е. работать как shortcuts).

Инсталляция

Инсталляция Pure-FTPd в Debian, Ubuntu.

  • Инсталляция. После её окончания Pure-FTPd запущен и готов к работе.
    $ sudo aptitude install pure-ftpd
    ...
    Starting ftp server: Running: /usr/sbin/pure-ftpd -l pam -8 UTF-8 -E -u 1000
     -O clf:/var/log/pure-ftpd/transfer.log -B
     
    $ ftp localhost
    Connected to localhost.
    220---------- Welcome to Pure-FTPd [privsep] [TLS] ----------
    220-You are user number 1 of 50 allowed.
    220-Local time is now 11:24. Server port: 21.
    220-This is a private system - No anonymous login
    220-IPv6 connections are also welcome on this server.
    220 You will be disconnected after 15 minutes of inactivity.
    Name (localhost:admin):
У PureFTPd в Ubuntu не используется файл конфигурации pure-ftpd.conf - все настройки хранятся в директории /etc/pure-ftpd/conf/ в виде отдельных файлов с именем параметра. То есть для изменения настроек сервера нужно создать файл с названием параметра и значением внутри.
  • Конфигурационные файлы и директории:
    /etc/default/pure-ftpd-common
    /etc/pure-ftpd
  • Включим chroot-jail. Можно или запустить PureFTPd с ключом -A или задать параметр.
    echo yes > /etc/pure-ftpd/conf/ChrootEveryone
  • Поскольку мы будем настраивать авторизацию через PureDB, надо запретить PAM:
    echo no > /etc/pure-ftpd/conf/PAMAuthentication

Virtual Users PureDB

Механизм Virtual Users в Pure-FTPD (README.Virtual-Users), представляет из себя следующее - в системе заводится системный пользователь, который ассоциируется с виртуальным пользователем. Можно ассоциировать несколько виртуальных пользователей с реальным системным пользователем. Для виртуальных пользователей назначается свой каталог, можно назначить ему так же квоты и прочее.

  • Включим авторизацию из база данных пользователей PureDB (создадим символическую ссылку), по умолчанию была настроена авторизация Unix(no - выключена) и PAM (yes - включена). При аутентификации важен порядок (:!: security) загрузки, потому добавим цифру 60 в название создаваемой символической ссылки, чтобы проверка пользователя начиналась именно с проверки из PureDB
    ln -s /etc/pure-ftpd/conf/PureDB /etc/pure-ftpd/auth/60PureDB
    ls -l /etc/pure-ftpd/auth/
     
    lrwxrwxrwx 1 root root 26 Sep 17 12:32 60PureDB -> /etc/pure-ftpd/conf/PureDB
    lrwxrwxrwx 1 root root 26 Sep 17 12:29 65unix -> ../conf/UnixAuthentication
    lrwxrwxrwx 1 root root 25 Sep 17 12:29 70pam -> ../conf/PAMAuthentication
  • Создадим системного пользователя ftpuser без shell и добавим его в группу www-data (в которую входит веб сервер Apache, чтобы права были вида ftpuser:www-data)
    useradd -g www-data -d /home/ftpuser -m -s /bin/false ftpuser
    id ftpuser
    uid=1001(ftpuser) gid=33(www-data) groups=33(www-data)
    id www-data
    uid=33(www-data) gid=33(www-data) groups=33(www-data)
  • Создание виртуальных пользователей. Все операции над пользователями FTP сервера осуществляться с помощью утилиты pure-pw. Работа с виртуальными пользователями происходит в два этапа:
  1. Создание файла со списком пользователей и их параметрами (по умолчанию '/etc/pureftpd.passwd'), на этом этапе вы также можете вносить изменения в список аккаунтов
  2. Создание на основе файла списка бинарного файла, с которым в конечном итоге и будет работать сервер (по умолчанию '/etc/pureftpd.pdb');
  • Создадим нашего первого пользователя tester
    pure-pw useradd tester -u ftpuser -g www-data -d /var/www/joo -c "John Smith" -y 4
    pure-pw mkdb # что бы изменения были сразу же внесены в файл 'pureftpd.pdb' используйте ключ -m
    chown -R ftpuser:www-data /var/www/joo

    Подключимся и создадим тестовые файл и директорию, чтобы проверить какие будут выставлены права

    ls -l /var/www/joo/
    drwxr-xr-x 2 ftpuser www-data 4096 Sep 17 14:04 test1
    -rw-r--r-- 1 ftpuser www-data    0 Sep 17 14:04 test2
  • Все! Настройка завершена.

Утилиты Pure-FTPD

  • Добавить пользователя и установить для него пароль:
    pure-pw useradd YourUser -u ftpusers -g ftpusers -d /home/YourDirFTP -c "John Smith"
  • Для применения изменений нужно обновить файл pureftpd.pdb командой. Чтобы избежать использования 'pure-pw mkdb' после каждого изменения данных, используйте опцию '-m' в командах модификации
    pure-pw mkdb
  • Просмотр данных пользователя
    pure-pw show YourLogin
  • Изменить пароль
    pure-pw passwd YourLogin

Дополнительные настройки Pure-FTPd

  • Umask. Для параноика umask 177 077. The default are 133 (files are readable -but not writable- by other users) and 022 (same thing for directory, with the execute bit on). If new files should only be readable by the user, use 177:077. If you want uploaded files to be executable, use 022:022 (files will be readable by other people) or 077:077 (files will only be readable by their owner).
    echo '177 077' > /etc/pure-ftpd/conf/Umask
  • MaxLoad. Максимальная параллельная загрузка:
    echo 4 > /etc/pure-ftpd/conf/MaxLoad
  • MinUID. 530 Sorry, but I can't trust you. Для устранения этой ошибки нужно в /etc/pure-ftpd/conf/MinUID изменить значение 1000 на 33 этим мы разрешим системных пользователей начиная с 33, в моем случае это пользователь www-data. Этого не следует делать.
  • DontResolve. Записывать в лог IP, а не имя клиента. Это приведет к ускорению работы Pure-FTPd так как не будет использоваться DNS.
    echo 'yes' > /etc/pure-ftpd/conf/DontResolve
Изменение этого параметра в Ubuntu затронет лог-файл /var/log/syslog, а файл /var/log/auth.log не будет изменен, что важно при настройки Fail2ban. Fail2ban по умолчанию просматривает файл auth.log.
  • Bind изменить IP,port Для того чтобы задать определенный IP и/или порт нужно создать файл Bind, в котором через запятую указать IP и порт. Можно задать пустые значение, в этом случае будут использованы значения по умолчанию:
    echo '10.26.95.227,21000' > /etc/pure-ftpd/conf/Bind
  • Приоритеты аутентификации
    # Пожалуйста, отметьте, что LDAPConfigFile, MySQLConfigFile,
    # PAMAuthentication и UnixAuthentication могут использоваться только
    # один раз, но они могут использоваться вместе. Например, если вы
    # используете MySQLConfigFile, затем UnixAuthentication, то идёт запрос
    # к MySQL. Если в БД такой пользователь не найден, то пробуется 
    # системный пользователь в /etc/passwd и /etc/shadow. Если SQL
    # аутентификация неудачна по причине неправильного пароля, то происходит
    # остановка дальнейшего поиска пользователя. Методы аутентификации
    # будут использоваться в порядке в котором они заданы
  • Запретить анонимный доступ - echo yes > /etc/pure-ftpd/conf/NoAnonymous
  • Более полный лог - echo yes > /etc/pure-ftpd/conf/VerboseLog
  • Показывать системные файлы (вида .имяфайла) - echo yes > /etc/pure-ftpd/conf/DisplayDotFiles
  • Время простою до отключения 15 минут - echo 15 > /etc/pure-ftpd/conf/MaxIdleTime
pure-ftpd.txt · Последние изменения: 2015/11/16 08:29 (внешнее изменение)

Яндекс.Метрика