ubuntuでVPNサーバーを構築

ChainZ(クリエイター)
いろいろやってます。

2月中旬は中国の旧正月なので、一時帰国します。中国はネット制限結構ひどくて、帰国してもtwitter、facebookやGoogleにアクセスできるように、VPNサーバーを作ってみました。

Step1 PPTPDをインストール

ubuntuを使ってるなら、apt-getを使えばとても簡単です。(この記事はubuntuを使ってるという前提に書いています。他のOSを使ってる場合は、コマンドは多少異なります。)

apt-get update
apt-get install pptpd

権限が足りない場合は、sudoを。

Step2 PPTPDの設定

PPTPDの設定ファイルは通常/etc/pptpd.confにあります。vimで編集します。

vi /etc/pptpd.conf

設定ファイルの最後あたりに、ローカルIPとリモートIPの設定があります。下記のように、remoteipを好きな範囲に調節します。この記事では128~200にしています。

#(Recommended)
localip 192.168.0.1
remoteip 192.168.0.128-200

ファイルを保存したら、次はpppの設定ファイルを編集します。

vi /etc/ppp/pptpd-options

ファイルの最後に下記のコードを記入します。

name pptpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 8.8.8.8
#ms-dns 8.8.4.4
proxyarp
nodefaultroute
lock
nobsdcomp
mtu 1490
mru 1490

Step3 接続ユーザーを追加

全ての設定終わったら、これからユーザーを追加します。

vi /etc/ppp/chap-secrets

中に、こんな感じで記入します。

username1 pptpd password1 192.168.0.129
username2 pptpd password2 192.168.0.130

最後にあるIPアドレスは、ユーザーに割り当てるIPアドレスです。Step2で設定ファイルをいじる時に設定したIP範囲内に設置しましよう。

Step4 パケット転送を有効に

/etc/sysctl.confを開いて:

vi /etc/sysctl.conf

下記の設定をします。(コメントアウトを外す)

net.ipv4.ip_forward=1

保存してsysctl -pで設定を反映します。最後に、iptablesにルールを追加します。

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A FORWARD -i eth0 -o ppp0 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i ppp0 -o eth0 -j ACCEPT

pptpdを再起動します。

sudo service pptpd restart

これで、VPNサーバーができました。接続してみてください。