Particle UnixメンテナンスTIPS 0001
VPN(仮想プライベートネットワーク)接続をする(1)
 ファイヤーウォール内に置いてある会社のメールサーバなどにアクセスするには、ファイヤーウォールに穴を開けてデータを通す必要がありとても危険です。こんなときにLinuxマシンをファイヤーウォールとして利用していれば、仮想プライベートネットワーク(Virtual Private Network)を利用して少しだけ安全に社内サーバへアクセスできます。Windowsファミリをサポートして仮想プライベートネットワークを実現するサービスにpptpあり、Linuxなどで利用できるpptpサーバとして実装されているソフトウェアにpoptopがあります。ここではpoptopを導入してWindows98からLinuxのファイヤウォール経由で社内サーバへ接続する手順を見ていきましょう。
用意するもの

 poptopを利用するにはpppdが必要で、カーネルが2.2以降でIP Masquerade機能が組み込まれている必要があります。Windowsファミリから「Microsft encryption and authentication」を利用してpptpサーバへ接続するにはpppにパッチを当てる必要があり、pppの2.3.8か2.3.10に当てるパッチがいっしょに公開されています。また、暗号化のモジュールとしてOpenSSLからソースを拝借して利用します。poptopやppp、OpenSSL、各種パッチは以下から入手できます。

  poptop

     http://www.moretonbay.com/vpn/pptp.html

     http://www.moretonbay.com/vpn/download_pptp.html

     pptpd-1.0.0.tgz

     ppp-2.3.8.patch

     ppp-2.3.10.patch

  ppp

     ftp://cs.anu.edu.au/pub/software/ppp/

  OpenSSL

     http://www.openssl.org/source/openssl-0.9.5a.tar.gz

pppをコンパイルしてインストール

 ppp-2.3.8.tar.gzかppp-2.3.10tar.gzを入手したら展開してコンパイルする前にパッチを当てます。ここでは、ppp-2.3.10をインストールしてみましょう。入手したアーカイブファイルを展開するにはtarコマンドを利用します。

> tar zxvf - ppp-2.3.10.tar.gz Enter

drwxr-xr-x paulus/users 0 1999-09-17 15:02:24 ppp-2.3.10/
drwxr-xr-x paulus/users 0 1999-09-17 14:20:12 ppp-2.3.10/NeXT/
drwxr-xr-x paulus/users 0 1998-03-26 11:40:06 ppp-2.3.10/NeXT/Examples/
          ・
          ・
          ・

> tar zxvf - openssl-0.9.5a.tar.gz Enter

openssl-0.9.5a/CHANGES
openssl-0.9.5a/CHANGES.SSLeay
openssl-0.9.5a/Configure
         ・
         ・
         ・

 OpenSSLから必要なソースをpppのソースにコピーし、patchコマンドでパッチを当てます。

> cp openssl-0.9.5a/crypto/rc4/rc4.h ppp-2.3.10/linux/.

> cp openssl-0.9.5a/crypto/rc4/rc4_enc.c ppp-2.3.10/linux/.

> cd ppp-2.3.10

ppp-2.3.10 > cat ../ppp-2.3.10-openssl-norc4-mppe.patch | patch -p1

patching file `README.MPPE'
patching file `include/linux/ppp-comp.h'
patching file `include/net/ppp-comp.h'
          ・
          ・
          ・

 コンパイルとインストールは以下のようにおこないます。

ppp-2.3.10 > ./configure

Makefile -> linux/Makefile.top
pppd/Makefile -> Makefile.linux
pppstats/Makefile -> Makefile.linux
chat/Makefile -> Makefile.linux
pppdump/Makefile -> Makefile.linux

ppp-2.3.10 > ./make

ppp-2.3.10 > ./make kernel (カーネルソースがあればパッチを当てます)

ppp-2.3.10 > ./make install

 

IP Masqueradeをカーネルに組み込む

 カーネルにIP Masquerade機能が組み込まれているか確認して、もし組み込まれていなければオプションを設定してカーネルをコンパイルしてください。カーネルのコンパイルは「Linuxメンテナンスブック」などを参考にどうぞ。カーネルソースがインストールされていて、pppをコンパイルする過程でカーネルのドライバにパッチを当てていれば、pppと同じく暗号化モジュールをカーネルソースへコピーしてから、モジュールをコンパイルしてインストールしてください。

> cp openssl-0.9.5a/crypto/rc4/rc4.h /usr/src/linux/drivers/net/.

> cp openssl-0.9.5a/crypto/rc4/rc4_enc.c /usr/src/linux/drivers/net/.

> cd /usr/src/linux

/usr/src/linux > make dep clean modules modules_install

 IP Masquerade機能がカーネルに組み込まれていれば、以下のコマンドでロードしてみましょう。「/etc/conf.module」ファイルに以下の行を追加してください。

alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

 modprobeコマンドでカーネルに

> depmod -a Enter

poptopをコンパイルしてインストールする

poptopのコンパイルとインストールはとても簡単でconfigureスクリプトとmakeコマンドを使って以下のようにおこないます。

> tar zxvf pptpd-1.0.0.tar.gz Enter

> cd pptpd-1.0.0 Enter

pptpd-1.0.0 > ./configure Enter

pptpd-1.0.0 > make Enter

pptpd-1.0.0 > make install Enter

 poptopのサーバであるpptpdは/usr/loca/sbinディレクトリにインストールされます。

pppとpoptopを設定してpptpdを実行する

 pppの設定は「/etc/ppp/options」を以下のように書き換えます。

+chapms
+chapms-v2
mppe-40
mppe-128
mppe-stateless
name pptp.test.co.jp
auth
require-chap
proxyarp

 poptopの設定は「」を以下のように書き換えてください。

speed 115200
localip 192.168.1.1-15
remoteip 192.168.1.16-30

ここでは仮想接続をしてきたマシンに192.168.1.16から192.168.1.30が割り当てられます。

 pppで利用するchapは「/etc/ppp/chap-secrets」を以下のように書き換えます。

pptp.test.co.jp herohero*

ここではpptpユーザでパスワードが「herohero」となります。

 それではpptpdを実行してみましょう。

> /usr/local/sbin/pptpd & Enter

 実行されると「MGR: Manager process started」がメッセージとして出力され、「/var/log/message」ファイルで確認できます。

Windows98からpptpサーバへの接続は次回に続く
UnixメンテナンスTIPS 0001