我在运行多个IP地址的RHEL(CentOS 6.3)上运行一台专用的机器。 多个用户也可以访问非超级用户帐户上的计算机。 我想阻止他们绑定到某些地址。
我知道Linux可以限制非root用户使用的端口,就像目前为小于或等于1024的端口所做的那样。如果我想阻止访问某个特定的IP地址(如0.0.0.0 )或范围(如127.0.0.0/8 ,这样做是可能的,如果是这样,那么怎么做呢?
或者相反,我将如何拒绝所有访问绑定到任何IP地址,并授予访问个人地址由用户?
我不会详细讨论如何设置SELinux,或者如何创buildSELinux策略。 这可能是熟悉SELinux的一个很好的起点。
要解决你的SELinux问题,试试这个:
为您想要限制的networking接口分配一个types
# Assign a type to the whole interface semanage interface -a -t foo_netif_t eth2
为通过接口的stream量分配标签
netlabelctl unlbl add interface:eth2 address:0.0.0.0/0 label:system_u:object_r:foo_peer_t:s0 netlabelctl unlbl add interface:eth2 address:::/0 label:system_u:object_r:foo_peer_t:s0
本示例将typesfoo_peer_t分配给所有IPv4和IPv6通信。
添加规则以允许数据包stream
交通进入
allow user_t foo_netif_t:netif ingress; allow user_t foo_peer_t:node recvfrom;
交通离开
allow user_t foo_netif_t:netif egress; allow user_t foo_peer_t:node sendto;
将user_treplace为指定给您想要限制的用户的types。
参考文献: