Иногда возникает необходимость настроить виртуальных пользователей и SSL шифрование в FTP сервере vsftpd. Рассмотрим как это сделать в Debian Squeeze.
Итак, начнём. Все действия выполняются от пользователя root. Сперва установим необходимые утилиты:
Добавим пользователя в систему, через которого будут работать виртуальные FTP пользователи:
Теперь изменим конфигурацию FTP сервера. Данных ключей в конфиге по-умолчанию нет, поэтому их можно просто добавить в конец файла /etc/vsftpd.conf:
Дополнительно для проверки соединения вы можете установить ключ local_enable=YES, который разрешает локальным пользователям логиниться на FTP.
Создаём базу данных виртуальных пользователей:
Эта утилита будет читать логины и пароли со стандартного ввода, один логин и один пароль на каждую отдельную строку. Вводим "user", нажимаем ввод, вводим "pass", нажимаем ввод.
Изменяем процедуру аутентификации ftp пользователей через PAM в конфигурационном файле /etc/pam.d/vsftpd:
Создадим SSL сертификат для FTP сервера, время действия которого истечёт через год. Путь к этому сертификату уже прописан в конфигурационном файле vsftpd:
Всё, осталось перезапустить сервис FTP:
Проверяем логин:
Заметка: FTPS (FTP+SSL) и SFTP - это два разных протокола, не стоит их путать.
Ссылки:
Итак, начнём. Все действия выполняются от пользователя root. Сперва установим необходимые утилиты:
$ aptitude install vsftpd openssl db4.8-util ftp-ssl
- vsftpd - непосредственно FTP сервер;
- openssl - утилита создания SSL сертификатов, которые требуются в SSL режиме FTP сервера;
- db4.8-util - утилиты работы с базой данных Беркли, в которой будут хранится виртуальные пользователи;
- ftp-ssl - SSL версия FTP клиента, эта утилита нужна только на клиентской стороне.
Добавим пользователя в систему, через которого будут работать виртуальные FTP пользователи:
$ useradd -d /home/ftp virtual
Теперь изменим конфигурацию FTP сервера. Данных ключей в конфиге по-умолчанию нет, поэтому их можно просто добавить в конец файла /etc/vsftpd.conf:
# включаем гостевой доступ через нашего виртуального пользователя guest_enable=YES guest_username=virtual # включаем SSL ssl_enable=YES # шифрование процедуры логина и всех передаваемых данных внутри сессии force_local_logins_ssl=YES force_local_data_ssl=YES # ущемляем права анонимных пользователей - их траффик шифроваться не будет # (только если анонимные пользователи разрешены) allow_anon_ssl=NO # используем только протокол TLS ssl_tlsv1=YES ssl_sslv2=NO ssl_sslv3=NO # многократное использование одной сессии require_ssl_reuse=NO
Дополнительно для проверки соединения вы можете установить ключ local_enable=YES, который разрешает локальным пользователям логиниться на FTP.
Создаём базу данных виртуальных пользователей:
$ db4.8_load -T -t hash /etc/vsftpd_login.db
Эта утилита будет читать логины и пароли со стандартного ввода, один логин и один пароль на каждую отдельную строку. Вводим "user", нажимаем ввод, вводим "pass", нажимаем ввод.
Изменяем процедуру аутентификации ftp пользователей через PAM в конфигурационном файле /etc/pam.d/vsftpd:
# путь к базе данных виртуальных пользователей (без суффикса "db") account required pam_userdb.so db=/etc/vsftpd_login auth required pam_userdb.so db=/etc/vsftpd_login
Создадим SSL сертификат для FTP сервера, время действия которого истечёт через год. Путь к этому сертификату уже прописан в конфигурационном файле vsftpd:
$ cd /etc/ssl/private/ $ openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout vsftpd.pem -out vsftpd.pem
Всё, осталось перезапустить сервис FTP:
$ invoke-rc.d vsftpd restart
Проверяем логин:
$ ftp localhost Connected to localhost. 220 (vsFTPd 2.3.2) Name (localhost:root): user 234 Proceed with negotiation. [SSL Cipher DES-CBC3-SHA] 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp: pwd 257 "/" ftp:
Заметка: FTPS (FTP+SSL) и SFTP - это два разных протокола, не стоит их путать.
Ссылки:
Комментариев нет:
Отправить комментарий