Настройка сервера VSFTPD

Автор Dimas, 18 марта 2024, 14:59:29

« назад - далее »

0 Пользователи и 7 гостей просматривают эту тему.

Dimas

Добрый день!
Установлена Debian 12 без графической оболочки, поднят CUPS для сетевой печати (HP LaserJet 1018), осталось поднять FTP. Решил взять за основу VSFTPD. Настроил по данному видео:
https://www.youtube.com/watch?v=Yy6tsJ2mAL4&embeds_referring_euri=https%3A%2F%2Fwww.phantom.sannata.org%2F&feature=emb_imp_woyt
Только пропустил настройку swf файрвола.
Прикладываю содержимое файла vsftpd.conf:

listen=NO
Listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
#chroot_local_user=YES
#allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name_=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=NO
#pasv_min_port=30000
#pasv_max_port=31000
user_sub_token=$USER
local_root=/home/ftpuser/ftp_dir
userlist_enable=YES
userlit_file=/etc/vsftpd.user_list
userlist_deny=NO

ftpuser прописан в vsftpd.user_list

В данный момент при доступе к серверу следующая ошибка: 500 OOPS: cannot change directory:/home/ftpuser
Так же перестал авторизовываться по SSH пользователь ftpuser. Такое ощущение, что это стало после ввода команд chmod 550 и chmod 750.
Где я мог накосячить? Другой пользователь подключается нормально, но только через Download Master. Через проводник заходит, но папки не показывает.
P.S. В Linux совсем новичок.

dzhoser

Что-то с правами на папку
Ubuntu->Linux mint->Astra Linux SE->Debian 12
Для новичков

Dimas

#2
Цитата: dzhoser от 18 марта 2024, 15:06:24Что-то с правами на папку
Как узнать что именно? Где посмотреть? Какими должны быть правильные права на папку?

yoric

Папка с мамкой, а это называется каталог. Покажите, какие у Вас права на него, может, что придумаем.
ls -l /catalog

Dimas

Цитата: yoric от 18 марта 2024, 17:36:08Покажите, какие у Вас права на него, может, что придумаем.
ls -l /home/ftpuser/
ls: невозможно получить доступ к '/home/ftpuser/ftp_dir/': отказано в доступе
sudo ls -l /home/ftpuser/
итого 4
drwxrwxrwx 3 ftpuser 4096 мар 18:02:42 ftp_dir

yoric

Цитата: Dimas от 18 марта 2024, 19:10:57drwxrwxrwx 3 ftpuser 4096 мар 18:02:42 ftp_dir
Видео мне смотреть ломы, это там так сказали - drwxrwxrwx? Попробуйте rwxr-xr-x (755)
И почему-то ftpuser один, дожно быть дважды - владелец и группа.

Dimas

#6
В видео было сказано:
chmod 550 /home/ftpuser/ftp_dir/
chmod 750 /home/ftpuser/ftp_dir/upload
Я так понимаю, владелец ftpuser? Какая группа необходима?
Команда rwxr-xr-x (755) сработала, зашёл под ftpuser, но доступен только просмотр (подключаюсь через проводник Windows 11). Не могу ничего записать/удалить. Какие права необходимо добавить? Что нужно донастроить, чтоб нельзя было выходить из директории "ftp_dir"?

yoric

Цитата: Dimas от 18 марта 2024, 20:18:22Я так понимаю, владелец ftpuser? Какая группа необходима?
Наверное, такая же.

Цитата: Dimas от 18 марта 2024, 20:18:22chmod 550 /home/ftpuser/ftp_dir/
chmod 750 /home/ftpuser/ftp_dir/upload
А если так сделать, у Вас было 777.

Цитата: Dimas от 18 марта 2024, 20:18:22Что нужно донастроить, чтоб нельзя было выходить из директории "ftp_dir"?
local_root /home/ftpuser/ftp_dir вроде

А воообще, если только с винды, то лучше самбу сделать

Dimas

#8
Что значит 777?
В конфигурационном файле прописана строка:
local_root=/home/ftpuser/ftp_dir
Но я могу, подключаясь Download Master (аналог FileZila) выйти в корень, то есть из директории home. Хотелось б эту возможность закрыть.
Все машины на Windows (находятся в рабочем домене), только мой ноутбук на Q4OS (базируется на Debian)
Чем так Samba лучше VSFTPD в моём случае? Вполне возможно, что Samba может не пройти, так как необходимо будет вместо рабочей группы прописывать домен, к которому без корпоративного VPN не подключиться.
P.S. Попробовал с файлами. Копируются на сервер и удаляются. Не могу создавать директории и переименовывать файлы. Можно это реализовать из-под Windows?

suny

#9
Нашел статью по которой в видео настраивают сервер, что в статье, что в видео путаница с командами для установки прав, вот что там написано:
sudo mkdir -p /home/newftpuser/ftp/uploadsudo chmod 550 /home/newftpuser/ftpsudo chmod 750 /home/newftpuser/ftp/uploadsudo chown -R newftpuser: /home/newftpuser/ftpДолжно быть:
sudo mkdir -p /home/newftpuser/ftp/upload
sudo chmod 550 /home/newftpuser/ftp
sudo chmod 750 /home/newftpuser/ftp/uploads
sudo chown -R newftpuser:newftpuser /home/newftpuser/ftp
Проверьте что бы совпадали имя пользователи, имя директории пользователя и имя группы, если необходимо измените на ваши.

Ссылка на статью на всякий случай: https://andreyex.ru/ubuntu/kak-ustanovit-ftp-server-s-vsftpd-na-ubuntu-18-04/

Dimas

#10
Спасибо большое, ввёл данные команды. Теперь могу записывать и удалять файлы в директории /home/ftpuser/ftp_dir/upload Но не могу ни создать ни удалить ни одну директорию внутри upload. Какие права необходимо дать, чтоб можно было создавать, переименовывать и удалять директории? Так же что нужно, чтоб данный ftp подключить в Windows как сетевой диск?

suny

Цитата: Dimas от 19 марта 2024, 18:26:48Спасибо большое, ввёл данные команды. Теперь могу записывать и удалять файлы в директории /home/ftpuser/ftp_dir/upload Но не могу ни создать ни удалить ни одну директорию внутри upload. Какие права необходимо дать, чтоб можно было создавать, переименовывать и удалять директории? Так же что нужно, чтоб данный ftp подключить в Windows как сетевой диск?
Я не специалист по настройке FTP сервера, ни разу не поднимал, но если брать права доступа к директории upload получаем следующее: пользователь newftpuser имеет полный доступ (читать, создавать, удалять), об этом говорит цифра 7 в команде sudo chmod 750 /home/newftpuser/ftp/uploads, пользователи вошедшие в группу newftpuser могут только читать и выполнять, об этом говорит цифра 5, пользователи не вошедшие в группу не имеют доступа вообще, об этом говорит цифра 0. Почитайте данную статью https://wiki.archlinux.org/title/File_permissions_and_attributes_(Русский)

Покажите вывод команды ls -l /home

Dimas

Получается, если я захожу на FTP с Windows под newftpuser, то у меня должен быть полный доступ, исходя из данных прав доступа 750?

suny

#13
Цитата: Dimas от 20 марта 2024, 19:29:15Получается, если я захожу на FTP с Windows под newftpuser, то у меня должен быть полный доступ, исходя из данных прав доступа 750?
Да, но так же не забывайте про бит наследования x по отношения к директории, в ссылке которую я скинул написано про это: "Доступ к каталогу можно получить с помощью cd. Это единственный бит, который на практике можно считать «наследуемым» от каталогов-предков; фактически, если какой-либо каталог в пути не имеет установленного бита x, конечный файл или каталог также оказывается недоступен независимо от его разрешений; подробнее смотрите path_resolution(7)".

21 марта 2024, 08:18:38
Так же возможно дело в настройке самого сервера, но в этом я не разбираюсь.

ChubaDuba

Цитата: Dimas от 18 марта 2024, 22:01:27Но я могу, подключаясь Download Master (аналог FileZila) выйти в корень, то есть из директории home. Хотелось б эту возможность закрыть.
Цитата: Dimas от 18 марта 2024, 14:59:29listen=NO
Listen_ipv6=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
#chroot_local_user=YES
#allow_writeable_chroot=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name_=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem
ssl_enable=NO
#pasv_min_port=30000
#pasv_max_port=31000
user_sub_token=$USER
local_root=/home/ftpuser/ftp_dir
userlist_enable=YES
userlit_file=/etc/vsftpd.user_list
userlist_deny=NO
Нужно раскомментировать строку