62 lines
2.0 KiB
Bash
Executable File
62 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Funktion zum Generieren zufälliger Passwörter
|
|
generate_password() {
|
|
local length=$1
|
|
# Verwende /dev/urandom für bessere Zufälligkeit, tr für die Auswahl der Zeichen
|
|
# Wir nutzen Buchstaben und Zahlen, um Probleme mit Sonderzeichen zu vermeiden
|
|
cat /dev/urandom | tr -dc 'a-zA-Z0-9' | head -c $length
|
|
}
|
|
|
|
# Funktion zum Generieren eines bcrypt Salt für PowerDNS Admin
|
|
generate_salt() {
|
|
# Prüfen, ob Python und bcrypt installiert sind
|
|
if command -v python3 >/dev/null 2>&1 && python3 -c "import bcrypt" >/dev/null 2>&1; then
|
|
python3 -c 'import bcrypt; print(bcrypt.gensalt().decode("utf-8"));'
|
|
else
|
|
echo "WARNUNG: Python3 oder bcrypt nicht gefunden. Verwende Standard-Salt."
|
|
echo '$2b$12$xZKJJFAMZ41EFJptSMbZv.'
|
|
fi
|
|
}
|
|
|
|
# Zielverzeichnis für die .env-Datei
|
|
ENV_FILE=".env"
|
|
|
|
# Generiere Passwörter (12 Zeichen)
|
|
PDNS_DB_PASSWORD=$(generate_password 12)
|
|
PDNS_API_KEY=$(generate_password 16)
|
|
PDNS_WEBSERVER_PASSWORD=$(generate_password 12)
|
|
PDNS_ADMIN_DB_PASSWORD=$(generate_password 12)
|
|
|
|
# Generiere Salt für PowerDNS Admin
|
|
PDNS_ADMIN_SALT=$(generate_salt)
|
|
|
|
# Erstelle oder überschreibe die .env-Datei
|
|
cat > $ENV_FILE << EOF
|
|
# PowerDNS Server Konfiguration
|
|
PDNS_PORT=53
|
|
PDNS_DB_NAME=powerdns
|
|
PDNS_DB_PASSWORD=${PDNS_DB_PASSWORD}
|
|
PDNS_API_KEY=${PDNS_API_KEY}
|
|
PDNS_WEBSERVER_PORT=8081
|
|
PDNS_WEBSERVER_PASSWORD=${PDNS_WEBSERVER_PASSWORD}
|
|
PDNS_DEFAULT_TTL=1500
|
|
|
|
# PowerDNS Admin Konfiguration
|
|
PDNS_ADMIN_PORT=8080
|
|
PDNS_ADMIN_DB_NAME=powerdnsadmin
|
|
PDNS_ADMIN_DB_PASSWORD=${PDNS_ADMIN_DB_PASSWORD}
|
|
PDNS_ADMIN_SALT=${PDNS_ADMIN_SALT}
|
|
PDNS_VERSION="4.9"
|
|
EOF
|
|
|
|
# Ausgabe mit generierten Werten
|
|
echo "Die .env-Datei wurde mit folgenden zufälligen Passwörtern erstellt:"
|
|
echo "PDNS_DB_PASSWORD: $PDNS_DB_PASSWORD"
|
|
echo "PDNS_API_KEY: $PDNS_API_KEY"
|
|
echo "PDNS_WEBSERVER_PASSWORD: $PDNS_WEBSERVER_PASSWORD"
|
|
echo "PDNS_ADMIN_DB_PASSWORD: $PDNS_ADMIN_DB_PASSWORD"
|
|
echo "PDNS_ADMIN_SALT: $PDNS_ADMIN_SALT"
|
|
echo "PDNS_VERSION":"4.9"
|
|
echo ""
|
|
echo "Die Datei wurde als $ENV_FILE gespeichert. Bitte bewahren Sie diese Passwörter sicher auf!" |