20071004_01.jpgウチはルータにWZR-RS-G54を使っています。
こいつは無線APもあって、何よりPPTPサーバとして動いてくれますし、限られていますがDynamicDNSも更新出来たりするので、機能が沢山あって非常に優秀です。
前使ってたNTT-MEのルータは、ちょっとした負荷ですぐに落ちる仕様だったので・・・。

で、優秀なのも落ちないのも良いんですが重い時があるんです。
まぁ、ルータとして性能もそれほどない機械にファイヤーウォールやたDHCPやらDNSやらを組み込んでると重くなるのは当たり前なんですが、どーにもそれでも重い時があるんです。

今はまだ大丈夫なんですけど、今後壊れたときに新しいルータを買おうという時になって、既に廃盤になってるというのはよくある事なので、せっかくLinuxにしているのでPPTPサーバでも構築しよう!
という流れで構築してみました。
今回の構成としては、遠隔地にあるPPTPサーバ(CentOS4.5)に接続して、遠隔地内ネットワークの他のサーバも参照できるようにします。
詳しくは左図を参考にしてくれると有難いです。
短時間で作ったので、かなり適当に作られてますけど、気にしないでくれるとありがたいです。
逢えて、見直しておりません。

SourceForgeよりダウンロード

上記サイトより、PPTP用のRPMパッケージをダウンロードします。
尚、今回はCentOS4.5でインストールを行うのでRedHatEnterpriseLinux4のパッケージを使用します。CentOS5の方は、今回はここでお疲れ様でした

というのはマジでして、だってないんだもんRPM。
試したんですけど、オイラの技量ではムリでした(;´Д`)
RedHatEnterpriseLinux5用のRPMがそのうち出ると思うので、出たらCentOS5でも入れる事が出来るハズです。
多分。
いやきっと。
Fedoraはかなりの頻度で出てるのに、バッチリサポートされているあたりが憎いですよね。
# wget http://downloads.sourceforge.net/poptop/dkms-2.0.10-1.noarch.rpm
# wget http://downloads.sourceforge.net/poptop/kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm
# wget http://downloads.sourceforge.net/poptop/ppp-2.4.3-5.rhel4.i386.rpm
# wget http://downloads.sourceforge.net/poptop/pptpd-1.3.3-1.rhel4.i386.rpm


ダウンロードが終わったら、インストールをします。
# rpm -Uvh dkms-2.0.10-1.noarch.rpm kernel_ppp_mppe-1.0.2-3dkms.noarch.rpm ppp-2.4.3-5.rhel4.i386.rpm pptpd-1.3.3-1.rhel4.i386.rpm


ダウンロード終了後、pptpd.confファイルにIPアドレスの設定を行う。
# vi /etc/pptpd.conf
localip 192.168.5.50
※PPTPサーバとしてのアドレス
remoteip 192.168.5.51-60
※クライアントに割り当てるアドレス


PPTPのオプションファイルに設定を記述する。
# vi /etc/ppp/options.pptpd
nodefaultroute
※接続した時に、ブラウジングなどのネットワークをPPTPサーバを中継しない設定


ユーザー設定のファイルを記述する。
# vi /etc/ppp/chap-secrets
# Secrets for authentication using CHAP
# client   server secret  IP addresses
client1  pptpd  password  *


上の設定では、PPTPアカウント「client1」、パスワード「password」、IPアドレス「設定された範囲内(192.168.5.10-100)」と設定されている。
IPアドレスを固定する場合は、*の部分に指定する。
# /etc/rc.d/init.d/pptpd start
# chkconfig pptpd on

上記コマンドでPPTPを起動する。
起動が完了したら、PPTPサーバをLinux起動時に自動的に立ち上げるように設定する。

この設定を行った後、iptablesが起動している場合は1723ポートと、プロコトルの47番(GRE)の転送を行うように設定をして下さい。
ルータを設置している方は、更に同じ設定をルータにもして下さい。
# iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
# iptables -A INPUT -p 47 -j ACCEPT
# /etc/init.d/iptables save
# /etc/init.d/iptables restart

ウチはiptablesを設定してないので、あんまし自信がありませんが、これで大丈夫のハズです。

このままでは、接続完了後にPPTPサーバ以外のネットワークを参照出来ない為、Linuxの設定を変更してip_fowardの設定を変更する。
# cat /proc/sys/net/ipv4/ip_forward
※「0」であればip_fowardは無効になっている。
echo 1 > /proc/sys/net/ipv4/ip_forward

上記コマンドでip_forwardを有効化した後、Linuxを再起動すれば他のネットワークを参照できるようになっています。

これでアナタも痛快PPTP生活のはじまりはじまりでヤンスよヾ(゚∀゚)ノ
一応注意点をば。
設定してて気付いてる人も多いと思いますけど、PPTPはパスワードを平文で保存しているのでセキュリティ的にはかーなーりよろしくありません
PPTPとSSHを組み合わせて、専用ツールを使用した接続方法の方がセキュアなんですけど、個人的にはPPTPの最大の魅力は専用ツールが不要な事だと思っています。
専用のツールを使うくらいなら、ちゃんとした鍵を使えるOpenVPNで構築したほうがマシってのがオイラの考え方です。
使用用途としては、人数の少ない家庭用向けですかね。

色々チャレンジしてみると勉強にもなりますし、使ってみるとコレが便利なんですよ(゚∀゚)
なので、家庭用にはオススメです。

2007.10.11追記
上記設定のままだと、OS再起動時にip_forwardが0に戻ってしまうので、起動スクリプトにコマンドを追加してOS起動時にip_forwardを1にする設定を行う。
# vi /etc/rc.local
# echo 1 > /proc/sys/net/ipv4/ip_forward
※上記コマンドを追記

これで、再起動をしてもip_forwardは1のままです。