警告:すべての手順を順番通り正確に実行してください。そうしないと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 Forwardsで127.0.0.53を追加します。その後、System -> Startupを開き、dnsmasqを再起動します。
DNSCryptを使用しない場合は、torrcにDNSPortを追加し、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
- Name:
-
Advanced Settings:
- Use ipset:
!tor_bypass(感嘆符を必ず含めること) - 他の項目は変更せずそのままにする
- Use ipset:
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 で相談することを推奨します。