![SELinux 对其他站点的出站访问受到限制](https://linux22.com/image/20942/SELinux%20%E5%AF%B9%E5%85%B6%E4%BB%96%E7%AB%99%E7%82%B9%E7%9A%84%E5%87%BA%E7%AB%99%E8%AE%BF%E9%97%AE%E5%8F%97%E5%88%B0%E9%99%90%E5%88%B6.png)
我们在 CentOS 6 上配置了 SELinux 来托管许多网站。
不幸的是,SELinux 正在阻止网站访问(出站)站点,例如 download.wordpress.com 来更新 wordpress 或 Joomla 安装。
我们希望启用 SELinux 并让这些站点能够进行此类连接。
我们害怕的是我们这样做
# setsebool -P httpd_can_network_connect 1
一些“开发人员”会创建一个 php 脚本来开始发送垃圾邮件,导致我们的 IP 被列入黑名单。
有没有办法同时启用出站连接并限制此类出站问题?
谢谢。
答案1
如果您告诉 SELinux 允许出站连接,您就不能再使用它来阻止滥用的 php 脚本。不过,您可以使用 iptables 规则代替它。
iptables -I OUTPUT -m state --state new -m owner --uid-owner httpd -j REJECT
iptables -I OUTPUT -m state --state new -m owner --uid-owner httpd -p tcp --dport 80 -j ACCEPT
iptables -I OUTPUT -m state --state new -m owner --uid-owner httpd -p tcp --dport 443 -j ACCEPT
service iptables save
这将允许用户httpd
仅连接到端口 80 和 443。所有其他连接尝试都将被拒绝。 (将“httpd”更改为 apache httpd 运行的用户)。
您甚至可以使用 iptables 的 conlimit 模块限制允许的并行连接数。看http://www.cyberciti.biz/faq/iptables-connection-limits-howto/有关如何执行此操作的示例。