Code Section

Showing posts with label FortiGate. Show all posts
Showing posts with label FortiGate. Show all posts

Monday, July 30, 2018

Fortinet FGT 動手做 - 整合免費的 Google Authenticator 兩步驟驗證 Part 2

因此我不禁思考,FortiGate 可以採用自家產品 FortiToken 作為 OTP Token 來進行兩階段驗證,但是我們能不能改成使用 Google Authenticator 來作為我們 FortiGate 的「兩步驟驗證」工具呢?

原先我有幾個想法 (Theory):
(T-1) FortiGate 可支援透過 Radius 通訊協定,與 3rd Party 的認證設備做身份驗證的溝通。(如下圖說明)
[✖] (T1-A) Google Authentication 並未提供 Radius 的溝通方式。

下圖為 T1 的實踐方式,FortiGate 與 RSA Authentication Manager 透過 Radius 通訊協定整合,使用者輸入帳號及 Passcode 登入。
<註>登入時先查看 Token 產生的動態密碼,並將原先的密碼 (Password)與 Token 動態密碼 (Token Code)合併為 Passcode。

(T2) 利用 Radius Server 作為 FortiGate 的遠端認證主機,由 Radius Server 往外將第二道認證拋給 Google Authentication。
[✖] (T2-A1) 原本考慮 Radius Server 採用 Microsoft NPS (Network Policy Server) on Windows,視窗介面較好操作,但 NPS 不直接支援這種做法。(下段有說明原因)
[✔] (T2-A2) Radius Server 採用 FreeRADIUS on Linux,再由 FreeRADIUS 拋給 Google Authentication 作動態密碼驗證。

來說說 T2-A1 的原因,Microsoft NPS 無法自由調整設定或客制,但 NPS 能設定條件,將符合條件的往外丟給其他 Remote Radius Server 作驗證:
(1) 如同文章開頭提到的,Google Authentication 並無提供 Radius 溝通方式,所以此路不通。
(2) 有些商用的 2-Factor Authentication 設備可支援 Radius 通訊協定,同樣也有提供 App 下載可作為 Mobile Token,就可與 NPS 做到 2FA 認證整合,至於授權計費方式就不細究,因為已經背離此篇的討論方向。

所以就朝 T2-A2 的方向,在 Linux 上安裝 FreeRADIUS,加上 Google Authenticator 認證機制,用這台來當作 FortiGate 的外部 Radius Server,看是否能達到使用 Google Authenticator 作為 FortiGate 的「兩步驟驗證」工具。

首先準備好 CentOS 6.7 64-bit 環境,為什麼是這個版本呢?因為我手上剛好有之前安裝好的 VM,不需要從頭開始安裝,而且 CentOS 也很容易安裝,這邊就不贅述如何安裝 Linux 作業系統,當然你要採用更新的 CentOS 7 應該也是沒問題的。

至於如何安裝 FreeRADIUS 及 Google Authenticator Module 做到 2FA 整合呢?下一篇我會再來詳細說明。



<<參考資料>>

Fortinet FGT 動手做 - 整合免費的 Google Authenticator 兩步驟驗證 Part 1

在現在的數位生活時代,Google 服務也漸漸成為密不可分的一部分,每天都會收發信件的 GMail、存在檔案及分享給別人的 Google Drive、排定每天行程的 Google Calendar、與手機通訊錄同步的 Google Contacts、上傳照片分享相簿的 Google Photos,當然還有每天要用幾百次搜尋的 Google Search,幾乎是每天一睜開眼睛就需要 Google。我常會開玩笑說,有很多網站幾天連不上都沒關係,但是如果哪天突然連不上 Google 服務,會不知道今天排定什麼事、沒有那麼多好用的工具,要怎麼樣開始一天的工作,感覺超恐慌的。

Google 的雲端服務是如此的方便,在任何時間、任何地點、任何裝置,只需要輸入帳號和密碼登入後,就能存取你要的資料、使用你要的服務,而帳號和密碼當然就是最重要的鑰匙,保護著你的所有重要資料。雖然這樣的機制看起來似乎很安全,但其實不然,如果使用習慣不好,或是常在非個人的裝置上登入,其實帳號和密碼很容易會被有心人取得。

Google 希望盡可能提供更安全的方法來保護使用者的帳戶,在幾年前推出「兩步驟驗證」(或叫做 兩階段驗證、雙重驗證、雙因子驗證)就是一個不錯的解決方案。在啟動兩步驟驗證後,在使用者輸入帳戶和密碼後,會多加一個驗證動作,需要輸入你手機上看到的動態驗證碼,來驗證登入者是否為本人。

「兩步驟驗證」在以往智慧型手機還不普遍的時候,是採用 SMS 簡訊方式,傳送到當初註冊時所填寫的手機號碼,但使用者需自行支付簡訊傳送費用。在智慧型手機普及後,Google 開發出 Google Authenticator 的 App,安裝在 Android/iOS 手機上,經過簡單的設定之後,它就會產生你的帳號「兩步驟驗證」的隨機驗證碼,不需要額外的費用。

Google Authenticator 是一種方便又免費的「兩步驟驗證」工具,因此後來有許多雲端服務,也都陸續支援採用 Google Authenticator 作為他們的「兩步驟驗證」工具,以加強用戶的安全性,讓使用者不需要在手機上安裝多個隨機驗證碼 App,也省下自行開發及維護驗證服務的費用。

因此我不禁思考,FortiGate 可以採用自家產品 FortiToken 作為 OTP Token 來進行兩階段驗證,但是我們能不能改成使用 Google Authenticator 來作為我們 FortiGate 的「兩步驟驗證」工具呢?下一篇我們來看這個構想該要如何進行。

Friday, June 15, 2018

Fortinet FGT 進階應用 - 用 FortiClient 安全管控企業防火牆 VPN 連線

從遙遠批踢踢傳來 Mr. Jay 的任務。

<<任務要求>>
公司最近要求研究VPN可以推薦的設備,
主要也是跟客戶端需求有關,希望VPN的功能可以看到:
Client端連線進入VPN Server 的真實IP/MAC。

在我研究完OpenVPN之後,要我找尋國內或是國外,
有沒有設備具有這種功能(主管的經驗是覺得沒有,但還是要我找看看)
曾詢問過高層客戶端所要用到的VPN設備是哪種,它們也說不清楚....
只知道說希望能以 Palo Alto 為主,不然我就是找看看有沒有符合他們需求的設備。
有大大對於VPN設備有熟悉的嗎?  想問有此功能能推薦的VPN設備?

<<提出疑點>>
要能看到 Client 端連線的真實 IP/MAC,應用用途為何?

關於連線的真實 IP,若是要看目前連線的即時資訊,要看 VPN Server 的管理功能是否有提供;若是要將每個 VPN 連線歷史記錄的來源 IP 留存下來,一般 VPN Server 產生的 Log 應該都會有,只是在 VPN Server 上能夠保留多久,是否需要另行匯出作歷史記錄保留,這就需要自行斟酌。
一般需要連線 VPN 的使用者,通常以在外出差的居多,使用場所大致是使用店家、旅館提供的 free wifi 服務,或是透過自己手機 3G/4G 分享,這些環境的 Public IP 通常都不固定,如果是要考慮限制連線的來源 IP,這應該不是個有效的管理方法。

至於如果要看到 Client 的 MAC Address,除了 Client 軟體本身能撈取資訊並回傳之外,可能沒有其他方式。

<<進行推理>>
企業需要讓在外出差的員工同樣能連線存取公司資源,會考慮開放可由 internet 直接存取,但開放連線的同時,等於是將某些內部伺服器直接暴露於 internet 上,會讓除了公司員工以外的有心人士,或是不特定的惡意攻擊有機可乘。

因此企業會考慮採用 VPN 功能,提供給在外的員工使用,讓他們在開放的 internet 環境,在建立 VPN 通道連線後,在安全加密的通道中存取公司內部資源,以保障公司重要資產的安全。

但是在提供員工使用在外使用 VPN 功能時,資訊部門通常會擔心兩個問題:
(1)使用者帳號、密碼外流,遭不明人士連入公司,竊取營業機密。
(2)員工使用私人或不合規裝置連線,裝置內的病毒或蠕蟲,藉由此跳板入侵公司內部。

Fortinet 針對這些問題,推出解決方案來防範:
(1)FortiToken Two-Factor (OTP) Authentication (雙因子認證/動態密碼認證)
(2)FortiClient Device Identification (連線裝置辨識管理)

FortiClient 是 Fortinet 公司開發的免費終端裝置 VPN 連線軟體,支援 IPSec VPN 和 SSL VPN 連線,可安裝在 PC、Laptop、Phone、Tablet…等,涵蓋市面上 90% 以上裝置;中心端設備採用 FortiGate 多功能防火牆作為 VPN Server 角色,使用 VPN 功能不需額外授權費用。

首先來談談 FortiToken,外觀照片如下,本體構造簡潔,提供 IP54 防水防塵防護,長效電池壽命可達 3 年以上。
順道一提:
(1)FortiToken 也有行動裝置的 FortiToken Mobile App,可安裝於 Android/iOS 行動裝置上。(FortiGate 需加購 FTK Mobile 授權)
(2)FortiGate Two-Factor (OTP)認證機制也可與 3rd Party 認證設備整合,如 RSA SecurID, SafeNet, Celestix HOTPin…等。

FortiToken 功能說明:
(1)提供第二道動態密碼保護,每 60 秒產生一次,防護性高。
(2)使用者先輸入自己的密碼後,再輸入第二道動態密碼。
(3)FortiToken 免軟體授權費,不需每年硬體維護費用。
(4)對 FortiGate 來說,Token 可以給防火牆管理者使用,也可以給 VPN 用戶使用。
(5)FortiToken 設定流程線上影片展示:
IPsec VPN Two-Factor Auth. with FortiToken (5.4) - YouTube

使用 FortiToken 的好處:
(1)防火牆管理免限制來源 IP
-管理者帳號用 FortiToken 進行雙重保護。
-不需要再管理眾多的來源 IP。
(2)外部可安全連至公司內部伺服器
-網路管理者只需設定 SSL VPN 的使用帳號。
-使用者帳號用 FortiToken 進行雙重保護。
-可由防火牆規則限制使用者連通 SSL VPN 後,允許存取的伺服器IP或網段。
-免去設定 Virtual IP、防火牆 Policy、連線來源 IP…等繁瑣手續。

再來談到連線裝置辨識管理 (Device Identification),公司一般會希望員工使用配發的筆電平板裝置,因為權限管控及防護軟體可以套用到配發裝置,以確保符合公司安全政策。現在 VPN 軟體在官網或 Store/Market 都可自行下載,員工的帳號密碼也拿在手上,很容易可以安裝到員工的私人電腦,所以 Device Identification 是『如何防範合法使用者使用未授權裝置』連線到公司內部的方法。

FortiClient+Device Identification 說明:
(1)僅允許公司核准的終端設備進行 VPN 連線,維護公司內資訊系統安全。
(2)避免員工使用私人設備進行 VPN 連線,衍生可能的資安風險。
[註] 此功能 FortiGate 免費提供 10 個裝置授權,若要用更多裝置需加購軟體授權。

對了,上面說了這麼多,這兩種安全機制皆能單獨運作,也可以結合應用喔!
如下圖就是 FortiGate+RSA Authentication Manager+RSA SecurID Token+Device Verification 的機制整合應用。

善用「動態密碼認證+連線裝置管理」機制,可以達到企業 VPN 連線更安全的防護。
如果有興趣再深入了解的朋友,可於文章的底下留言。


〈本文同步刊載於痞客邦部落格〉