[[it-themen:start|zurück]] # LDAP + FreeRADIUS + LAM-Testumgebung ## 1. Aufbau der Testumgebung ^Komponente ^Funktion ^IP-Adresse^ |VM1 |DHCP, Router, FreeRADIUS |192.168.100.1 | |VM2 |OpenLDAP + LAM |192.168.100.10 | --- ## 2. Grundinstallation der Server ### Voraussetzungen * Debian 12 (Bookworm) Minimalinstallation pro VM * Netzwerkverbindung zur Kommunikation zwischen den VMs ### Softwarequellen aktualisieren sudo apt update && sudo apt upgrade -y ### Netplan installieren (falls nicht vorhanden) sudo apt install netplan.io ### Netzwerkadapter anpassen und umbenennen * Debian verwendet standardmäßig "Predictable Network Interface Names". Um die Netzwerkkarten sinnvoll umzubenennen: * Datei ''/etc/systemd/network/99-custom-names.link'' erstellen: sudo nano /etc/systemd/network/99-custom-names.link * Beispielinhalt: [Match] MACAddress=AA:BB:CC:DD:EE:01 [Link] Name=wan0 [Match] MACAddress=AA:BB:CC:DD:EE:02 [Link] Name=lan0 * (MAC-Adressen der jeweiligen Netzwerkkarten anpassen!) * Danach: sudo update-initramfs -u sudo reboot ### Netplan-Konfiguration (für 2 Netzwerkkarten auf VM1) * Datei anlegen/bearbeiten: sudo nano /etc/netplan/01-netcfg.yaml * Beispiel für VM1 (Router): network: version: 2 renderer: networkd ethernets: wan0: dhcp4: true lan0: addresses: - 192.168.100.1/24 * Anwenden: sudo netplan apply --- ## 3. Installierte Software ### VM1 (RADIUS + NAT + DHCP) sudo apt install isc-dhcp-server iptables-persistent freeradius freeradius-ldap net-tools netplan.io curl sudo less vim * NAT mit iptables (MASQUERADE) * Freeradius + LDAP-Modul * DHCP für das Subnetz 192.168.100.0/24 * Zusätzliche Tools: ''net-tools, vim, less, sudo, curl'' * Beispiel DHCP-Konfiguration (''/etc/dhcp/dhcpd.conf''): default-lease-time 600; max-lease-time 7200; subnet 192.168.100.0 netmask 255.255.255.0 { range 192.168.100.100 192.168.100.200; option routers 192.168.100.1; option domain-name-servers 192.168.100.10; } * DHCP-Interface definieren in ''/etc/default/isc-dhcp-server'': INTERFACESv4="lan0" ### VM2 (LDAP-Server + Webverwaltung) sudo apt install slapd ldap-utils ldap-account-manager net-tools netplan.io curl sudo less vim * Während der slapd-Installation: * Domäne: ''zkm.local'' * Admin-Password setzen (z. B. ''zkmadminpass'') * Standardmäßig wird nur ldap:/ / aktiviert (kein TLS) * Zusätzliche Pakete wie curl, vim, less und sudo empfohlen zur Systempflege. --- ## 4. OpenLDAP – Basisstruktur dn: dc=zkm,dc=local objectClass: top objectClass: dcObject objectClass: organization o: ZKM dc: zkm dn: cn=admin,dc=zkm,dc=local objectClass: organizationalRole cn: admin dn: ou=people,dc=zkm,dc=local objectClass: organizationalUnit ou: people dn: ou=groups,dc=zkm,dc=local objectClass: organizationalUnit ou: groups * Import per: sudo ldapadd -x -D "cn=admin,dc=zkm,dc=local" -W -f basisstruktur.ldif --- ## 5. Beispielbenutzer * Beispielbenutzer anlegen mit Passwort-Hash: dn: uid=demo,ou=people,dc=zkm,dc=local objectClass: inetOrgPerson objectClass: posixAccount objectClass: shadowAccount cn: Demo Benutzer sn: Benutzer uid: demo uidNumber: 10001 gidNumber: 10001 homeDirectory: /home/demo loginShell: /bin/bash userPassword: {SSHA} * Passwort generieren mit: slappasswd --- ## 6. FreeRADIUS + LDAP-Anbindung * Freeradius LDAP-Modul aktivieren: sudo ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ * Konfiguration anpassen: server = '192.168.100.10' identity = 'cn=radius,dc=zkm,dc=local' password = 'radiuspass' base_dn = 'dc=zkm,dc=local' user { base_dn = "${..base_dn}" filter = "(uid=%{%{Stripped-User-Name}:-%{User-Name}})" scope = 'sub' } update { control:Password-With-Header += 'userPassword' } * Zusätzlich in ''/etc/freeradius/3.0/sites-enabled/default'': if ((ok || updated) && User-Password && !control:Auth-Type) { update { control:Auth-Type := ldap } } * Freeradius Debugmodus zum Testen: sudo freeradius -X ________________________________________ ## 7. NAT und Routing (VM1) * NAT aktivieren: sudo iptables -t nat -A POSTROUTING -o wan0 -j MASQUERADE sudo iptables -P FORWARD ACCEPT * IP-Forwarding aktivieren: echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf sudo sysctl -p * iptables-Regeln dauerhaft speichern: sudo netfilter-persistent save --- ## 8. LDAP Account Manager (LAM) * LAM installieren: sudo apt install ldap-account-manager * Zugriff via Browser: * http://192.168.100.10/lam * Login-Einstellungen: * Login-Methode: Direkter DN * Benutzername: cn=admin,dc=zkm,dc=local * Aktivierte Module: * inetOrgPerson * posixAccount * shadowAccount * posixGroup * Standard-Base-DNs: * Benutzer: ou=people,dc=zkm,dc=local * Gruppen: ou=groups,dc=zkm,dc=local --- ## 9. Fallstricke & Fehlerbehebung ^Fehler ^Ursache ^Lösung^ |Benutzer nicht gefunden |falscher Login-Filter |Login-Methode auf "Direkter DN" ändern| |Kein Internet auf VM2 |NAT nicht aktiv |iptables + IP-Forwarding überprüfen| |RADIUS kein Passwort |Attribut nicht lesbar |userPassword lesbar machen, Hash prüfen| |slapd lauscht nur lokal |SLAPD_SERVICES falsch |in /etc/default/slapd prüfen| |LAM findet DN nicht |falscher Filter oder OU fehlt |Basisstruktur kontrollieren| --- ## 10. Best Practices * Immer sichere {SSHA} Passwörter verwenden * UID/GID sorgfältig verwalten und dokumentieren * Strukturierte OUs anlegen (people, groups) * Freeradius im Debugmodus testen (freeradius -X) * Keine Klartext-Passwörter verwenden --- ## 11. Status ✅ Authentifizierung von LDAP-Usern über FreeRADIUS\\ ✅ NAT und Routing aktiv auf VM1\\ ✅ Benutzerverwaltung über LAM funktionsfähig\\ --- * (Stand: April 2025) {{avatar>lars|Lars.Weiss@gmail.com?l|Lars Weiß}} //[[Lars.Weiss@gmail.com|Lars Weiß]] 2025/05/01 17:31//