Bloqueio de saída se conecta com iptables

6

Eu tenho uma máquina (sem produção) onde os apoiadores externos têm acesso ao shell (não-raiz). Eu quero impedi-los de ir mais longe em nossa rede a partir dessa máquina usando o iptables.

O firewall "normal" apenas bloqueia o tráfego de entrada. Como posso configurar regras como "aceitar todo o tráfego de entrada (mais resposta), mas permitir somente o tráfego de saída para destinos específicos (como snmp-traps para o servidor de monitoramento)"?

OS é o CentOS 5

    
por Nils 29.12.2011 / 22:56

3 respostas

5

Existem duas maneiras de eliminar todo o tráfego de saída, exceto o que você define explicitamente como ACCEPT. A primeira é definir a política padrão para a cadeia OUTPUT.

iptables -P OUTPUT DROP

A desvantagem desse método é que, quando a cadeia é liberada (todas as regras são removidas), todo o tráfego de saída será eliminado. A outra maneira é colocar uma regra de DROP "geral" no fim da cadeia.

iptables -A OUTPUT -j DROP

Sem saber exatamente o que você precisa, não posso oferecer conselhos sobre o que aceitar. Eu pessoalmente uso o método de colocar uma regra de DROP padrão no final da cadeia. Você pode precisar investigar como sua GUI está definindo regras, caso contrário, pode entrar em conflito com as formas tradicionais de restaurar as regras na inicialização (como / etc / sysconfig / iptables) da CLI.

    
por 30.12.2011 / 02:58
8

Supondo que você só queira aceitar tráfego TCP de entrada, você pode usar essas regras para restringir o tráfego de saída para conexões TCP estabelecidas (que deveriam ter sido iniciadas de fora) e endereços IP fora de sua LAN:

iptables -A INPUT -p tcp -i lo -j ACCEPT
iptables -A INPUT -p tcp -p 22 -j ACCEPT   # repeat for other ports you want to allow
iptables -P INPUT -j DENY
iptables -A OUTPUT -o lo -j ACCEPT
iptables -A OUTPUT -p tcp \! -d 10.0.0.0/8 -j ACCEPT  # replace by your LAN's network(s)
iptables -A OUTPUT -p tcp \! --syn -j ACCEPT
iptables -P OUTPUT -j DENY

Dados seus requisitos, você pode preferir aplicar algumas regras especificamente aos processos executados pelos apoiadores. Supondo que eles estejam no grupo supporters , as regras a seguir negarão aos apoiadores (e somente aos apoiadores) todas as conexões (recebidas ou enviadas) dentro de sua LAN:

iptables -I INPUT \! -i lo -s 10.0.0.0/8 -m owner --gid-owner supporters -j DENY
iptables -I OUTPUT \! -o lo -d 10.0.0.0/8 -m owner --gid-owner supporters -j DENY

Observe que gid-owner testa o fsgid do processo, que é quase sempre o GID efetivo . A menos que um processo seja executado setgid ou alterne seu GID efetivo para um grupo adicional , o grupo primário do usuário (registrado no banco de dados do usuário, por exemplo, /etc/passwd ) se aplica.

    
por 30.12.2011 / 03:31
3

Considere instalar o Shorewall como seu criador de firewall. Use o exemplo de interface única como ponto de partida e não fornece regras de acesso de saída desnecessárias. Tipos necessários de ICMP são permitidos.

Você provavelmente desejará fornecer pelo menos as regras de acesso de DNS (pesquisa de nomes) e de NTP (sincronização de horário).

    
por 30.12.2011 / 15:05