![Como posso bloquear todas as conexões de saída?](https://rvso.com/image/1452893/Como%20posso%20bloquear%20todas%20as%20conex%C3%B5es%20de%20sa%C3%ADda%3F.png)
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:
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
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.