Ich glaube nicht, dass dies mit möglich ist ufw
. ufw
ist nur ein Frontend, iptables
dem diese Funktion ebenfalls fehlt. Daher besteht ein Ansatz darin, einen crontab-Eintrag zu erstellen, der regelmäßig ausgeführt wird und überprüft, ob sich die IP-Adresse geändert hat. Wenn dies der Fall ist, wird es aktualisiert.
Sie könnten versucht sein, dies zu tun:
$ iptables -A INPUT -p tcp --src mydomain.dyndns.org --dport 22 -j ACCEPT
Dadurch wird der Hostname jedoch in eine IP-Adresse aufgelöst und für die Regel verwendet. Wenn sich die IP-Adresse später ändert, wird diese Regel ungültig.
Alternative Idee
Sie könnten ein Skript wie so genannt, erstellen 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
Quelle: Verwenden von IPTables mit dynamischen IP-Hostnamen wie dyndns.org
Mit diesem gespeicherten Skript können Sie einen Crontab-Eintrag wie folgt in der Datei erstellen /etc/crontab
:
*/5 * * * * root /etc/iptables_update.bash > /dev/null 2>&1
Dieser Eintrag führt das Skript dann alle 5 Minuten aus und überprüft, ob sich die dem Hostnamen zugewiesene IP-Adresse geändert hat. In diesem Fall wird eine neue Regel erstellt, die dies zulässt, während die alte Regel für die alte IP-Adresse gelöscht wird.
Current_IP=$(host $HOSTNAME | cut -f4 -d' ')
Current_IP=$(host $HOSTNAME | head -n1 | cut -f4 -d ' ')
Ich weiß, dass dies alt ist, aber ich bin darauf gestoßen und bin am Ende auf diese Lösung gestoßen, die sogar noch besser zu sein scheint, da keine Protokolldatei erforderlich ist und es sehr einfach ist, bei Bedarf zusätzliche Hosts hinzuzufügen. Klappt wunderbar!
Quelle: http://rdstash.blogspot.ch/2013/09/allow-host-with-dynamic-ip-through.html
quelle
Basierend auf früheren Antworten habe ich das Folgende als Bash-Skript aktualisiert, das auf Debian Jessie funktioniert
quelle
cron
um es von Zeit zu Zeit selbstständig laufen zu lassen.LOGFILE=$HOME/ufw.log
LOGFILE=$HOME/ufw.$HOSTNAME.log
Basierend auf allen Antworten, bevor ich sie kombiniert habe. Keine Protokolldatei erforderlich. Getestet unter Ubuntu 18.04
Sie können den Regeln mit dem Parameter "port" einen Port hinzufügen. z.B:
quelle