PPTPでVPN
PPTPとは
OpenVPNのページでも説明したが、PPTPとはMicrosoft社が開発したVPN技術である。クライアントがWindowsであれば、OSデフォルトの機能で実現が可能である。使用するプロトコルがTCP(1723)と専用プロトコル(GRE)を使用する為、環境によっては使用ができない所が多い。OpenVPNであればTCP,UDPの任意のポートで使用が可能である為、環境を考えればOpenVPNの方が使用しやすいだろう。
2つのコネクション
PPTPでは、TCPでサーバに接続し、さらにサーバからクライアントに対してGREで接続ある。NAT環境ではルータがPPTPに対応していないと、まず使用できないだろう。
構成
今回やりたい事は、同じネットワークセグメントに接続して各サーバに接続できる様にする。pptpdはarpプロキシができる為、同じセグメントでも通信が可能みたいだ。
カーネル再構築
ソース&パッチを取得
PPTPではMPPEという暗号化を使用しています。こちらをdebianで有効化するにはカーネルの再構築が必要になります。まずは、カーネルのパッチを取得します。カーネルソース自体を持っていなければ、同時にインストールされるハズです。できれば、自分が使っているカーネルのソースを持ってきたほうがいいね。
debian etchでは標準でモジュールが作成されているのでカーネルの再構築は必要ありません。
#apt-get install kernel-patch-mppe
環境準備
ソースの展開やらリンクを貼ってやります。
#cd /usr/src #tar -bzxvf kernel-source-2.4.27.tar.bz2 #ln -s kernel-source-2.4.27 linux #cd linux
パッチの適用
確か、これでOK。。
#../kernel-patches/all/apply/mppe
カーネル再構築でダイエットのページでかかれている方法で、カーネルを再構築。コンフィグで忘れずにmppeを有効にすること。たぶん、パッチを当てた段階で有効になりそうでけどなぁ・・・。
インストール
おりゃ
#apt-get install pptpd
サーバ設定
/etc/pptpd.conf
pptpdに設定するIPアドレスと、クライアントに割り振るIPアドレス範囲を設定する。localipってのが、サーバ。remoteipってのがクライアントに割り振るIPアドレスの範囲。ちなみに、内部は192.168.20.0〜192.168.20.30くらいを使用する予定。remoteipは内部のアドレスとかぶらない様にしよう。
localip 192.168.20.100 remoteip 192.168.20.101-110
/etc/ppp/pptpd-options
name pptpdsrv #後で書くパスワードと同じにしなきゃだめ refuse-pap #無効 refuse-chap #無効 refuse-mschap #無効 require-mschap-v2 #MS-CHAPv2を有効にする require-mppe-128 #MPPEを有効 proxyarp #ARP プロキシ nodefaultroute #デフォルトゲートウェイをVPNに向けさせない
/etc/ppp/chap-secrets
パスワードを設定する。一目瞭然なので、あえて説明しまそん。
iptablesの設定
iptablesを使用しているのならば、以下の様にフィルタを許可してやってください。
#echo 1 > /proc/sys/net/ipv4/ip_forward #iptables -A INPUT -p tcp --dport 1723 -j ACCEPT #iptables -A OUTPUT -p 47 -j ACCEPT
ルータ設定
VPNスルーパスだとか、そういう機能あるならば有効にしてください。あと、フィルタとNATも有効に。
pptpd起動
起動してみてください。ログも忘れずに確認。
#/etc/init.d/pptpd start #tail -f /var/log/syslog
クライアント設定
接続先を設定してやります。コントロールパネル→ネットワーク接続→新しい接続を作成する
次へをクリック
「職場のネットワークへ接続する」を選択
「仮想プライベートネットワーク接続」を選択
「接続名」は何でもいいです。任意の名前を記入
「最初の接続にダイヤルしない」を選択
サーバ名を記入。IPなり、ドメインなり。
終了
プロパティをクリック
ネットワークタブのTCP/IPをクリックし、プロパティをクリック
詳細設定をクリック
全般タブのリモートネットワークでデフォルトゲートウェイを使うをチェックアウトし、OKをクリック
ユーザ名とパスワードを入力し接続をクリックすれば接続しにいきます。次回からはネットワーク接続内にアイコンができているので、そこから起動できます
接続確認
ルータが対応していれば基本的にこれで接続できるはずだ。自分が試した結果、接続が不安定(2,3回試行すると接続できる?)だが何とかOKだった。後は、pingなりsmbやるなりして試してみてくれ。
やってみた感想だが、カーネル再構築がめんどくさい。2時間とかコンパイルが掛かるから・・。後は、windowsはデフォルトOKだし、OpenVPNの様にブリッジの設定などややこしいのは無い。
debian etchは標準でモジュールがあるのでコンパイルいらないですね。