LINUX.ORG.RU
ФорумAdmin

vsftpd, не работает chroot_local_user


0

0

Всем привет! Помогите можалуйста решить проблему с vsftpd.

Конфиг: ftp:~# grep -v «#» /etc/vsftpd.conf

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

chroot_local_user=YES

passwd_chroot_enable=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Описание проблемы: при подключении к ftp серверу через браузер, всё работает без проблем (локальные пользователи попадают в домашнюю директорию), выйти за пределы домашней директории не возможно.

Но если подключиться через ftp клиент (например FileZilla, пользователь чрутиться в домашнюю диреторию но можно выбрать / и без проблем можно лазить по всем файлам! можно залезть в любую директорию и скопитовать всё что угодно!

Подскажите пожалуйста как можно запереть пользователя в его домашней диретории? точнее что еще нужно сделать что бы пользователь не смог выходить за пределы своей директории?

Спасибо!

Ответ на: комментарий от true_admin

на сервере только ext3.

/etc/passwd ftp:x:106:65534::/home/ftp:/bin/false roman:x:1001:1001::/ftp/ftphome/roman:/bin/sh testftp:x:1002:1002::/home/testftp:/bin/sh

на всякий случай: /etc/fstab /dev/sdb1 /ftp ext3 defaults 0 2 есть отдельный диск под ftp.

но так же создал обычного юзера со стандартной домашней директорией, всё равно тоже самое, видит / *(((

Спасибо!

romanva ()
Ответ на: комментарий от true_admin

На многих форумах тема обсуждалась, по поводу того что ты посоветовал, для примера читаем что написано на lissyara.su: passwd_chroot_enable - Если опция включена, вместе с chroot_local_user, тогда местоположение клетки chroot() должно быть определено на основании пользователя. Каждая пользовательская клетка, получена из строки их домашних директорий, в файле /etc/passwd. Возникновение /./ в строках домашних директорий означает, что клетка располагается по тому же пути. По умолчанию: NO

Сейчас конфиг такой:

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

passwd_chroot_enable=YES

chroot_local_user=YES

secure_chroot_dir=/var/run/vsftpd

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Проблем с чрутингом нет, впользователей кидает в нужную директорию, проблема в том что бы залочить пользователя в его домашней директории...

сейчас у меня включен чрутинг, куда чрутить описано в passwd . в

passwd есть строки:

roman:x:1001:1001::/ftp/ftphome/roman:/bin/sh

testftp:x:1002:1002::/home/testftp:/bin/sh

всё работает как надо... но почему когда подключаешься через

filezilla фтп клиент юзеры видят всю файловую систему?

passwd_chroot_enable=YES chroot_local_user=YES включено, в passwd домашняя директория описана...... что не так не пойму.....

romanva ()
Ответ на: комментарий от true_admin

плз, подскажи для тупых куда нужно написать /./ и в английском и в русском мане вчитывался в эту строку: The occurrence of /./ in the home directory string denotes that the jail is at that parБ─░ ticular location in the path.

Возникновение /./ в строках домашних директорий означает, что клетка располагается по тому же пути.

я не понимаю что это ( /./ ) значит. Если есть есть уже настроенный vsftpd плзз куда это нужно прописать? писал и перед и после каждой директории, и в пути к хоум....

если просто вместо хоум прописать /./ в passwd то как сервер поймёт куда кидать пользователя?

уже столько перегуглил..... НАРОД ЕСТЬ У КОГОНИБУДЬ НАСТРОЕННЫЙ vsftpd c похожей конфигурацией????*((((((((((((

romanva ()
Ответ на: комментарий от true_admin

сделал, теперь passwd такой:

sshd:x:105:65534::/var/run/sshd:/usr/sbin/nologin

ftp:x:106:65534::/home/ftp:/bin/false

roman:x:1001:1001::/ftp/ftphome/roman/./:/bin/sh

testftp:x:1002:1002::/home/testftp/./:/bin/sh

kirill:x:1003:1003::/ftp/ftphome/kirill/./:/bin/sh

конфигурация такая: grep -v «#» /etc/vsftpd.conf

listen=YES

anonymous_enable=NO

local_enable=YES

write_enable=YES

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

passwd_chroot_enable=YES

chroot_local_user=YES

pam_service_name=vsftpd

rsa_cert_file=/etc/ssl/certs/vsftpd.pem

Всё равно не работает! http://clip2net.com/page/m0/3023364

изначально кидает куда нужно ( в домашнюю директорию ), но если в фтп клиенте выбрать / показывает всю файловую систему.

может быть косяк на уровне файловой системы? хотя я линукс 3 раза переустанавливал уже... ничего другого на сервере не настраивалось, только vsftpd...

romanva ()
Ответ на: комментарий от romanva

pam_service_name не нравится. Попробуй убрать.

Ещё тупой вопрос: ты перезапускал vsftpd?

PS у меня конфиг такой:

#log_ftp_protocol=YES
anon_world_readable_only=YES
anonymous_enable=NO
#This required by gentoo scripts
background=NO
chroot_local_user=YES
#force_dot_files=YES
listen=YES
local_enable=YES
hide_ids=YES
passwd_chroot_enable=YES
pasv_promiscuous=YES
port_promiscuous=YES
setproctitle_enable=YES
use_localtime=YES
write_enable=YES
xferlog_enable=YES
#data_connection_timeout=900
#file_open_mode=644
idle_session_timeout=900
local_max_rate=2000000
local_umask=027
max_clients=200
max_per_ip=5

chroot_list_file=/etc/vsftpd/chroot_list
user_config_dir=/etc/vsftpd/users
ftpd_banner=Welcome to server.

true_admin ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.