
いくつかの問題がありましたが、解決策が見つかりませんでした。これで(残念ながら)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つの作業を行う必要があります。
IP転送を有効にする必要があります。
sysctl -w net.ipv4.ip_forward=1
ポートを転送するためにターゲット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
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を取得します。この例では、次のコマンドを使用して
IPAddress
10.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
達成することはpptpd
OpenVPNとiptablesを使用して可能ですが、このユースケースではTincがより適切であることがわかります。私は今読んだ。これこのユースケースに合わせてTincを設定する方法について説明します。 OpenVPNを部分的に置き換えます(おそらくより簡単です)pptdp
。その後、iptablesについてもまったく同じルールが必要です。