2007年10月11日 星期四

[轉載]安裝及架設VPN-PPTP

安裝及架設VPN-PPTP
作者: zoob (vincent@myunix.adsldns.org)
版權聲明:可以任意轉載,轉載時請務必標明原始出處和作者資訊

前言
PoPToP是在Linux上建置VPN的其中一種方法,它可以讓Linux、Windows 95、98、NT、2000可利用現有套件簡單的撥號網路與VPN Server建立安全的VPN通道。目前可支援40及128位元的加密方式。PoPTop是適用於GPL授權方式的軟體。

PoPToP的首頁: http://www.moretonbay.com/con/pptp.html

安裝環境
Redhat 7.3(Kernel 2.4.20)
PPP-2.4.1
PPTP-1.1.4

一、設定及啟動PPP、PPTP
安裝PPP
(1)首先請先至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-3mppe.src.rpm
(2)rpm -ivh ppp-2.4.1-3mppe.src.rpm
(3)cd /usr/src/redhat/SOURCE
(4)解壓縮ppp-mppe-2.4.1.tar.gz
(5)cd ppp-mppe-2.4.1
(6)./configure;make;make install

安裝pptpd
(1)首先請先至 http://sourceforge.net/project/showfiles.php?group_id=44827 下載 pptpd-1.1.4-b3.tar.gz
(2)解壓縮pptpd-1.1.4-b3.tar.gz
(3)./configure;make;make install
設定/etc/ppp/chap-secrets
增加帳號及密碼,範例如下:
代碼:
# Secrets for authentication using CHAP
# client server secret IP addresses
vincent * 1234 *

設定/etc/pptpd.conf

範例如下:
代碼:
debug
option /etc/ppp/options.pptp
localip 192.168.0.1
remoteip 192.168.1.1-100
註:localip和remoteip的最大連接數為100個,超過的話,將會忽略連接要求

設定/etc/ppp/options.pptp
此處的檔案名稱可隨意取名,但是須與/etc/pptpd.conf裡面的option選項的檔案相符合,範例如下:
lock
debug
auth
+chap
proxyarp

Enable IPforward
代碼:
echo 1 > /proc/sys/net/ipv4/ip_forward

啟動pptpd
代碼:
pptpd -d
注意/var/log/messages有無錯誤訊息
啟動成功後,會多出一interface,叫做ppp0

二、PPP+MPPE

重新編譯Kernel
從 http://public.planetmirror.com/pub/mppe/ 下載linux-2.4.19-openssl-0.9.6b-mppe.patch.gz
(1)cd /usr/src/linux-2.4.20
(2)zcat /tmp/linux-2.4.19-openssl-0.9.6b-mppe.patch.gz | patch -p1
(3)開始compile kernel,這裡不加以敘述過程
請注意在compile kernel,在Network Device裡,一定要將下列項目編譯為Modules
PPP support for async serial ports
PPP support for sync tty ports
PPP Deflate compression
PPP BSD-Compress compression

(4)Compile Kernel完畢後,請在/etc/modules.conf加入以下敘述
alias char-major-108 ppp_generic
alias /dev/ppp ppp_generic
alias tty-ldisc-3 ppp_async
alias tty-ldisc-14 ppp_synctty
alias ppp-compress-18 ppp_mppe
alias ppp-compress-21 bsd_comp
alias ppp-compress-24 ppp_deflate
alias ppp-compress-26 ppp_deflate

(5)重新開機
(6)重新編譯ppp
請至 http://public.planetmirror.com/pub/mppe/ 下載 ppp-2.4.1-MSCHAPv2-fix.patch.gz 至 /tmp目錄
1. 至 /usr/src/redhat/SOURCE/ppp-mppe-2.4.1目錄下執行以下指令
代碼:
zcat /tmp/ppp-2.4.1-MSCHAPv2-fix.patch.gz | patch -p1
./configure
make
make install

(7)修改/etc/ppp/options.pptp
lock
debug
proxyarp
auth
+chap
+chapms
+chapms-v2
mppe-40
mppe-128
mppe-stateless
ms-wins 192.168.1.2
ms-dns 192.168.1.2

(8)重新啟動pptpd daemon
代碼:
killall pptpd;pptpd -d

(9)建立VPN-PPTP連線
Windows 2000、XP

新增Windows 2000的「虛擬私人連線」

1.新增連線
「桌面」->在「網路上芳鄰」按滑鼠右鍵->「內容」->「建立新連線」->「透過Internet連線到私人網路」->輸入主機名稱(192.168.0.1)->完成

2.設定連線

請將勾選連線內容裡「安全性」的「要求資料加密」->「確定」

3.測試連線

Double Click該連線,輸入「使用者名稱」及「密碼」->連線

連線成功後,會多出一虛擬介面叫做「PPP adapter 虛擬私人連線:」
它的Ip address為192.168.1.xx

檢查是否能ping到192.168.0.1及192.168.1.0其它的ip

在右下角的網路連線圖示裡,點選滑鼠右鍵->選擇「狀態」->選擇「詳細資料」

此時的內容應該為
伺服器類型 PPP
傳輸 TCP/IP
驗證 MS CHAP V2
加密 MPPE 128
壓縮 無
PPP多重連結架構 關閉
伺服器IP位址 192.168.0.1
用戶端IP位址 192.168.1.1

1.開啟撥號網路->建立新的連線->裝置請選擇Microsoft VPN Adapter->輸入PPTP Server(192.168.0.1)->完成

2.使用滑鼠右鍵點選剛剛建立的VPN連線->選取內容->選擇伺服器類型->勾選密碼加密->取消勾選Netbeui和Ipx/Spx->確定

3.點選VPN連線->輸入使用者名稱及密碼
4.完成

參考文件網址
http://www.poptop.org/
http://pptpclient.sourceforge.net/
http://public.planetmirror.com/pub/mppe/

註1:PPTP是走Protocol 47的GRE protocol,請記得在防火牆開啟此規則
註2:如要看到網路上的芳鄰時,請在/etc/ppp/options.ppp指定ms-wins選項即可
註3:為何無法連線至192.168.1.1以外的電腦?

請啟動ip_forward及proxyarp.....

檢查一下 /etc/sysctl.conf 這個檔案﹐看看 ‘net.ipv4.ip_forward=’是否為‘1’。如果是﹐跳到下一步﹔如果不是﹐將之改成‘1’﹐存檔﹐然後執行 ﹕
sysctl -w net.ipv4.ip_forward=1
Tips﹕上面這步驟是將 ip_forward 功能打開﹐您也可以用如下句子來完成﹕
echo "1" > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o ppp0 \
-s 192.168.100.0/24 -j MASQUERADE
就這樣﹐您就可以讓 NAT 後面的內部網路的機器連上 Internet 了

沒有留言: