このトピックでは、CentOS 7オペレーティングシステムを実行するElastic Compute Service (ECS) インスタンス上のPPTP VPNサーバーとPPTP VPNクライアント間の接続を設定する方法について説明します。
背景情報
ポイント・ツー・ポイント・トンネリング・プロトコル (PPTP) は、VPNで使用するためにポイント・ツー・ポイント・プロトコル (PPP) に基づいて開発されたネットワーク・トンネリング技術である。 PPTPサーバーにダイヤルアップしてPPP接続を確立し、PPTPネゴシエーションを実行してクライアントとサーバー間にトンネルを作成し、PPPネットワーク制御プロトコル (NCP) ネゴシエーションを実行してVPNのIPアドレス範囲からクライアントにIPアドレスを割り当てます。 割り当てられたIPアドレスを使用して、VPN内で通信できます。 このようにして、インターネット経由でVPNへの安全なトンネルまたは接続を確立できます。
このトピックでは、前述の手順の例とガイドラインを示します。 動作は、実際の条件に基づいて変化し得る。 PPTPにはセキュリティ上の問題がある。 PPTPを使用する前に、ビジネスに対する問題の影響を評価することをお勧めします。 詳細については、「PPTPクライアント」をご参照ください。
PPTP VPNサーバーの設定
PPTP VPNサーバーとして使用するCentOS ECSインスタンスに接続し、次の手順を実行してPPTP VPNサーバーを設定します。 ECSインスタンスへの接続方法については、「インスタンスへの接続」をご参照ください。
前提条件
ECS インスタンスを作成済み。 ECSインスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
PPTP VPNサーバーを設定する方法を説明する以下のセクションでは、以下の設定を持つECSインスタンスが使用されています。 オペレーティングシステムのバージョンの違いによるコマンドエラーを防ぐため、前提条件でオペレーティングシステムのバージョンを使用することを推奨します。
インスタンスタイプ: ecs.c6.large
オペレーティングシステム: CentOS 7.2パブリックイメージ
ネットワークタイプ:Virtual Private Cloud (VPC)
IPアドレス: パブリックIPアドレス
PPTP VPNはTCPポート1723を使用します。 インバウンドルールがECSインスタンスのセキュリティグループに追加され、ポート1723でのトラフィックが許可されます。 詳細については、「ECSインスタンスにVPN gatewayをインストールした後にセキュリティグループを設定する方法」をご参照ください。
PPTPの設定
PPTP VPNサーバーをインストールします。
前提条件で準備したECSインスタンスで次のコマンドを実行して、PPTP VPNサーバーをインストールします。
yum install -y ppp pptpdPPTPデーモン (pptpd) の設定ファイルを変更します。
IPアドレスをPPTP VPNサーバーのクライアントに割り当てることができるCIDRブロックを指定します。 これにより、サーバーに接続された各デバイスが一意のIPアドレスを取得できるようになります。
vim /etc/pptpd.confコマンドを実行して設定ファイルを開き、次の設定をファイルに追加します。localip 192.168.0.1 remoteip 192.168.0.230-238説明localipパラメーターには、PPTP VPNサーバーのアドレスを指定します。 ほとんどの場合、サーバーのプライベートIPアドレスを指定することをお勧めします。 実際のビジネスシナリオに基づいてlocalipパラメーターを設定します。
remoteipパラメーターには、PPTP VPNサーバーのクライアントにIPアドレスを割り当てるCIDRブロックを指定します。 IP競合を防ぐには、CIDRブロックのIPアドレスが他のデバイスで使用されていないことを確認します。 実際のビジネスシナリオに基づいてremoteipパラメーターを設定します。
設定ファイルの内容を確認してください。 次の図は、上記の設定を追加した後の設定ファイルの内容を示しています。

ドメインネームシステム (DNS) 設定を構成します。
PPTP VPNサーバーに接続されているクライアントがドメイン名を解決できるようにするには、DNSサーバーを追加します。
vim /etc/ppp/options.ppt pdコマンドを実行して /etc/ppp/options.ppt pdファイルを開き、次の設定をファイルに追加します。ms-dns 223.5.5.5 ms-dns 223.6.6.6説明223.5.5.5および223.6.6.6は、Alibaba CloudパブリックDNSサーバーのIPアドレスです。 ビジネス要件に基づいて、ms-dnsを他のDNSサーバーのIPアドレスに設定できます。
ファイルの内容を確認してください。 次の図は、上記の設定を追加した後のファイルの内容を示しています。

ユーザーを作成します。
クライアントID認証用のユーザーを作成します。 クライアントがPPTP VPNサーバーに接続されると、サーバーはクライアントのID認証を実行して、許可されたユーザーのみがダイヤルアップまたはネットワーク接続を介してシステムにアクセスできるようにします。
vim /etc/ppp/chap-secretsコマンドを実行して、pptpdプロセスのユーザー名とパスワードを設定します。 ビジネス要件に基づいて、<Username> pptpd <Password> <IP address>形式のアカウントを /etc/ppp/chap-secretsファイルに追加します。 項目をスペースで区切り、各行にアカウントを1つだけ追加します。説明例: テストpptpd 123456 * 。 アスタリスクのワイルドカード文字 (*) は、すべてのIPアドレスを示します。
test pptpd 123456 *ファイルの内容を確認してください。 次の図は、上記の設定を追加した後のファイルの内容を示しています。

最大伝送ユニット (MTU) を変更します。
MTUは、ネットワークパフォーマンスの最適化、セグメントの削減、データ伝送効率の向上に使用されます。
vim /etc/ppp/ip-upコマンドを実行して /etc/ppp/ip-upファイルを開き、次の設定をファイルに追加してMTUを変更します。ifconfig ppp0 mtu 1472ファイルの内容を確認してください。 次の図は、上記の設定を追加した後のファイルの内容を示しています。

PPTPを開始します。
次のコマンドを実行してPPTPを起動し、システム起動時にPPTPを起動するように設定します。
systemctl start pptpd systemctl enable pptpd.service
IP転送の有効化
システムがIP転送を実行できるようにするには、次の手順を実行します。
次のコマンドを実行して、IP転送を有効にします。
echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.confsysctl.conf設定ファイルの内容を確認してください。 次の図は、上記の設定を追加した後の設定ファイルの内容を示しています。

設定を有効にするには、
sysctl -pコマンドを実行します。
iptablesファイアウォールの設定
iptablesファイアウォールを使用して、受信および送信ネットワークトラフィックを制御するルールを構成できます。 たとえば、インターネットアクセス用に単一のIPアドレスを共有するように複数のコンピューターを構成できます。
ファイアウォールを無効化します。
systemctl stop firewalld systemctl mask firewalldiptablesサービスをインストールします。
yum install -y iptables-servicesiptablesサービスを起動し、システム起動時に開始するようにサービスを設定します。
systemctl start iptables systemctl enable iptablesPPTP接続を許可するルールを追加します。
# Accept new TCP connection requests on port 1723. iptables -I INPUT -p tcp --dport 1723 -m state --state NEW -j ACCEPT # Allow the Generic Routing Encapsulation (GRE) protocol. The IP protocol number of GRE is 47. iptables -I INPUT -p gre -j ACCEPTiptables転送ルールを追加して、送信元アドレスのマスカレードを実装します。
192.168.0.0/24を、IPアドレスがPPTP VPNクライアントに割り当てられるCIDRブロックに置き換えます。iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADENAT転送ルールを追加して、クライアントCIDRブロックからのパケットの送信元IPアドレスを特定のパブリックIPアドレスに変換します。
192.168.0.0/24を、IPアドレスがPPTP VPNクライアントに割り当てられるCIDRブロックに置き換えます。XXX.XXX.XXX.XXXを、PPTP VPNサーバーが存在するECSインスタンスのパブリックIPアドレスに置き換えます。iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source XXX.XXX.XXX.XXX設定を保存します。
service iptables saveiptablesサービスを再起動します。
systemctl restart iptables
PPTP VPNクライアントの設定
CentOS
前提条件
ECS インスタンスを作成済み。 ECSインスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。 次のセクションでは、次の設定を持つECSインスタンスが使用されています。 オペレーティングシステムのバージョンの違いによるコマンドエラーを防ぐため、前提条件でオペレーティングシステムのバージョンを使用することを推奨します。
インスタンスタイプ: ecs.c6.large
オペレーティングシステム: CentOS 7.2パブリックイメージ
ネットワークタイプ:VPC
IPアドレス: パブリックIPアドレス
手順
ECS インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください。
ECSインスタンスで次のコマンドを実行し、PPTPパッケージをインストールします。
yum install -y ppp pptp pptp-setup次のコマンドを実行して、PPTP VPNサーバーに接続します。
pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start説明[$IP] を、PPTP VPNサーバーが存在するECSインスタンスのパブリックIPアドレスに置き換えます。
[$User] を、PPTP VPNサーバーを構成したときに作成したユーザーのユーザー名に置き換えます。 ユーザー名を取得する方法については、このトピックの「PPTP VPNサーバーの構成」セクションのユーザーの作成手順を参照してください。
[$Password] を、PPTP VPNサーバーを構成したときに作成したユーザーのパスワードに置き換えます。 ユーザーのパスワードを取得する方法については、このトピックの「PPTP VPNサーバーの構成」のユーザーの作成手順を参照してください。
次の図は、PPTP VPNクライアントがPPTP VPNサーバーに接続されていることを示しています。
192.168.0.234がクライアントに割り当てられていることを確認したら、次のコマンドを実行します。 コマンド出力にはppp0ネットワークインターフェイスコントローラー (NIC) があります。ifconfig | grep -A 10 ppp次の図は、コマンドが期待どおりに実行されることを示しています。

Windows
前提条件
ECS インスタンスを作成済み。 ECSインスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。 次のセクションでは、次の設定を持つECSインスタンスが使用されています。 オペレーティングシステムのバージョンの違いによるコマンドエラーを防ぐため、前提条件でオペレーティングシステムのバージョンを使用することを推奨します。
インスタンスタイプ: ecs.c6.large
オペレーティングシステム: Windows Server 2022パブリックイメージ
ネットワークタイプ:VPC
IPアドレス: パブリックIPアドレス
手順
ECS インスタンスに接続します。 詳細については、「インスタンスへの接続」をご参照ください。
デスクトップの左下隅にある [スタート] アイコンをクリックし、[設定] を選択します。 [Windowsの設定] ウィンドウで、[ネットワークとインターネット] をクリックします。 表示されるウィンドウの左側のナビゲーションウィンドウで、[VPN] をクリックします。 VPNページで、[VPN接続の追加] をクリックします。

[VPN接続の追加] ダイアログボックスで、次のパラメーターを設定して保存します。
VPNプロバイダー: [Windows (組み込み)] を選択します。
接続名: VPN接続名を指定します。 例: pptp.
サーバー名またはアドレス: PPTP VPNサーバーのパブリックIPアドレスまたはドメイン名を入力します。
VPNタイプ: [ポイントツーポイントトンネリングプロトコル (PPTP)] を選択します。
サインイン情報の種類: [ユーザー名とパスワード] を選択します。
ユーザー名 (オプション): PPTP VPNサーバーで作成したユーザーのユーザー名を入力します。
パスワード: PPTP VPNサーバーで作成したユーザーのパスワードを入力します。

コントロールパネルで、 を選択します。 表示されるウィンドウで、作成したVPN接続を見つけます。

VPN接続を右クリックし、 を選択します。 表示されるダイアログボックスの [ネットワーク] タブで、[インターネットプロトコルバージョン4 (TCP/IPv4)] を選択し、[プロパティ] をクリックします。
表示されるダイアログボックスで、[詳細設定] をクリックします。 [IP設定] タブで、[リモートネットワークでデフォルトゲートウェイを使用] をオフにし、[OK] をクリックして設定を保存します。
重要[リモートネットワークでのデフォルトゲートウェイの使用] をオフにしない場合、ダイヤルアップ接続が確立された後にローカルのデフォルトゲートウェイ設定が変更されます。 その結果、接続を介してインターネットにアクセスすることはできません。

[開始] アイコンをクリックし、[設定] を選択します。 [Windowsの設定] ウィンドウで、[ネットワークとインターネット] をクリックします。 表示されるウィンドウの左側のナビゲーションウィンドウで、[VPN] をクリックします。 VPNページで、[接続] をクリックしてVPN接続を確立します。 VPN接続が確立されている場合、設定は正しいです。

よくある質問
ブラウザでWebサイトを開くことができない場合はどうすればよいですか?
PPTP VPNを設定して接続を確立し、Webサイトのドメイン名を正常にpingした後にブラウザでWebサイトを開くことができない場合、MTUの設定が無効になる可能性があります。 以下のいずれかの方法を使用して問題を解決できます。
方法 1
VPNが設定されているCentOSサーバーに接続します。
ifconfig ppp0 mtu 1472コマンドを実行します。Webサイトをブラウザで開くことができるかどうかを確認します。 Webサイトが開かれると、問題は解決されます。
説明方法1は問題の一時的な解決策です。 問題を完全に解決するには、方法2を使用します。
方法 2
VPNが設定されているCentOSサーバーに接続します。
vim /etc/ppp/ip-upコマンドを実行し、/etc/ppp/ip-upファイルを開きます。ifconfig ppp0 mtu 1472コマンドを/etc/ppp/ip-upファイルに追加します。次のコマンド出力は、コマンドが追加されたことを示します。

Webサイトをブラウザで開くことができるかどうかを確認します。
Webサイトが開かれると、問題は解決されます。
正しくないIPアドレスを取得した場合はどうすればよいですか?
クライアントからVPNに接続した後、VPNサーバーによって割り当てられたIPアドレスではなく、インスタンスの内部NIC IPアドレスを取得します。 たとえば、VPNクライアントの名前はtestvpnです。 問題を解決するには、次の操作を実行します。
手順
VPNが設定されているCentOSサーバーに接続します。
vim /etc/ppp/peers/testvpnコマンドを実行し、pppクライアントの/etc /PPP /peers/testvpn設定ファイルを開きます。 次の図に示すように、noipdefaultパラメーターを追加します。
次のコマンドを実行して、クライアントを再起動します。 VPNに再接続すると、正しいIPアドレスを取得できます。
poff testvpn pon testvpn説明クライアントを再起動すると、
noipdefaultパラメーターがサーバーから渡されたパラメーターによって上書きされることがあります。noipdefaultパラメーターが上書きされた場合は、サーバーの設定を確認します。