我的机器上需要一个 FTP 服务器,Fedora 23。我想要一个简单的设置,我决定使用 ProFTPd 和身份验证mod_auth_unix.c
(这只是关于我的机器)。
我安装了 ProFTPd 并配置了它。我在从本地计算机登录时遇到了一些问题,最终我意识到问题与 SeLinux 有关(只需尝试将其设置为 Permissive)。
我正在尝试(但失败了)找出如何更改 SELinux 配置以添加我需要的权限。这是我到目前为止所做的:
从审计中我得到:
denied { dac_read_search } for pid=16049 comm="proftpd" capability=2 scontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tcontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023 tclass=capability permissive=0
根据本文我需要启用
ftp_home_dir
和allow_ftpd_full_access
布尔值。我首先设置第一个,并获得不同的情况:- 仍然无法记录,但没有审核消息
/var/log/secure
说:proftpd[16070]: 127.0.0.1 (::1[::1]) - USER dave (Login failed): No such user found
allow_ftpd_full_access
显然我的里面没有semanage boolean -l
。无论如何我都可以启用它,但不会出现不同的行为。以下并不总是相关的布尔值似乎都不起作用(尝试了所有这些,只是为了更好的衡量):
sftpd_full_access ftpd_anon_write ftpd_connect_db ftpd_full_access ftpd_use_cifs sftpd_enable_homedirs ftpd_connect_all_unreserved sftpd_write_ssh_home ftpd_use_passive_mode sftpd_anon_write ftpd_use_nfs ftpd_use_fusefs
这一定是一个selinux问题,因为如果我将其设置为permissive,它就会起作用。然而,奇怪的是,审核日志没有报告 SELinux 活动。
我相信 FTP 服务器被禁止访问/etc/passwd
或/etc/shadow
.
有什么提示或想法吗?
答案1
回答我自己的问题:
我能够通过恢复配置来解决/etc/proftpd.conf
问题
AuthOrder mod_auth_pam.c* mod_auth_unix.c
SELinux 是通过设置以下标志来配置的:
setsebool ftpd_full_access 1
setsebool ftp_home_dir 1
mod_auth_unix.c
显然,这个问题与SELinux 禁止的 whilemod_auth_pam.c
可以正常工作有关。以 PEBCAK 为例。
我现在唯一想不通的是为什么没有报告任何内容/var/log/audit/audit.log
:我确信 SELinux 阻止了登录,因为我能够在许可模式下登录。
答案2
我相信 FTP 服务器被禁止访问
/etc/passwd
或/etc/shadow
.
这不是真的。从AVC消息中,您可以看到
tcontext=system_u:system_r:ftpd_t:s0-s0:c0.c1023
这是 的一部分ftpd_t
,而不是shadow
或passwd
(这些文件具有不同的上下文,正如您可以从 中看到的ls -Z /etc/passwd
)。
这不是完整的解决方案,但正在向前推进。你都是按照文章做的吗?还有群组设置?