:::

Linux VPN 設定

下載並安裝 pptp client 的軟體,這個軟體可以由http://pptpclient.sourceforge.net/取得,只需要安裝 pptp-linux (我們是使用 1.2.0 版) 即可,pppd 並不需換 ppp-mppe 的版本。在 /etc/ppp/pap-secrets 要加入登入的帳號密碼,如帳號叫 john 密碼是 secret時,可以加一行如下:

"john" * "secret" *

這些都準備好之後可以試著連線:(用 root 帳號)pptp vpngate.cc.ncu.edu.tw updetach defaultroute lock name john它可能會出現如下畫面

Using interface ppp0
Connect: ppp0 <---> /dev/pts/0
Remote message: Login ok
Deflate (15) compression enable
local IP address 211.76.253.3
remote IP address 211.76.253.1

由於 default gateway 如果已經預設,就會使 ppp 的連線無法成為預設,為了方便起見,我們寫了一個簡單的 Shell Script 來幫助使用者設定開始/結束使用 VPN 的連線,/etc/ppp/pap-secrets 還是要加入帳號及密碼,但在連線時只要下vpn.sh startACCOUNT="john" vpn.sh start的指令就可以開始進行 VPN 的連線動作,要結束連線時,也只要打vpn.sh stop就可以回復原來的連線


以上在 Redhat Linux 7.2 ~ 9.0 上測試過

以下是vpn.sh的內容
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin

. /etc/sysconfig/network

[ "$VPNHOST" = "" ] && VPNHOST="140.115.17.144"
[ "$ACCOUNT" = "" ] & ACCOUNT="guest"

running=0

pidof pptp > /dev/null
[ "$?" -eq 0 ] & running=1

case "$1" in
'start')
if [ $running -eq 1 ]; then
echo VPN is running
else
route add ${VPNHOST} gw ${GATEWAY}
route delete default gw ${GATEWAY}
pptp ${VPNHOST} updetach defaultroute lock name ${ACCOUNT}

if [ "$?" -ne 0 ]; then
route add default gw ${GATEWAY}
route delete ${VPNHOST} gw ${GATEWAY}
fi
fi
;;

'stop')
if [ $running -eq 1 ]; then
killall pptp
route add default gw ${GATEWAY}
route delete ${VPNHOST} gw ${GATEWAY}
else
echo VPN is not running
fi
;;

*)
echo "Usage: $0 { start | stop }"
exit 0
;;
esac

Last updated on Feb-26-2003 by Jiann-Ching Liu