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

Настройка ProFTPD с TLS в Ubuntu Server 15.04

5 min read Серверы Обновлено 28 Nov 2025
ProFTPD + TLS в Ubuntu 15.04 — пошаговая настройка
ProFTPD + TLS в Ubuntu 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

Что мы сделаем:

  1. Установим ProFTPD и OpenSSL
  2. Настроим ProFTPD
  3. Добавим FTP-пользователя
  4. Включим TLS/SSL для ProFTPD
  5. Протестируем подключение

Установка Proftpd и OpenSSL

Proftpd и OpenSSL доступны в репозитории Ubuntu и устанавливаются через apt:

sudo apt-get install -y proftpd openssl

При установке выберите вариант standalone (демон) когда установщик спросит, как запускать Proftpd.

Экран установки ProFTPD с выбором режима standalone

Базовая настройка 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:

  1. Анонимный FTP — доступ без учётной записи (не рекомендуется в продакшене).
  2. Доступ по логину и паролю — только авторизованные пользователи.

В этой инструкции мы настраиваем второй вариант.

Перед созданием пользователя добавьте /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 для доступа пользователя

Перезапустите 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.

Процесс генерации self-signed сертификата OpenSSL

Ограничьте доступ к файлам сертификата:

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

Включение tls.conf в основном конфиге ProFTPD

Затем отредактируйте /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).

Запрос подтверждения SSL-сертификата в FileZilla

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

FileZilla: подключение к ProFTPD через TLS успешно

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

  • 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)

  1. Установить proftpd и openssl.
  2. Добавить /bin/false в /etc/shells.
  3. Создать пользователя: adduser –home /home/USER –shell /bin/false USER.
  4. Настроить /etc/proftpd/proftpd.conf: ServerName, DefaultRoot, Directory для пользователя.
  5. Сгенерировать сертификат openssl и поставить права 600.
  6. Включить Include /etc/proftpd/tls.conf и настроить tls.conf.
  7. Открыть порты и пассивный диапазон в брандмауэре.
  8. Перезапустить proftpd и протестировать через FTPS-клиент.

Ролевые чек-листы

Администратор:

  • Проверить наличие пакетов и права на сертификат.
  • Настроить фаервол и пассивный диапазон.
  • Обновлять сертификаты и пакеты.

DevOps/инженер развертывания:

  • Автоматизировать создание пользователя и конфигурации через конфигурационный менеджер.
  • Настроить мониторинг логов и алерты.

Пользователь:

  • Использовать клиент с поддержкой FTPS и проверять отпечаток сертификата.
  • Не использовать простые пароли.

Тест-кейсы и приёмочные тесты

  1. Подключиться по FTPS с валидным логином — должен быть доступ к домашней папке.
  2. Попытка SSH-входа для пользователя с /bin/false — должна быть запрещена.
  3. Попытка анонимного входа — должна быть отклонена (если отключён).
  4. Проверка передачи файла — файл успешно передаётся и целостен.
  5. Проверка логов 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.

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

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

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

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

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

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

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

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

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

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

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

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

Планировщик задач Windows: автоматический запуск и напоминания
Windows

Планировщик задач Windows: автоматический запуск и напоминания