Использование виртуальных пользователей в VSFTPD используя Berkeley DB и MySQL базы данных

В этой статье разберем как в vsftpd настроить использование и авторизацию виртуальных пользователей, это повышает безопасность FTP-сервера, т. к. при авторизации не будут использоваться учетные записи пользователей указанные в системных файлах /etc/passwd и /etc/shadow, а в свою очередь виртуальные пользователи не имеют прав доступа, которые есть у локальных учётных записей.

Процедура авторизации пользователей в vsftpd осуществляется через PAM (Pluggable Authentication Modules | Подгружаемые Модули Аутентификации). Это дает возможность настраивать систему авторизации, что ниже мы и рассмотрим.

Рассмотрим организацию баз данных виртуальных пользователей через Berkeley DB и MySQL с последующей настройкой VSFTPD на работу с этими базами.

Все операции проделывались на Ubuntu server 14.04.5 x64, с установленным vsftpd по этой статье и основной конфигурационный файл использовался из статьи по ссылке.

Создание базы данных пользователей в Berkeley DB

Устанавливаем утилиту которая позволяет работать с базами данных Berkeley DB:

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

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

Вносим пользователей в порядке (каждый пользователь и пароль на отдельной строчке):

Ограничиваем права на файл в целях безопасности:

Создаем базу данных и заносим в нее пользователей из созданного списка пользователей:

Посмотрим все ли нормально перенеслось в базу:

Видим что все записи имеются в базе:

[note]Информация: если необходимо изменить базу данных пользователей, то нужно удалять текущую и создавать новую. Поэтому рекомендую не удалять файл со списком пользователей, а использовать его для пересоздания базы пользователей.[/note]

Создаем файл политики PAM:

Заносим в него следующее:

[tip]Важно: указывать название файла базы данных в политике нужно без указания его расширения .db[/tip]

База данных готова для работы с VSFTPD.

Создание базы данных пользователей в MySQL

Устанавливаем MySQL и Libpam:

В процессе установки MySQL, необходимо будет задать пароль для root.

Входим в MySQL:

Создаем в MySQL базу данных, таблицу с данными пользователей и пользователя для работы с базой данных:

Рассмотрим как управлять записями в базе данных, создание, редактирование, удаление пользователей.

Создание нового пользователя в базе данных:

Смена пароля для пользователя:

Удалить пользователя:

Посмотреть имеющихся пользователей в базе:

Создаем файл политики PAM:

Заносим в него следующее:

База данных готова для работы с VSFTPD.

Настройка VSFTPD для работы с базой данных Berkeley DB или MySQL

Создаем папку для папок виртуальных пользователей, пример:

Создаем симлинк (Символьную ссылку/Symbolic Link) на необходимую для доступа папку в папку /srv/vftp_users с именем пользователя:

[note]Информация: Для закрытия доступа пользователю можно просто удалить его текущий симлинк, а для смены рабочей папки на другую удаляем текущий симлинк и создаем новый уже на другую папку.[/note]

Выставим права на папку к которой указали симлинк:

Редактируем конфигурационный файл vsftpd:

И приводим следующие параметры конфигурации к виду:

[warning]Важно: хочу напомнить что за основу конфигурационного файла /etc/vsftpd.conf взят конфиг из этой статьи. Поэтому все выше представленное параметры составляют лишь те опции в которые необходимо настроить в рамках текущей задачи.[/warning]

Сохраняем конфигурационный файл и перезапускаем vsftpd:

Проверяем работу, пробуем зайти на FTP-сервер используя логин и пароль виртуального пользователя.

 

Понравилась или оказалась полезной статья, поблагодари автора

 

БесполезноСлабоватоПриемлемоОтличноПревосходно (Еще нет оценок)
Загрузка...

Оставить ответ

2 × 2 =

© IT-блог Жаконды All Rights Reserved.
Яндекс.Метрика