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:
-
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
-
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