Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
centos:ldap_c7:clientauth [20.07.2015 15:23. ] – [Installation] djangocentos:ldap_c7:clientauth [22.07.2019 15:03. ] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-====== Authentification auf Userebene und Webseiten unter CentOS 7.x ======+====== Authentification auf Userebene und Webseiten gegen OpenLDAP unter CentOS 7.x ======
 {{:centos:ldap-logo.png?nolink&167 |OpenLDAP Logo}} {{:centos:ldap-logo.png?nolink&167 |OpenLDAP Logo}}
 Natürlich wollen wir bei der Authentifikation unserer Cleints auf unseren zentralen OpenLDAP-Verzeichnisdienst zurückgreifen. Nachfolgend werden wir auf einige Beispiele eingehen. Natürlich wollen wir bei der Authentifikation unserer Cleints auf unseren zentralen OpenLDAP-Verzeichnisdienst zurückgreifen. Nachfolgend werden wir auf einige Beispiele eingehen.
Zeile 76: Zeile 76:
  
 ==== Installation ==== ==== Installation ====
 +Als erstes installieren wir uns die benötigten Pakete, sofern diese nicht schon bei der initialen Installation unseres **CentOS 7**-Clients erfolgt ist.
 +   # yum install nscd nss-pam-ldapd authconfig -y
  
-   # yum install nscd nss-pam-ldapd -y 
  
 +==== Paketinhalte ====
 +Welche Pfade angelegt und welche Dateien bei der Installation der RPM-Pakete ins System kopiert wurden, sehen wir uns bei Bedarf und Interesse mit Hilfe des Befehls **rpm** und der passenden Option **//-qil//** an.
 +
 +=== nscd ===
    # rpm -qil nscd    # rpm -qil nscd
 <code>Name        : nscd <code>Name        : nscd
Zeile 119: Zeile 124:
 /var/run/nscd/socket</code> /var/run/nscd/socket</code>
  
 +=== nss-pam-ldapd ===
    # rpm -qil nss-pam-ldapd    # rpm -qil nss-pam-ldapd
 <code>Name        : nss-pam-ldapd <code>Name        : nss-pam-ldapd
Zeile 161: Zeile 167:
 /var/run/nslcd</code> /var/run/nslcd</code>
  
 +=== authconfig ===
 +   # rpm -qil authconfig
 +<code>Name        : authconfig               
 +Version     : 6.2.8                    
 +Release     : 9.el7                    
 +Architecture: x86_64                   
 +Install Date: Do 30 Apr 2015 22:33:35 CEST
 +Group       : System Environment/Base     
 +Size        : 2215055                     
 +License     : GPLv2+                      
 +Signature   : RSA/SHA256, Sa 14 Mär 2015 08:37:03 CET, Key ID 24c6a8a7f4a80eb5
 +Source RPM  : authconfig-6.2.8-9.el7.src.rpm                                  
 +Build Date  : Do 05 Mär 2015 23:01:30 CET                                     
 +Build Host  : worker1.bsys.centos.org                                         
 +Relocations : (not relocatable)                                               
 +Packager    : CentOS BuildSystem <http://bugs.centos.org>                     
 +Vendor      : CentOS                                                          
 +URL         : https://fedorahosted.org/authconfig                             
 +Summary     : Command line tool for setting up authentication from network services
 +Description :                                                                      
 +Authconfig is a command line utility which can configure a workstation             
 +to use shadow (more secure) passwords.  Authconfig can also configure a            
 +system to be a client for certain networked user information and                   
 +authentication schemes.                                                            
 +/etc/pam.d/fingerprint-auth-ac                                                     
 +/etc/pam.d/password-auth-ac                                                        
 +/etc/pam.d/postlogin-ac                                                            
 +/etc/pam.d/smartcard-auth-ac                                                       
 +/etc/pam.d/system-auth-ac                                                          
 +/etc/sysconfig/authconfig                                                          
 +/usr/lib64/python2.7/site-packages/acutilmodule.so                                 
 +/usr/sbin/authconfig                                                               
 +/usr/sbin/authconfig-tui                                                           
 +/usr/sbin/cacertdir_rehash                                                         
 +/usr/share/authconfig                                                              
 +/usr/share/authconfig/authconfig-tui.py                                            
 +/usr/share/authconfig/authconfig-tui.pyc                                           
 +/usr/share/authconfig/authconfig-tui.pyo                                           
 +/usr/share/authconfig/authconfig.py                                                
 +/usr/share/authconfig/authconfig.pyc                                               
 +/usr/share/authconfig/authconfig.pyo                                               
 +/usr/share/authconfig/authinfo.py                                                  
 +/usr/share/authconfig/authinfo.pyc                                                 
 +/usr/share/authconfig/authinfo.pyo                                                 
 +/usr/share/authconfig/dnsclient.py                                                 
 +/usr/share/authconfig/dnsclient.pyc                                                
 +/usr/share/authconfig/dnsclient.pyo                                                
 +/usr/share/authconfig/msgarea.py                                                   
 +/usr/share/authconfig/msgarea.pyc                                                  
 +/usr/share/authconfig/msgarea.pyo                                                  
 +/usr/share/authconfig/shvfile.py                                                   
 +/usr/share/authconfig/shvfile.pyc                                                  
 +/usr/share/authconfig/shvfile.pyo                                                  
 +/usr/share/doc/authconfig-6.2.8                                                    
 +/usr/share/doc/authconfig-6.2.8/COPYING                                            
 +/usr/share/doc/authconfig-6.2.8/NOTES                                              
 +/usr/share/doc/authconfig-6.2.8/README.samba3                                      
 +/usr/share/doc/authconfig-6.2.8/TODO                                               
 +/usr/share/locale/ar/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/as/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/ast/LC_MESSAGES/authconfig.mo                                    
 +/usr/share/locale/bal/LC_MESSAGES/authconfig.mo                                    
 +/usr/share/locale/bg/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/bn/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/bn_IN/LC_MESSAGES/authconfig.mo                                  
 +/usr/share/locale/bs/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/ca/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/cs/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/cy/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/da/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/de/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/el/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/en_GB/LC_MESSAGES/authconfig.mo                                  
 +/usr/share/locale/es/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/et/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/eu/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/fa/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/fi/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/fr/LC_MESSAGES/authconfig.mo                                     
 +/usr/share/locale/gl/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/gu/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/he/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/hi/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/hr/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/hu/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/hy/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/id/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/is/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/it/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ja/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ka/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/kn/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ko/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ku/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/lo/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/lv/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/mai/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/mk/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ml/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/mr/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ms/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/my/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/nb/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/nds/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/nl/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/nn/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/or/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/pa/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/pl/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/pt/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/pt_BR/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ro/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ru/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/si/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sk/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sl/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sq/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sr/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sr@latin/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/sv/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ta/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/te/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/tg/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/tr/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/uk/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/ur/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/vi/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/zh_CN/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/zh_HK/LC_MESSAGES/authconfig.mo
 +/usr/share/locale/zh_TW/LC_MESSAGES/authconfig.mo
 +/usr/share/man/man5/fingerprint-auth-ac.5.gz
 +/usr/share/man/man5/password-auth-ac.5.gz
 +/usr/share/man/man5/postlogin-ac.5.gz
 +/usr/share/man/man5/smartcard-auth-ac.5.gz
 +/usr/share/man/man5/system-auth-ac.5.gz
 +/usr/share/man/man8/authconfig-tui.8.gz
 +/usr/share/man/man8/authconfig.8.gz
 +/usr/share/man/man8/cacertdir_rehash.8.gz
 +/var/lib/authconfig</code>
 +
 +
 +==== Dokumentation ====
 +Bei der nachfolgenden Konfiguration der Authentifikationsmechanismen greifen wir vor allem auf den Befehl **authconfig** zurück. Ein Blick in dessen Man-Page sollte hier also von großer Hilfe sein.
    # man authconfig    # man authconfig
 +
 <code>AUTHCONFIG(8)                      System Manager's Manual                      AUTHCONFIG(8) <code>AUTHCONFIG(8)                      System Manager's Manual                      AUTHCONFIG(8)
  
Zeile 323: Zeile 473:
 Red Hat, Inc.                            22 July 2011                           AUTHCONFIG(8)</code> Red Hat, Inc.                            22 July 2011                           AUTHCONFIG(8)</code>
  
-   # authconfig --enableldap \ +Mindestens genau so interessant, vor allem wegen der vielen möglichen Optionen(!), ist die Hilfefunktion des Befehls **authconfig**, die wir wie folgt erreichen
-       --enableldapauth \ +   # authconfig --help
-       --ldapserver=dlp.nausch.org \ +
-       --ldapbasedn="dc=nausch,dc=org"+
-       --enablemkhomedir \ +
-       --update+
  
 +<code>Usage: Aufruf: authconfig [Optionen] {--update|--updateall|--test|--probe|--restorebackup <name>|--savebackup <name>|--restorelastbackup}
 +
 +Options:
 +    -h, --help              Diesen Hilfetext anzeigen und beenden
 +  --enableshadow, --useshadow
 +                        Shadow-Passwörter standardmäßig aktivieren
 +    --disableshadow         Shadow-Passwörter standardmäßig deaktivieren
 +  --enablemd5, --usemd5
 +                        MD5-Passwörter standardmäßig aktivieren
 +    --disablemd5            MD5-Passwörter standardmäßig deaktivieren
 +  --passalgo=<descrypt|bigcrypt|md5|sha256|sha512>
 +                        hash/crypt-Algorithmus für neue Passwörter
 +    --enablenis             NIS für Benutzerinformationen standardmäßig aktivieren
 +    --disablenis            NIS für Benutzerinformationen standardmäßig deaktivieren
 +    --nisdomain=<Domain>    Standard-NIS-Domain
 +    --nisserver=<Server>    Standard-NIS-Server
 +    --enableldap            LDAP für Benutzerinformationen standardmäßig aktivieren
 +    --disableldap           LDAP für Benutzerinformationen standardmäßig deaktivieren
 +    --enableldapauth        LDAP zur Authentifizierung standardmäßig aktivieren
 +    --disableldapauth       LDAP zur Authentifizierung standardmäßig deaktivieren
 +  --ldapserver=<Server>
 +                        Standard LDAP-Server-Hostnamen oder URI
 +    --ldapbasedn=<dn>       Standard LDAP Basis-DN
 +  --enableldaptls, --enableldapstarttls
 +                        Verwendung von TLS mit LDAP (RFC-2830) aktivieren
 +  --disableldaptls, --disableldapstarttls
 +                        Verwendung von TLS mit LDAP (RFC-2830) deaktivieren
 +    --enablerfc2307bis      Verwendung des RFC-2307bis-Schemas für Suchen nach Benutzerinformation via LDAP aktivieren
 +    --disablerfc2307bis     Verwendung des RFC-2307bis-Schemas für Suchen nach Benutzerinformation via LDAP deaktivieren
 +  --ldaploadcacert=<URL>
 +                        CA-Zertifikat von URL laden
 +    --enablesmartcard       Smartcard-Authentifizierung standardmäßig aktivieren
 +    --disablesmartcard      Smartcard-Authentifizierung standardmäßig deaktivieren
 +  --enablerequiresmartcard
 +                        Smartcard-Authentifizierung standardmäßig voraussetzen
 +  --disablerequiresmartcard
 +                        Smartcard-Authentifizierung nicht standardmäßig voraussetzen
 +  --smartcardmodule=<Modul>
 +                        Standardmäßig zu verwendendes Smartcard-Modul
 +  --smartcardaction=<0=Sperren|1=Ignorieren>
 +                        Beim Entfernen einer Smartcard folgende Aktion ausführen
 +    --enablefingerprint     Fingerabdruck-Authentifizierung mit Fingerabdruck-Leser standardmäßig aktivieren
 +    --disablefingerprint    Fingerabdruck-Authentifizierung mit Fingerabdruck-Leser standardmäßig deaktivieren
 +    --enableecryptfs        Automatisches ecryptfs für Benutzer aktivieren
 +    --disableecryptfs       Automatisches ecryptfs für Benutzer deaktivieren
 +    --enablekrb5            Kerberos-Authentifizierung standardmäßig aktivieren
 +    --disablekrb5           Kerberos-Authentifizierung standardmäßig deaktivieren
 +    --krb5kdc=<Server>      Standard-Kerberos-KDC
 +  --krb5adminserver=<Server>
 +                        Standard-Kerberos-Admin-Server
 +  --krb5realm=<Bereich>
 +                        Standard-Kerberos-Bereich
 +    --enablekrb5kdcdns      Verwendung von DNS für Ermittlung von Kerberos-KDCs aktivieren
 +    --disablekrb5kdcdns     Verwendung von DNS für Ermittlung von Kerberos-KDCs deaktivieren
 +    --enablekrb5realmdns    Verwendung von DNS für die Ermittlung von Kerberos-Bereichen aktivieren
 +  --disablekrb5realmdns
 +                        Verwendung von DNS für die Ermittlung von Kerberos-Bereichen deaktivieren
 +    --enablewinbind         Winbind für die Benutzerinformationen standardmäßig aktivieren
 +    --disablewinbind        Winbind für die Benutzerinformationen standardmäßig deaktivieren
 +    --enablewinbindauth     Winbind für die Authentifizierung standardmäßig aktivieren
 +    --disablewinbindauth    Winbind für die Authentifizierung standardmäßig deaktivieren
 +  --smbsecurity=<user|server|domain|ads>
 +                        Von Samba und Winbind zu verwendender Sicherheitsmodus
 +    --smbrealm=<Bereich>    Standard-Bereich für Samba und Winbind, wenn security=ads
 +  --smbservers=<Server>
 +                        Namen der Server, gegen die authentifiziert wird
 +  --smbworkgroup=<Arbeitsgruppe>
 +                        Arbeitsgruppen-Authentifizierungsserver sind in
 +  --smbidmaprange=<niedrigste-höchste>, --smbidmapuid=<niedrigste-höchste>, --smbidmapgid=<niedrigste-höchste>
 +                        uid-Bereich, den Winbind Domain- oder ADS-Benutzern zuteilen wird
 +  --winbindseparator=<\>
 +                        Das Zeichen, das zur Trennung von Domain und Benutzer in von Winbind erzeugten Benutzernamen verwendet wird, sofern winbindusedefaultdomain nicht aktiviert ist
 +  --winbindtemplatehomedir=</home/%D/%U>
 +                        Der Ordner, den von Winbind erzeugte Benutzer als persönlichen Ordner haben
 +  --winbindtemplateprimarygroup=<nobody>
 +                        Die Gruppe, die von Winbind erzeugte Benutzer als primäre Gruppe haben
 +  --winbindtemplateshell=</bin/false>
 +                        Die Shell, die von Winbind erzeugte Benutzer als Login-Shell haben
 +  --enablewinbindusedefaultdomain
 +                        Winbind soll annehmen, dass Benutzer ohne Domain im Benutzernamen Domain-Benutzer sind
 +  --disablewinbindusedefaultdomain
 +                        Winbind soll annehmen, dass Benutzer, ohne Domain im Benutzernamen keine Domain-Benutzer sind
 +  --enablewinbindoffline
 +                        Konfiguriert Winbind, um Offline-Anmeldung zu ermöglichen
 +  --disablewinbindoffline
 +                        Konfiguriert Winbind, um Offline-Anmeldung zu verhindern
 +    --enablewinbindkrb5     winbind wird Kerberos 5 zur Legitimation verwenden
 +    --disablewinbindkrb5    winbind wird die Standard Legitimations-Methode verwenden
 +  --winbindjoin=<Administrator>
 +                        Jetzt der Winbind-Domäne oder dem ADS-Bereich mit diesem Administrator beitreten
 +    --enableipav2           Aktiviere IPAv2 für Benutzerinformationen und Authentifizierung standardmässig
 +    --disableipav2          Deaktiviere IPAv2 für Benutzerinformationen und Authentifizierung standardmässig
 +  --ipav2domain=<Domain>
 +                        Die IPAv2 Domäne, bei der das System enthalten sein soll
 +  --ipav2realm=<Bereich>
 +                        Der Bereich für die IPAv2-Domäne
 +  --ipav2server=<Server>
 +                        Server der IPAv2 Domäne
 +    --enableipav2nontp      NTP für die IPAv2-Domain nicht einrichten
 +    --disableipav2nontp     NTP für die IPAv2-Domain einrichten (Standard)
 +  --ipav2join=<account>
 +                        Mit diesem Konto der IPAv2-Domäne beitreten
 +    --enablewins            WINS zur Auflösung von Hostnamen aktivieren
 +    --disablewins           WINS zur Auflösung von Hostnamen deaktivieren
 +    --enablepreferdns       DNS über WINS oder NIS zur Hostnamen-Auflösung bevorzugen
 +    --disablepreferdns      DNS über WINS oder NIS zur Hostnamen-Auflösung nicht bevorzugen
 +    --enablehesiod          Hesiod für die Benutzerinformationen standardmäßig aktivieren
 +    --disablehesiod         Hesiod für die Benutzerinformationen standardmäßig deaktivieren
 +    --hesiodlhs=<lhs>       Standard-Hesiod-LHS
 +    --hesiodrhs=<rhs>       Standard-Hesiod-RHS
 +    --enablesssd            SSSD für Benutzerinformationen als Vorgabe mit manuell verwalteter Konfiguration aktivieren
 +    --disablesssd           SSSD für Benutzerinformationen als Vorgabe deaktivieren (wird noch für unterstützte Konfigurationen verwendet)
 +    --enablesssdauth        SSSD für Authentifizierung als Vorgabe mit manuell verwalteter Konfiguration aktivieren
 +    --disablesssdauth       SSSD für Authentifizierung als Vorgabe deaktivieren (wird noch für unterstützte Konfigurationen verwendet)
 +    --enableforcelegacy     SSSD ausdrücklich nie verwenden, auch nicht für unterstützte Konfigurationen
 +    --disableforcelegacy    SSSD unbedingt nur benutzen, wenn es die Konfiguration unterstützt
 +    --enablecachecreds      Zwischenspeicherung von Benutzerinformation in SSSD standardmäßig aktivieren
 +    --disablecachecreds     Zwischenspeicherung von Benutzerinformation in SSSD standardmäßig deaktivieren
 +    --enablecache           Zwischenspeicherung von Benutzerinformation standardmäßig aktivieren (bei der Verwendung von SSSD automatisch deaktiviert)
 +    --disablecache          Zwischenspeicherung von Benutzerinformation standardmäßig deaktivieren
 +    --enablelocauthorize    Lokale Autorisierung ist ausreichend für lokale Benutzer
 +  --disablelocauthorize
 +                        Lokale Benutzer auch über Fernzugriff autorisieren
 +    --enablepamaccess       access.conf während der Autorisierung des Benutzerkontos überprüfen
 +    --disablepamaccess      access.conf während der Autorisierung des Benutzerkontos nicht überprüfen
 +    --enablesysnetauth      Systembenutzer über Netzwerkdienste authentifizieren
 +    --disablesysnetauth     Systembenutzer nur über lokale Dateien authentifizieren
 +    --enablemkhomedir       Persönliche Benutzerordner bei der ersten Anmeldung erzeugen
 +    --disablemkhomedir      Keine persönlichen Benutzerordner bei der ersten Anmeldung erzeugen
 +  --passminlen=<Nummer>
 +                        Minimale Passwortlänge
 +  --passminclass=<Nummer>
 +                        Mindestanzahl von Charakter-Klassen in einem Kennwort
 +  --passmaxrepeat=<Nummer>
 +                        Maximalanzahl gleicher Zeichen in einem Passwort
 +  --passmaxclassrepeat=<Nummer>
 +                        Maximale Anzahl von aufeinanderfolgenden Zeichen derselben Klasse in einem Kennwort
 +    --enablereqlower        Erzwinge mindestens einen Kleinbuchstaben im Passwort
 +    --disablereqlower       Benötie keine Kleinbuchstaben im Passwort
 +    --enablerequpper        Erzwinge mindestens einen Grossbuchstaben im Passwort
 +    --disablerequpper       Keine Grossbuchstaben in einem Kennwort verlangen
 +    --enablereqdigit        Erzwinge mindestens eine Zahl im Passwort
 +    --disablereqdigit       Benötige keine Zahlen im Passwort
 +    --enablereqother        Mindestens ein anderes Zeichen in einem Passwort verlangen
 +    --disablereqother       Keine anderen Zeichen in einem Kennwort verlangen
 +    --nostart               portmap, ypbind und nscd nicht starten/anhalten
 +    --test                  Konfigurationsdateien nicht aktualisieren, stattdessen nur die neuen Einstellungen ausgeben
 +  --update, --kickstart
 +                        Im Gegensatz zu --test die Konfigurationsdateien mit geänderten Einstellungen aktualisieren
 +    --updateall             Alle Konfigurationsdateien aktualisieren
 +    --probe                 Im Netzwerk nach Standards suchen und diese ausgeben
 +    --savebackup=<Name>     Eine Sicherung aller Konfigurationsdateien speichern
 +  --restorebackup=<Name>
 +                        Eine Sicherung der Konfigurationsdateien wiederherstellen
 +    --restorelastbackup     Die vor der letzten Konfigurationsänderung gesicherten Konfigurationsdateien wiederherstellen</code>
 +
 +==== Konfiguration ====
 +=== authconfig ===
 +
 +Die Konfiguration unseres Clients nehmen wir am einfachsten mit Hilfe des Programmes **//authconfig//** aus dem RPM-Paket **authconfig** vor. Hierzu rufen wir **authconfig** mit den nötigen Optionen für unsere (Test-)Umgebung auf. Eine ausführliche Beschreibung der Optionen erhält man, wie schon erwähnt, über die Manpage von **authconfig** oder beim Aufruf der Option //--help//
 +
 +
 +  * **disablesssd** SSSD für Benutzerinformationen als Vorgabe deaktivieren
 +  * **disablesssdauth** SSD für Authentifizierung als Vorgabe deaktivieren
 +  * **disablemd5** MD5 Passworter abschalten
 +  * **passalgo** Definition des Passworthash-Algoritmuses
 +  * **enablemkhomedir** Homedirectory beim ersten Login eines neuen Users automatisch anlegen
 +  * **enableldap** LDAP User Informationen aktivieren
 +  * **enableldapauth** LDAP Authentifizierung aktivieren
 +  * **ldapserver** LDAP Servername oder URI Definition
 +  * **ldapbasedn** LDAP Basde DN Definition
 +  * **enableldaptls** Verwendung von TLS mit LDAP (RFC-2830) über Port 636 verwenden
 +  * **enableldapstarttls** Verwendung von StartTLS mit LDAP über Port 389 verwenden
 +  * **update** Update der Konfigurationsdateien mit den gesetzten Werten.
 +
 +Wir Konfigurieren nun also unsere LDAP-Client-Authentifizierung wie folgt.
 +   # authconfig --disablesssd \
 +                --disablesssdauth \
 +                --disablemd5 \
 +                --passalgo=sha256 \
 +                --enablemkhomedir \
 +                --enableldap \
 +                --enableldapauth \
 +                --ldapserver="ldap://openldap.dmz.nausch.org" \
 +                --ldapbasedn="dc=nausch,dc=org" \
 +                --enableldaptls \
 +                --enableldapstarttls \
 +                --update
 +
 +Die einzelnen Konfigurationsdateien, die mit dem vorgenannten Programmaufruf angepasst wurden, werden wir uns im Detail betrachten, ggf. anpassen und mit Bearbeitungsvermerken versehen, damit wir später noch nachvollziehen können, welche Änderungen im Detail notwendig waren, damit die LDAPs Client Authentifizierung aktiviert werden konnte.
 +
 +Zur Dokumentation und ggf. spätere weitere Dokumentationsschritte versehen wir am Besten optional alle Änderungen mit einem Kommentar, ala: ''# Django : Datum (YYY-MM-DD) [optionaler Grund]''.
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +
 +=== nslcd.conf ===
 +Die erste Datei, die wir uns nun genauer ansehen, ist die Konfigurationsdatei //**/etc/nslcd.conf**//.
    # vim /etc/nslcd.conf    # vim /etc/nslcd.conf
 +
 <file bash /etc/nslcd.conf># This is the configuration file for the LDAP nameservice <file bash /etc/nslcd.conf># This is the configuration file for the LDAP nameservice
 # switch library's nslcd daemon. It configures the mapping # switch library's nslcd daemon. It configures the mapping
-# between NSS names (see /etc/nsswitch.conf) and LDAP +# between NSS names (see /etc/nsswitch.conf) and LDAP      
-# information in the directory. +# information in the directory.                            
-# See the manual page nslcd.conf(5) for more information.+# See the manual page nslcd.conf(5) for more information. 
  
 # The user and group nslcd should run as. # The user and group nslcd should run as.
-uid nslcd +uid nslcd                                 
-gid ldap+gid ldap                                 
  
 # The uri pointing to the LDAP server to use for name lookups. # The uri pointing to the LDAP server to use for name lookups.
-# Multiple entries may be specified. The address that is used +# Multiple entries may be specified. The address that is used  
-# here should be resolvable without using LDAP (obviously). +# here should be resolvable without using LDAP (obviously).    
-#uri ldap://127.0.0.1/ +#uri ldap://127.0.0.1/                                         
-#uri ldaps://127.0.0.1/ +#uri ldaps://127.0.0.1/                                        
-#uri ldapi://%2fvar%2frun%2fldapi_sock/ +#uri ldapi://%2fvar%2frun%2fldapi_sock/                        
-# Note: %2f encodes the '/' used as directory separator +# Note: %2f encodes the '/' used as directory separator        
-# Django : 2015-07-20 +# Django : 2015-07-20                                          
-# default: uri ldap://127.0.0.1/ +# default: uri ldap://127.0.0.1/                               
-uri ldaps://openldap.dmz.nausch.org+uri ldap://openldap.dmz.nausch.org                            
  
 # The LDAP version to use (defaults to 3 # The LDAP version to use (defaults to 3
-# if supported by client library) +# if supported by client library)        
-#ldap_version 3+#ldap_version 3                         
  
 # The distinguished name of the search base. # The distinguished name of the search base.
-# Django : 2015-07-20 +# Django : 2015-07-20                        
-# default: base dc=example,dc=com +# default: base dc=example,dc=com            
-base dc=nausch,dc=org+base dc=nausch,dc=org                       
  
 # The distinguished name to bind to the server with. # The distinguished name to bind to the server with.
-# Optional: default is to bind anonymously. +# Optional: default is to bind anonymously.          
-#binddn cn=proxyuser,dc=example,dc=com +#binddn cn=proxyuser,dc=example,dc=com               
-# Django : 2015-07-20 +# Django : 2015-07-20                                
-# default: unset +# default: unset                                     
-binddn cn=Technischeruser,dc=nausch,dc=org+binddn cn=Technischeruser,dc=nausch,dc=org         
  
 # The credentials to bind with. # The credentials to bind with.
 # Optional: default is no credentials. # Optional: default is no credentials.
 # Note that if you set a bindpw you should check the permissions of this file. # Note that if you set a bindpw you should check the permissions of this file.
-#bindpw secret +#bindpw secret                                                                 
-# Django : 2015-07-20 +# Django : 2015-07-20                                                          
-# default: unset +# default: unset                                                               
-bindpw e1n531f!D4xIi57n393I1354u!+bindpw YpKKoS1lV1AdAX1StGe1lTembvZW4XagnkLdWZ2Y4Xkw                                       
  
 # The distinguished name to perform password modifications by root by. # The distinguished name to perform password modifications by root by.
-#rootpwmoddn cn=admin,dc=example,dc=com+#rootpwmoddn cn=admin,dc=example,dc=com                               
  
 # The default search scope. # The default search scope.
-#scope sub +#scope sub                  
-#scope one +#scope one                  
-#scope base+#scope base                
  
 # Customize certain database lookups. # Customize certain database lookups.
Zeile 388: Zeile 741:
 #base   passwd ou=People,dc=example,dc=com #base   passwd ou=People,dc=example,dc=com
 #base   shadow ou=People,dc=example,dc=com #base   shadow ou=People,dc=example,dc=com
-#scope  group  onelevel +#scope  group  onelevel                    
-#scope  hosts  sub+#scope  hosts  sub                        
  
 # Bind/connect timelimit. # Bind/connect timelimit.
-#bind_timelimit 30+#bind_timelimit 30       
  
 # Search timelimit. # Search timelimit.
-#timelimit 30+#timelimit 30      
  
 # Idle timelimit. nslcd will close connections if the # Idle timelimit. nslcd will close connections if the
 # server has not been contacted for the number of seconds. # server has not been contacted for the number of seconds.
-#idle_timelimit 3600+#idle_timelimit 3600                                       
 + 
 +# Use StartTLS with verifying the server certificate. 
 +# Django : 2015-07-20 
 +ssl start_tls 
 +tls_cacertfile /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
  
 # Use StartTLS without verifying the server certificate. # Use StartTLS without verifying the server certificate.
-#ssl start_tls +#ssl start_tls                                            
-#tls_reqcert never+#tls_reqcert never                                      
  
 # CA certificates for server certificate verification # CA certificates for server certificate verification
-#tls_cacertdir /etc/ssl/certs +#tls_cacertdir /etc/ssl/certs                         
-#tls_cacertfile /etc/ssl/ca.cert+#tls_cacertfile /etc/ssl/ca.cert                     
  
 # Seed the PRNG if /dev/urandom is not provided # Seed the PRNG if /dev/urandom is not provided
-#tls_randfile /var/run/egd-pool+#tls_randfile /var/run/egd-pool                
  
 # SSL cipher suite # SSL cipher suite
 # See man ciphers for syntax # See man ciphers for syntax
-#tls_ciphers TLSv1+#tls_ciphers TLSv1          
  
 # Client certificate and key # Client certificate and key
 # Use these, if your server requires client authentication. # Use these, if your server requires client authentication.
-#tls_cert +#tls_cert                                                   
-#tls_key+#tls_key                                                   
  
 # Mappings for Services for UNIX 3.5 # Mappings for Services for UNIX 3.5
-#filter passwd (objectClass=User)+#filter passwd (objectClass=User)   
 #map    passwd uid              msSFU30Name #map    passwd uid              msSFU30Name
 #map    passwd userPassword     msSFU30Password #map    passwd userPassword     msSFU30Password
Zeile 486: Zeile 844:
 </file> </file>
  
-   systemctl start nslcd.service+Anschließend passen wir noch die Dateiberechtigungen an, so wie es bei der Option **bindpw** angeraten wurde. 
 +   chown nslcd:ldap /etc/nslcd.conf
  
-   # systemctl status nslcd.service -l+=== nsswitch.conf === 
 +In der Konfigurationsdatei //**/etc/nsswitch.conf**// ergänzen wir nun __//**händisch**//__ die Optionen **ldap**. Änderungen wurden in dem Beispiel wie iimmer entsprechend gekennzeichnet: 
 +  * **passwd:     files ldap sss** 
 +  * **shadow:     files ldap sss** 
 +  * **group:      files ldap sss**
  
 +  * **netgroup:   files ldap sss**
 +
 +  * **automount:  files ldap sss**
 +
 +
 +   # vim /etc/nsswitch.conf
 +
 +<file bash /etc/nsswitch.conf>#
 +# /etc/nsswitch.conf
 +#
 +# An example Name Service Switch config file. This file should be
 +# sorted with the most-used services at the beginning.
 +#
 +# The entry '[NOTFOUND=return]' means that the search for an
 +# entry should stop if the search in the previous entry turned
 +# up nothing. Note that if the search failed due to some other reason
 +# (like no NIS server responding) then the search continues with the
 +# next entry.
 +#
 +# Valid entries include:
 +#
 +#       nisplus                 Use NIS+ (NIS version 3)
 +#       nis                     Use NIS (NIS version 2), also called YP
 +#       dns                     Use DNS (Domain Name Service)
 +#       files                   Use the local files
 +#       db                      Use the local database (.db) files
 +#       compat                  Use NIS on compat mode
 +#       hesiod                  Use Hesiod for user lookups
 +#       [NOTFOUND=return]       Stop searching if not found so far
 +#
 +
 +# To use db, put the "db" in front of "files" for entries you want to be
 +# looked up first in the databases
 +#
 +# Example:
 +#passwd:    db files nisplus nis
 +#shadow:    db files nisplus nis
 +#group:     db files nisplus nis
 +
 +# Django : 2015-07-21 LDAP Client Authentication
 +# default: passwd:     files sss
 +#          shadow:     files sss
 +#          group:      files sss
 +passwd:     files ldap sss
 +shadow:     files ldap sss
 +group:      files ldap sss
 +#initgroups: files
 +
 +#hosts:     db files nisplus nis dns
 +hosts:      files dns
 +
 +# Example - obey only what nisplus tells us...
 +#services:   nisplus [NOTFOUND=return] files
 +#networks:   nisplus [NOTFOUND=return] files
 +#protocols:  nisplus [NOTFOUND=return] files
 +#rpc:        nisplus [NOTFOUND=return] files
 +#ethers:     nisplus [NOTFOUND=return] files
 +#netmasks:   nisplus [NOTFOUND=return] files
 +
 +bootparams: nisplus [NOTFOUND=return] files
 +
 +ethers:     files
 +netmasks:   files
 +networks:   files
 +protocols:  files
 +rpc:        files
 +services:   files sss
 +
 +# Django : 2015-07-21 LDAP Client Authentication
 +# default: netgroup:   files sss
 +netgroup:   files ldap sss
 +
 +publickey:  nisplus
 +
 +# Django : 2015-07-21 LDAP Client Authentication
 +# default: automount:  files sss
 +automount:  files ldap sss
 +aliases:    files nisplus
 +</file>
 +
 +=== password-auth-ac ===
 +Damit sich unsere Nutzer auch anmelden können, ist es notwendig in der Konfigurationsdatei //**/etc/pam.d/password-auth-ac**// die option **pam_sss.so** durch ein **pam_ldap.so** zu ersetzen.
 +   # vim /etc/pam.d/password-auth-ac
 +
 +<file bash /etc/pam.d/password-auth-ac>#%PAM-1.0
 +# This file is auto-generated.
 +# User changes will be destroyed the next time authconfig is run.
 +auth        required      pam_env.so
 +auth        sufficient    pam_unix.so nullok try_first_pass
 +auth        requisite     pam_succeed_if.so uid >= 1000 quiet_success
 +# Django : 2015-07-21
 +# default: auth        sufficient    pam_sss.so use_first_pass
 +auth        sufficient    pam_ldap.so use_first_pass
 +auth        required      pam_deny.so
 +
 +account     required      pam_unix.so broken_shadow
 +account     sufficient    pam_localuser.so
 +account     sufficient    pam_succeed_if.so uid < 1000 quiet
 +# Django : 2015-07-21
 +# default: account     [default=bad success=ok user_unknown=ignore] pam_sss.so
 +account     [default=bad success=ok user_unknown=ignore] pam_ldap.so
 +account     required      pam_permit.so
 +
 +password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
 +password    sufficient    pam_unix.so sha256 nullok try_first_pass use_authtok
 +# Django : 2015-07-21
 +# default: password    sufficient    pam_sss.so use_authtok
 +password    sufficient    pam_ldap.so use_authtok
 +password    required      pam_deny.so
 +
 +session     optional      pam_keyinit.so revoke
 +session     required      pam_limits.so
 +-session     optional      pam_systemd.so
 +session     optional      pam_oddjob_mkhomedir.so umask=0077
 +session     [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid
 +session     required      pam_unix.so
 +# Django : 2015-07-21
 +# default: session     optional      pam_sss.so
 +session     optional      pam_ldap.so</file>
 +
 +==== Start des Naming services LDAP client daemon ====
 +Nun ist es an der Zeit, den **NSLCD**((**N**aming **S**ervices **L**DAP **C**lient **D**aemon)) zu starten.
 +   # systemctl restart nslcd.service
 +
 +Den erfolgreichen Start des Daemon fragen wir wie folgt ab.
 +   # systemctl status nslcd.service -l
  
 <html><pre class="code"> <html><pre class="code">
Zeile 507: Zeile 996:
 </pre></html> </pre></html>
  
 +Damit der Daemin automatisch gestartet wird, wenn der Clientrechner hochfährt, aktivieren wir den NSLCD entsprechend.
   # systemctl enable nslcd.service   # systemctl enable nslcd.service
  
   ln -s '/usr/lib/systemd/system/nslcd.service' '/etc/systemd/system/multi-user.target.wants/nslcd.service'   ln -s '/usr/lib/systemd/system/nslcd.service' '/etc/systemd/system/multi-user.target.wants/nslcd.service'
  
 +Wollen wir abfragen, ob der Daemon automatisch beim Systemstart gestartet wird benutzen wir nachfolgenden Befehl/Aufruf.
   # systemctl is-enabled nslcd.service   # systemctl is-enabled nslcd.service
  
   enabled   enabled
  
-  # systemctl is-enabled nslcd.service+Ein **enabled** signalisiert, dass der Daemon einen Autostart macht, ein **disabled** steht dafür, dass der Daemon __nicht__automatisch beim Starten des Rechners hochfährt.
  
-  disabled+===== Tests ===== 
 +==== LDAP Abfrage ====
  
-==== Test ====+Zur Abfrage eines LDAP-Users können wir folgenden Aufruf verwenden: 
   $ ldapsearch -x -LLL -H ldaps://openldap.dmz.nausch.org -b "dc=nausch,dc=org" "uid=django" -W -D "cn=Technischeruser,dc=nausch,dc=org"   $ ldapsearch -x -LLL -H ldaps://openldap.dmz.nausch.org -b "dc=nausch,dc=org" "uid=django" -W -D "cn=Technischeruser,dc=nausch,dc=org"
   Enter LDAP Password:    Enter LDAP Password: 
Zeile 540: Zeile 1032:
 userPassword:: RGQ0bWRkMyE=</code> userPassword:: RGQ0bWRkMyE=</code>
  
 +Das nächste Beispiel zeigt eine LDAP-Abfrage mit dem User django aber mit __falschem__ Passwort: 
 +   $ ldapsearch -x -LLL -H ldaps://openldap.dmz.nausch.org -b "dc=nausch,dc=org" "uid=inge" -W -D "uid=inge,ou=People,dc=nausch,dc=org"
  
 +  Enter LDAP Password:
  
 +  ldap_bind: Invalid credentials (49)
  
 +Hingegen eine Abfrage mit einer richtigen Kombination von Benutzer und Passwort, sieht entsprechend wie folgt aus:
 +   $ ldapsearch -x -LLL -H ldaps://openldap.dmz.nausch.org -b "dc=nausch,dc=org" "uid=inge" -W -D "uid=inge,ou=People,dc=nausch,dc=org"
  
 +  Enter LDAP Password:
 +<code>dn: uid=inge,ou=People,dc=nausch,dc=org
 +uid: inge
 +cn: inge
 +objectClass: account
 +objectClass: posixAccount
 +objectClass: top
 +loginShell: /bin/bash
 +uidNumber: 1002
 +gidNumber: 1002
 +homeDirectory: /home/inge
 +gecos: inge
 +userPassword:: e0NSWVBasdfaUJ1fM3101d3XJ1J19UR21TUjhpMWc=</code>
  
 +==== Client-Abfragen ====
 +Die erfolgreiche Konfiguration unseres Rechners überprüfen wir so:
 +  - Mit **getent** lassen wir uns die Informationen eines Users anzeigen, der sowohl in der /etc/shadow wie auch im zentralen LDAP-Verzeichnisdienst hinterlegt ist. Wenn alles gut gelaufen ist, werden uns zwei Einträge präsentiert. \\ \\ <code>$ getent passwd | grep django</code><code>django:$6$RG6zR$2RbzR$wDvit.DnWHSYGEFCrn0LXyEleQkOuJQ5mQLiVRHNEnm5svSCrn0LXyEleQkOuflVHvMkKnAEdQCCVU9Gc9nPe1:1000:1000:Django [BOfH]:/home/django:/bin/bash
 +django:x:1000:1000:django:/home/django:/bin/bash</code>
 +  - Als nächstes wählen wir einen Nutzer der nur im LDAP-Verzeichnisdienst einen Account hat, nicht aber auf der lokalen Maschine. \\ \\ <code>$ getent passwd | grep michael</code><code>michael:*:1001:1001:michael:/home/michael:/bin/bash</code>
 +  - Dann melden wir uns nun an unserem Client als ein Benutzer an, der lokal auf der Maschine nicht existiert, werden wir beim Login nach dem Passwort gefragt, welches gegen den zentralen OpenLDAP-Server verifiziert wird. Ist das Passwort richtig wird auch gleich das zugehörige Nutzer-Homeverzeichnis angelegt. \\ \\ <code>[django@vml010008 ~]$ ssh -l ruben 10.0.10.52</code><code>Password:</code><code>Creating home directory for ruben.</code>
  
-/* +{{ :centos:ldap:client_ldap_auth.png?500 |Bildschirmhardcopy bei der Anmeldung am Client (mit LDAP auth)}}
- Configure LDAP Client in order to share users' accounts in your local networks. +
-[1] Install OpenLDAP Client+
-[root@www ~]# yum -y install openldap-clients nss-pam-ldapd +
-# ldapserver=(LDAP server's hostname or IP address)+
  
-# ldapbasedn="dc=(your own domain name)"+===== remote Benutzer bei Web-Servern ===== 
 +Nachdem sich unsere Nutzer an ihren Arbeitsplatzrechner erfolgreich anmelden können, wollen sie mit unter auch von unterwegs aus auf Ihre eMail oder andere WEB-Dienste zugreifen. Auch dort sollen sich unsere User mit deren Anmeldedaten anmelden können. 
  
-[root@www ~]# authconfig --enableldap \ +Im folgenden gehen wir auf Konfigurationslösungen bei den beiden Webservern **[[http://apache.org|Apache]]** und **[[http://nginx.org|NGiNX]]** im Detail eingehen.
---enableldapauth \ +
---ldapserver=dlp.server.world \ +
---ldapbasedn="dc=server,dc=world"+
---enablemkhomedir \ +
---update+
  
-getsebool: SELinux is disabled 
-[root@www ~]# exit 
- 
-logout 
-CentOS Linux 7 (Core) 
-Kernel 3.10.0-123.20.1.el7.x86_64 on an x86_64 
-www login: redhat 
-# LDAP user 
- 
-Password: 
-# password 
- 
-Creating directory '/home/redhat'. 
-[redhat@www ~]$ 
-# logined normally 
-[redhat@www ~]$ passwd 
-# try to change the LDAP password 
- 
-Changing password for user redhat. 
-Enter login(LDAP) password: 
-# current password 
- 
-New password: 
-# new password 
- 
-Retype new password: 
-LDAP password information changed for redhat 
-passwd: all authentication tokens updated successfully. 
- 
-*/ 
-===== remote Benutzer bei Web-Servern ===== 
 ==== Apache Webserver ==== ==== Apache Webserver ====
 +{{page>centos:ldaps-auth-httpd&nofooter&noheader}}
  
 ==== NGiNX Webserver ==== ==== NGiNX Webserver ====
- +{{page>centos:ldaps-auth-nginx&nofooter&noheader}}
-FIXME +
  
  
Zeile 654: Zeile 1130:
  
  */  */
 +
 +====== Links ======
 +  * **⇐ [[centos:ldap_c7:tecbind|Zurück zum Kapitel "Authentification mit technischem User beim OpenLDAP Servers unter CentOS 7.x"]]**
 +  * **[[centos:ldap_c7:start|Zurück zum Kapitel >>OpenLDAP Server unter CentOS 7.x<<]]**
 +  * **[[wiki:start|Zurück zu >>Projekte und Themenkapitel<<]]**
 +  * **[[http://dokuwiki.nausch.org/doku.php/|Zurück zur Startseite]]**
 +
 +
  • centos/ldap_c7/clientauth.txt
  • Zuletzt geändert: 22.07.2019 15:03.
  • von 127.0.0.1