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

less than 1 minute read

출처 : 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