Você tem:
ACCEPT all -- anywhere anywhere
e
DROP all -- anywhere anywhere
que é um pouco confuso.
A prática recomendada é definir a política padrão como DROP e aceitar o tráfego de que você precisa.
O ping não funciona porque você não permitiu.
Experimente este script:
#!/bin/sh
# Delete all existing rules
iptables -F
# Set default chain policies
iptables -P INPUT DROP
# allow established/related
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# allow ssh
iptables -A INPUT -p tcp --dport ssh -j ACCEPT
# allow http
iptables -A INPUT -p tcp --dport http -j ACCEPT
# pings
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
Torne-o executável e execute-o.
Em seguida, considere se você precisa de algumas regras para as cadeias OUTPUT
e FORWARD
.
Para mais informações, consulte o howto oficial do Ubuntu iptables .