ping
usa algo chamado pacotes ICMP, o que não é relacionado aos pacotes TCP, como os que transportam uma carga HTTP.
Se você quiser que ping (e outros protocolos IP que podem depender do ICMP) funcionem, você precisa configurar o firewall para passar pacotes ICMP (talvez filtrando apenas aqueles que são de seu interesse, veja abaixo) e também as respostas que são gerados a partir desses pacotes. (Com o firewall certo, você também pode manter o estado, mesmo que o ICMP seja essencialmente sem estado. Mas isso não é essencial para o ping funcionar.)
Eu adicionaria os tipos de pacotes ICMP que você deseja transmitir, mas eles já são discutidos em security.se:
Em geral, você quer algo parecido com isto (isso é supercozinha, apenas com os detalhes relevantes):
[Host A] < - (internet ou rede não confiável) - > [Firewall] < - [Host B] - >
O tráfego entre o Host A e o Host B é filtrado dependendo da natureza do tráfego e do estado desse tráfego. Às vezes, o Host B e o Firewall são os mesmos. Isso não faz muita diferença, já que o Firewall em si é um tipo de host virtual em alguns aspectos.
Para diferentes tipos de cargas ICMP podem ser enviadas do Host A para uma rede que ele sabe que está no ou atrás do Firewall (ele não sabe qual, geralmente). Esse tráfego deve ser passado pelo Firewall, enviado para o Host B, e a resposta do Host B deve ser recebida como parte da conversação, NATted, e enviada de volta para o Host A.
Assim, este tráfego tem que ser passado de forma ambas , o que às vezes é importante para os firewalls.
A primeira coisa a verificar é se os pacotes ICMP do tipo em que estamos interessados (suas referências aqui e nos comentários dizem quais nos quais nos importamos) estão realmente sendo passados pelo Firewall e enviados para o Host B. ser algum registro ou interface de algum tipo que nos permite inspecionar e consultar o Firewall, tenho certeza.
Uma vez que sabemos que esse tráfego está passando, precisamos ter certeza de que ele está sendo enviado para o Host B (ou passado para a pilha IP no host local) e que a resposta também está sendo passada.
Os detalhes de "como fazer o iptables funcionar" estão além do escopo desta questão, mas outros podem ter mais dicas para você. Ou talvez esses detalhes possam ser encontrados em outra resposta do SO.
Um truque é salvar suas regras de firewall em um arquivo e criar um novo conjunto de regras que basicamente "passe tudo e registre, NAT tudo fora e registre" que você habilita para o teste. Então veja se os pings estão passando. isto é, prove que é o firewall que é o problema.