在我們訪問網站時,運營商、各類搜索引擎等都可以收集我們的數據並通過龐大的互聯網對我們進行跟蹤,雖然可以通過安裝瀏覽器擴展插件(uBlock Origin,uMatrix等)進行阻止,但需要在每個設備、每個瀏覽器上進行安裝。如果我們有pfSense防火牆,那我們可以在防火牆上安裝pfBlockerNG來搭建Web過濾器,保證內網的所有設備都可以過濾廣告並阻止惡意網站,確保網絡安全。
安裝pfBlockerNG
首先,登錄pfSense,導航到“系統>插件管理,可用插件”選項卡。找到pfBlockerNG-devel插件。
點擊右側的“安裝”按鈕,等待下載pfBlockerNG並安裝。
pfBlockerNG初始設置
轉到防火牆→pfBlockerNG。
配置嚮導會引導我們進行設置。點擊“下一步”繼續。該頁面解釋了現在正在設置的內容:
- 爲初學者進行標準設置。
- 如果以前安裝過pfBlockerNG,則所有設置將被刪除。
- 安裝兩個組件:
- IP:在WAN接口添加防火牆規則阻止已知最差的***者。
- DNSBL:阻止廣告和其他已知的惡意域。
點擊“下一步”。
這裏必須選擇入站接口(WAN)和出站接口(LAN)。如果有多個內部接口,則可以選擇要爲其設置pfBlockerNG的所有接口。
接下來定義一個VIP地址。pfBlockerNG的Web服務器在該地址上運行,這個地址不能是我們所使用網絡的IP!例如,如果LAN網絡是192.168.1.1/24,則VIP地址不能在此範圍內。在本例中,將地址保留爲10.10.10.1,端口保留爲默認值。
設置完成,單擊“完成”,結束初始設置。
打開pfBlockerNG更新頁面,下載並激活所有阻止列表,基於pfblockerNG的Web過濾器已經在pfSense防火牆上運行。
配置pfBlockerNG
在配置之前,爲了使更改的設置及時生效(無論是DNSBL還是IP),必須先運行Update→Reload→All→Rungo下載並激活(更改的)列表。
IP
在“ IP”選項卡,建議進行下設置:
- 浮動規則→啓用。如果只有一個內部接口,可以禁用它。如果多個接口,則有必要激活,以方便配置防火牆規則。
- 殺死狀態→啓用。當pfBlockerNG更新阻止列表時,將重置與列表中IP的所有活動連接。
GeoIP封鎖
如果要阻止來自世界某些地區的訪問,必須先在MaxMind創建一個免費帳戶,隨即會收到一個許可證密鑰,然後在“IP→MaxMind GeoIP Configuration”輸入密鑰。之後在“Update → Reload → IP”下載GeoIP數據庫。現在,可以在IP→GeoIP下選擇所需的大洲或頂級垃圾郵件發送者。先單擊右側的小鉛筆,然後在列表中選擇所有條目。在底部,選擇“Deny Both全部拒絕”(列表操作)。
“拒絕入站”和“拒絕出站”(Deny Inbound” 、“Deny Outbound”)注意事項:“拒絕入站”表示所有進入的連接都被阻止IP。例如,內部運行的Web服務器想要阻止某些國家/地區,則可以使用“拒絕入站”來執行此操作。“拒絕出站”適用於所有出站連接,即無法從內部網絡中的計算機連接到該IP。例如,如果“拒絕出站”阻止北美的所有IP,那麼將無法再訪問北美大陸託管的所有網站!
DNSBL /Feeds
pfBlockerNG阻止域和IP,因此,沒有中間人***來過濾內容,它只是查看一長串列表,以查看是否允許使用域(也適用於HTTPS)。在Feed下,我們可以設置應積極使用的列表。提供IP阻止列表和DNSBL(DNS或域的阻止列表)。
所有激活的Feed在行尾都有一個勾號。如果要添加尚未激活的Feed,只需單擊“ +”:
會打開一個頁面,這裏可以輸入有關Feed的詳細參數:
- 狀態:ON
- 動作:Unbound
- 更新頻率:Once a day(每天一次)
如果想添加不在列表中的Feed,例如來自Steven Black的單個Feed,可以轉到DNSBL→DNSBL Groups,然後單擊底部的“添加”:
這裏可以給DNSBL組命名,並將DNSBL源定義添加到Feed中。
- 名稱: StevenBlack
- 狀態: ON
- 源: https://raw.githubusercontent.com/StevenBlack/hosts/master/alternates/gambling/hosts
- 標頭/標籤: Gambling
- 動作: Unbound
- 更新頻率: Once a day
單擊“保存”,完成Feed的添加。
白名單
如果希望不阻止某個域,則可以將它添加到DNSBL→DNSBL Whitelist的白名單中。如果在域名前面加上一個點(“.”),則所有子域都將列入白名單,否則只會阻止輸入的(子)域。
安全搜索
在DNSBL→DNSBL安全搜索中,可以給最受歡迎的搜索引擎設置安全搜索。也可以通過Firefox阻止HTTPS上的DNS,併爲YouTube設置限制。
強制將pfSense作爲DNS服務器
爲了確保pfBlockerNG過濾內部網絡中的所有請求,必須防止網絡中的設備使用與pfSense不同的DNS服務器,必須在防火牆的LAN接口上添加如下兩條防火牆規則,具體可以參考阻止外部客戶端DNS查詢。
導航到"防火牆>規則,LAN"選項卡,單擊 添加,在列表頂部創建一個新規則,填寫以下字段:
- 動作:拒絕
- 接口:LAN
- 通訊協定:TCP / UDP
- 目的地:any
- 目標端口範圍:DNS(53)
- 說明:
Block DNS to Everything Else
在阻止規則上方,創建通過規則來允許DNS進入防火牆,單擊 添加,在列表頂部創建一個新規則,填寫以下字段:
- 動作:通過
- 接口:局域網
- 通訊協定:TCP / UDP
- 目的地:局域網地址
- 目標端口範圍:DNS(53)
- 說明:
Pass DNS to the Firewall
單擊“應用更改”,重新加載規則集
完成後,將有兩個規則條目,如下圖所示:
測試
打開一個在DNS阻止列表中的網址,如果一切設置正常,將會看到以下提示:
原文地址