ubuntuでVPNサーバーを構築
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サーバーができました。接続してみてください。