您好,登錄后才能下訂單哦!
防火墻基礎
入口過濾
出口過濾
簡介防火墻規則
別名
防火墻規則配置實例
規則方法
配置防火墻規則
浮動規則
使用其他公網IP地址的方法
虛擬IP地址
基于時間的規則
查看防火墻日志
如何封鎖訪問一個網站?
故障排除防火墻規則
pfSense執行的主要功能之一是過濾流量。本章包括防火墻基本原理,最佳實踐以及配置防火墻規則所需的必要信息。
本節主要介紹防火墻概念,為理解、使用pfSense配置防火墻規則奠定基礎。
規則和規則集是本章通篇使用的兩個術語:
規則: | 指防火墻>規則策略上的單個條目。規則將引導防火墻如何匹配或處理網絡流量。 |
---|---|
規則集: | 統稱為一組規則。 要么是整個防火墻規則,要么是特定上下文中的一組規則,例如接口選項卡上的規則。 完整的防火墻規則集是所有用戶配置和自動添加規則的總和,本章將進一步討論。 |
“接口”選項卡上的規則集是由pfSense優先匹配執行的。 這意味著從上到下執行接口的規則集,匹配的第一個規則將是防火墻使用的規則。 匹配后即停止,然后防火墻采取該規則指定的操作。 創建新規則時,請始終牢記這一點,特別是在制定限制流量的規則時。 最寬松的規則應該放在列表的底部,以便可以在上面制定限制或例外規則。
注意
“浮動”選項卡是此規則處理邏輯的唯一例外。 在本章的后面部分將會介紹。
pfSense是一個有狀態的防火墻,這意味著它會記住有關流經防火墻連接的信息,以便自動應答 流量。 這些數據保留在狀態表中。 狀態表中的連接信息包括源、目標、協議、端口等,足以唯一標識特定的連接。
使用這種機制,只需在進入防火墻的接口上允許通信。 當連接符合傳遞規則時,防火墻會在狀態表中創建一個條目。 通過防火墻自動應答流量到連接,是通過將其與狀態表進行匹配而不是在兩個方向上檢查規則。 這包括使用不同協議的任何相關流量,例如響應于TCP,UDP或其他連接可能提供的ICMP控制消息。
參考
有關狀態選項和類型的更多信息,請參閱防火墻高級設置和狀態類型。
狀態表大小
防火墻狀態表必須限定大小以防止內存耗盡。 每個狀態需要大約1 KB的RAM。 pfSense中的默認狀態表大小是通過默認情況下占用防火墻中可用RAM的10%來計算的。 在1GB RAM的防火墻上,默認狀態表大小可容納大約100,000個條目。
參考
有關狀態表大小和RAM使用情況的更多信息,請參閱防火墻最大狀態表。
每個用戶連接通常由兩個狀態組成:一個是在進入防火墻時創建的,一個是在離開防火墻時創建的。 因此,在狀態表大小為1,000,000的情況下,防火墻可以處理大約50萬個正在穿越防火墻的用戶會話,之后將會丟棄任何額外的連接。 只要不超過防火墻內可用的RAM數量,就可以根據需要增加此限制。
增加狀態表大小:
導航到系統 >高級選項、防火墻和NAT選項卡;
在防火墻最大狀態欄輸入所需的數字,或保留默認計算值。 如下圖增加狀態表大小到2,000,000;
點擊保存。
歷史狀態表使用情況由防火墻跟蹤。 要查看圖表:
導航到系統狀態 > Monitoring
單擊 擴展圖表選項
將左軸的類別設置為系統
將左軸的圖形設置為狀態
單擊 更新圖表
有兩種方式可以禁止在pfSense上使用防火墻規則的流量:阻止和拒絕。
設置為阻止的規則將悄悄丟棄流量, 被阻止的客戶端不會收到任何響應,因此將等待連接嘗試超時。 這是pfSense中默認拒絕規則的行為。
規則設置為拒絕將回應客戶端拒絕TCP和UDP的流量,讓發件人知道連接被拒絕。 拒絕的TCP流量接收到TCP RST(重置)作為響應,拒絕的UDP流量接收到ICMP不可達消息作為響應。 雖然拒絕是任何防火墻規則的有效選擇,但TCP和UDP以外的IP協議不能被拒絕; 這些規則會默默地放棄其他IP協議,因為沒有拒絕其他協議的標準。
多年來,安全專業人士就阻止與拒絕的價值進行了多次辯論。有人認為,使用阻止更有意義,聲稱它“放慢”***者掃描互聯網。當一個規則被設置為拒絕時,立即返回一個響應端口被關閉,而阻止悄悄地丟棄流量,導致***者的端口掃描器等待響應。這個說法并不成立,因為每個好的端口掃描器都可以同時掃描數百或數千個主機,掃描器不會停滯,等待來自封閉端口的響應。資源消耗和掃描速度之間的差異很小,但是如此輕微,以至于不應該將其考慮在內。
如果防火墻阻止來自Internet的所有流量,阻止和拒絕之間存在顯著差異:沒有人知道防火墻在線。如果即使單個端口是開放的,那么這個能力的價值也是最小的,因為***者可以很容易地確定主機在線并且也知道什么端口是開放的,不管被阻止的連接是否被防火墻拒絕。雖然在阻止拒絕方面沒有顯著的價值,但我們仍建議在WAN規則上使用阻止。在不主動將信息傳遞給潛在的***者方面存在一些價值,并且不必要地自動響應外部請求也是不好的做法。
對于內部接口規則,我們建議在大多數情況下使用拒絕。當主機嘗試訪問防火墻規則不允許的資源時,訪問它的應用程序可能會掛起,直到連接超時或客戶端程序停止嘗試訪問該服務。拒絕連接立即被拒絕,客戶避免這些掛起。這通常只是一個煩惱,但我們通常仍然建議使用拒絕,以避免由于在網絡中靜靜地丟棄流量而導致潛在的應用程序問題。
入口過濾是指從外部源(如Internet)進入網絡的防火墻流量的概念。 在使用多WAN的部署中,防火墻具有多個入口點。 pfSense上的默認入口策略是阻止所有流量,因為在默認規則集中,WAN上沒有允許的規則。 自動允許從本地網絡內部發起的流量應答由狀態表通過防火墻返回。
出口過濾是指在本地網絡內發起的防火墻流量的概念,其目的地是遠程網絡,例如因特網。 與幾乎所有類似的商業和開源解決方案一樣,pfSense也帶有LAN規則,允許從LAN到Internet的所有通信。 但是,這不是最好的操作方式。 但它已成為大多數人所期望的多數防火墻解決方案中事實上的默認設置。 常見的誤解是“內部網絡上的任何東西都是'值得信賴的',那為什么要去過濾呢?
根據我們與許多不同廠商的眾多供應商合作的無數防火墻的經驗,大多數小公司和家庭網絡都不采用出口過濾。 由于每個新的應用程序或服務可能需要在防火墻中打開額外的端口或協議,因此會增加管理負擔。 在某些環境中,這很困難,因為管理員不完全知道網絡上發生了什么,而且他們不愿意破壞事情。 在其他環境下,工作場所政治的原因是不可避免的。 最佳做法是管理員將防火墻配置為只允許所需的最小流量在可能的情況下離開網絡。 嚴格的出口過濾很重要,原因如下:
出口過濾限制了受損系統的影響。惡意軟件通常使用大多數商業網絡不需要的端口和協議。一些漫游者依靠IRC連接打電話回家并接收指令。有些會使用更多的通用端口,例如TCP端口80(通常是HTTP)來逃避出口過濾,但是許多端口不會。如果防火墻不允許訪問通常的IRC端口6667的TCP端口6667,那么依賴于IRC的機器人可能會被過濾損壞。
另一個例子是我們參與的情況,pfSense安裝的內部接口看到50-60 Mbps的流量,而WAN的吞吐量低于1 Mbps。防火墻上沒有其他接口。一些調查顯示,原因是運行僵尸程序的局域網上的受害系統參與了針對中國×××的分布式拒絕服務(DDoS)***。***使用UDP端口80,在這個網絡中,UDP端口80不被出口規則集允許,因此所有的DDoS正在完成的是強調防火墻的內部接口與被丟棄的流量。在這種情況下,防火墻一路高歌猛進,沒有任何性能下降,網絡管理員不知道發生了什么事,直到意外發現。
以上段落中描述的***可能使用UDP端口80有兩個主要原因:
UDP允許客戶端發送大數據包,而不需要完成TCP握手。 由于狀態防火墻是常態,因此在握手成功完成之前,大型TCP數據包將不會通過,這限制了DDoS的有效性。
那些采用出口過濾技術的用戶通常過于寬容,只允許需要TCP的TCP和UDP,就像HTTP一樣。
這些類型的***通常是從受感染的Web服務器發起的。如果有一個廣泛的開放出口規則集,流量將流出到互聯網,并有可能溢出防火墻上的狀態表,造成帶寬使用的損失,并且/或者降低互聯網連接的所有性能。
出站SMTP是另一個例子。只允許SMTP(TCP端口25)離開郵件服務器的任何網絡。或者,如果郵件服務器是外部托管的,則只允許內部系統在TCP端口25上與特定的外部系統進行通信。這樣可以防止本地網絡中的每個其他系統都被用作垃圾郵件機器人,因為它們的SMTP通信將被丟棄。許多郵件提供商已經轉向使用僅使用TCP端口587的客戶端的身份驗證提交,因此客戶端不需要訪問端口25。這是限制垃圾郵件的好辦法,并且還可以防止將網絡添加到整個互聯網將阻止該網站向更多郵件服務器發送合法的電子郵件。這也可能阻止該網站的ISP由于濫用而關閉其互聯網連接。
理想的解決方案是首先防止這些類型的事情發生,但出口過濾提供了另一個方法 ,如果其他措施失敗,出口過濾可以幫助進行限制。
出口過濾可以防止在某些情況下的妥協。 一些漏洞和蠕蟲需要出站訪問才能成功。 一個較老的但是很好的例子是從2001年開始的紅色代碼蠕蟲病毒。這個漏洞通過TFTP(Trivial File Transfer Protocol,普通文件傳輸協議)使得受影響的系統能夠執行一個可執行文件,然后執行它。 Web服務器幾乎可以肯定不需要使用TFTP協議,并且通過出口過濾阻止TFTP即使在未打補丁的服務器上也可以防止感染紅色代碼。 這在很大程度上只對停止完全自動化的***和蠕蟲有用,因為真正的人類***者會發現在出口過濾中存在的任何漏洞并將它用于他們的***目標。 同樣,防止這種問題的正確解決方案是修復用作***媒介的網絡漏洞,但是出口過濾也可以提供幫助。
許多應用程序(如×××客戶端,對等軟件,即時通訊軟件等)都依賴非典型端口或協議來運行。 雖然越來越多的點對點和即時通訊應用程序將端口跳轉,直到找到一個被允許離開本地網絡的端口,許多端口被限制性的出口規則集阻止運行,對更多類型的×××連接這也是一個有效的限制手段。
這是使用出口過濾的一個常見原因,但pfSense通過pf的抗欺騙功能自動阻止欺騙性流量,所以在這里不適用。 防止IP欺騙意味著惡意客戶端不能發送明顯被偽造的源地址的流量。
決不允許某些協議離開本地網絡。這種協議的具體例子因環境而異,但是一些常見的例子是:
TCP端口135上的Microsoft RPC(遠程過程調用)
TCP和UDP端口137到139上的NetBIOS
TCP和UDP端口445上的SMB / CIFS(服務器消息塊/通用Internet文件系統)。
停止這些協議可以防止有關內部網絡的信息泄漏到Internet上,并阻止本地系統啟動與Internet主機的身份驗證嘗試。由于許多蠕蟲都依賴這些協議來運行,所以這些協議也屬于前面所討論的限制受損系統的影響。其他可能相關的協議是syslog,SNMP和SNMP陷阱。限制此流量將防止錯誤配置的網絡設備將日志記錄和其他可能敏感的信息發送到Internet。與其擔心哪些協議可能將信息泄露到本地網絡外并需要被阻止,最佳做法是僅允許所需的通信。
在歷史上沒有采用出口過濾的網絡上,很難知道什么流量是絕對必要的。 本節介紹一些識別流量和實施出口過濾的方法。
一種方法是為允許的已知所需流量添加防火墻規則。 首先列出已知需要的東西,例如下表出口流量的要求。
描述 | 源 | 目標 | 目標端口 |
---|---|---|---|
HTTP and HTTPS from all hosts | LAN Network | Any | TCP 80 and 443 |
SMTP from mail server | Mail Server | Any | TCP 25 |
DNS queries from internal DNS servers | DNS Servers | Any | TCP and UDP 53 |
做出列表后,配置防火墻規則只傳遞該流量,并讓所有其他命中默認的拒絕規則。
另一種方法是啟用所有傳遞規則的日志記錄,并將日志發送到系統日志服務器。 系統日志服務器可以分析日志,以查看哪些流量正在離開網絡。 pfSense使用自定義日志格式,因此通常需要通過自定義腳本來解析日志,除非服務器具有一些pfSense過濾器日志格式的知識。 對日志的分析將有助于構建所需的規則集,從而更好地了解本地網絡上需要的流量。
本節提供防火墻>規則策略中防火墻規則頁面的介紹和概述。 此頁面列出了啟動的WAN規則集,默認情況下,如果在WAN接口上激活了這些選項,則默認情況下沒有其他條目用于阻止專用網絡和Block bogon網絡的條目,如下圖所示。
提示
單擊“阻止專用網絡”或“阻止bogon網絡規則”右則的,可以進入啟用或禁用這些選項的WAN接口配置頁面。
單擊LAN選項卡查看LAN規則。 默認情況下,唯一的條目是默認允許LAN為IPv4和IPv6的任意規則,(如下圖所示)以及反鎖定規則(如果處于活動狀態)。 反鎖定規則旨在防止管理員意外地將自己鎖定在GUI之外。 在防鎖定規則旁邊單擊 可以訪問禁用此規則的頁面。
參考
有關防鎖定規則如何工作以及如何禁用規則的更多信息,請參閱防鎖定規則和反鎖定。
要顯示其他接口的規則,請單擊其各自的選項卡。 OPT接口將以其描述性名稱出現,所以如果OPT1接口被重命名為DMZ,則其規則的選項卡也將表示DMZ。
每條規則的左邊是一個指示器圖標,顯示規則的操作:通過 (),阻止 (),或拒絕()。如果規則啟用了日志記錄, 顯示在相同的區域。 如果規則啟用了任何高級選項, 圖標也會顯示。 將鼠標懸停在任何這些圖標上,將顯示解釋其含義的文本。 對于禁用的規則,會顯示相同的圖標,但圖標和規則的顏色較淺。
要將規則添加到列表頂部,請單擊 添加。
要將規則添加到列表的底部,請單擊 添加。
為了制定與現有規則類似的新規則, 在現有規則的右邊單擊 。 編輯頁面將顯示預先填寫的現有規則設置,隨時可以進行調整。 在復制現有規則時,新規則將直接添加到原始規則的下方。
要編輯防火墻規則, 單擊該規則右側的,或雙擊該行上的任意位置。
該規則的編輯頁面將加載,并可以進行編輯。
規則可以通過兩種不同的方式重新排序:拖放和使用“選擇并單擊”。
使用拖放方法移動規則:
將鼠標移動到防火墻規則上移動,光標將改變提示可以移動
點擊并按住鼠標按鈕
將鼠標拖到所需位置
釋放鼠標按鈕
單擊 保存以存儲新的規則順序
警告
在移動規則之后,但在保存規則之前試圖離開頁面,會導致瀏覽器出現錯誤,確認是否退出頁面。 如果瀏覽器在不保存的情況下離開頁面,則規則將仍然在原始位置。
要按組移動列表中的規則,請先選擇它們,請使用選中再單擊的方法:
選中需要移動的規則左側旁邊的框,或單擊規則。 當選擇規則時,它將改變顏色。
在規則要移動到的地方,單擊 。
提示
按住Shift鍵,然后在上單擊鼠標將規則移動到所選規則的下方而不是上方。
使用“選擇并點擊”方法移動規則時,新規則將自動存儲。
要刪除單個規則, 在規則右側單擊 。在刪除規則之前,防火墻會顯示確認提示。
要刪除多個規則,請選中應刪除的行的開始處的框,然后點擊列表底部的刪除按鈕。 規則也可以通過在他們的行上的任何地方單擊來選擇。
禁用規則, 在規則的右側單擊 。圖標外觀將變成較淺的陰影以提示它被禁用, 圖標會變為 。
要啟用以前禁用的規則, 在規則右側單擊 。 規則的外觀將恢復正常,啟用/禁用圖標將返回到原始狀態。
通過編輯規則并切換“禁用”復選框,也可以禁用或啟用規則。
防火墻規則分隔符是規則集中包含一小段文本的彩條,他不對網絡流量進行任何操作。 它們對于從視覺上分離或向規則集的特殊部分添加注釋非常有用。下 圖防火墻規則分隔符示例顯示了如何利用這些規則對規則集進行分組和記錄。
創建一個新的防火墻規則分隔符:
打開規則分隔符所在的防火墻規則選項卡
單擊 添加分隔符
輸入規則分隔符的說明文字
通過單擊所需顏色圖標來選擇規則分隔符的顏色
點擊并拖動規則分隔符到它的新位置
單擊 保存規則分隔符內容
在規則列表的底部單擊 保存
要移動規則分隔符:
打開包含規則分隔符的防火墻規則選項卡
點擊并拖動規則分隔符到它的新位置
在規則列表的底部單擊 保存
要刪除規則分隔符:
打開包含規則分隔符的防火墻規則選項卡
在右側的規則分隔符內部單擊
在規則列表的底部單擊 保存
防火墻規則分隔符不能被編輯。 如果需要更改文本或顏色,請創建新的防火墻規則分隔符并刪除現有的條目。
在創建或更新規則時,防火墻會在規則上記錄用戶的登錄名、IP地址和時間時間戳,以跟蹤誰添加和/或上次更改了相關規則。 如果防火墻自動創建了該規則,同樣會被記錄。 這是針對防火墻規則以及端口轉發和出站NAT規則完成的。 如下圖所示,在防火墻規則時間戳中,在編輯規則頁面最底部的防火墻規則時可以看見。
別名定義了組端口,主機或網絡。 別名可以通過防火墻規則、端口轉發、出站NAT規則以及防火墻GUI中的其他位置引用。 使用別名有利于減少管理工作量,創建更易于管理的規則集。
注意
不要將防火墻別名與接口IP別名混淆,接口IP別名是向網絡接口添加額外的IP地址的手段。
別名位于防火墻>別名管理。 該頁面分為不同類型的別名標簽:IP、端口、URL和全部選項卡。 創建別名時,將其添加到任何選項卡,并根據所選類型將其分類到正確的位置。
可以創建以下類型的別名:
主機: | 包含單個IP地址或主機名的別名 |
---|---|
網絡: | 含有CIDR掩碼的網絡、主機名、IP地址范圍或單個IP地址的別名 |
端口: | 這些別名包含TCP或UDP端口號或端口范圍的列表 |
URL: | 從指定的URL中的文件構建的,但是只讀一次,然后成為正常的網絡或端口類型別名 |
URL表: | 從指定URL處的文件構建的,但是通過定期從URL中獲取列表進行更新 |
在本節中我們會更詳細地描述每個別名類型。
大多數別名可以嵌套在其他別名中,只要它們是相同的類型即可。 例如,一個別名可以嵌套一個包含Web服務器的別名,一個包含郵件服務器的別名,以及一個包含Web和郵件服務器別名的服務器別名,這些別名都集中在一個較大的Servers別名中。 這里要注意:URL表別名不能嵌套。
主機名也可以用于別名。 任何主機名都可以輸入到主機或網絡別名中,并且將由防火墻定期解析和更新。 如果主機名稱返回多個IP地址,則所有返回的IP地址都將添加到別名中。 這對跟蹤動態DNS條目以允許特定用戶從動態IP地址轉換為服務非常有用。
注意
此功能對于允許或禁止用戶訪問大型公共網站沒有用處。 大型和繁忙的站點往往對DNS查詢有不斷的旋轉或隨機響應,所以別名的內容不一定與用戶在嘗試解析相同站點名稱時收到的響應相匹配。 它可以適用于只有少量服務器的小型站點,并且在其DNS響應中不包含不完整的地址集。
IPv4和IPv6地址可以在別名內混合使用。 在特定規則中引用別名時,防火墻將使用適當類型的地址。
所有表的總大小必須大致適合防火墻最大表條目的一半,默認值為200,000。 如果表項的最大數量不足以包含所有條目,則規則可能無法加載。 有關更改該值的信息,請參閱防火墻最大表條目。 由于別名被加載和重載的方式,別名必須在總區域中放入兩次; 新列表與舊列表一起加載,然后舊列表被刪除。
如果防火墻包含足夠的RAM來保存條目,則可以根據需要增加此值。 RAM的使用情況與狀態表類似但小于狀態表,但假設每個條目的占用1K是保守和安全的。
添加別名:
導航到防火墻 > 別名管理
單擊 添加
輸入別名的名稱, 名稱可能只包含字符a-z,A-Z,0-9和_。
輸入別名的描述
選擇別名的類型。
根據需要輸入特定于類型的信息。 每種類型都有一個數據字段和每個條目的描述字段。要將新成員添加到別名,單擊條目列表底部的 添加。要從別名中刪除成員,在行的末尾單擊 刪除。
別名完成后,單擊“保存”存儲別名內容。
每個手動輸入的別名限制為5,000個成員,但是某些瀏覽器只能顯示3,000個條目。 對于大量條目,請使用能夠處理較大列表的URL表類型別名。
主機類型別名包含IP地址組。 下圖示例主機別名顯示了一個用于包含公共Web服務器列表的主機類型別名。
其他主機類型別名可嵌套在此條目內。 如前所述,主機名也可以用作條目。
網絡類型別名包含網絡組或IP地址范圍。 通過為IPv4地址選擇/ 32網絡掩碼或為IPv6地址選擇/ 128前綴長度,單個主機也可以包含在網絡別名中。下 圖顯示了本章后面使用的網絡別名示例。
其他主機或網絡別名可嵌套在此條目內。 如前所述,主機名也可以用作條目。
當別名條目包含IPv4范圍時,防火墻將自動將其轉換為等效的IPv4 CIDR網絡集合,該集合將完全包含指定的范圍。 如下圖所示,保存別名時,指定范圍將自動展開,得到的IPv4 CIDR網絡列表將完全匹配所請求的范圍。
端口類型別名包含端口和端口范圍組。 該協議沒有在別名中指定; 使用別名的防火墻規則將協議定義為TCP,UDP或兩者。 下圖顯示了一個端口類型別名的例子。
在“端口”字段中輸入另一個端口類型的別名,以將此別名內的其他端口類型別名嵌套。
使用URL類型別名,將設置指向包含條目列表的文本文件的URL。 可以輸入多個URL。 單擊保存時,將從文件中讀取最多3,000個來自每個URL的條目,并將其導入到網絡類型別名中。
如果選擇URL(IP),則URL必須包含IP地址或CIDR屏蔽的網絡條目,并且防火墻從內容創建網絡類型別名。
如果選擇URL(端口),則URL必須僅包含端口號或范圍,防火墻會從內容中創建端口類型別名。
URL表別名的行為與URL別名的行為明顯不同。對于初學者來說,它不會將文件的內容導入到正常的別名中。它將文件的內容下載到防火墻的特定位置,并使用所謂的持久表(也稱為基于文件的別名)的內容。別名的完整內容不能在GUI中直接編輯,但可以在表格查看器中查看。
對于URL表別名,在設置了更新周期后,別名內容將被重新獲取數據的腳本隔夜更新。
URL表別名可能相當大,包含成千上萬的條目。一些客戶使用它們來保存特定國家或地區的所有IP blocks的列表,這些列表可輕松超過4萬個條目。處理國家列表和其他類似行為時,pfBlocker插件使用這種別名。
注意:URL表別名不能被嵌套。
如果選擇URL表(IP),則URL必須包含IP地址或CIDR掩碼的網絡條目,并且防火墻會根據內容創建網絡類型別名。
如果選擇URL表(端口),那么URL必須只包含端口號或范圍,并且防火墻從內容創建一個端口類型別名。
將多個條目導入別名的另一種方法是使用批量導入功能。
使用導入功能:
導航到防火墻> 別名管理
單擊 導入
填寫別名和描述
將別名內容輸入到別名中以導入文本區域,每行一個條目。
點擊保存
此頁面的常用用法示例包括IP地址、網絡和黑名單列表。 該列表可能包含IP地址,CIDR屏蔽的網絡,IP范圍或端口號。 防火墻將嘗試自動確定目標別名類型。
防火墻將項目導入到以后可以編輯的正常別名中。
當一個字母輸入到一個支持別名的輸入框中時,會顯示一個匹配的別名列表。 從列表中選擇所需的別名,或完全鍵入其名稱。
注意
別名自動完成不區分大小寫,但受限于類型。 例如,網絡或主機類型別名將在網絡字段的自動完成中列出,但是端口別名不會; 端口別名可用于端口字段,但網絡別名不在列表中。
如下圖所示,在添加或編輯防火墻規則時,在“目標”字段中使用WebServers別名。
編輯防火墻規則
選擇單個主機或別名
然后鍵入所需別名的第一個字母:輸入W,并顯示別名,如圖所示。
如下圖所示,配置的端口別名自動完成。 如果多個別名與輸入的字母匹配,則列出所有相應類型的別名。 點擊所需的別名來選擇它。
如下圖所示,顯示使用Web Servers和WebPorts別名創建的規則。 此規則位于WAN上,當使用WebPorts別名中定義的端口時,允許任何源訪問Web Servers 別名中定義的IP地址。
將鼠標光標懸停在“防火墻”>“規則策略”頁面的別名上,會顯示一個提示,顯示別名的內容以及別名中包含的說明。 如下圖所示,一張懸停顯示主機內容,一張懸停顯示端口別名內容。
本節介紹防火墻規則配置的一般實例。
與訪問控制有關的計算機安全有兩個基本原理:默認允許和默認拒絕。防火墻規則的默認拒絕策略是最佳做法。防火墻管理員應該配置規則,只允許最低要求的流量滿足網絡的需求,并使剩余流量隨著pfSense中內置的默認拒絕規則而下降。可以想像,規則集中拒絕規則的數量將是最小的。
在默認的雙接口LAN和WAN配置中,pfSense使用WAN上的默認拒絕和LAN上的默認允許。從互聯網入站的所有東西都被拒絕,所有從局域網到Internet的東西都是被允許的。所有家庭級路由器都使用這種方法,所有類似的開源項目和大多數類似的商業產品也是如此。這是大多數人所期待的,因此它是默認配置。這雖然這是一個方便的啟動方式,但并不是推薦的長期操作方式。
pfSense的用戶經常會問:“我應該阻止什么壞事?”但這是錯誤的問題,因為它適用于默認允許的方法。注意到的安全專業人員Marcus Ranum在他的“計算機安全的六個最愚蠢的想法”文件中包含默認許可證,這是任何安全專業人員的推薦讀物。只允許網絡需要,并避免在局域網上留下默認允許所有規則,并在允許規則之上添加阻止“壞事”的阻止規則。
規則集越短,就越容易管理。 冗長的規則集很難管理,增加人為錯誤的機會,往往過于寬容,而且審查顯然更加困難。 使用別名來保持規則集盡可能簡短。
我們建議定期手動檢查防火墻規則和NAT配置,以確保它們仍符合當前網絡環境的最低要求。 這種檢查的頻率因環境而異。 在不經常更換的網絡中,只有少量的防火墻管理員,每季度或每半年通常就足夠了。 對于快速變化的環境或變更控制不佳的人員以及多名防火墻訪問人員,至少每月檢查一次配置。
通常在與客戶審查規則時,我們會詢問具體的規則,他們會回答“我們在六個月前刪除了該服務器”。如果其他內容會接管與之前的服務器相同的內部IP地址,則流量將被允許訪問這個新的服務器,但這可能并不是有意的。
在除了最小的網絡之外的所有網絡中,可能很難回想起配置在哪里以及為什么。 我們總是建議使用防火墻和NAT規則中的描述字段來記錄規則的用途。 在更大或更復雜的部署中,創建并維護描述整個pfSense配置的更詳細的配置文檔。 在將來查看防火墻配置時,這將有助于確定哪些規則是必要的,以及為什么在那里。 這也適用于配置的其他任何區域。
保持這個文件是最新的也是很重要的。 在執行定期的配置審查時,還請查看此文檔以確保其保持最新的當前配置。 確保在更改配置時更新這個文檔。
默認情況下,pfSense將記錄被默認拒絕規則阻止的數據包。這意味著從互聯網上被阻止的所有噪聲都將被記錄下來。有時日志中不會有太多的噪音,但是在很多環境下,不可避免地會有東西不停地發送垃圾信息。
在使用大型廣播域的網絡上 - 有線ISP通常采用這種做法 - 這通常是NetBIOS從缺乏線索的人那里廣播,他們將Windows機器直接連接到寬帶連接。除此之外,這些機器將不斷發出廣播請求進行網絡瀏覽。 ISP路由協議分組也可能是可見的,或路由器冗余協議(如VRRP或HSRP)。在諸如數據中心這樣的協同定位環境中,可能存在所有這些事物的組合。
由于防火墻在過去一天阻止了一千四百萬個NetBIOS廣播沒有任何價值,而且噪聲可能掩蓋了重要的日志,所以在WAN接口上添加阻止規則以阻止噪聲流量是個好主意。通過在WAN接口上添加未啟用日志記錄的阻止規則,該流量仍將被阻止,但不再填充日志。
下圖中顯示的規則是在“WAN”位于邊緣防火墻后面的內部LAN上的測試系統上配置的。為了消除日志噪音以查看感興趣的事情,我們添加了這個規則來阻止 - 但不記錄 - 該子網的廣播地址的目的地的任何內容。
我們建議添加類似的規則,以匹配網絡環境中觀察到的任何日志噪聲的細節。 在“系統狀態”>“系統日志”,“防火墻”選項卡下檢查防火墻日志,查看防火墻阻止的流量類型,并查看日志中出現的頻率。 如果任何特定流量每分鐘記錄超過5次,并且流量不是惡意或值得注意的,請為其添加阻止規則以減少記錄噪聲。
pfSense不記錄任何通過的流量只記錄所有丟棄的流量。 這是幾乎所有開源和商業防火墻的典型默認行為。 這是最實際的,因為記錄所有通過的流量很少需要,這只會增加負載,增加日志記錄的數量。 然而,從安全角度來看,這種方法有些倒退。 被阻止的流量不會損害網絡,因此其日志值是有限的,而通過接口的數據可能包含非常重要的日志信息,如果系統受到威脅。 在消除了上一節所述的任何無用的記錄噪聲之后,為了趨勢分析的目的,其余部分是有價值的。 如果觀察到明顯多于或少于常規的日志數量,那么調查記錄流量的性質可能更好。 OSSEC是一個開源的基于主機的***檢測系統(IDS),它可以通過系統日志從pfSense收集日志,并根據日志記錄的異常情況發出警報。
在pfSense中,接口選項卡上的規則在每個接口上應用,始終在該接口的入站方向上應用。這意味著從LAN發起的流量將使用LAN接口規則進行過濾。通過WAN接口規則過濾從Internet發起的流量。因為默認情況下pfSense中的所有規則都是有狀態的,所以當流量匹配允許規則時將創建一個狀態表條目。所有的應答流量都被這個狀態表項自動允許。
浮動規則(浮動規則)是一個例外,浮動規則可以使用入站、出站或兩個方向作用于任何接口。出站規則從不需要,因為在每個接口的入站方向上應用了過濾。在一些有限的情況下,例如具有眾多內部接口的防火墻,設置浮動規則可以大大減少所需的防火墻規則的數量。在這種情況下,將互聯網流量的出口規則應用為廣域網上的出站規則,以避免在每個內部接口上復制出口規則。入站和出站過濾的使用使配置更加復雜,更容易出現用戶錯誤,但在特定的應用程序中可能是需要的。
接口組是一種同時在多個接口上放置規則的方法。 這可以簡化一些規則配置,如果相似的規則在許多接口上需要相同的方式。 接口組規則(如接口規則)僅在入站方向進行處理。 Open×××,L2TP和PPPoE服務器的×××選項卡都是在幕后自動創建的特殊接口組。
例如,一個組可以用于包括所有LAN或DMZ類型接口或一組VLAN的接口集合。
注意
接口組在多WAN中無效,因為組規則無法正確處理應答。 由于這個缺陷,在沒有默認網關的廣域網上匹配一個組規則的流量將會通過默認網關從廣域網退出,而不是通過它所進入的接口。
到目前為止,我們已經談到了如何在接口選項卡上處理規則,但是有三個主要的規則類:常規接口規則,浮動規則和接口組規則(包括×××選項卡規則)。 這些類型的處理順序不同,他們的排序如下:
浮動規則
接口組規則
接口規則
規則在實際的規則集中以這種方式排序,在制定規則時要記住這一點。 例如,如果接口組包含阻止流量的規則,則該規則不能用接口選項卡規則覆蓋,因為流量已由規則集中第一個匹配的接口組規則處理。
處理防火墻規則直到找到匹配才停止,但是,如果一個數據包在組規則中不匹配,仍然可以通過接口規則進行匹配。
另一個重要的地方就是分配Open×××接口。 如果在Open×××選項卡上有一個“全部允許”的規則,它將與接口組規則匹配。 這意味著接口選項卡上的規則將不適用。 這可能是一個問題,如果Open×××的規則需要應答,應確保流量通過×××退出。。
由于各種原因,pfSense會自動添加內部防火墻規則。 本節介紹自動添加的規則及其用途。
為防止將管理員鎖定在Web界面之外,pfSense默認啟用防鎖定規則。 這可以在系統> 高級設置頁面上配置。 這個自動添加的規則允許來自包含該規則的網絡內的任何源的流量監聽LAN IP地址的任何防火墻管理協議。 例如,它允許訪問WebGUI的TCP端口443,GUI重定向的TCP端口80以及啟用SSH的端口22。 如果WebGUI端口已更改,則配置的端口是防鎖定規則所允許的端口。
在具有安全意識的環境中,最佳做法是禁用此規則并配置LAN規則,以便只有可信主機的別名才能訪問防火墻的管理界面。 更好的做法是不允許從局域網訪問,只能從孤立的管理網絡訪問。
首先,根據需要配置防火墻規則,以限制對所需管理界面的訪問。 在下圖中,SSH和HTTPS都用于管理,因此創建一個包含這些端口的管理端口別名(管理端口別名)。
然后為將有權訪問管理界面的主機和/或網絡創建一個別名(見下圖)。
管理主機的別名
生成的別名顯示在圖形別名列表中。
然后,LAN防火墻規則必須配置為允許以前定義的主機訪問,并拒絕所有其他訪問。 有很多方法可以實現這一點,具體取決于網絡環境以及如何處理出口過濾。 下面為兩個例子。 第一個允許DNS查詢到局域網的IP地址,如果啟用了DNS解析器或DNS轉發器,這也是允許局域網主機ping局域網IP地址。 然后拒絕所有其他流量。 第二個示例允許從管理主機訪問管理端口,然后拒絕所有其他流量到管理端口。 你可以選擇最適合的管理辦法。 請記住,源端口要設置成與目標端口不同。
一旦配置了防火墻規則,請禁用系統>高級設置頁面上的webGUI反鎖定規則。 選中該框并單擊保存。
注意
如果在禁用防鎖定規則之后,管理接口不能再被訪問,則防火墻規則沒有被適當地配置。 通過在控制臺菜單中使用“設置接口IP地址”選項重新啟用防鎖定規則,然后選擇重置LAN IP地址。 將其設置為當前的IP地址,規則將自動重新啟用。
pfSense使用pf中的antispoof功能來阻止欺騙性流量。 這提供了RFC3704中定義的單播反向路徑轉發(uRPF)功能。防火墻根據其路由表檢查每個分組,并且如果連接嘗試來自防火墻已知的網絡上不駐留接口上的源IP地址, 它將被丟棄。 例如,帶有內部網絡源IP地址的廣域網包將被丟棄。 內部網絡上發起的任何內容都不在內部網絡上的源IP地址將被丟棄。
WAN接口上的“阻止專用網絡”選項會自動為RFC 1918子網設置阻止規則。 除非在WAN上使用專用IP空間,否則啟用此選項。 這只適用于WAN端發起的流量。 本地客戶端仍可能從防火墻內部到達專用網絡上的主機。 此選項可用于任何接口,但通常僅用于WAN類型接口。 可以手動創建一個類似的規則,通過創建一個包含RFC 1918子網的別名,并在接口規則的頂部添加一個防火墻規則來阻止與該別名匹配的源的流量,從而阻止接口上的專用網絡。
Bogon網絡是那些永遠不應該在互聯網上看到的網絡,包括保留和未分配的IP地址空間。 來自這些網絡的流量的存在可能表明欺騙性流量或未被使用的子網被劫持以供惡意使用。 pfSense提供了兩個bogons列表,根據需要進行更新,一個用于IPv4 bogon網絡,一個用于IPv6 bogon網絡。 如果啟用Block bogon網絡,則防火墻將在每個月的第一天從files.pfsense.org獲取更新的bogons列表。 該腳本在當地時間凌晨3點運行。 這個列表并不經常改變,新的IP地址分配在實際使用之前的幾個月已從移動列表中刪除,所以每月更新就足夠了。 如果必須更頻繁地更新列表,請在“系統>高級設置”的“防火墻和NAT”選項卡上更改更新頻率。
注意
IPv6的列表非常龐大,如果系統中沒有足夠的內存,或者表項的最大數量不足以包含它,則可能無法加載。
確保防火墻可以解析DNS主機名,否則更新將失敗。 要確保防火墻解析DNS,請瀏覽至系統診斷> DNS查找,然后嘗試解析files.pfsense.org。 如果可行,則進入系統診斷>測試端口并嘗試連接到files.pfsense.org的80端口,如下圖所示。
由于bogon名單變化相對較少,每月更新的bogon已經足夠。 但是,可能會出現手動bogon更新的情況,例如,由于DNS配置不正確導致bogon更新失敗。 在系統診斷> 表中通過防火墻Web界面執行更新,方法是選擇bogons或bogonsv6,然后單擊 更新。
當啟用站點到站點IPsec連接時,會自動添加規則,允許遠程隧道端點IP地址訪問UDP端口500和4500,以及用于連接的WAN IP地址上的ESP協議。 當啟用移動客戶端的IPsec時,允許相同的流量,但是來自任何來源,而不是特定的源地址。
由于策略路由的工作方式,任何匹配指定網關的規則的流量都將被強制傳輸到Internet,并繞過IPsec處理。 規則會自動添加以取消流向遠程×××子網流量的策略路由,但并不總是具有預期的效果。 要禁用自動否定規則,并在內部接口上的規則頂部添加防火墻規則,以將流量傳遞到沒有網關集的×××。
參考
自動添加的IPsec規則將在IPsec中進一步討論。
不符合任何用戶定義的規則或其他自動添加的規則則將被默認拒絕規則拒絕。
pfSense book之防火墻(二)
翻譯自pfsense book!
2017-11-06
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。