|
| 1 | +# deSEC-Tools |
| 2 | + |
| 3 | +[all-inkl](https://all-inkl.com) unterstützt leider kein DNSSEC direkt. Aber es kann die DNS-Verwaltung für eine Domäne an einen DNS-Provider mit DNSSEC wie [deSEC.io](https://deSEC.io) ausgelagert werden. Dazu müssen im KAS-Verwaltungstool von all-inkl. lediglich der DNS-Server von deSEC eingetragen werden und anschliessend noch über den all-inkl-Support der Domainkey beim Top-Level-Registrar hinterlegt werden. |
| 4 | + |
| 5 | +Damit die Umstellung reibungslos funktioniert müssen z.B. auch noch die bisher konfigurierten DNS-Records bei deSEC oder die DynDNS-Accounts bei deSEC neu angelegt werden. Vor allem aber muss sichergestellt werden, dass jederzeit die korrekten DKIM-Records bei deSEC hinterlegt sind. |
| 6 | + |
| 7 | +Mit dieser Tool-Sammlung sollen diese Aufgaben vereinfacht werden. Folgende Tools stehen zur Verfügung |
| 8 | + |
| 9 | + |
| 10 | +|Script|Beschreibung| |
| 11 | +|---|---| |
| 12 | +|sync_kas_dkim.php|Synchronsiert die DKIM Einträge von KAS nach deSEC. Da sich bei einem Serverumzug die DKIM-Records ändern können, sollte eine Synchronisierung regelmäßig durchgeführt werden.| |
| 13 | +|migrate_kas_zones.php|Mit diesem Script können einzelne Domänen oder auch alle konfigurierten Records einer in KAS verwalteten Domäne nach deSEC übertragen werden. NS-Records (z.B. von den in KAS konfigurierten DynDNS-Einträge) werden dabei nicht übertragen, damit DNSSEC vollständig umgesetzt ist.| |
| 14 | +|gen_ddns_token.php|Legt bei deSEC ein neues Access-Token an. Das Token ist dabei über Policies so eingeschränkt, dass damit nur die A und AAAA Records für die an das Script übergebenen Hosts geändert werden können. Damit ist dann auch eine sichere Verwaltung von DynDNS-Host-Einträgen über [dedyn.io](https://desec.readthedocs.io/en/latest/dyndns/configure.html) möglich.| |
| 15 | + |
| 16 | +## Anwendung der Scripte |
| 17 | +### sync_kas_dkim.php |
| 18 | +Wenn die Zugangsdaten in der DAtei config.php richtig hinterlegt sind, sind keine weiteren Parameter erforderlich. |
| 19 | + |
| 20 | +### migrate_kas_zones.php |
| 21 | +``` |
| 22 | +Usage: migrate_kas_zones.php [DOMAIN DOMAIN DOMAIN ...] |
| 23 | +
|
| 24 | +Description: |
| 25 | + Read all DNS records configured in KAS account and create the records in deSEC |
| 26 | + account. If no domain names are given on command line, all domains configured |
| 27 | + in KAS are migrated. Otherwise just the given Domains are migrated. NS records |
| 28 | + are not migrated to ensure proper functionality of DNSSEC. |
| 29 | +
|
| 30 | +Parameter: |
| 31 | + -h Show this help page. |
| 32 | + DOMAIN Domain that should be migrated to deSEC. |
| 33 | +
|
| 34 | +Example: migrate_kas_zones.php hlpme.de nerdig.es |
| 35 | +
|
| 36 | +Version: 0.1.0 |
| 37 | +``` |
| 38 | + |
| 39 | +### gen_ddns_token.php |
| 40 | +``` |
| 41 | +Usage: gen_ddns_token.php FQDN [FQDN FQDN ...] |
| 42 | +
|
| 43 | +Description: |
| 44 | + Create an access token for deSEC. Token is restricted and can only be used to |
| 45 | + change the A and AAAA records of the domains given on command line. |
| 46 | +
|
| 47 | +Parameter: |
| 48 | + -h Show this help page. |
| 49 | + FQDN Full qualified domain name for DynDNS client. If multiple FQDNs are |
| 50 | + given, the token generated can be used for several DynDNS clients. |
| 51 | +
|
| 52 | +Example: gen_ddns_token.php dyndns.hlpme.de dyndns.nerdig.es |
| 53 | +
|
| 54 | +Version: 0.1.0 |
| 55 | +``` |
| 56 | + |
| 57 | + |
| 58 | +## Installation |
| 59 | +Die Toolsammlung wird wie folgt installiert: |
| 60 | + |
| 61 | +**1. Download der Dateien** |
| 62 | + |
| 63 | +``` |
| 64 | +dpkg -l git || apt install git |
| 65 | +git clone https://github.com/nerdiges/desec-tools.git /opt/desec-tools |
| 66 | +chmod +x /opt/desec-tools/*.php |
| 67 | +cp /opt/desec-tools/config.php.sample /opt/desec-tools/config.php |
| 68 | +``` |
| 69 | + |
| 70 | +**2. config.php anpassen** |
| 71 | + |
| 72 | +In der Datei config.php müssen noch die Zugangsdaten für KAS und deSEC hinterlegt werden: |
| 73 | + |
| 74 | +``` |
| 75 | +<?php |
| 76 | +# KAS auth data. Multiples KAS accounts can be synced when added to the array. |
| 77 | +$kas_credentials = array( |
| 78 | + "your_kas_user1" => "your_kas_pwd1", |
| 79 | + "your_kas_user2" => "your_kas_pwd2" |
| 80 | +); |
| 81 | +$kas_totp_secret = 'your_totp_secret'; |
| 82 | +
|
| 83 | +# Auth Info to access deSec API |
| 84 | +$desec_token= "your_desec_token"; |
| 85 | +
|
| 86 | +?> |
| 87 | +``` |
| 88 | + |
| 89 | +**3. Einrichten der systemd-Services (optional)** |
| 90 | +Sollen die Scripte nur bei Bedarf manuell ausgeführt werden, dann ist die Einrichtung von Services nicht erforderlich. |
| 91 | +Sollen allerdings z.B. regelmäßig die DKIM-Records synchronisiert werden, dann kann das Script sync_kas_dkim.php entweder über cron oder über systemd regelmäßig gestartet werden: |
| 92 | + |
| 93 | +``` |
| 94 | +# Install udm-backup.service and timer definition file in /etc/systemd/system via: |
| 95 | +ln -s /opt/desec-tools/sync_kas_dkim.service /etc/systemd/system/sync_kas_dkim.service |
| 96 | +ln -s /opt/desec-tools/sync_kas_dkim.timer /etc/systemd/system/sync_kas_dkim.timer |
| 97 | +
|
| 98 | +# Reload systemd, enable and start the systemd timer: |
| 99 | +systemctl daemon-reload |
| 100 | +systemctl enable --now sync_kas_dkim.timer |
| 101 | +
|
| 102 | +# check status of timer |
| 103 | +systemctl status sync_kas_dkim.timer |
| 104 | +``` |
| 105 | + |
| 106 | +## Update |
| 107 | + |
| 108 | +Das Script-Sammlung kann mit folgenden Befehlen aktualisiert werden: |
| 109 | +``` |
| 110 | +cd <your_path>/desec_tools |
| 111 | +git pull origin |
| 112 | +``` |
0 commit comments