Skip to content

Commit e466427

Browse files
committed
Initial version
0 parents  commit e466427

14 files changed

Lines changed: 1697 additions & 0 deletions

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
_archive
2+
_test
3+
.idea
4+
*.conf
5+
logfile
6+
*.crt
7+
*.log
8+
*.todo
9+
config.php

LICENSE

Lines changed: 674 additions & 0 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
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

Comments
 (0)