_ [debian] gzip 1.3.9-1 変

インストールできない。

Setting up gzip (1.3.9-1) ...
install-info(/usr/share/info/gzip.info): warning, ignoring confusing INFO-DIR-ENTRY in file.

No `START-INFO-DIR-ENTRY' and no `This file documents'.
install-info(/usr/share/info/gzip.info): unable to determine description for `dir' entry - giving up
dpkg: error processing gzip (--configure):
 subprocess post-installation script returned error exit status 1
Errors were encountered while processing:
 gzip

#403998#404036 に出てる。

_ [comp] VPN 実験再び

にやった VPN 実験だけど、再びやってみる機会が巡ってきたので挑戦。といっても、今回は PPTP サーバの構築は必要なくて PPTP クライアントの構築のみ。昔を思い出して情報収集。 まず、mppe が有効な pppd だけど、Debian の ppp は問題ない。

ppp (2.4.2+20030811-1) experimental; urgency=low

  * New CVS snapshot. (Closes: #171137)
    New features:
    - MPPE (Closes: #52913, #81511, #100665)
(略)
 -- Marco d'Itri <md●linux.it>  Sun, 24 Aug 2003 13:40:16 +0200



ii  ppp            2.4.4rel-4.1   Point-to-Point Protocol (PPP) daemon

PPTP クライアントは変わらず pptp-linux のようだ。

ii  pptp-linux     1.7.0-2        Point-to-Point Tunneling Protocol (PPTP) Cli

公式サイトを見てみると、

Linux kernel 2.6.15 has been released and includes the PPP MPPE encryption module, which implements the Microsoft Point-to-Point Encryption method as a PPP compressor/decompressor.

ref. PPTP Client

ということで、kernel にも mppe パッチを当てる必要はなくなった。2.6.19.1 を

CONFIG_NET_IPGRE=m
CONFIG_PPP=m
CONFIG_PPP_FILTER=y
CONFIG_PPP_ASYNC=m
CONFIG_PPP_DEFLATE=m
CONFIG_PPP_BSDCOMP=m
CONFIG_PPP_MPPE=m

で作成。CONFIG_PPP_FILTER=y は以前は入れていなかったけど、

pppd[XXXXX]: kernel does not support PPP filtering

というログが出てたので入れておいた。 PPTP クライアントの設定は

を参考に。設定名は「pptptest」、ユーザは「PPTPUSER」、パスワードは「PPTPPASS」、PPTPサーバは「PPP.PPP.TTT.PPP」とする。てか P 多すぎ。

# cat /etc/ppp/options.pptp
debug
lock
noauth
noccp
user PPTPUSER

# cat /etc/ppp/chap-secrets
PPTPUSER PPTP PPTPPASS *
PPTP PPTPUSER PPTPPASS *

# cat /etc/ppp/peers/pptptest
pty "pptp PPP.PPP.TTT.PPP --nolaunchpppd"
name PPTPUSER
remotename PPTP
file /etc/ppp/options.pptp
ipparam pptptest

設定ができたら、root で pon pptptest を実行。syslog を見てると、

pppd 2.4.4 started by root, uid 0
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/5
anon log[main:pptp.c:267]: The synchronous pptp option is NOT activated 
anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 1 'Start-Control-Connection-Request' 
anon log[ctrlp_disp:pptp_ctrl.c:738]: Received Start Control Connection Reply
anon log[ctrlp_disp:pptp_ctrl.c:772]: Client connection established.
sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xAAAAAAAA> <pcomp> <accomp>]
anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 7 'Outgoing-Call-Request' 
anon log[ctrlp_disp:pptp_ctrl.c:857]: Received Outgoing Call Reply.
anon log[ctrlp_disp:pptp_ctrl.c:896]: Outgoing call established (call ID 0, peer's call ID 0). 
rcvd [LCP ConfReq id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xBBBBBBBB> <pcomp> <accomp>]
sent [LCP ConfAck id=0x1 <asyncmap 0x0> <auth chap MS-v2> <magic 0xBBBBBBBB> <pcomp> <accomp>]
rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xAAAAAAAA> <pcomp> <accomp>]
sent [LCP EchoReq id=0x0 magic=0xAAAAAAAA]
rcvd [CHAP Challenge id=0x1 <XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>, name = "XXXXXXXXXX.XXXXXXXXXX.XX.XX"]
sent [CHAP Response id=0x1 <XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX>, name = "PPTPUSER"]
rcvd [LCP EchoRep id=0x0 magic=0xBBBBBBBB]
rcvd [CHAP Success id=0x1 "S=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"]
CHAP authentication succeeded
sent [IPCP ConfReq id=0x1 <compress VJ 0f 01> <addr LLL.CCC.LLL.VDR>]
rcvd [IPCP ConfReq id=0x1 <addr RRR.MMM.TTT.GGG> <compress VJ 0f 01>]
sent [IPCP ConfAck id=0x1 <addr RRR.MMM.TTT.GGG> <compress VJ 0f 01>]
rcvd [CCP ConfReq id=0x1 <deflate 15> <deflate(old#) 15> <mppe +H -M +S -L -D -C>]
Unsupported protocol 'Compression Control Protocol' (0x80fd) received
sent [LCP ProtRej id=0x2 XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX XX]
rcvd [IPCP ConfNak id=0x1 <addr RRR.MMM.TTT.CCC>]
sent [IPCP ConfReq id=0x2 <compress VJ 0f 01> <addr RRR.MMM.TTT.CCC>]
rcvd [IPCP ConfAck id=0x2 <compress VJ 0f 01> <addr RRR.MMM.TTT.CCC>]
Cannot determine ethernet address for proxy ARP
local  IP address RRR.MMM.TTT.CCC
remote IP address RRR.MMM.TTT.GGG
Script /etc/ppp/ip-up started (pid XXXXX)
Script /etc/ppp/ip-up finished (pid XXXXX), status = 0x0

見にくいので debug 出力っぽいのを除くと

pppd 2.4.4 started by root, uid 0
using channel 1
Using interface ppp0
Connect: ppp0 <--> /dev/pts/5
CHAP authentication succeeded
Unsupported protocol 'Compression Control Protocol' (0x80fd) received
Cannot determine ethernet address for proxy ARP
local  IP address RRR.MMM.TTT.CCC
remote IP address RRR.MMM.TTT.GGG
Script /etc/ppp/ip-up started (pid XXXXX)
Script /etc/ppp/ip-up finished (pid XXXXX), status = 0x0

RRR.MMM.TTT.GGG から RRR.MMM.TTT.CCC を配ってもらってつながったぽい。ifconfig を見てみると

ppp0      Link encap:Point-to-Point Protocol  
          inet addr:RRR.MMM.TTT.CCC  P-t-P:RRR.MMM.TTT.GGG  Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1500  Metric:1
          RX packets:4 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3 
          RX bytes:60 (60.0 b)  TX bytes:48 (48.0 b)

おおっと思ってたら、

anon log[logecho:pptp_ctrl.c:676]: Echo Reply received.
anon log[logecho:pptp_ctrl.c:676]: Echo Reply received.
last message repeated 2 times
anon log[pptp_handle_timer:pptp_ctrl.c:1049]: closing control connection due to missing echo reply
anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 12 'Call-Clear-Request' 
anon log[pptp_conn_close:pptp_ctrl.c:430]: Closing PPTP connection
anon log[ctrlp_rep:pptp_ctrl.c:251]: Sent control packet type is 3 'Stop-Control-Connection-Request' 
anon log[call_callback:pptp_callmgr.c:78]: Closing connection (call state)
Script pptp PPP.PPP.TTT.PPP^I--nolaunchpppd finished (pid XXXXX), status = 0x0
Modem hangup
Connect time 6.0 minutes.
Sent 956072940 bytes, received 532 bytes.
Script /etc/ppp/ip-down started (pid XXXXX)
MPPE disabled
sent [LCP TermReq id=0x2 "MPPE disabled"]
Connection terminated.
Waiting for 1 child processes...
  script /etc/ppp/ip-down, pid XXXXX
Script /etc/ppp/ip-down finished (pid XXXXX), status = 0x0
Exit.

即行で切れた。ひとまず

Unsupported protocol 'Compression Control Protocol' (0x80fd) received

というログが出ていたので、/etc/ppp/options.pptp から noccp を勘で外してみるけど関係なかった。通信できてないのかな?と思ってたら、単にデフォルトゲートウェイを ppp0 に向けてないだけだった。

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
RRR.MMM.TTT.GGG 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
LLL.CCC.LLL.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         LLL.CCC.LLL.GGG 0.0.0.0         UG    0      0        0 eth0

ということで、LLL.CCC.LLL.GGG を削除して RRR.MMM.TTT.GGG をデフォルトルートにする。

# route del default gw LLL.CCC.LLL.GGG
# route add default gw RRR.MMM.TTT.GGG

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
RRR.MMM.TTT.GGG 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
LLL.CCC.LLL.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         RRR.MMM.TTT.GGG 0.0.0.0         UG    0      0        0 ppp0

これで行けると思ったら、eth0 を通してた PPP.PPP.TTT.PPP との通信ができなくなって、接続断。一体何をしてるんだか…。ここは PPP.PPP.TTT.PPP へのスタティックルーティングを設定しておくのが正しい。

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
RRR.MMM.TTT.GGG 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
LLL.CCC.LLL.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         LLL.CCC.LLL.GGG 0.0.0.0         UG    0      0        0 eth0

# route add -net PPP.PPP.TTT.PPP netmask 255.255.255.255 gw LLL.CCC.LLL.GGG
# route del default gw LLL.CCC.LLL.GGG
# route add default gw RRR.MMM.TTT.GGG

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
RRR.MMM.TTT.GGG 0.0.0.0         255.255.255.255 UH    0      0        0 ppp0
PPP.PPP.TTT.PPP LLL.CCC.LLL.GGG 255.255.255.255 UGH   0      0        0 eth0
LLL.CCC.LLL.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
0.0.0.0         RRR.MMM.TTT.GGG 0.0.0.0         UG    0      0        0 ppp0

これでようやく RRR.MMM.TTT.CCC としてネットワークに参加できた。もうちょっときれいにつなげられるようにしたいけど、それはまた後々。