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: