Как установить ProFTPD с TLS на Ubuntu 16.04 LTS

Передача файлов через FTP (Протокол передачи файлов) является, вероятно, самым популярным методом загрузки файлов к серверу. ProFTPD является популярный и универсальный FTP-сервер, который доступен как Программное обеспечение с открытым исходным кодом, и это поддерживает TLS (SSL) для безопасных соединений.

По умолчанию FTP является небезопасным протоколом, потому что пароли и данные передаются в четком / простом тексте. При помощи TLS целая коммуникация может быть зашифрована, таким образом делая FTP более безопасным.

Эта статья описывает, как настроить proftpd с TLS на сервере Ubuntu 16.04 LTS.

Предпосылки

  1. Сервер Ubuntu 16,04 64 бита
  2. полномочия sudo/root

Что мы сделаем в этом учебном руководстве

  1. Установите ProFTPD и TLS.
  2. Настройте ProFTPD.
  3. Добавьте пользователя FTP.
  4. Настройте TLS в ProFTPD.
  5. Тестирование.

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

Proftpd и OpenSSL доступны в репозитории Ubuntu, таким образом, мы можем установить их с способная команда:

sudo apt-get install -y proftpd openssl

Когда установка начнется, Вас попросят выполнить ProFTPD как inetd или автономный сервер. Выберите автономную опцию здесь и нажмите ОК.

Настройте ProFTPD

Как только ProFTPD установлен, необходимо будет скорректировать конфигурацию для создания его полностью функциональным и защищенным сервером. Конфигурационный файл ProFTPD расположен в/etc/proftpd/каталоге – редактируют файл proftpd.conf.

cd /etc/proftpd/
vim proftpd.conf

В Имени сервера строки замените значение своим именем узла или доменом:

ServerName                      "My FTP-Server"

Не прокомментируйте  строку DefaultRoot для включения тюрьмы для всех пользователей:

DefaultRoot   		~

и перезапустите ProFTPD посредством команды systemctl следующим образом.

systemctl restart proftpd

Добавьте пользователя FTP

Существует два типа доступных пользователей FTP, анонимного пользователя FTP и 'нормальных' пользователей FTP:

1. Анонимный FTP: FTP-сервер предоставляет доступ любому, не имея необходимость иметь учетную запись пользователя и пароль. Это не должно использоваться на общедоступном сервере, но могло бы быть опцией для домашнего сервера или LAN компании.
2. Пользователь FTP: Только те, у кого есть учетная запись пользователя и пароль, могут получить доступ к FTP-серверу.

Перед созданием пользователя для FTP-сервера добавьте/bin/false к/etc/shells файлу.

echo “/bin/false” >> /etc/shells

И теперь, создайте пользователя с определенным корневым каталогом, отключите доступ оболочки, и затем предоставьте его FTP-серверу.

useradd -m -s /bin/false zenko
passwd zenko

Вышеупомянутая команда создаст нового пользователя, названного zenko с корневым каталогом/home/zenko/и без доступа оболочки/bin/false.

Теперь, настройте ProFTPD для предоставления доступа для пользователя zenko к FTP-серверу.

cd /etc/proftpd/conf.d/
vim zenko.conf

Добавьте этот конфигурационный файл, чтобы позволить пользователю zenko входить в систему и загружать/загружать файл на сервер:

<Directory /home/zenko>
Umask 022 022
AllowOverwrite off
     <Limit LOGIN>
        AllowUser zenko
        DenyALL
     </Limit>
     <Limit ALL>
        Order Allow,Deny
        AllowUser zenko
        Deny ALL
    </Limit>
    <Limit MKD STOR DELE XMKD RNRF RNTO RMD XRMD>
    AllowUser zenko
    Deny ALL
    </Limit>
</Directory>

Сохраните энергия выхода и файл. Тогда перезапуск ProFTPD.

systemctl restart proftpd

На данном этапе уже можно использовать FTP, но мы сделаем его более безопасным при помощи TLS на следующем шаге.

Настройте TLS с proftpd

Для использования TLS необходимо создать сертификат SSL. Генерируйте сертификат SSL с командой openssl:

openssl req -x509 -newkey rsa:1024 -keyout /etc/ssl/private/proftpd.key -out /etc/ssl/certs/proftpd.crt -nodes -days 365

Вышеупомянутая команда генерирует файл сертификата proftpd.crt в/etc/ssl/certs/каталоге и файле ключей сертификата proftpd.key в/etc/ssl/private/каталоге.

Затем, измените разрешение файла сертификата на 600:

chmod 600 /etc/ssl/certs/proftpd.crt
chmod 600 /etc/ssl/private/proftpd.key

Теперь, возвратитесь к/etc/proftpd каталогу и настройте ProFTPD для использования сертификата SSL, который Вы генерировали.

cd /etc/proftpd/
vim proftpd.conf

Не прокомментируйте строку TLS:

Include /etc/proftpd/tls.conf

Сохраните tls.conf файл и выход.

Затем, отредактируйте конфигурационный файл TLS для включения безопасной аутентификации:

vim 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 EnableDiags

TLSVerifyClient                         off

TLSRequired                             on

Сохраните и выйдите. Последний шаг должен перезапустить сервер ProFTPD:

systemctl restart proftpd

Тестирование ProFTPD

Для тестирования конфигурации попытайтесь соединиться с FTP-сервером с программным обеспечением как FileZilla (я использую FileZilla здесь), и заполните IP сервера, имя пользователя, пароль и порт:

Server IP : 192.168.1.246
username : zenko
Password ******
Port : 21

И затем нажмите Quickconnect. Вас спросят о подтверждении сертификата SSL – просто нажимают ОК.

Вы будете видеть, что были зарегистрированы к FTP-серверу с TLS/сертификатом SSL.

Ссылки

Комментарии