このトピックでは、Ubuntuオペレーティングシステムを実行するelastic Compute Service (ECS) インスタンスで、Point to Point Tunneling Protocol (PPTP) VPNを設定するためのガイドを提供します。
概要
このトピックは、Ubuntu 18.04以降のバージョンに適用されます。
このガイドでは、Ubuntu 18.04のECSインスタンスを使用しています。 ECSインスタンスの作成方法については、「カスタム起動タブでインスタンスを作成する」をご参照ください。
セキュリティグループで、PPTP VPNに必要なポート (TCPポート1723) を追加します。 詳細については、「ECSインスタンスにVPN gatewayをインストールした後にセキュリティグループを設定する方法」をご参照ください。
VPNサーバーの設定
PPTPサーバーとして機能するECSインスタンスにログインし、PPTPサーバーの設定を行います。 ログイン手順については、「SSHを使用したLinux ECSインスタンスへの接続」をご参照ください。
PPTPサービスの設定
次のコマンドを実行してpptpdをインストールします。
sudo apt-get update sudo apt-get -y install pptpd
pptpd設定ファイルを編集してPPTPクライアントのIPアドレス範囲を設定し、各デバイスが一意のIPを受け取るようにします。
sudo vim /etc/pptpd.conf
コマンドを実行し、次の設定を追加します。localip 192.168.0.1 remoteip 192.168.0.234-238
説明localip
は、クライアント接続用のVPNサーバーのアドレスです。通常はサーバーのプライベートネットワークIPです。 必要に応じてlocalipを調整します。remoteip
は、PPTPクライアントに割り当てられたIPアドレスの範囲です。 競合を避けるために、他のデバイスと重複しないようにしてください。
ファイルの内容を下図に示します。
DNSを設定します。
sudo vim /etc/ppp/pptpd-options
コマンドを実行し、次のDNS設定を追加します。ms-dns 223.5.5.5 ms-dns 223.6.6.6
説明Alibaba CloudパブリックDNSサーバーのIPアドレス223.5.5.5および223.6.6.6を使用します。 または、必要に応じて他のパブリックDNSサーバーに置き換えることもできます。
ファイルの内容を下図に示します。
PPTPサーバー認証用のユーザーを作成し、許可されたアクセスのみを許可します。
sudo vim /etc/ppp/chap-secrets
コマンドを実行し、username pptpd password IP address
の形式でユーザー資格情報を追加し、各フィールドをスペースで区切ります。説明例: test pptpd 123456。「 * 」はすべてのIPアドレスを表します。
test pptpd 123456 *
ファイルの内容を下図に示します。
ルーティング転送の有効化
次のコマンドを実行して転送を有効にします。
sudo echo "net.ipv4.ip_forward = 1" >>/etc/sysctl.conf
次のコマンドを実行して、システムパラメータをロードします。
sudo sysctl -p "/etc/sysctl.conf"
ファイアウォール転送ルールの設定
rc.localファイルを
sudo vim /etc/rc.local
で編集し、次のコンテンツを追加します。説明XXX.XXX.XXX.XXX.XXXをECSインスタンスのパブリックIPアドレスに置き換えます。
sudo iptables -A INPUT -p gre -j ACCEPT sudo iptables -A INPUT -p tcp --dport 1723 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 47 -j ACCEPT sudo iptables -t nat -A P0STROUTING-s 192.168.0.0/24-0 -j SNAT --to-source XXX.XXX.XXX.XXX
PPTPサービスを再起動し、ブート時に自動的に起動するように設定します。
sudo /etc/init.d/pptpd restart sudo systemctl enable pptpd.service
VPNクライアントの設定
次のコマンドでPPTPクライアントソフトウェアをインストールします。
sudo apt-get update sudo apt-get -y install pptp-linux
次のコマンドでtestという名前のVPN接続を開始します。
sudo pptpsetup --create test --server [$IP] --username [$User] --password [$Password] --encrypt --start
説明[$IP] は、ECSインスタンス上のPPTPサーバーのパブリックIPアドレスです。
[$User] は、PPTPサーバーユーザーアカウントのユーザー名です。
[$Password] は、PPTPサーバーユーザーアカウントのパスワードです。
次のようなコマンド出力が返された場合は、PPTP VPNサーバに接続していることを示します。
Using interface ppp0 Connect: ppp0 <--> /dev/pts/1 CHAP authentication succeeded MPPE 128-bit stateless compression enabled local IP address 192.168.0.234 remote IP address 192.168.0.1