Ich wollte meine Heim IP für mehr Ports freischalten als sonst offen sind.
Dafür möchte ich meinen DNS namen in FirewallD freischalten.
Das geht nicht? Richtig, aber dafür möchte ich dieses kleine Script mit euch teilen.
Als erstes braucht ihr einen Dydns anbieter wie z.B. http://freedns.afraid.org/
Danach erstellt ein File mit dem Script vom und tragt euren Hostnamen ein.
Macht es ausführbar.
Kopiert das hinein:
#/bin/sh
date
#check if file already there if not, create it
if [ -r /run/myip ]
then
echo "file there"
else
echo "file not there"
dig +short i.home.mollberg.de > /run/myip
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="'$myipnew'" accept'
fi
#get old IP
myipold=$(</run/myip)
echo "$myipold"
#get new IP
myipnew=$(dig +short YOUR-DNS-NAME-HERE)
echo "$myipnew"
#compare new and old ip, do nothing if nothing changes, remove old ip and allow new IP if IP has changed
if [ "$myipold" = "$myipnew" ]
then
echo "same IP"
else
echo "diff IP"
firewall-cmd --zone=public --remove-rich-rule='rule family="ipv4" source address="'$myipold'" accept'
firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="'$myipnew'" accept'
dig +short YOUR-DNS-NAME-HERE > /run/myip
fi
Nun fügt einen Cron Job hinzu, z.B. so, dieser läuft jede Stunde.0 * * * 0 root /home/user/MyIP.sh >> /var/log/myip.log