Iptables 和過濾來自貧窮和懶惰的持不同政見者的流量

阻止存取違禁資源的相關性會影響任何可能因不遵守法律或相關機構命令而被正式指控的管理員。

Iptables 和過濾來自貧窮和懶惰的持不同政見者的流量

既然有專門的程式和發行版來完成我們的任務,例如:Zeroshell、pfSense、ClearOS,為什麼要重新發明輪子呢?

領導者還有一個疑問:使用的產品有我們國家的安全證書嗎?

我們有使用以下發行版的經驗:

  • Zeroshell - 開發人員甚至捐贈了 2 年許可證,但事實證明,我們感興趣的分發工具包,不合邏輯地為我們執行了關鍵功能;
  • pfSense - 尊重和榮譽,同時也很無聊,習慣了 FreeBSD 防火牆的命令列對我們來說不夠方便(我認為這是一個習慣問題,但事實證明是錯誤的方式);
  • ClearOS - 在我們的硬體上結果非常緩慢,我們無法進行認真的測試,那麼為什麼有如此繁重的介面呢?
  • Ideco SELECTA。 Ideco 產品是一個單獨的對話,一個有趣的產品,但出於政治原因不適合我們,而且我還想「咬」他們關於相同 Linux、Roundcube 等的許可證。 他們從哪裡得到這樣的想法:透過將介面切入 蟒蛇 透過剝奪超級用戶權限,他們可以出售由網路社群開發和修改的模組組成的成品,並以 GPL 等方式分發。

我知道現在負面的感嘆會湧向我的方向,要求詳細證實我的主觀感受,但我想說的是,這個網路節點也是4個外部網路通道的流量平衡器,每個通道都有自己的特點。 另一個基石是需要多個網路介面之一在不同的位址空間中工作,我 準備好了 承認 VLAN 可以在任何必要和不必要的地方使用 沒有準備好。 有些設備正在使用,例如 TP-Link TL-R480T+ - 一般來說,它們的表現並不完美,有自己的細微差別。 感謝 Ubuntu 官方網站,可以在 Linux 上設定這部分 IP 平衡:將多個 Internet 通道合併為一個。 此外,每個通道都可以隨時“下跌”,也可以隨時上漲。 如果您對當前正在運行的腳本感興趣(並且值得單獨發布),請在評論中寫下。

正在考慮的解決方案並不聲稱是獨一無二的,但我想問一個問題:“當可以考慮替代方案時,為什麼企業要適應對硬體要求嚴格的第三方可疑產品?”

如果在俄羅斯聯邦有 Roskomnadzor 名單,在烏克蘭則有由國家安全委員會決定的附件(例如。 這裡),那麼地方領導也不睡覺。 例如,我們收到了一份禁止站點清單,管理層認為這些站點會損害工作場所的生產力。

在與其他企業的同事交流時,默認情況下所有網站都是被禁止的,只有在老闆允許的情況下才能訪問特定網站,我們微笑著思考,“對問題抽煙”,我們了解到生活仍然不錯,我們開始了他們的搜尋。

我們不僅有機會分析他們在「家庭主婦的書」中寫的有關流量過濾的內容,而且還有機會了解不同提供者的管道上發生的情況,我們注意到以下食譜(任何螢幕截圖都有點裁剪,請提問時明白):

提供者1
— 不打擾並強加自己的 DNS 伺服器和透明代理伺服器。 嗯?..但是我們可以訪問我們需要的地方(如果我們需要的話:))

提供者2
- 認為他的頂級提供者應該考慮這一點,頂級提供者的技術支援甚至承認了為什麼我無法打開我需要的網站,這並不是禁止的。 我想這張照片會讓你覺得有趣:)

Iptables 和過濾來自貧窮和懶惰的持不同政見者的流量

事實證明,他們將被禁止網站的名稱轉換為 IP 位址並阻止該 IP 本身(他們並不關心該 IP 位址可以託管 20 個網站)。

提供者3
— 允許車輛前往那裡,但不允許車輛沿著路線返回。

提供者4
— 禁止對指定方向的資料包進行所有操作。

如何使用 VPN(相對於 Opera 瀏覽器)和瀏覽器插件? 起初使用 Mikrotik 節點,我們甚至得到了 L7 的資源密集型配方,後來我們不得不放棄它(可能有更多禁止的名稱,當除了直接負責路由之外,在 3 打上時,這變得令人悲傷表達式(PPC460GT 處理器負載達到100%)。

Iptables 和過濾來自貧窮和懶惰的持不同政見者的流量.

事情變得清楚了:
127.0.0.1 上的 DNS 絕對不是萬用藥;現代版本的瀏覽器仍然允許您繞過此類問題。 限制所有使用者的權限是不可能的,我們不能忘記大量的替代 DNS。 網路不是靜態的,除了新的 DNS 位址之外,被禁止的網站還可以購買新位址、更改頂級網域,並且可以在其位址中新增/刪除字元。 但仍有權利過這樣的生活:

ip route add blackhole 1.2.3.4

從禁止網站清單中取得 IP 位址清單會非常有效,但由於上述原因,我們繼續考慮有關 Iptables 的問題。 CentOS Linux 7.5.1804 版本上已經有一個即時平衡器。

使用者的網路應該很快,瀏覽器不應該等待半分鐘,就得出這個頁面不可用的結論。 經過長時間的搜索,我們得到了這個模型:
文件 1 -> /腳本/denied_host,禁止名稱列表:

test.test
blablabla.bubu
torrent
porno

文件 2 -> /腳本/denied_range,禁止的地址空間和地址清單:

192.168.111.0/24
241.242.0.0/16

腳本檔 3 -> ipt.sh使用 ipables 完成這項工作:

# считываем полезную информацию из перечней файлов
HOSTS=`cat /script/denied_host | grep -v '^#'`
RANGE=`cat /script/denied_range | grep -v '^#'`
echo "Stopping firewall and allowing everyone..."
# сбрасываем все настройки iptables, разрешая то что не запрещено
sudo iptables -F
sudo iptables -X
sudo iptables -t nat -F
sudo iptables -t nat -X
sudo iptables -t mangle -F
sudo iptables -t mangle -X
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
#решаем обновить информацию о маршрутах (особенность нашей архитектуры)
sudo sh rout.sh
# циклически обрабатывая каждую строку файла применяем правило блокировки строки
for i in $HOSTS; do
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p tcp -j REJECT --reject-with tcp-reset;
sudo iptables -I FORWARD -m string --string $i --algo bm --from 1 --to 600 -p udp -j DROP;
done
# циклически обрабатывая каждую строку файла применяем правило блокировки адреса
for i in $RANGE; do
sudo iptables -I FORWARD -p UDP -d $i -j DROP;
sudo iptables -I FORWARD -p TCP  -d $i -j REJECT --reject-with tcp-reset;
done

使用 sudo 是因為我們有一個透過 WEB 介面進行管理的小技巧,但根據一年多的使用這種模型的經驗表明,WEB 並不是那麼必要。 實施後,希望將網站清單新增至資料庫等。 被封鎖的主機數量超過250+十幾個位址空間。 透過 https 連線造訪網站時確實存在問題,就像系統管理員一樣,我對瀏覽器有抱怨:),但這些都是特殊情況,大多數無法存取資源的觸發因素仍然在我們這邊,我們還成功封鎖了Opera VPN 以及來自Microsoft 的friGate 和遙測等插件。

Iptables 和過濾來自貧窮和懶惰的持不同政見者的流量

來源: www.habr.com

添加評論