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

出自 NCUCCWiki
前往: 導覽搜尋
  • FreeBSD VPN 設定

step 1  : 安裝vpn的client 請先利用ports 安裝pptpclient

# cd /usr/ports
#make search key=pptp

之後可以找到pptpclient所在之位置,切換到該目錄下

#make install

step 2  : 設定ppp.conf

請先參考位於/usr/local/share/examples/pptpclient下的README檔

然後可以把位於該目錄下的ppp.conf的範例檔先cp到 /etc下的ppp目錄下編輯

#cp /usr/local/share/examples/pptpclient/ppp.conf /etc/ppp/ppp.conf
#cd /etc/ppp/
#ee ppp.conf
vpn:  ------------------------------------------識別標籤 (自己取一個吧!)
set authname u0058500 --------------------sparc帳號
set authkey 12345 --------------------------sparc密碼
set timeout 0
set ifaddr 0 0
add 211.76.254.0/24 HISADDR  --------------- 學校開放的ip/port 
alias enable yes

編輯好之後,更改它的權限,以確保這個檔案中的密碼不是每個使用者都能看到

#chmod 640 ppp.conf

step 3  : 啟動 pptpclient

識別標籤(請務必使用在ppp.conf中所定義的識別標籤)

# /usr/local/sbin/pptp 140.115.11.243 vpn 

學校vpn server的Ip

如果想要檢查是不是真的有跑起來,可以下這個指令

# ifconfig

如果有成功連接上可以看見下列這些訊息:

tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> mtu 1500
inet 211.76.254.24 --> 211.76.254.1 netmask 0xffffffff
Opened by PID 3561

step 4 : 更改預設gateway

如果沒有更改預設gateway,在連接網路時會從原本預設的gateway出去,而不是從VPN

# sudo route delete default 140.115.1.254
# sudo route add default 211.76.254.1

如果要檢查是否有成功更改gateway,可以下這個指令:

# netstat –nr 

如果成功應該可以看到最上面有:

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            211.76.254.1       UGSc        1       16   tun0
# traceroutewww.yahoo.com.tw
traceroute to rc.yahoo.akadns.net (66.218.71.198), 64 hops max, 44 byte packets
1        v254-1.NTCU.net (211.76.254.1)  3.003 ms  1.994 ms  1.150 ms

以上啟動還有更改gateway的所有步驟,我們都可以用一個script來幫我們完成:

# ee pptp.sh
#/bin/sh
case "$1" in
start)
        /usr/local/sbin/pptp 140.115.11.243 vpn &
            y=0
           while [ $y -lt 4000 ]
           do
            y=` echo "$y+1" | bc  `
           done
           netstat -rn | grep 211.76.254.1 | wc -l
           sudo route delete default 140.115.1.254
           x=0
           while [ $x -lt 500 ]
           do
            x=` echo "$x+1" | bc  `
           done
           route add default 211.76.254.1
       ;;
stop)
             killall pptp
             i=0
             while [ $i -lt 500 ]
             do
               i=`echo "$i+1" | bc`
             done
             route add default 140.115.1.254
             echo VPN stop
             ;;
*)
     echo "Usage : ^ Basename $0 {start|stop}" >&2
     ;;
esac

然後再更改這個script的權限

# chmod 755 pptp.sh

這樣以後如果要啟動vpn只需要下這個指令就可以了

# sudo ./pptp.sh start

要停止VPN就下這個指令

#sudo ./pptp.sh stop