pptpdでVPN
出先からうちのローカルネットワークが見たかったのでpptpdでvpnな環境を構築
【環境】
- CentOS 5.2
- pptpd-1.3.4-1
- ppp-2.4.4-2-el5 (2009/09/03 時点の最新rpm)
- ルーターは PCi BRL-04FMX
pptpd インストール&設定
CentOS 5.2 でVPNな環境を構築するというと、もうこれ以上ないってくらいにぴったりなところがあったので細かい説明はいらないですねw
ざざっとおいらがやったことをメモすると、
1. pptpd rpm ダウンロード & インストール
CentOS 5.2 なのでカーネル云々も必要なく、 rpm -qa|grep ppp で見たら既にpppも入っていた(上記version)ので、pptpdだけインストール。
# wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/p/project/po/poptop/pptpd/pptpd-1.3.3/pptpd-1.3.3-1.rhel4.i386.rpm # rpm -ivh pptpd-1.3.3-1.rhel4.i386.rpm
2. pptpdの設定とか
おいらんとこのLANも↑のとこと同じ構成だったので
- /etc/pptpd.conf → そのまんま(debugは外した)
- /etc/ppp/options.pptpd → nameは適宜 外部にも公開している名前とかで
- /etc/ppp/chap-secrets → 適宜
という具合。ただ、鯖にはパケットフィルター等がない(というかiptables自体入れてない)のでその辺は無視。
3. ルーター設定変更
- PPTPパススルー機能 → 有効
- 静的マスカレードで tcpのポート番号1723 を 鯖(192.168.1.2)へ転送するように設定
4. pptpd daemon start & 接続チェック
# /etc/rc.d/init.d/pptpd start
で取りあえず立ち上げてみて、サブノートをわざわざ携帯経由でインターネットに接続してそっからvpnログインを試みるも・・・ぜんっぜん接続できません。
あるぇ?と鯖側のログ(/var/log/message)を見てみると以下のような記載が
Sep 3 03:12:59 ns1 pptpd[6921]: CTRL: Client 192.168.1.101 control connection started Sep 3 03:12:59 ns1 pptpd[6921]: CTRL: Starting call (launching pppd, opening GRE) Sep 3 03:12:59 ns1 pptpd[6921]: CTRL: Client 192.168.1.101 control connection started Sep 3 03:12:59 ns1 pptpd[6921]: CTRL: Starting call (launching pppd, opening GRE) Sep 3 03:12:59 ns1 pppd[6922]: Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4 Sep 3 03:12:59 ns1 pptpd[6921]: GRE: read(fd=6,buffer=804e5a0,len=8196) from PTY failed: status = -1 error = Input/output error, usually caused by unexpected termination of pppd, check option syntax and pppd logs
・・・なんぞこれ。
・・・が、「Plugin /usr/lib/pptpd/pptpd-logwtmp.so is for pppd version 2.4.3, this is 2.4.4」てのが引っかかって先のページを見ると、「pptpd-1.3.4.tar.gz から RPM パッケージを作る。」というところにドンピシャな内容があるではないですか。これだ。
5. ppp-2.4.4 対応版 pptpd rpm 作成&インスコ
ということで、上記ページを参考に pptpd-1.3.4 の rpm を作成&インスコ。
# wget http://downloads.sourceforge.net/project/poptop/pptpd/pptpd-1.3.4/pptpd-1.3.4.tar.gz?use_mirror=jaist … # (以下上記ページ内容と一緒でpptpd.spacの編集とかrpmbuildとか) … # rpm -e pptpd-1.3.3-1 # rpm -ivh /usr/src/redhat/RPMS/i686/pptpd-1.3.4-1.i686.rpm
それから設定ファイルをもう一度設定(*.rpmsaveをリネーム)して pptpd 再起動。
今度こそ接続できました。出先でローカルなsambaとか見れるのはほんとすばらしい。VNCもわざわざsshトンネリングしないですむ~(←VPNなしのときはsshトンネリングでVPNとimap/smtpに接続してた)。