Настройка VsFTP с локальной аутентификацией

Аватар пользователя VR__

Настройки в данной статье не претендуют на абсолютно верные. Настройка производилась после прочтения кучи разнообразных манов и факов.
На данный момент настройка работает в ASP 11.2.

При установке ничего не перекомпилировалось, использовались пакеты, идущие в дистрибутивах.

Ниже описано, как я настраивал ftp-сервер на основе демона vsftpd, с локальной аутентификацией. Данный сервер используется внутри локальной сети, поэтому был сделан выбор в сторону аутентификации с локальными пользователями. Для Интернет-сервера с общим доступом считаю лучшим способом использовать сервер с анонимным входом, и ограничивать доступ с помощью файрвола. Данный сервер не использует пассивное соединение.

Итак


Настройка VsFTP с локальной аутентификацией.

Данный сервис настраивается с помощью файла vsftpd.conf - основной конфигурационный файл.
Пример файла, использованный мною:

listen=YES
listen_address=10.12.5.24
pam_service_name=vsftpd
anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
anon_root=/var/ftp/anonymous
dirmessage_enable=YES
connect_from_port_20=YES
chown_uploads=YES
chown_username=ftp
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
idle_session_timeout=600
data_connection_timeout=12000
nopriv_user=ftp
ascii_upload_enable=NO
ascii_download_enable=NO
ftpd_banner=Hello.
user_config_dir=/etc/vsftpd/vusers
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list
userlist_file=/etc/vsftpd/user_list
userlist_enable=YES
userlist_deny=NO

Дополнительно я создал файл user_list с пользователями которым разрешен коннект на сервер и файл chroot_list, в котором, если нужно, указывается чрутинг пользователей, в моем случае пустой. Создал каталог /etc/vsftpd/vusers, куда положил файлы, названные так же, как имена пользователей, которые имеют доступ к FTP, например, upload. Остальным пользователям доступ закрыт.
Рассмотрим некоторые директивы конфигурационного файла подробнее:

listen=YES
Директива описывающая метод работы сервера, сервер будет работать в фоновом режиме и автоматически обрабатывать соединения

listen_address=10.12.5.24
Адрес, на котором будет слушаться порт; адрес сетевой карты, смотрящей в нужную сеть

#listen_port=20
Можно указать нужный нам порт, котрый будет слушаться сервером

pam_service_name=vsftpd
Аутентификация PAM

anonymous_enable=NO
Выключение анонимного входа

local_enable=YES
Разрешение входа локальным пользователям

write_enable=YES
Разрешение на запись. С данной настройкой ограничить запись можно соответствующими правами для каталогов.

anon_upload_enable=NO
Запрещение закачки для анонимуса

anon_mkdir_write_enable=NO
Запрещение для анонимуса создания каталогов

anon_root=/var/ftp/anonymous
Чрутинг анонимуса. Его корнем будет каталог, который укажете в данной директиве.

chown_uploads=YES
chown_username=ftp
Все закачанные анонимусом файлы будут сохраняться с владельцем ftp и соответствующими правами. В данной настройке необязательные параметры могут быть закоментированы.
Все директивы, относящиеся к анонимусу, нужны для того что бы была возможность быстро перестроить сервер на прием от анонимных пользователей, а так же чтобы быть уверенным что данные директивы находятся в нужных состояниях

connect_from_port_20=YES
Разрешаем коннект на порт передачи данных

idle_session_timeout=200
Максимальное время коннекта клиента в секундах. Если клиент не проявляет активности в течение этого времени соединение разрываться принудительно

data_connection_timeout=12000
Время в секундах, после которого происходит обрыв передачи данных, если планируется закачка объемных файлов установите время побольше

nopriv_user=ftp
Пользователь по умолчанию, имеет минимальные привилегии, если включена анонимность пользователь попадет в систему с правами именно этого пользователя

ascii_upload_enable=NO
закачка файлов на сервер не будет производиться в формате ASCII

ascii_download_enable=NO
скачивание файлов с сервера не будет производиться в формате ASCII.

ftpd_banner=Hello.
Строка будет отображаться при входе пользователя, можно написать что угодно

user_config_dir=/etc/vsftpd/vusers
Каталог с файлами конфигурации пользователей, в данной настройке в файлах указывается каталог, который будет для пользователя корнем

chroot_local_user=YES
Чрутить локальных пользователей соотвественно в директории описанные в файлах находящихся в каталоге указанном директивой выше

userlist_enable=YES
userlist_file=/etc/vsftpd/user_list
Директива, разрешающая список пользователей которым нужно открыть доступ к FTP, и путь до этого списка соответственно.

userlist_deny=NO
Директива, запрещающая список пользователей, которым закрыт доступ к FTP, в нашем случае запрещен вход всех пользователей кроме тех что указаны в /etc/vsftpd/user_list

Все, на этом конфигурационный файл можно закрыть.

Теперь создаем каталог /etc/vsftpd/vusers, в котором будут храниться файлы с конфигурациями для пользователей, имеющими право на доступ к каталогам.
Например, если есть пользователь upload, создайте в этом каталоге файл с именем upload и поместите в него строку local_root=/var/ftp/upload, соответственно создав этот каталог и установив на него нужные права.
Этот каталог будет корнем для данного пользователя, в нем можно создать нужную вам структуру каталогов с соответствующими правами доступа.

Теперь можно запустить службу командой /etc/rc.d/init.d/vsftpd start
Проверить можно соединившись с сервером с другой доступной машины.

Все, на этом заканчиваю, всем спасибо за внимание.

Your rating: Нет Average: 8.9 (17 votes)

Комментарии

Аватар пользователя Zadov

Re: Настройка VsFTP с локальной аутентификацией

Статья малополезная , разжевываются очевидные вещи, а самое нужное, управление пользователями, изображено одним абзацем с пространными рассужденими без конкретики и примеров:

Цитата:
Теперь создаем каталог /etc/vsftpd/vusers, в котором будут храниться файлы с конфигурациями для пользователей, имеющими право на доступ к каталогам.
Например, если есть пользователь upload, создайте в этом каталоге файл с именем upload и поместите в него строку local_root=/var/ftp/upload, соответственно создав этот каталог и установив на него нужные права.
Этот каталог будет корнем для данного пользователя, в нем можно создать нужную вам структуру каталогов с соответствующими правами доступа.
Аватар пользователя Iam

Re: Настройка VsFTP с локальной аутентификацией

спасибо. статья хорошая

Аватар пользователя Artemiy

Re: Настройка VsFTP с локальной ...

А что с файлом chroot_list? Как с ним быть и как оно работает, объясните.

Аватар пользователя Mouzes

Re: Настройка VsFTP с локальной ...

Zadov писал(а):
Статья малополезная , разжевываются очевидные вещи, а самое нужное, управление пользователями, изображено одним абзацем с пространными рассужденими без конкретики и примеров:

Цитата:
Теперь создаем каталог /etc/vsftpd/vusers, в котором будут храниться файлы с конфигурациями для пользователей, имеющими право на доступ к каталогам.
Например, если есть пользователь upload, создайте в этом каталоге файл с именем upload и поместите в него строку local_root=/var/ftp/upload, соответственно создав этот каталог и установив на него нужные права.
Этот каталог будет корнем для данного пользователя, в нем можно создать нужную вам структуру каталогов с соответствующими правами доступа.

Стоп. Как я понял мало просто вписать ники, кому будет доступ на фтп в список. Их случаем не надо ещё заводить в самой системе?

Аватар пользователя Anton-5gorsk

Re: Настройка VsFTP с локальной ...

Всем привет. У меня такой вопрос, при заливке файлов анонимусами меняются права доступа, да так что они же потом не могут его скачать. Какой параметр за это в ответе. Спасибо.

Аватар пользователя Mouzes

Re: Настройка VsFTP с локальной ...

Тут врядли дождёжся ответа. форум мёртв, уже наблюдаю месяца 4, а жаль.

RSS-материал