PPTPを使用して独自のVPNを設定する方法
ステータス:非推奨
この記事は非推奨になり、保守されなくなりました。
理由
Ubuntu 12.04は2017年4月28日に保守終了(EOL)に達し、セキュリティパッチまたはアップデートを受信しなくなりました。
代わりに参照してください
この記事は参照として役立つ場合がありますが、ベストプラクティスに従わなかったり、このリリースまたは他のUbuntuリリースで機能しない場合があります。 使用しているUbuntuのバージョン用に書かれた最近の記事を使用することを強くお勧めします。
現在Ubuntu12.04を実行しているサーバーを運用している場合は、サポートされているバージョンのUbuntuにアップグレードまたは移行することを強くお勧めします。
イントロ
ユーザーからよく寄せられる質問の1つは、サーバーに別のIPアドレスを追加する方法です。 VPNトンネルを作成することにより、ドロップレットに独自のプライベートIPアドレスを割り当てることができます。 独自の仮想プライベートネットワーク(VPN)を構築する場合でも、そのIPアドレスにSSL証明書を割り当てる場合でも、いくつかのオプションがあります。 考えられるすべてのオプションの中で、最も最適なオプションはPPTPとOpenVPNの間です。 ポイントツーポイントトンネリングプロトコル(PPTP)を使用すると、独自のVPNを非常に迅速に実装でき、ほとんどのモバイルデバイスと互換性があります。 PPTPはOpenVPNよりも安全性が低くなりますが、高速でCPUリソースの使用量も少なくなります。
ステップ1-PPTPのインストール
他のサーバーへのIPの処理と、VPNへのすべてのサーバーの認証を担当するサーバーを1つ選択する必要があります。 これがPPTPサーバーになります。
CentOS 6 x64の場合:
rpm -i http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm
yum -y install pptpd
Ubuntu 12.10 x64の場合:
apt-get install pptpd
ここで、/ etc / pptpd.confを編集して、次の行を追加する必要があります。
localip 10.0.0.1
remoteip 10.0.0.100-200
ここで、localipはサーバーのIPアドレスであり、remoteipはサーバーに接続するクライアントに割り当てられるIPです。
次に、ユーザーとパスワードを追加して、PPTPの認証を設定する必要があります。 それらを/etc/ ppp / chap-secretsに追加するだけです:
クライアントがユーザー名、サーバーがサービスの種類です。この例ではpptpd、シークレットはパスワード、IPアドレスは認証できるIPアドレスを指定します。 [IPアドレス]フィールドに「*」を設定することにより、任意のIPでユーザー名とパスワードのペアを受け入れることを指定します。
ステップ2-DNSサーバーを/etc/ ppp/pptpd-optionsに追加します
ms-dns 8.8.8.8
ms-dns 8.8.4.4
これで、PPTPデーモンを起動できます。
service pptpd restart
実行中であり、接続を受け入れていることを確認します。
ステップ3-転送の設定
PPTPサーバーでIP転送を有効にすることが重要です。 これにより、PPTPで設定したパブリックIPとプライベートIPの間でパケットを転送できるようになります。 /etc/sysctl.confを編集し、次の行がまだ存在しない場合は追加します。
net.ipv4.ip_forward = 1
変更をアクティブにするには、 sysctl-pを実行します
ステップ4-iptablesのNATルールを作成する
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE && iptables-save
PPTPクライアント同士も通信する場合は、次のiptablesルールを追加します。
iptables --table nat --append POSTROUTING --out-interface ppp0 -j MASQUERADE
iptables -I INPUT -s 10.0.0.0/8 -i ppp0 -j ACCEPT
iptables --append FORWARD --in-interface eth0 -j ACCEPT
これで、PPTPサーバーはルーターとしても機能します。
ドロップレットに接続できるサーバーを制限する場合は、TCP接続をポート1723に制限するiptablesルールを設定できます。
ステップ5-クライアントをセットアップする
クライアントサーバーに、PPTPクライアントをインストールします。
yum -y install pptp
ステップ6-必要なカーネルモジュールを追加する
modprobe ppp_mppe
新しいファイル/etc/ ppp / peers / pptpserverを作成し、次の行を追加して、名前とパスワードを独自の値に置き換えます。
pty "pptp 198.211.104.17 --nolaunchpppd"
name box1
password 24oiunOi24
remotename PPTP
require-mppe-128
198.211.104.17はPPTPサーバーのパブリックIPアドレスであり、ユーザー名は「box1」、パスワードは「24oiunOi24」で、PPTPサーバーで/ etc / ppp/chap-secretsファイルを指定しました。
これはポイントツーポイントプロトコルであるため、これでこのPPTPサーバーを「呼び出す」ことができます。 この次の行では、/ etc / ppp /peers/にあるピアファイルに付けた名前を使用する必要があります。 ファイルをpptpserverと呼んだので:
pppd call pptpserver
PPTPサーバーログからの接続が成功するはずです。
PPTPクライアントで、ppp0インターフェイスを介してプライベートネットワークへのルーティングを設定します。
ip route add 10.0.0.0/8 dev ppp0
インターフェイスppp0がPPTPクライアントサーバーに表示され、ifconfigを実行して確認できます。
これで、PPTPサーバーとこのネットワークに接続されている他のクライアントにpingを実行できます。
このネットワークに2番目のPPTPクライアントを追加できます。
yum -y install pptp
modprobe ppp_mppe
/ etc / ppp / peers / pptpserverに追加します(自分の名前とパスワードの値に置き換えます)。
pty "pptp 198.211.104.17 --nolaunchpppd"
name box2
password 239Aok24ma
remotename PPTP
require-mppe-128
次に、2番目のクライアントで次のコマンドを実行します。
pppd call pptpserver
ip route add 10.0.0.0/8 dev ppp0
パケットはPPTPサーバーを通過し、前に配置したiptablesルールを使用してルーティングされるため、最初のクライアントにpingを実行することもできます。
この設定により、独自の仮想プライベートネットワークを作成できます。
すべてのデバイスを1つのネットワークで安全に通信させたい場合、これはそれを実装する簡単な方法です。
Nginx、Squid、MySQL、およびその他の考えられるあらゆるアプリケーションで使用できます。
トラフィックは128ビット暗号化されているため、OpenVPNよりもCPUに負担がかからず、トラフィックに追加レベルのセキュリティを提供します。