FTP является очень небезопасным протоколом, так как все пароли и все данные передаются в открытом виде. С помощью TLS, все коммуникации могут быть зашифрованы, что делает FTP намного безопаснее. Эта статья объясняет, как настроить vsftpd, с TLS на сервере Debian 6.0 (Squeeze).
Предварительные замечания
В этом уроке я использую имя хоста server1.example.com с IP адресом 192.168.0.100. Эти параметры могут отличаться в Вашем случае, поэтому Вы должны заменить их в случае необходимости.
Установка Vsftpd и OpenSSL
OpenSSL необходим TLS, установим vsftpd и OpenSSL, просто выполните:
|
Создание SSL сертификата для TLS
Для того, чтобы использовать TLS, мы должны создать SSL сертификат. Я создаю его в /etc/ssl/private - если каталог не существует, создайте его сейчас:
|
После этого мы можем создать SSL сертификат следующим образом:
|
Название страны (2 буквенный код) [AU]: - введите название Вашей страны (например, "DE"). государства или провинции Наименование (Ф.И.О.) [Некоторые государства-]: - введите государства или провинции имя. Населенный пункт Имя (например, города) []: - введите город. Название организации (например, компании) [Интернет Widgits Pty Ltd] . - Введите название организации (например, название Вашей компании) Подразделение Имя (например, раздел) []: - введите имя Организационно блок (например, «IT-департамент"). Общее имя (например, ваше имя) []: - введите полное доменное имя системы (например, "server1.example.com"). Электронный адрес: []: - введите ваш адрес электронной почты.
Включение TLS в vsftpd
Для того чтобы включить TLS в vsftpd (http://vds64.com/freevds), откройте /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 соединения разрешены, с помощью force_local_logins_ssl=NO и force_local_data_ssl=NO c 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 [...] # You may restrict local users to their home directories. See the FAQ for # the possible risks in this before using chroot_local_user or # chroot_list_enable below. chroot_local_user=YES [...]
Перезагрузка vsftpd:
|
Вот и все. Теперь вы можете попробовать подключиться с помощью FTP-клиента, однако, вы должны настроить свой FTP-клиент для использования TLS (это необходимо, если вы используете force_local_logins_ssl=YES и force_local_data_ssl=YES).