Já melhorou muito... Mas vamos as observações.
1 - Ping of Death não está relacionado a quantidade de pacotes ICMP que chegam a interface. E aliais, não creio que nenhum sistema atual ainda é vulnerável a esses ataques;
2 - A regra que (supostamente) está protegendo contra port scanner, pode levar o seu sistema a DoS: depois do 20 pacote Syn casar com a regra, todos os outros passarão despercebidos;
3 - Usar o target REJECT significa que sua máquina alocará recursos para poder sinalizar a fonte problemas. Portanto, mais uma vez você poderá sofrer de um DoS, estando esse problema relacionado a quantidade de pacotes que chegarão a sua interface e o throughput geral do seu filtro;
4 - A chain VALID_CHECK está inútil pois não é referenciada por nenhuma regra presente nas chains padrão;
5 - Mais uma vez: numa política restritiva é inútil ter regras com targets DROP. A menos que deseje fazer uma espécie de contabilidade. Então, todas as regras com target DROP que estão nas chains INPUT e FORWARD são inúteis, visto que a política dessas é restritiva e se tem como objetivo principal a eficiência;
Eu re-escreveria suas regras da seguinte maneira:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# Obeservação no final...
iptables -N SERVICOS
iptables -A SERVICOS -p tcp --dport 80 -j RETURN
iptables -A SERVICOS -p udp --dport 53 -j RETURN
iptables -A SERVICOS -j DROP
iptables -A FORWARD -j SERVICOS
for i in `cat $MACLIST`; do
IPSOURCE=`echo $i | cut -d ';' -f 1`
MACSOURCE=`echo $i | cut -d ';' -f 2`
iptables -t filter -A FORWARD -m mac --mac-source $MACSOURCE -d 0/0 -s $IPSOURCE -p tcp --syn -m state --state NEW -j ACCEPT
done
iptables -t nat -A PREROUTING -s 172.167.0.0/24 -p tcp -d ! 200.201.0.0/16 --dport 80 -j REDIRECT --to-port 3128
iptables -t nat -A POSTROUTING -o $INTERNET -j MASQUERADE
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 2210 --syn -m state --state NEW -j ACCEPT
Não inclui aqui limites para a saída de pacotes visto que acho mais eficiente o uso de um mecanismo de controle de tráfego (HTB).
Devido as polítias de onde atuo, sempre limitamos o conjunto de sevicões que estarão disponíveis. Na chain SERVICOS você poderá colocar todos os serviços que serão liberados. No conjunto acima, essa chain será chamada para verificar se o serviço de destido no pacote é permitido na rede. E quem sabe você pode até fazer uma automatização, que nem está na sua MACLIST.