1 虚拟专用网
1.1 PPTP介绍
PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可以通过密码验证协议(PAP)、可扩展认证协议(EAP)等方法增强安全性。可以使远程用户通过拨入ISP、通过直接连接Internet或其他网络安全地访问企业网。
1.2 虚拟专用网工作原理
1.3 虚拟专用网络隧道协议
1.PPTP协议
使用MS-CHAP v2验证方法,也可以选择安全性更好的EAP-TLS证书验证方法。身份验证完成后,之后双方所发送的数据可以利用MPPE加密法来加密,仅支持128位的RC4加密算法
2.L2TP/IPSec协议
支持IPSec的预共享密钥与计算机证书两种身份验证方法,计算机证书方法安全性较高,预共享密钥方法应仅作为测试时使用。身份验证完成后,之后双方所发送的数据则利用IPSec ESP的3DES或AES加密方法
3.SSTP协议
采用HTTPS协议,因此可以通过SSL安全措施来确保传输安全性。而HTTPS是企业普遍采用的协议。
1.4 虚拟专用网络应用场景
出差人员访问公司内部局域网
家庭办公访问公司内部局域网
总公司与分公司之间实现网络互访
企业与客户、厂商联盟之间或者是企业与银行互通
1.5 PPTP的部署
1.5.1 环境准备
1. 实验环境拓扑图
2. 实验环境规划
角色 |
外网IP地址(NAT) |
内网IP地址(LAN) |
PPTP-Client |
Eth0:192.168.1.11 |
|
PPTP-Server |
Eth0:192.168.1.242(公网) |
Eth0:172.16.30.30 |
内网FTP服务器 |
Eth0:172.16.30.31 |
3. 查看系统版本
[root@PPTP-server ~]# cat /etc/redhat-release
4. 查看主机名
[root@PPTP-server ~]# hostname
5. 关闭防火墙
[root@PPTP-server ~]# systemctl stop ebtables firewalld
[root@PPTP-server ~]# systemctl disable ebtables firewalld
6. 关闭selinux
[root@PPTP-server ~]# vim /etc/sysconfig/selinux
[root@PPTP-server ~]# setenforce 0
[root@PPTP-server ~]# getenforce
7. 给PPTP-Server第二块网卡设置IP地址。
[root@PPTP-server ~]# nmcli connection add type ethernet con-name eth1 ifname ens37 ipv4.method manual ipv4.addresses 172.16.30.30/24 ipv4.gateway 172.16.30.1
1.5.2 PPTP服务端配置
1.配置epel源, 安装PPTP 相关软件
[root@PPTP-server ~]# wget -O /etc/yum.repos.d/centos.repo http://mirrors.aliyun.com/repo/Centos-7.repo
2.安装PPTP软件包
[root@PPTP-server ~]# yum -y install epel-release ppp pptp pptpd
3.开启内核转发
(1)编辑配置文件
[root@PPTP-server ~]# vim /usr/lib/sysctl.d/00-system.conf
添加以下内容:
net.ipv4.ip_forward = 1
保存退出
(2)将配置文件中的信息刷一遍
[root@PPTP-server ~]# sysctl -p /usr/lib/sysctl.d/00-system.conf
4.配置客户端上⽹ DNS , 如客户端不需要分配 DNS 可不配置
[root@PPTP-server ~]# vim /etc/ppp/options.pptpd
5.设置 PPTP拨号的账号密码
[root@PPTP-server ~]# vim /etc/ppp/chap-secrets
# client server secret IP addresses
chenjf * chenjf123 *
6.分配 PPTP 拨号地址段, 注意和内⽹相同地址
[root@PPTP-server ~]# vim /etc/pptpd.conf
#添加本机公⽹IP(localip)
localip 192.168.1.242
#分配PPTP⽤户的内⽹⽹段(remoteip)
remoteip 172.16.30.130-200
7.启动 pptpd 服务并加⼊开机⾃启动
[root@PPTP-server ~]# systemctl start pptpd
[root@PPTP-server ~]# systemctl enable pptpd
[root@PPTP-server ~]# systemctl status pptpd
8.检查tcp1723端⼝是否开启
[root@PPTP-server ~]# ss -lntup | grep 1723
1.5.3 Windows客户端配置
1.在win7客户端ping PPTP-server外网地址
2.在客户端ping内⽹地址172.16.30.30是⽆法ping通,说明无法直接连接。
3.打开⽹络共享中⼼,点击-->设置新的连接或⽹络
4.选择连接到⼯作区域
5.使⽤Internet连接到虚拟专用网络服务
6.填写PPTP服务器IP地址以及名称,然后点击下⼀步
7.填写在PPTP-Server上配置好的⽤户名以及密码, 然后点击连接
8.PPTP连接成功
9.测试是否能够连接172.16.30.31这台内⽹服务器
10.打开文件资源管理器在路径栏输入ftp://172.16.30.31
11.打开网络设备器查看ppp网卡IP地址
12.pptp默认连接是会通过pptp的默认⽹关来进⾏上⽹,若我们想通过自己本地网关访问上网,我们取消默认使⽤拨号连接上⽹功能即可
13.断开pptp拨号连接即可使用本地网关上网
14.打开浏览器访问一下www.baidu.com
1.5.4 Linux客户端配置
1.以 CentOS7.5 为客户端安装软件包
[root@pptp-client ~]# yum -y install ppp pptp pptp-setup
2.客户端连接×××服务端
运⾏ pptpsetup --create test --server SERVER_IP --username ⽤户名 --password 密码 --encrypt --start 连接 PPTP 服务端。
您需要填写实际配置pptp 服务端的 IP 地址、⽤户名和密码。
[root@PPTP-client ~]# pptpsetup --create test --server 192.168.1.242 --username chenjf --password chenjf123 --encrypt --start
3.检查分配地址段
[root@PPTP-client ~]# ifconfig | grep -A 5 ppp
4.添加默认路由
[root@PPTP-client ~]# ip route replace default dev ppp0
5.我们可以ping 172.16.30.31 ssh [email protected]
此时证明PPTP拨号连接成功。
1.5.5 pptp连接故障
如下这类错误和pptp客户端拨号提示连接691错误类似
1. 检查 ebtables和selinux,以及客户端防⽕墙。
systemctl status ebtables #查看ebtables防火墙的运行状态
systemctl status firewalld #查看firewall防火墙的运行状态
2. 如果是云主机请检查安全组⼊⼝和出⼝是否运⾏1723端⼝访问。
3. 如果是物理主机需要向IDC了解是否关闭此端⼝, 或路由不⽀持此协议。