Openbsd

pf 可以用來修改 HTTP Headers 和 Contents 嗎?

  • November 16, 2021

我正在尋找一些選項來替換我的路由器,這些選項可以為我提供更多內容過濾和內容修改選項。

我想做的一件事是修改 HTTP 請求,例如添加或刪除某些標頭或正文的內容(例如,刪除對 的任何引用ga.js)。另外,我想阻止對域的某些子路徑的訪問,例如twitter.com/widgets在不阻止主twitter.com網站的情況下阻止訪問(在這種情況下,返回 0.0.0.0 的自定義 DNS 可以完成這項工作)

我想知道 OpenBSD 上的 PF 是否可以做到這一點,或者它是否太低級別以及我是否需要像代理這樣的更高級別的工具。使用代理的問題在於它對客戶端不透明,因此無助於保護我的手機在我的 WiFi 上。

PF還是不PF?

我不認為pf是過濾高級元素的合適位置,例如ga.js. 相反,它在其下方執行一兩層。過濾ga.js將更適合諸如 Squid 之類的代理包之類的東西。

PF摘錄:數據包過濾

包過濾是在數據包通過網路介面時選擇性地通過或阻止它們。pf(4) 檢查數據包時使用的標準基於第 3 層(IPv4 和 IPv6)和第 4 層(TCP、UDP、ICMP 和 ICMPv6)標頭。最常用的標準是源和目標地址、源和目標埠以及協議。

如果您熟悉 OSI 模型和 TCP/IP,則此圖顯示了 PF 將在哪些層中工作以及您的ga.js文件將可用於過濾的層。

                                              #1

所以 PF 可以在傳輸層和網際網路層執行。要對某些東西進行操作,例如ga.js您需要在應用程序層進行操作,因此需要一個代理。

魷魚設置

本教程應該讓您開始設置和配置 Squid,標題為:Web Filtering On Squid Proxy

引用自:https://unix.stackexchange.com/questions/120690