Como posso bloquear todas as conexões de saída?

Como posso bloquear todas as conexões de saída?

Preciso bloquear meu servidor deiniciandoquaisquer conexões com um servidor remoto.

No entanto, ainda quero que o servidor possa responder a partir de conexões iniciadas por meio de clientes conectados.

Em outras palavras, quero que outras pessoas possam se conectar ao servidor, mas que o servidor não consiga iniciar conexões remotas com outros servidores.

Como eu posso fazer isso?

Estou usando o Ubuntu.

Responder1

Bloquear todas as conexões de saída é uma má ideia, pois isso impediria você de instalar software de repositórios online, fazer pesquisas de DNS (o que seria terrível na maioria dos ambientes), manter o relógio atualizado com NTP, etc. para fazer isso, tente isto:

  # Drop all connections initiated from this host
iptables -t filter -I OUTPUT 1 -m state --state NEW -j DROP
  # Additionally, log the event (optional)
iptables -t filter -I OUTPUT 1 -m state --state NEW -j LOG --log-level warning \
  --log-prefix "Attempted to initiate a connection from a local process" \
  --log-uid

Você pode tornar as regras mais inteligentes permitindo determinado tráfego, como DNS. Você pode conseguir isso de duas maneiras:

  1. Torne as partidas mais complexas. Seria bom para um ou dois itens da "lista branca". Exemplo:

      # Only forbid non-UDP traffic
    iptables -t filter -I OUTPUT 1 -m state --state NEW \! -p udp -j DROP
    
  2. Anexar regras que correspondam a alguns dos serviços desejados que podem ser iniciados a partir do host local com um alvo "-j ACCEPT". Exemplo:

      # Run this after the "DROP" rule to allow connection to ports
      #+ 80 and 443, mostly used for HTTP and HTTPS traffic
    iptables -t filter -I OUTPUT 1 -p udp -m multiport --ports 80,443 -j ACCEPT
    

Responder2

O firewall integrado do Ubuntu é o ufw. Você pode controlá-lo usando uma interface chamada Gufw. No painel principal do Gufw, basta clicar em Saída:Negar.

informação relacionada