За основу взяты статьи:
Не пугайтесь большого количества действий - все довольно просто. Приступим.
Примечание: в этой статье используется FTP сервер vsftpd.
Если у вас не установлен FTP сервер, установите его по этой инструкции:
1. База данных пользователей
Для создания базы виртуальных пользователей, нужна будет Berkeley DB. Для начала нужно узнать доступную версию. Для этого вводим в командной строке:
sudo apt-cache search db | grep Berkeley
И ищем строчку, похожую на:
db5.3-util - Berkeley v5.3 Database Utilities
Выбираем самую последнюю версию и устанавливаем:
sudo apt-get install db5.3-util
2. Список пользователей
Пользователи являются виртуальными, но их использование будет производиться от лица реального пользователя. Создадим его и папку для виртуальных пользователей:
sudo mkdir /home/ftp
sudo useradd -d /home/ftp ftpadmin
sudo passwd ftpadmin
sudo chown ftpadmin /home/ftp
Для того, чтобы создать Berkeley DB базу данных виртуальных пользователей, сперва необходимо подготовить список пользователей и паролей в текстовом файле. Формат файла очень прост. Каждая запись базы данных состоит из пары «ключ, значение», где ключом является имя учётной записи виртуального пользователя, а значением — его пароль. Каждая пара разбита на две строки: первая строка — ключ (имя пользователя), вторая — значение (пароль пользователя). Для примера создадим следующий файл vsftpdusers в директории /etc/vsftpd/:
sudo mkdir /etc/vsftpd
sudo touch /etc/vsftpd/vsftpdusers
#Читать и изменять файл сможет только root
sudo chmod 0600 /etc/vsftpd/vsftpdusers
Остается создать базу пользователей из созданного выше текстового файла:
#Создаем DB
Запишем в него информацию о пользователях. sudo vim vsftpdusers:
user1
password1
user2
password2
Для каждого пользователя создаем папки в нужной директории. К примеру, у меня это /home/ftp:
sudo mkdir /home/ftp/user1
sudo mkdir /home/ftp/user2
Указываем владельца папок, от которого будет осуществляться работа пользователей на сервере:
sudo chown ftpadmin:ftpadmin /home/ftp/user1
sudo chown ftpadmin:ftpadmin /home/ftp/user2
Указываем владельца папок, от которого будет осуществляться работа пользователей на сервере:
sudo chown ftpadmin:ftpadmin /home/ftp/user1
sudo chown ftpadmin:ftpadmin /home/ftp/user2
sudo db5.3_load -T -t hash -f /etc/vsftpd/vsftpdusers /etc/vsftpd/users.db
#Устанавливаем права ради безопасности. Читать и изменять файл сможет только root
sudo chmod 0600 /etc/vsftpd/users.db
3. Конфигурация VSFTPD
Редактируем файл настроек vsftpd:
sudo vim /etc/vsftpd.conf
Это минимальный набор параметров, необходимый для работы с нашими требованиями:sudo vim /etc/vsftpd.conf
# Активирум сервис. Если используется xinetd, то выставить NO
listen=YES
# Отключаем вход от анонимного пользователя
anonymous_enable=NO
# Разрешение подключаться локальным и виртуальным пользователям
local_enable=YES
# Работа с виртуальными пользователями
user_sub_token=$USER
# Путь к домашним каталогам виртуальных пользователей
local_root=/home/ftp/$USER
# Не даём вылазить за пределы своего домашнего каталога пользователям
chroot_local_user=YES
# Скрываем реальные ID пользователей работающих на сервере
hide_ids=YES
# Все виртуальные пользователи работают как гостевые
guest_enable=YES
# Настоящее имя пользователя, от которого работают гостевые
guest_username=ftpadmin
# Виртуальные пользователи пользуются такими же привилегиями, что и локальные
virtual_use_local_privs=YES
# Глобальное разрешение операций записи
write_enable=YES
allow_writeable_chroot=YES
# Разрешаем работать в пассивном режиме
pasv_enable=YES
pasv_max_port=65535
pasv_min_port=32768
# Имя службы PAM
pam_service_name=vsftpd.virtual
Создадим новую службу авторизации для vsftpd. В каталоге /etc/pam.d создаем файл с именем указанным в vsftpd.conf в пункте pam_service_name
Более подробно ознакомиться с параметрами файла vsftpd.conf можно на www.lissyara.su
sudo vim /etc/pam.d/vsftpd.virtual
Заполняем файл следующим содержимым, где указываем на созданную нами базу без её расширения:
auth required pam_userdb.so db=/etc/vsftpd/users
account required pam_userdb.so db=/etc/vsftpd/users
session required pam_loginuid.so
Заполняем файл следующим содержимым, где указываем на созданную нами базу без её расширения:
auth required pam_userdb.so db=/etc/vsftpd/users
account required pam_userdb.so db=/etc/vsftpd/users
session required pam_loginuid.so
Все настройки завершены. Осталось перезапустить сервис:
sudo vsftpd restart
Для заметки:sudo vsftpd restart
Более подробно ознакомиться с параметрами файла vsftpd.conf можно на www.lissyara.su
Комментариев нет:
Отправить комментарий