VSFTPD c SSL или TLS под Gentoo Linux

Материал из AlexNook
Перейти к навигацииПерейти к поиску

Один из лучших ftp демонов под Gentoo. Не буду переписывать здесь то, что уже очень хорошо документированно. Вот необходимые ссылки:

  1. Статья на Gentoo Wiki.
  2. man по vsftpd.

Установка и настройка

Для аутентификации я не использую виртуальных пользователей, а отталкиваюсь от реально существующих в системе (в /etc/passwd). Поэтому PAM поддержка при установке мне "вредит".

Устанавливаем следующие USE флаги:

Use Flags: ssl -pam -tcpd (?)

Устанавливаем прогргамму:

emerge net-ftp/vsftpd

Добавляем демон в автозапуск:

rc-update add vsftpd default

Пример кофигурационного файла

Привожу пример конфига. Все параметры прокомментированы. Но я отдельно дам комментарии к некоторым параметрам, на которые важно обратить внимание.

File: /etc/vsftpd/vsftpd.conf

Добавляем пользователя со своими правами в своей папке

Этот ФТП демон оперирует пользователями, которые есть в системе. Для того, чтобы можно было авторизоваться под каким-то особым юзером, его надо сперва добавить. Напрмер добавим пользователя external с основной группой ftp и дополнительной users

useradd -g ftp -s /bin/bash -d /home/ftp -G users external

Этот пользователь будет располагаться в домашней паке /home/ftp и за её пределы выйти не сможет (chroot jail). Теперь даём пароль этому юзеру:

passwd external

После чего нам нужно создать для него его папку и дать ему требуемые права, учитывая так же его первичную и вторичные группы. Например:

chown external:ftp -R /home/ftp/upload
chmod 750 -R /home/ftp/upload


Раздел конфига Vsftpd для настройки SSL или TLS под Gentoo

Сперва нам надо создать сертификаты на сервере. Создаём папку для их хранения:

mkdir /etc/ssl/vsftpd

Далее собственно генерируем их в этой папке:

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

Далее приведу с коментариями кусочек конфигурационного файла по настройке безопастного доступа к файлам по протоколам FTP + Explicit TLS v.1 или FTP + Explicit SSL v.3.

nano /etc/vsftpd/vsftpd.conf
File: /etc/vsftpd/vsftpd.conf
#----------SSL---TLS-----------
#enable implicit secure connections
ssl_enable=yes
implicit_ssl=no

#allow anonymous to connect to your server using secure connection
allow_anon_ssl=yes

#allow anonymous users not to use ssl during logins and transfering data
force_anon_data_ssl=no
force_anon_logins_ssl=no

#allow users identificating by user name and password login and transfering without using ssl connections
# you can force such kind of users to use ssl during login and transfering procedures
force_local_data_ssl=no
force_local_logins_ssl=no

#use only ssl3 and tls1 for securities reasons
ssl_sslv3=yes
ssl_tlsv1=yes

#paths to your certificates for encryption
rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.pem


#Even WinSCP doesn't work with this option enabled (and it's enabled by default!), so it's a good reason to disable it
require_ssl_reuse=no

#work but i'm afraid of it =). It's a good idea for securities reasons but only a few clients support this feature
#strict_ssl_read_eof=yes

#doesn't work with WinSCP
#require_cert=yes