我总是在 Centos 6 上配置 SFTP,如下所示:
https://www.linuxtechi.com/configure-chroot-sftp-in-linux/
该项目出现在评论中的位置:
setsebool -P ssh_chroot_full_access on
来自文档https://linux.die.net/man/8/ssh_selinux:
如果要允许受防护的域执行 ssh,则必须打开 fenced_can_ssh 布尔值。
然而,CentOS 7 抱怨:
SELinux 布尔值 ssh_chroot_full_access 不存在。
CentOS7 执行此操作的正确方法是什么?
答案1
getsebool -a | grep ssh
我的 CentOS 7 上的命令显示
fenced_can_ssh --> off
selinuxuser_use_ssh_chroot --> off
ssh_chroot_rw_homedirs --> off
ssh_keysign --> off
ssh_sysadm_login --> off
所以根据你的问题命令
setsebool -P fenced_can_ssh on
应该修复它。
但您也可以采用“困难”方式并安装以下setroubleshoot-server
软件包policycoreutils-python
:
yum -y install setroubleshoot-server policycoreutils-python
然后暂时将 SELinux 模式设置为permissive
with
setenforce Permissive
之后尝试之前不起作用的任何方法。现在应该可以了。
现在看一下以下文件/var/log/audit/audit.log
。它通常显示 SELinux 发现的问题。
grep -i "denied" /var/log/audit/audit.log
如果您在日志中没有收到拒绝消息,则 SELinux 可能认为该事件会生成太多日志,因此没有记录它。在这种情况下,您可以使用以下命令启用所有事件的日志记录
semodule -DB
semodule -B
但请确保在故障排除结束后将其恢复正常。
如果您发现问题,您现在可以使用该audit2allow
工具来创建满足您需求的策略模块。audit2allow
有很多选项,所以你应该首先阅读允许访问:AUDIT2ALLOW习惯audit2allow
.
不要忘记再次打开 SELinux 并(如果更改)启用减少日志记录!
setenforce permissive
semodule -B