Benutzer-Werkzeuge

Webseiten-Werkzeuge


it-themen:projekt:dokumentation:ldap_freeradius_lam-testumgebung

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Ăśberarbeitung
it-themen:projekt:dokumentation:ldap_freeradius_lam-testumgebung [01.05.2025 17:01] – larsit-themen:projekt:dokumentation:ldap_freeradius_lam-testumgebung [02.05.2025 21:51] (aktuell) – lars
Zeile 1: Zeile 1:
 +[[it-themen:start|zurĂĽck]]
 # LDAP + FreeRADIUS + LAM-Testumgebung # LDAP + FreeRADIUS + LAM-Testumgebung
 ## 1. Aufbau der Testumgebung ## 1. Aufbau der Testumgebung
Zeile 11: Zeile 12:
  
 ### Softwarequellen aktualisieren ### Softwarequellen aktualisieren
-<code bash>+<code bash|bash>
 sudo apt update && sudo apt upgrade -y</code> sudo apt update && sudo apt upgrade -y</code>
 +
 ### Netplan installieren (falls nicht vorhanden) ### Netplan installieren (falls nicht vorhanden)
-sudo apt install netplan.io +<code bash|bash> 
-Netzwerkadapter anpassen und umbenennen + 
-• Debian verwendet standardmäßig "Predictable Network Interface Names". Um die Netzwerkkarten sinnvoll umzubenennen: +sudo apt install netplan.io</code> 
-• Datei /etc/systemd/network/99-custom-names.link erstellen: +### Netzwerkadapter anpassen und umbenennen 
-sudo nano /etc/systemd/network/99-custom-names.link +  Debian verwendet standardmäßig "Predictable Network Interface Names". Um die Netzwerkkarten sinnvoll umzubenennen: 
-• Beispielinhalt: +  Datei ''/etc/systemd/network/99-custom-names.link'' erstellen: 
-[Match]+<code bash|bash> 
 +sudo nano /etc/systemd/network/99-custom-names.link</code> 
 +  Beispielinhalt: 
 +<code ini|/etc/systemd/network/99-custom-names.link>[Match]
 MACAddress=AA:BB:CC:DD:EE:01 MACAddress=AA:BB:CC:DD:EE:01
  
Zeile 29: Zeile 34:
  
 [Link] [Link]
-Name=lan0 +Name=lan0</code> 
-• (MAC-Adressen der jeweiligen Netzwerkkarten anpassen!) + 
-• Danach:+  * (MAC-Adressen der jeweiligen Netzwerkkarten anpassen!) 
 +  Danach: 
 + 
 +<code bash|bash>
 sudo update-initramfs -u sudo update-initramfs -u
-sudo reboot +sudo reboot</code> 
-Netplan-Konfiguration (für 2 Netzwerkkarten auf VM1) + 
-• Datei anlegen/bearbeiten: +### Netplan-Konfiguration (fĂĽr 2 Netzwerkkarten auf VM1) 
-sudo nano /etc/netplan/01-netcfg.yaml +  Datei anlegen/bearbeiten: 
-• Beispiel für VM1 (Router):+<code bash|bash> 
 +sudo nano /etc/netplan/01-netcfg.yaml</code> 
 +  Beispiel fĂĽr VM1 (Router): 
 + 
 +<code yaml|/etc/netplan/01-netcfg.yaml>
 network: network:
   version: 2   version: 2
Zeile 46: Zeile 58:
     lan0:     lan0:
       addresses:       addresses:
-        - 192.168.100.1/24 +        - 192.168.100.1/24</code> 
-• Anwenden: +  Anwenden: 
-sudo netplan apply +<code bash|bash> 
-________________________________________ +sudo netplan apply</code> 
-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 +## 3. Installierte Software 
-• NAT mit iptables (MASQUERADE) +### VM1 (RADIUS + NAT + DHCP) 
-• Freeradius + LDAP-Modul +<code bash|bash> 
-• DHCP für das Subnetz 192.168.100.0/24 +sudo apt install isc-dhcp-server iptables-persistent freeradius freeradius-ldap net-tools netplan.io curl sudo less vim</code> 
-• Zusätzliche Tools: net-tools, vim, less, sudo, curl +  NAT mit iptables (MASQUERADE) 
-• Beispiel DHCP-Konfiguration (/etc/dhcp/dhcpd.conf):+  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''): 
 +<code conf|/etc/dhcp/dhcpd.conf>
 default-lease-time 600; default-lease-time 600;
 max-lease-time 7200; max-lease-time 7200;
Zeile 64: Zeile 80:
   option routers 192.168.100.1;   option routers 192.168.100.1;
   option domain-name-servers 192.168.100.10;   option domain-name-servers 192.168.100.10;
-} +}</code> 
-• DHCP-Interface definieren in /etc/default/isc-dhcp-server: +  DHCP-Interface definieren in ''/etc/default/isc-dhcp-server'': 
-INTERFACESv4="lan0" + 
-VM2 (LDAP-Server + Webverwaltung) +<code bash|/etc/default/isc-dhcp-server> 
-sudo apt install slapd ldap-utils ldap-account-manager net-tools netplan.io curl sudo less vim +INTERFACESv4="lan0"</code> 
-• Während der slapd-Installation: + 
-• Domäne: zkm.local +### VM2 (LDAP-Server + Webverwaltung) 
-• Admin-Password setzen (z. B. zkmadminpass) +<code bash|bash> 
-• Standardmäßig wird nur ldap:// aktiviert (kein TLS) +sudo apt install slapd ldap-utils ldap-account-manager net-tools netplan.io curl sudo less vim</code> 
-• Zusätzliche Pakete wie curl, vim, less und sudo empfohlen zur Systempflege. +  Während der slapd-Installation: 
-________________________________________ +    Domäne: ''zkm.local'' 
-4. OpenLDAP – Basisstruktur+    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 
 + 
 +<code ldif|basisstruktur.ldif>
 dn: dc=zkm,dc=local dn: dc=zkm,dc=local
 objectClass: top objectClass: top
Zeile 93: Zeile 117:
 dn: ou=groups,dc=zkm,dc=local dn: ou=groups,dc=zkm,dc=local
 objectClass: organizationalUnit objectClass: organizationalUnit
-ou: groups +ou: groups</code> 
-• Import per: + 
-sudo ldapadd -x -D "cn=admin,dc=zkm,dc=local" -W -f basisstruktur.ldif +  * Import per: 
-________________________________________ + 
-5. Beispielbenutzer +<code bash|bash> 
-• Beispielbenutzer anlegen mit Passwort-Hash:+sudo ldapadd -x -D "cn=admin,dc=zkm,dc=local" -W -f basisstruktur.ldif</code> 
 + 
 +--- 
 + 
 +## 5. Beispielbenutzer 
 + 
 +  * Beispielbenutzer anlegen mit Passwort-Hash: 
 + 
 +<code ldif|ldif>
 dn: uid=demo,ou=people,dc=zkm,dc=local dn: uid=demo,ou=people,dc=zkm,dc=local
 objectClass: inetOrgPerson objectClass: inetOrgPerson
Zeile 110: Zeile 142:
 homeDirectory: /home/demo homeDirectory: /home/demo
 loginShell: /bin/bash loginShell: /bin/bash
-userPassword: {SSHA}<gehashtes_Passwort> +userPassword: {SSHA}<gehashtes_Passwort></code> 
-• Passwort generieren mit: + 
-slappasswd +  * Passwort generieren mit: 
-________________________________________ + 
-6. FreeRADIUS + LDAP-Anbindung +<code bash|bash>slappasswd</code> 
-• Freeradius LDAP-Modul aktivieren: + 
-sudo ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/ +--- 
-• Konfiguration anpassen:+## 6. FreeRADIUS + LDAP-Anbindung 
 + 
 +  * Freeradius LDAP-Modul aktivieren: 
 + 
 +<code bash|bash> 
 +sudo ln -s /etc/freeradius/3.0/mods-available/ldap /etc/freeradius/3.0/mods-enabled/</code> 
 + 
 +  * Konfiguration anpassen: 
 + 
 +<code ruby|conf>
 server = '192.168.100.10' server = '192.168.100.10'
 identity = 'cn=radius,dc=zkm,dc=local' identity = 'cn=radius,dc=zkm,dc=local'
Zeile 129: Zeile 170:
 update { update {
   control:Password-With-Header += 'userPassword'   control:Password-With-Header += 'userPassword'
-} +}</code> 
-• Zusätzlich in /etc/freeradius/3.0/sites-enabled/default:+ 
 +  Zusätzlich in ''/etc/freeradius/3.0/sites-enabled/default'': 
 + 
 +<code ruby|conf>
 if ((ok || updated) && User-Password && !control:Auth-Type) { if ((ok || updated) && User-Password && !control:Auth-Type) {
   update {   update {
     control:Auth-Type := ldap     control:Auth-Type := ldap
   }   }
-} +}</code> 
-• Freeradius Debugmodus zum Testen: + 
-sudo freeradius -X+  * Freeradius Debugmodus zum Testen: 
 + 
 +<code bash|bash> 
 +sudo freeradius -X</code>
 ________________________________________ ________________________________________
-7. NAT und Routing (VM1) +## 7. NAT und Routing (VM1) 
-• NAT aktivieren:+ 
 +  * NAT aktivieren: 
 + 
 +<code bash|bash>
 sudo iptables -t nat -A POSTROUTING -o wan0 -j MASQUERADE sudo iptables -t nat -A POSTROUTING -o wan0 -j MASQUERADE
-sudo iptables -P FORWARD ACCEPT +sudo iptables -P FORWARD ACCEPT</code> 
-• IP-Forwarding aktivieren:+ 
 +  * IP-Forwarding aktivieren: 
 + 
 +<code bash|bash>
 echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
-sudo sysctl -p +sudo sysctl -p</code>
-• 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)+
  
 +  * iptables-Regeln dauerhaft speichern:
 +
 +<code bash|bash>
 +sudo netfilter-persistent save</code>
 +
 +---
 +
 +## 8. LDAP Account Manager (LAM)
 +
 +  * LAM installieren:
 +
 +<code bash|bash>
 +sudo apt install ldap-account-manager</code>
 +
 +  * 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//
it-themen/projekt/dokumentation/ldap_freeradius_lam-testumgebung.1746111687.txt.gz · Zuletzt geändert: von lars