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

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

我在 RHEL(CentOS 6.3)上运行一台专用机器,该机器使用多个 IP 地址运行。多个用户也可以使用非超级用户帐户访问该机器。我想阻止他们绑定到某些地址。

我确实知道 Linux 可以限制非 root 用户的端口,就像目前对小于或等于 1024 的端口所做的那样。如果我想阻止访问特定的 IP 地址(例如)或0.0.0.0范围(例如)127.0.0.0/8,是否可以这样做?如果可以,该如何做?

或者相反,我如何拒绝所有访问绑定到任何 IP 地址,并授予用户对单个地址的访问权限?

答案1

我不会详细介绍如何设置 SELinux 或如何创建 SELinux 策略。可能是熟悉 SELinux 的一个很好的起点。

要解决 SELinux 的问题,请尝试以下操作:

  • 为要限制的网络接口分配类型

    # Assign a type to the whole interface
    semanage interface -a -t foo_netif_t eth2
    
  • 为通过接口的流量分配标签

    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
    

    此示例将类型分配foo_peer_t给所有 IPv4 和 IPv6 流量。

  • 添加规则以允许数据包流动

    交通进入

    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_t用您想要限制的用户指定的类型 替换。

参考:

相关内容