Linux:允许/限制用户的IP绑定权限

我在运行多个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。

参考文献:

  • 贴标签界面
  • 入口/出口控制