Æ-dir · stroeder.com - 7 - ffg 2016 // 2016-02-25 rollen kein anonymer zugriff oder gastzugang!...

29
STROEDER.COM FFG 2016 // 2016-02-25 - 1 - Æ-DIR Paranoide Benutzerverwaltung für Linux-/Unix-Server mit OpenLDAP GUUG-Frühjahrsfachgespräch 2016

Upload: others

Post on 26-Sep-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

STROEDER.COM FFG 2016 // 2016-02-25- 1 -

Æ-DIRParanoide Benutzerverwaltung fürLinux-/Unix-Server mit OpenLDAP

GUUG-Frühjahrsfachgespräch 2016

Page 2: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 3: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 4: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 5: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 6: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 7: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 8: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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!

Page 9: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 10: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 11: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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)

Page 12: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 13: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 14: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 15: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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..?

Page 16: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

STROEDER.COM FFG 2016 // 2016-02-25- 16 -

Question & Answers

Page 17: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

1 / 13

Zwei-Faktor-Authentifizierung mit OpenLDAP,OATH-HOTP and Yubikey

Axel Hoffmann

1&1 Gruppe Axel Hoffmann

Page 18: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

2 / 13

Über mich

Axel Hoffmann, M.Sc.

Linux System Administrator1&1 Mail & Media Dev. & Tech. [email protected]

1&1 Gruppe Axel Hoffmann

Page 19: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 20: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 21: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 22: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

6 / 13

ImplementierungÜberblick

Abbildung : Systemarchitektur mit OTP-Validierung1&1 Gruppe Axel Hoffmann

Page 23: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

7 / 13

ImplementierungLDAP Structure

account

person

oathToken

oathTokenParams pwdPolicy

Abbildung : Vereinfachtes LDAP Entity-Relationship-Modell

1&1 Gruppe Axel Hoffmann

Page 24: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

8 / 13

Token-RolloutToken-Rollout Prozess

Abbildung : Ablauf des Yubikey-Rollouts

1&1 Gruppe Axel Hoffmann

Page 25: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

9 / 13

Ende der Präsentation

Gibt es Fragen zumVortrag?

1&1 Gruppe Axel Hoffmann

Page 26: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 27: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 28: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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

Page 29: Æ-DIR · STROEDER.COM - 7 - FFG 2016 // 2016-02-25 Rollen Kein anonymer Zugriff oder Gastzugang! Æ admins may manage everything within ou=ae-dir and can read cn=monitor and cn=config

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