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

1

Eu preciso bloquear meu servidor de iniciar qualquer conexão com um servidor remoto.

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

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

Como posso fazer isso?

Estou usando o Ubuntu.

    
por Joehot200 04.06.2015 / 01:09

2 respostas

6

Bloquear todas as conexões de saída é uma má idéia, pois isso impediria a instalação de software de repositórios online, fazendo pesquisas de DNS (o que seria terrível na maioria dos ambientes), mantendo o relógio atualizado com o NTP etc. De qualquer forma, se você ainda quiser 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 o DNS. Você pode conseguir isso de duas maneiras:

  1. Torne os jogos mais complexos. Seria bom para um ou dois itens "whitelisting". Exemplo:

      # Only forbid non-UDP traffic
    iptables -t filter -I OUTPUT 1 -m state --state NEW \! -p udp -j DROP
    
  2. Pré-adicionando regras que correspondem 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
    
por 04.06.2015 / 02:44
2

O firewall embutido do Ubuntu é ufw. Você pode controlá-lo usando um gui chamado Gufw. No painel principal do Gufw, basta clicar em Saída: Negar.

    
por 06.06.2015 / 21:41