Ó a maravilha que você fez ó:
Primeiro mandamento: Não quero nenhum IP acesse a porta 25!.
Segundo mandamento:Quero que os 192.168.200.0/24 acessem!...
-- Quem não os seguir, queimará no fogo do inferno!
Daí chega o súdito do iptables, e lê:
' não quero nenhum ip acessando porta 25'.
Se ele tá na mão com o 192.168.0.200 querendo ir prá o 25, ele logo conclui: dexa eu jogar isso fora!
Como já jogou fora, não vai nem perder tempo lendo o segundo mandamento. Afinal... Tem ali mais um pacote:
Então o súdito, com o 192.168.200.23 na mão, vai ler os mandamentos:
' não quero nenhum ip acessando a porta 25!'.
Ele como bom samaritano, joga logo o pacote fora!.
Como resolver o problema?
Muda a ordem dos tratores!!
"Eis que apago os mandamentos divinos!" (iptables -F)
Primeiro mandamento: Quero que os 192.168.200.0/24 acessem a porta 25 sem problemas!..
Segundo mandamento: Não quero nenhum IP acesse a porta 25!.
-- Quem não os seguir, queimará no fogo do inferno!
Tire o resto das conclusões! :P
Existem dois (três!) jeitos de colocar regra no iptables: o primeiro é -A (append), que vai anexar a regra no final do restante das regras que já tiverem na corrente.
O segundo jeito, é a -I (que oferece um sub-jeito). Ela 'insere' a regra no início da corrente: (falar 'eu nego tudo!', depois '-I, eu deixo -esse-', vai significar pro iptables 'eu deixo esse; senão eu nego tudo!').
O terceiro jeito-embutido, é
-I corrente numero (tipo: -I PREROUTING 2), prá colocar a regra na linha que você especificar (em
numero, passando as regras abaixo (com número maior) um 'degrau' à frente.
Espero que essa 'comparação' (esqueci a palavra correta) deixe claro as 'leis do iptables' prá você!