禁用一组用户的networking访问,但只允许smtp

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

这是我们添加的规则:

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

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

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

 shell /local/bin/rbash 

/etc/Muttrc