Network Users' Group ``wheel'' / Dai ISHIJIMA's Page /
RTA55i / PoPToPでPPTPサーバ
PPTPでVPN2台のRTをPPTP接続PPTPを通すipfwの設定
IPsecでVPNRTとBSDをIPsecで接続

最終更新日: 2010-07-11


PoPToPでPPTPサーバ


○はじめに

PPTPでVPNでは、 RTシリーズルータをPPTPサーバにする方法を紹介しました。 このページでは、FreeBSDにPPTPサーバソフトであるPoPToPをインストールし、 FreeBSDマシンをPPTPサーバとして利用する方法を紹介します。


○PoPToPのインストール

portsかpackagesで…(ミもフタもない表現ですが)。


○PoPToPを動かすには

/etc/rc.confに「pptpd_enable="YES"」を書いておくと、 起動時にPoPToP(pptpd(8))が動きます。 細かな設定は「/etc/ppp/ppp.conf」などで行うようです。

PPTPは、1723/tcpとGRE(プロトコル番号47)を使います。 ファイアウォール(ipfw(8)など)を使っている場合は、 これらのパケットを落とさないように設定してください。 サーバを全世界に公開する必要がない場合は、 許可・不許可を適切に設定しましょう。


○PoPToPの設定

pptpd.confが設定ファイル、ということになっていますが、 どうも設定はppp(8)のものが使われるようです。

クライアントからpptpd(8)に接続があると、 接続を制御するpptpctrl(8)が呼び出され、さらに、 「ppp -direct pptp」でユーザPPP(ppp(8))が 呼び出される仕組みになっているようです。 ということで、「/etc/ppp/pppd.conf」に 接続に必要な情報を書きます。

以下の設定では、PPTPサーバのローカルアドレスが 「192.168.11.1/24」であるものとして設定例を記述します。 また、PPTPクライアントには「192.168.11.64/29」を割り当てることにします。


○リモートアクセスVPNの設定

Windows PCなど、ノード一つを接続する場合は、 そのPC(ノード)にPPTPサーバのローカル側IPアドレスを割り当てます。 そして、サーバではProxy ARP機能を使います。 たとえば、ppp.confに以下のような設定を書きます。
	pptp:
	 set timeout 600
	 set log phase chat connect ipcp command
	 set device localhost:pptp
	 set dial
	 set login
	 allow mode direct
	 disable CHAP MSCHAP PAP
	 enable MSCHAPv2
	 disable deflate pred1
	 deny deflate pred1
	 enable chap81
	 set mppe 128 stateless
	 enable MPPE
	 accept MPPE
	 enable proxy
	 set server /var/run/pptp-server "" 0177
	 set ifaddr 192.168.11.1/0  192.168.11.65-192.168.11.70  255.255.255.0
接続に必要なIDとパスワードは、ppp.secretに記述します。 たとえば、以下のフォーマットで。 実際には、マトモなパスワードを設定してくださいね。
	username password


○LAN間接続VPNの設定

LAN間を接続する場合は、PPTP接続確立時に、 接続先のネットワーク(192.168.12.0/24とします)へのルーティングが 必要になります。これはppp.linkupに記述します。

/etc/ppp/ppp.conf、ppp.secret、ppp.linkupの設定例は以下のとおりです。

まずはppp.conf。

	pptp:
	 set timeout 60
	 set log phase chat connect ipcp command
	 set device localhost:pptp
	 set dial
	 set login
	 allow mode direct
	 disable CHAP MSCHAP PAP
	 enable MSCHAPv2
	 disable deflate pred1
	 deny deflate pred1
	 enable chap81
	 set mppe 128 stateless
	 enable MPPE
	 accept MPPE
	 disable proxy
	 set server /var/run/pptp-server "" 0177
	 set ifaddr 192.168.11.1/0  192.168.11.70  255.255.255.0
次にppp.secret。
	network password
最後のppp.linkup。
	pptp:
	 add 192.168.12.0/24 HISADDR


○リモート接続VPNとLAN間接続VPNの併用

ppp(8)マニュアルページによると、ppp.secretで、 ppp.confで用いるエントリを切替えることができるようです。 これを使って、IDが「username」のときはリモート接続VPN、 「network」のときはLAN間接続VPNと使い分ける設定を紹介します。 まず、ppp.secretから。
	username password 192.168.11.65-192.168.11.69 client-pptp
	network password 192.168.11.70 network-pptp
ppp.secretの3つめの項目は割り当てるIPアドレス、 4つめの項目はppp.conf、ppp.linkupで使うエントリの名称です。 接続の最初は「pptp:」で開始するので、 「pptp:」エントリも必要でしょう。 というわけで、ppp.confは以下のとおり。
	# pptpd(8) - PoPToP common configuration
	pptp:
	 set timeout 60
	 set log phase chat connect ipcp command
	 set device localhost:pptp
	 set dial
	 set login
	 allow mode direct
	 disable CHAP MSCHAP PAP
	 enable MSCHAPv2
	 disable deflate pred1
	 deny deflate pred1
	 enable chap81
	 set mppe 128 stateless
	 enable MPPE
	 accept MPPE
	 enable proxy
	 set server /var/run/pptp-server "" 0177
	 set ifaddr 192.168.11.1/0  192.168.11.65-192.168.11.70  255.255.255.0

	# connect client
	client-pptp:
	 set timeout 600
	 set log phase chat connect lcp ipcp command
	 set device localhost:pptp
	 set dial
	 set login
	 allow mode direct
	 disable CHAP MSCHAP PAP
	 enable MSCHAPv2
	 disable deflate pred1
	 deny deflate pred1
	 enable chap81
	 set mppe 128 stateless
	 enable MPPE
	 accept MPPE
	 enable proxy
	 set ifaddr 192.168.11.1  192.168.11.65-192.168.11.69  255.255.255.0
	 set server /var/run/pptp-client "" 0177
	 set dns 192.168.11.1
	 accept dns

	# connect LAN to LAN
	network-pptp:
	 set timeout 60
	 set log phase chat connect lcp ipcp command
	 set device localhost:pptp
	 set dial
	 set login
	 allow mode direct
	 disable CHAP MSCHAP PAP
	 enable MSCHAPv2
	 disable deflate pred1
	 deny deflate pred1
	 enable chap81
	 set mppe 128 stateless
	 enable MPPE
	 accept MPPE
	 enable proxy
	 set ifaddr 192.168.11.1/0  192.168.11.70  255.255.255.0
	 set server /var/run/pptp-network "" 0177
最後にppp.linkup。
	network-pptp:
	 add 192.168.12.0/24 HISADDR
	 set server /var/run/pptp-network "" 0177
	 disable proxy

	client-pptp:
	 set server /var/run/pptp-client "" 0177
	 set timeout 600
お約束ですが、他に必要な設定やIPアドレス、ID・パスワードは みなさまの環境に合わせて…ってことで。
ご質問などありましたらお気軽に