1
0

feat(radius): add password generation script

This commit is contained in:
Jannik 2022-07-25 23:02:25 +02:00
parent 29b52957db
commit 54794f2611

View File

@ -0,0 +1,76 @@
###
# Hier werden die Passwörter generiert und sie VLANs zugeordnet. Diese Datei
# kann nach `radius.bula22.de:/etc/raddb/mods-config/files/authorize` geschoben
# werden.
#
# ACHTUNG! Die Passwörter sind nicht idempotent, sondern werden neu generiert.
# Das Skript also nur ausführen, solange die User noch nicht online sind.
# Danach muss wieder manuell gefrickelt werden.
#
# Anpassbar:
# - Welcher Userprefix kommt in welches VLAN.
# - Wie viele User gehen pro Prefix online?
#
# Fragen? Fragen! DECT664 oder über Signal / Matrix / rfc1149.
###
import secrets
import string
USERS_PER_PREFIX = 20
### LEITSTELLE
# DEFAULT
# Tunnel-Private-Group-Id = "205",
# Fall-Through = Yes
#
# leitstelle01 Cleartext-Password := "oofahcul3aiV4ri8"
prefixes = [
(201, "ikt"),
(202, "buehne"),
(202, "technik"),
(203, "hospital"),
(204, "zoll"),
(205, "leitstelle"),
(206, "bll"),
(206, "finanzen"),
(208, "bayern"),
(208, "elydipark"),
(208, "hessen"),
(208, "trabantenstadt"),
(208, "waltara"),
(208, "zeche"),
(209, "infojurte"),
(210, "intfairground"),
(210, "intinfocenter"),
(211, "programmtre"),
(212, "openoffice")
]
def gen_password():
alphabet = string.ascii_letters + string.digits
return ''.join(secrets.choice(alphabet) for i in range(10))
print("DEFAULT")
print("\tTunnel-Type = \"VLAN\",")
print("\tTunnel-Medium-Type = IEEE-802,")
print("\tFall-Through = Yes")
print()
for (vlan, prefix) in prefixes:
print(f"## {prefix.upper()}")
print(f"DEFAULT")
print(f"\tTunnel-Private-Group-Id = \"{vlan}\"")
print(f"\tFall-Through = Yes")
print()
for i in range(1, USERS_PER_PREFIX + 1):
username = f"{prefix}{i:02d}"
pw = gen_password()
print(f"{username}\tCleartext-Password := \"{pw}\"")
print()