pf dynamische ip

Nutzung von pf mit dynamischer IP

FQDN wird via DNS aufgelöst und die IP in einen PF table geschrieben. Ein etwas anderer grep, als bei OpenBSD, war hier nötig.

#!/bin/sh

new_home_ip="$(host home.example.com | awk '{print $4}')"
old_home_ip="$(pfctl -t home -T show | grep -oE '\b([0-9]{1,3}\.){3}[0-9]{1,3}\b')"
old_home_ip=${old_home_ip:-0.0.0.0}

if [ $new_home_ip != $old_home_ip ]
then
        pfctl -t home -T flush && pfctl -t home -T add $new_home_ip
        echo "$(date +%Y%m%d-%H%M): From $old_home_ip changed to $new_home_ip" | tee /var/log/homeip.log
else
        exit 0
fi