+ Responder ao Tópico



  1. #1

    Padrão DNS Dinamicos (ddns & dyndns) no script firewall

    Olá, bom dia pessoal.
    Tenho um script com todas as minhas regras de Firewall funcionando. Hoje preciso liberar um acesso externo -> interno para uma empresa terceira que usa DNS Dinamico.

    Código :
    ...
     iptables -t nat -A PREROUTING -i eth0 -s nome.ddns.com.br -p tcp --dport 55000 -d 201.24.120.xx -j DNAT --to 192.168.0.3
     iptables -t nat -A PREROUTING -i eth0 -s nome.ddns.com.br -p tcp --dport 55001 -d 201.24.120.xx -j DNAT --to 192.168.0.3
     iptables -t nat -A PREROUTING -i eth0 -s nome.ddns.com.br -p tcp --dport 55002 -d 201.24.120.xx -j DNAT --to 192.168.0.3
     iptables -t nat -A PREROUTING -i eth0 -s nome.ddns.com.br -p tcp --dport 55003 -d 201.24.120.xx -j DNAT --to 192.168.0.3
    ...

    Deixo meu script rodando de 5 em 5 minutos.

    Porem, quando meu DNS cai e o firewall chama o script, ele vai chegar na primeira dessas 4 linhas e vai tentar encontrar o endereço. Vai demorar até dar timeout e passar para a segunda dessas 4 linhas.

    Isso faz com que o meu script demore em media de 1 minuto para concluir a execução. Esse tempo é o suficiente para as demais conexões que estão estabelecidas porque existe permissão abaixo dessas regras caiam.

    Alguem tem alguma forma de traduzir esses nomes antes. Assim, colocamos o nome traduzido em uma variavel e inserimos-a na regra?

  2. #2

    Padrão Re: DNS Dinamicos (ddns & dyndns) no script firewall

    Olá meu amigo,

    Acho que você precisa tirar a resolução de dns do seu script de firewall...

    Eu faria o seguinte, iria criar um script secundário que ficaria sendo executado na cron no intervalo que você achar melhor. Ele iria tentar a resolução de nome para este site, conseguindo iria verificar em um arquivo de texto qual teria sido a ultima resolução (caso seje a primeira somente iria atualizar ou criar o arquivo), caso seja diferente, atualizaria o arquivo e executaria o script de firewall (/etc/init.d/firewall restart).

    No seu script de firewall você poderia criar uma rotina simples em que você faz a leitura deste arquivo atualizado pelo script que fica na cron para dentro de uma variável, e ai você evita ter que traduzir o nome quando executa o script e a velocidade de aplicar as regras será sempre a mesma! Basicamente é a sua ideia!! :-)

    Eu faria desta forma! Espero que ajude!

    Abraços