Linux: Permitir / restringir permissões de vinculação de IP pelo usuário

5

Estou executando uma máquina dedicada no RHEL (CentOS 6.3) que é executada com vários endereços IP. Vários usuários também têm acesso à máquina, em contas que não são de superusuário. Gostaria de impedir que eles se vinculem a determinados endereços.

Eu sei que o Linux pode restringir portas para usuários não-root, como é feito atualmente para portas menores ou iguais a 1024. Se eu quisesse impedir o acesso a um endereço IP específico, como 0.0.0.0 , ou um intervalo como 127.0.0.0/8 , isso seria possível e, em caso afirmativo, como seria feito?

Ou, inversamente, como eu negaria todo o acesso para vincular a qualquer endereço IP e conceder acesso a endereços individuais por usuário?

    
por hexacyanide 17.05.2013 / 06:32

1 resposta

2

Eu não vou entrar em detalhes sobre como o SELinux está configurado ou como alguém cria uma política SELinux. Este pode ser um bom ponto de partida para familiarizando-se com o SELinux.

Para resolver seu problema com o SELinux, tente isto:

  • Atribua um tipo à interface de rede que você deseja restringir

    # Assign a type to the whole interface
    semanage interface -a -t foo_netif_t eth2
    
  • Atribua rótulos ao tráfego que passa pela interface

    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
    

    Este exemplo atribui o tipo foo_peer_t a todo o tráfego IPv4 e IPv6.

  • Adicione regras para permitir o fluxo de pacotes

    Tráfego entrando

    allow user_t foo_netif_t:netif ingress;
    allow user_t foo_peer_t:node recvfrom;
    

    Tráfego saindo

    allow user_t foo_netif_t:netif egress;
    allow user_t foo_peer_t:node sendto;
    

    Substitua user_t pelo tipo atribuído ao usuário que você deseja restringir.

Referências:

por 18.05.2013 / 10:53

Tags