Debe ejecutar sus reglas en el orden opuesto. Iptables es sensible al orden en que se ejecutaron los comandos. Si una regla coincide, no pasa a verificar más reglas, simplemente obedece a esa. Si configura la caída primero, la regla de aceptación nunca se probará. Al configurar la aceptación específica con la IP de origen, luego configurar la política más general para descartar afectará el comportamiento esperado.
iptables -A INPUT -s x.x.x.x -p ICMP --icmp-type 8 -j ACCEPT
iptables -A INPUT -p ICMP --icmp-type 8 -j DROP
En cuanto al problema de bloqueo que parece tener, ¿está seguro de que ingresó una dirección IP válida? Tal vez pueda anteponer ese comando con strace iptables …
para ver lo que está haciendo mientras parece colgarse.
¡No deje caer ICMP a la ligera! Claro, algunas de las solicitudes ICMP son peligrosas, pero el resto es absolutamente necesario para que la red funcione (piense en "destino inalcanzable" y ese zoológico).