禁用一组用户的网络访问但仅允许 smtp

禁用一组用户的网络访问但仅允许 smtp

我们有一个环境,用户通过 ssh 进入系统,并将他们的 shell 设置为在其 $HOME/Maildir 上启动 Mutt。我们希望限制用户只能发送/接收邮件。我们意识到他们无法执行任意命令,因为他们没有 shell 提示符,但有些用户可能不受信任,可能会找到某种方法突破 Mutt 并通过代码执行获得 shell 访问权限。我们基本上是在考虑最坏的情况。我们知道 SELinux 和 guest_u 帐户,但我们找到了一个更好的解决方案。由于我们的用户都属于一个组,即“用户”,我们可以使用以下 iptables 规则来禁用出站数据包。ping、dig、wget 等不起作用,但发送出站邮件可以。这正是我们想要的,但如果用户被禁止使用 dig、host、ping 等其他工具,为什么还允许他们通过 Mutt 进行任何出站访问?

这是我们添加的规则:

$IPT -A OUTPUT -p all -m owner --gid-owner users -j DROP

答案1

只要用户仅使用 Mutt 访问本地 Maildir 文件夹并使用邮件服务器发送邮件,那么他们就不会与外界通信。

但是,Mutt 允许运行 shell 命令。您可能希望将默认 shell 更改为 rbash,或者使用 chrooted 环境,以进一步限制用户可以尝试执行的操作。更改默认 shell 的操作如下:

shell /local/bin/rbash

/etc/Muttrc

相关内容