玄柴をPPTPサーバにしてiPod touch+Pocket WiFiからVPN接続する
ここ数日、玄柴をPPTPサーバにして手持ちのiPod touchとイーモバイルのPocket WiFi(D25HW)からVPN接続しようとあれこれ四苦八苦してました。
とりあえず、個人的にFedora(というかRedHat系)が好みなので日経Linux3月号の付録DVDに入ってるfedora12と2.6.32.3のカーネルソースを元に
さらに色んなサイトを参考にしまくって何とか構築できました。疲れた。
- 嵌った点
- pptpd起動していざ接続しようとするとMPPEがねーよと怒られる
- MPPE入れるためにmake module->make modules_installとかやったらrebootできなくなった
- そもそも俺のLinuxに対する理解が不足しまくり
アホな事いっぱいやってると思うんであくまで自分用メモ。
※もし以下を真似して玄柴が起動不能になるなどあっても私は一切責任を取りません。(念のため・・・)
また、ここはこうすればできるのにそんなことも知らねーのかばーかというご指摘は大歓迎です。
手順
日経Linux3月号の記事を元にfedora12のイメージを書き込む。
USBメモリのミニ・ルート環境でbootして、
sh-3.2# cat /proc/mtd dev: size erasesize name mtd0: 00100000 00020000 "u-boot" mtd1: 00400000 00020000 "uImage" mtd2: 1fb00000 00020000 "rootfs"
となっていたので
sh-3.2# flash_eraseall -j /dev/mtd2
でfootrsを消去。
sh-3.2# nandwrite -p /dev/mtd2 kurosheeva_f12.jffs2
でjffsイメージを書き込み。
リブート後、前のエントリ
http://d.hatena.ne.jp/val90/20100210/1265904413
を元にネット接続の設定。
んで、とりあえず必要なもんいろいろ入れとく。
# yum update # yum install tar wget gcc make
# yum install ppp
# yum search pptpd Warning: No matches found for: pptpd No Matches found
との事なので本家から持ってきた。
# wget http://downloads.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz?use_mirror=jaist # tar xvfz pptpd-1.3.4.tar.gz # cd pptpd-1.3.4 # ./configure --exec_prefix=/usr # make # make install
もろもろ設定
/etc/pptpd.confの設定
サンプルをコピー
# cp samples/pptpd.conf /etc/
以下の項目を変更。
#logwtmp localip 192.168.11.55 remoteip 192.168.11.30-34
※logwtmpをコメントアウト
(これをしておかないと後々「/usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4」と怒られる)
※localip:玄柴のIP
※remoteip:クライアントに割り当てられるIP
/etc/ppp/chap-secrets
$userid * $password *
※$useridと$passwordは任意の文字列を設定。
/etc/ppp/options.pptpd
サンプルをコピー
# cp samples/options.pptpd /etc/ppp/
以下を追記
mtu 1400
※これが無いと、VPNに接続できてもすぐに切断されてしまう
ここらで一旦reboot
試しに接続しようとしてみる
# /usr/sbin/pptpd start
/var/log/messagesを見てみる。
# tail -f /var/log/messages fedora-arm pptpd[1222]: MGR: Maximum of 100 connections reduced to 5, not enough IP addresses given fedora-arm pptpd[1224]: MGR: Manager process started fedora-arm pptpd[1224]: MGR: Maximum of 5 connections available
ちゃんと起動してるっぽい。
iPod+Pocket WiFiから接続してみる。
fedora-arm pppd[1196]: MPPE required, but kernel has no support.
なんか出た。
デフォルトの/etc/ppp/options.pptpdでは
require-mppe-128
となっている為、これをコメントアウトすれば動くのかもしれませんが暗号化されないのは嫌なのでMPPEをインストールします。
MPPEカーネルモジュールのインストール
日経Linuxに付属のDVDからソースを解凍しconfigの設定。(USBメモリ内に解凍して作業しました)
# tar xvfz linux-2.6.32.3-kurosheeva.tar.gz # cd linux-2.6.32.3 # make menuconfig *** 'make menuconfig' requires the ncurses libraries.
またなんか出た。
# yum install ncurses-devel
再度
# make menuconfig
Device Drivers ---> Network device support --->
の中のPPP関連をすべてONにしました。
んで、
# make uImage ・ ・ ・ ・ /bin/sh: cmp: command not found Inconsistent kallsyms data Try setting CONFIG_KALLSYMS_EXTRA_PASS make: *** [vmlinux] Error 1
また怒られた。
# yum install diffutils
再度
# make uImage ・ ・ ・ ・ ・ "mkimage" command not found - U-Boot images will not be built
なんだと!
mkimageのインスコトロール
# wget ftp://ftp.denx.de/pub/u-boot/u-boot-1.1.4.tar.bz2 # yum install bzip2 # tar xvlpf u-boot-1.1.4.tar.bz2 # cd u-boot-1.1.4 # export TOPDIR=`pwd` # cd tools # make mkimage # cp mkimage /usr/local/bin/
今度こそー。
# make uImage
通った。
# make modules # make modules_install
思い切って上書いてみた
cp -p System.map /boot/System.map-2.6.32.3 cp -p arch/arm/boot/uImage /boot/uImage-2.6.32.3
そしてreboot!!!
Welcome to Fedora Press 'I' to enter interactive startup. Starting udev: [ OK ] Setting hostname fedora-arm: [ OK ] Unable to handle kernel NULL pointer dereference at virtual address 00000000 pgd = ded78000 [00000000] *pgd=1f28c031, *pte=00000000, *ppte=00000000 Internal error: Oops: 17 [#1] PREEMPT last sysfs file: /sys/kernel/uevent_seqnum Modules linked in: mv_cesa [last unloaded: scsi_wait_scan] CPU: 0 Not tainted (2.6.32.3 #1) PC is at strcmp+0x8/0x34 LR is at sysfs_find_dirent+0x1c/0x40 pc : [] lr : [ ] psr: a0000013 sp : df201ef0 ip : 00000000 fp : bef91d0c r10: 00011fd4 r9 : df200000 r8 : c002dbc4 r7 : 00000880 r6 : df201f44 r5 : 00000000 r4 : deef0480 r3 : 00000000 r2 : 00000000 r1 : 00000000 r0 : 00000000 Flags: NzCv IRQs on FIQs on Mode SVC_32 ISA ARM Segment user Control: 0005317f Table: 1ed78000 DAC: 00000015 Process rmmod (pid: 804, stack limit = 0xdf200270) Stack: (0xdf201ef0 to 0xdf202000) 1ee0: deef0450 deef0450 00000000 c01118a0 1f00: deef0450 00000000 00000000 00000000 00000000 df2d0d40 df201f44 c007804c 1f20: c002dbc4 bf007038 bf007038 c007a214 00000000 00000000 bf007038 c007a4dc 1f40: deef1948 69736373 6961775f 63735f74 de006e61 deef1580 00000003 df201f68 1f60: c0241524 c0425c58 c0423a30 00000000 dee26034 4001f000 00001000 0002dbc4 1f80: bf007038 00000880 df201f8c 00000000 df339580 00000880 bef91cd8 00011fc0 1fa0: 00000081 c002da40 00000880 bef91cd8 bef91cd8 00000880 00000000 bef91ccc 1fc0: 00000880 bef91cd8 00011fc0 00000081 00000001 00000001 00011fd4 bef91d0c 1fe0: 00000880 bef91cd8 00008f58 4011375c 60000010 bef91cd8 00000000 00000000 [ ] (strcmp+0x8/0x34) from [ ] (sysfs_find_dirent+0x1c/0x40) [ ] (sysfs_find_dirent+0x1c/0x40) from [ ] (sysfs_hash_and_remove+0x2c/0x64) [ ] (sysfs_hash_and_remove+0x2c/0x64) from [ ] (free_notes_attrs+0x28/0x54) [ ] (free_notes_attrs+0x28/0x54) from [ ] (free_module+0xc8/0x184) [ ] (free_module+0xc8/0x184) from [ ] (sys_delete_module+0x20c/0x254) [ ] (sys_delete_module+0x20c/0x254) from [ ] (ret_fast_syscall+0x0/0x28) Code: 1afffff2 e8bd8030 e1a0c000 e3a02000 (e7dc0002) ---[ end trace 7df491cfe1b77201 ]---
はい、起動しません。
人生そうそう上手くいきませんよねー。
よくわからんが、最終的に以下の手順でできました。
やり直し!
USBのミニ・ルートから再度rootfsをフォーマットし、pptpdの設定までを済ませる。
USBメモリをマウントし
# cd /mnt/linux-2.6.32.3 # make modules_install
この状態でpptpdを起動したところiPodから接続でき、ローカルIPで他のマシンにVNCも繋がった。
# tail -f /var/log/messages fedora-arm pppd[1164]: pppd 2.4.4 started by root, uid 0 fedora-arm pppd[1164]: Using interface ppp0 fedora-arm pppd[1164]: Connect: ppp0 <--> /dev/pts/0 fedora-arm kernel: PPP MPPE Compression module registered fedora-arm pppd[1164]: MPPE 128-bit stateless compression enabled fedora-arm pppd[1164]: found interface eth0 for proxy arp
が、rebootするとまたしても起動時にエラー。
今度は、上記の状態の/lib/modules/2.6.32.3/以下をUSBメモリ内に保存しておいて
再度USBのミニ・ルートから再度rootfsをフォーマットし、pptpdの設定まで済ませ、
以下をUSBメモリ内に保存した内容で上書き。
/lib/modules/2.6.32.3/kernel/drivers/net/* /lib/modules/2.6.32.3/modules.alias /lib/modules/2.6.32.3/modules.dep
そしたら、pptpも繋がりrebootもできる状態になった。
大分適当かつ無理やりだと思うんで、この環境はそのうち壊してまた別の環境で何かやります。
そもそも、VPNで何かやりたいわけでもなくなんとなくでやってみただけなので・・・。
自宅マシンのリモート操作ならdocomoのmobile2pcを持ってるのでそれで事足りてるし。
ちなみに、途中で試しに自宅にあまってる別PC(BaniasコアのMentium-MノートPC)にLinuxをインストールして
やってみたら上記の苦労が嘘のようにあっけなく繋がり拍子抜けしたりもしました。
次はHDDをeSATA接続してそこに環境構築かなぁ。