Centos7.5 系统使用pptpd搭建服务器
一、×××介紹
????????×××(Virtual Private Network),虛擬專用網(wǎng)絡(luò),主要是在公用網(wǎng)絡(luò)上建立專用網(wǎng)絡(luò),進行加密通訊。在企業(yè)網(wǎng)絡(luò)中得到廣泛應(yīng)用。×××網(wǎng)關(guān)通過對數(shù)據(jù)包的加密和數(shù)據(jù)包目標地址的轉(zhuǎn)換實現(xiàn)遠程訪問。×××有多種分類方式,主要是按照協(xié)議進行分類。
????????×××協(xié)議主要分為ppp協(xié)議、pptp協(xié)議、l2tp協(xié)議等。
????(1)、PPP協(xié)議
????????ppp協(xié)議支持多種網(wǎng)絡(luò)協(xié)議,可以把IP、IPX、AppleTalk或NetBEUI的數(shù)據(jù)包封裝在PPP包中,將整個報文封裝在PPTP(Point-to-Point Tunneling Protocol)隧道協(xié)議包中,再嵌入IP報文或幀中繼或ATM中進行傳輸。
????(2)、PPTP協(xié)議
????????PPTP(Point to Point Tunneling Protocol),即點對點隧道協(xié)議。該協(xié)議是在PPP協(xié)議的基礎(chǔ)上開發(fā)的一種新的增強型安全協(xié)議,支持多協(xié)議虛擬專用網(wǎng),可以通過密碼驗證協(xié)議,可擴展認證協(xié)議等方法增強安全性。遠程用戶可以通過ISP、直接連接Internet 或者其他網(wǎng)絡(luò)安全地訪問企業(yè)網(wǎng);
????????PPTP能夠?qū)PP(點到點協(xié)議)幀封裝成IP數(shù)據(jù)包,以便能夠在基于IP的互聯(lián)網(wǎng)上進程傳輸。PPTP使用TCP是實現(xiàn)隧道的創(chuàng)建、維護與終止,并使用GRE(通用路由封裝)將PPP幀封裝成隧道數(shù)據(jù)。被封裝后的PPP幀的有效載荷可以被加密或壓縮;
????????PPTP通信過程中需要建立兩種連接,一種是控制連接,一種是數(shù)據(jù)連接。控制連接用來協(xié)議通信過程中的參數(shù)和進行數(shù)據(jù)連接的維護。而真正的數(shù)據(jù)通信由數(shù)據(jù)連接完成。
????????×××工作原理圖:
????????
二、PPTP控制連接建立流程
????????PPTP控制連接建立過程分為以下幾步:
????????(1)建立TCP連接;(2)PPTP控制連接和GRE隧道建立;(3)PPTP協(xié)議的LCP協(xié)商;(4)PPP協(xié)議的身份驗證;(5)PPP協(xié)議的NCP協(xié)商;(6)PPP協(xié)議的CCP協(xié)商
????????以下分析使用的抓包方式,使用的IP地址為:client IP :192.168.163.56? ? server IP :192.168.163.196? ? ?(此地址 只用來演示PPTP工作流程使用,無具體配置)
????1、建立TCP連接
????????PPTP控制層協(xié)議是建立在TCP協(xié)議的基礎(chǔ)上,所以建立的第一步就是常用的TCP三次握手
????????
????????
????2、PPTP控制連接和隧道的建立
????????在此過程,完成PPTP控制層連接和GRE隧道建立的工作
????????
????????
????????
????3、PPP協(xié)議的LCP協(xié)商
????????LCP是PPP協(xié)議的鏈路控制協(xié)議,負責(zé)建立、拆除和監(jiān)控數(shù)據(jù)鏈路,如認證方法,壓縮方法,是否回叫等。
????????
????????
????????
????4、PPP協(xié)議的身份認證
????????LCP協(xié)商完成后,PPP協(xié)議的Server端會對Client端進行身份驗證,在LCP協(xié)商中已經(jīng)協(xié)商好身份驗證協(xié)議
????????
????????
????5、PPP協(xié)議的NCP協(xié)商
????????NCP協(xié)議是PPP協(xié)議的網(wǎng)絡(luò)控制協(xié)議,主要用來協(xié)商雙方網(wǎng)絡(luò)層接口參數(shù),分配IP,DNS等信息。下圖中的IPCP是NCP基于TCP/IP 的接口協(xié)商協(xié)議。Server和Client都要把自己的Miniport信息發(fā)送給對方。
????????
????????
????????
????6、PPP協(xié)議的CCP協(xié)商
????????CCP協(xié)議協(xié)商PPP通訊中數(shù)據(jù)加密的協(xié)議。
????????
????????
三、數(shù)據(jù)連接的流程
????????PPTP數(shù)據(jù)隧道化過程采用多層封裝的方式。
???????
????1、PPTP數(shù)據(jù)包封裝過程
????????
????????封裝過程:
?????????
????2、PPTP數(shù)據(jù)包解析過程
????????
????????解析過程:
????????
四、環(huán)境準備
????1、服務(wù)器:
????????操作系統(tǒng):CentOS Linux release 7.5.1804 (Core)?
????????IP地址:172.28.1.191
????2、客戶端:
????????windows 7操作系統(tǒng)
????????windows10 操作系統(tǒng)
五、PPTP服務(wù)端安裝
????1、檢查服務(wù)器端系統(tǒng)版本:
????????cat /etc/redhat-release?
????????
????2、檢查服務(wù)端IP地址信息:
????????ip addr
????????
????3、檢查ppp是否開啟
? ? ? ? cat /dev/ppp??
????????modprobe ppp-compress-18 && echo ok
????????
????4、安裝PPP
????????yum install -y ppp
????????
????5、安裝PPTPD
????????在安裝PPTPD服務(wù)之前,需要先更新一下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、設(shè)置×××內(nèi)網(wǎng)IP段
????????vi /etc/pptpd.conf
????????將以下兩行前面的#號刪掉,配置×××內(nèi)網(wǎng)的IP段,也可自行設(shè)置
????????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服務(wù)的兩行:
????????ms-dns 8.8.8.8
????????ms-dns 8.8.4.4
????????
????????(2)修改日志記錄:
????????添加日志存放位置:
????????nologfd
????????logfile /var/log/pptpd.log? ? ?#日志存放位置
????????
????8、設(shè)置×××賬號密碼:
????????編輯/etc/ppp/chap-secrets ,創(chuàng)建×××賬號密碼,
?????????vim /etc/ppp/chap-secrets?
? ? ? ? 備注:添加用戶名密碼的格式
????????用戶名????pptpd????密碼????*? ? ? ? ? ? ? ? #每個字段之間用tab鍵隔開? ?*表示用任意IP連接×××都可以
????????在此建立兩個賬號
????????
????9、修改內(nèi)核參數(shù)
????????編輯/etc/sysctl.conf 修改內(nèi)核參數(shù),支持內(nèi)核轉(zhuǎn)發(fā)
????????vim /etc/sysctl.conf , 在最下面添加:net.ipv4.ip_forward=1
????????
????????輸入命令生效:sysctl -p
????????
????10、修改防火墻設(shè)置:
????????(1)創(chuàng)建規(guī)則文件:
????????touch /usr/lib/firewalld/services/pptpd.xml
????????
????????(2)修改規(guī)則文件
????????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)添加服務(wù)
????????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協(xié)議:
????????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)設(shè)置規(guī)則允許數(shù)據(jù)包由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)設(shè)置轉(zhuǎn)發(fā)規(guī)則,從源地址發(fā)出的所有包進行偽裝,改變地址,由eth0發(fā)出
????????firewall-cmd --permanent --direct --passthrough ipv4 -t nat -I POSTROUTING -o eth0 -j MASQUERADE -s 192.168.0.0/24
????????
????11、開啟轉(zhuǎn)發(fā)規(guī)則
????????轉(zhuǎn)發(fā)規(guī)則有兩種:
????????(1)XEN架構(gòu):
????????iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
????????(2)OpenVZ架構(gòu):
????????iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公網(wǎng)IP? ? //VPS公網(wǎng)IP 要換成你服務(wù)器的IP 比如 115.138.148.X
????????
????????在此我使用的是XEN架構(gòu),在命令終端輸入第一條命令:
????????iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
????????
????12、編輯rc.local文件,添加轉(zhuǎn)發(fā)規(guī)則
????????(1)給rc.local執(zhí)行權(quán)限
????????chmod +x /etc/rc.d/rc.local
????????
????????(2)編輯rc.local文件
????????在文件最下面添加代碼
????????使用XEN架構(gòu),添加代碼:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j MASQUERADE
????????使用OpenVZ架構(gòu),添加代碼:iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to-source VPS公網(wǎng)IP
????????在此使用的XEN架構(gòu)。
????????vim /etc/rc.d/rc.local
????????
????13、重啟服務(wù)
????????systemctl restart pptpd
????????friewall-cmd --reload
????????
????????
????14、查看pptpd服務(wù)
????????ps -aux | grep pptpd
????????
????15、設(shè)置開機啟動
????????systemctl enable pptpd
????????
????????
六、客戶端驗證:
????1、windows10操作系統(tǒng)客戶端驗證
????????(1)點擊windows10的“設(shè)置”-然后點擊“網(wǎng)絡(luò)和Internet”
????????
?????????(2)在“×××”選項中,點擊“添加×××連接”
??????????
????????(3)彈出“添加×××連接”界面后,需要輸入×××賬號信息
????????
????????(4)返回“×××”界面,選擇剛剛創(chuàng)建的×××連接
????????
????????(5)輸入×××的賬號 密碼
????????
????????(6)測試×××是否連接成功:
????????ping×××服務(wù)器本機地址。172.28.1.188
????????
????2、windows7 客戶端連接×××
????????(1)右鍵點擊右下角的網(wǎng)絡(luò)圖標,然后打開“網(wǎng)絡(luò)和共享中心”
????????
????????(2)點擊設(shè)置新的連接或網(wǎng)絡(luò)進行×××撥號方式的創(chuàng)建
????????
????????(3)在彈出的設(shè)置連接或網(wǎng)絡(luò)的選項卡里選擇“連接到工作區(qū)”
????????
????????(4)選擇“使用我的Internet連接(×××)”然后點擊進入:
????????
????????(5)填寫×××服務(wù)器的IP地址信息,然后輸入新建×××的名稱,可自定義:
????????
????????(6)輸入×××賬號密碼
????????
????????(7)默認情況下系統(tǒng)會對×××的服務(wù)一個一個的進行嘗試連接
????????
????????(8)測試連接是否成功
????????ping 172.28.1.188
????????
????????
????????
????????
????????
????????
????????
????????? ? ? ??
????????
????????
轉(zhuǎn)載于:https://blog.51cto.com/5001660/2177407
總結(jié)
以上是生活随笔為你收集整理的Centos7.5 系统使用pptpd搭建服务器的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国家发改委发布《“互联网+”高效物流实施
- 下一篇: Win10系统edge浏览器b站全屏卡顿