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

Как установить и настроить vsftpd с TLS в Debian 8 (Джесси)


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

  • Debian 6 (сжать)

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

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

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

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

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

2 Установка vsftpd и OpenSSL

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

apt-get -y install vsftpd openssl

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

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

mkdir -p /etc/ssl/private
chmod 700 /etc/ssl/private

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

openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem

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

4 Включение TLS в vsftpd

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

nano /etc/vsftpd.conf

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

[...]

# Turn on SSL ssl_enable=YES # Allow anonymous users to use secured SSL connections allow_anon_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to # send and receive data on data connections. force_local_data_ssl=YES # All non-anonymous logins are forced to use a secure SSL connection in order to send the password. force_local_logins_ssl=YES # Permit TLS v1 protocol connections. TLS v1 connections are preferred ssl_tlsv1=YES # Permit SSL v2 protocol connections. TLS v1 connections are preferred ssl_sslv2=NO # permit SSL v3 protocol connections. TLS v1 connections are preferred ssl_sslv3=NO # Disable SSL session reuse (required by WinSCP) require_ssl_reuse=NO # Select which SSL ciphers vsftpd will allow for encrypted SSL connections (required by FileZilla) ssl_ciphers=HIGH # This option specifies the location of the RSA certificate to use for SSL # encrypted connections. rsa_cert_file=/etc/ssl/private/vsftpd.pem [...]

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

Помимо параметров TLS, убедитесь, что у вас также есть следующие настройки в вашем vsftpd.conf для включения неанонимного входа в систему:

[...]
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022

[...]

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

service vsftpd restart

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

5 vsftpd добавить пользователя

На этом шаге мы добавим локального пользователя Linux, к которому мы сможем подключиться. Я создам пользователя «до» с паролем «howtoforge». Все пользователи FTP должны иметь свои домашние каталоги в mkdir /var/ftproot, поэтому я сначала создам этот каталог.

mkdir /var/ftproot

Затем добавьте пользователя с помощью команды:

adduser --home /var/ftproot/till till

Команда adduser запросит пароль пользователя и некоторые другие данные.

:/# adduser --home /var/ftproot/till till
Adding user `till' ...
Adding new group `till' (1001) ...
Adding new user `till' (1001) with group `till' ...
Creating home directory `/var/ftproot/till' ...
Copying files from `/etc/skel' ...
Enter new UNIX password: <-- Enter the new password here
Retype new UNIX password: <-- Enter the new password here
passwd: password updated successfully
Changing the user information for till
Enter the new value, or press ENTER for the default
Full Name []: <-- Enter your name here or press enter to skip
Room Number []: <-- Enter room number here or press enter to skip
Work Phone []: <-- Enter work phone here or press enter to skip
Home Phone []: <-- Enter home phone here or press enter to skip
Other []: <-- Enter Other user details here or press enter to skip
Is the information correct? [Y/n] <-- Y

Мы успешно добавили пользователя FTP.

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

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

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

Введите IP-адрес или имя хоста FTP-сервера в поле сервера, выберите протокол \FTP\ и \Требовать явный FTP через TLS\ и введите имя пользователя в поле пользователя.

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

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

7 ссылок

  • vsftpd: https://security.appspot.com/vsftpd.html
  • FileZilla: http://filezilla-project.org/
  • Debian: http://www.debian.org/