VPNクライアントにポートを転送しますか?

VPNクライアントにポートを転送しますか?

いくつかの問題がありましたが、解決策が見つかりませんでした。これで(残念ながら)Verizon 3Gを介してネットワークに接続しました。すべての着信トラフィックをフィルタリングするため、接続を受け入れるためにポートを開くことはできません。

現在、linode.comにLinux仮想マシンがあり、それをインストールしてポート転送をpptpd試してみたいと思いました。iptables私はそれをpptpdインストールし、私の家のコンピュータはよく接続されています。つまり、いくつかの一般的な情報は次のとおりです。

サーバー(Debian)WAN IP:eth0のxxxx - pptpd IP:ppp0のyyy1 - クライアントVPN IP:yyy100

私がクレイジーではないことを確認するために、サーバーからクライアントのオープンポートに接続しようとしましたが、クライアントはVPN IPを介した接続を受け入れました。

私が達成したいのはこれです:

インターネット - > WAN IP:ポート - >クライアントVPN IPに転送:ポート

たとえば、クライアントでポート6000を開くと、誰かがxxxx:6000にTelnetを接続でき、サーバーはそのポートをキャプチャして192.168.3.100:6000に転送します。

私は少なくとも20種類のGoogle検索iptables設定を試しましたが、まだ機能していません。誰もが私が知らないアイデアや全く異なるアプローチを持っていますか?ここでの目的は、ファイアウォールが強化された接続、好ましくはTCPおよびUDPトラフィックを介して受信することです。

答え1

VPNサーバー(Linode)が機能するには、次の3つの作業を行う必要があります。

  1. IP転送を有効にする必要があります。

    sysctl -w net.ipv4.ip_forward=1
    
  2. ポートを転送するためにターゲットNAT(DNAT)を設定します。標準ポート転送機能なので、既にご存知でしょう。ただし、完全性のために、次のことを行います。

    iptables -t nat -A PREROUTING -d x.x.x.x -p tcp --dport 6000 -j DNAT --to-dest y.y.y.100:6000
    
  3. VPNクライアントの観点から、接続がVPNサーバーから出るようにソースNAT(SNAT)を設定します。

    iptables -t nat -A POSTROUTING -d y.y.y.100 -p tcp --dport 6000 -j SNAT --to-source y.y.y.1
    

SNATが必要な理由は、そうでない場合、VPNクライアントはVPNではなくデフォルトゲートウェイ(Verizon 3G)を介して接続を開始したホスト(zzzz)に直接リターンパケットを送信するためです。したがって、戻りパケットの送信元IPアドレスはxxxxではなくVerizon 3Gアドレスになります。 zzzzがxxxxへの接続を開始したため、あらゆる種類の問題が発生します。

ほとんどのポート転送設定では、ポート転送を実行するホストがターゲットホスト(ホームルータなど)のデフォルトゲートウェイでもあるため、SNATは必要ありません。

さらに、ポート6000を別のポート(たとえば7000)に転送する場合は、SNATルールは6000ではなく7000と一致する必要があります。

答え2

私もこの問題に直面して数時間解決しようとしました。これが私の解決策です。

  • VPNClient同じものが1つ以上ありますIPAddress。だから私はそれらのそれぞれに静的を与えた。IPAddress

クライアントスクリプトを保存するディレクトリ(例:/ etc / openvpn / staticclients)を定義し、そのディレクトリを作成します。

mkdir /etc/openvpn/staticclients

このディレクトリをサーバーのopenvpn構成ファイルにオプションとして追加します。

client-config-dir /etc/openvpn/staticclients

各クライアントに対してファイルを生成する必要があります。ファイル名は、common nameクライアント証明書で指定された属性と一致する必要があります。このコマンドは、コンピュータ証明書からCNを取得します。

この例では、次のコマンドを使用してIPAddress10.1.134.110/10.1.134.109 をクライアントにプッシュします。common name テストクライアントまた、サブネット 10.1.135.0 への追加パスもプッシュします。

cat /etc/openvpn/staticclients/TESTCLIENT

ifconfig-push 10.1.134.110 10.1.134.109
push "route 10.1.135.0 255.255.255.0 10.1.134.62"
  • http://www.yougetsignal.com/tools/open-ports/そしてhttp://canyouseeme.org/ポートが正しく検出されませんでした。また、Webサイトでこれらのポートを表示できるように、クライアントでアプリケーションを起動する必要があります。

  • 追加SNATのルールは必要ありません。次のルールが必要です。

sysctl -w net.ipv4.ip_forward=1

iptables -t nat -A PREROUTING -p tcp --dport 28006 -j DNAT --to 10.1.134.110

答え3

ほとんどのサーバーでは、デフォルト構成でIP転送が無効になっています。 VPNを介して着信接続をリダイレクトするには、VPNを有効にする必要があります。

この試み:

sysctl -w net.ipv4.ip_forward = 1

iptables 構成に加えて意味します。

答え4

達成することはpptpdOpenVPNとiptablesを使用して可能ですが、このユースケースではTincがより適切であることがわかります。私は今読んだ。これこのユースケースに合わせてTincを設定する方法について説明します。 OpenVPNを部分的に置き換えます(おそらくより簡単です)pptdp。その後、iptablesについてもまったく同じルールが必要です。

関連情報