Различия
Показаны различия между двумя версиями страницы.
— | pure-ftpd [2022/05/11 23:41] (текущий) – создано - внешнее изменение 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Настройка Pure-FTPd ====== | ||
+ | ~~Title: Pure-FTPd быстрая установка и настройка в любом Linux ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Настройка сервера Pure-FTPd. Дополнительные настройки Pure-FTPd Umask, MaxLoad, DontResolve и т.д.) | ||
+ | }} | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Домашняя страница [[https:// | ||
+ | |||
+ | Pure-FTPd — свободный FTP-сервер для операционных систем семейства UNIX, распространяется по лицензии BSD. Основное внимание уделяется безопасности и простоте настройки. | ||
+ | |||
+ | **Функциональные возможности: | ||
+ | * Встроенная поддержка [[UTF-8]]. | ||
+ | * Поставляется с программой мониторинга **pure-ftpwho**, | ||
+ | * Возможен запуск pure-ftpwho как CGI приложения с возможностью генерации выходных данных в виде [[HTML5|HTML]] или [[XML|XML]]. | ||
+ | * Сообщения сервера на данный момент переведены на 21 язык. | ||
+ | * Создание виртуальных пользователей. | ||
+ | * Задание индивидуальных квот, не связанных с системными, | ||
+ | * После загрузки файла на сервер возможен автоматический запуск внешних скриптов или программ (например, | ||
+ | * Запрет доступа к dot-файлам (имя которых начинается с точки, например, | ||
+ | * Создание псевдонимов (алиасы) для директорий (т.е. работать как shortcuts). | ||
+ | |||
+ | ===== Шаг 1: Инсталляция Pure-FTPd в Debian, Ubuntu, CentOS ===== | ||
+ | [[CentOS|CentOS]]: | ||
+ | <file bash> | ||
+ | yum install pure-ftpd | ||
+ | </ | ||
+ | |||
+ | [[Debian|Debian]], | ||
+ | <file bash> | ||
+ | apt install pure-ftpd | ||
+ | </ | ||
+ | |||
+ | Запустим установленный, | ||
+ | <file bash> | ||
+ | systemctl start pure-ftpd; | ||
+ | systemctl enable pure-ftpd; | ||
+ | </ | ||
+ | |||
+ | ===== Шаг 2: Установка и настройка Pure-FTPd сервера ===== | ||
+ | На этом этапе сервер Pure-FTPd запущен и готов к работе. Проверим работу FPT сервера на localhost: | ||
+ | |||
+ | <file bash> | ||
+ | $ ftp localhost | ||
+ | Trying [::1]:21 ... | ||
+ | Connected to localhost. | ||
+ | 220---------- Welcome to Pure-FTPd [privsep] [TLS] ---------- | ||
+ | 220-You are user number 1 of 50 allowed. | ||
+ | 220-Local time is now 18:51. Server port: 21. | ||
+ | 220-This is a private system - No anonymous login | ||
+ | 220 You will be disconnected after 15 minutes of inactivity. | ||
+ | Name (localhost: | ||
+ | </ | ||
+ | |||
+ | <note tip>У PureFTPd в Ubuntu не используется файл конфигурации pure-ftpd.conf - все настройки хранятся в директории / | ||
+ | |||
+ | |||
+ | * Конфигурационные файлы и директории:< | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | * Включим [[Chroot|chroot-jail]]. Можно или запустить PureFTPd с ключом -A или задать параметр.< | ||
+ | echo yes > / | ||
+ | </ | ||
+ | * Поскольку мы будем настраивать авторизацию через PureDB, надо запретить PAM:< | ||
+ | echo no > / | ||
+ | </ | ||
+ | |||
+ | ===== Шаг 3: Виртуальные пользователи PureDB ===== | ||
+ | |||
+ | **Механизм Virtual Users в Pure-FTPD** ([[https:// | ||
+ | |||
+ | Включим авторизацию из база данных пользователей PureDB (создадим символическую ссылку), | ||
+ | ln -s / | ||
+ | ls -l / | ||
+ | |||
+ | lrwxrwxrwx 1 root root 26 Sep 17 12:32 60PureDB -> / | ||
+ | lrwxrwxrwx 1 root root 26 Sep 17 12:29 65unix -> ../ | ||
+ | lrwxrwxrwx 1 root root 25 Sep 17 12:29 70pam -> ../ | ||
+ | </ | ||
+ | |||
+ | <alert type=" | ||
+ | |||
+ | В моем случае | ||
+ | <file bash> | ||
+ | ps -ef | grep nginx | ||
+ | </ | ||
+ | |||
+ | {{ :: | ||
+ | |||
+ | Как мы видим он у меня запущен от пользователя www-data (также часто встречается запуск от пользователя nginx). Теперь выясним uid нашего пользователя www-data, введя команду | ||
+ | <file bash> | ||
+ | id www-data | ||
+ | |||
+ | uid=33(www-data) gid=33(www-data) groups=33(www-data) | ||
+ | </ | ||
+ | В / | ||
+ | ===== Шаг 4: Создание виртуальных пользователей ===== | ||
+ | Все операции над пользователями FTP сервера осуществляться с помощью утилиты pure-pw. Работа с виртуальными пользователями происходит в два этапа: | ||
+ | - Создание файла со списком пользователей и их параметрами (по умолчанию '/ | ||
+ | - Создание на основе файла списка бинарного файла, с которым в конечном итоге и будет работать сервер (по умолчанию / | ||
+ | * Создадим нашего первого пользователя tester< | ||
+ | pure-pw useradd tester -u www-data -g www-data -d /var/www -c "Name User" -y 4 | ||
+ | pure-pw mkdb # что бы изменения были сразу же внесены в файл ' | ||
+ | chown -R www-data: | ||
+ | </ | ||
+ | Подключимся, | ||
+ | <file bash> | ||
+ | ls -l /var/www | ||
+ | drwxr-xr-x | ||
+ | -rw-r--r-- | ||
+ | </ | ||
+ | |||
+ | **Все!** Настройка FTP сервера завершена. | ||
+ | |||
+ | ===== Шаг 5: Включение шифрования SSL/TLS (опционально) ===== | ||
+ | Современные реалии требуют всё шифровать. Давайте и мы сделаем протокол [[FTP|FTP]] более защищенным. И обязательно запищим пароль от FTP сервера на листочке и приклеим к монитору (шутка :-))! | ||
+ | |||
+ | Преамбула, | ||
+ | |||
+ | <file bash> | ||
+ | apt install openssl | ||
+ | </ | ||
+ | Итак, для начала нам нужно создать SSL сертификат и подключить его к нашему серверу Pure-FTPd. По соглашению, | ||
+ | |||
+ | <file bash> | ||
+ | openssl req -x509 -nodes -newkey rsa:2048 -keyout / | ||
+ | </ | ||
+ | Запущенная команда задаст несколько вопросов, | ||
+ | <file bash> | ||
+ | Country Name (2 letter code) [AU]:UA | ||
+ | State or Province Name (full name) [Some-State]: | ||
+ | Locality Name (eg, city) []: | ||
+ | Organization Name (eg, company) [Internet Widgits Pty Ltd]: | ||
+ | Organizational Unit Name (eg, section) []: | ||
+ | Common Name (e.g. server FQDN or YOUR name) []: | ||
+ | Email Address []: | ||
+ | </ | ||
+ | Зададим права на файл сертификата | ||
+ | < | ||
+ | chmod 600 / | ||
+ | </ | ||
+ | Выберем один из трех режимов работы для FTP сервера. Если вы хотите разрешить сессии как FTP, так и TLS, выполните команду: | ||
+ | <file bash> | ||
+ | echo 1 > / | ||
+ | </ | ||
+ | Если же вы хотите разрешить только сессии TLS (без FTP), выполните: | ||
+ | <file bash> | ||
+ | echo 2 > / | ||
+ | </ | ||
+ | Чтобы запретить TLS совсем (разрешить только FTP), либо удалите файл / | ||
+ | <file bash> | ||
+ | echo 0 > / | ||
+ | </ | ||
+ | |||
+ | Затем перезапустите службу Pure FTPd, чтобы изменения вступили в силу: | ||
+ | < | ||
+ | systemctl restart pure-ftpd | ||
+ | </ | ||
+ | Теперь можно соединиться с сервером. Если соединение производится первый раз, вам будет предложено принять новый SSL-сертификат сервера. | ||
+ | ====== Использование утилит Pure-FTPD ====== | ||
+ | * Добавить пользователя и установить для него пароль: | ||
+ | <file bash> | ||
+ | pure-pw useradd YourUser -u ftpusers -g ftpusers -d / | ||
+ | </ | ||
+ | * Для применения изменений нужно обновить файл pureftpd.pdb командой. Чтобы избежать использования ' | ||
+ | <file bash> | ||
+ | pure-pw mkdb | ||
+ | </ | ||
+ | * Просмотр данных пользователя | ||
+ | <file bash> | ||
+ | pure-pw show YourLogin | ||
+ | </ | ||
+ | * Изменить пароль | ||
+ | <file bash> | ||
+ | pure-pw passwd YourLogin | ||
+ | </ | ||
+ | * Пример мониторинга Pure-FTPd, при помощи встроенной утилиты pure-ftpwho: | ||
+ | < | ||
+ | +------+---------+-------+------+-------------------------------------------+ | ||
+ | | PID | Login |For/Spd| What | | ||
+ | +------+---------+-------+------+-------------------------------------------+ | ||
+ | | 2356 | testftp | 00:00 | IDLE | | | ||
+ | | '' | ||
+ | +------+---------+-------+------+-------------------------------------------+ | ||
+ | </ | ||
+ | ====== Дополнительные настройки 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' > / | ||
+ | </ | ||
+ | |||
+ | * **MaxLoad**. **Максимальная параллельная загрузка: | ||
+ | echo 4 > / | ||
+ | </ | ||
+ | * **DontResolve**. Записывать в лог IP, а не имя клиента. Это приведет к ускорению работы Pure-FTPd так как не будет использоваться [[DNS|DNS]].< | ||
+ | echo ' | ||
+ | </ | ||
+ | <note important> | ||
+ | |||
+ | * **Bind изменить IP,port** Для того чтобы задать определенный IP и/или порт нужно создать файл Bind, в котором через запятую указать IP и порт. Можно задать пустые значение, | ||
+ | echo ' | ||
+ | </ | ||
+ | * Приоритеты аутентификации< | ||
+ | # Пожалуйста, | ||
+ | # PAMAuthentication и UnixAuthentication могут использоваться только | ||
+ | # один раз, но они могут использоваться вместе. Например, | ||
+ | # используете MySQLConfigFile, | ||
+ | # к MySQL. Если в БД такой пользователь не найден, | ||
+ | # системный пользователь в /etc/passwd и / | ||
+ | # аутентификация неудачна по причине неправильного пароля, | ||
+ | # остановка дальнейшего поиска пользователя. Методы аутентификации | ||
+ | # будут использоваться в порядке в котором они заданы | ||
+ | </ | ||
+ | * **Запретить анонимный доступ** - echo yes > / | ||
+ | * **Более полный лог** - echo yes > / | ||
+ | * **Показывать системные файлы (вида .имяфайла)** - echo yes > / | ||
+ | * **Время простою до отключения 15 минут** - echo 15 > / | ||
+ | |||
+ | <panel type=" | ||
+ | * [[Правила iptables для FTP]] | ||
+ | * [[Fail2ban]] - защита от брутфорса портов FTP | ||
+ | </ | ||
+ | |||
+ | |||
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга