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
としてやっと成功。
こちらを参考にさせてもらった。

コメントする