iptablesにURLリストファイルを含める方法は?

iptablesにURLリストファイルを含める方法は?

それで、80,000を超えるURLに基​​づいたファイルを含めたいと思います。https://github.com/StevenBlack/hostsIPTABLESのルールでファイルをホストします。これを手動で行う方法はありますが、ご存知のように、80,000以上のアイテムを手動で実行するのは非常に困難です。

フィルタ: 入力ドロップ[0:0] :前方ドロップ[0:0] :出力許可[0:0] :upnp - [0:0] :vpnlist - [0:0] :bfplimit - [0:0] :マイクリスト - [0:0]
:urllist - [0:0]
-A 入力 -m 状態 -- 状態が設定され、関連 -j 許可
-A 入力 -i br0 -j 受け入れ
-A 入力 -i lo -j 受け入れ
-A 入力 -m 状態 --状態が無効 -j DROP
-A 入力 -p udp --sport 67 --dport 68 -j 受け入れ
-A入力-p icmp! --icmp-type エコーリクエスト-jを受け入れる
-A フォワード -i br0 -o br0 -j 承諾
-A urllist -p tcp -m webstr --url "ada.com aaa.com ffff.com"-j REJECT --reject-with tcp-reset
-A フォワード -i br0 -j urllist
-A 進む -m 状態 -- 状態が設定され、関連 -j 許可
-A 進む -m 状態 --状態が無効です -j DROP
-A フォワード -i br0 -j 承諾
-A FORWARD -m conntrack --ctstate DNAT -j 提出を受け入れる

太字の部分はすべてのURLを入力したり、ファイルを含めたい部分です

これを行う方法についてのアイデアはありますか?

答え1

私が知る限り、iptablesはURLやドメインを理解していません。まず、すべてのURLをIPアドレスに変換する必要があります。このオンラインツールを使用してくださいhttp://domaintoipconverter.com/index.php

以前の結果からIPアドレスを抽出するには、このオンラインツールを使用してください。https://www.ipvoid.com/ip-extractor/

IPアドレスをlist.txt1行に1つずつテキストファイル(たとえば)に保存します。ファイルlist.txtは次のようになります。

$ cat list.txt
145.14.145.222
145.14.144.69
192.243.59.20
192.243.59.12
150.242.210.158
150.242.210.187
122.226.186.3

次に、単純な「for loop」bashスクリプトを使用して、list.txtファイルのすべてのIPアドレスをiptablesに追加します。

#!/bin/bash
for i in $(cat list.txt);
do 
iptables -A OUTPUT -d "$i" -j DROP
done
# Save the rules
service iptables save

答え2

iptablesを使用すると、パケットの内容に基づいてフィルタリングできますが、そのパケットが暗号化されていない場合にのみ可能です。

広告ブロッカーとして使用したいので:

  • https接続では機能しません。
  • すべてパケットは80,000以上のルールと一致します。

代替案を検討してください(例:https://pi-hole.net/)。

関連情報