如何在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 服务器
前言:
隧道技术的基本过程是在源局域网与公网的接口处将数据(可以是ISO 七层模型中的数据链路层或网络层数据)作为负载封装在一种可以在公网上传输的数据格式中,在目的局域网与公网的接口处将数据解封装,取出负载。被封装的数据包在互联网上传递时所经过的逻辑路径被称为“隧道”。
目前VPN隧道协议有4种:点到点隧道协议PPTP、第二层隧道协议L2TP、网络层隧道协议IPSec以及SOCKS v5,我们这里只介绍点到点隧道协议PPTP。
PPTP协议原理
下边简单描述PPTP 过程中涉及的封装和解封步骤。
封装
解封
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
安装pptpd软件包
yum install -y epel*
yum install -y ppp pptpd
修改配置文件options.pptpd
vim /etc/ppp/options.pptpd
修改配置文件pptpd.conf
vim /etc/pptpd.conf
查找ppp选项,解除本行注释
查找localip选项和remoteip选项
修改chap-secrets配置文件,添加登录用户
vim /etc/ppp/chap-secrets
其中,client代表用户名,secret表示密码,IP addressses表示允许登录的IP地址(*代表不限制登录IP)
启动服务
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
设置新的连接或网络连接到工作区
输入用户名密码,点击连接
查看连接状态
检查互联网的连通性
访问网页
参考链接:https://www.cnblogs.com/connect/p/linux-service-virtual-private-network.html
以上是关于如何在Ubuntu下配置PPTP VPN的主要内容,如果未能解决你的问题,请参考以下文章