Гид по технологиям

Настройка PureFTPd для работы по TLS на CentOS 7

5 min read Серверы Обновлено 28 Nov 2025
PureFTPd + TLS на CentOS 7
PureFTPd + TLS на CentOS 7

Почему стоит использовать TLS для FTP

Plain FTP передаёт учётные данные и данные в открытом виде — это риск перехвата и подмены. TLS (Transport Layer Security) шифрует трафик между клиентом и сервером, снижая риск перехвата паролей и целостности данных. Кратко: TLS делает FTP безопаснее и подходит для передачи чувствительных файлов.

Требования и предварительные шаги

  • Рабочая установка PureFTPd на CentOS 7. Это предполагает, что служба уже установлена и запущена. Если нет — сначала установите и протестируйте PureFTPd в обычном режиме.
  • Доступ к root или sudo для изменения системных файлов и перезапуска служб.
  • Установленный OpenSSL (ниже показано, как установить).

Установка OpenSSL

OpenSSL необходим для генерации сертификатов и поддержки TLS. Установите пакет так:

yum install openssl

Настройка PureFTPd

Откройте файл конфигурации:

nano /etc/pure-ftpd/pure-ftpd.conf

Найдите опцию TLS и установите нужное значение:

[...]
# This option can accept three values :
# 0 : disable SSL/TLS encryption layer (default).
# 1 : accept both traditional and encrypted sessions.
# 2 : refuse connections that don't use SSL/TLS security mechanisms,
#     including anonymous sessions.
# Do _not_ uncomment this blindly. Be sure that :
# 1) Your server has been compiled with SSL/TLS support (--with-tls),
# 2) A valid certificate is in place,
# 3) Only compatible clients will log in.

TLS                      1
[...]
  • Установите TLS 1 — чтобы принимать как обычные FTP-, так и TLS-сессии.
  • Установите TLS 2 — чтобы принимать только TLS-сессии (FTP без TLS запрещён).
  • Установите TLS 0 — отключить TLS (не рекомендуется для продакшна).

Удалите символ # перед следующими строками (раскомментируйте) и проверьте пути:

TLSCipherSuite            HIGH  
CertFile                 /etc/ssl/private/pure-ftpd.pem

Сохраните файл.

Важно: Перед включением TLS убедитесь, что PureFTPd собран с поддержкой TLS (–with-tls). Без этого параметра изменения в конфиге не дадут результата.

Создание SSL-сертификата для TLS

Создаём директорию для приватных ключей (если ещё не создана):

mkdir -p /etc/ssl/private/

Генерируем самоподписанный сертификат (пример на ~20 лет срока действия — 7300 дней):

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

Во время генерации заполните поля:

  • Country Name (2 letter code): код вашей страны, например DE или RU.
  • State or Province Name: область или регион.
  • Locality Name: город.
  • Organization Name: название организации или компании.
  • Organizational Unit Name: подразделение (например, IT).
  • Common Name: FQDN сервера (например, server1.example.com).
  • Email Address: контактный e‑mail.

После создания ограничьте права на файл сертификата:

chmod 600 /etc/ssl/private/pure-ftpd.pem

Перезапустите службу PureFTPd:

systemctl restart pure-ftpd.service

Если перезапуск прошёл без ошибок, сервер готов принимать TLS-сессии.

Настройка FileZilla для TLS

Чтобы подключаться по FTP+TLS используйте клиент с поддержкой TLS, например FileZilla.

Откройте Диспетчер сайтов (Site Manager) в FileZilla:

Открыть Диспетчер сайтов в FileZilla.

Выберите ваш сайт/сервер и в поле Тип сервера (Server Type) установите «Require Explicit FTP over TLS» (Требовать явный FTP поверх TLS) вместо обычного FTP:

Настройки сервера в FileZilla: выбор Require Explicit FTP over TLS.

При первом подключении клиент запросит подтверждение сертификата — проверьте отпечаток и примите сертификат, если всё соответствует:

Предупреждение SSL в FileZilla — принять сертификат.

Если подключение успешно, вы увидите окно входа в систему:

Успешный вход в FileZilla по TLS.

Советы по безопасности и жёсткая конфигурация

  • Используйте сильный ключ RSA минимум 2048 бит (предпочтительно 3072/4096 при допустимом времени генерации).
  • По возможности используйте сертификат от доверенного CA вместо самоподписанного в продакшне.
  • Ограничьте Cipher Suite, разрешая только современные алгоритмы (в конфиге PureFTPd задайте TLSCipherSuite с учётом рекомендаций вашей организации).
  • Запретите анонимный доступ при включённом TLS 2, если он не нужен.
  • Регулярно проверяйте логи (/var/log/messages или системный journal) на предмет неудачных попыток входа.
  • Планируйте ротацию сертификатов и ключей (например, каждые 1–3 года для CA-сертификатов).

Модель развертывания: методика быстрого внедрения

  1. Подготовка на тестовой среде: установите PureFTPd и сгенерируйте сертификат.
  2. Тестирование совместимости: подключитесь разными клиентами (FileZilla, lftp, браузеры с FTP-плагинами).
  3. Обновление продакшн-конфигурации: выполнить те же шаги, но на прод-серверах за окном обслуживания.
  4. Мониторинг и аудит: включите логирование и проверяйте предупреждения.

Роль‑ориентированные чеклисты

  • Администратор сервера:
    • Установить openssl и pure-ftpd.
    • Сгенерировать сертификат в /etc/ssl/private/.
    • Проверить права на файл и перезапустить сервис.
  • Инженер безопасности:
    • Подобрать и проверить Cipher Suite.
    • Оценить необходимость CA-сертификата.
    • Настроить ротацию и аудит сертификатов.
  • Оператор поддержки:
    • Обучить пользователей настройке клиентов (FileZilla).
    • Проверить логи и восстановить сервис при ошибках.

Критерии приёмки

  • Сертификат присутствует по пути /etc/ssl/private/pure-ftpd.pem с правами 600.
  • В конфиге pure-ftpd.conf TLS установлен в 1 или 2 и TLSCipherSuite/CertFile не закомментированы.
  • PureFTPd перезапускается без ошибок.
  • Клиент успешно подключается по Explicit FTP over TLS и видит зашифрованный канал.

Тестовые случаи

  1. Попытка подключиться клиентом без TLS при включённом TLS=2 — соединение должно быть отклонено.
  2. Подключение FileZilla с «Require Explicit FTP over TLS» — сертификат принимается и канал шифруется.
  3. Попытка подключиться анонимно при TLS=2 — доступ запрещён (если политика сервера требует этого).

Когда этот подход не подходит (альтернативы)

  • Если вам нужен защищённый обмен файлами с современными протоколами, рассмотрите SFTP (SSH File Transfer Protocol) — он проще в управлении ключами и менее зависит от сертификатов.
  • Для интеграции с веб-приложениями подумайте о HTTPS-APIs или SCP/rsync по SSH.

Краткое руководство по миграции (high-level)

  • Оцените текущие клиенты: все ли поддерживают Explicit FTP over TLS?
  • Если есть старые клиенты без TLS — план перехода: обновление клиентов или принудительный перевод на альтернативы (SFTP).
  • Тестируйте на небольшой группе пользователей перед полной миграцией.

1‑строчный глоссарий

  • TLS: протокол шифрования сетевого трафика.
  • CertFile: путь к файлу сертификата и приватного ключа.
  • Explicit FTP over TLS: режим, в котором клиент инициирует шифрование через команду AUTH TLS.

Ссылки

Итог

Включение TLS в PureFTPd на CentOS 7 — это относительно простой шаг, который значительно повышает безопасность передачи файлов. Генерация сертификата, корректная конфигурация pure-ftpd.conf и настройка клиентов (FileZilla и аналоги) — основные этапы. Обязательно тестируйте изменения в контролируемой среде и держите сертификаты под контролем.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Зачёркивание в Microsoft Word — пошагово
Microsoft Word

Зачёркивание в Microsoft Word — пошагово

OneNote для школы: лучшие приёмы
Образование

OneNote для школы: лучшие приёмы

Как ухаживать за Nintendo Switch в жару
Консоли

Как ухаживать за Nintendo Switch в жару

Изменение шрифта по умолчанию в PowerPoint
PowerPoint

Изменение шрифта по умолчанию в PowerPoint

Бесплатный логотип в VistaCreate — пошаговое руководство
Дизайн

Бесплатный логотип в VistaCreate — пошаговое руководство

Поиск в Windows 8: руководство и советы
Windows

Поиск в Windows 8: руководство и советы