Настройка ProFTPD с TLS в Ubuntu Server 15.04
Кратко: шаг за шагом настраиваем ProFTPD в Ubuntu 15.04 и включаем шифрование TLS, чтобы защитить пароли и данные при передаче по FTP. В статье — установка, создание пользователя, генерация сертификата, включение TLS и тестирование через FileZilla.
Важно: этот гид показывает настройку FTPS (FTP поверх TLS). Если нужна альтернатива с лучшей совместимостью и простотой — рассмотрите SFTP (SSH File Transfer Protocol).
Введение
FTP (File Transfer Protocol) — популярный способ загрузки файлов на сервер, но он передаёт пароли и данные в открытом виде. ProFTPD — гибкий FTP-сервер для Linux, который поддерживает шифрование TLS/SSL. В этой статье показано, как установить ProFTPD и настроить TLS в Ubuntu Server 15.04.
Краткое определение: FTPS — это FTP поверх TLS/SSL; он шифрует канал управления и/или передачи данных.
Требования
- Ubuntu Server 15.04 (64-bit)
- Права sudo / root
Что мы сделаем:
- Установим ProFTPD и OpenSSL
- Настроим ProFTPD
- Добавим FTP-пользователя
- Включим TLS/SSL для ProFTPD
- Протестируем подключение
Установка Proftpd и OpenSSL
Proftpd и OpenSSL доступны в репозитории Ubuntu и устанавливаются через apt:
sudo apt-get install -y proftpd opensslПри установке выберите вариант standalone (демон) когда установщик спросит, как запускать Proftpd.

Базовая настройка Proftpd
Конфигурация Proftpd хранится в /etc/proftpd/. Отредактируйте proftpd.conf, например через nano:
cd /etc/proftpd/
nano proftpd.confИзмените ServerName на ваш hostname или домен:
ServerName "myhostname"Распоясуйте (раскомментируйте) DefaultRoot, чтобы «посадить» пользователей в их домашние каталоги:
# Use this to jail all users in their homes
DefaultRoot ~Перезапустите сервис:
systemctl restart proftpdДобавление FTP-пользователя
Есть два способа доступа к FTP:
- Анонимный FTP — доступ без учётной записи (не рекомендуется в продакшене).
- Доступ по логину и паролю — только авторизованные пользователи.
В этой инструкции мы настраиваем второй вариант.
Перед созданием пользователя добавьте /bin/false в /etc/shells, чтобы запретить SSH-вход этому аккаунту:
echo "/bin/false" >> /etc/shellsСоздайте пользователя с домашним каталогом и без shell доступа. Замените “yuuki” на желаемое имя пользователя:
adduser --home /home/yuuki --shell /bin/false yuukiЭта команда создаст пользователя yuuki с домашним каталогом /home/yuuki и оболочью /bin/false.

Теперь добавьте в proftpd.conf правила, разрешающие доступ только этому пользователю к его домашней папке. Откройте конфиг:
cd /etc/proftpd/
nano proftpd.confДобавьте блок:
Umask 022 022
AllowOverwrite off
AllowUser yuuki
DenyALL
Order Allow,Deny
AllowUser yuuki
Deny ALL
AllowUser yuuki
Deny ALL

Перезапустите Proftpd:
systemctl restart proftpdДо этого шага FTP уже работает, но без шифрования. Переходим к включению TLS.
Генерация SSL-сертификата и включение TLS
Для использования TLS требуется SSL-сертификат. Сгенерируем самоподписанный сертификат с помощью OpenSSL:
openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365Команда создаст /etc/ssl/certs/proftpd.crt и ключ /etc/ssl/private/proftpd.key.

Ограничьте доступ к файлам сертификата:
chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.keyОткройте /etc/proftpd/proftpd.conf и раскомментируйте строку, подключающую tls.conf:
Include /etc/proftpd/tls.conf
Затем отредактируйте /etc/proftpd/tls.conf:
nano tls.confУбедитесь, что раскомментированы и настроены следующие параметры:
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol SSLv23
TLSRSACertificateFile /etc/ssl/certs/proftpd.crt
TLSRSACertificateKeyFile /etc/ssl/private/proftpd.key
TLSOptions NoCertRequest
TLSVerifyClient off
TLSRequired onСохраните изменения и перезапустите сервис:
systemctl restart proftpdТестирование конфигурации
Подключитесь к FTP-серверу через FTP-клиент, поддерживающий FTPS (например, FileZilla). Введите IP сервера, имя пользователя, пароль и порт 21:
Server IP : 192.168.1.108
username : yuuki
Password ******
Port : 21Нажмите Quickconnect. Клиент запросит подтверждение сертификата — примите его (в продуктиве используйте сертификат от доверенного CA).

После подтверждения вы должны увидеть список файлов и сможете загружать/скачивать их по зашифрованному каналу.

Критерии приёмки
- ProFTPD установлен и запущен в режиме standalone.
- Пользователь с оболочкой /bin/false может подключиться по FTP и работать только в своём домашнем каталоге.
- TLS включён и сервер предоставляет сертификат.
- Клиент успешно подключается и отображает защищённый канал (FTPS).
Когда настройка может не сработать (распространённые проблемы)
- Брандмауэр или NAT блокирует порты FTP/FTPS. Внимание: FTPS может требовать дополнительной настройки пассивных портов.
- Неправильные права на файлы сертификата (они должны быть доступны только root).
- Клиент не поддерживает FTPS или пытается использовать чистый FTP на том же порту.
- Использование самоподписанного сертификата вызовет предупреждение у клиента.
Альтернативные подходы
- SFTP (SSH File Transfer Protocol) — работает поверх SSH, проще в настройке (порт 22), не требует отдельного SSL и обычно предпочтителен для приватных серверов.
- FTPES (Explicit FTPS) — клиент сначала ставит соединение, затем запрашивает TLS; ProFTPD с TLS поддерживает оба режима при правильной конфигурации.
Безопасность и жёсткая настройка (hardening)
- Используйте сертификат от доверенного CA в продуктиве.
- Ограничьте список поддерживаемых протоколов и шифров (TLSProtocol и настройки cipher).
- Настройте пассивный порт-диапазон и пробросьте его в фаерволе/роутере.
- Отключите анонимный доступ, если он не нужен.
- Логи TLS: проверяйте /var/log/proftpd/tls.log на предмет ошибок.
- Регулярно обновляйте пакеты OpenSSL и ProFTPD.
Мини-методология: быстрый чеклист для быстрой настройки (SOP)
- Установить proftpd и openssl.
- Добавить /bin/false в /etc/shells.
- Создать пользователя: adduser –home /home/USER –shell /bin/false USER.
- Настроить /etc/proftpd/proftpd.conf: ServerName, DefaultRoot, Directory для пользователя.
- Сгенерировать сертификат openssl и поставить права 600.
- Включить Include /etc/proftpd/tls.conf и настроить tls.conf.
- Открыть порты и пассивный диапазон в брандмауэре.
- Перезапустить proftpd и протестировать через FTPS-клиент.
Ролевые чек-листы
Администратор:
- Проверить наличие пакетов и права на сертификат.
- Настроить фаервол и пассивный диапазон.
- Обновлять сертификаты и пакеты.
DevOps/инженер развертывания:
- Автоматизировать создание пользователя и конфигурации через конфигурационный менеджер.
- Настроить мониторинг логов и алерты.
Пользователь:
- Использовать клиент с поддержкой FTPS и проверять отпечаток сертификата.
- Не использовать простые пароли.
Тест-кейсы и приёмочные тесты
- Подключиться по FTPS с валидным логином — должен быть доступ к домашней папке.
- Попытка SSH-входа для пользователя с /bin/false — должна быть запрещена.
- Попытка анонимного входа — должна быть отклонена (если отключён).
- Проверка передачи файла — файл успешно передаётся и целостен.
- Проверка логов TLS — в /var/log/proftpd/tls.log нет критических ошибок.
Однострочный словарь
- FTPS: FTP поверх TLS/SSL (шифрованный FTP).
- SFTP: Протокол передачи файлов поверх SSH (не FTP/TLS).
- Passive mode: Режим FTP, где клиент подключается к серверу для передачи данных.
Резюме
- ProFTPD можно защитить с помощью TLS: это шифрует пароли и данные при передаче.
- Для продуктивной эксплуатации используйте сертификат от CA, настройте пассивные порты и фаервол.
- Для простоты и совместимости рассмотрите SFTP как альтернативу.
Примечание: инструкция целевая для Ubuntu Server 15.04; на более новых версиях Ubuntu команды и расположение конфигов аналогичны, но рекомендуется использовать актуальные пакеты и обновлённые рекомендации по TLS.
Похожие материалы
OneNote для школы: лучшие приёмы
Как ухаживать за Nintendo Switch в жару
Изменение шрифта по умолчанию в PowerPoint
Бесплатный логотип в VistaCreate — пошаговое руководство
Поиск в Windows 8: руководство и советы