Centos7.5 系统使用pptpd搭建服务器
一、×××介绍
×××(Virtual Private Network),虚拟专用网络,主要是在公用网络上建立专用网络,进行加密通讯。在企业网络中得到广泛应用。×××网关通过对数据包的加密和数据包目标地址的转换实现远程访问。×××有多种分类方式,主要是按照协议进行分类。
×××协议主要分为ppp协议、pptp协议、l2tp协议等。
(1)、PPP协议
ppp协议支持多种网络协议,可以把IP、IPX、AppleTalk或NetBEUI的数据包封装在PPP包中,将整个报文封装在PPTP(Point-to-Point Tunneling Protocol)隧道协议包中,再嵌入IP报文或帧中继或ATM中进行传输。
(2)、PPTP协议
PPTP(Point to Point Tunneling Protocol),即点对点隧道协议。该协议是在PPP协议的基础上开发的一种新的增强型安全协议,支持多协议虚拟专用网,可以通过密码验证协议,可扩展认证协议等方法增强安全性。远程用户可以通过ISP、直接连接Internet 或者其他网络安全地访问企业网;
PPTP能够将PPP(点到点协议)帧封装成IP数据包,以便能够在基于IP的互联网上进程传输。PPTP使用TCP是实现隧道的创建、维护与终止,并使用GRE(通用路由封装)将PPP帧封装成隧道数据。被封装后的PPP帧的有效载荷可以被加密或压缩;
PPTP通信过程中需要建立两种连接,一种是控制连接,一种是数据连接。控制连接用来协议通信过程中的参数和进行数据连接的维护。而真正的数据通信由数据连接完成。
×××工作原理图:
二、PPTP控制连接建立流程
PPTP控制连接建立过程分为以下几步:
(1)建立TCP连接;(2)PPTP控制连接和GRE隧道建立;(3)PPTP协议的LCP协商;(4)PPP协议的身份验证;(5)PPP协议的NCP协商;(6)PPP协议的CCP协商
以下分析使用的抓包方式,使用的IP地址为:client IP :192.168.163.56 server IP :192.168.163.196 (此地址 只用来演示PPTP工作流程使用,无具体配置)
1、建立TCP连接
PPTP控制层协议是建立在TCP协议的基础上,所以建立的第一步就是常用的TCP三次握手
2、PPTP控制连接和隧道的建立
在此过程,完成PPTP控制层连接和GRE隧道建立的工作
3、PPP协议的LCP协商
LCP是PPP协议的链路控制协议,负责建立、拆除和监控数据链路,如认证方法,压缩方法,是否回叫等。
4、PPP协议的身份认证
LCP协商完成后,PPP协议的Server端会对Client端进行身份验证,在LCP协商中已经协商好身份验证协议
5、PPP协议的NCP协商
NCP协议是PPP协议的网络控制协议,主要用来协商双方网络层接口参数,分配IP,DNS等信息。下图中的IPCP是NCP基于TCP/IP 的接口协商协议。Server和Client都要把自己的Miniport信息发送给对方。
6、PPP协议的CCP协商
CCP协议协商PPP通讯中数据加密的协议。
三、数据连接的流程
PPTP数据隧道化过程采用多层封装的方式。
1、PPTP数据包封装过程
封装过程:
2、PPTP数据包解析过程
解析过程:
四、环境准备
1、服务器:
操作系统:CentOS Linux release 7.5.1804 (Core)
IP地址:172.28.1.191
2、客户端:
windows 7操作系统
windows10 操作系统
五、PPTP服务端安装
1、检查服务器端系统版本:
cat /etc/redhat-release
2、检查服务端IP地址信息:
ip addr
3、检查ppp是否开启
cat /dev/ppp
modprobe ppp-compress-18 && echo ok
4、安装PPP
yum install -y ppp
5、安装PPTPD
在安装PPTPD服务之前,需要先更新一下yum源
(1)安装wget
yum install -y wget
(2)添加EPEL源:
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
(3)安装epel源:
rpm -ivh epel-release-latest-7.noarch.rpm
(4)检查是否添加到源列表中:
yum repolist
(5)更新源列表
yum -y update
(6)安装PPTPD:
yum install -y pptpd
6、设置×××内网IP段
vi /etc/pptpd.conf
将以下两行前面的#号删掉,配置×××内网的IP段,也可自行设置
localip 192.168.0.1
remoteip 192.168.0.234-238,192.168.0.245
7、配置opptions.pptpd
vi /etc/ppp/options.pptpd
(1)修改DNS:
修改dns服务的两行:
ms-dns 8.8.8.8
ms-dns 8.8.4.4
(2)修改日志记录:
添加日志存放位置:
nologfd
logfile /var/log/pptpd.log #日志存放位置
8、设置×××账号密码:
编辑/etc/ppp/chap-secrets ,创建×××账号密码,
vim /etc/ppp/chap-secrets
备注:添加用户名密码的格式
用户名 pptpd 密码 * #每个字段之间用tab键隔开 *表示用任意IP连接×××都可以
在此建立两个账号
9、修改内核参数
编辑/etc/sysctl.conf 修改内核参数,支持内核转发
vim /etc/sysctl.conf , 在最下面添加:net.ipv4.ip_forward=1
输入命令生效:sysctl -p
10、修改防火墙设置:
(1)创建规则文件:
touch /usr/lib/firewalld/services/pptpd.xml
(2)修改规则文件
vim /usr/lib/firewalld/services/pptpd.xml
<?xml version="1.0" encoding="utf-8"?>
<service>
<short>pptpd</short>
<description>PPTP</description>
<port protocol="tcp" port="1723"/>
</service>
(3)重启防火墙
systemctl start firewalld.service
(4)添加服务
firewall-cmd --permanent --zone=public --add-service=pptpd
(5)允许防火墙伪装IP:
firewall-cmd --add-masquerade
(6)开启 47和1723端口
firewall-cmd --permanent --zone=public --add-port=47/tcp
firewall-cmd --permanent --zone=public --add-port=1723/tcp
(7)允许grep协议:
firewall-cmd --permanent --direct --add-rule ipv4 filter INPUT 0 -p gre -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter OUTPUT 0 -p gre -j ACCEPT
(8)设置规则允许数据包由eth0 和ppp+接口中进出
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i ppp+ -o eth0 -j ACCEPT
firewall-cmd --permanent --direct --add-rule ipv4 filter FORWARD 0 -i eth0 -o ppp+ -j ACCEPT
(9)设置转发规则,从源地址发出的所有包进行伪装,改变地址,由eth0发出
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24
11、开启转发规则
转发规则有两种:
(1)XEN架构:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
(2)OpenVZ架构:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公网IP //VPS公网IP 要换成你服务器的IP 比如 115.138.148.X
在此我使用的是XEN架构,在命令终端输入第一条命令:
iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
12、编辑rc.local文件,添加转发规则
(1)给rc.local执行权限
chmod +x /etc/rc.d/rc.local
(2)编辑rc.local文件
在文件最下面添加代码
使用XEN架构,添加代码:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
使用OpenVZ架构,添加代码:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公网IP
在此使用的XEN架构。
vim /etc/rc.d/rc.local
13、重启服务
systemctl restart pptpd
friewall-cmd --reload
14、查看pptpd服务
ps -aux | grep pptpd
15、设置开机启动
systemctl enable pptpd
六、客户端验证:
1、windows10操作系统客户端验证
(1)点击windows10的“设置”-然后点击“网络和Internet”
(2)在“×××”选项中,点击“添加×××连接”
(3)弹出“添加×××连接”界面后,需要输入×××账号信息
(4)返回“×××”界面,选择刚刚创建的×××连接
(5)输入×××的账号 密码
(6)测试×××是否连接成功:
ping×××服务器本机地址。172.28.1.188
2、windows7 客户端连接×××
(1)右键点击右下角的网络图标,然后打开“网络和共享中心”
(2)点击设置新的连接或网络进行×××拨号方式的创建
(3)在弹出的设置连接或网络的选项卡里选择“连接到工作区”
(4)选择“使用我的Internet连接(×××)”然后点击进入:
(5)填写×××服务器的IP地址信息,然后输入新建×××的名称,可自定义:
(6)输入×××账号密码
(7)默认情况下系统会对×××的服务一个一个的进行尝试连接
(8)测试连接是否成功
ping 172.28.1.188
转载于:https://blog.51cto.com/5001660/2177407
Centos7.5 系统使用pptpd搭建服务器相关推荐
- centos系统使用pptpd搭建在windows客户端的vpn服务器
1,检查服务端的ip地址 #ifconfig ip地址为:192.168.115.128 2,安装ppp yum install -y ppp 3,安装pptpd(我们会发现无法安装,yum源里没有, ...
- linux pptpd 不能上网,CentOS7.7使用pptpd搭建服务器(配置好了,但是不能使用)
一.环境准备 1.服务器 查看系统版本 cat /etc/redhat-release 操作系统:CentOS Linux release 7.7.1908 (Core) IP地址:122.51.8. ...
- CentOS7下Telegraf+InfluxDB+Grafana 搭建服务器监控平台
转载来源 : 作者:DevOps海洋的渔夫 链接:https://www.jianshu.com/p/0a8192751dce 来源:简书 著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- CentOS 6.7 x64 使用pptpd搭建***服务器
原理:PPTP 使用 PPP 协议对用户数据进行封装,然后将 PPP 数据帧封装在 IP 数据包里,pptpd 更多是负责客户端到服务器的连接,ppp协议负责用户数据包的封装和转发,当客户端连接到服务 ...
- 基于CentOS7.6系统搭建远程GIT服务器
基于CentOS7.6系统搭建远程GIT服务器 0 背景 0.0 GIT是什么 0.1 为什么搭建远程GIT服务器 1. 功课 2. 过程 3. 总结 4. 参考资料 0 背景 0.0 GIT是什么 ...
- UEFI+GPT+双硬盘下 搭建Windos10 和CentOS7 双系统
centos官方帮助(安装)文档:https://docs.centos.org/en-US/centos/install-guide/ (可用谷歌浏览器进行翻译) 以下为转载内容 转载自:https ...
- CentOS7设置静态IP、搭建单机版FastDFS图片服务器、使用FastDFS-Client客户端进行简单测试、实现图片上传、实现商品添加修改删除
CentOS7设置静态IP.搭建单机版FastDFS图片服务器.使用FastDFS-Client客户端进行简单测试.实现图片上传.实现商品添加修改删除 CentOS7设置静态IP而且还可以上网 192 ...
- python+Linux centos7搭建服务器
我是一个前端出身的,所以搭建服务器环境费了几天,参考了大量资料,现在终于完成了,写一下总结 1.安装python3.X 参考:https://blog.csdn.net/zhangdongren/ar ...
- 利用自己的电脑设置web服务器建网站_win7系统篇,win7系统利用iis搭建web服务器实现信息浏览资源共享的操作方法...
很多小伙伴都遇到过对win7系统利用iis搭建web服务器实现信息浏览资源共享进行设置的困惑吧,一些朋友看过网上对win7系统利用iis搭建web服务器实现信息浏览资源共享设置的零散处理方法,并没有完 ...
最新文章
- Linux那些事儿 之 戏说USB(8)从这里开始
- Android Gradle Plugin 源码解析(上)
- key php 转小写_PHP代码层防护与绕过
- 自然语言处理顶会COLING 2020最佳论文等三项大奖出炉 | AI日报
- IntelliJ IDEA Community 社区版配置 Web 开发环境(Gradle + Tomcat)
- python3爬虫入门教程-Python3爬虫学习入门教程
- Spring(十二)之JDBC框架
- CNN结构基元:纹理结构和纹理基元方程化GLOH、Gabor...(Code)
- php 5.6 zend opcache,使用Zend OpCache 提高 PHP 5.5+ 性能
- matlab画2fsk频谱,2fsk信号调制解调频谱的matlab仿真
- 手动构建Docker镜像
- 二元一次方程用计算机怎么解,二元一次方程的解法
- vue 日程表组件_VUE也有自己的日历组件
- 解决eclipse 错误: 找不到或无法加载主类
- 射频S11与VSWR换算
- VSCode 中怎样快速切换多个项目
- 鸡腿の游戏_纪中1737
- unity简单小球下落
- <UDP网络编程>——《计算机网络》
- play framework框架下,连接到MongoDB时的特殊操作(与或查询,模糊查询,范围查询,数据排序等)
热门文章
- EXCEL中怎么把单元格中的数值提取出来?Excel提取单元格数字或某格式的字符串,支持正则式提取的绿色工具
- ipad+html+全屏模式,javascript – iPad上的Chrome全屏API?
- 2.5 随从受伤溅血效果的实现———自制卡牌游戏之旅
- 如何防止网站关键数据被人恶意采集
- 宝兰德BES安装及Springboot项目打包部署及websocket解决方案
- BZOJ 3168: [Heoi2013]钙铁锌硒维生素
- 【激励自己】牛人职场分享汇总
- 《公安机关办理刑事案件电子数据取证规则》
- 基于JavaSwing开发天猫购物商城系统(用户 管理员角色) 课程设计 毕业设计源码
- Selenium显示等待和隐式等待