Bunun mümkün olabileceğine inanmıyorum ufw
. aynı zamanda bu özellikten yoksun olan ufw
bir ön uçtur iptables
, bu nedenle bir yaklaşım periyodik olarak çalışacak ve IP adresinin değişip değişmediğini kontrol edecek bir crontab girişi oluşturmak olacaktır. Eğer öyleyse, güncelleyecektir.
Bunu yapmak için cazip olabilir:
$ iptables -A INPUT -p tcp --src mydomain.dyndns.org --dport 22 -j ACCEPT
Ancak bu, ana bilgisayar adını bir IP'ye çözecek ve bunu kural için kullanacaktır, böylece IP daha sonra değişirse bu kural geçersiz hale gelecektir.
Alternatif fikir
Buna benzer bir senaryo oluşturabilirsiniz 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
kaynak: IPTable'ları dyndns.org gibi Dinamik IP ana bilgisayar adlarıyla kullanma
Bu komut dosyası kaydedildiğinde, dosyada /etc/crontab
şöyle bir crontab girişi oluşturabilirsiniz :
*/5 * * * * root /etc/iptables_update.bash > /dev/null 2>&1
Bu giriş daha sonra komut dosyasını her 5 dakikada bir çalıştırır ve ana bilgisayar adına atanan IP adresinin değişip değişmediğini kontrol eder. Öyleyse, eski IP adresi için eski kuralı silerken, buna izin veren yeni bir kural oluşturacaktır.