Передача файлов через FTP (Протокол передачи файлов) является, вероятно, самым популярным методом загрузки файлов к серверу. ProFTPD является популярный и универсальный FTP-сервер, который доступен как Программное обеспечение с открытым исходным кодом, и это поддерживает TLS (SSL) для безопасных соединений.
По умолчанию FTP является небезопасным протоколом, потому что пароли и данные передаются в четком / простом тексте. При помощи TLS целая коммуникация может быть зашифрована, таким образом делая FTP более безопасным.
Эта статья описывает, как настроить proftpd с TLS на сервере Ubuntu 16.04 LTS.
Предпосылки
- Сервер Ubuntu 16,04 64 бита
- полномочия sudo/root
Что мы сделаем в этом учебном руководстве
- Установите ProFTPD и TLS.
- Настройте ProFTPD.
- Добавьте пользователя FTP.
- Настройте TLS в ProFTPD.
- Тестирование.
Установите 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.
Ссылки
- Проект ProFTPD Software. Ссылка
Комментарии