58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
# STRATO-DNS-MCP – Read-only-Prototyp
|
||
|
||
Dieser Prototyp prüft den undokumentierten HTTP-Leseweg des STRATO-
|
||
Kundenbereichs. Er kann sich anmelden und die CNAME-Einträge genau einer
|
||
konfigurierten DNS-Zone auflisten.
|
||
|
||
**Diese Version kann keine DNS-Einträge erstellen, ändern oder löschen.** Im
|
||
Quellcode existiert absichtlich keine Speichermethode.
|
||
|
||
## Technische Grundlage
|
||
|
||
STRATO dokumentiert für normale Hosting-Domains nur die Verwaltung im
|
||
Kunden-Login. Der öffentliche Certbot-Plugin
|
||
[`FlixMa/certbot-dns-strato`](https://github.com/FlixMa/certbot-dns-strato)
|
||
zeigt jedoch einen funktionsfähigen HTTP-Ablauf über
|
||
`https://www.strato.de/apps/CustomerService`. Der hier verwendete Leseweg wurde
|
||
ohne Certbot-Abhängigkeit neu und deutlich defensiver implementiert.
|
||
|
||
Referenzstand der Untersuchung:
|
||
`FlixMa/certbot-dns-strato@67df6dcfc3ef0035ec5aa5daf7c5b0bd8310d7fb`.
|
||
|
||
## Lokaler Test – noch nicht produktiv installieren
|
||
|
||
1. `strato.env.example` außerhalb von Git nach `strato.env` kopieren.
|
||
2. Dort Benutzername, Passwort und DNS-Zone eintragen.
|
||
3. Falls STRATO TOTP verlangt, zusätzlich TOTP-Secret und den bei STRATO
|
||
angezeigten Gerätenamen eintragen.
|
||
4. Image bauen und zunächst ausschließlich `strato_connection_status` sowie
|
||
`strato_list_cnames` testen.
|
||
|
||
Das Docker-Image wird direkt aus diesem Repository gebaut:
|
||
|
||
```sh
|
||
docker build -t strato-dns-mcp:readonly .
|
||
```
|
||
|
||
Die Offline-Tests benötigen keine Zugangsdaten und kontaktieren STRATO nicht:
|
||
|
||
```sh
|
||
python3 -m unittest -v tests/test_strato_readonly.py
|
||
```
|
||
|
||
Zugangsdaten, TOTP-Werte, Cookies und STRATO-Session-ID werden weder geloggt
|
||
noch als Toolausgabe zurückgegeben. Fehlermeldungen enthalten nur eine kurze
|
||
Fehlerklasse.
|
||
|
||
## Noch bewusst nicht enthalten
|
||
|
||
- kein Compose-Deployment
|
||
- keine Unraid-XML
|
||
- keine Hermes-Registrierung
|
||
- keine schreibenden Werkzeuge
|
||
- keine produktive Installation
|
||
|
||
Diese Teile kommen erst, wenn der Read-only-Test gegen das aktuelle STRATO-
|
||
Konto funktioniert. Falls sich der Login oder das HTML geändert hat, wird nur
|
||
der Parser angepasst; es findet kein Schreibversuch statt.
|