VPN(Virtual Private Network)構築編


4.PoPToP(pptpd)の設定と接続
(1)PoPToP(PPTPサーバー)の設定
ネットワークモデルの「E Linux Server」にインストールしたPoPToPに関する設定ファイルは次の4つのファイルです。

  @ /etc/modules.conf
  A /etc/pptpd.conf
  B /etc/ppp/options.pptpd
  C /etc/ppp/chap-secrets

@ /etc/modules.conf
この設定ファイルの内容を以下に示します。
ここで「青色」で示した設定内容は ppp-2.4.1-3mppe.i386.rpm 及び pptpd-1.1.3-1.i386.rpm をインストールした時に自動的に書き加えられた内容です。
そして、「赤色」示した設定内容が後で追加した内容です。

なお、ppp-2.4.1-3-3mppe.i386.rpm をインストールした時に追加される
 alias char-major-108 off # This will be different for 2.3.x kernels
の行は、
 alias char-major-108 ppp_generic
に変更してください。

alias parport_lowlevel parport_pc
alias eth0 via-rhine
alias eth1 via-rhine
alias eth2 via-rhine

#re 2002.12.02 for PPTP
alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

#re 2002.12.02 added by ppp-2.4.1-3mppe
alias ppp ppp_generic
#alias char-major-108 off # This will be different for 2.3.x kernels
alias char-major-108 ppp_generic

#re 2002.12.02 added by pptpd-1.1.3-1
alias net-pf-47 ip_gre


A /etc/pptpd.conf
PoPToPの設定ファイルは、下記のとおりです。
ポイントは「/etc/ppp/options.pptpd」の設定ファイルを使うようにすることと、PPTPで構築するVPNのIPアドレスを指定する2点です。
VPNのIPアドレスの指定ですが、ネットワークモデル上のEのLAN側と同じネットワークアドレスとしました。
既存のホストに割り当てているIPアドレスとダブらないように注意してください。
なお、「debug」の指定は、安定して接続できるようになれば不要でしょう。

################################################################################
#
# Sample PoPToP configuration file
#
# for PoPToP version 1.1.3
#
################################################################################

# TAG: speed
#
# Specifies the speed for the PPP daemon to talk at.
#
#speed 115200

# TAG: option
#
# Specifies the location of the PPP options file.
# By default PPP looks in '/etc/ppp/options'
#
# デフォルトではコメントアウトされています。
# 必ず有効にしてください。

option /etc/ppp/options.pptpd

# TAG: debug
#
# Turns on (more) debugging to syslog
#
# 安定して接続できるようになれば、コメントアウトしましょう。
debug

# TAG: localip
# TAG: remoteip
#
# Specifies the local and remote IP address ranges.
#
# You can specify single IP addresses seperated by commas or you can
# specify ranges, or both. For example:
#
# 192.168.0.234,192.168.0.245-249,192.168.0.254
#
# IMPORTANT RESTRICTIONS:
#
# 1. No spaces are permitted between commas or within addresses.
#
# 2. If you give more IP addresses than MAX_CONNECTIONS, it will
# start at the beginning of the list and go until it gets
# MAX_CONNECTIONS IPs. Others will be ignored.
#
# 3. No shortcuts in ranges! ie. 234-8 does not mean 234 to 238,
# you must type 234-238 if you mean this.
#
# 4. If you give a single localIP, that's ok - all local IPs will
# be set to the given one. You MUST still give at least one remote
# IP for each simultaneous client.
#
#localip 192.168.0.234-238,192.168.0.245
#remoteip 192.168.1.234-238,192.168.1.245
# ここでVPNで使用するアドレスを指定します。
# localipはこのサーバーのアドレスです。
# remoteipはこのサーバーに接続してくるクライアントに割り当てるアドレスです。

localip 192.168.2.151 
remoteip 192.168.2.152-160


B /etc/ppp/options.pptpd
これがpptpdの設定ファイルです。
ここでのポイントは、セキュリティ面から認証方式を MS-CHAP Versin 2に、暗号化方式を128ビットキーのMPPEに限定するように設定することです。

## CHANGE TO SUIT YOUR SYSTEM
lock

## turn pppd syslog debugging on
# デフォルトではコメントアウトされています。
# 安定して接続できるようであればコメントアウトしましょう。

debug

## change 'pptpd' to whatever you specify as your server name in chap-secrets
#name pptpd
# /etc/ppp/chap-secrets で使用するserver名を定義します。
name poptop.net

#re 2002.12.02
auth

proxyarp

# This option applies if you use ppp with chapms-strip-domain patch
#chapms-strip-domain

# デフォルトでは使える設定となっていますが、セキュリティが甘いので使いません。
#+chap
# These options apply if you use ppp with mppe patch
# NB! You should also apply the ChapMS-V2 patch
# 以下の内容を設定します。
# セキュリティ面からchapms-v2のみを使用し、暗号かも128ビットのmppeのみ使用します。

-chap
-chapms
+chapms-v2
ipcp-accept-local
ipcp-accept-remote
lcp-echo-failure 3
lcp-echo-interval 5
deflate 0
mppe-128
#mppe-40
mppe-stateless


# These options will tell ppp to pass on these to your clients
# To use ms-dns or ms-dns in options.pptpd it must exist in /etc/resolv.conf
#ms-wins your.server.here
#ms-dns your.server.here


C /etc/ppp/chap-secrets
chap を用いた認証方法を使う場合の認証ファイルです。
ここで設定した内容をWindowsのネットワークの接続で使います。

# Secrets for authentication using CHAP
# client      server       secret        IP addresses
poptop-user  poptop.net  "poptop-passwd"   *


D PoPToPデーモン(pptpd) の起動
以上で設定は終わりです。

 # /etc/init.d/pptpd  start

でpptpdを起動しましょう。
なお、サーバー起動時に自動的に立ち上がるようにntsysv等で登録しておきましょう。



(2)クライアントの設定とVPNサーバーへの接続
今回は、クライアントマシンであるGMobile PCのOSを Windows XP とします。
なお、このマシンからはダイアルアップを利用してISPを通してインターネットに接続できるようにしておいてください。

まず、コントロールパネルの「ネットワーク接続」から「新しい接続を作成する」をクリックし、「新しい接続ウィザード」を立ち上げます。




「次へ」をクリックし、「ネットワーク接続の種類」で「職場のネットワークへ接続する(O)」を選択します。




次の「ネットワーク接続」では「仮想プライベートネットワーク接続(V)」を選択します。




接続名」は好きな名前をつけてください。




パブリックネットワーク」でインターネットに接続する方法を指定します。
ここでは、「so-net」という接続名でISPを通してインターネットに接続する設定が既にあるものとします。




VPNサーバーの選択」ではターゲットマシンのIPアドレス「123.45.67.89」を入力します。




以上で初期設定は終了です。
終了させるとすぐに次のメッセージが表示されますので「はい(Y)」をクリックし、まずISPを通してインターネットに接続します。




無事にインターネットに接続できれば、次にPoPToPに接続するための「VPN コネクションへの接続」が求めれます。
ここで /etc/ppp/chap-secrets に登録したユーザー名「poptop-user」、パスワード「poptop-passwd」を入力し、「接続(C)」ボタンをクリックします。




サーバー側に接続し認証が行われ、うまく接続できた場合、「VPN コネクションの状態」を表示させると次のようになります。



表示された内容を見ると、設定したとおりになっていますね。(^o^)丿

一方、VPNサーバーであるEのLinux Server のログ( /var/log/messages )も見てみましょう。

Jan 19 02:06:21 cl2 pptpd[5880]: CTRL: Client 98.76.45.32 control connection started
Jan 19 02:06:21 cl2 pptpd[5880]: CTRL: Starting call (launching pppd, opening GRE)
Jan 19 02:06:21 cl2 pppd[5881]: pppd 2.4.1 started by root, uid 0
Jan 19 02:06:21 cl2 pppd[5881]: Using interface ppp0
Jan 19 02:06:21 cl2 pppd[5881]: Connect: ppp0 <--> /dev/pts/2
Jan 19 02:06:21 cl2 pptpd[5880]: GRE: Discarding duplicate packet
Jan 19 02:06:23 cl2 pptpd[5880]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!
Jan 19 02:06:24 cl2 pppd[5881]: MSCHAP-v2 peer authentication succeeded for poptop-user
Jan 19 02:06:24 cl2 pppd[5881]: MPPE 128 bit, stateless compression enabled
Jan 19 02:06:24 cl2 pppd[5881]: found interface eth1 for proxy arp
Jan 19 02:06:24 cl2 pppd[5881]: local IP address 192.168.2.151
Jan 19 02:06:24 cl2 pppd[5881]: remote IP address 192.168.2.152

これもまた、設定したとおりの内容ですね。

また、ifconfig でネットワークインターフェースを見てみると、

# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.2.151 P-t-P:192.168.2.152 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1400 Metric:1
RX packets:84 errors:0 dropped:0 overruns:0 frame:0
TX packets:41 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:6837 (6.6 Kb) TX bytes:6800 (6.6 Kb)

IPアドレス「192.168.2.151」と「192.168.2.152」とがPPPで接続されていることがわかります。

これで、Mobile PCからのVPNが完成です。(^_^)v



(3)問題点
今回VPNサーバーとしたELinux Serverではsambaやapacheも起動させています。
そこで、GのMobile PCからはエクスプローラーのアドレス欄に「\\192.168.2.151」と入力すればアクセスできるのですが、その処理速度が非常に遅いのです。
同様に、インターネットエクスプローラーで「http://192.168.2.151/」をブラウジングしてもレスポンスがもう一つ良くありません。

ちなみに、各マシンのスペックはELinux ServerがCPU=Duron 800MHz、MEM=256MB、GMobile PCがCPU=Athlen 1GHz、CPU512MBです。

暗号化したデータをやり取りするせいでしょうか。
実際の業務に使用するのには、ちょっとストレスが多いようです。


back HOME next