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搭建服务器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 国家发改委发布《“互联网+”高效物流实施
- 下一篇: 微信小程序-退款业务