OPNsense配備了功能齊全的正向緩存(透明)代理。緩存代理通過緩存對頻繁請求的網頁減少帶寬使用並縮短響應時間。訪問控制列表可用於用戶身份驗證和/或(基於類別)Web過濾器。
功能包括:
多接口支持
透明模式(包括SSL / HTTPS)
ICAP支持反病毒/惡意軟件引擎
HTTP代理
FTP代理
用戶認證
訪問控制列表(對http(s) 和ftp都有效)
黑名單
基於類別的Web過濾
可以與流量×××器結合使用
認證
用戶身份驗證可以使用OPNsense標準和內置身份驗證器完成。包括:
LDAP(包括Microsoft Active Directory)
Radius
本地用戶管理
不進行認證
訪問控制
OPNsense支持全面訪問控制,包括基於:
子網
端口
MIME類型
禁止IP
白名單
黑名單
瀏覽器/用戶代理
流量控制
代理可以與流量×××器結合使用,並充分利用其×××功能。此外,它還包括自己的選項:
最大下載量
最大上傳量
整體帶寬限制
每個主機帶寬限制
基於類別的Web過濾器
不需要額外的插件,例如squidGuard, 因爲OPNsense有基於內置類別的Web過濾器支持。主要功能包括:
從遠程URL獲取
支持平面文件列表和基於類別的壓縮列表
自動將基於類別的黑名單轉換爲squid ACL
隨時瞭解內置調度程序
與最受歡迎的黑名單兼容
透明模式
透明模式意味着所有請求都將轉移到代理,而無需在客戶端進行任何配置。透明模式適用於不安全的http請求,但是通過安全(SSL)https連接,代理將成爲中間人,因爲客戶端將“與”代理“對話”,代理將使用客戶端需要信任的主密鑰對流量進行加密。
雖然我們不鼓勵在透明模式下使用https,但此功能在16.7以後的版本中發佈。
警告:使用透明HTTPS代理可能是一種危險的做法,您使用的某些服務可能不允許這種做法,例如網上銀行。
WPAD和PAC
如果無法使用透明代理,OPNsense仍支持通過WPAD / PAC進行自動代理配置。
警告:通過DNS的WPAD要求Web界面在默認HTTP端口(TCP / 80)上運行,這也是一種安全風險(MITM***)。在這種情況下,您應該通過代理連接或避免從不受信任的網絡配置應用程序。
設置高速緩存代理
啓用/禁用
要啓用代理,只需轉到“ 服務” - >“Web代理” - >“管理”,然後選中“ 啓用代理”,單擊“ 應用”。默認設置將使用基於本地用戶數據庫的用戶身份驗證啓用代理,並在LAN接口的端口3128上運行。
更改代理接口
如果要更改代理將綁定的接口(子網),請單擊“ 正向代理 ”選項卡。現在在代理接口字段中添加/刪除接口。添加時確保已應用並且標籤可見(輸入或從列表中選擇)。
更改代理偵聽端口
默認情況下,代理將在端口3128處偵聽,您可以通過單擊“ 正向代理 ”選項卡來更改此設置,並填寫代理端口數據庫中的端口。不要忘記應用您的更改。
啓用緩存
要啓用緩存,請單擊“ 代理設置”旁邊的箭頭以查看下拉菜單,然後單擊“ 本地緩存設置”。
選中啓用本地緩存,然後單擊應用。
注意:由於默認情況下不創建緩存,您需要在系統->診斷-> 服務下停止並啓動服務,這將確保正確創建緩存。
高級
在高級設置下(請參閱表單左上角的模式切換),您可以更改緩存大小,目錄結構和保留在緩存中最大對象尺寸。同樣,默認設置適用於普通瀏覽,將創建一個100MB緩存,最大對象尺寸爲4MB。
變更認證方法
單擊正向代理選項卡旁邊的箭頭來顯示下拉菜單。現在選擇認證設置並在認證方法字段中選擇所需的認證源 。如果您不想使用任何身份驗證,請單擊“ 清除所有”。
根據您在系統-> 訪問->服務器下設置的認證服務器, 您可以選擇以下一項或多項:
無身份驗證(保留字段爲空)
本地用戶數據庫
LDAP
Radius
FTP代理
啓用FTP代理單擊“正向代理”選項卡旁邊的箭頭,顯示下拉菜單。現在選擇FTP代理設置並在FTP代理接口字段中選擇一個或多個接口並應用。
注意:FTP代理僅在啓用代理服務器本身時才起作用。代理僅適用於非加密的ftp流量。
訪問控制列表
您可以通過單擊“ 正向代理”旁邊的箭頭來設置ACL,然後 選擇“ 訪問控制列表”。在這裏你可以:
設置允許的子網(默認情況下,將允許代理接口)
添加不受限制的IP地址(不受限制意味着這一點,沒有身份驗證,也沒有針對這些IP的黑名單)
添加禁止主機IP地址(禁止將阻止此客戶端使用代理)
白名單(點擊(i)查看示例,白名單優先於黑名單)
黑名單(如果白名單不允許,這將根據正則表達式阻止流量)
警告:填寫標記字段後,請不要忘記按Enter或逗號,否則將不會應用該值。它看起來應該類似於:
遠程黑名單/廣告攔截
使用簡單的平面文件來屏蔽廣告。對於此示例,我們將使用此處的廣告列表:
http://pgl.yoyo.org/adservers/serverlist.php?hostformat=nohtml
此列表是一個簡單的平面列表,如下所示:
101com.com 101order.com 123found.com 180hits.de 180searchassistant.com 1x1rank.com 207.net 247media.com
轉到“ 服務” - >“Web代理” - >“管理”,然後單擊“ 遠程訪問控制列表 ”選項卡
現在單擊表單右下角的+以添加新列表。
填寫:
啓用 | 選中 | 啓用/禁用 |
文件名 | yoyoads | 選擇唯一的文件名 |
網址 | (複製/粘貼網址) | 黑名單的URL |
類別 | (留空) | 用於基於類別的Web過濾 |
描述 | YoyoAds Blacklist | 描述說明 |
(注:以下是16.1.4版本的屏幕截圖,與現在最新版本有所不同):
保存更改
現在點擊下載ACLS並應用以啓用黑名單/廣告攔截器。
防火牆規則無代理繞過
要確保沒有人可以繞過代理,您需要添加防火牆規則。轉到防火牆 - >規則,並將以下內容添加到LAN接口上的列表規則頂部(如果LAN是您的客戶端和代理所在的位置)。
操作 | 阻止 |
接口 | LAN |
協議 | TCP / UDP |
源 | lan |
目標端口範圍 | HTTP |
類別 | Block Proxy Bypass |
描述 | Block http bypass |
保存
還有一個阻止HTTPS訪問的規則:
操作 | 阻止 |
接口 | LAN |
協議 | TCP / UDP |
源 | LAN |
目標端口範圍 | HTTPS |
類別 | Block Proxy Bypass |
描述 | Block http bypass |
保存並應用更改
配置瀏覽器/Firefox
在本例子中,以Firefox爲例,其他瀏覽器也可以參考。要配置代理,只需轉到網絡設置並按如下設置進行配置:
設置Web過濾
OPNsense中基於類別的Web過濾是通過使用內置代理和一個免費或商業黑名單來完成的。
爲此,我們將使用Fabrice Prigent管理的UniversitéToulouse 的UT1“網絡分類列表”。此列表根據知識共享許可免費提供。
預計與OPNsense合作的其他熱門列表包括:
Shallalist.de < http://www.shallalist.de/ >
免費供個人使用,部分用於商業用途
URLBlacklist.com < http://urlblacklist.com/ >
商業付費服務
Squidblacklist.org < http://www.squidblacklist.org/ >
商業付費服務
在本教程中,我們假設:
代理服務器的默認設置/未配置
我們只想要網頁過濾而不需要任何其他內容(沒有緩存,不進行身份驗證)
第1步 - 禁用身份驗證
要開始,請轉到“ 服務” - >“Web代理” - >“管理”。
單擊正向代理選項卡旁邊的箭頭以顯示下拉菜單。現在選擇認證設置並單擊清除所有以禁用用戶身份驗證。然後單擊“ 應用”以保存更改。
第2步 - 配置黑名單
單擊“ 遠程訪問控制列表 ”選項卡。現在單擊頁面右下角的+以添加新列表。
將彈出一個頁面,輸入以下詳細信息:
啓用 | 選中 | 啓用/禁用 |
文件名 | UT1 | 選擇唯一的文件名 |
網址 | (複製/粘貼網址) | 黑名單的URL |
類別 | (留空) | 如果留空,則將獲取完整列表 |
描述 | UT1 web filter | 描述說明 |
保存更改。
第3步 - 下載類別
現在按下載ACL,請注意這需要一段時間(可能是幾分鐘),因爲完整列表(> 19MB)將轉換爲squid acl。
第4步 - 設置類別
現在,我們可以通過單擊列表說明旁邊的鉛筆圖標來選擇我們要使用的類別。這將再次打開編輯窗口,但現在您將看到從列表中提取的所有可用類別。
對於我們的示例,我們將過濾廣告和成人內容。最簡單的方法是清除列表並從下拉列表中選擇以下內容:
現在保存更改並再次按下載ACL以下載和重建僅包含所選類別的列表。這將花費與第一次獲取大致相同的時間量,因爲單獨的成人部分是~15MB。
第5步 - 啓用代理
要啓用代理,只需轉到“ 服務” - >“Web代理” - >“管理”,然後選中“ 啓用代理”,單擊“ 應用”。代理將綁定到LAN和端口3128。
代理啓動可能需要一段時間,屏幕右上角的播放圖標將變爲紅色。刷新頁面以查看代理是否已完成加載(播放圖標將變爲綠色)。
第6步 - 禁用代理旁路
要確保沒有人可以繞過代理,您需要添加防火牆規則。轉到防火牆 - >規則,並將以下內容添加到LAN接口上的列表規則頂部(如果LAN是您的客戶端和代理所在的位置)。
操作 | 阻止 |
接口 | LAN |
協議 | TCP / UDP |
源 | LAN |
目標端口範圍 | HTTP |
類別 | 阻止代理繞過 |
描述 | 阻止http繞過 |
保存
還有一個阻止HTTPS訪問的規則:
操作 | 阻止 |
接口 | LAN |
協議 | TCP / UDP |
源 | LAN |
目標端口和範圍 | HTTPS |
類別 | 阻止代理繞過 |
描述 | 阻止https繞過 |
保存並應用更改
設置透明代理
OPNsense提供了一個功能強大的代理,可以與基於類別的Web過濾和任何支持ICAP的反病毒/惡意軟件引擎結合使用。代理可以配置爲以透明模式運行,這意味着不必爲Web代理配置客戶端瀏覽器,但是所有流量都通過利用網絡地址轉換自動轉移到代理。
在本方法中,我們將解釋基本的http以及https(ssl bump)透明代理模式。
警告:透明SSL / HTTPS代理模式使用一種也稱爲中間人的技術,只有在知道自己在做什麼的情況下才配置並使用它。如果配置錯誤,您可能會減少安全防禦能力。使用透明https代理可能是一種危險的做法,您使用的服務可能不允許這種做法,例如網上銀行。
第1步 - 基本代理設置
要設置透明模式,需要完成基本的代理設置。參閱前面部分。
第2步 - 透明
轉到服務 - > Web代理 - >管理
然後在正向代理選項卡下選擇常規設置。
選擇啓用透明HTTP代理, 然後單擊應用。
第3步 - NAT /防火牆規則
添加NAT /防火牆規則的一種簡單方法是單擊“ 啓用透明HTTP代理”選項左側的(i)圖標,然後單擊添加新的防火牆規則(紅色部分)。
作爲參考,這些是默認設置:
接口 | LAN |
協議 | TCP |
源 | LAN |
源端口範圍 | 任意 - 任意 |
目標 | 任意 |
目標端口範圍 | HTTP - HTTP |
重定向目標IP | 127.0.0.1 |
重定向目標端口 | other/ 3128 |
描述 | 將流量重定向到代理 |
NAT迴流 | 啓用 |
過濾規則關聯 | 添加關聯的過濾規則 |
默認值應該沒問題,只需按“ 保存並應用更改”即可。
第4步 - 用於透明SSL的CA
在我們設置透明SSL / HTTPS代理之前,我們需要創建一個證書頒發機構。轉到系統 - >證書 - >認證或使用搜索框快速到達目的地。
單擊屏幕右上角的添加或導入ca以創建新CA。
在本示例中,我們使用以下數據:
描述名稱 | OPNsense-SSL |
方法 | 生成內部證書頒發機構 |
密鑰長度(位) | 2048 |
摘要算法 | SHA256 |
有效期(天) | 356 |
國家代碼 | NL (Netherlands) |
州或省 | Zuid Holland |
城市 | Middelharnis |
組織 | OPNsense |
電子郵件地址 | [email protected] |
通用名稱 | opnsense-SSL-CA |
保存
第5步 - 透明SSL
轉至服務 - >Web代理 - >管理, 然後點擊正向代理選項卡下的常規設置。
選擇“ 啓用SSL檢查”並將使用認證的CA設置爲用於剛剛創建的CA,然後單擊Apply。
第6步 - 配置非SSL Bump
這一步非常重要,需要仔細考慮!爲了確保已知站點正常訪問(如網上銀行)並保持其原始安全層完整,需要將包括所有子域的那些添加到SSL免檢站點 字段。
要在字段中輸入新項目類型,請以.(點)開始,添加所有子域,然後按Enter鍵接受。示例:要添加所有paypal.com,請鍵入.paypal.com並按Enter鍵。
注意:確保將您提供個人信息或登錄信息的所有銀行站點添加到此字段中。如果您不確定要添加什麼,請重新考慮使用透明SSL,因爲它顯然不適合您!
第7步 - SSL NAT /防火牆規則
添加NAT /防火牆規則的一種簡單方法是單擊“ 啓用SSL檢查”選項左側的(i)圖標,然後單擊添加新的防火牆規則。
作爲參考,這些是默認設置:
接口 | LAN |
協議 | TCP |
源 | lan |
源端口範圍 | any - any |
目標 | any |
目標端口範圍 | HTTPS - HTTPS |
重定向目標IP | 127.0.0.1 |
重定向目標端口 | other/ 3129 |
描述 | 將流量重定向到代理 |
NAT迴流 | 啓用 |
過濾規則關聯 | 添加關聯的過濾規則 |
默認值應該沒問題,只需按“ 保存並應用更改”即可。
步驟8 - 配置OS /瀏覽器
由於您的瀏覽器不信任CA,因此您將爲您訪問的每個頁面收到有關此信息的消息。要解決此問題,您可以將密鑰導入您的操作系統並設置爲受信任。要導出密鑰,請轉到系統 - >證書 - >認證,然後單擊右側的導出圖標來導出CA證書。
在您的操作系統上導入和更改信任設置。在OSX上的示例如下:
警告:因爲您的系統將接受使用此CA證書籤名的任何頁面。只要沒有人獲得對沒有問題的私鑰的訪問權限都是安全的。但是如果任何人都可以得到它,那麼所有流量都可以被解密。
設置WPAD / PAC
OPNsense支持生成PAC文件來向客戶端提供自動代理配置文件。例如,如果您的Web GUI在http://192.168.0.1/上運行,則您的PAC URL則是http://192.168.0.1/wpad.dat。
在Firefox中,您可以手動通過以下步驟使用PAC配置代理:
單擊菜單圖標並打開“設置”
向下滾動到“網絡代理”,然後單擊“設置”
檢查“自動代理配置地址”
在文本字段中輸入上面段落中提到的PAC文件的URL,然後單擊“確定”
警告:如果PAC文件不可用,您的瀏覽器可能無法連接到Internet。如果員工可以將設備用於家庭辦公室,則不建議在筆記本電腦等移動設備上使用此類配置。對於此類設備,應使用WPAD。
配置
第一步:創建匹配
轉到“服務” - >“Web代理” - >“配置”,然後打開“匹配”,在最新的18.7.6版本中菜單是“服務” - >“Web代理” - >"Proxy-Auto-Config"
輸入匹配名稱和可選說明。然後選擇要匹配的內容。
名稱 | 匹配的唯一名稱,用於從規則中調用它。 |
描述 | 簡短描述。 |
反轉 | 反轉匹配 |
匹配類型 | 選擇您想要匹配的內容 |
其餘字段取決於使用的匹配類型。例如,如果我們匹配“普通主機名”,我們不需要任何其他參數。
匹配“Plain Hostname(普通主機名)”,則意味着域名沒有點,所以如果我們想創建一個fqdn匹配,我們可以簡單地反轉這個:
名稱 | is_fqdn |
描述 | 可以留空 |
反轉 | 選中 |
匹配類型 | Plain Hostname |
名稱 | not_internal |
描述 | 可以留空 |
反轉 | 選中 |
匹配類型 | Hostname matches |
主機模式 | 內部域的通配符 |
第二步:創建代理服務器
現在切換到“服務” - >“Web代理” - >"Proxy-Auto-Config - > Proxies”添加新的代理服務器。
名稱 | 輸入將在規則視圖中顯示的名稱以供選擇 |
描述 | 您可以爲此代理添加可選說明 |
代理類型 | 如果不使用代理,則直接連接或請輸入代理類型 |
網址 | 除非已選擇直接連接(no proxy),否則請輸入代理URL |
在這種情況下,假設僅存在單個LAN和DMZ,並且內部連接不在代理上運行。要制定有意義的規則,我們需要兩個可能的返回值:
LAN代理
沒有代理
沒有代理配置非常簡單:
名稱 | direct |
描述 | 可以留空 |
代理類型 | Direct Connection |
網址 | 空 |
對於傳出連接,我們需要代理:
名稱 | lan_proxy |
描述 | 可以留空 |
代理類型 | proxy |
網址 | 代理IP +':'+代理端口 |
第三步:創建規則
現在,當匹配和代理存在時,可以構建規則。爲此,需要切換到“服務” - >“Web代理” - >"Proxy-Auto-Config - > 規則” 。
現在需要創建以下規則:
啓用 | 選中 |
描述 | 描述說明 |
匹配 | 兩個先前創建的匹配 |
加入類型 | and |
匹配類型 | if |
代理 | lan proxy |
保存後,單擊右側的橙色重新加載按鈕,配置就完成了。
WPAD
Web代理自動發現用於查找域名的PAC文件。
使用DNS(Unbound)
方式1:自動配置
警告:使用此選項時,將覆蓋wpad主機和域名的TXT記錄。這可能會破壞其他記錄,例如此特定域名的SPF的TXT記錄。
在Unbound DNS常規設置中,您只需選中以下複選框:
這將定義DHCP中配置的任意域名的主機記錄,作爲防火牆主機的CNAME。它還將覆蓋TXT記錄解析爲PAC文件的URL。
方式2:手動配置
警告:使用DNS時,OPNsense必須通過端口80上的HTTP進行響應。
轉到服務 - >Unbound DNS- >覆蓋,爲wpad主機添加新的主機覆蓋:
主機 | WPAD |
域名 | 你的域名 |
類型 | A或AAAA |
IP | 您的OPNsense的IP(可以訪問Web界面的IP地址) |
描述 | 可以留空 |
保存設置並應用更改。
使用
方式1:自動配置
在DHCP服務器設置中,您可以選中以下複選框:在這種情況下,將使用您在系統設置(防火牆域名)中選擇的域和Web接口的端口。主機名是wpad。如果您使用HTTP在端口80上運行OPNsense Web界面。將創建以下URL:http://wpad.example.com:80/wpad.dat
方式2:手動配置
轉到服務 - > DHCP - >服務器,選擇正確的接口並向下滾動到“其他選項”。
添加此行並保存:
數目 | 252 |
類型 | String |
值 | PAC文件的URL,用雙引號括起來 |
Firefox配置
打開設置菜單
首先,必須打開設置菜單。有兩種方法。你也可以
首先單擊編輯
然後單擊Preferences(首選項)或您也可以
單擊菜單圖標,然後單擊“Preferences(首選項)”。
配置代理
然後向下滾動到頁面底部,然後在點擊Network Proxy(網絡代理)界面點擊Settings(設置)。
在新打開的窗口中,您可以設置代理設置。如果要強制Firefox使用WPAD / PAC,請選擇“ 自動檢測此網絡的代理設置”。如上圖所示,點擊“OK”完成。