
Como eu poderia configurar algum tipo de firewall que permita apenas que programas específicos usem as portas abertas do sistema (de preferência RHEL)?
Por exemplo, se eu quiser yum
me conectar e atualizar normalmente, mas quiser bloquear solicitações de saída da Web, como navegação, ainda precisarei que as portas 80, 443, 53 e UDP-53 estejam abertas.
No entanto, eu precisaria que o firewall pudesse distinguir entre yum
um navegador da web.
Responder1
iptables
tem a capacidade de verificar o usuário do programa.
Usando sinalizadores --uid-owner
ou --gid-owner
você tem a capacidade de limitar a rede apenas a usuários especificados (root?), E www-data
os pacotes do seu servidor web (podem ser executados como ) seriam descartados.
É claro que isso limita por usuário/grupo e não por programa, mas a maioria dos serviços hoje é executada com seus próprios usuários e grupos.
Exemplo:
iptables -I OUTPUT -m owner --uid-owner www-data -jDROP
Exemplo que restringiria a rede de saída a qualquer pessoa, exceto root:
iptables -P OUTPUT DROP
iptables -I OUTPUT -m owner --uid-owner root -jALLOW
Outra abordagem seria configurar regras SELinux
(geralmente incluídas nos produtos RedHat). Pessoalmente, acho que seria mais difícil de administrar.