說明:公司原vpn伺服器使用windows2003,放在內部通訊RTX伺服器上,由於公司人員增多,RTX在線人數相應增加,VPN伺服器出現經常不能撥入或撥入后不能訪問相關應用情況.
為確保VPN服務穩定,現將服務遷移到linux平台.
源碼包下載地址:http://sourceforge.net/
官方安裝手冊及RPM包下載地址:http://poptop.sourceforge.net/dox/replacing-windows-pptp-with-linux-howto.phtml
參照如下鏈接:http://blog.doylenet.net/?p=17
http://lihuipeng007.blog.163.com/blog/static/121084388201061510549623/
一、先查看操作系統
[root@dic172 ~]# cat /etc/issue #查看系統版本
CentOS release 5.6 (Final)
Kernel \r on an \m
[root@dic172 ~]# getconf LONG_BIT #查看操作系統位數
32
[root@dic172 ~]# uname -a
Linux dic172 2.6.18-238.12.1.el5 #1 SMP Tue May 31 13:23:01 EDT 2011 i686 i686 i386 GNU/Linux
備註:內核版本在2.6.15后的默認都已經有了MPPE(Microsoft Point to Point Encryption,微軟點對點加密)補丁,不需要再安裝dkms和kernel_ppp_mppe內核補丁.
二、CentOS release 5.6默認已經安裝PPP軟體包
[root@dic172 ~]# modprobe ppp-compress-18 && echo success #查看PPP模塊是否載入成功
[root@dic172 ~]# lsmod |grep ppp
ppp_mppe 10437 0
ppp_generic 30037 1 ppp_mppe
slhc 10433 1 ppp_generic
三、檢查PPP是否支持MPPE,如果以下命令輸出為“0”則表示不支持;輸出為“30”或更大的數字就表示支持
[root@dic172 ~]# strings '/usr/sbin/pppd' |grep -i mppe |wc --lines
42
四、開始安裝pptpd
[root@dic172 media]# cp pptpd-1.2.3-1.i386.rpm /usr/src/
[root@dic172 media]# cd /usr/src
[root@dic172 src]# rpm -ivh pptpd-1.2.3-1.i386.rpm
Preparing... ########################################### [100%]
1:pptpd ########################################### [100%]
五、修改配置文件如下
step1: 修改/etc/pptpd.conf
[root@dic172 etc]# grep -v "#" pptpd.conf
ppp /usr/sbin/pppd
option /etc/ppp/options.pptpd #PPP組件將使用的配置文件
debug /var/log/messages #把所有debug信息記入系統日誌/var/log/messages
stimeout 60 #開始PPTP控制連接的超時時間,以秒計
localip 192.168.100.172 #VPN伺服器地址,即伺服器本地公網IP
remoteip 192.168.101.1-234 #VPN客戶端連接成功后所獲得的IP地址池
備註:要註釋logwtmp,不然客戶端撥號連接時,報619錯誤,不知道啥原因?
step2: 修改/etc/ppp/options.pptpd
[root@dic172 etc]#
grep -v "#" ppp/options.pptpdlock
debug
nologfd
name dic172 #伺服器名
nobsdcomp
proxyarp
refuse-pap
refuse-mschap
require-mschap-v2
require-mppe-128
ms-dns 202.96.134.133
step3: 修改/etc/ppp/chap-secrets
[root@dic172 etc]# grep -v "#" ppp/chap-secrets
test dic172 "test" *
#用戶名 服務名 密碼 IP
step4: 修改內核參數,開啟IP轉發功能
[root@dic172 etc]# vi sysctl.conf
net.ipv4.ip_forward = 1 #開啟路由轉發功能
[root@dic172 etc]# sysctl –p #使內核參數修改生效
六、在cisco2821路由器上做一個映射,將vpn伺服器1723埠映射到公網
ip nat inside source static tcp 192.168.100.172 1723 202.105.137.115 1723 extendable
七、關閉防火牆,啟動pptpd服務,查看服務所用埠
[root@dic172 etc]# service iptables stop
[root@dic172 etc]# service pptpd start
Starting pptpd: [ OK ]
[root@dic172 etc]# netstat -antp |grep pptpd
tcp 0 0 0.0.0.0:1723 0.0.0.0:* LISTEN 651/pptpd
tcp 0 0 192.168.100.172:1723 192.168.163.96:60109 ESTABLISHED 494/pptpd [192.168.
tcp 0 0 192.168.100.172:1723 192.168.161.173:1257 ESTABLISHED 553/pptpd [192.168.
[root@dic172 etc]# ifconfig -a #可查看到
eth0 Link encap:Ethernet HWaddr 00:0C:29:C3:66:8D
inet addr:192.168.100.172 Bcast:192.168.161.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fec3:668d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:73388 errors:0 dropped:0 overruns:0 frame:0
TX packets:5656 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5754576 (5.4 MiB) TX bytes:735684 (718.4 KiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2295 errors:0 dropped:0 overruns:0 frame:0
TX packets:2295 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:4081876 (3.8 MiB) TX bytes:4081876 (3.8 MiB)
ppp0 Link encap:Point-to-Point Protocol
inet addr:192.168.100.172 P-t-P:192.168.1.1 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:54 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:4998 (4.8 KiB) TX bytes:120 (120.0 b)
ppp1 Link encap:Point-to-Point Protocol
inet addr:192.168.100.172 P-t-P:192.168.1.2 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1396 Metric:1
RX packets:48 errors:0 dropped:0 overruns:0 frame:0
TX packets:9 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:3
RX bytes:11774 (11.4 KiB) TX bytes:120 (120.0 b)
sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 b) TX bytes:0 (0.0 b)
-------------------------------------------------------------
在完成VPN服務端配置后,windows客戶端撥vpn相當簡單,在此不做說明.但公司內網有部分linux伺服器也需要撥vpn調用vpn網段伺服器數據.如下配置PPTP VPN客戶端配置
step1: 先檢查vpn客戶端是否安裝以下包
[root@rac1 ppp]# rpm -qa |grep ppp
ppp-2.4.4-2.el5
rp-pppoe-3.5-32.1
step2: 下載pptp-1.7.2-3.rhel5.src.rpm 源碼rpm包,可解決包依賴性問題
[root@tydic5f15 src]# wget http://nchc.dl.sourceforge.net/project/pptpclient/pptp/pptp-1.7.2/pptp-1.7.2-3.rhel5.src.rpm
[root@tydic5f15 src]# rpmbuild --rebuild pptp-1.7.2-3.rhel5.src.rpm #.src.rpm包安裝方法
[root@tydic5f15 peers]# cd /usr/src/redhat/RPMS/x86_64/
[root@tydic5f15 x86_64]# rpm -ivh pptp-1.7.2-3.x86_64.rpm pptp-debuginfo-1.7.2-3.x86_64.rpm
step3: 生成vpn客戶端配置文件並做相應修改
[root@tydic5f15 x86_64]# pptpsetup --create intvpn --server 202.105.139.114 --username test --password test #此步可生成vpn連接文件
命令 vpn連接名 伺服器地址 用戶名 密碼
[root@tydic5f15 peers]# pwd
/etc/ppp/peers
[[root@tydic5f15 peers]# cat intvpn #intvpn是由pptpsetup --create命令生成,再修改內容如下
# written by pptpsetup
pty "pptp 202.105.139.114 --nolaunchpppd"
lock
#noauth
nobsdcomp
nodeflate
name test
remotename intvpn
ipparam intvpn
require-mppe-128
refuse-pap
refuse-chap
refuse-eap
refuse-mschap
step4: vpn客戶端撥入
[root@tydic5f15 peers]# cp /usr/share/doc/ppp-2.4.4/scripts/pon /usr/sbin/
[root@tydic5f15 peers]# cp /usr/share/doc/ppp-2.4.4/scripts/poff /usr/sbin/
[root@tydic5f15 peers]# chmod x /usr/sbin/pon /usr/sbin/poff
[root@tydic5f15 peers]# pon intvpn #連接intvpn,斷開VPN用poff intvpn
[root@tydic5f15 peers]# ifconfig #可查看到多了一個ppp0
step5: 完成以上操作后,vpn拔號成功,但此時只能連接VPN伺服器,而不能訪問與VPN同段的應用伺服器,需要添加以下路由
[root@tydic5f15 peers]# route add 192.168.100.172 gateway 192.168.100.1
[root@tydic5f15 peers]# route add -net 192.168.100.0 netmask 255.255.255.0 dev ppp0
完成以上配置后,已基本滿足應用!
疑問:如何設置讓vpn客戶端定期自已修改密碼,讓vpn撥入更安全?
[火星人 ] CentOs5.5配置pptp vpn服務端及客戶端已經有843次圍觀