背景 †
はじめはWindows Mes
sengerを使って音声チャットをしたかったのだが,相手のFirewallがupnpに対応していなかったので,PPTPを使って接続してもらいNetmeetingで音声チャットをしている.
なんだか最新のWindows Messengerもupnpに対応していなかったり,すっかりupnpも下火になっているので,この方法でよかったのかもとも思っています.
yahoo Messengerの音声チャットも試したが・・・トランシーバーの様で使いにくい.
pppdの最新版へのアップグレード †
pppの最新版をダウンロード †
- cvsでsamba.orgからダウンロードする.
% cvs -z5 -d :pserver:cvs@pserver.samba.org:/cvsroot co ppp
kernel再構築 †
- kernelにmppeのパッチを当てる.
# cd ppp/linux/mppe # sh mppeinstall.sh /usr/src/linux-2.4.20/
- kernelの再構築
# make mrproper # make menuconfig
- チェックをつける項目
Network device - PPP MPPE compression Network device - PPP over Ethernet Charactor device - Non-standard serial port support - HDLC line
- 以下の項目を確認
CONFIG_PPP=m CONFIG_PPP_ASYNC=m CONFIG_PPP_SYNC_TTY=m CONFIG_PPP_DEFLATE=m CONFIG_PPP_BSDCOMP=m CONFIG_PPP_MPPE=m CONFIG_PPPOE=m CONFIG_N_HDLC=m CONFIG_UNIX98_PTYS=y
- 実行
# make dep # make clean # make bzImage # make modules # make modules_install # make install
pppのインストール †
- /dev/pppがあるかを確認.無かったら下のコマンドで作成
# mknod --mode=664 /dev/ppp c 108 0
- /etc/modules.confに下記を追加
alias char-major-108 ppp_generic alias tty-ldisc-3 ppp_async alias tty-ldisc-13 n_hdlc alias tty-ldisc-14 ppp_synctty alias net-pf-24 pppoe
- pppをインストール
$ cd ppp $ ./configure $ make $ su # make install
PPTPサーバの構築 †
poptopのインストール †
- poptopの取得
poptopサイトからダウンロード
- poptopのインストール
$ tar zxvf pptpd-1.1.4-b4.tar.gz $ cd poptop-1.1.4 $ ./configure $ make $ su # make install
PPTPの設定 †
- /etc/pptpd.confの作成
pptpで接続してきたユーザには192.168.1.210~219を割り当てる.
option /etc/ppp/options.pptpd debug localip 192.168.1.1 remoteip 192.168.1.210-219
- /etc/ppp/options.pptpdの作成
lock name pptpd auth proxyarp refuse-pap refuse-chap refuse-mschap require-mschap-v2 require-mppe nomppe-stateful
- アカウントの設定
/etc/ppp/chap-secretsに追記
ユーザ名 hogehoge,パスワード foofooと場合
hogehoge pptpd "foofoo" *
pptpの起動 †
- スクリプトの修正(poptop-1.1.4/pptpd.init)
daemon /usr/sbin/pptpd ↓ daemon /usr/local/sbin/pptpd
- マシン起動時に有効にする
# cd /etc/rc.d/init/ # chkconfig --level 35 pptpd on
ip-tablesの設定 †
pptpのパケットは,カプセル(エンベローブ)するGREと,トンネリングの制御をするパケットに分けられる.
- p 47でGREのパケットを許可している.
PPTPパケット(port 1723)はtcpだけで良さそうだが,よくわからないのでUDPも許可している.
-A INPUT -i ppp0 -p 47 -j ACCEPT -A INPUT -i ppp0 -p tcp -m tcp --dport 1723 -j ACCEPT -A INPUT -i ppp0 -p udp -m udp --dport 1723 -j ACCEPT
kernel-mode pppoe †
kernelを再構築するついでにpppoeをkernel-modeにしてしまいました.
- rp-pppoeインストール
$ cd rp-pppoe-3.5/src $ ./configure --enable-plugin=../../ppp $ make $ su # make install
- /etc/ppp/pppoe.confの作成
# adsl-setup ウィザードに従い作成
- /etc/ppp/pppoe.confを編集
以下の行のコメント(#)をはずす LINUX_PLUGIN=/etc/ppp/plugins/rp-pppoe.so
- rp-pppoe.soをpppのものと交換する.
# mv /etc/ppp/plugins/rp-pppoe.so /etc/ppp/plugins/rp-pppoe.so.org # cp /usr/lib/pppd/2.4.2b3/rp-pppoe.so /etc/ppp/plugins/