Настройка 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:

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

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

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

Советы по безопасности и жёсткая конфигурация
- Используйте сильный ключ RSA минимум 2048 бит (предпочтительно 3072/4096 при допустимом времени генерации).
- По возможности используйте сертификат от доверенного CA вместо самоподписанного в продакшне.
- Ограничьте Cipher Suite, разрешая только современные алгоритмы (в конфиге PureFTPd задайте TLSCipherSuite с учётом рекомендаций вашей организации).
- Запретите анонимный доступ при включённом TLS 2, если он не нужен.
- Регулярно проверяйте логи (/var/log/messages или системный journal) на предмет неудачных попыток входа.
- Планируйте ротацию сертификатов и ключей (например, каждые 1–3 года для CA-сертификатов).
Модель развертывания: методика быстрого внедрения
- Подготовка на тестовой среде: установите PureFTPd и сгенерируйте сертификат.
- Тестирование совместимости: подключитесь разными клиентами (FileZilla, lftp, браузеры с FTP-плагинами).
- Обновление продакшн-конфигурации: выполнить те же шаги, но на прод-серверах за окном обслуживания.
- Мониторинг и аудит: включите логирование и проверяйте предупреждения.
Роль‑ориентированные чеклисты
- Администратор сервера:
- Установить 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 и видит зашифрованный канал.
Тестовые случаи
- Попытка подключиться клиентом без TLS при включённом TLS=2 — соединение должно быть отклонено.
- Подключение FileZilla с «Require Explicit FTP over TLS» — сертификат принимается и канал шифруется.
- Попытка подключиться анонимно при 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.
Ссылки
- PureFTPd: http://www.pureftpd.org/
- FileZilla: http://filezilla-project.org/
- CentOS: http://www.centos.org/
Итог
Включение TLS в PureFTPd на CentOS 7 — это относительно простой шаг, который значительно повышает безопасность передачи файлов. Генерация сертификата, корректная конфигурация pure-ftpd.conf и настройка клиентов (FileZilla и аналоги) — основные этапы. Обязательно тестируйте изменения в контролируемой среде и держите сертификаты под контролем.
Похожие материалы
Зачёркивание в Microsoft Word — пошагово
OneNote для школы: лучшие приёмы
Как ухаживать за Nintendo Switch в жару
Изменение шрифта по умолчанию в PowerPoint
Бесплатный логотип в VistaCreate — пошаговое руководство