vsftpd 및 samba에 대한 SELinux 쓰기 액세스

vsftpd 및 samba에 대한 SELinux 쓰기 액세스

나는 이것이 쉬울 것이라고 생각하지만 SELinux를 처음 사용합니다. CentOS 6 파일 서버가 있습니다. /var/media에 일부 LVM 파일 시스템이 있고 Samba 및 FTP를 사용하여 Windows 시스템과 공유하고 싶습니다. 저는 Windows에서 권한이 제대로 작동하도록 ACL을 사용하고 있습니다(두 명의 사용자 네트워크가 있습니다). Samba가 작동하는 동안 파일 전송 속도가 느리다는 것을 알았기 때문에 FTP를 사용해 볼까 생각했습니다.

보안을 위해 SELinux를 계속 사용하고 싶지만 FTP를 통해 파일에 액세스하는 데 문제가 있습니다. 파일을 읽고 내 홈 디렉터리에 쓸 수 있습니다. 하지만 나는/var/media의 파일에 쓸 수 없습니다.(samba_share_t 컨텍스트 사용)

나는 이것이 allow_ftpd_use_cifs문제를 해결해야한다고 생각합니다. 와 함께 작동하도록 할 수 있지만 allow_ftpd_full_access오히려 피하고 싶습니다. 내가 무엇을 놓치고 있나요?

관련 정보는 다음과 같습니다.

[mdurak@srv ~]$ ls -Z /var/media
drwxrwxr-x+ mdurak admins system_u:object_r:samba_share_t:s0 docs
drwxrwxr-x+ mdurak admins system_u:object_r:samba_share_t:s0 library
drwxrwxr-x+ mdurak admins system_u:object_r:samba_share_t:s0 photos
drwxrwxr-x+ mdurak admins system_u:object_r:samba_share_t:s0 projects

[mdurak@srv ~]$ sudo semanage boolean -l | grep ftp
ftp_home_dir                   (on   ,   on)  Allow ftp to read and write files in the user home directories
tftp_anon_write                (off  ,  off)  Allow tftp to modify public files used for public file transfer services.
allow_ftpd_full_access         (off  ,  off)  Allow ftp servers to login to local users and read/write all files on the system, governed by DAC.
allow_ftpd_use_cifs            (on   ,   on)  Allow ftp servers to use cifs used for public file transfer services.
allow_ftpd_use_nfs             (off  ,  off)  Allow ftp servers to use nfs used for public file transfer services.
allow_ftpd_anon_write          (on   ,   on)  Allow ftp servers to upload files,  used for public file transfer services. Directories must be labeled public_content_rw_t.
ftpd_use_passive_mode          (off  ,  off)  Allow ftp servers to use bind to all unreserved ports for passive mode
ftpd_connect_db                (off  ,  off)  Allow ftp servers to use connect to mysql database
httpd_enable_ftp_server        (off  ,  off)  Allow httpd to act as a FTP server by listening on the ftp port.

[mdurak@srv ~]$ sudo semanage boolean -l | grep samba
samba_domain_controller        (off  ,  off)  Allow samba to act as the domain controller, add users, groups and change passwords.
samba_portmapper               (off  ,  off)  Allow samba to act as a portmapper
samba_enable_home_dirs         (on   ,   on)  Allow samba to share users home directories.
samba_export_all_ro            (off  ,  off)  Allow samba to share any file/directory read only.
samba_export_all_rw            (off  ,  off)  Allow samba to share any file/directory read/write.
use_samba_home_dirs            (off  ,  off)  Support SAMBA home directories
samba_create_home_dirs         (off  ,  off)  Allow samba to create new home directories (e.g. via PAM)
cdrecord_read_content          (off  ,  off)  Allow cdrecord to read various content. nfs, samba, removable devices, user temp and untrusted content files
allow_smbd_anon_write          (off  ,  off)  Allow samba to modify public files used for public file transfer services.  Files/Directories must be labeled public_content_rw_t.
samba_share_fusefs             (off  ,  off)  Allow samba to export ntfs/fusefs volumes.
samba_share_nfs                (off  ,  off)  Allow samba to export NFS volumes.
samba_run_unconfined           (off  ,  off)  Allow samba to run unconfined scripts
sanlock_use_samba              (off  ,  off)  Allow sanlock to manage cifs files
virt_us

e_samba (off, off)는 virt가 cifs 파일을 관리하도록 허용합니다.

/etc/vsftpd/vsftpd.conf

anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
chroot_list_enable=YES
# mdurak is in the chroot_list
chroot_list_file=/etc/vsftpd/chroot_list
listen=YES
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
pasv_enable=YES
local_root=/var/media

FTP에서 디렉토리 생성을 시도했습니다(감사 로그에도 거부 메시지가 있으므로 이것이 SELinux 문제라는 것을 알고 있습니다).

Command:    CWD /var/media/library/music
Response:   250 Directory successfully changed.
Command:    MKD sdff
Response:   550 Create directory operation failed.
Command:    MKD /var/media/library/music/sdff
Response:   550 Create directory operation failed.

답변1

나는 여기에서 그것을 알아 냈습니다.http://selinuxproject.org/page/SambaRecipes

폴더 컨텍스트를 다음으로 설정 public_content_rw_t하고 실행 해야 합니다.

setsebool -P allow_smbd_anon_write=1

이제 Samba와 FTP를 통해 글을 쓸 수 있습니다(향후에는 다른 도메인 지원도 쉬울 것입니다).

관련 정보