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