Поиск по сайту:

Как установить ProFTPd с поддержкой TLS на Ubuntu 16.04


Это руководство существует для этих версий ОС

  • Ubuntu 16.04 (Xenial Xerus)
  • Ubuntu 11.04 (Natty Narwhal)

На этой странице

  1. 1 Предварительное примечание
  2. 2 Установите ProFTPd и OpenSSL
  3. 3. Создайте сертификат SSL для TLS.
  4. 4 Включите TLS в ProFTPd
  5. 5 Добавьте пользователя FTP
  6. 6 Настройка FileZilla для TLS
  7. 7. Загрузите эту установку как виртуальную машину.
  8. 8 ссылок

В этом руководстве показано, как безопасно установить и использовать FTP с ProFTPd. FTP без TLS — небезопасный протокол, поскольку все пароли и все данные передаются в открытом виде. Используя TLS, вся связь может быть зашифрована, что делает FTP намного более безопасным. В этой статье объясняется, как настроить ProFTPd с TLS на сервере Ubuntu 16.04, как добавить пользователя FTP и использовать FileZilla для безопасного подключения с помощью TLS.

1 Предварительное примечание

В этом руководстве я буду использовать имя хоста server1.example.com с IP-адресом 192.168.1.100. Эти настройки могут отличаться для вас, поэтому вам придется заменить их там, где это необходимо.

Поскольку мы должны выполнять все шаги из этого руководства с привилегиями суперпользователя, мы можем либо предварить все команды в этом руководстве строкой sudo, либо стать пользователем root прямо сейчас, набрав

sudo -s

В этом уроке я буду использовать редактор nano для редактирования файлов конфигурации. Если вы также хотите использовать nano и еще не установили его, запустите эту команду, чтобы установить nano.

apt-get -y install nano

2 Установите ProFTPd и OpenSSL

OpenSSL необходим TLS; чтобы установить ProFTPd и OpenSSL, мы просто запускаем:

apt-get -y install proftpd openssl

Вам будет задан вопрос:

Запустить proftpd: <-- автономный

Из соображений безопасности вам следует добавить следующие строки в файл /etc/proftpd/proftpd.conf:

nano /etc/proftpd/proftpd.conf
[...]
DefaultRoot ~
ServerIdent on "FTP Server ready."
[...]

Первый вариант позволяет chroot пользователей FTP в их домашний каталог, а второй вариант включает сообщение ServerIdent, которое не содержит никакой информации об используемом программном обеспечении, версии или ОС FTP-сервера, чтобы потенциальный злоумышленник не получил эти данные на серебряной пластине.

3 Создайте SSL-сертификат для TLS

Чтобы использовать TLS, мы должны создать сертификат SSL. Я создаю его в /etc/proftpd/ssl, поэтому сначала создаю этот каталог:

mkdir /etc/proftpd/ssl

После этого мы можем сгенерировать SSL-сертификат следующим образом:

openssl req -new -x509 -days 365 -nodes -out /etc/proftpd/ssl/proftpd.cert.pem -keyout /etc/proftpd/ssl/proftpd.key.pem

Название страны (двухбуквенный код) [AU]: <-- Введите название вашей страны (например, \DE\).
Название штата или провинции (полное название) [Some-State]:<-- Введите ваш Название штата или провинции.
Название местности (например, город) []:<-- Введите свой город.
Название организации (например, компания) [Internet Widgits Pty Ltd]:<-- Введите название вашей организации ( например, название вашей компании).
Название организационного подразделения (например, раздела) []:<-- Введите название вашего организационного подразделения (например, \ИТ-отдел\).
Общее название (например, ВАШ name) []:<-- Введите полное доменное имя системы (например, \server1.example.com\).
Адрес электронной почты []:<-- Введите свой адрес электронной почты.

и защитите сгенерированные файлы сертификатов.

chmod 600 /etc/proftpd/ssl/proftpd.*

4 Включить TLS в ProFTPd

Чтобы включить TLS в ProFTPd, откройте файл /etc/proftpd/proftpd.conf...

nano /etc/proftpd/proftpd.conf

... и раскомментируйте строку Include /etc/proftpd/tls.conf:

[...]
#
# This is used for FTPS connections
#
Include /etc/proftpd/tls.conf
[...]

Затем откройте файл /etc/proftpd/tls.conf и придайте ему следующий вид:

nano /etc/proftpd/tls.conf
<IfModule mod_tls.c>
TLSEngine on
TLSLog /var/log/proftpd/tls.log
TLSProtocol TLSv1.2
TLSCipherSuite AES128+EECDH:AES128+EDH
TLSOptions NoCertRequest AllowClientRenegotiations
TLSRSACertificateFile /etc/proftpd/ssl/proftpd.cert.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd.key.pem
TLSVerifyClient off
TLSRequired on
RequireValidShell       no
</IfModule>

Если вы используете TLSRequired, то разрешены только подключения TLS (это блокирует всех пользователей со старыми FTP-клиентами, которые не поддерживают TLS); закомментировав эту строку или используя TLSRequired off, разрешены как TLS-, так и не-TLS-подключения, в зависимости от того, что поддерживает FTP-клиент.

После этого перезапустите ProFTPd:

systemctl restart proftpd.service

Вот и все. Теперь вы можете попробовать подключиться с помощью вашего FTP-клиента; тем не менее, вы должны настроить свой FTP-клиент на использование TLS (это обязательно, если вы используете TLSRequired on) — см. следующую главу, как это сделать с FileZilla.

Если у вас возникли проблемы с TLS, вы можете просмотреть файл журнала TLS /var/log/proftpd/tls.log.

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

Конфигурация ProFTPD, используемая в этом руководстве, аутентифицирует пользователей в базе данных пользователей системы Linux (/etc/passwd и /etc/shadow). На этом шаге я добавлю пользователя «tom», который будет использоваться только для входа в систему FTP.

useradd --shell /bin/false tom

Затем мы должны создать домашний каталог нашего пользователя tom и изменить права собственности на этот каталог на пользователя и группу tom.

mkdir /home/tom
chown tom:tom /home/tom/

Это добавит пользователя tom с оболочкой /bin/false. Эта оболочка гарантирует, что он может войти в систему по FTP, но не по SSH. Домашний каталог пользователя по умолчанию /home/[ИМЯ ПОЛЬЗОВАТЕЛЯ], в нашем случае /home/tom. ProFTPD настроен на то, чтобы запереть пользователя в его домашнем каталоге, поэтому он не может получить доступ к системным файлам за пределами /home/tom. Если вы хотите установить другой домашний каталог, используйте следующую команду:

useradd --home /srv/tomftp --create-home --shell /bin/false tom

Эта команда устанавливает другой домашний каталог, в данном случае это каталог /srv/tomftp для пользователя.

Следующим шагом устанавливаем пароль для пользователя tom, выполняем команду passwd:

passwd tom

И дважды введите новый пароль по запросу.

6 Настройка FileZilla для TLS

Чтобы использовать FTP с TLS, вам нужен FTP-клиент, поддерживающий TLS, например FileZilla.

В FileZilla откройте диспетчер сайтов:

Выберите сервер, использующий ProFTPd с TLS; Выберите FTP в качестве протокола и Требовать явный TLS через FTP.

Теперь вы можете подключиться к серверу, FileZilla запросит пароль.

Если вы делаете это в первый раз, вы должны принять новый SSL-сертификат сервера:

Если все пойдет хорошо, вы должны авторизоваться на сервере:

7 Загрузите эту установку как виртуальную машину

Установка, описанная в этом руководстве, доступна для загрузки подписчикам HowtoForge. Готовая виртуальная машина в формате OVA/OVF совместима с VMWare и Virtualbox.

Данные для входа в виртуальную машину

У виртуальной машины есть пользователь SSH с именем «администратор» и паролем «howtoforge». У этого пользователя SSH есть разрешения sudo.

Пароль пользователя FTP tom - howtoforge.

IP-адрес ВМ — 192.168.1.100, IP можно изменить в файле /etc/network/interfaces.

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

8 ссылок

  • ProFTPd: http://www.proftpd.org/
  • FileZilla: http://filezilla-project.org/
  • Убунту: http://www.ubuntu.com/