■01:夜明け前
日々の業務でクライアント様のサーバのメンテ、システムの改修・更新を行っているのですが、
その際のサーバへの接続は、VPN接続を利用しております。
VPN接続もL2TP、IPSec等いろいろあるようなのですが、クライアントのサーバが「PPTP」を実装しているため「PPTP」を使っております。
あ、ちなみにローカルマシンはWindowsXPです。(周りはalmost Macですが。。。)
そんな中、Apacheのアクセスログの自社サーバへの取り込みが必要となり、苦悩の日々が始まったのでした。
クライアントのサーバも、自社サーバもLinux(CentOS)と言う訳で、Linux - Linux間のVPN接続を実現する必要がでてきてしまったのです。
■02:探し物は何ですか?
あちこちのサイトをググった結果、「linux-pptp」なる技術で実現可能との事!
取り合えずは、Windows機にローカルにテスト環境の構築から。。。。
下記組み合わせにて環境構築しました。
・WindowsXP
・VMWare1.0.6
・CentOS5.2(kernel : 2.6.18-92.el5)
ここで注意はカーネルのバージョンは「2.6.16」以上でないと、ナント!カーネルにMPPEのパッチを当てる必要があるとのことです。
テスト機ならまだしも本番稼動マシンにカーネルのパッチを当てる勇気はありません。
おそるおそる担当者に聞いてみたところ、かろうじて自社サーバのバージョンは「2.6.16」よりも上でしたのでこの悲劇はさけることができました。(ほっ)
■03:テスト環境構築
次にローカルWindows環境に構築したCentOSにpptp clientのインストール。
pptp-clientは下記で入手しました。
<URL>
http://sourceforge.net/project/showfiles.php?group_id=33063&package_id=25151&release_id=599125
rpm -i pptp-1.7.2-3.fc1.i386.rpm
素直にインストール成功。
次に各種設定ファイルの設定
▼VPN認証用パスワード設定
—————————————
[root@localhost ppp]# pwd
/etc/ppp
[root@localhost ppp]# cat chap-secrets
# Secrets for authentication using CHAP
# client server secret IP addresses
{VPNアカウント} * {パスワード} *
—————————————
▼pppオプション設定ファイル
—————————————
[root@localhost ppp]# pwd
/etc/ppp
[root@localhost ppp]# cat options
lock
debug
nodetach
#noipdefault
#defaultroute
name {VPNアカウント}
require-mppe-128
pty “/usr/sbin/pptp {接続先VPNサーバのIP} –nolaunchpppd –loglevel 2″
—————————————
▼ppp起動時実行スクリプトファイル
/etc/ppp/ip-upに、routing tableへの登録とlftpのコマンドを設定。
—————————————
[root@localhost ppp]# pwd
/etc/ppp
[root@localhost ppp]# cat ip-up
#!/bin/bash
# This file should not be modified — make local changes to
# /etc/ppp/ip-up.local instead
PATH=/sbin:/usr/sbin:/bin:/usr/bin
export PATH
LOGDEVICE=$6
REALDEVICE=$1
TEST_IP={接続先VPNサーバのIP}
TEST_ID={接続アカウント}
TEST_PWD={接続パスワード}
[ -f /etc/sysconfig/network-scripts/ifcfg-${LOGDEVICE} ] && /etc/sysconfig/network-scripts/ifup-post –realdevice ${REALDEVICE} ifcfg-${LOGDEVICE}
/etc/ppp/ip-up.ipv6to4 ${LOGDEVICE}
[ -x /etc/ppp/ip-up.local ] && /etc/ppp/ip-up.local “$@”
/sbin/route add -host ${TEST_IP} ppp0 > /dev/null 2>&1
lftp sftp://${TEST_ID}:${TEST_PWD}@${TEST_IP} -e “mirror –delete –only-newer /home/xxxxx/xxxxx /etc/ppp/xxxxx” ${TEST_IP} > /dev/null 2>&1
#lftpを使ってサーバとローカルマシンの同期を取る。mirrorオプションを使うと便利!
exit 0
—————————————
▼crontabへの登録
直にviで書いたら駄目ですよ!
—————————————
[root@localhost ppp]# crontab -l
10 * * * * /usr/sbin/pppd
—————————————