LiberteでTorをプロキシとして使用するようにOpenVPNをセットアップしようとしています。 rootとしてopenvpnを実行すると、次の応答が返されます。
Tue May 13 15:15:18 2014 Attempting to establish TCP connection with 127.0.0.1:9050 [nonblock]
Tue May 13 15:15:20 2014 TCP: connecto to 127.0.0.1:9050 failed, will try again in 5 seconds: No route to Host
これは次の設定によるものと思います。
# Tor access via SOCKS only for main user and Privoxy
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner ${luser} --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner privoxy --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
iptables -A OUTPUT -p tcp --syn -d 127.0.0.1 --dport 9050 -j LOGREJECT
通常のユーザー(anon)としてopenvpnを実行しようとすると、問題なく接続できるためです。代わりに、実行の後半で他のアクセス許可の競合が発生します。
だから私は以下を実行しようとしました:
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner root --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
/etc/init.d/iptables save
/etc/init.d/iptables restart
そして、iptables -Lを実行すると、変更が表示されることを確認してください。
しかし、openvpnを実行しようとすると、同じエラーが発生します。では、なぜ変更が有効にならないのでしょうか。
これが私の考えです:
iptables
を使用して新しいルールを追加すると、チェーンの最後にルールが追加されます。
したがって、そのコマンドを発行した後、チェーンはおそらく次のようになります。
# Tor access via SOCKS only for main user and Privoxy
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner ${luser} --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner privoxy --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
iptables -A OUTPUT -p tcp --syn -d 127.0.0.1 --dport 9050 -j LOGREJECT
iptables -A OUTPUT -o lo -p tcp -m owner --uid-owner root --syn -d 127.0.0.1 --dport 9050 -j ACCEPT
ルート所有のパケットは、最終的なACCEPTルールの前に表示されるため、LOGREJECTルールでトリップされています。 3行目の前に4行目を発行する必要があります。