Para o DNS, você precisa permitir pacotes UDP entre qualquer porta em um endereço IP dentro do firewall e a porta 53 em um endereço IP fora do firewall.
Para HTTPS, você precisa permitir pacotes TCP entre qualquer porta em um endereço IP dentro do firewall e a porta 443 fora do firewall ou, mais raramente, qualquer porta fora do firewall (alguns sites não estão na porta padrão). Para HTTP, é o mesmo com a porta 80.
TCP é um protocolo conectado; as duas extremidades da conexão não são simétricas e os firewalls geralmente fazem diferença entre eles. Raramente há qualquer motivo de segurança para impedir conexões de saída, exceto talvez para forçar o envio de emails para passar por um retransmissor dedicado (para impedir que máquinas infectadas enviem spam não detectado). Um firewall básico típico para uma máquina cliente permite todas ou a maioria das conexões de saída e bloqueia conexões de entrada.
Para ping, permita ICMP. Você deve permitir todo o ICMP, a menos que você tenha um motivo específico para bloquear certos tipos de pacotes. O bloqueio indiscriminado do ICMP pode dificultar o diagnóstico de problemas de rede e causar inundações devido ao fato de os aplicativos não receberem respostas de erros adequadas.
Aqui está uma configuração simples de firewall Linux adequada para uma máquina cliente típica, que permite superar tudo, exceto o SMTP, em uma máquina diferente de smtp.example.com
e bloqueia conexões TCP de entrada, exceto na porta 22 (SSH).
iptables -F INPUT
# Accept everything on localhost
iptables -A INPUT -i lo -j ACCEPT
# Accept incoming packets on existing connections
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
# Accept DNS replies
iptables -A INPUT -p udp --sport 53 -j ACCEPT
# Accept incoming SSH connections
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
# Reject everything else that's incoming
iptables -A INPUT -j REJECT
iptables -F OUTPUT
# Forbid outgoing SMTP except to a known relay
iptables -A OUTPUT -p tcp --dport 22 ! -host smtp.example.com -j REJECT
# Allow everything else that's outgoing
iptables -P OUTPUT -j ALLOW