vlambda博客
学习文章列表

Centos下如何搭建PPTP VPN 服务器



Centos下如何搭建PPTP VPN 服务器

前言:

在介绍pptp VPN之前我们先来了解一下隧道技术

        隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。

目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,我们这里只介绍点到点隧道协议PPTP。

PPTP协议原理

PPTP使用一个TCP连接对隧道进行维护,使用通用路由封装(GRE)技术把数据封装成PPP数据桢通过隧道传送。可以对封装PPP桢中的负载数据进行加密或压缩。

下边简单描述PPTP 过程中涉及的封装和解封步骤。

1.数据封装于IP(或IPX和NetBEUI)封包中。
2.该IP(或IPX和NetBEUI)封包封装在PPP帧中。
3.该PPP 帧封装在GRE 帧中(并加密)。
4.该GRE 帧封装在IP 封包中。

解封

1.移除IP 包头。
2.移除GRE 包头(解密过程)。GRE负载中是一个PPP帧。
3.移除PPP 包头。
4.将该IP(或IPX和NetBEUI)封包路由到其最终的目的地。

MPPE将通过由MS-CHAP、MS-CHAP v2或EAP-TLS身份验证过程所生成的加密密钥对PPP帧进行加密。为对PPP帧中所包含的有效数据进行加密,虚拟专用网络客户端必须使用MS-CHAP、MS-CHAP v2或EAP-TLS身份验证协议。PPTP将利用底层PPP加密功能并直接对原先经过加密的PPP帧进行封装。

PPTP协议将控制包与数据包分开,控制包采用TCP控制,客户端连接到VPN服务器TCP1723端口,用于控制和管理VPN隧道的功能。;数据包部分先封装在PPP协议中,然后封装到GRE V2协议中,最后封装到IP协议中传送。

实验环境

  • VMware Workstation
  • 一台CentOS7,内网IP(仅主机模式):192.168.64.129,外网IP(NAT模式):192.168.226.128
  • 一台Windows10,内网IP(仅主机模式):192.168.64.128

检查网络连通性,CentOS上执行以下命令:

# 检查centos到windows之间的网络连通性
ping -c 5 192.168.64.128
# 检查centos到互联网的网络连通性
ping -c 5 www.baidu.com

Centos下如何搭建PPTP VPN 服务器

安装pptpd软件包

yum install -y epel*
yum install -y ppp pptpd

修改配置文件options.pptpd

vim /etc/ppp/options.pptpd

Centos下如何搭建PPTP VPN 服务器

修改配置文件pptpd.conf

vim /etc/pptpd.conf
查找ppp选项,解除本行注释

Centos下如何搭建PPTP VPN 服务器

查找localip选项和remoteip选项

Centos下如何搭建PPTP VPN 服务器

修改chap-secrets配置文件,添加登录用户

vim /etc/ppp/chap-secrets
其中,client代表用户名,secret表示密码,IP addressses表示允许登录的IP地址(*代表不限制登录IP)

Centos下如何搭建PPTP VPN 服务器

启动服务

systemctl restart pptpd
systemctl status pptpd

关闭防火墙

setenforce 0
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --state

开启Linux的路由功能

iptables -A FORWARD -i ens34 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

解释(ens34为内网网卡,ens33为外网网卡):

  • 第一条命令:让发送至内网网卡的数据全部通过
  • 第二条命令:修改数据报头信息
  • 第三条命令:开启Linux的路由功能
  • 第四条命令:查看是否启用了路由功能,1代表启用,0代表禁用
  • 具体命令需要根据自己的网卡名称进行修改

设置开机自启

将 开启Linux路由功能 的命令写成shell脚本

vim /root/nat.service

添加如下内容(具体命令需要根据自己的网卡名称进行修改):

#!/bin/bash
iptables -A FORWARD -i ens34 -j ACCEPT
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o ens33 -j MASQUERADE
echo 1 > /proc/sys/net/ipv4/ip_forward
cat /proc/sys/net/ipv4/ip_forward

添加可执行限权

chmod +x /root/nat.service

将脚本添加到开机自启目录

echo -e "/bin/bash /root/nat.service" >> /etc/rc.local
chmod +x /etc/rc.local

添加pptpd服务开机自启

systemctl enable pptpd
Windows10上配置连接V_P_N

设置里,选择网络和Internet

Centos下如何搭建PPTP VPN 服务器

设置新的连接或网络连接到工作区

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器


输入用户名密码,点击连接

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

查看连接状态

Centos下如何搭建PPTP VPN 服务器

Centos下如何搭建PPTP VPN 服务器

检查互联网的连通性

Centos下如何搭建PPTP VPN 服务器

访问网页

Centos下如何搭建PPTP VPN 服务器

参考链接:https://www.cnblogs.com/connect/p/linux-service-virtual-private-network.html

推荐阅读 点击标题可跳转