मुझे विश्वास नहीं है कि यह संभव है ufw
। ufw
सिर्फ एक दृश्य है, iptables
जिसमें इस सुविधा का भी अभाव है, इसलिए एक दृष्टिकोण एक क्रॉस्टैब प्रविष्टि बनाने का होगा जो समय-समय पर चलेगा और जांचें कि क्या आईपी पता बदल गया है। अगर यह है तो इसे अपडेट करेगा।
आपको ऐसा करने के लिए लुभाया जा सकता है:
$ iptables -A INPUT -p tcp --src mydomain.dyndns.org --dport 22 -j ACCEPT
लेकिन यह hostname को 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 जैसे डायनामिक आईपी होस्टनाम के साथ IPTables का उपयोग करना
इस स्क्रिप्ट को सहेजने से आप फ़ाइल में एक crontab प्रविष्टि बना सकते हैं /etc/crontab
:
*/5 * * * * root /etc/iptables_update.bash > /dev/null 2>&1
यह प्रविष्टि प्रत्येक 5 मिनट में स्क्रिप्ट चलाएगी, यह देखने के लिए कि क्या होस्टनाम को दिया गया आईपी पता बदल गया है। यदि ऐसा है तो यह एक नया नियम बनाएगा, जिससे वह पुराने आईपी पते के लिए पुराने नियम को हटा देगा।