關於***的我的理解與問題解決

(1) ***的做用:
              使用戶能夠不在公司內網中安全訪問內網資源,或者鏈接國外網絡.
linux


(2)原理:
vim

          1.說到***就必須談到隧道技術(pptp、l2tpipip、pppoe(adsl撥號上網常常使用)),隧道技術就是將其餘數據包或者幀封裝到一個數據包或者幀中,在這些數據幀中添加路由頭部信息(如以太幀頭部、ppp幀頭部等)以便被封裝的數據在互聯網中傳遞,固然對客戶來講這些都是透明的。安全

 

          2.***也使用了隧道技術(本文主要說pptp協議 ),數據包封裝過程:將用戶數據(ip數據包、ipx上數據報或者NetBEUI)封裝 在ppp幀中,ppp幀在進一步添加GRE報頭造成GRE報文(此爲 pptp協議),而後tcp/ip協議將GRE報文進行封裝既添加ip報頭,而後進行數據鏈路層的封裝,數據鏈路層封裝根據物理網絡而添添加鏈路層的報頭與報尾。如:以太網  則添加以太幀的報頭和報尾(目的/源mac  類型  數據   幀校驗序列)進行鏈路層封裝,若是ip數據包在點到點 wan上傳輸 則添加 ppp幀的報頭和報尾(0x7e 0xff  0x03  協議  信息部分  幀校驗碼  0x7e)。若是將上面ppp幀理解爲一個tcp/ip協議上層協議封裝數據,則上面pptp協議的封裝過程和通常的應用層數據封裝過程類似。
服務器

 

          3.pptp的一些鏈接創建與ppp協議的一些身份驗證與協商等就不在這多說了 ,詳細過程資料一大堆。網絡

 

           4.數據包經過網路通過各個路由最後到達***服務器,物理網卡接受以太幀後解幀後交給tcp/ip協議後解ip數據包與GRE報文而後將剩下的ppp幀發送給ppp0(***虛擬網卡)進行解密而後根據數據內容提交給上層協議進行處理。tcp


           5.經過上面對數據封裝與解包過程當中咱們能夠感知到ppp幀中攜帶數據經過pptp搭建的隧道點對點的從***客戶端傳輸到了***服務器。就比如在互聯網中獨自創建了一個高鐵鐵路,數據包在這條鐵路中從起點(***客戶端)坐到了終點(***服務器),而後下車根據站內的指示牌(路由)尋找出口。(腦補畫面)。
ide




(3) ***的搭建:spa

            redhat linux系統server

            client:192.168.1.73
ip

            server:  外:  192.168.1.92   內:172.25.45.1

            ***客戶端地址:172.25.254.100 ~ 172.25.254.200

            ***服務器開啓路由轉發: echo 「1」 > /proc/sys/net/ipv4/ip_forward

        

須要安裝ppp、pptp : 一個是對將要傳輸的數據封裝爲ppp幀,一個是將ppp幀添加GRE報頭封裝爲GRE報文,而後將該報文提交給tcp/ip協議進行下一步的封裝。


配置ppp和pptp的文件:

        vim  /etc/ppp/chap-secrets  #這個就是ppp協議進行身份驗證的依據文件

                ***client   pptpd  ‘westos’*    #第一行爲用戶名  第二行爲options.pptpd文件中name指定名字相同  第三行爲密碼  地四行指定客戶端ip地址   ‘*’表示 所有能夠接入

        

        vim  /etc/pptpd.conf  #pptp服務的主配置文件

                localip  192.168.1.92  #填寫***的外網地址

                remoteip 172.25.254.100-200  #添加***客戶端地址池

這樣***的簡單配置就完成了 。

可是這樣配置的***仍是有一些不盡人意的地方,如:鏈接上***後客戶端沒法訪問外網,沒法訪問公司內網之類的問題。




(4)解決方法:

沒法訪問外網:

        ***客戶端 : 

                route add -net 172.25.45.0 netmask 255.255.255.0 pppo  #添加目的網絡(***服務器內網網段)爲 172.25.45.0 ip數據包通過 pppo(虛擬網卡)出去            

            

        ***服務器:

                 此時***服務器須要在nat表POSTROUTING鏈作一個snat,固然你須要安裝iptables(yum  install  iptables -y)。

       iptables  -t nat -A  POSTROUTING -s 172.25.254.0/24  -j SDNT -to  192.168.1.92    #在iptables上將出包時候源地址爲***客戶端地址改變爲***外網ip

*********注: 以上兩步根據實際狀況添加


沒法訪問內網:

        ***服務器:

                route add -net  172.25.254.0 netmask 255.255.255.0   gw 172.25.45.1  #在***內網主機中設置 目標網絡172.25.254.0 的網關爲172.25.45.1

相關文章
相關標籤/搜索