iptables
entram em vigor imediatamente.
Como esse script é anexado, pode haver uma regra antes disso que diz para permitir automaticamente os hosts que você está tentando bloquear. O iptables lê as regras de cima para baixo e quebra assim que encontra uma correspondência (então se você tivesse algo que dizia 'permitir badhostx' e a próxima linha fosse 'soltar badhostx', ele nunca cairia já que a regra já foi correspondida para aquela host.
Se você estiver usando o -A em um script, você pode querer limpar suas tabelas antes (iptables --flush), para garantir que as regras sejam exatamente como você as aplica no script (mas também certifique-se de ter TODAS as regras desse script).
Outra opção, ao invés de rodar esse script, é pegar as regras que você quer que trabalhem, então faça "salvar o iptables" ou "/etc/init.d/iptables save". Espero que isso ajude.