Как установить ProFTPd с поддержкой TLS на Ubuntu 16.04
Это руководство существует для этих версий ОС
- Ubuntu 16.04 (Xenial Xerus)
- Ubuntu 11.04 (Natty Narwhal)
На этой странице
- 1 Предварительное примечание
- 2 Установите ProFTPd и OpenSSL
- 3. Создайте сертификат SSL для TLS.
- 4 Включите TLS в ProFTPd
- 5 Добавьте пользователя FTP
- 6 Настройка FileZilla для TLS
- 7. Загрузите эту установку как виртуальную машину.
- 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/