나는 이것이 가능하다고 믿지 않는다 ufw
. 이 기능이없는 ufw
프론트 엔드 일 뿐이 iptables
므로 한 가지 방법은 주기적으로 실행되고 IP 주소가 변경되었는지 확인하는 crontab 항목을 작성하는 것입니다. 그렇다면 업데이트됩니다.
이렇게하고 싶을 수도 있습니다.
$ iptables -A INPUT -p tcp --src mydomain.dyndns.org --dport 22 -j ACCEPT
그러나 호스트 이름을 IP로 확인하고 규칙에 사용하므로 나중에 IP가 변경되면이 규칙이 유효하지 않게됩니다.
대체 아이디어
이와 같은 스크립트를 만들 수 있습니다 iptables_update.bash
.
#!/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
/etc/init.d/iptables save
echo $Current_IP > $LOGFILE
echo iptables have been updated
fi
fi
source : dyndns.org와 같은 동적 IP 호스트 이름으로 IPTable 사용
이 스크립트를 저장하면 파일에서 crontab 항목을 만들 수 있습니다 /etc/crontab
.
*/5 * * * * root /etc/iptables_update.bash > /dev/null 2>&1
이 항목은 5 분마다 스크립트를 실행하여 호스트 이름에 할당 된 IP 주소가 변경되었는지 확인합니다. 그렇다면 이전 IP 주소에 대한 기존 규칙을 삭제하면서 허용하는 새 규칙을 작성합니다.