-2

PPTP サーバーとクライアントの両方を備えた VPS を作成し、この VPS を中継として使用します。

VPS1 と VPS2 の 2 つのサーバーがあり、どちらも PPTPD をインストールし、VPS1 は pptp クライアントをインストールします。

私はこれが欲しい:

ユーザー ---- PPTP ----> VPS1 ----- PPTP ----> VPS2

ユーザーは VPS1 に接続し、すべてのネットワーク トラフィックは VPS2 にルーティングされます。ユーザーがVPS2を直接接続するのが難しいため、これを行っています。中継として機能する中間サーバーが必要です。

どうすれば iptable を設定して動作させることができますか? ありがとう。

4

1 に答える 1

1

PPTP の奇妙な使い方。あなたの ISP は Shanghai, China Telecom でなければなりません。

VPS1 のすべてのネットワーク トラフィックを VPS2 にルーティングする場合、ユーザーの IP アドレスを把握し、例外を設定する必要があります。または、ユーザーは応答パケットを受信しません。

iptables を使用して DNAT を有効にできます。VPS1 をルーターとして、VPS2 を内部pptp サーバーとして作成します。

まず、カーネルモジュールがロードされているかどうかを確認する必要がありip_nat_pptpますip_conntrack_pptp。PPTP は TCP ポート 1723 を使用して制御コマンドを送信し、GRE を使用してデータを転送します。GRE にはポートがないため、サーバーは CallID を使用してエンドポイントを追跡し、NAT を実装する必要があります。これはPPTP パススルーと呼ばれます。

# lsmod | grep pptp

ロードされていない場合は、ロードします。

# modprobe ip_nat_pptp
# modprobe ip_conntrack_pptp

次に、IPv4 ネットワーク転送を有効にする必要があります。

# sysctl -w net.ipv4.ip_forward=1

これで、着信および転送要求を受け入れる iptables ルールを作成できます。

# iptables -A INPUT -d $VPS1_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A INPUT -d $VPS1_IP_ADDR -p gre -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p tcp --dport 1723 -j ACCEPT
# iptables -A FORWARD -d $VPS2_IP_ADDR -p gre -j ACCEPT

最後に DNAT ルールを設定します。

# iptables -A PREROUTING -d $VPS1_IP_ADDR -p tcp --dport 1723 -j DNAT --to-destination $VPS2_IP_ADDR
# iptables -A POSTROUTING -d $VPS2_IP_ADDR -p tcp --dport 1723 -j MASQUERADE

これで、VPS2 の pptpd のユーザー名/パスワードを使用して VPS1 を接続できます。

于 2015-08-15T17:55:25.847 に答える