PPPのアップデート
次に,PPPモジュールをアップデートしよう。まずは,/etc/modules.confファイルに下記の内容を追記する。
alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate
さらに,次のように指定してモジュールの依存関係を更新する必要がある。
# depmod -a
次にPPPモジュールのアップデートだ。PPPモジュールのMS-CHAPv2対応版は、ftp://ftp.planetmirror.com/pub/mppe/にppp-2.4.1-3mppe.i386.rpmというファイル名で提供されている。これを利用しよう。
RPMパッケージなので,ダウンロードしてから次のようにインストールするだけでよい。
# rpm -Uvh ppp-2.4.1-3mppe.i386.rpm
PPTPサーバのインストールと設定
いよいよPPTPサーバソフトのインストールだ。今回利用するのは,前述したように「PopTop」と呼ばれるソフトだ。RPMパッケージとして,ftp://ftp.planetmirror.com/pub/mppe/にpptpd-1.1.2-2.i386.rpmというファイルとして提供されているので,これを利用する。インストールは次の通りだ。
# rpm -Uvh pptpd-1.1.2-2.i386.rpm
以上でインストールが完了だ。次に,各種設定をしていこう。
pptpd.confファイルの設定
まずは,/etc/pptpd.confファイルを編集する。pptpdをRPMパッケージでインストールした際には,pptpd.confファイルも自動生成されるので,これを編集すればよい。ここでは,pptpd.confファイルの一部を以下に示すので参考にしてほしい(コメント行の一部は省いてある)。
# Sample PoPToP configuration file
# TAG: speed
# Some PPP daemons will ignore this value.
# speed 115200
# TAG: option
option /etc/ppp/options.pptpd
# TAG: debug
#debug
# TAG: localip
# TAG: remoteip
localip 192.168.0.1
remoteip 192.168.1.200-254
# TAG: ipxnets
#ipxnets 00001000-00001FFF
# TAG: listen
#listen 192.168.0.1
# TAG: pidfile
pidfile /var/run/pptpd.pid
pptpd.confファイルで最低限設定しなければならないのは,「localip」と「remoteip」タグの部分だ。
localipタグは,PPTPで接続された際に自分側に割り当てたいIPアドレスを示す。そしてremoteipタグは,PPTPを使って接続するクライアントに割り当てたいIPアドレスを示す。
remoteipタグは,「192.168.0.100-200」のように「-」で区切って範囲を指定しよう。IPアドレス範囲を指定する指定形式になっている。
PPTPは,前述したように根底にPPPを利用した接続方式であり,PPPは末端と末端を接続するプロトコルだ。そして,その末端同士にそれぞれIPアドレスが割り当てられるため,自らのIPアドレスと相手側のIPアドレスの2つのアドレスを設定しなければならない点に注意しよう。基本的には,localip,remoteipタグ共に,LANで利用されているIPアドレスの範囲内から空いてるものを使えばよい。
例としてFig.1の構成であれば,アドレス空間に192.168.0.0/24を使っているため,192.168.0.1〜192.168.0.254までの空いているIPアドレスを設定する。
例えば,localipに192.168.0.50〜192.168.0.80,remoteipに192.168.0.200〜192.168.0.230を指定する設定は次のようになる。
# TAG: localip
# TAG: remoteip
localip 192.168.0.50-80
remoteip 192.168.0.200-230
この設定によりクライアントがPPTPサーバに接続した際には,192.168.0.200〜192.168.0.230の範囲で,任意の割り当てられていないアドレスが設定される。
One Point!
「RedHat-PoPToP HOWTO」によると,PopTopをRPMパッケージではなくソースから再構築し,その際に「--with-pppd-ip-alloc」オプションを付加させると,特定範囲のIPアドレスではなく,ユーザーごとに固定IPを割り当てることもできるようだ。
options.pptpdファイルの設定
/etc/ppp/options.pptpdファイルは,前述したpptpd.confファイルから参照されるものだ。ここには認証方式や暗号化方式などを設定する。pptpd.confファイルも,PopTopをRPMパッケージとしてインストールした際に適所に自動作成されるため,これを編集すればよい。標準でのoptions.pptpdファイルは,次のようになっている。
## 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
auth
require-chap
proxyarp
-chap
-chapms
+chapms-v2
mppe-128
mppe-stateless
#ms-wins your.server.here
#ms-dns your.server.here
この中で基本的に設定(変更)しなければならないのは,「name」の部分だ。ここには,自分のサーバ名を設定する。たとえばサーバ名が,pptp.example.co.jpである場合には次のようになる。
## change 'pptpd' to whatever you specify as your server name in chap-secrets
name pptp.example.co.jp
残りの項目は,取りあえず標準のままで構わないだろう。ただし,接続を行うクライアントがWindowsの場合には,「ms-wins」を利用してWINSサーバのIPアドレスを,または「ms-dns」を利用してDNSサーバのIPアドレスをクライアントに伝えることもできる。これらの情報をクライアントに伝えたいのであれば,適時設定するとよいだろう。
なお,options.pptpdファイルの標準記述では,「-chap」「-chapms」「+chapms-v2」となっており,暗号化がchapms-v2(MS-CHAPv2)でしか有効でない設定になっている。
chapやchapmsには,セキュリティ上の問題点があるため,これらは無効にして「chapms-v2」のみを有効とする標準設定の状態で利用することを推奨する。
ユーザーの登録
次に,PPTPを利用して接続できるユーザーを設定しよう。ユーザーは,/etc/chap-secretsファイルに記述する。1行が1ユーザーに相当し,書式は次のようになっている。
ユーザー名 サーバ名 "パスワード" IPアドレス
サーバ名の部分には,options.pptpdファイルのnameタグに記述したサーバ名と同じものを指定する。また,IPアドレス部分は一般に「*」を指定する。
例えば,サーバ名がpptpd.example.co.jpである際には,ユーザー「osawa」がパスワード「mypassword」を使ってPPTPの接続ができるようにするには,次のように設定すればよい。
osawa pptpd.example.co.jp "mypassword" *
以上で設定がすべて完了だ。後は必要に応じてユーザーを増やしていけばよいだろう。