目的:
構建一台單網卡Linux網關(透明代理),該網關撥入某海外VPN伺服器,用戶端設定該網關後,網路出口則為海外VPN伺服器,實現加速訪問一些網站的目的。
環境資訊:
硬體:DELL機器一台,單網卡(IP:10.39.100.253);
機器名:VpnGW
作業系統:CentOS 6.0 Kernel Linux 2.6.32-71.el6.i686
網路環境:區域網路防火牆需允許該機器使用PPTP協議撥入某公網IP
安裝步驟:
一. 安裝作業系統,設定IP,機器名,可關閉防火牆,SELinux;
修改主機名稱:設定CentOS主機名稱的設定檔為:/etc/sysconfig/network
修改hosts檔案:修改/etc/hosts檔案
關閉SELinux: 修改/etc/sysconfig/selinux
SELINUX=disabled #這是最標準的方式
設定系統使用EPEL源:
CentOS 6.x 32-bit (x86/i386):
rpm –Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-5.noarch.rpm
CentOS 6.x 64-bit (x64):
rpm –Uvh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-5.noarch.rpm
二. 安裝軟體;
檢查ppp, pptp, pptp-setup的安裝情況,沒有則yum install;
三. 使用pptpsetup命令建立VPN節點;
pptpsetup命令用法及說明:
pptpsetup --create <TUNNEL> --server <ip address/hostname> [--domain <DOMAIN NAME>] --u sername <USERNAME> [--password <PASSWORD>] [--encrypt] [--start]pptpsetup –delete <TUNNEL> 刪除一個節點
Options:
* <TUNNEL> 建立的串連名稱,自指定。
* <SERVER> PPTP SERVER的IP或網域名稱。
* <DOMAIN> 所在的域,很多Windows的伺服器都是使用“域”來管理認證的。
* <USERNAME> VPN 使用者名稱(域使用者名稱)
* <PASSWORD> VPN上使用者密碼,也可以沒這個參數,命令稍後會自動詢問,這樣保證帳號安全
* –encrypt 表示啟用加密,不必指定加密方式,命令會讀取設定檔中的加密方式
* 當沒使用–encrypt 串連時出現下面的錯誤時,表示使用了加密,這點也可以和VPN的管理員聯絡確認一下,遇到下面的情況可以加上該參數。
* CHAP authentication succeeded
* LCP terminated by peer (ZM-76-^@<M-Mt^@^@^BM-f ) 類似亂碼
* –start 建立串連完後馬上串連。
運行該命令後實際上建立了兩個設定檔:
/etc/ppp/chap-secrets
/etc/ppp/peers/串連名
設定檔 /etc/ppp/peers/串連名 需要做些修改,我的如下:
# written by pptpsetup pty "pptp 10.39.100.2 --nolaunchpppd"lock noauth nobsdcomp nodeflate name csnj\\administrator remotename csvpn ipparam csvpn #defaultroute #使用本串連作為預設路由,本文單網卡沒意義,可以不添加,說明見附錄 persist #當串連丟失時讓pppd再次撥號,已驗證 require-mppe-128refuse-pap refuse-chap refuse-eap refuse-mschap