STROEDER.COM FFG 2016 // 2016-02-25- 1 -
Æ-DIRParanoide Benutzerverwaltung fürLinux-/Unix-Server mit OpenLDAP
GUUG-Frühjahrsfachgespräch 2016
STROEDER.COM FFG 2016 // 2016-02-25- 2 -
Wer?
▪ Michael Ströder <[email protected]>▪ Freelancer▪ Schwerpunkte▪ Verzeichnisdienste (LDAP etc.), IAM▪ Angewandte Verschlüsselung, PKI
▪ Freie Software▪ https://web2ldap.de▪ https://python-ldap.org
STROEDER.COM FFG 2016 // 2016-02-25- 3 -
Warum? (1)
▪ Infrastruktur wird komplexer▪ Viele Systeme▪ Verschiedene Sicherheitsanforderungen▪ Ständige Veränderungen▪ Verschiedene administrative Rollen (DevOps)▪ Admins in Produktionsumgebung▪ Entwickler▪ Management / Auditoren
STROEDER.COM FFG 2016 // 2016-02-25- 4 -
Warum? (2)
▪ Striktes Need-to-know-Prinzip!▪ Feingranulierte Autorisierung von Hosts/Diensten
auf Benutzer/Gruppen/sudoers etc.▪ Individuelle Authentifizierung der Hosts/Dienste▪ “Views” durch ACLs
▪ Meines Wissens keine Lösung verfügbar=> Æ-DIR - Authorized Entities Directory
STROEDER.COM FFG 2016 // 2016-02-25- 5 -
Software
▪ OpenLDAP 2.4.42+▪ web2ldap mit HTML/LDIF-Templates & Plugins▪ Simple Web-Applikation für Password Self-Service▪ Spezielle Admin-Skripte (command-line)▪ Bulk-Initialisierung der Server▪ Reporting
▪ LDAPS / StartTLS ohne Ausnahme!▪ sssd und sudo-ldap als Client, andere NSS/PAM-
Clients möglich
STROEDER.COM FFG 2016 // 2016-02-25- 6 -
Architektur
adminworkstation
OpenLDAP provider
slapd
mdb
httpd
web2ldap
webldappwdmod_proxy
FastCGI(Unix
domainsocket)
HTTP(localhost)
LDAPS,LDAPI
LDAPI
webbrowser
HTTPS
OpenLDAPconsumer
slapd
mdb
LDAPS(syncrepl)
mod_fcgid
customtool
LDAPS
Unixoid server
sudo-ldapsssd
LDAPS
SMTP relaySMTP (STARTTLS)
person syncLDAPI
HR DB
SSH client
SSH
STROEDER.COM FFG 2016 // 2016-02-25- 7 -
Rollen
▪ Kein anonymer Zugriff oder Gastzugang!▪ Æ admins may manage everything within ou=ae-dir
and can read cn=monitor and cn=config▪ Æ auditors may read everything within ou=ae-dir▪ Zone admins may write anything within a zone▪ Zone auditors may read anything within a zone▪ Setup admins may write aeHost/aeService▪ Users may read own entries, other members of own
groups, change own password
STROEDER.COM FFG 2016 // 2016-02-25- 8 -
Anforderungen Schema
▪ Kompabilität zu NIS-LDAP (RFC 2377 & RFC2377bis)▪ Kompabilität zu sudo-ldap Schema▪ Unterstützung der gängigen PAM/NSS-Clients▪ OpenLDAP-Constraints zur Vermeidung fehlerhafter
Dateneingabe▪ Meta-Daten (Status, Gültigkeitsdauer,
Verwendungszweck, Ticket-Nr.)▪ Auditierbarkeit (wer machte was)▪ Eindeutige IDs für alle Entititäten▪ Keine Wiederverwendung von IDs!
STROEDER.COM FFG 2016 // 2016-02-25- 9 -
Directory Information Tree (DIT)
ou=ae-diraeRoot
cn=aeaeZone
cn=exampleaeZone
cn=example-adminsaeGroup
cn=example-grp-1aeGroup
cn=example-auditorsaeGroup
uid=foo1aeUser
cn=example-sudoaeSudoRule
cn=example-srvgrpaeSrvGroup
host=example-srvaeHost
uid=system_example1aeService
cn=globalaeZone
cn=uid-blacklistnamedObject
cn=all-usersposixGroup
cn=hraeZone
departmentNumber=bar1aeDept
employeeNumber=foo1aePerson
STROEDER.COM FFG 2016 // 2016-02-25- 10 -
Entity Relationships
aeHost
aeSrvGroupaeGroup aeSudoRule
aeUser
aePerson
member
sudoUser
aeSetupGroupsaeLogStoreGroups
aeLoginGroupsaeVisibleGroups
(child of) oraeSrvGroup
aeVisibleSudoers
aePerson
aeService
memberOf
aeZone
(child of) (child of)(child of) (child of)
(child of) oraeSrvGroup
aeProxyFor
STROEDER.COM FFG 2016 // 2016-02-25- 11 -
SSH-Relay mit Autorisierungadmin
workstation
ae-LDAPconsumer
slapd
mdb
ssh <legacy-uid>@<target> ProxyCommand looked upfor <target> in local config
SSH proxy
sudo-ldap
sssd
LDAPS
SSH <ae-uid>@<gateway-host>
ae_checkd
sshd
full shellfor GW admins
nss_sss
pam_sss
wrapper script(ForceCommand)
nc <target>:22
Authz Check<ae-uid@target>
SSH keyquery by ae-uid
targetsystem
ssh TCP(SSH tunnel)
STROEDER.COM FFG 2016 // 2016-02-25- 12 -
Fazit (1)
▪ ACLs in OpenLDAP sind zusätzliche Schranke gegen Privilege Escalation in Frontends
▪ Lokale Komponenten setzen Zugriffskontrolle durch (z.B. Dateizugriffsrechte)
▪ Separate Passwörter sind im Ernstfall zusätzliche Schranke
▪ Effektive Sicherheit hängt an Bereitschaft, die Mechanismen wirklich zu nutzen=> Audits, Schulungen, individuelle Beratung
STROEDER.COM FFG 2016 // 2016-02-25- 13 -
Fazit (2)
▪ Ggf. ist Notfall-Login-Mechanismus notwendig=> individuelle Prozesse festlegen
▪ (Set-basierte) ACLs sind▪ sehr komplex▪ langsam (z.Zt. einfach mehr Hardware)
▪ bei Änderungen▪ Keine Löcher ins System hauen!▪ Neue Ideen sollten immer ins Rollenmodell passen▪ Automatisierte Tests
STROEDER.COM FFG 2016 // 2016-02-25- 14 -
Ideen zu mehr Integration
▪ Machine deployment and network access control:Find out more about existing DHCP/DNS/RADIUS/PXE/TFTP schema mess before
▪ MIT Kerberos (multiple realms)▪ Samba (multiple domains)▪ Config management tied to aeSrgvGroup/aeHost:▪ puppet node declaration▪ ansible playbook
STROEDER.COM FFG 2016 // 2016-02-25- 15 -
To-Do
▪ Performance-Verbesserungen!▪ Æ-DIR Schema in Internet draft (experimental)▪ ae_demon▪ Leichtgewichtiger nearly-zero-conf NSS/PAM demon▪ kennt DIT and schema => optimierte Suchen▪ Teilautomatisierte Initialisierung▪ SASL/EXTERNAL mit TLS Client-Zertifikaten (z.B. puppet
certs)▪ ae-dir-ui▪ Verwendung OpenDJ..?
STROEDER.COM FFG 2016 // 2016-02-25- 16 -
Question & Answers
1 / 13
Zwei-Faktor-Authentifizierung mit OpenLDAP,OATH-HOTP and Yubikey
Axel Hoffmann
1&1 Gruppe Axel Hoffmann
2 / 13
Über mich
Axel Hoffmann, M.Sc.
Linux System Administrator1&1 Mail & Media Dev. & Tech. [email protected]
1&1 Gruppe Axel Hoffmann
3 / 13
EinführungAnforderungen
Wenig Integrationsaufwand auf den ServernEffizienter Umgang mit den Tokens
Kein mühseliges Abtippen von CodesIntegration als Tastatur
Bewusstes Auslösen des zweiten FaktorsKein Software-Token!LDAP-fähige Appliances und Web GUIs einbindenHohe Sicherheitsanforderungen an Token-Rollout
Nur der Besitzer sollte den Token nutzen könnenKeine vorbeschlüsselten TokensBesitzer&Admins können Schlüssel nicht auslesen
1&1 Gruppe Axel Hoffmann
4 / 13
EinführungYubikey
Kleines USB-Stick-artiges GerätYubikey Standard: Komponente YubiKey OTPZwei Slots für
Generieren von OATH HOTPsGenerieren von Yubico OTPsStatisches Passwort ausgebenChallenge-Response durchführen
Arbeitet mit Standard-HID-Treibern/Modulen2 Funktionen können genutzt werden (1 pro Slot)
1&1 Gruppe Axel Hoffmann
5 / 13
EinführungOATH Standards
Initiative for Open Authentication
HOTPHMAC-Based One-Time Password1
TRUNC(SHA1(counter, psk)) mod 10numDigit
1numDigit = 6 or 81&1 Gruppe Axel Hoffmann
6 / 13
ImplementierungÜberblick
Abbildung : Systemarchitektur mit OTP-Validierung1&1 Gruppe Axel Hoffmann
7 / 13
ImplementierungLDAP Structure
account
person
oathToken
oathTokenParams pwdPolicy
Abbildung : Vereinfachtes LDAP Entity-Relationship-Modell
1&1 Gruppe Axel Hoffmann
8 / 13
Token-RolloutToken-Rollout Prozess
Abbildung : Ablauf des Yubikey-Rollouts
1&1 Gruppe Axel Hoffmann
9 / 13
Ende der Präsentation
Gibt es Fragen zumVortrag?
1&1 Gruppe Axel Hoffmann
10 / 13
Multi-Faktor-Authentifizierung
Kombination von 2 oder mehr Faktoren:
Etwas was du weißt:Geheimnis, Passwort, Passphrase, PIN, TAN
Etwas was du besitzt:Token, SmartCard, Schlüssel
Etwas was dich ausmacht:Iris, Fingerabdruck, Stimme, Tippgeschwindigkeit/-verhalten
1&1 Gruppe Axel Hoffmann
11 / 13
Rollout Dienst I
python-yubico Bibliothek wurde genutztKein chaotisches Shell-Script welches CLI Kommandos aufruftLäuft auf extra gehärteter Rollout-HardwareBindet Yubikey an HOTP Token Eintrag
1&1 Gruppe Axel Hoffmann
12 / 13
Rollout Dienst II
Script-Sequenz:1 Beide Slots löschen inkl. Passwort2 Lese Yubikey Seriennummer3 Einloggen in LDAP durch Yubikey Serial und Rollout-Passwort4 USB Modus zu nur HID setzen, deaktiviere SmartCard5 Setze Modus von Slot 1 zu HOTP und schreibe Schlüssel6 Schütze beide Slots mit benutzerdefinierten Passwort7 Schreibe Schlüssel ins LDAP und setze Zähler 08 Schalte NFC zum ungenutzten Slot 2
1&1 Gruppe Axel Hoffmann
13 / 13
Zukünftige Erweiterungen
SmartCard Funktionalität durch ykneo-openpgp AppletErweitere Rollout-Dienst & HW durch PGP-AgentRollout stößt Generierung eines PGP Keys auf Yubikey anPGP Public Key wird an Token-Eintrag gebundenPGP Key anstelle des SSH Keys auf SSH Client
1&1 Gruppe Axel Hoffmann