vpn之pptp服务器实现远程访问

之前介绍过通过openvpn实现远程接入到公司内网,但是openvpn服务器配置比较麻烦而且还需要安装客户端软件,而pptp配置简单,并且客户端直接新建vpn连接即可,用起来较之方便很多。

下面就来介绍下吧:

公司公网ip:222.12.45.11 (假设)

pptp服务器:192.168.3.16

pptp部署前所需要了解:

1.dkms:可以维护内核外的驱动程序,动态加载和卸载所需模块

2.kernel_ppp_mppe:pptp与mppe技术提供了用以对保密数据进行封装与加密的vpn服务器。mppe通过ms-chap、ms-chap v2身份验证过程所生成的机密密钥对ppp帧进行加密

3.ppp:pptp使用该协议对用户数据进行封装,然后将ppp数据帧封装到ip数据包里,经由ip网络传播。

4.pptpd:服务端软件

5.pptp协议号:47

6.pptp端口号:1723

7.tup/tap:实现隧道包封装


部署:

1.检查服务器是否支持ppp协议

[yanggd@vpn ~]$ modprobe ppp-compress-18 && echo ok 
ok
ok表示支持

2.检查ppp是否支持mppe

[yanggd@vpn ~]$ strings '/usr/sbin/pppd'|grep -i mppe|wc --lines
42
输出为0表示不支持;为30或更大的数字表示支持

3.检查服务器是否支持tup/tap

[root@MyServer ~]# cat /dev/net/tun
cat: /dev/net/tun: File descriptor in bad state # 返回这个结果表示已经正确安装配置了TUN/TAP
cat: /dev/net/tun: No such device# 返回这个结果,表示没有正确装配TUN/TAP,请自己装配下。
4.下载相关yum源并安装

[root@vpn yanggd]# rpm -Uvh http://poptop.sourceforge.net/yum/stable/rhel6/pptp-release-current.noarch.rpm 
[root@vpn yanggd]# yum install pptp dkms ppp


配置pptp

1.设置客户端的ip

[root@vpn yanggd]# vim /etc/pptpd.conf
option /etc/ppp/options.pptpd
debug
logwtmp
localip 192.168.3.2				#pptp服务器端的虚拟ip
remoteip 192.168.3.3-225		#pptp客户端的地址池

2.修改pptp的加密协议及客户端的dns

[root@vpn yanggd]# vim /etc/ppp/options.pptpd 
name pptpd						#服务名称,若修改需要和其他配置保持一致
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2				#使用mschap-v2加密
require-mppe-128				#使用mppe加密
ms-dns 8.8.8.8				#为客户端添加主dns
ms-dns 8.8.4.4				#为客户端添加备dns
proxyarp
lock
nobsdcomp 
novj
novjccomp
nologfd

3.pptp用户的密码分配及访问限制

[root@vpn yanggd]# vim /etc/ppp/chap-secrets 
# Secrets for authentication using CHAP
# client	server				secret			IP addresses
test     	*       			test_123        192.168.3.44		
test1     	*       			test_456        *
#用户名		限定登陆的ip		密码			客服端连接成功所分配的ip

5.开启服务器的系统路由模式,支持包转发

[root@vpn yanggd]# vim /etc/sysctl.conf  
net.ipv4.ip_forward = 1 
[root@vpn yanggd]# sysctl -p

6.设置防火墙策略

/sbin/iptables -A INPUT -i eth0 -p gre -m comment --comment "pptp--gre" -j ACCEPT
#允许pptp的47号协议:gre,注意不是47端口
/sbin/iptables -A INPUT -i eth0 -p tcp -m multiport --dport 1723 -m comment --comment "pptp--gre" -j ACCEPT
#开启pptp的1723端口
/sbin/iptables -A FORWARD -p tcp --syn -i ppp+ -j TCPMSS --set-mss 1356
#若pptp成功连接后不能够正常上网或上网有的网页能打开,是因为报文问题

7.在内网网关做下端口映射,将内网pptp的1723端口映射到公网ip上,这样我们就可以通过远程连接pptp来建立vpn了。


有的内网用户需要做snat才能上网:

/sbin/iptables -t nat -A POSTROUTING -s 192.168.3.0/24 -p tcp --dport 1723  -j SNAT --to-source 222.12.45.11 


客户端配置:

1.新建连接

技术分享


2.选择加密协议

技术分享


正常连接后,我们可以看到pptp服务器已经建立连接并生成虚拟ip了

[root@vpn yanggd]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP qlen 1000
    link/ether 00:50:56:87:3b:96 brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.16/24 brd 10.10.255.255 scope global eth0
    inet6 fe80::250:56ff:fe87:3b96/64 scope link 
       valid_lft forever preferred_lft forever
36: ppp0: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1396 qdisc pfifo_fast state UNKNOWN qlen 3
    link/ppp 
    inet 192.168.3.2 peer 192.168.3.2/32 scope global ppp0

当然,客户端也会生成一个虚拟ip,这里就不贴图了。


ok,现在vpn已经好了,我们可以在家轻松接入公司内网进行办公了。


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。