如何在Ubuntu下配置PPTP VPN

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Ubuntu下配置PPTP VPN相关的知识,希望对你有一定的参考价值。

参考技术A 安装pptpd
$ sudo apt-get install pptpd

编辑配置文件:
$ sudo vi /etc/pptpd.conf

找到最下面,修改ip:
localip 你的主机ipremoteip 10.100.0.2-10

第二行为分配的ip段
设置dns
$ sudo vi /etc/ppp/pptpd-options

修改以下部分为google的dns:
ms-dns 8.8.8.8ms-dns 8.8.4.4

设置账号:
$ sudo vi /etc/ppp/chap-secrets

添加一行,依次为:用户名,服务,密码,限制ip:
"user" pptpd "user" *

重启服务:
$ sudo /etc/init.d/pptpd restart

设置IP转发
打开这个文件
$ sudo vi /etc/sysctl.conf

去掉文件中这一行的注释:
net.ipv4.ip_forward=1

使它立刻生效:
sudo sysctl -p

安装iptables,如果你还没有安装的话:
sudo apt-get install iptables

建立一个 NAT:
sudo iptables -t nat -A POSTROUTING -s 10.100.0.0/24-o eth0 -j MASQUERADE

将规则保存,使重启后规则不丢失:
sudo iptables-save >/etc/iptables-rules

若此处提示:-bash: /etc/iptables-rules: Permission denied 则可使用root用户,命令:su - 进入root用户保存
编辑网卡文件,加载网卡时自动加载规则
sudo vi /etc/network/interfaces

末尾加入:
pre-up iptables-restore </etc/iptables-rules

设置MTU,防止包过大:
sudo iptables -A FORWARD -s 10.100.0.0/24-p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1200

若设置了上条规则,记得保存:
sudo iptables-save >/etc/iptables-rules

macos 能连上,但没有任何收发包的问题,即能连接上VPN,不能上网:vpn高级里勾选发送全部流量

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

推荐阅读 点击标题可跳转







以上是关于如何在Ubuntu下配置PPTP VPN的主要内容,如果未能解决你的问题,请参考以下文章

如何在Ubuntu下配置PPTP VPN

如何在Ubuntu下配置PPTP VPN

如何在Ubuntu下配置PPTP VPN

如何在Ubuntu下配置PPTP VPN

如何在Ubuntu下配置PPTP VPN

如何在Ubuntu下配置PPTP VPN