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 okok表示支持
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
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已经好了,我们可以在家轻松接入公司内网进行办公了。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。