インターネットリソースのブロックをバイパスするためのさまざまなオプションを備えた膨大な数の手順が公開されています。 ただし、トピックの関連性は失われません。 さらに多くの場合、ロックをバイパスする方法に関する記事をブロックするための立法レベルでの取り組みが聞かれています。 そして、Roskomnadzorが「より良い」ロックのために納税者のお金の別のパックを受け取るといううわさがありました。 経験豊富なユーザーは、この記事から新しいことや有用なことを学ぶことはありません。 しかし、PadavanおよびKeeneticファームウェアを搭載した一般的なルーターで、ロックを簡単かつ効果的に選択的にバイパスするための既製の段階的な手順を入手できる人もいます。

内容
はじめに
約2年間、
Zolg ロックバイパス オプションを使用し
ました 。 ネットワーク上の多くの指示はそれに基づいています。 私を含む。
すべてが良かったが、「最高は常に善の敵である」。 まず、いくつかの新しいプログラムは「スマート」になりすぎており、ルーターのDNSサーバーをバイパスして、独自の方法を使用してドメインを解決します。 これにより、ルーター上のdnsmasqがロック解除のためにipsetセットにアドレスを追加できなくなり、論理的な結果が得られます-リソースはロックされたままです。 Android 9では、DNS-over-TLSのネイティブサポート、つまり ロックをバイパスするこの方法は、動作を停止します(他のデバイスが以前にdnsmasqにアクセスしたことがない場合)。 次に、ドメインのリスト全体をantizapretから更新すると、毎回予測できない結果が生じます。 リストには、実際にブロックされていないドメインが含まれている場合があり、そのドメインの操作はメインチャネルを通じて重要です。 常に注意を払い、生成されたファイルを手で編集する必要があります。 第三に、何万ものカジノなどの膨大なドメインのリストを「持ち歩く」ことに飽き飽きしています。 時間が経つにつれて、ブロックされたリソースの小さな特定のリストだけが必要であることに気付きました。
だから1年間、私は少し修正されたロック解除方法を使用してきましたが、私は完全に満足しています:
- シンプルさと制御の容易さ(構成後)。
- ロック解除する必要があるリソースを完全に制御します。
- プロセッサリソースとルーターRAMの最小要件。
- ロックをバイパスする際の微妙なニュアンスを幅広くカバー。
私のオプションは、数百および数千のドメインのロックを解除する必要がある場合を想定していないことに注意することが重要です。 ルーターが起動すると、指定されたリストの各ドメインが解決されるためです。 リスト内のドメインが多いほど、ロック解除する多くのipsetの初期化が長くなります。
ロックをバイパスするための基本は同じです-Torネットワーク。 その使用は2つの単純な要因によるものです-無料、およびVPNサービスとは異なり、ロシアでTorがブロックされる可能性はゼロに近いです。 Torは、ロシアの麻薬密売の基盤であり、中部から最下部に至るまでです。 Torロックは、市場向けの新しいツールの検索と匿名性の低下につながり、その結果、地元の法執行機関の活動が正常に活性化されます。 最終的に、これはウイルスのように、上位リンクに悪影響を及ぼし始めます。 政府高官とロシアへの世界的な麻薬密輸との関係に関する最新の驚くべきニュースを考えると、ロシアでのTorの妨害は些細なことであるにも関わらず、単なるタブーです。 Roskomnadzorも、この部門に何十億が割り当てられていても、ロシアの単一の裁判所はTorをブロックする許可を「上から」持っていません。 そして、ロシアは単に麻薬にownれているにも関わらず、誰も驚かしたり、怖がらせたりしません(小学生は何をしようとしているのかを知っています。どんな量でも-人生のそのような邪悪な真実)。 現在のモードでは、Torネットワークをブロックする確率は、エルミタージュ美術館サイトをブロックする確率よりも低くなっています。
記載されている手順は、OpenWrtを使用したルーターに簡単に適応できます。 また、小さな変更により、TorをOpenVPNに簡単に置き換えることができます。
構成後にロックをバイパスするにはどうすればよいですか?
すべてが非常に簡単です。 ファイル/opt/etc/unblock.txtがあります-ロックを解除する簡単なリストです。 ドメイン、IPアドレス、アドレス範囲、またはCIDRのロックを解除できます。 1行-1要素。 空の行は許可されますが、行の先頭に#文字を使用して無視できます。
このファイルを編集したら、コマンドを実行して新しい構成を適用するだけです。
unblock_update.sh
unblock.txtのすべてのリソースは、ルーターを再起動することなくロック解除されます。
動作原理
- ルーターが初期化されると、unblockという名前の空のipset IPアドレスのセットが作成されます。
- 宛先のすべてのパケットをブロック解除からTorサービスにリダイレクトするルールがファイアウォールに追加されます。
- Torサービスは、透過プロキシモードで開始されます。
- 特別なスクリプトunblock_ipset.shが起動され、unblock.txtからすべてのドメインが解決され、それらのIPアドレスがブロック解除セットに追加されます。 このファイルのIPアドレス、範囲、およびCIDRもブロック解除に追加されます。
- Dnsmasqは、追加の構成ファイルunblock.dnsmasqを使用して起動されます。これは、解決時にunblock.txtからunblockセットにドメインIPアドレスを追加することを示します。
- cronは、特定の頻度でunblock_ipset.shを実行し、ニュアンスの可能性のあるケースを部分的に補正します。
- 必要に応じて、プロバイダーがDNSをフィルタリングすると、unblock.txtのすべてのドメイン(およびそれらのみ)がdnscrypt-proxyを介して解決されます。
Padavanルーターの構成
Padavanファームウェアがインストールされたルーターと、構成済みのEntwareパッケージマネージャーが必要です。 Windowsでは、
PuTTYクライアントを使用して、SSH経由でルーターに接続できます。
古いEntware-ngではなく、Entwareを使用していることを確認してください。 / opt / var / opkg-listsフォルダーの内容を表示します。 entwareまたはentware-ngファイルがあります。 2番目のケースでは、ルーターのPadavanファームウェアを最新バージョンに更新し、Entwareパッケージマネージャーを再インストールする必要があります。 その後、ステップバイステップの手順に進みます。
レビューが示したように、主にルーターの内部メモリで初期設定が正しくない(つまり、init.dからのスクリプトがロードされていない)人々。 Xiaomi Mi Router 3または3Gをお持ちで、内部メモリのEntwareが正しく動作するかどうか不明な場合(自動起動)、すべてを再度セットアップします。 プロメテウスを取ります。 スクリプトを更新します(1)。 ソースコードを更新します(2)。 最新のファームウェアを収集してフラッシュします(4)。 ファームウェア設定をリセットします(NVRAMおよびファイルストレージ)-[詳細設定]> [管理]> [設定]。 ルーターでインターネットアクセスを構成し、SSHを有効にします。 PROMETHEUS Firmware> RWFS Formattingで実行します。 「詳細」>「管理」>「設定」>「R / Wセクションでファイルシステムをマウント」>「UBIFS」を選択します。 ルーターを再起動します。 内部メモリからの現在のEntware起動スクリプトはすべて自動的に登録され、すべてが時計のように機能します。
テストのために、最新のファームウェア-32a93dbを備えた一般的なXiaomi Mi Router 3G(Entwareは内部メモリにインストールされています)を使用しました。 伝説の赤ちゃんWT3020 AD / F / Hでも10ドルですべてが機能します。

1.ルーターに必要なソフトウェアをインストールする
opkg update opkg install mc tor tor-geoip bind-dig cron
mc-真夜中の司令官ファイルマネージャー。 便利なmceditエディターのためだけに必要です。 別のテキストエディタの使用に慣れている場合は、mcをインストールできません。
tor -Torサービス。
tor-geoip -Torのgeo-IPデータベース。
bind-dig -DNSクライアント(nslookupとホストのアナログ)。
cron-タスクスケジューラ。
2. ipsetを初期化し、複数のブロック解除IPアドレスを作成します(start_script.sh)
必要なモジュールを接続し、ルーターの起動時に
unblockという名前の空のアドレスセットを作成します。 これを行うには、エディターで
/etc/storage/start_script.shファイルを開きます。
mcedit /etc/storage/start_script.sh
最後に追加:
modprobe ip_set modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe ip_set_bitmap_ip modprobe ip_set_list_set modprobe xt_set ipset create unblock hash:net
バッファから貼り付けるには、Shift + Insertを使用し、保存-F2、終了-F10を使用します。

必要に応じて、ルーターのWebインターフェイスからstart_script.shファイルを編集できます-「詳細設定」>「カスタマイズ」>「スクリプト」>「ルーターを初期化する前に実行」 編集後、「適用」をクリックします。

3. Torのセットアップ
Tor構成ファイルの内容を削除します。
cat /dev/null > /opt/etc/tor/torrc
Tor構成ファイルを開きます。
mcedit /opt/etc/tor/torrc
内容を貼り付け(Shift + Insert):
User admin PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
必要に応じて、
192.168.0.1をルーター(LAN)の内部アドレスに置き換えます。 簡単な構成の説明:
- 出力ノードを除外:ロシア、ウクライナ、アルメニアキルギスタン、ベラルーシ。
- 透過プロキシをアドレス192.168.0.1、ポート9141に掛けます。
- 出口点であることを拒否します。
4.ロックをバイパスするためのドメインのリスト(だけでなく)(unblock.txt)
unblock.txtはロックを解除する簡単なリストです。 ドメイン、IPアドレス、範囲、またはCIDRのロックを解除できます。 1行-1要素。 空行(スペースとタブを含む)は無視されます。 行の先頭に#文字を使用して、無視することができます。
ファイル
/opt/etc/unblock.txtを作成します。
mcedit /opt/etc/unblock.txt
各行には、ドメイン名、IPアドレス、範囲、またはCIDRを含めることができます。 #文字を使用して、行にコメントを付けることができます。
5.ドメインの特定のリストのブロック解除IPアドレスのセットを入力するスクリプト(unblock_ipset.sh)
スクリプト
/opt/bin/unblock_ipset.shを作成します。
mcedit /opt/bin/unblock_ipset.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_ipset.sh
スクリプトは非常にシンプルで、それが作業の本質です... google.comドメイン解決が機能するのを待っています(これが行われない場合、ルーターがまだ初期化のプロセスにあるため、ルーターの起動時に多くのブロック解除が行われません)。 unblock.txtファイルの行を読み取ります。 読み取り行は、先頭と末尾のスペースとタブを自動的に削除します。 空の行をスキップします。 #文字で始まる行をスキップします。 CIDRのラインを探しています。 CIDRが見つかったら、それをブロック解除に追加します。 文字列の範囲を探しています。 見つかった場合は、ブロック解除に追加します。 文字列でIPアドレスを探しています。 IPが見つかった場合、それをブロック解除に追加します。 掘って行を解決しましょう。 結果のすべてのIPアドレスがブロック解除に追加されます。
6.ドメインの特定のリストから追加のdnsmasq構成ファイルを生成するためのスクリプト(unblock_dnsmasq.sh)
スクリプト
/opt/bin/unblock_dnsmasq.shを作成します。
mcedit /opt/bin/unblock_dnsmasq.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_dnsmasq.sh
スクリプトは非常にシンプルで、それが作業の本質です... /opt/etc/unblock.txtから順番に行を読み取ります。 読み取り行は、先頭と末尾のスペースとタブを自動的に削除します。 空の行をスキップします。 #で始まる行をスキップします。 IPアドレス(IP、範囲、CIDR)を含む行、つまり ドメイン名を持つ文字列のみに関心があります。 ファイル/opt/etc/unblock.dnsmasqに、「ipset = / domain_name / unblock」という形式の行を追加します。 これは、特定のドメインのIPアドレスを決定した後、ブロック解除セットに自動的に追加されることを意味します。
必ずスクリプトを実行して、unblock.dnsmasqファイルを生成してください。
unblock_dnsmasq.sh
unblock.dnsmasqファイルが作成されたことを確認します。
cat /opt/etc/unblock.dnsmasq
7.ドメインのリストを編集した後のシステムの手動強制更新用スクリプト(unblock_update.sh)
スクリプト
/opt/bin/unblock_update.shを作成します。
mcedit /opt/bin/unblock_update.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_update.sh
8.ルーターの起動時に一連のブロック解除を自動的に設定するスクリプト(S99unblock)
スクリプト
/opt/etc/init.d/S99unblockを作成します。
mcedit /opt/etc/init.d/S99unblock
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/etc/init.d/S99unblock
9.宛先がunblockからTorへのパケットの転送(post_iptables_script.sh)
エディターでファイル
/etc/storage/post_iptables_script.shを開きます。
mcedit /etc/storage/post_iptables_script.sh
最後に追加:
iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141

必要に応じて、ルーターのウェブインターフェースでpost_iptables_script.shファイルを編集できます-「詳細設定」>「カスタマイズ」>「スクリプト」>「ファイアウォールルールの再起動後に実行」。 編集後、「適用」をクリックします。

同じファイルに(これはオプションです)を追加して、外部ポート53へのすべての要求を自分にリダイレクトできます。 これは、ローカルネットワーク上のクライアントがサードパーティのDNSサービスを使用しないようにするために必要です。 要求は通常のDNSサーバーを通過します。
iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1
必要に応じて、
192.168.0.1をルーター(LAN)の内部アドレスに置き換えます。
10.追加の構成ファイルをdnsmasqに接続する
作成したunblock.dnsmasqファイルをdnsmasqに接続する必要があります。 これを行うには、エディターでファイル
/etc/storage/dnsmasq/dnsmasq.confを開きます。
mcedit /etc/storage/dnsmasq/dnsmasq.conf
最後に追加:
conf-file=/opt/etc/unblock.dnsmasq
必要に応じて(これはオプションです)、解像度と信頼性のためにサーバーを追加できます。
server=8.8.8.8
必要に応じて、ルーターのウェブインターフェースで「詳細」>「LAN」>「DHCPサーバー」>「ユーザーdnsmasq.conf構成ファイル」のdnsmasq.confファイルを編集できます。 編集後、「適用」をクリックします。

11.ブロック解除セットの内容を定期的に更新するタスクをcronに追加します
これは、プログラム/デバイスが独自の解決方法を使用し、ドメインIPアドレスが変更された場合の追加保険です。 必要なことは、必要な頻度でunblock_ipset.shスクリプトを実行することだけです。 たとえば、午前6時に毎日起動します。
cron構成ファイルのルート名をadminに置き換えます。
sed -i 's/root/admin/g' /opt/etc/crontab
エディターでファイル
/ opt / etc / crontabを開きます。
mcedit /opt/etc/crontab
最後に追加:
00 06 * * * admin /opt/bin/unblock_ipset.sh
必要に応じて、他のすべてのテンプレートタスクをコメント化できます。 crontabファイルは次のようになります。

12.ルーターの再起動
コマンドを実行します:
reboot
再起動後、ブラウザでcheck.torproject.org Webサイトを開きます(unblock.txtに追加する必要があります)。 すべてを正しく行った場合、「おめでとうございます。」という碑文が表示されます。 このブラウザーはTorを使用するように構成されています。 ":

Keenetic OSを使用したルーターの構成
Entware Package Manager(OPKG)がすでに構成されているKeenetic / Zyxelルーターが必要です。 たとえば、以下はEntwareをサポートするルーターのリストです。KeneticII、Kenetic III、Extra、Extra II、Giga II、Giga III、Omni、Omni II、Viva、Ultra、Ultra II、Omni(KN-1410)、Extra(KN -1710)、Giga(KN-1010)、Ultra(KN-1810)、Viva(KN-1910)、DSL(KN-2010)、Duo(KN-2110)。 Entwareを構成する手順は、
ここにあります (最大10ポイント)。
以前のバージョン(2.07未満のファームウェア)で既にEntwareサポートを追加した場合
は、古いEntware-ngを使用していることを確認してください。
「Netfilterサブシステムカーネルモジュール」-[一般設定]> [コンポーネントセットの変更]を有効にしてください。 使用可能なリストにない場合は、最初にIPv6プロトコルコンポーネントをインストールしてください。 これが表示されない場合は、それなしで試してください。ただし、範囲とCIDRでロック解除できない可能性が高くなります(hash:net setがサポートされないため)。

テストでは、最新のファームウェア2.14.C.0.0-4を備えたKeenetic Ultra(KN-1810)を使用しました。
重要なお知らせ。 システムの通常のDNSサーバーを無効にする必要があります。代わりにdnsmasqを使用します。 DNSサービス(Yandex.DNS / SkyDNS / AdGuard DNS)をクライアントに個別に割り当てる機能は失われますが、必要に応じてdnsmasq設定でグローバルに使用できます。1.ルーターに必要なソフトウェアをインストールする
opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables
mc-真夜中の司令官ファイルマネージャー。 便利なmceditエディターのためだけに必要です。 別のテキストエディタの使用に慣れている場合は、mcをインストールできません。
tor -Torサービス。
tor-geoip -Torのgeo-IPデータベース。
bind-dig -DNSクライアント(nslookupとホストのアナログ)。
cron-タスクスケジューラ。
dnsmasq-full -DNSサーバー。
ipsetおよびiptablesは
ipsetおよびiptablesコンソールユーティリティです(おそらくシステム上にすでに存在し、必要ではないので、セキュリティのために追加しました)。
2. ipsetの初期化、複数のブロック解除IPアドレスの作成(100-ipset.sh)
ルーターシステムが多くのハッシュをサポートしていることを確認します:net
ipset create test hash:net
チームがエラーやメッセージを出さなかった場合、サポートがあり、さらに指示に従ってください。 それ以外の場合(エラーがある)、次のスクリプトでは、
hash:netを
hash:ipに置き換える必要があります。 この場合、範囲とCIDRのロックを解除する機能が失われます。
ルータの起動時に
ブロック解除と呼ばれる空のアドレスセットを作成します。 これを行うには、ファイル
/opt/etc/ndm/fs.d/100-ipset.shを作成します。
mcedit /opt/etc/ndm/fs.d/100-ipset.sh
内容を貼り付け(Shift + Insert):
バッファから貼り付けるには、Shift + Insertを使用し、保存-F2、終了-F10を使用します。
実行権を与える:
chmod +x /opt/etc/ndm/fs.d/100-ipset.sh
3. Torのセットアップ
Tor構成ファイルの内容を削除します。
cat /dev/null > /opt/etc/tor/torrc
Tor構成ファイルを開きます。
mcedit /opt/etc/tor/torrc
内容を貼り付け(Shift + Insert):
User root PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor
必要に応じて、
192.168.0.1をルーター(LAN)の内部アドレスに置き換えます。 簡単な構成の説明:
- 出力ノードを除外:ロシア、ウクライナ、アルメニアキルギスタン、ベラルーシ。
- 透過プロキシをアドレス192.168.0.1、ポート9141に掛けます。
- 出口点であることを拒否します。
4.ロックをバイパスするためのドメインのリスト(だけでなく)(unblock.txt)
unblock.txtはロックを解除する簡単なリストです。 ドメイン、IPアドレス、範囲、またはCIDRのロックを解除できます。 1行-1要素。 空行(スペースとタブを含む)は無視されます。 行の先頭に#文字を使用して、無視することができます。
ファイル
/opt/etc/unblock.txtを作成します。
mcedit /opt/etc/unblock.txt
各行には、ドメイン名、IPアドレス、範囲、またはCIDRを含めることができます。 #文字を使用して、行にコメントを付けることができます。
5.ドメインの特定のリストのブロック解除IPアドレスのセットを入力するスクリプト(unblock_ipset.sh)
スクリプト
/opt/bin/unblock_ipset.shを作成します。
mcedit /opt/bin/unblock_ipset.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_ipset.sh
スクリプトは非常にシンプルで、それがその作業の本質です... google.comドメイン解決が機能するのを待っています(これが行われない場合、ルーターがまだ初期化処理中であるため、ルーターの起動時に多くのブロック解除が行われません)。 unblock.txtファイルの行を読み取ります。 読み取り行は、先頭と末尾のスペースとタブを自動的に削除します。 空の行をスキップします。 #文字で始まる行をスキップします。 CIDRのラインを探しています。 CIDRが見つかったら、それをブロック解除に追加します。 範囲の範囲を探しています。 見つかった場合は、ブロック解除に追加します。 文字列でIPアドレスを探しています。 IPが見つかった場合、それをブロック解除に追加します。 掘って行を解決しましょう。 結果のすべてのIPアドレスがブロック解除に追加されます。
6.ドメインの特定のリストから追加のdnsmasq構成ファイルを生成するためのスクリプト(unblock_dnsmasq.sh)
スクリプト
/opt/bin/unblock_dnsmasq.shを作成します。
mcedit /opt/bin/unblock_dnsmasq.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_dnsmasq.sh
スクリプトは非常に単純です。 /opt/etc/unblock.txtから行を順番に読み取ります。 読み取り行は、先頭と末尾のスペースとタブを自動的に削除します。 空の行をスキップします。 #で始まる行をスキップします。 IPアドレス(IPまたはCIDR)を含む行をスキップします。 ドメイン名を持つ文字列のみに関心があります。 ファイル/opt/etc/unblock.dnsmasqに、「ipset = / domain_name / unblock」という形式の行を追加します。 これは、特定のドメインのIPアドレスを決定した後、それらが自動的にブロック解除セットに追加されることを意味します。
必ずスクリプトを実行して、unblock.dnsmasqファイルを生成してください。
unblock_dnsmasq.sh
unblock.dnsmasqファイルが作成されたことを確認します。
cat /opt/etc/unblock.dnsmasq
7.ドメインのリストを編集した後のシステムの手動強制更新用スクリプト(unblock_update.sh)
スクリプト
/opt/bin/unblock_update.shを作成します。
mcedit /opt/bin/unblock_update.sh
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/bin/unblock_update.sh
8.ルーターの起動時に一連のブロック解除を自動的に設定するスクリプト(S99unblock)
スクリプト
/opt/etc/init.d/S99unblockを作成します。
mcedit /opt/etc/init.d/S99unblock
内容を貼り付け(Shift + Insert):
実行権を与える:
chmod +x /opt/etc/init.d/S99unblock
9.宛先がunblockからTorへのパケットの転送(100-redirect.sh)
これを行うには、ファイル
/opt/etc/ndm/netfilter.d/100-redirect.shを作成します。
mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh
内容を貼り付け(Shift + Insert):
手順2 でhash:netではなくhash:ipを使用した場合、hash:netをhash:ipに置き換えます。実際、2つのステップからブロック解除のセットを作成する機能をさらに複製します。これは、fs.dからのスクリプトがまだ実行を開始しておらず、スクリプトnetfilter.dが既に実行されている場合、セキュリティのために必要です。ブロック解除が以前に作成されていても問題ありません。コマンドは単に無視されます。同じファイルに(これはオプションです)を追加して、外部ポート53へのすべての要求を自分にリダイレクトできます。これは、ローカルネットワーク上のクライアントがサードパーティのDNSサービスを使用しないようにするために必要です。要求は通常のDNSサーバーを通過します。最後の出口の前に、次を追加します。 if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 fi
必要に応じて、192.168.0.1をルーター(LAN)の内部アドレスに置き換えます。実行権を与える: chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh
10. dnsmasqを構成し、dnsmasqに追加の構成ファイルを添付する
dnsmasq構成ファイルの内容を削除します。 cat /dev/null > /opt/etc/dnsmasq.conf
dnsmasq構成ファイルを開きます。 mcedit /opt/etc/dnsmasq.conf
内容を貼り付け(Shift + Insert): user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.0.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq server=8.8.8.8
必要に応じて、192.168.0.1をルーター(LAN)の内部アドレスに置き換えます。11.ブロック解除セットの内容を定期的に更新するタスクをcronに追加します
これは、プログラム/デバイスが独自の解決方法を使用し、ドメインIPアドレスが変更された場合の追加保険です。必要なことは、必要な頻度でunblock_ipset.shスクリプトを実行することだけです。たとえば、午前6時に毎日起動します。エディターでファイル/ opt / etc / crontabを開きます。 mcedit /opt/etc/crontab
最後に追加: 00 06 * * * root /opt/bin/unblock_ipset.sh
必要に応じて、他のすべてのテンプレートタスクをコメント化できます。crontabファイルは次のようになります。
12.通常のDNSサーバーの無効化とルーターの再起動
Keenetic Router CLIに接続します(「SSHサーバー」コンポーネントがシステムに追加されている場合、Telnetのポート23とSSHのポート22)。コマンドを実行します: opkg dns-override system configuration save system reboot
ファームウェアに組み込まれたDNSサーバーはオフになり、代わりにEntwareのdnsmasqが使用されます。起動時のルーターは、optフォルダーがマウントされているかどうかを確認します(EntwareのUSBフラッシュドライブ/ドライブがあります)。存在する場合、通常のDNSサーバーは使用されません。そうでない場合は、使用されます。つまり
フラッシュドライブを取り外してルーターを再起動すると、前と同じように(セットアップする前に)すべてが機能します。再起動後、ブラウザでcheck.torproject.org Webサイトを開きます(unblock.txtに追加する必要があります)。すべてを正しく行った場合、「おめでとうございます。」という碑文が表示されます。このブラウザーはTorを使用するように構成されています。 ":
構成後のエラーを診断するための基本的な方法
サイトcheck.torproject.org(unblock.txtに追加する必要があります)でのチェックに合格しても、プロバイダーからのスタブが他のリソースに対して開かれている(または開かない)場合、プロバイダーはDNSトラフィックに干渉し、回答を置き換えます- DNSクエリのフィルタリングをさらにバイパスする必要があります。構成後に何かが正常に機能しない場合は、簡単なコマンドを使用して問題のステップを特定します。ブロック解除セットの内容を表示します。 ipset list unblock
システムがそのようなセットがないことを報告する場合、エラーはステップ2にありますまたはシステムのNetfilterモジュールを有効にしませんでした(Keneticの場合)。セットが空であることが判明した場合、unblock_ipset.shスクリプトは機能していなかったため、S99unblock起動スクリプトで起動する必要があります。このunblock_ipset.shスクリプトを手動で実行します。セットがいっぱいの場合、エラーはステップ8にあります。スクリプトを実行できない場合(google.comの解決を待機している可能性が高い)、エラーはDNSサーバー側のどこかにあります。おそらくステップ10または6です。iptablesでリダイレクトを確認します: iptables-save 2>/dev/null | grep unblock
存在しない場合、エラーはステップ9にあります。すべてのサイトがまったく機能しない場合、つまり DNSは機能せず、エラーはステージ6または10のどこかにあります。おそらく、ステージ9にあります。unblock.txtのすべてのサイトが機能しない(タイムアウトを超過)が、他のすべてが機能する場合、問題はTor側のどこかにある、エラーステージ3で。プロバイダーによるDNSクエリのフィルタリングの追加バイパス
プロバイダーが、ブロックされたリソースの応答を置き換えることによりDNSトラフィックに干渉する場合、これを回避するのは非常に簡単です。このために、dnscrypt-proxyを使用します。ご希望の場合は、dnscryptをスタブビー(DNS over TLS)に簡単に置き換えることができます。dnscryptは、unblock.txtにリストされているドメインにのみ使用されます。他のすべてのクエリは、通常のDNSサーバーを通過します。プロバイダーがDNSクエリをフィルタリングしないことが確実な場合、この追加の構成を行う必要はありません。上記のロックバイパスを既に設定している必要があります。次の設定は、PadavanとKeenetic OSで同じです。ルーターに追加のソフトウェアをインストールします。 opkg update opkg install dnscrypt-proxy2
dnscrypt-proxy構成ファイルを開きます。 mcedit /opt/etc/dnscrypt-proxy.toml
listen_addresses、fallback_resolverを見つけて、パラメーターをキャッシュして変更します。 listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false
77.88.8.8:1253は、非標準ポートを持つYandex DNSサーバーアドレスです。dnscrypt-proxyに問題がある場合のバックアップです。dnscrypt-proxyを実行します。 /opt/etc/init.d/S09dnscrypt-proxy2 start
dnscrypt-proxyが機能していることを確認します(応答としてIPアドレスのリストが表示されます)。 dig +short google.com @localhost -p 9153
エディターで/opt/bin/unblock_ipset.shスクリプトを開きます: mcedit /opt/bin/unblock_ipset.sh
内容を次のものに置き換えます。
小さな変更を加えました-解決のための掘りは通常のDNSサーバーを使用せず、ポート9153のdnscrypt-proxyを使用します。エディターで/opt/bin/unblock_dnsmasq.shスクリプトを開きます。 mcedit /opt/bin/unblock_dnsmasq.sh
内容を次のものに置き換えます。
小さな変更を加えました-unblock.dnsmasqファイルを生成するときに、「server = / domain_name / 127.0.0.1#9153」のような行が追加されました。これは、リストからのドメインの解決がdnscrypt-proxyを介して行われることを意味します。unblock_update.shを実行します。 unblock_update.sh
できた
複雑な設定はすべて遅れています。ここで、必要に応じてunblock.txtリストを編集し、そこからドメインまたはIPアドレスを追加または削除してロックを解除し、unblock_update.shコマンドを使用して変更を有効にします。更新04/01/2019。多くの場合、記事には一般的な質問を含む個人的なメッセージがあります。ここで最も一般的な答えをします。.onionドメインゾーンサイトを利用可能にする方法は?torrcに追加: VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1
オニオンゾーンのすべてのドメインにアクセスするには、dnsmasq.confに追加します。 server=/onion/127.0.0.1
オニオンゾーンのすべてのドメインではなく、特定のドメインのみへのアクセスを開きたい場合は、dnsmasq.confに次のエントリを追加します。 server=/rutorc6mqdinc4cz.onion/127.0.0.1
ルーターで実行されているVPNサーバーのクライアントのロックをバイパスする方法torrcで、行をTransPortに置き換えます。 TransPort 0.0.0.0:9141
必要なインターフェイス(インターフェイス-VPNネットワークインターフェイス)で追加のリダイレクトを追加します。 iptables -t nat -A PREROUTING -i -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141