Tomato OpenVPN クライアント転送設定

Tomato OpenVPN クライアント転送設定

私は専用/静的 IP を取得するためだけに VPN を使用しています (自宅のネットワークはケーブルなので動的 IP を持っているため)。自分の身元を隠すことなど気にしていません。OpenVPN クライアントを使用して、Tomato ファームウェアを実行しているルーターに VPN を設定しています。

私が望んでいるのは、トラフィックが VPN の IP に入ってルーターに到達したときに、トラフィックの送信元の IP に応じて、ホーム ネットワーク内の特定のデバイスにリダイレクトされることです。ネットワーク内の各デバイスには静的 IP が割り当てられており、以前は PPTP を使用する別の VPN を使用していましたが、それは問題なく機能していました。たとえば、Tomato の通常のポート転送ルールは完全に機能し、トラフィックの送信元に応じて、ルーターに接続された適切なデバイスに自動的にルーティングされました。

しかし、PPTP の代わりに OpenVPN を使用する VPN を使用しているため、Tomato のポート転送ルールが機能しなくなったようです。ポート番号とリクエストを送信した IP に基づいて、自宅のネットワーク内の適切なデバイスにトラフィックを送信する方法がわかりません。Tomato の OpenVPN クライアント設定ページに「ルーティング ポリシー」タブがあることに気づきましたが、意味がわかりません。

Tomato のどこかに何らかのスクリプトを追加する必要がありますか? iptables ルールか何か? Tomato のポート転送設定ページを使用できないのは奇妙に思えます。それとも、OpenVPN クライアント設定ページでいくつかのオプションを有効/無効にする必要があるだけですか? 私の知識の範囲を超えています。アドバイスをいただければ幸いです。

答え1

私は私のRedditの質問役に立つかもしれません。

ここでそれを複製します:

そこで、VPNを提供する協会最終的に、次のような解決策にたどり着きました。


  1. VPNが起動したときに実行されるカスタムスクリプトを保存するには、ブラウザでJFFSを有効にします。http://192.168.1.1/admin-jffs2.asp設定を保存すると、一部のサービスが再起動されます(/jffs/ がマウントされます)。

  2. ルーターでTelnetを実行します。

    telnet 192.168.1.1
    
  3. rootTomato にアクセスする際に通常使用するパスワードでログインします。

  4. /jffs/ にスクリプトを作成して編集します。

    vi /jffs/vpnup.sh
    
  5. スクリプトに次の内容を追加します。

    #!/bin/sh
    
    # Script to be run when the VPN is brought up
    
    # Use the VPN to route all packets through the tunnel.
    iptables -t nat -A PREROUTING -s 0.0.0.0/0 -d YYY.YYY.YYY.YYY -j WANPREROUTING
    
    # Apply the port forwarding rules to the tunnel.
    iptables -I FORWARD 1 -i tun11 -s 0.0.0.0/0 -d 0.0.0.0/0 -m state --state NEW -j wanin
    
  6. Esc、、、:と入力しwてvi を保存して終了しqますEnter

  7. スクリプトを root のみが読み取りおよび実行できるようにします。

    chmod 700 /jffs/vpnup.sh
    
  8. Telnet セッションを終了します。

    exit
    
  9. 「カスタム構成」フォームコントロールに次の行を追加します。http://192.168.1.1/vpn-client.asp「詳細設定」タブで:

    up /jffs/vpnup.sh
    
  10. 設定を保存します。

  11. VPN を(再起動)します。

VPN が起動されるたびに、iptables が更新され、すべてのトラフィックが VPN 経由でルーティングされ、ポート転送ルールがトンネルに適用されます。

デバッグに役立つコマンド:

  • ip addr showルーター
  • ip route showルーター
  • iptables -nvLルーター
  • iptables -t nat -nvLルーター
  • tcpdump -ni any port 80サーバ

それが役に立つか、役に立つことを願っています。

関連情報