Redirecionamento de porta para um IP específico (dinâmico) usando o script iptables

2

O que eu quero:

Conexões TCP e UDP de entrada na porta 900 do endereço IP de resolução de myip.dyndns.org (IP dinâmico) devem redirecionar para a porta 5050 na máquina local. Todos os outros endereços IP devem "permanecer" na porta 900.

Eu li que o iptables apenas resolve o endereço IP depois que a regra é adicionada e então usa esse endereço IP mesmo se ele mudar e eu encontrei um script para rodar com o crontab para resolver isso:

#!/bin/bash

HOSTNAME=myip.dyndns.org
LOGFILE=iptables_update.log

Current_IP=$(host $HOSTNAME | cut -f4 -d' ')

if [ $LOGFILE = "" ] ; then
  iptables -t nat -I PREROUTING -p tcp --src $Current_IP --dport 900 -j REDIRECT --to-port 5050
  iptables -t nat -I PREROUTING -p udp --src $Current_IP --dport 900 -j REDIRECT --to-port 5050
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo "Update not required."
  else
    iptables -t nat -D PREROUTING -p tcp --src $Old_IP --dport 900 -j REDIRECT --to-port 5050
    iptables -t nat -D PREROUTING -p udp --src $Old_IP --dport 900 -j REDIRECT --to-port 5050
    iptables -t nat -I PREROUTING -p tcp --src $Current_IP --dport 900 -j REDIRECT --to-port 5050
    iptables -t nat -I PREROUTING -p udp --src $Current_IP --dport 900 -j REDIRECT --to-port 5050
    echo $Current_IP > $LOGFILE
    echo "Updating iptables with IP:" $CurreIP
  fi
fi

Então, minha única pergunta é se essa é uma maneira correta / correta de realizar isso?

Obrigado antecipadamente!

    
por viriol 16.10.2014 / 20:45

0 respostas