安定したコンピュータ業務のために。お気軽にお問い合わせください。

オープンソースを用いたVPNサーバ構築

社外から社内データに安全にアクセスする技術の人とに、VPN接続が考えられます。その技術はSSL-VPN、IPSecなど多種多様ですが、ここではシンプルなPPTP(Point to Point Tunneling Protocol)を用いた手順をご紹介します。

オープンソースPopTop

PPTPのデーモンサービスを提供するオープンソースの一つにPoptopがあります。FreeBSDシステムではPortsコレクションに含まれていますので、手軽にインストールし、利用することができます。以下ではFreeBSD6.3にpoptop-1.3.4_1を設定する手順を記述しています。

OSの事前準備

FreeBSDサーバがまずは、NIC2枚差しで1枚は固定グローバルIPが設定されており、1枚は内部ネットワーク(固定プライベートIPアドレス)が割り当てられているものとします。 VPN装置としての設定に限って記載しますのでそのほか設定は各自でお願いします。
1. kernel再構築
FreeBSD6.3では標準でtunデバイスが有効になっていますので、必要ありません。kernelの再コンパイルなどを実施し、不要デバイスを削除している場合には

device tun # Packet tunnel.

が組み込まれていることを確認してください。
また、VPNサーバはゲートウェイとしての機能が必要です。/etc/rc.confに、

gateway_enable="YES"

が記述されていることを確認してください。そのほか、ファイアウォール機能(ipfw)が有効な場合には、対象サーバのグローバルIP側に1723/tcpと、GREプロトコルが通信可能であることを確認してください。

add 10400 allow tcp from any to 61.194.85.115 1723 in via re1
add 10500 allow gre from any to any

以上でOS側の設定は完了です。VPNサーバの上流にファイアウォールが存在する場合にはそれぞれでVPNサーバへの経路を確保してください。

Poptopのインストール・設定

Poptopは/usr/ports/net/poptopにあります。通常のインストール手順でインストールが完了します。

make
make install

続いて、設定ファイル(/usr/local/etc/pptpd.conf)の設定を行います。おもな設定内容は次の通りです。
ppp /usr/sbin/ppp
options /etc/ppp/ppp.conf
debug
noipparam
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
logwtmp
pidfile /var/run/pptpd.pid
localipにVPNサーバのローカルIPアドレスを、remoteipに、割り当てるIPアドレスを指定します。また、サンプルの設定ファイルではoptions行のタイトルがoptionになっていますが、エラーが発生して接続できませんので、optionsに変更してください。

pptpdが起動するために、/etc/rc.confに次の設定を追記してください。
pptpd_enable="yes"

pppの設定

PoptopはpppをキックしてVPN接続を確立します。OS標準で導入されているpppを利用する場合は以下の設定ファイルを書き換えます。

/etc/ppp/ppp.conf

default:
set log Phase Chat LCP IPCP CCP tun command
ident user-ppp VERSION (built COMPILATIONDATE)
set timeout 180 # 3 minute idle timer (the default)
enable dns # request DNS info (for resolv.conf)

loop:
set timeout 0
set log phase chat connect lcp ipcp command
set device localhost:pptp
set dial
set login
set ifaddr 192.168.0.1 192.168.0.234-238,192.168.0.245 255.255.255.0
set server /var/tmp/loop "" 0177

loop-in:
set time-out 0
set log phase lcp ipcp command
allow mode direct

pptp:
load loop
disable CHAP MSCHAP PAP
enable MSCHAPv2
disable deflate pred1
deny deflate pred1
set mppe 128 stateless
enable MPPE
accept MPPE
accept dns
set dns 192.168.0.1
enable chap81
enable proxy


/etc/ppp/secure
#!/bin/sh
exec /usr/sbin/ppp -direct loop-in

/etc/ppp/ppp.secret
username password
/etc/ppp/ppp.secretファイルはVPN接続するユーザ名とパスワードを記述してください。

作成したファイルのパーミッションを適切に変更します。
chmod 600 /etc/ppp/ppp.secret
chmod 500 /etc/ppp/secure

以上で作業は完了です。以下コマンドを発行してVPN接続サーバを起動します。
/usr/local/etc/rc.d/pptpd start




パートナー



ニュースリリース | 会社概要 | プライバシーポリシー | リンク | ©2002-2008 Integrated Systems Co. Ltd. All Rights Reserved.