LANからTorへの全インターネットトラフィックのルーティング

警告:すべての手順を順番通り正確に実行してください。そうしないとLuCIへのアクセスを失う可能性があります!事前にSSH接続を確立しておくことを強く推奨します。万が一LuCIへのアクセスを失った場合でも、変更を元に戻すことが可能です。

警告:この手順はGL.iNet Flint 2(GL-MT6000)でテストされていますが、全ての環境での動作は保証されません。手順のいずれかが不明瞭または異常に見える場合は、直ちに中止し、変更を元に戻してください。

警告:このガイドは、作成者のルーターが正しく動作しているように見えた後に書かれました。問題が残る可能性があり、トラフィックが漏れる場合があるため、セキュリティは保証されません。このガイドに従った結果生じた事象について、作成者は責任を負いません。

このガイドでは、LANからTor経由で全インターネットトラフィックをルーティングする方法を説明します。OpenWrt 24.10でテスト済みです。

Torの設定を除き、すべての手順はLuCI上で実行可能で、SSHは不要です。

ステップ 1: Torのインストールと設定

まずルーターにTorをインストールします:

 # opkg update
 # opkg install tor

必要に応じてTorを設定できますが、torrcには少なくとも以下が含まれている必要があります:

TransPort 0.0.0.0:9040
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1

より安全にするため、TransPortにはルーターのlanインターフェースのIPアドレスを使用することもできます(転送するインターフェースが1つのみの場合)。

ステップ 2: DNSCryptの設定

DNSCryptはこちらのガイドを参考に設定しました。「Using the command line」セクションの5行のコマンドは問題なく動作しましたが、LuCIを使用して設定することも可能です。

System -> Softwareを開き、dnscrypt-proxy2を検索してインストールします。次にNetwork -> DHCP and DNS -> Forwards -> DNS Forwards127.0.0.53を追加します。その後、System -> Startupを開き、dnsmasqを再起動します。

DNSCryptを使用しない場合は、torrcDNSPortを追加し、DNS Forwardsで設定する必要があります。こちらの方法は未確認のため、DNSCryptの使用を推奨します。

ステップ 3: ファイアウォールルールの追加(重要 — 正確に従うこと)

Firewall -> IP setsを開き、以下のIPセットを追加します:

  • Name: tor_bypass

  • Family: IPv4

  • Packet Field Match: dest_ip

  • IPs/Networks/MACs:

    • インターフェース上のルーターのIP
    • 192.168.10.1/16
    • 10.0.0.0/8
    • 172.16.0.0/12
    • 127.0.0.1/32
  • 他の項目は変更せずそのままにする

Firewall -> Port Forwardsを開き、以下のルールを追加します:

  • General Settings:

    • Name: tor-trans-forward(任意の名前でも可)
    • Restrict to address family: IPv4 only
    • Protocol: TCP
    • Source zone: lan(またはトラフィックをリダイレクトしたいゾーン)
    • External port: 1–65535
    • Destination zone: lan(Source zoneと同じである必要があります)
    • Internal IP address: インターフェース上のルーターのIP
    • Internal port: 9040
  • Advanced Settings:

    • Use ipset: !tor_bypass(感嘆符を必ず含めること)
    • 他の項目は変更せずそのままにする

Firewall -> Traffic Rulesを開き、以下のルールを追加します:

  • General Settings:

    • Name: Block non-TCP traffic(任意の名前でも可)
    • Protocol: UDP, ICMP, IGMP, IPSEC-ESP
    • Source zone: lan(Port ForwardのSource zoneと同じである必要があります)
    • Destination zone: wan
    • Action: reject
    • 他の項目は変更せずそのままにする
  • Advanced Settings:

    • 全ての項目を変更せずそのままにする

IPv6を使用している場合は、無効化またはブロックする必要があります。Firewall -> Traffic Rulesを開き、以下のルールを追加します:

  • General Settings:

    • Name: Block IPv6(任意の名前でも可)
    • Protocol: Any
    • Source zone: lan
    • Destination zone: wan
    • Action: reject
    • 他の項目は変更せずそのままにする
  • Advanced Settings:

    • Restrict to address family: IPv6 only
    • 他の項目は変更せずそのままにする

Torにリダイレクトしたい他のインターフェースがある場合は、この手順を繰り返してください。

ステップ 4: 設定の保存と確認

Save & Applyをクリックします。

https://check.torproject.org/ および https://myip.wtf/ を開き、トラフィックが正しくルーティングされているか確認します。

https://ipv6.myip.wtf/ を開き、IPv6が正しくブロックされているか確認します。

LuCIが引き続きアクセス可能か確認します。

すべて正常に動作している場合、設定は完了です。

もし問題がある場合は、テキストエディタで /etc/config/firewall の設定を元に戻してください。問題が解決しない場合は、Libera.Chatの #openwrt で相談することを推奨します。