http://cookbook.fortinet.com/providing-single-sign-using-ldap-fsso-agent-advanced-mode-expert/
FSSO提供一種高階的存取驗證控制方式...
她可以讓source不經過captive-portal操作驗證...
但是他需要搭配LDAP去支持..
因此必須基於在internal network的架構...
另外有一種是以FortiGate作為FSSO agent..
但是老實講他不好用...
他常常跟AD登入的帳戶同步不一致...
RSSO則是實作稍微複雜...
通常針對無線網路..
有線架構必須該interface支援802.1x...
另外要架設AAA提供RADIUS控制...
在一般情況下, 遠端client存取本地端(internal)的服務資源, 例如某一台Web Server或著FTP服務, 因為外界並無法知曉內部的private IP(IPv4), 因此透過DNAT的形式來做port-forwarding. 例如如下的DNAT設定:

透過vwan1的外部介面進行1:1的轉發至10.2.149.126的內部資源, 使用FTP服務(21), 使得遠端client穿過FortiGate存取該服務.
但是可能有一個案例, 如果存取的服務是FortiGate本身呢? 如下圖所示:

這是一個SSL VPN的設定, SSL VPN定義的服務介面(ssl.root)被設定在port1上而非wan1, 在這樣的情況對於遠端client來說, 直接使用DNAT操作不會有任何問題.

但是對於本地端(internal)想要存取這個SSL VPN可能就會出現一些情況, SSL VPN服務無法正常存取. 管理者會考量到ssl.root的服務介面設定在port1可能考量到一些原因, 其中:
透過policy設定可以直接限制那些IP或著那些GEO可以存取SSL VPN. 例如下圖的policy設定案例:

限制只有Intranet以及部分允許的國家來源IP存取RADIUS, DNS和HTTP服務. 在上圖來看, 這種DNAT沒有問題, 因為服務不再FGT本身. FOS在操作NAT邏輯時判斷下一個gateway找到匹配的DNAT policy便直接轉發, 這過程沒有任何問題. 只是服務存在於FGT本身便會出包, 像是前面提及的SSL VPN, 本地端存取會發生問題, 有一些解法可以解決, 但是未必是好做法:
1. 使用DNS translation
2. 透過Hairpin NAT方式(NAT loopback)
第一個作法, 使用FGT的DNS translation直接將本地端的請求轉回到ssl.root服務介面, 不經過DNAT, 透過DNS解析, 但是考量到public IP的稀少性, 這做法並不合適. 第二個做法, Hairpin NAT確實是一個可考量的方案, 只是設定要注意, DNAT的External IP要確實填入public IP避免造成routing問題.
這邊將提及另外一種作法, 為了存取FGT的本身服務, 以及限制來源端的存取. 混合Local-in policy並且不再使用DNAT, 將ssl.root服務介面設定在wan1.

但為了限制存取來源, 必須要加入Local-in policy, 該設定並無GUI操作, 只能透過CLI.
http://help.fortinet.com/fos50hlp/52data/index.htm#FortiOS/fortigate-firewall-52/Security Policies/Local-In Policies.htm%3FTocPath%3DChapter%25209%2520-%2520Firewall%7CSecurity%2520policies%7C_____8
例如下圖所示, 建立一個Local-in policy並且限制來源存取:

請注意, 該上圖是允許哪個來源存取, 但是另外必須要加入封鎖其他來源, 因為沒有這個服務default的deny policy.

policy的執行是按照順序的, 所以如果deny的policy放在前面需要使用move指令把他往後移, 避免造成全部阻斷.
透過Local-in policy的操作後, 便可以達成來源端的存取限制, 當然! 對於SSL VPN來說更快的做法直接於VPN setting設定存取來源.

但對於其他服務, 像是IPsec, CAPWAP或著FCT-Access存取, 沒有方便的GUI設定, 使用Local-in policy是一個直接的考量, 另外Local-in policy也可以應用在限制來源端存取特定目的端, 非FGT本身服務. 例如限制來源存取本地端的Web(HTTP)資源, 不過這就不如直接在通用的IPv4/IPv6 policy來的方便了.
http://cookbook.fortinet.com/exempting-google-ssl-inspection/
SSL Exemption可以針對一些問題:
1. 如果SSL目的端是可信任的, 將他排除.
2. Exemption的URL可以是wildcard
3. 使用SSL Exemption是針對DPI設計的, 如果遭遇到的目的端本身使用自己的SSL憑證, 進而導致Certificate Warning.. 使用SSL Exemption 將他排除.
內文搜尋

X