Explicit proxy是Fortigate firewall集成的眾多優秀的功能之一,下面說下Explict防火墻的簡單配置。文章中僅介紹部署web proxy的部分,FTP proxy的配置過程類似,這里就先略過。
背景:
1.
最近使用中國聯通的網絡訪問國外的一些工作常用站點非常困難,網頁響應時間長,甚至無法加載網頁等。
a.
某些部門的同事需要下載國外的同事發來的一些文件,很多是通過國外的云服務共享的,比如dropbox,google docs,onedrive等等;
b.
某部門同事工作常用的站點,比如webex.com,netsuite.com,微軟的CRM站點;
c.
外企常用的搜索引擎google.com等等。大家都知道靠baidu是搜索新的有價值的技術資料是非常困難的;
2.
解決方案:
a.
代理;
b.
VPN;
c.
在國外的office提供VM給國內的用戶遠程使用等等;
這里筆者之前主要使用的是代理服務器,SQUID for windows,沒有使用Linux版本的SQUID主要是因為公司熟悉Linux的同事并不多,怕以后維護比較困難。我之前的SQUID配置了NTLM驗證,公司內通過Domain環境管理,所以為用戶開放權限比較方便。由于SQUID for windows的版本非常舊了,更新到2.7之后就不更新了。碰巧前端時間剛剛幫公司更換了Fortigate的NGFW,經過國外的同事提示,NGFW內置了Explicit proxy,非常有新鮮感。也正好有脫離SQUID的想法,所以研究了起來。
3.
配置步驟,大概分為以下幾個部分:
i.
配置windows NPS作為RADIUS服務器;
ii.
在Active Directory中建立相應的group,用于分配權限;
a.
啟用explicit feature;
b.
啟用WAN Optimization feature;
c.
配置Explicit proxy使用的端口;
d.
在需要的interface啟用explicit proxy web支持;
e.
配置explicit proxy使用的service;
f.
配置explicit policy;
g.
配置RADIUS驗證用戶,方便權限管理;
——————————————————————————–
——————————————————————————–
環境信息:
FortiGate 200D;
FortiOS 5.2;
使用56789作為explicit proxy的服務端口;
使用windows Active Directory,通過windows NPS設置RADIUS server驗證用戶;
以下是具體的配置過程:
1.
啟用Explicit feature,啟用后的效果如下圖:
a.
通過web登錄FW進行GUI配置;
b.
System->Config->Features;
c.
啟用basic features中的WAN Opt. & Cache;
d.
啟用Security features中的Explicit Proxy;
2.
配置Explicit Proxy使用的服務端口,如下圖所示;
a.
依次展開system->Network->Explicit proxy
b.
在Enable web explicit proxy項目中勾選HTTP/HTTPS;
c.
在HTTP端口中輸入56789;
d.
在HTTPS端口保持默認設置0;
e.
在Realm一欄,輸入你想要提示窗口中顯示的文字,如“Please enter your domain credentials”;
f.
該頁面其他選項保持默認即可;
3.
選擇監聽explicit proxy請求的interface;
i.
筆者這里為LAN網絡;
ii.
雙擊LAN;
iii.
勾選enable explicit web proxy;
iv.
其他的interface中同理進行勾選;
A.
筆者這里將explicit proxy設置在國外HQ,國內的網絡和HQ通過LAN-2-LAN VPN連接,所以我需要將這個LAN-2-LAN VPN的interface啟用explicit web proxy;
a.
可以直接在上一步界面點擊listen on interfaces右側的編輯按鈕,或者system->Network->Interfaces;
b.
首先將本地網絡啟用explicit proxy feature,這是必須的一步;
c.
4.
配置explicit web proxy使用的service;
i.
允許任何服務的請求;
ii.
僅響應目的端口為80和443的請求;
iii.
允許所有協議請求;
iv.
允許向任何目的端口的請求;
a.
筆者這里做了個實驗,測試了僅開放向internet轉發目的端端口為80和443端口的請求,以提高安全性,但具體安全性如何還不了解;
b.
系統默認的webproxy服務一般是這兩點:
c.
筆者定義了兩個服務:
d.
下圖的service名為webproxy-80,service type為explicit proxy,這點需要注意。目的端的端口填寫80。同理再新建一個service,端口設置為443即可;
配置Explicit web proxy的用戶組:
a.
這里希望大家已經在Active Directory中建立好了響應的用戶組,筆者的用戶組的名稱為ProxyUser_CN,并且將需要使用explicit web proxy的用戶都加入了該組;
b.
然后需要指定RADIUS的相關信息;
i.
system->User & Device->Authentication->RADIUS servers;
ii.
新建一個RADIUS server,為這個RADIUS取個名字,輸入RADIUS服務器的FQDN或者是IP地址;
iii.
輸入您在RADIUS服務器中設置的secret,這里筆者推薦您使用windows NPS自帶的secret生成器生成的長度為64bit的高復雜度secret,并且妥善保存;
iv.
其他項目不變,點擊ok即可;
c.
System->User & Device->User->User Groups
i.
新建一個User group,為該group命名;
ii.
type為Firewall;
iii.
添加remote server為我們上一步新建的RADIUS server;
iv.
其他項目保持不變,保存設置即可;
配置Explicit policy,這里是整個配置過程的一個特別需要注意過程。并不是因為這個過程有多難或多不好理解,而是因為這里通過GUI無法完成配置,因為通過FW本身的GUI節目無法配置policy需要使用的服務。筆者曾將這個問題作為一個bug提交給客服,但support給的回復是配置service的開關是隱藏功能,僅僅能通過cli進行配置。筆者對這個回答并不買賬,原因是如果您用Forti Manager的話,通過Forti Manager的管理界面就可以在GUI下配置該policy需要使用的service。
a.
具體的配置過程,大家可以參考官方的文檔介紹,我這里將我配置的命令粘貼如下,供大家參考:
b.
FW # config firewall explicit-proxy-policy
FW (explicit-proxy-p~icy) # edit 0
new entry '0' added
FW (0) # set proxy web
FW (0) # set dstintf wan1
FW (0) # set srcaddr 需要使用proxy的網絡地址
FW (0) # set dstaddr all
FW (0) # set action accept
FW (0) # set service webproxy-80 webproxy-443 這里是我們上一步建立的兩個service。就是這條在FortiOS 5.2中無法通過GUI實現;
FW (0) # set webcache enable
FW (0) # set identity-based enable
FW (0) # set ip-based disable
FW (0) # set active-auth-method basic
FW (0) # config identity-based-policy
FW (identity-based-p~icy) # edit 0
new entry '0' added
FW (0) # set groups 您定義的AD組的名稱;
FW (0) # set schedule always
FW (0) # set utm-status enable,非必要條目
FW (0) # set webfilter-profile 您自定義的策略,本條非必要;
FW (0) # set profile-protocol-options default ,非必要條目;
FW (0) # end
FW (0) # end
到這里FW端的配置工作就基本結束了,剩下的就是測試FW和RADIUS之間的連接性。這里筆者建議大家通過cli進行測試,測試命令為:diagnose test authserver radius radius-name authentication-protocol username password關于配置Windows NPS作為Explicit web proxy的RADIUS服務器的過程,由于這個過程適用于Fortigate防火墻的很多功能的驗證,我們稍后單獨寫一篇文章,敬請期待。
文章來源:http://yinzi7.blog.51cto.com/299508/1596415