Fortigate FSSO for Windows AD – einfach erklärt

Fortigate FSSO for Windows AD einfach erklärt…

Fortigate Single Sign On (FSSO) ist eine Technik, die eine Verbindung zwischen dem lokalen Active Directory und der Fortigate ermöglicht, um AD Benutzer oder auch AD Gruppen an der Firewall authentifizieren zu können. Hauptsächlich wird dieses Feature im Zusammenhang mit Webfiltern und deren Segmentierung für bestimmte AD Benutzer oder Gruppen zu nutzen. Die Authentifizierung der AD Benutzer erfolgt mit FSSO „silent“, der Benutzer muss für den Zugriff auf Webseiten seine Anmeldedaten somit nicht erneut eingeben. Die Funktion FSSO ist im Standard Feature Setup enthalten und muss NICHT gesondert lizenziert werden.

Die unterschiedlichen FSSO Modi

FSSO kann in unterschiedlichen Modi integriert werden.

  • Polling Mode
    Im Polling Mode versucht die Fortigate kontinuierich die Authentifizierungsdaten von einem Domain Controller abzurufen, ohne dass eine zusätzliche Software installiert wird. Besonders geeignet für Integrationen, bei denen die Installation einer zusätzlichen Software auf den Domain Controllern ausgeschlossen ist. Quelle ist hier ein LDAP Server, der vorab in der Konfiguration zu erstellen ist.
  • Agent Based FSSO
    Hier wird auf den Domain Controllern ein Agent installiert, der die Authentifizierungsdaten an die Fortigate überträgt. Die komplexere aber auch zuverlässigere Variante. Zudem sind hier diverse Funktionen möglich, die der Polling Mode nicht bietet. Bei der Integration im Agent Mode kann man zudem noch zwischen dem Standard Mode und dem Advanced Mode unterscheiden. Hauptunterschied ist die unterschiedliche Zeichenlänge bei Benutzernamen, die im Standard Mode auf 15 reduziert ist. Somit ist bspw. in einer Multi Domain Umgebung immer der Advanced Mode zu integrieren. Der passende Modus wird bei der Installation oder auch nachträglich bei der Konfiguration des Collector Agent definiert.

Die unterschiedlichen Modi werden in der Connector Konfiguration der Security Fabric festgelegt. Erstellt man einen AD Connector, legt man hier den Modus fest:

Komponenten & Funktionsweise des Agent based FSSO – Kurz erklärt

Collector Agent

Der Collector Agent ist die Komponente, welche die Daten von den Domain Controllern an die Fortigate überträgt. Insofern quasi ein „Sammler“ und „Sender“, der regelmäßig die gewünschten Authentifizierungsdaten an die Fortigate überträgt. Es handelt sich konkret um eine Software, die auf einem beliebigen Windows Server installiert werden kann. Theoretisch geht auch auf einem Client, was ich aber persönlich nicht empfehle. Aus Gründen der Hochverfügbarkeit, können/sollten mehrere (min. 2) Collector Agent Server bereitgestellt werden. In der Konfiguration des Collectory an der Fortigate können diese dann hinterlegt werden.

Domain Controller Agent

Um die Authentifizierungsinformationen der AD Benutzer mit der Firewall zu synchronisieren, kommen ein sog. „DC Agent“ zum Einsatz, der im Prinzip das Security Protokoll eines Domain Controllers überwacht und die Anmeldungen der Benutzer an den Collector Agent „weiterreicht“. Hat man also mehrere DC’s im Einsatz, ist auf jedem DC innerhalb der Domain dieser Agent zu installieren. In o.g. Download Verzeichnis ist dies das Paket „DCAgent_Setup_X.X.XXXX_x64.exe“ oder als 32bit Paket die „DCAgent_Setup_X.X.XXXX.exe„. Da meine DC’s ausschließlich 64bit Systeme sind, verwende ich die 64bit Variante.

Terminal Server Agent

Der Terminal Server Agent ermöglicht es der Fortigate, gleichzeitige Benutzersitzungen auf einem Terminalserver, basierend auf dem Source Port der Session zu „erkennen“ und so die unterschiedlichen Sessions der Benutzer voneinander zu unterscheiden. Dies macht es somit bspw. Webfilter zwischen einzelnen Usern zu unterscheiden, obwohl die Session von der selben Source IP initiiert wird. Der Terminal Server Agent überträgt die hierfür notwendigen Daten ebenfalls an den Collector Agent.

Voraussetzungen für den Agent based FSSO Mode

  • Fortigate Firewall
  • Um den Webfilter nutzen zu können, muss eine UTP Subscription für die Firewall vorhanden sein
  • Windows Active Directory
  • FSSO Software, welche im Fortinet Firmware Verzeichnis und hier immer im Unterordner „FSSO“ heruntergeladen werden kann

Integration Kurzversion

  • Festlegen der Installationsorte für den/die Collector Agent(s).
    Ich installiere diese(n) auch direkt auf dem Domain Controller und hatte damit bisher nie Probleme. Natürlich hat das den Nachteil, dass man zusätzliche Ports an der Windows Firewall öffnen muss und das könnte in einigen Umgebungen unterbunden werden. Hier stelle ich den/die Collector Agent(s) auf einem oder mehreren dedizierten System(en) bereit.
  • Konfiguration des Security Fabric Connectors an der Firewall.
    Hierzu navigiert man auf der Fortigate zum Punkt Security Fabric -> External Connectors und erstellt hier einen neuen FSSO Agent on Windows AD Connector. Nun trägt man die oben festgelegten IP’s der Systme ein und vergibt einen Pre Shared Key, den man für später notiert. Dieses Passwort beschränkt den Zugriff auf den Collector Agent auf die Fortigate aus Sicherheitsgründen.
  • Installation und Konfiguration des Collector Agents
  • Installation der DC Agents
    Die Installation der DC Agents kann direkt vom Collector Agent aus erfolgen. In größeren Umgebungen also immer mit dem Collector Agent anfangen, denn von hier aus können in Minuten zig DC Agents ausgerollt werden. Hierfür wird am Collector Agent, bereits bei der Installation ein Domain Admin als Service User angelegt, der dann auch für den Rollout auf die DC’s verwendet wird.
  • Anpassen der Windows Firewall, falls diese aktiv ist! Übrigens Fehlerquelle Nr.1, wenn FSSO nicht funktioniert…
    Also direkt nach der Installation erstmal hier lang

Alles in Bildern…

Fortigate Connector Konfiguration

Installation des Collector Agent

Hier nun der Domain Admin Account…

Hier die Festlegung des Advanced Mode (siehe oben)…

Hier kann man bestimmte User explizit von der FSSO Filterung ausnehmen…

Hier wähle ich den Agent Mode, da er zuverlässiger ist und mehr Einstellungen mglich sind…

Collector Agent ausgerollt, Agents auf die DC’s verteilt, that’s ist!

Anpassung der Konfiguration des Collector Agent

Im Startmenü des Collector Agent Systems findet man nun den Eintrag „Configure Fortinet Single Sign On Agent“. Hier geht’s weiter…
Grundsätzlich sind die Default Einstellungen bereits so gewählt, dass alles funktioniert, aber ein paar Schräubchen zeige ich dennoch hier, die man kennen sollte…

Zuerst den an der Fortigate vergebenen Pre Shared Key eintragen…

Bitte in den „Advanced Settings“ prüfen, ob dieser Haken gesetzt ist. Falls nicht, bitte setzen, denn sonst können Probleme auftreten, falls ein User mehrere Systeme, wie Laptop und Terminalserver verwendet und die Fortigate den User fälschlicherweise als „ausgelogged“ identifiziert und den Webzugriff demzufolge regelmäßig wieder blockt. Bei diesem Phenomen meldet sich der User ab und sofort wieder an und der Webzugriff funktioniert dann für einige Zeit wieder. Ein „dummer“ Fallstrick, auf den mich erst der Fortinet Support hingewiesen hat, nachdem „jemand“ diesen Haken entfernt hat und die Fehlersuche kein Ergebnis brachte.

Hier kann man die AD Gruppen Filtern, die man monitoren möchte. Die Fortigate „sieht“ dann nur die hier konfigurierten Gruppen.

Die Fortigate Serial im Format seriennummer-VDOM eingeben. Sind keine VDOMs aktiviert, dann Seriennummer-root. Die Gruppen werden dann mit Ihrem Distinguished Name hinterlegt.

Hat man evtl. bei der Konfiguration zunächst den Standard Mode aktiviert, kann man das hier in den Advanced Mode ändern.

Das waren schon alle Schritte die notwendig sind, um FSSO zu integrieren. Am Collector sollte jetzt ein grüner Pfeil sichtbar sein, der signalisiert, dass der Connector mit dem Collector spricht und die in der Group Filterung angebenen Gruppen „sieht“, wie hier unten im Screenshot 1 Gruppe…

Letzte Schritte…

Jetzt wird noch eine Firewall Policy erstellt, welche als Source min. 1 Adressobjekt und diese FSSO Gruppe hat. Die Gruppe kann direkt, bei der Bearbeitung der Policy als Source, rechts im Auswahlframe als Usergruppe verwendet werden. Dann kann schon getestet werden.

Will man übrigens wissen, welche User die Fortigate bereits sieht, schaut man sich auf der Firewall auf dem Dashboard „User & Devices“ das Widget „Firewall User“ an…

Troubleshooting…

https://kb.fortinet.com/kb/documentLink.do?externalID=FD47087