Иногда возникает необходимость настроить виртуальных пользователей и SSL-шифрование в FTP-сервере vsftpd. Рассмотрим как это сделать в Debian Squeeze.Все действия выполняются от пользователя root. Сперва установим необходимые утилиты:
aptitude install vsftpd openssl db4.8-util ftp-ssl
где
vsftpd - непосредственно FTP сервер;
penssl - утилита создания SSL сертификатов, которые требуются в SSL режиме FTP сервера;
db4.8-util - утилиты работы с базой данных BerkeleyDB, в которой будут хранится виртуальные пользователи;
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:Как видим, вход был в SSL-режиме с использованием шифрования DES-CBC3-SHA. Теперь можно настроить пользовательские права на чтение и запись в файле /etc/vsftpd.conf. Следует отметить, что в статье описан способ настройки FTPS (FTP+SSL), который не стоит путать с SFTP - это два разных протокола.
URL: http://barrel-of-herring.blogspot.com/2011/05/ssl-vsftpd.html
Обсуждается: http://www.opennet.me/tips/info/2571.shtml
Автор: Бочка селёдки - это зачёт.
http://wiki.russianfedora.ru/index.php/FTP_сервераПоследнее время очень часто замечаю переписывание одного и того же в кучу мест :(
Судя по всему оно всё тянется с древней статьи на opennet про настройку виртуальных пользователей в vsftpd: http://www.opennet.me/base/net/dual_vsftpd.txt.html
а зачем нужна БД?
вот если бы описали как хранить юзверей в обычном текстовом файле-у меня же их не сотни...
Все давно описано. У меня, например, юзвери и хранятся в отдельном файле. Кроме того - на каждого юзверя заведен файл, в котором описываются полномочия, домашняя директория и т.д.
можно ссылочку на хавтушку?
Пожалуй - вот нечто подобное:
1. http://unixforum.org/index.php?showtopic=32273
2. А вот это более комплексное решение - http://en.gentoo-wiki.com/wiki/Vsftpd
> а зачем нужна БД?БД тама это громко сказано. Обычный формат файла берклиДБ
Прогам типа паму и тд проще с таким форматом работать чем тхт парстить.А вот если тебе нужен более защищеный, менее прожорливый и более фичастый фтпд
то гляди в строну : http://www.pureftpd.org/project/pure-ftpd
( Latest release : 1.0.32 (released on May 2nd, 2011) )
Это pure-ftpd то более защищённый? Помнится, когда в нём нашли дыру с удалённым исполнением произвольного кода от рута, разработчик, вместо того, чтобы исправлять ошибку, начал скрывать информацию о ней. Прикольный парниша, да.По фичастости вне конкуренции proftpd, по безопасности - vsftpd. pure - ни рыба ни мясо, да ещё и скользкий тип.
> Помнится, когда в нём нашли дыру с удалённым исполнением произвольного кода от рута,чушь.
А вообще почитай чанжлоги всех этих 3х серверов и погляди их код и сразу поймешь
кто есть ху. ( пуре не очень любят из его бзд лицензии )
Не путай понятия. Обычно ГПЛ программы не любят и в БСД переписывают.
"--Кому и кобыла невеста."
А кому и SFTP решение. Зачем этот костыль мертвому протоколу?
а можно ли как нить без ПАМ ? а то грят Weak
на fedora core 3 даный сценарий не работает. ТС зайти не могу. Что делать?