Best Practice für die Authentifizierung von DMZ gegen AD im LAN

7

Wir haben nur wenige kundenorientierte Server in der DMZ, die auch Benutzerkonten haben. Alle Konten befinden sich in einer Schattenkennwortdatei. Ich versuche, Benutzeranmeldungen zu konsolidieren und denke darüber nach, LAN-Benutzer die Authentifizierung bei Active Directory zu ermöglichen. Dienste, die eine Authentifizierung benötigen, sind Apache, Proftpd und ssh. Nach Rücksprache mit dem Sicherheitsteam habe ich eine Authentifizierungs-DMZ eingerichtet, die über einen LDAPS-Proxy verfügt, der wiederum einen anderen LDAPS-Proxy (Proxy2) im LAN kontaktiert, und dieser übergibt Authentifizierungsinformationen über LDAP (als LDAP-Bindung) an den AD-Controller. Der zweite LDAP-Proxy wird nur benötigt, weil der AD-Server lehnt es ab, TLS mit unserer sicheren LDAP-Implementierung zu sprechen. Dies funktioniert für Apache mit dem entsprechenden Modul. Zu einem späteren Zeitpunkt kann ich versuchen, Kundenkonten von Servern auf LDAP-Proxy zu verschieben, damit sie nicht auf Servern verteilt sind.

Für SSH habe ich Proxy2 zur Windows-Domäne hinzugefügt, damit sich Benutzer mit ihren Windows-Anmeldeinformationen anmelden können. Anschließend habe ich SSH-Schlüssel erstellt und sie mit SSH-Copy auf DMZ-Server kopiert, um die kennwortlose Anmeldung zu aktivieren, sobald Benutzer authentifiziert sind.

Ist dies ein guter Weg, um diese Art von SSO zu implementieren? Habe ich hier Sicherheitsprobleme verpasst oder gibt es vielleicht einen besseren Weg, um mein Ziel zu erreichen?

Sergei
quelle

Antworten:

8

Wenn Sie PAM für Ihren Authentifizierungsstapel verwenden, können Sie mit pam_krb5 die Kerberos-Authentifizierung für Ihre Dienste bereitstellen. Kerberos wurde sofort für den Umgang mit feindlichen Umgebungen entwickelt, verwaltet die Authentifizierung per Proxy und ist bereits Teil der AD-Spezifikation. Warum mit LDAP kämpfen, wenn Sie Kerberos dazu bringen können, das schwere Heben für Sie zu erledigen und mit dem Leben weiterzumachen? Ja, Sie müssen etwas lesen, und ja, es wird einige Zeit dauern, aber ich habe jahrelang die Curb-to-AD-Authentifizierung verwendet und festgestellt, dass dies der einfachste und schnellste Weg ist, um SSO zu erhalten sofort einsatzbereit, wenn Sie Active Directory als Authentifizierungs-Backend haben.

Die Hauptsache, auf die Sie stoßen werden, ist, dass Microsoft beschlossen hat, die Standardverschlüsselungstypen sehr genau zu definieren (sie haben im Grunde genommen ihre eigenen gemacht). Daher müssen Sie Ihre Kerberos-Clients so einrichten, dass sie über die richtigen passenden Verschlüsselungstypen verfügen AD-Server lehnen dies weiterhin ab. Dies ist zum Glück eine einfache Prozedur und sollte nicht mehr als ein paar Änderungen an krb5.conf erfordern.

Und jetzt einige Links, die Sie berücksichtigen sollten ...

Microsofts Ansicht von Kerberos

Vernetzung von Kerberos und Active Directory

SSH- und Kerberos-Authentifizierung über PAM

Apache und Kerberos

ProFTP und Kerberos

RFCs der Microsoft-Aktivitäten mit Kerberos (über die Sie wirklich nicht lesen möchten):

Avery Payne
quelle
+1 Kerberos ist der richtige Weg.
wzzrd
Vielen Dank, Avery. Ich habe mir Kerboros angesehen und es ist irgendwie im Setup enthalten. Proxy2 ist eine Linux-Box, die mit Windows Kerberos Realm verbunden ist. AD-Benutzer können sich also bei Proxy2 authentifizieren, indem sie sich über SSH anmelden, das Pam WinBind verwendet, und sich dann anmelden DMZ-Server verwenden öffentliche Schlüssel, die von mir erstellt wurden. Dies erfordert natürlich, dass lokale Benutzer auf DMZ-Servern vorab erstellt werden. Der Grund dafür, DMZ-Server nicht mit Winows Realm zu verbinden, ist, dass das Sicherheitsteam sagte, ich müsse eine Zwischen-DMZ mit einem Server haben, der Authentifizierungsanforderungen proxysiert. Ich konnte keine Möglichkeiten finden, Kerberos-Anforderungen zu proxyieren, so dass LDAPS es ist ...
Sergei
Vielleicht ist das Sicherheitsteam zu paranoid und es ist eine gängige Praxis, eine DMZ-Authentifizierung durchzuführen, um AD ohne diese DMZ-Zwischenstufe zu verwenden - das versuche ich herauszufinden ...
Sergei
Wenn Sie den Verkehr zu Ihrer DMZ steuern können, können Sie den Verkehr / die Flüsse / innerhalb der DMZ steuern. So gehe ich mit exponierten DMZ-Diensten um - Datenverkehr von außen wird stark gefiltert und hat nur Zugriff auf bestimmte Ports, Datenverkehr innerhalb der DMZ sieht alles innerhalb der DMZ (aber nicht alles intern) und Verkehr intern kann sowohl außen als auch außen sehen die DMZ. Angreifer von außen können nicht auf interne Dienste zugreifen und nur die Ports bestimmter Dienste sehen, die in der DMZ gehostet werden. DMZ-Computer können sich jedoch klar erkennen - einschließlich aller Proxy-Dienste.
Avery Payne
Wenn Sie also "Proxy-Dienste einschließen" sagen, meinen Sie damit einen Proxy-Dienst, der auch Kerberos-Anforderungen weiterleiten kann? Ich versuche nur, unser Sicherheitsteam zufrieden zu stellen. Ihre Richtlinie lautet, dass wir eine Zwischen-DMZ haben müssen, die einen Authentifizierungs-Proxy enthält, um die Authentifizierung zu bestehen Verkehr von DMZ nach LAN.
Sergei