9
Knowledge Base Explicit Proxy Authentication with NTLM/FSSO Seite 1 von 9 BOLL Engineering bemüht sich um die Richtigkeit aller in diesem Artikel aufgeführten Informationen und Daten. Eine Haftung oder Garantie für die Aktualität, Richtigkeit und Vollständigkeit dieser Informationen und Daten ist ausgeschlossen. BOLL Engineering behält sich vor, ohne Ankündigung Änderungen vorzunehmen. BOLL Engineering haftet weder für direkte noch indirekte Schäden, die durch die Nutzung der Informationen oder Daten dieses Artikels entstehen oder entstanden sind. Der Inhalt dieses Artikels ist urheberrechtlich geschützt. Die Vervielfältigung von Informationen oder Daten, insbesondere die Verwendung von Texten, Textteilen oder Bildmaterial bedarf der vorherigen Zustimmung von BOLL Engineering. Im Text vorkommende Produktenamen sowie Bezeichnungen von Technologien oder Konzepten sind meistens Warenzeichen oder eingetragene Warenzeichen der entsprechenden Firmen. Datum 26.07.2011 Hersteller Fortinet Modell Type(n) Fortigate Firmware FortiOS v4.2 Copyright Boll Engineering AG, Wettingen Autor sy Dokument-Version 1.1 Situation: In vielen Unternehmen arbeiten die Mitarbeiter nicht direkt mit Ihren eigenen Workstations (und damit mit ihren eigenen IP Adressen), sondern über einen (oder mehrere) Terminalserver. Das hat zur Folge, dass mehrere Mitarbeiter aus Sicht der Firewall mit der gleichen IP-Adresse daher kommen. Ist nun fürs Surfen im Internet eine User Authentifizierung an der Firewall erwünscht, ist das nicht mehr möglich, da die Firewall den Mitarbeiter über eine IP-Adresse identifiziert. Kommen nun mehrere Mitarbeiter über die gleiche IP-Adresse, kann die Firewall das nicht mehr auseinander halten.

KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Embed Size (px)

Citation preview

Page 1: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 1 von 9

BOLL Engineering bemüht sich um die Richtigkeit aller in diesem Artikel aufgeführten Informationen und Daten. Eine Haftung oder Garantie für die Aktualität, Richtigkeit und Vollständigkeit dieser Informationen und Daten ist ausgeschlossen. BOLL Engineering behält sich vor, ohne Ankündigung Änderungen vorzunehmen. BOLL Engineering haftet weder für direkte noch indirekte Schäden, die durch die Nutzung der Informationen oder Daten dieses Artikels entstehen oder entstanden sind. Der Inhalt dieses Artikels ist urheberrechtlich geschützt. Die Vervielfältigung von Informationen oder Daten, insbesondere die Verwendung von Texten, Textteilen oder Bildmaterial bedarf der vorherigen Zustimmung von BOLL Engineering. Im Text vorkommende Produktenamen sowie Bezeichnungen von Technologien oder Konzepten sind meistens Warenzeichen oder eingetragene Warenzeichen der entsprechenden Firmen.

Datum 26.07.2011

Hersteller Fortinet

Modell Type(n) Fortigate

Firmware FortiOS v4.2

Copyright Boll Engineering AG, Wettingen

Autor sy

Dokument-Version 1.1

Situation:

In vielen Unternehmen arbeiten die Mitarbeiter nicht direkt mit Ihren eigenen Workstations (und damit mit ihren eigenen IP Adressen), sondern über einen (oder mehrere) Terminalserver. Das hat zur Folge, dass mehrere Mitarbeiter aus Sicht der Firewall mit der gleichen IP-Adresse daher kommen. Ist nun fürs Surfen im Internet eine User Authentifizierung an der Firewall erwünscht, ist das nicht mehr möglich, da die Firewall den Mitarbeiter über eine IP-Adresse identifiziert. Kommen nun mehrere Mitarbeiter über die gleiche IP-Adresse, kann die Firewall das nicht mehr auseinander halten.

Page 2: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 2 von 9

Lösung:

Das Problem kann auf der Fortigate durch die Nutzung eines Proxyserver im Browser gelöst werden. Die Fortigate wird im Browser als Proxy angegeben und die Authentifizierung erfolgt nun über NTLM. Die Schnittstelle vom NTLM zur AD (zum User- und Passwordcheck) wird über das Fortinet Single-Sign On (FSSO, früher auch FSAE genannt) bereitgestellt.

Konfiguration Folgende Konfigurationsschritte sind durchzuführen

1. Konfiguration des Proxyservers im Browser 2. Installation & Konfiguration des FSSO auf einem Rechner in der Domäne 3. Konfiguration der Fortigate

a. Aktivieren des Explicit Proxy b. Anbindung des FSSO c. Generieren von Usergruppen d. Erstellen von Identity-based FW-Rules

Page 3: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 3 von 9

1. Konfiguration des Proxyservers im Browser Im jeweilig genutzten Browser muss die Fortigate als Webproxy angegeben werden. Diese Konfiguration ist natürlich Browser-abhängig. Als Beispiel sei der Internet Explorer 9 genannt. Die Einstellung wird hier unter Extras � Internetoptionen � Verbindungen � LAN-Einstellungen vorgenommen.

2. Installation & Konfiguration des FSSO auf einem Rechner in der Domäne Die Kommunikation mit dem Active Directory wird vom FSSO-Agent erledigt. Dieser muss auf einem Rechner der Domäne installiert sein (für die reine NTLM Authentication muss es nicht zwingend der Domain Controller selber sein). Die Installationsdatei kann bei Fortinet downgeloaded werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO.

Page 4: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 4 von 9

Ist die Installation erfolgt (muss mit Admin-Rechten geschehen und erzwingt einen Reboot), kann der FSSO Agent konfiguriert werden. Hierfür muss die Checkbox „Support NTLM authentication“ aktiviert werden und ein Passwort für die Kommunikation mit der Fortigate gesetzt werden (dieses Passwort wird unter Schritt 3.b wieder benötigt). Weiterhin muss unter „Select Domains To Monitor“ die verwendete Domäne ausgewählt werden. Um später auf der Fortigate das Memory ein wenig zu schonen, können mittels der Funktion „Set Group Filters“ die Gruppen selektiert werden, die für die Authentication auf der Fortigate gebraucht werden. Werden hier keine Gruppen gesetzt, werden sämtliche Gruppen zur Fortigate synchronisiert – egal ob diese gebraucht werden oder nicht.

3. Konfiguration der Fortigate

a. Aktivieren des Explicit Proxy Zunächst muss auf der Fortigate der Web Proxy eingeschaltet werden. Dieses passiert unter System � Network � Web Proxy. Es werden die gewünschten Protokolle und die dazugehörigen Ports konfiguriert. Die angegebenen Ports finden Ihre Entsprechung in der Proxy-Konfiguration vom Browser (Schritt 1).

Nun muss der Web Proxy der Fortigate noch auf dem Interface aktiviert werden, auf dem die Webanfragen eintreffen. Da die Clients in unserem Beispiel im LAN sitzen, wird im LAN Interface der „Enable Explicit Web Proxy“ aktiviert.

Page 5: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 5 von 9

b. Anbindung des FSSO

Nun muss auf der Fortigate die Verbindung zum FSSO hergestellt werden. Dieses geschieht unter User � Directory Service � Directory Service. Es wird die IP Adresse vom dem Rechner angegeben, auf dem der FSSO installiert wurde und das dort konfigurierte Passwort wiederholt.

Nach Bestätigung dieser Eingaben kann nach einer gewissen Wartezeit (ca. 30 Sekunden) die Verbindung zum FSSO überprüft werden. Bei erfolgreicher Verbindung erscheint ein blaues Dreieck neben dem Collector, auf welchem per Mausklick die gewählte Domäne und deren Gruppen aufgelistet werden können.

c. Generieren von Usergruppen Um in einer Firewall Regel eine Domänen Gruppe zu nutzen, muss diese in eine Fortigate User Gruppe integriert werden. Es können mehrere Domänengruppen pro Fortigate User Gruppe angegeben werden.

Page 6: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 6 von 9

d. Erstellen von Identity-based FW-Rules In einem letzten Schritt muss nun noch eine (oder mehrere) entsprechende Firewall Regeln erstellt werden, welche für das Surfen der Mitarbeiter verwendet wird. Zunächst muss darauf geachtet werden, dass als Source Interface nicht das LAN-Interface, sondern das Interface mit dem Namen „web-proxy“ verwendet wird. Dieses Interface erscheint automatisch, sobald der Web Proxy bei Schritt 3.a aktiviert wird. Innerhalb dieser Firewall Regel kann nun die „Identity based Policy“ verwendet werden, um jeder der konfigurierten Gruppen (Schritt 3.c) ein entsprechendes UTM Profile, sowie passende Schedule- und Logging-Einstellungen zuzuweisen.

Page 7: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 7 von 9

Troubleshooting Falls nach obiger Konfiguration beim Browsen doch ein explizites Authentifizierungsfenster angezeigt wird, bedeutet das, dass das NTLM nicht funktioniert. In diesem Fall können folgende Troubleshooting Schritte bei der Fehlersuche helfen. Die einzelnen Schritte überprüfen jeweils die obigen Konfigurationsschritte. Schritt 1: Ueberprüfen der richtigen Verbindung zwischen Client und Fortigate. Wird auf einem Client gesurft, sollte man im Netz eine Verbindung zwischen dem Client und der Fortigate auf dem im Browser konfigurierten Port (in unserem Fall Port 8080) sehen. Dieses kann mittels des Packetsniffer auf der Fortigate geprüft werden: diag sniffer packet <Name des LAN-Interfaces> „port 8080“ 4 FG200B # diag sniffer packet port16 'port 8080' 4

interfaces=[port16]

filters=[port 8080]

2.551828 port16 -- 10.41.0.208.52905 -> 10.41.0.1.8080: syn 2225319820

2.551879 port16 -- 10.41.0.1.8080 -> 10.41.0.208.52905: syn 2735539818 ack 2225319821

2.552099 port16 -- 10.41.0.208.52905 -> 10.41.0.1.8080: ack 2735539819

2.560620 port16 -- 10.41.0.208.52905 -> 10.41.0.1.8080: psh 2225319821 ack 2735539819

2.560650 port16 -- 10.41.0.1.8080 -> 10.41.0.208.52905: ack 2225320351

2.563445 port16 -- 10.41.0.1.8080 -> 10.41.0.208.52905: psh 2735539819 ack 2225320351

2.571112 port16 -- 10.41.0.208.52905 -> 10.41.0.1.8080: psh 2225320351 ack 2735540042

Wichtig ist, dass man hier eine aktive TCP-Verbindung sieht. Es müssen also der 3-way-tcp-handshake und nachfolgende Daten zu sehen sein. Alternativ kann auch der Wireshark (oder ein anderer Packetsniffer) auf dem Client verwendet werden, um die Proxy-Verbindung zwischen Client und Fortigate zu kontrollieren. Am besten nutzt man hier den Capture Filter „port 8080“ (oder den entsprechenden Proxy-Port), um uninteressanten Traffic auszublenden. In dem nachfolgenden Mitschnitt ist die NTLM-Authentication wunderschön zu verfolgen. Nach dem initialen „GET“ vom Client (Packet #4) antwortet die Fortigate mit einem „Proxy authentication required“ (#6). Der Client wiederholt nun den GET-Request mit einer NTLM-Negotiation (#7), der NTLM-Challenge wird von der Fortigate zurückgesendet (#8), worauf der Client seinen GET-Request mit der eigentlichen Authentifizierung wiederholt (#9). Nun erst wird die Webseite übertragen.

Page 8: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 8 von 9

Schritt 2: Ueberprüfen der FSSO Installation und dessen Kommunikation mit der Fortigate und dem AD Zunächst muss sichergestellt werden, dass die Fortigate mit dem FSSO-Agent kommunizieren kann. Dieses wird bereits bei der Konfiguration geprüft. Sobald das blaue Dreieck erscheint, ist die Kommunikation in Ordnung. Erscheint dieses Dreieck nicht, liegt ein Kommunikationsproblem vor. Prüfen Sie hier bitte noch mal die IP und das Passwort. Falls auf der Workstation, auf dem der FSSO installiert ist, eine Firewall läuft, stellen Sie bitte sicher, dass diese den Port 8000 (oder der Port, der für die Kommunikation konfiguriert wurde) auch zugelassen wird. Allenfalls muss wieder mit einem Packetsniffer geschaut werden, wo es hakt. Schritt 3: Ueberprüfen der NTLM Authentication der FG zum FSSO Auf der Fortigate kann mittels des „debug application“ CLI-Kommandos die Kommunikation zwischen Fortigate und FSSO Client geprüft werden: FG200B # diag debug app wad 1024

FG200B # diag deb ena

FG200B #

wad_fsae_ntlm_req_send(252): req=0x9c564cc ntlm=0x9c52046/56

wad_fsae_proc_ntlm_resp(352): req=0x9c564cc code=0 len=240

wad_fsae_proc_ntlm_resp(364): nmsg=TlRMTVNTUAACA … AAAAAAAAAAA=BBER len=236

wad_fsae_ntlm_req_send(252): req=0x9c564cc ntlm=0x9c522e5/532

wad_fsae_proc_ntlm_result(404): uname=SY uname_len=2 grp= BOLL/DOMAIN USERS

wad_fsae_group_parse(169): make membership=0x9c4e6c0 n_member=1

[member 1 len=17]: BOLL/DOMAIN USERS

wad_fsae_ntlm_notify(188): uname=SY ms=0x9c4e6c0 uname_len=2

increased user count, quota:3000, n_user:1, n_shared_user:1, vd_used: 1, vd_max

0, vd_gurantee: 0

wad_auth_membership_match(272): grp->type=1 user->grp_type=1 ms=0x9c4e6c0

wad_auth_ldap_member_match(193): comparing grp_member=17/BOLL/DOMAIN USERS

auth_member=17/BOLL/DOMAIN USERS

wad_auth_ldap_member_match(199): auth_member used BOLL/DOMAIN USERS

wad_hauth_req_authorize(391): authorized on policy=0x9c57940 group=ntlm-

testgroup

FG200B # diag deb dis

FG200B # diag debug app wad 0

Und auf der Gegenseite, dem FSSO, kann das Log vom Collector Agent ausgelesen werden. Evtl. macht es Sinn, hier den LogLevel auf „Information“ zu setzen. Collectorlog: 07/20/2011 17:37:41 [ 4392] Bytes received from FortiGate: 78 07/20/2011 17:37:41 [ 4792] process NTLM_AUTH_TYPE1MSG 07/20/2011 17:37:41 [ 4792] packet seq:1308071724 07/20/2011 17:37:41 [ 4792] seq:1308071724 NTLM msg len:56 07/20/2011 17:37:41 [ 4792] send NTLM_TYPE2_MSG, len:258 07/20/2011 17:37:41 [ 4392] Bytes received from FortiGate: 554 07/20/2011 17:37:41 [ 4032] process NTLM_AUTH_TYPE3MSG 07/20/2011 17:37:41 [ 4032] packet seq:1308071724

Page 9: KB - Fortigate - Explicit-Proxy-Authentication-with-NTLM · werden und ist typischerweise im entsprechenden FortiOS-Verzeichnis mit Unterverzeichnis FSSO zu finden. Bsp: /FortiGate/v4.00/4.0MR3/MR3_Patch_1/FSSO

Knowledge Base Explicit Proxy Authentication with NTLM/FSSO

Seite 9 von 9

07/20/2011 17:37:41 [ 4032] seq:1308071724 NTLM msg len:532 07/20/2011 17:37:41 [ 4032] NTLM auth passed 07/20/2011 17:37:41 [ 4032] domain:BOLL 07/20/2011 17:37:41 [ 4032] user:sy 07/20/2011 17:37:41 [ 4032] workstation:SY-PC 07/20/2011 17:37:41 [ 4032] ad_user_get_groups_str(): BOLL/Domain Users 07/20/2011 17:37:41 [ 4032] all groups: BOLL/Domain Users 07/20/2011 17:37:41 [ 4032] sent groups: BOLL/Domain Users 07/20/2011 17:37:41 [ 4032] send NTLM_RESULT_MSG, len:130 count:51