Настройка PureFTPd с TLS на CentOS 6.2
Краткое содержание
- Предварительные требования
- Установка OpenSSL
- Конфигурация PureFTPd (режимы TLS)
- Создание SSL-сертификата
- Перезапуск и тестирование
- Настройка FileZilla (FTPES)
- Рекомендации по безопасности и отладке
- Чеклисты, критерии приёмки и альтернативы
1 Предварительные заметки
Должна быть готовая рабочая установка PureFTPd на сервере CentOS 6.2 (например, как в руководстве по виртуальному хостингу с PureFTPd и MySQL). Убедитесь, что у вас есть root-доступ или sudo-права.
Важно: CentOS 6.2 устарел и больше не получает обновлений безопасности. По возможности планируйте миграцию на поддерживаемую версию ОС.
2 Установка OpenSSL
OpenSSL требуется для TLS. Установите его командой:
yum install openssl3 Конфигурация PureFTPd
Откройте конфигурационный файл:
vi /etc/pure-ftpd/pure-ftpd.confЕсли вы хотите разрешить и обычные FTP, и TLS-сессии, установите TLS в 1:
| [...] # 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-сессии (без незащищённого FTP), установите TLS в 2:
| [...] # 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 2 [...] |
Чтобы полностью отключить TLS и использовать только FTP, установите TLS в 0:
| [...] # 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 0 [...] |
Важно: перед принудительным включением TLS (значение 2) убедитесь, что все клиенты поддерживают FTPS; иначе они не смогут подключиться.
4 Создание SSL-сертификата для TLS
Создайте каталог для приватных ключей и сертификатов, если он ещё не существует:
mkdir -p /etc/ssl/private/Сгенерируйте самоподписанный сертификат (пример на 2048 бит, срок действия 20 лет):
openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pemПри появлении запросов введите соответствующие данные (страна, область, город, организация, FQDN сервера и т.д.).
Защитите файл сертификата правами доступа:
chmod 600 /etc/ssl/private/pure-ftpd.pemПерезапустите PureFTPd:
/etc/init.d/pure-ftpd restartЕсли служба не перезапускается, проверьте логи (/var/log/messages или системный журнал) и убедитесь, что конфигурация и путь к сертификату корректны.
5 Настройка FileZilla для TLS
Для работы с защищённым FTP используйте FTP-клиент с поддержкой TLS, например FileZilla.
В FileZilla откройте Менеджер сайтов и выберите сервер, где настроен PureFTPd. В выпадающем списке «Тип сервера» (Server Type) выберите FTPES (Explicit FTP over TLS):

Если вы подключаетесь впервые, FileZilla запросит подтверждение SSL-сертификата сервера — примите его, если вы доверяете серверу:

После успешного подключения вы увидите файловую систему сервера в интерфейсе клиента:

ALT-примечание: если используете самоподписанный сертификат, пользователям нужно будет вручную принять сертификат в клиенте.
6 Ссылки
- PureFTPd: http://www.pureftpd.org/
- FileZilla: http://filezilla-project.org/
- CentOS: http://www.centos.org/
Рекомендации по безопасности и отладке
- Используйте сильный ключ RSA минимум 2048 бит; при возможности — 3072/4096.
- Ограничьте поддерживаемые версии TLS (отключите SSLv2/SSLv3). Вырежьте слабые шифры и включите только современный набор (например, ECDHE+AES/GCM).
- По возможности отдавайте предпочтение SFTP (SSH) для передачи файлов — это альтернатива FTPS с другим протоколом.
- Включите chroot для пользователей FTP, чтобы ограничить доступ к файловой системе.
- Настройте fail2ban для защиты от грубой силы.
- Логируйте успешные и неуспешные подключения и регулярно проверяйте логи.
Когда TLS не работает:
- Клиент не поддерживает FTPS (особенно старые встроенные FTP-клиенты). Проверьте совместимость.
- Неверный путь к файлу сертификата или неправильные права доступа.
- PureFTPd был собран без опции –with-tls.
Чек-лист администратора (быстрый контроль)
- PureFTPd установлен и скомпилирован с поддержкой TLS (–with-tls).
- OpenSSL установлен.
- Сертификат /etc/ssl/private/pure-ftpd.pem присутствует и права 600.
- В конфиге pure-ftpd.conf задан TLS = 1 или 2 в зависимости от политики.
- Сервис перезапустился без ошибок.
- Клиенты протестированы (FileZilla/WinSCP).
- Логи и механизмы защиты (fail2ban) настроены.
Критерии приёмки
- Сервер принимает TLS-сессии (FTPS/FTPES) и клиенты успешно проходят аутентификацию.
- Трафик между клиентом и сервером зашифрован (проверяется сниффером на стороне сети или просмотром статуса соединения в клиенте).
- При попытке подключения старого неподдерживаемого клиента при значении TLS=2 соединение отклоняется.
Альтернативные подходы и миграция
- Использовать SFTP (SSH File Transfer) вместо FTPS — проще в настройке с точки зрения ключей и портов (один порт 22).
- Протестировать ProFTPD или vsftpd с поддержкой TLS как альтернативы PureFTPd.
- План миграции: обновление ОС (например, на CentOS 7/8/Stream или другую поддерживаемую дистрибуцию) -> пересборка/переустановка сервисов -> перенос SSL-ключей и тесты.
Небольшой словарь (1 строка)
- TLS — протокол шифрования, используемый для защиты трафика.
- FTPS — FTP поверх TLS/SSL (explicit/implicit).
- FTPES — FTP explicit over TLS (явное переключение на TLS в сессии).
- SFTP — передача файлов через SSH, не связана с FTP/TLS.
Короткое руководство для пользователя
- В FileZilla выберите FTPES как тип соединения. 2. Введите хост, порт (обычно 21), логин/пароль. 3. При первом подключении подтвердите сертификат. 4. Проверьте, что в статусе соединения указано «TLS».
Итог
Настройка PureFTPd с TLS на CentOS 6.2 — относительно прямая задача: установить OpenSSL, сгенерировать сертификат, задать нужное значение TLS в конфиге и перезапустить службу. Обязательно протестируйте подключение клиентами и примените базовые меры безопасности: ограничение шифров, права на ключи, мониторинг и брутфорс‑защиту.
Важно: рассматривайте SFTP как долгосрочную альтернативу и планируйте миграцию с устаревшей ОС.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента