PDNS authoritative dns server's
Doel
Dit zijn de autoritive name servers van hobbynet
opzet
pdns1 is de master server. Hier draait de database op met alle records, in een mysql database.
De overige dns servers draaien een slave van deze server en worden zo automatisch voorzien van de meest recente records.
let op alle wijzigingen moeten dus op pdns1 worden uitgevoerd, anders help je de replicatie om zeep
zones
zone bewerken
cli
eenvoudig via :
pdnsutil edit-zone (zonenaam zonder extra .)
zone migreren
in /root staat migratie script . Dit script haalt de zone file uit /root/master.
Deze zorgt dat de zone wordt ingelezen in de database en nameserver records worden goed gezet.
/root/migrate.sh
zone bewerken
cli
activeren van dnssec gaat relatief eenvoudig draai
/disk/scripting/powerdns/dnssec/activeerdnssec.sh domeinnaam.tld
en de benodigde handelingen worden verricht, ksk en zsk worden aangemaakt en geactiveerd en nsec3 wordt geactiveerd.
Hierna kan je paar uur wachten of je draait het dnsseconderhoud script om te zorgen dat de leverancier wordt bij gewerkt.
web
Je kan de webinterface benaderen via:
https://poweradmin.hobby.nl/
Wacht woord wijzigen kan via about me
Dit is nog tijdelijke web interface
dnssec
Om te zorgen dat de KSK key's automatisch worden uitgerold naar de verschillende leveranciers is er een database genaamd Domeinbeheer
activeren
Om DNSsec te activeren, dit gaat alleen vanaf de commandline met het commando
activeerdnssec domein.tld
En als je wilt dat dit direct geactiveerd wordt bij de TLD, dan moet je dit commando draaien:
php /disk/scripting/powerdns/dnssec/dnsseconderhoud.php
Je kan ook wachten tot 4:42 of 16:42 dan draait het onderhoud script uit crontab
database
tabellen
dnssec
Deze tabel houd bij welke KSK actief is, en wanneer hij verloopt
Naam veld | Omschrijving |
---|---|
id | Primary key |
Domein naam | Naam van de zone/domein (met extra punt) |
actieve-ksk | keytag van de actieve ksk |
standby-ksk | keytag van de standby ksk |
verlopen-ksk | keytag van de verlopen ksk |
verval-actieve | Datum wanneer key in gebruik is genomen |
Verval-verlopen | Datum wanneer key inactief is geworden |
Leveranciers
Om te kunnen bepalen bij welke leverancier een domein hoort wordt aan de hand van de tld bepaald wat de leverancier is.
Naam veld | Omschrijving |
---|---|
id | Primary key |
tld | de extentie van domein |
leveransier | de leverancier van deze tld |
subdomeinen
Deze tabel bevat alle domeinen die subdomein zijn domein dat op deze server draait:
Naam veld | Omschrijving |
---|---|
id | Primary key |
subdomein | het subdomein |
internezone
Dit is lijst met interne zones subdomein hier niet in vermelden
Naam veld | Omschrijving |
---|---|
id | Primary key |
internezone | de interne zone |
api
epp sidn
Helaas is de EPP interface best complex en niet al te makkelijk, maar wordt deels eigen scripting gebruikt en deels een php-client van metaregistry opgehaald en up2date gehouden via composer
Transip rest api
We maken gebruiken van de rest interface van Transip
We hebben een PHP class TransIP_AccessToken voor het aanmaken van een autorisatie token.
Dit token is 30 min geldig
ripe rest api
Voor ripe gebruiken we de standaard rest interface van ripe.
We halen het json object op bij RIPE. Als er 1 ds-record niet klopt dan wordt het hele record overschreven, met het meest recente record.
Update van record is traag
godaddy api
Godaddy heeft geen api, voor dit 1e domein hcc.contact heb ik dnssec uit staan. In de toekomst maken we hier nog wat voor, of we wachten tot transip ook aan .contact doet
scripting
Alle scripting staat op /disk/scripting/powerdns
Op deze manier wordt ook netjes geback-upt
dnsseconderhoud.php
Dit script verricht onderhoud in paar fases:
- Fase 1 kijken of er verlopen actieve ksk's zijn en zo ja wissel KSK met standby KSK en maak nieuwe KSK (elke 3 maanden wisselen)
- Fase 2 controleer of records kloppen bij leveranciers en zo nodig update soms altijd update zie api omschrijving
- Fase 3 verwijder alle verlopen KSK die ouder zijn dan 1 week
- Fase 4 verwijder niet gekoppelde KSK's uit powerdns
functions.php
Deze file bevat alle gebruikte functies
credentials*
Spreekt voor zich
transip/zetnameservergoed.php
Dit script zet nameserver van domein goed bij transip
transip/zetnameservergoed.php domein.tld
sidn/zetnameservergoed.php
Dit script zet nameserver van domein goed bij sidn
sidn/zetnameservergoed.php domein.nl
repo
We maken gebruik van repo van powerdns zelf
deb [arch=amd64] http://repo.powerdns.com/ubuntu focal-auth-master main
Zo installeer je gpg key van het repo
curl https://repo.powerdns.com/CBC8B383-pub.asc | sudo apt-key add -