2006年12月22日

Debian でPPTPサーバ

現在はDebian sarge(kernel 2.6.8)で動いてる自宅鯖。
宅内でNASとか使い始めて、ノートPC持ち運んだりしてると、たまに自宅にアクセスしたくなることがしばしば…ということで以前にpptpdを立てた。けれど、WindowsのPPTP接続暗号化に使われるMPPEがDebianで使えず認証のみMS CHAP V2で暗号化というショボイ状態だったので使わず。。。

カーネルとpppdにパッチを当ててリビルドする必要があるらしいが、kernel2.4系はドキュメントが豊富、そして公式でもkernel-patch-mppeのパッケージが用意されている。でもkernel2.6はmppeのパッケージは無く、ドキュメントもあまり(日本語が)無い、と思ってたところで見つけた方法。

以下、自分のためにメモ
参考

カーネルのバージョン確認

# dpkg -S /boot/vmlinuz-`uname -r`

カーネルのバージョンにあったkernel-headersパッケージをインストール

apt-get install kernel-headers-2.x.x-x-xxx

/etc/apt/sources.list に以下追記

# kernel-ppp-mppe
deb http://pptpclient.sourceforge.net/mppe/debian ./
# dkms
deb http://linux.dell.com/repo/software/debian sarge dell

kernel-ppp-mppe, dkms, patch, make, gccのパッケージをインストール

# apt-get update
# apt-get install kernel-ppp-mppe dkms patch make gcc

↑で入れたDKMSを使ってMPPEモジュールをインストール

# dkms add -m kernel_ppp_mppe -v 1.0.2
# dkms build -m kernel_ppp_mppe -v 1.0.2
# dkms install -m kernel_ppp_mppe -v 1.0.2

mppeのモジュールをロード(&& echo successはどっちでも)

# modprobe ppp-compress-18 && echo success

syslogに↓が出れば準備オッケー

PPP MPPE Compression module registered


次にpptpdをインストール(pppdのインストールが必要だった気がする)

#apt-get install pptpd


各種設定ファイルの記述
/etc/pptpd.conf

localip 192.168.xxx.yyy #pptpサーバのローカルIPアドレス
remoteip 192.168.xxx.mmm-nnn #pptpクライアント側に割り当てるIPアドレス
#他はデフォルトだった気がする
#自宅LAN内と同じにした方が楽


/etc/ppp/chap-secrets
pptp接続用のユーザとパスワードを設定

# client server secret IP addresses
xxxxxx pptp-server password *


/etc/ppp/pptpd-options

name xxxxx-server
domain hogehoge.com
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
require-mppe-128
#あとはデフォルトか適当だった

そしてpptpdをrestartして終了。
Windwosクライアント側の設定は簡単なので省略


[後日追記]
↑の設定だけだと、PPTPで接続は可能、PPTPサーバへの接続は可能だけど、リモートのLAN側にあるPPTPサーバ以外の端末へ接続できなかった。どうもパケットがPPTPサーバ以外へ到達していないらしい。

調べた結果、パケットをフォワードする設定が必要。

$ cat /proc/sys/net/ipv4/ip_forward
0

これが1になればOK。

/etc/network/options

ip_forward=1

従来はここを1にすればよかったらしいが、最近のバージョンでは違うらしい。

/etc/sysctl.conf

net.ipv4.ip_forward = 1

としてやっと成功。

こちらを参考にさせてもらった。

トラックバックURL

このエントリーのトラックバックURL:
/400

コメントする