D
Deleted member 11691
Guest
Heyho,
da Hetzner (obwohl einem meiner Meinung nach bei DEN Preisen das Geld aus der Tasche gezogen wird), nicht die Möglichkeit bietet, für einzelne Adressen oder ganze Adressranges einen NS für PTR anzulegen, der dann auf einen eigenen Server zeigt, hab ich mir selber ein Script zusammengeschrieben, das genau *das* macht, nur eben mit der Hetzner API und der SolusVM eigenen Datenbank:
Kommentare gerne erwünscht, Verwendung und Abändern des Scripts selbstverständlich gestattet.
Konfiguration ist hierbei eigentlich ziemlich simpel:
Mit
eine simple Datenbank (auf dem selben Host wo auch SolusVM installiert ist) erstellen und im SolusVM einfach einen PowerDNS Server hinterlegen: Configuration > PowerDNS > Add > *name eingeben ("rdns") >
IP Address -> localhost (Wichtig, nicht 127.0.0.1 verwenden!)
SQL Port -> 3306
SQL Username -> *mysql solusvm username*
SQL Password -> *mysql solusvm password*
SQL Database -> rdns
Nachdem das getan wurde, eine neue RDNS Zone anlegen ("Add Reverse DNS Zone") >
Zone Name -> in-addr.arpa
Nameserver 1 -> ns1.local
2 -> ns2.local
Hostmaster Email -> irgendwer@irgendwo.de
Dann das oben genannte Script auf dem Master installieren (z.B unter /usr/local/bin/hetznerptr.sh) und das Verzeichnis /var/lib/rdns/ anlegen. Die Parameter natürlich abändern und dann einmal ausführen lassen. Danach kann das Script mit einem Cronjob in /etc/crontab geschrieben werden (bei mir ist das */15 * * * * root /root/rdns.sh).
Hoffe damit doch noch die paar Leute, die hier eventuell SolusVM benutzen, geholfen zu haben
da Hetzner (obwohl einem meiner Meinung nach bei DEN Preisen das Geld aus der Tasche gezogen wird), nicht die Möglichkeit bietet, für einzelne Adressen oder ganze Adressranges einen NS für PTR anzulegen, der dann auf einen eigenen Server zeigt, hab ich mir selber ein Script zusammengeschrieben, das genau *das* macht, nur eben mit der Hetzner API und der SolusVM eigenen Datenbank:
Code:
#!/bin/bash
sqluser=*mysql solusvm username*
sqlpass=*mysql solusvm password*
sqlname=*mysql solusvm database name*
apiuser=*hetzner api username*
apipass=*hetzner api password*
mysql -N -e 'SELECT ipaddress, rdns FROM ipaddresses; SELECT ipaddress, rdns FROM ipv6;' -B -u$sqluser -p$sqlpass $sqlname | while read line
do
ip=$(echo "$line" | awk '{print $1}')
rdns=$(echo "$line" | awk '{if ($2 == "NULL"){print "";}else{print $2}}')
if [ ! -f "/var/lib/rdns/$ip" -o "x$(cat /var/lib/rdns/$ip 2> /dev/null)" != "x$rdns" ]
then
echo "$ip -> $rdns"
if [ "x$rdns" == "x" -o "x$rdns" == "xNULL" ]
then
curl -s -f -u $apiuser:$apipass https://robot-ws.your-server.de/rdns/$ip -X DELETE
else
curl -s -f -u $apiuser:$apipass https://robot-ws.your-server.de/rdns/$ip -d ptr="$rdns"
fi
exitcode=$?
if [ "$exitcode" == "0" ]
then
echo -n "$rdns" > /var/lib/rdns/$ip
else
echo "FAILED: $ip -> $rdns = $exitcode"
fi
fi
done
Kommentare gerne erwünscht, Verwendung und Abändern des Scripts selbstverständlich gestattet.
Konfiguration ist hierbei eigentlich ziemlich simpel:
Mit
Code:
"mysql -e 'CREATE DATABASE rdns;' -u$sqluser -p$sqlpass
IP Address -> localhost (Wichtig, nicht 127.0.0.1 verwenden!)
SQL Port -> 3306
SQL Username -> *mysql solusvm username*
SQL Password -> *mysql solusvm password*
SQL Database -> rdns
Nachdem das getan wurde, eine neue RDNS Zone anlegen ("Add Reverse DNS Zone") >
Zone Name -> in-addr.arpa
Nameserver 1 -> ns1.local
2 -> ns2.local
Hostmaster Email -> irgendwer@irgendwo.de
Dann das oben genannte Script auf dem Master installieren (z.B unter /usr/local/bin/hetznerptr.sh) und das Verzeichnis /var/lib/rdns/ anlegen. Die Parameter natürlich abändern und dann einmal ausführen lassen. Danach kann das Script mit einem Cronjob in /etc/crontab geschrieben werden (bei mir ist das */15 * * * * root /root/rdns.sh).
Hoffe damit doch noch die paar Leute, die hier eventuell SolusVM benutzen, geholfen zu haben