LINUX.ORG.RU
решено ФорумAdmin

vsftpd + virtual users + selinux

 , ,


0

2

Ошибка в ftp-клиенте при попытке загрузить: 553 Could not create file. Скачивает отлично.

Конфиг vsftpd

listen=YES
listen_ipv6=no
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
connect_from_port_20=YES
chroot_local_user=YES
pam_service_name=vsftpd
tcp_wrappers=YES
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/var/ftp/$USER
allow_writeable_chroot=YES
pasv_enable=YES
pasv_min_port=62000
pasv_max_port=62999

Конфигурация selinux

# getsebool -a | grep ftp
ftpd_anon_write --> off
ftpd_connect_all_unreserved --> off
ftpd_connect_db --> off
ftpd_full_access --> off
ftpd_use_cifs --> off
ftpd_use_fusefs --> off
ftpd_use_nfs --> off
ftpd_use_passive_mode --> off
httpd_can_connect_ftp --> off
httpd_enable_ftp_server --> off
tftp_anon_write --> off
tftp_home_dir --> on

Тестовый виртуальный пользователь: ftpvirt11, его каталог: /var/ftp/ftpvirt11

# ls -Z /var/ftp
drwxr-xr-x. ftp ftp unconfined_u:object_r:public_content_rw_t:s0 ftpvirt11
drwxr-xr-x. ftp ftp system_u:object_r:public_content_t:s0 pub

Подскажите где что исправить чтобы можно было делать upload?

Пока ждал ответа нашёл инструмент sealert вот что он рекомендует:

# sealert -a /var/log/audit/audit.log
SELinux is preventing /usr/sbin/vsftpd from write access on the directory ftpvirt11.

*****  Plugin catchall_boolean (47.5 confidence) suggests   ******************

If you want to allow ftpd to anon write
Then you must tell SELinux about this by enabling the 'ftpd_anon_write' boolean.

Do
setsebool -P ftpd_anon_write 1

*****  Plugin catchall_boolean (47.5 confidence) suggests   ******************

If you want to allow ftpd to full access
Then you must tell SELinux about this by enabling the 'ftpd_full_access' boolean.

Do
setsebool -P ftpd_full_access 1

setsebool -P ftpd_anon_write 1 - решило мои проблемы

katigoroshek ()