それで、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.txt
1行に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/)。