www.lissyara.su
—> статьи
—> FreeBSD
—> программы
—> vsftpd + system users
vsftpd с использованием системных пользователей
Автор: freesky.
Решил поделиться своим опытом настройки ftp-сервера vsftpd. В данном варианте настройки я предлагаю вам реализовать ftp-пользователей, используя системных. Быть может кому-нибудь да пригодится.
Шаг 1. Установка vsftpd
Для начала поставим vsftpd:
$ whereis vsftpd
vsftpd: /usr/ports/ftp/vsftpd
$ cd /usr/ports/ftp/vsftpd
# make && make install
| Заранее скопируем конфигурационный файл vsftpd, чтобы в случае чего вернуть все на место:
# cp /usr/local/etc/vsftpd.conf /usr/local/etc/vsftpd.conf.bak
| Шаг 2. Настройка vsftpd.conf
Пришло время настроить наш сервер на корректную работу с пользователями. Открываем файл /usr/local/etc/vsftpd.conf и приводим его к такому виду:
# пусть наш сервер слушает 21 порт...
listen=yes
# ...и работает в бэкграунде
background=yes
# разрешаем анонимов и не спрашиваем их пароль
anonymous_enable=yes
no_anon_password=yes
# разрешаем локальных пользователей...
local_enable=yes
# ...и запираем их в своей директории
chroot_local_user=yes
# папка конфигов пользователей
user_config_dir=/usr/local/etc/vsftpd_users
# юзер, от которого работают анонимы (создается при установке vsftpd)
ftp_username=ftp
# запрещаем пользователям менять права доступа на файлы
chmod_enable=no
# все файлы анонимы будут сохранять с маской 777 (все всем разрешено)
file_open_mode=0777
# настраиваем права доступа на закачиваемые файлы
anon_umask=022
local_umask=022
# включим возможность работы в пассивном режиме
pasv_enable=yes
# указываем диапазон портов для пассивного режима:
# sysctl net.inet.ip.portrange.first
# sysctl net.inet.ip.portrange.last
pasv_min_port=49152
pasv_max_port=65535
# для анонимов поставим ограничение на число подключений
max_per_ip=5
# разрешаем запись на сервер...
write_enable=yes
# ...и разрешаем анонимам закачивать файлы и...
anon_upload_enable=yes
# ...создавать директории
anon_mkdir_write_enable=yes
# запрещаем остальные действия с записью (удаление, переименование итп)
anon_other_write_enable=no
# пусть анонимы видят все файлы на сервере
anon_world_readable_only=no
# не будем показывать пользователям сообщение папки
dirmessage_enable=no
# включаем логирование
xferlog_enable=yes
| Шаг 3. Создание структуры сервера
Нам надо создать файловую структуру сервера. Папка ftp по умолчанию - /var/ftp. Создадим в ней необходимые папки и раздадим корректные права доступа:
# mkdir /var/ftp/pub
# mkdir /var/ftp/incoming
# chown -R ftp:ftp /var/ftp
# chmod -R 755 /var/ftp
# chmod 555 /var/ftp
| Шаг 4. Настройка пользователей
Пришло время создать пару-тройку пользователей для нашего сервера. Процесс создания пользователя состоит из трех этапов - добавление пользователя в систему, создание его конфигфайла и создание его домашней директории.
I этап.
Создаем пользователя:
# pw useradd -n user_1 -d /var/ftp/incoming/user_1 -s /usr/bin/false
# passwd user_1
| II этап.
Создаем конфигфайл. Конфиг создается в директории, описанной в vsftpd.conf (user_config_dir). Если директория не была создана, то делаем её вручную:
# mkdir /usr/local/etc/vsftpd_users
| Теперь создаем конфиг, имя которого представляет собой имя нашего свежесозданного пользователя. Следуя примеру это будет /usr/local/etc/vsftpd_users/user_1. Сразу же впишем основные настройки для нашего юзера (значения параметров см. в вышеприведенном vsftpd.conf):
local_root=/var/ftp/incoming/user_1
anon_other_write_enable=yes
max_per_ip=0
| III этап.
Осталось создать папку для нашего пользователя и настроить на нее права доступа. Приступаем:
# mkdir /var/ftp/incoming/user_1
# chmod -R 755 /var/ftp/incoming/user_1
# chown -R user_1:ftp /var/ftp/incoming/user_1
| Шаг 5. Запуск сервера
Все почти закончено - осталось лишь запустить наш сервер. Добавляем в /etc/rc.conf строчку, которая будет ответственна за запуск vsftpd:
# echo "vsftpd_enable="YES"" >> /etc/rc.conf
| Перезагружаемся и проверяем работоспособность сервера. Вот и все
Приложение
Чтобы удобнее было работать с пользователями на ftp, прилагаю небольшой скриптик. С его помощью можно добавлять/удалять пользователей посредством команд:
uftp script
|
файл
|
скачан
|
размер
|
размещён
|
примечание
|
|
1139
|
2.2kb
|
2010-11-28
|
скрипт для автоматизации управления пользователями ftp
|
|
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=29925.
размещено: 2010-11-28,
последнее обновление: 2011-01-31,
автор: freesky
|
|
|
Комментарии пользователей [3 шт.]