3月 26, 2013

PPTPでVPNサーバ構築

自宅のネットワークに外部からアクセスするためにVPNを導入します(`・ω・´)
iPhoneやiPadでも使いたい。 & 簡単に導入したい。のでPPTPでVPNサーバを構築します。


PPTP使用前の注意

PPTPで用いられている認証プロトコルはクラックされています(ここ参照)
ただ,iPhoneなどで気軽に使えるVPNサーバは,PPTPだけといっても過言ではないので,これを使います。
iPhoneをjailbreakしてOpenVPNを入れれば,話は別ですが。。


PPTPのインストール

$ sudo apt-get install pptpd


pptpdの設定

ここでは,以下ように動作するように設定をしていきます.
・VPNサーバのIP:192.168.0.11
・クライアントに割り振られるIP:192.168.0.201~210
・ログインユーザ名:hoge
・ログインパス:hogepass

$ sudo vim /etc/pptpd.conf
以下を追加
# VPNサーバを動かすPCのIPアドレス
localip 192.168.0.11
# VPNでアクセスしてきたクライアントのIPアドレス
remoteip 192.168.0.201-210

$ sudo vim /etc/ppp/ptpd-options 
以下を追加
ms-dns 10.0.1.1
noipx
mtu 1490
mru 1490


pptpdでアクセスするユーザを登録

複数のユーザを設定したい場合は,ここに複数記述するのかな?

$ sudo vim /etc/ppp/chap-secrets
以下を追加
hoge * hogepass *


その他の設定

IPフォワーディング

$ sudo vim /etc/sysctl.conf

コメントアウトされているので,有効化(頭に付いている#を消す
net.ipv4.ip_forward=1


ファイヤーウォール

以前設定したfirewall.shに追加する。
sshの設定の下辺がいいかなー。

iptables -A INPUT -i eth0 -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -i eth0 -p 47 -j ACCEPT
iptables -A OUTPUT -p 47 -j ACCEPT
iptables -A INPUT -i ppp+ -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i ppp+ -o eth0 -j ACCEPT
iptables -A FORWARD -i eth0 -o ppp+ -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE


設定の有効化

sudo reboot

これでOK!iPhoneやPCから接続できるか確認。

外部からのアクセスは,ルータの設定が必要!
・ルータのPPTPパススルーを許可する
・プロトコルの47番(GRE)とTCPの1723番のポートをVPNサーバに開放する



0 comments:

コメントを投稿