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

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

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

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

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

11111

Добавляем демон в автозапуск: {root|rc-update add vsftpd default}}

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

11111

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

Этот ФТП демон оперирует пользователями, которые есть в системе. Для того, чтобы можно было авторизоваться под каким-то особым юзером, его надо сперва добавить. Напрмер добавим пользователя 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
  1. #----------SSL---TLS-----------
  2. #enable implicit secure connections
  3. ssl_enable=yes
  4. implicit_ssl=no
  5.  
  6. #allow anonymous to connect to your server using secure connection
  7. allow_anon_ssl=yes
  8.  
  9. #allow anonymous users not to use ssl during logins and transfering data
  10. force_anon_data_ssl=no
  11. force_anon_logins_ssl=no
  12.  
  13. #allow users identificating by user name and password login and transfering without using ssl connections
  14. # you can force such kind of users to use ssl during login and transfering procedures
  15. force_local_data_ssl=no
  16. force_local_logins_ssl=no
  17.  
  18. #use only ssl3 and tls1 for securities reasons
  19. ssl_sslv3=yes
  20. ssl_tlsv1=yes
  21.  
  22. #paths to your certificates for encryption
  23. rsa_cert_file=/etc/ssl/vsftpd/vsftpd.pem
  24. rsa_private_key_file=/etc/ssl/vsftpd/vsftpd.pem
  25.  
  26.  
  27. #Even WinSCP doesn't work with this option enabled (and it's enabled by default!), so it's a good reason to disable it
  28. require_ssl_reuse=no
  29.  
  30. #work but i'm afraid of it =). It's a good idea for securities reasons but only a few clients support this feature
  31. #strict_ssl_read_eof=yes
  32.  
  33. #doesn't work with WinSCP
  34. #require_cert=yes