さて、PPTP ServerをLinuxで作りたいのですが、思うように動いてくれません。
LASER5 Linux7.2をベースに、Kernel-2.4.19で作業を行いました。
http://planetmirror.com/pub/mppe/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz
http://www.impsec.org/linux/masquerade/netfilter_pptp_patch_2.4.19_rev1.gz
をあてて、kernelを作成した後、
http://www.poptop.org/
から、PoPToP-1.0.1をいただき、
http://sourceforge.net/project/showfiles.php?group_id=44827
ppp-mppe-2.4.1-7.i386.rpm
pptpd-1.1.3-3.src.rpm
をいただいて来てbuildしInstallしました。
==================================================
/etc/pptpd.conf:
==================================================
option /etc/ppp/options.pptpd
localip 192.168.100.1-9
remoteip 192.168.100.10-100
/etc/ppp/options.pptpd:
==================================================
## CHANGE TO SUIT YOUR SYSTEM
lock
## turn pppd syslog debugging on
debug
## change 'pptpd' to whatever you specify as your server name in
chap-secrets
name pptp.research.co.jp
auth
require-chap
proxyarp
bsdcomp 0
# This option applies if you use ppp with chapms-strip-domain patch
chapms-strip-domain
# These options apply if you use ppp with mppe patch
# NB! You should also apply the ChapMS-V2 patch
+chap
+chapms
+chapms-v2
mppe-40
mppe-128
mppe-stateless
require-mppe
require-mppe-stateless
としました。
==================================================
しかし、下記のように Client[61.193.149.156]から、
スイッチングHUBで直接つながっている、
PPTP Server[61.193.149.157]に繋ごうとすると、
下記のようなLOGがでて、
GRE: read(fd=5,buffer=804daa0,len=8196) from PTY failed: status = -1
error = Input/output error
が出た後切断されてしまいます。
http://www.impsec.org/linux/masquerade/ip_masq_vpn.html
を見て、念のため、netfilter_pptp_patchを当てたのですが関係ありませんでした。
Windows98, Windows2000, WindowsMeでも結果は同じでした。
どうやったら、正常に繋ぐことができるでしょうか?
是非お教えください。
-- mac
==================================================
Dec 9 17:09:20 kddi kernel: pptp: Conntrackinfo = 2
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x0
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0xdc1
Dec 9 17:09:20 kddi kernel: outbound_pptp_tcp(): CT=c24b4340,
61.193.149.156 -> 61.193.149.157 LEN=156 TY=1 MC=1A2B3C4D
CTL=START_SESSION_REQUEST
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x0
Dec 9 17:09:20 kddi pptpd[1489]: MGR: Launching /usr/local/sbin/pptpctrl
to handle client
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: local address = 192.168.100.2
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: remote address = 192.168.100.11
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: pppd options file =
/etc/ppp/options.pptpd
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Client 61.193.149.156 control
connection started
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Received PPTP Control Message
(type: 1)
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Made a START CTRL CONN RPLY packet
Dec 9 17:09:20 kddi kernel: inbound_pptp_tcp(): CT=c24b4340,
61.193.149.157 -> 61.193.149.156 LEN=156 TY=1 MC=1A2B3C4D
CTL=START_SESSION_REPLY
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: I wrote 156 bytes to the client.
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Sent packet to client
Dec 9 17:09:20 kddi kernel: outbound_pptp_tcp(): CT=c24b4340,
61.193.149.156 -> 61.193.149.157 LEN=168 TY=1 MC=1A2B3C4D CID=0
CTL=OUT_CALL_REQUEST
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Received PPTP Control Message
(type: 7)
Dec 9 17:09:20 kddi kernel: ip_outbound_pptp_tcp: original client call id: 0
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Set parameters to 0 maxbps, 16
window size
Dec 9 17:09:20 kddi kernel: ip_outbound_pptp_tcp(): OUT_CALL_REQUEST,
CT=c24b4340, CID=0
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Made a OUT CALL RPLY packet
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Starting call (launching pppd,
opening GRE)
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: pty_fd = 5
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: tty_fd = 6
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x0
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: I wrote 32 bytes to the client.
Dec 9 17:09:20 kddi pptpd[1490]: CTRL (PPPD Launcher): Connection speed
= 115200
Dec 9 17:09:20 kddi kernel: inbound_pptp_tcp(): CT=c24b4340,
61.193.149.157 -> 61.193.149.156 LEN=32 TY=1 MC=1A2B3C4D CID=0 PCID=0
CTL=OUT_CALL_REPLY
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Sent packet to client
Dec 9 17:09:20 kddi pptpd[1490]: CTRL (PPPD Launcher): local address =
192.168.100.2
Dec 9 17:09:20 kddi kernel: put_gre_tuple(): Master=c24b4340 tuple
c10cec28: 47 61.193.149.156:0 -> 61.193.149.157:0
Dec 9 17:09:20 kddi pptpd[1490]: CTRL (PPPD Launcher): remote address =
192.168.100.11
Dec 9 17:09:20 kddi kernel: put_gre_tuple(): Master=c24b4340 tuple
c10cecc8: 47 61.193.149.157:0 -> 61.193.149.156:0
Dec 9 17:09:20 kddi pptpd[1489]: GRE: read(fd=5,buffer=804daa0,len=8196)
from PTY failed: status = -1 error = Input/output error
Dec 9 17:09:20 kddi kernel: put_gre_tuple(): Master=c24b4340 tuple
c10cec88: 47 61.193.149.157:0 -> 61.193.149.156:0
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: PTY read or GRE write failed
(pty,gre)=(5,6)
Dec 9 17:09:20 kddi kernel: put_gre_tuple(): Master=c24b4340 tuple
c10cece8: 47 61.193.149.156:0 -> 61.193.149.157:0
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Client 61.193.149.156 control
connection finished
Dec 9 17:09:20 kddi kernel: pptp: failed to register conntrack protocol
GRE... (maybe it's already registered?)
Dec 9 17:09:20 kddi pptpd[1489]: CTRL: Exiting now
Dec 9 17:09:20 kddi kernel: pptp: bringing down gre connection.
Dec 9 17:09:20 kddi pptpd[1014]: MGR: Reaped child 1489
Dec 9 17:09:20 kddi kernel: clear_gre_tuple(): master=c24b4340 tuple
c10cece8: 47 61.193.149.156:0 -> 61.193.149.157:0
Dec 9 17:09:20 kddi kernel: clear_gre_tuple(): master=c24b4340 tuple
c10cec88: 47 61.193.149.157:0 -> 61.193.149.156:0
Dec 9 17:09:20 kddi kernel: clear_gre_tuple(): master=c24b4340 tuple
c10cecc8: 47 61.193.149.157:0 -> 61.193.149.156:0
Dec 9 17:09:20 kddi kernel: clear_gre_tuple(): master=c24b4340 tuple
c10cec28: 47 61.193.149.156:0 -> 61.193.149.157:0
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x0
Dec 9 17:09:20 kddi kernel: pptp: bringing down gre connection.
Dec 9 17:09:20 kddi kernel: clear_gre_tuple(): FAILED to delete tuple:
master = c24b4340
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x4263
Dec 9 17:09:20 kddi kernel: pptp_help(): not a control pkt: type=0x0,
cookie=0x0
私の場合、RedHat-8.0に最初RPMバージョンをインストール
したところ、うまく動かなかったのでtarから構築しました。
(デーモンまで稼動しているかのごとく見えるがその実、最初の
パケットを受け付け、リセットを返して、クライアント側で
エラーになりました。pptpdのdebugログに乗らない状態でした。)
導入ステップ
・linux.orgからkernel-2.4.19のソースをとってくる。
必要であればその他のパッチを当てる。
・http://public.planetmirror.com/pub/mppe/ から
linux-2.4.19-openssl-0.9.6b-mppe.patch.gz
ppp-2.4.1-MSCHAPv2-fix.patch.gz
ppp-2.4.1-openssl-0.9.6-mppe-patch.gz
pptpd-1.1.3.tar.gz
・ftp://cs.anu.edu.au/pub/software/ppp/ から
ppp-2.4.1.tar.gzとってくる。
1.Kernel-2.4.19にlinux-2.4.19-openssl-0.9.6b-mppe.patch.gz
のパッチを適用。
2.ppp-2.4.1.tar.gzを展開し、
ppp-2.4.1-MSCHAPv2-fix.patch.gz
ppp-2.4.1-openssl-0.9.6-mppe-patch.gz
のパッチを適用。
3.kernelの再構築。
lilo/GRUBの編集。
4.pptpd-1.1.3.tar.gz のmake install。
5.reboot
6./etc/pptpd.conf の編集。
7./etc/ppp/options.pptpd の編集。
暗号化必須にするため
-chap
-chapms
+chapms-v2
require-chapms-v2
mppe-128
mppe-stateless
8.始動スクリプトが無いため、pptpdのrpmから拝借。
-------- ここから -----------------------------------------
#!/bin/sh
#
# Startup script for pptpd
#
# chkconfig: 345 85 15
# description: PPTP server
# processname: pptpd
# config: /etc/pptpd.conf
# Source function library.
. /etc/rc.d/init.d/functions
# See how we were called.
case "$1" in
start)
echo -n "Starting pptpd: "
if [ -f /var/lock/subsys/pptpd ] ; then
echo
exit 1
fi
modprobe ip_conntrack_pptp 1> /dev/null 2>&1
daemon /usr/local/sbin/pptpd -d ### パス変更 ###
echo
touch /var/lock/subsys/pptpd
;;
stop)
echo -n "Shutting down pptpd: "
killproc pptpd
echo
rm -f /var/lock/subsys/pptpd
;;
status)
status pptpd
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: $0 {start|stop|restart|status}"
exit 1
esac
exit 0
---------------------------------------------------------
9./etc/rc.d/init.d/pptpd start で起動。
以上で稼動しました。
Shigeru Makino <m...@research.co.jp> wrote:
<<以下省略>>
---------------------------------------------
堀井 弘造
e-Mail: ho...@mit-sys.co.jp
http://www.mit-sys.co.jp/
---------------------------------------------