CentOS 6.5 下PPTP VPN服務器安裝

一、CentOS 6.5 下PPTP VPN服務器安裝


1.安裝前準備


1.1 第一步:檢測是否符合pptp的搭建環境的要求
服務器環境:CentOS6.5
服務器ip地址:10.2.9.42(內網IP)


1.2 如果檢查結果沒有這些支持的話,是不能安裝pptp的。執行指令:
modprobe ppp-compress-18 && echo ok
# 顯示“ok”則表明通過


1.3 接下來還需要做另一個檢查,輸入指令:
cat /dev/net/tun
#如果這條指令顯示結果爲下面的文本,則表明通過:
//////////////////////////////////////////////
cat: /dev/net/tun: File descriptor in bad state
//////////////////////////////////////////////
# 上述兩條均通過,才能安裝pptp。否則就只能考慮openvpn,或者請vps空間商的技術客服爲你的VPS打開TUN/TAP/PPP功能了,貌似有部分vps控制面板上提供打開TUN/TAP/PPP功能的按鈕。


1.4 CentOS 6.4內核版本在2.6.15以上,都默認集成了MPPE和PPP,因此下面檢查可以忽略:
# 查詢當前系統的ppp是否默認集成了,以及ppp的版本
rpm -q ppp
# 用以下命令檢查PPP是否支持MPPE(Microsoft Point to Point Encryption,微軟點對點加密,PPTPD要求Linux內核支持mppe):
strings '/usr/sbin/pppd' | grep -i mppe | wc --lines
# 如果以上命令輸出爲“0”則表示不支持;輸出爲“30”或更大的數字就表示支持。




2.安裝相關軟件


2.1 安裝ppp和iptables
# centos默認安裝了iptables和ppp,切記將ppp先卸載後再執行這一步
yum install -y perl ppp iptables 


2.2 安裝pptpd
2.2.1 常見問題
用yum安裝ppp,有個問題,幾乎大部分的人都會在這裏遇到ppp和pptpd不兼容的錯誤。因爲yum總是安裝最新版本的ppp,那麼就需要安裝對應版本的pptpd才行(安裝錯誤爲:ppp = 2.4.4 is needed by pptpd-1.3.4-2.rhel5.x86_64)。


使用下面的命令查看ppp的版本,前提你是yum安裝的ppp。
yum list installed ppp
////////////////////////////////////////////////////////////////////////////////////////////
ppp.x86_64                2.4.5-5.el6                @anaconda-CentOS-201311291202.x86_64/6.5
////////////////////////////////////////////////////////////////////////////////////////////


所以,要對根據ppp版本選擇對應的pptpd版本。這裏我主要列出常用的。
ppp 2.4.4——————>pptpd 1.3.4
ppp 2.4.5——————>pptpd 1.4.0
ppp和pptpd各個版本的下載地址;http://poptop.sourceforge.net/yum/stable/packages/


2.2.2 安裝
# 我這裏PPP爲2.4.5-5.el6,所以下載pptpd-1.4.0-1.el6.x86_64.rpm,下載完之後執行安裝操作:
cd /usr
wget http://poptop.sourceforge.net/yum/stable/packages/pptpd-1.4.0-1.el6.x86_64.rpm
rpm -ivh pptpd-1.4.0-1.el6.x86_64.rpm




3. 配置VPN


3.1 修改/etc/ppp/options.pptpd
vi /etc/ppp/options.pptpd 
# 將dns修改爲:
///////////////////////////
ms-dns 8.8.8.8
ms-dns 8.8.4.4
///////////////////////////


3.2 修改 /etc/pptpd.conf
vi /etc/pptpd.conf
///////////////////////////
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
///////////////////////////
# VPN可以這樣理解,Linux客戶端使用一個虛擬網絡設備ppp0(Windows客戶端也可以理解成VPN虛擬網卡),連接到服務器的虛擬網絡設備ppp0上,這樣客戶端就加入了服務器端ppp0所在的網絡。 localip就是可以分配給服務器端ppp0的IP地址,remoteip則是將要分配給客戶端ppp0(或者虛擬網卡)的。
#這兩項都可以是多個IP,一般localip設置一個IP就行了,remoteip則視客戶端數目,分配一段IP。其中remoteip的IP段需要和localip的IP段一致。
#   localip和remoteip所處的IP段可以隨意些指定,但其範圍內不要包含實際網卡eth0的IP地址。一般情況下,使用上面配置文件中的配置就好使了,你需要做的只是把192.168.0.207-217這個IP區間修改成你喜歡的192.168.0.a-b,其中1<a<b<255。


3.3 修改 /etc/ppp/chap-secrets
vi /etc/ppp/chap-secrets
# 在最後一行添加:
///////////////////////////
user pptpd passwd *
///////////////////////////
# 其中pptpd和*是固定的,user是用戶名,passwd是密碼,可以添加多個用戶


# 此時,vpn服務器已經搭建好了,只是客戶端還不能訪問外網而已,所以接下來就要設置iptables,配置轉發規則了。
3.4 修改 /etc/sysctl.conf
vi /etc/sysctl.conf 
///////////////////////////
net.ipv4.ip_forward = 1
///////////////////////////
# 使設置永久生效
sysctl -p


3.5 設置nat規則
# 在root下面新建snat.sh,寫入內容並更改權限
vi /root/snat.sh
///////////////////////////
modprobe iptable_nat
modprobe ip_conntrack  
modprobe ip_conntrack_ftp  
modprobe ip_nat_ftp  


iptables -F  
iptables -X  
iptables -Z  
 
# iptables -t nat -A POSTROUTING -o em1 -s 192.168.10.0/24 -j SNAT --to 10.2.9.42
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE
///////////////////////////
# 其中-s後的地址是之前remoteip所設置的網段,-o後的網卡是當前vps可以連外網的網卡(這裏是em1,可以不填,讓其自動選擇),--to後的地址是可以連外網的ip(這裏是服務器IP,MASQUERADE是僞裝,相當於讓其自動選擇)
# 增加可執行權限
chmod a+x snat.sh




3.6 使iptables生效
sh /root/snat.sh
/etc/init.d/iptables save
/etc/init.d/iptables restart
service pptpd restart


至此,VPN服務器搭建完成。


[網速過慢] 參考 :http://wdj01.blog.51cto.com/1059856/521113
# 執行如下命令
/sbin/iptables -I FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章