Support Forum
The Forums are a place to find answers on a range of Fortinet products from peers and product experts.
KhizerSaleem
New Contributor

Kerberos Authentication Configuration

Hi All,   I need the authentication while using explicit-web-proxy.   The matter of fact is that obviously, it needs Kerberos authentication for authentication of AD-Users but in the documents on the given link below, by Fortinet, it didn't give us the picture clearly. I read the authentication document in which it defines all Kerberos authentication process.    http://help.fortinet.com/...it%20proxy%20users.htm  

 Can I configure the FortiOS 5.6.x authentication settings on FortiOS 6.0, as I'm using this on Fortigate-VM 64 on evaluation period, or I need to set up the only Kerberos environment?

 

I want to know that is there any good guide or any video that can show us how to configure the process or do you have any kind of notes regarding this.    Hope to see your kind reply soon.   Thnks in advance.   Best Regards Khizer Saleem

14 REPLIES 14
slashdes

Hi! I have 2 ADs, and configured for kerberos auth fortigate 200e on it. It's works. But I have the issue, in some app. I have response for ntlm auth., but internet works on PC. I type the creds of my AD user, and see log on fortigate-ntlm auth failed ,user NA. Somebody have any ideas
xsilver_FTNT

Hi,

I might have few ideas .. 

 

1. log in from browser first as most of the custom apps are politely said network hostile and do not handle even basic networking like port usage and releases properly. And authentication ... muhehe. MOst app don't do NTLM.

 

2. on FGT .. how about some basic networking / auth troubleshooting?

diag debug app fnbamd 7

diag debug auth -1

diag sniff pack any 'host <DC-IP> and port 88 or 389' 6 0 a   ... or GUI packet capture towards DC Kerberos should communicate on udp port 88 and DC LDAP by default on port 389. So check if you got ticket granted.

If your tokens are short and starts with T1R then those are NTLM (as 'negotiate' Auth method offer client ability to choose between NTLM and Kerberos token).

 

 

3. on workstation you can check if you do have a key via cmd: klist

or sniff via Wireshark as well.

 

Config examples on: 

http://help.fortinet.com/...it%20proxy%20users.htm

 

Tomas Stribrny - NASDAQ:FTNT - Fortinet stuff - TAC Staff Engineer

learningall555555

Hi, 

i hope that you can give me advice where to look further. 

I tried to configure explicit-proxy with kerberos authentication.

By cookbook only "problematic step" was to convert  keytab to base64 and paste in cli. 

After that I got an option to import keytab from file or paste direct to  FG web.

I tried all options to eliminate problems with possible copy paste error. 

Everything is setup by the official  cookbook, but i still can't authenticate with enabled authentication.

 

Browser return clasicall error : The proxy server is refusing connections 

Client have ticket, and in wireshark and browser i can see Negotiate field with:

Proxy-Authorization: Negotiate YII.........

 

When i connect to fortigate web interface, in wireshark and in FG capture and in debug I can see ldap messages (udp 389) between FG and ldap.

 

But when testing with enabled proxy in browser, i don't see ldap or kerberos packet between fortigate and AD/ldap. 

During page refresh with  enabled debug settings: 

-diagnose wad debug enable category auth;

-diagnose debug enable;

 

 

I got from debug logs: 

[size="1"][25327] wad_auth_rule_match(892): match auth rule succ: Auth-Rule[/size] [size="1"][25327] wad_http_request_get_user(25981): process=25327 auth-rule=Auth-Rule user=/0/0 ip-based/auth-cookie/transact=1/0/0 tp_proxy_auth=0 auth_req=(nil) auth_line=(nil)[/size] [size="1"][25327] wad_http_auth_status_proc(25478): authenticate result=challenge[/size] [size="1"][25327] wad_hauth_trace(171): trace_no_auth_resp is disabled[/size] [size="1"][25327] wad_http_request_get_user(25981): process=25327 auth-rule=Auth-Rule user=/0/0 ip-based/auth-cookie/transact=1/0/0 tp_proxy_auth=0 auth_req=0x7f012f900c10 auth_line=0x7f012f835ff0[/size] [size="1"][25327] wad_hauth_method_chg_get(1376): method:http-mix->Negotiate hdr=Neg[/size] [size="1"][25327] wad_krb_get_keytab(425): ticket's princ name:HTTP/fortigate.lo.tr@LO.TR[/size] [size="1"][25327] wad_nego_authenticate(245): Error occurred during krb authentication.[/size] [size="1"][25327] wad_http_auth_status_proc(25478): authenticate result=failure [/size]

 

I am stuck, i don't know what else to do. From logs and google i couldn't find some clue what is wrong.  

I checked  network devices, that some rule (access-list) don't block kerberos traffic, but i would see kerberos in capture from FG to AD. 

I didn't see single kerberos packet during testing.

LDAP (udp 389) passes during logon to FG web interface, so LDAP 389 is not blocked for sure. But still i  can't see  389 during page refresh with proxy enabled.   I hope that you can advice me.

Kind greetings,

 

 

 

 

xsilver_FTNT

I guess you did 'ktpass' and gathered your keytab.

Then somehow converted to Base64 ... there might be some problems with conversion.

On Windows what worked for me is 'certutil -encode  keytab.file  keytab.file.base64.encoded

Pay attention to FGT config and case sensitivity on principal string .. protocol is uppercase as well as realm (that stuff @REALM-HERE), FGT's serving domain in between can be lowercase

Talking about:

set principal "HTTP/fgt.test.local@TEST.LOCAL

 

Make sure you have OK connection to LDAP set in 'config user krb-keytab'

 

Tomas Stribrny - NASDAQ:FTNT - Fortinet stuff - TAC Staff Engineer

learningall555555

I tried with certuil as you suggested, same string only separated evenly. Tried copy paste as is with "", and in one line, same error. It is like FG don't even start "kerberos auth check process" because i can't see any traffic on TCP/UDP port 88.

Even with wrong keytab i would see some TCP/UDP 88 to AD.

Can I somehow get better debug from kerberos process ?

 

While testing keytab on linux with kinit, tcpdump showed "TCP 88" packets, and returned no error.

After checked with klist i can see ticket in linux so keytab must be ok.

Keytab was generated on W2016 AD.

 

Here is FG configuration of krb-keytab and ldap without passwords and keytab.

#configuration of krb-keytab and ldap. # ldap test return success.

edit "ldap-kerberos" set server "192.168.0.10" set cnid "cn" set dn "dc=lo,dc=tr" set type regular set username "lo\\FortigateFirewall" set password ENC lld..... next

#krb-keytab config user krb-keytab edit "http_service" set principal "HTTP/fortigate.lo.tr@LO.TR" set ldap-server "ldap-kerberos" set keytab "......................................................." next end

 

On linux tested keytab with:

kinit -k -t fortigate.keytab HTTP/fortigate.lo.tr@LO.TR #no error

klist #result new ticket i can see by time. Default principal: HTTP/fortigate.lo.tr@LO.TR Valid starting Expires Service principal 02/17/2020 17:56:40 02/18/2020 03:56:40 krbtgt/LO.TR@LO.TR

Labels
Top Kudoed Authors