仮想化生活への軌跡

Feed Rss


VPNサーバー(PPTP)の構築

08.08.2013, Ubuntu Server, VPN, by .

はじめに

仮想化によって複数のマシンの並列動作が可能になったことを活かし、仮想ゲストのUbuntu Server上でVPN(PPTP)専用サーバーを構築してみました。

VPNサーバーを立てることにより、外部のネットワークから自宅内のLANに接続して、自宅サーバーによるさまざまなサービスを利用することが可能になります。

またVPNを介してFTPやリモートデスクトップ、SSHなど多種多様なサービスがLAN内と同様の条件で利用できるため、開放するポートを最小限に抑えることができるほか、VPNを介する通信はすべて暗号化されておこなわれるため、セキュリティの観点からも大変有用です。

VPNはWindowsなどのPCのほかiPhoneやAndroidなどのスマートフォンからの接続も可能であり、個人ユーザーとしてはこのようなモバイル通信端末から自宅内のLANにアクセスできることが最大のメリットだろうと思います。

今回はこのVPN(PPTP)サーバーの構築方法を紹介します。

構築環境

■ Ubuntu Server 12.04 x64
■ 1vCore、512MB-Memory


サーバーモジュール(pptpd)のインストール

pptpdはパッケージインストールが可能です。
以下のコマンドでインストール自体は自動で完了します。
sudo apt-get install pptpd


インストールが完了したら、次は各種設定ファイルの編集を行います。


設定ファイルの編集

エディタで/etc/pptpd.confを開き、以下の内容を追記します。
localip 192.168.x.10      # VPNサーバー自身のローカルIP
remoteip 192.168.x.11-20   # VPNクライアントに割り当てるIPの範囲


続いて/etc/sysctl.confを開き、IPv4転送(IPフォワード機能)を有効化します。
net.ipv4.ip_forward=1     # コメントアウトを解除


以下のコマンドで設定を反映させます。
sysctl -p


クライアントが利用するDNSの情報を、/etc/ppp/pptpd-options を開いて記述します。
ms-dns xxx.xxx.xxx.xxx   ※通常はルーターのローカルIPでOK


最後に/etc/ppp/chap-secretsを開き、VPN接続に用いるユーザー情報を設定します。
ユーザー名 pptpd "パスワード" *


第三者の侵入を防止するため、ユーザー名は非典型のものを、パスワードはできれば20字以上を設定することを推奨します。

設定を終えたらデーモンを再起動します。
sudo service pptpd restart


iOS端末向けの調整

以上の設定でPPTP接続は可能となりますが、iPhoneなどのiOS端末では接続直後に切断されるという現象が起きる場合があります。
この場合には、以下のようにMTU/MRUの設定を行います。

エディタで/etc/ppp/options を開き、以下の2箇所を修正します。
mtu 1280   ※190行目あたり。コメントアウトの上、1280の値を指定する。
mru 1280   ※85行目あたり。コメントアウトの上、1280の値を指定する。


セキュリティの設定

pptpdではTCP Wrapperにより接続可能なドメインを限定することができます。
ここでは筆者の設定内容の一部を紹介します。

まずは/etc/hosts.denyで全ての接続を拒否します。
ALL: ALL


続いて/etc/hosts.allowでLAN内からの全ての接続と、pptpdへの特定ドメインからの接続を許可します。
ALL: 192.168. 127.0.0.1
pptpd: .au-net.ne.jp


上記の例では、auのモバイル回線(au-net)のみ接続可能となります。


ポートの開放

UDPの47番、TCPの1723番のポートの開放(ポートマッピングの設定)をルータ上で行えばVPNサーバーに外部からの接続が可能になります。


Advertisement


RelatingPosts

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


*