Script:DDNS로 연결된 도메인 IP에 대해 iptables포트 열기

출처 : http://unix.stackexchange.com/questions/91701/ufw-allow-traffic-only-from-a-domain-with-dynamic-ip-address
IP테이블에서 사용하는 방법

#!/bin/bash
#allow a dyndns name

HOSTNAME=HOST_NAME_HERE
LOGFILE=LOGFILE_NAME_HERE

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

if [ $LOGFILE = "" ] ; then
  iptables -I INPUT -i eth1 -s $Current_IP -j ACCEPT
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo IP address has not changed
  else
    iptables -D INPUT -i eth1 -s $Old_IP -j ACCEPT
    iptables -I INPUT -i eth1 -s $Current_IP -j ACCEPT
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi

UFW에서 사용하는 스크립트.. 위의 쉘스크립트에서 명령어만 바꿔줬다.
UFW에서 도메인을 기반으로 등록해주는 기능은 없다. 그럴 수 밖에 없는게… 접속이 들어올 때 마다 도메인의 IP를 확인할수도없는 노릇이니까

#!/bin/bash
#allow a dyndns name

HOSTNAME=HOST_NAME_HERE
LOGFILE=LOGFILE_NAME_HERE

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

if [ $LOGFILE = "" ] ; then
  ufw allow from $Current_IP
  echo $Current_IP > $LOGFILE
else

  Old_IP=$(cat $LOGFILE)

  if [ "$Current_IP" = "$Old_IP" ] ; then
    echo IP address has not changed
  else
    ufw delete allow from $Old_IP
    ufw allow from $Current_IP
    echo $Current_IP > $LOGFILE
    echo iptables have been updated
  fi
fi

Leave a Reply

Your email address will not be published.

 characters available