如何利用Linux來連接中央大學的VPN Gateway

出自 NCUCCWiki
前往: 導覽搜尋
  • 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