<em id="3efzx"></em>

    <progress id="3efzx"><track id="3efzx"></track></progress>
  1. <dd id="3efzx"><noscript id="3efzx"></noscript></dd>
  2. <rp id="3efzx"></rp>

    計世網

    智匯華云 | Wireguard VPN 介紹與使用
    2021-07-28
    Wireguard作為新一代VPN的代表,我們可以使用它在家庭網絡和公司網絡之間搭建一條安全的信道,由此可以訪問「內網」的數據和應用。

     

    Wireguard作為新一代VPN的代表,可能很多同學都不太了解。和其它 VPN 技術一樣,我們可以使用它在家庭網絡和公司網絡之間搭建一條安全的信道,由此可以訪問「內網」的數據和應用。本期智匯華云,我們為大家帶來《Wireguard VPN 介紹與使用》。

    Wireguard是目前使用起來最方便的,入門最快(內核代碼只有4000行),性能最強的l3 vpn,即使是在樹莓派這種入門級嵌入式平臺上也能跑到600Mb/s的速度,并且配置wireguard比其他vpn都要方便的多,配置參數基本看上去就能理解,如果你以前配置過ipsec vpn,那一定會對一大堆參數感到莫名的頭疼,常常會因為連不上而查看log并調整參數。

    Wireguard工作原理

    內核會創建出對應的wireguard接口,這里取名為wg0,接口上配置了雙方通信的地址,這樣當物理機上的程序使用10.66.66.1地址進行訪問10.66.66.2地址時,內核就會進行數據包加密,并把加密之后的報文封包為udp報文,發送給對方,對方內核會進行報文解密,并把解密之后的數據包發送給用戶,完成vpn隧道的功能。

    Wireguard概念介紹

    Wireguard vpn中涉及到幾個基本概念:

    Peer:wireguard中的節點。

    私鑰(Private key):每個節點自己的私鑰,可以使用wg genkey生成。

    公鑰(Public key):每個節點自己的公鑰,可以使用wg pubkey生成。

    allowed-ips:定義每個節點允許通過的ip地址段。

    這里公鑰使用的Curve25519的Diffie-Hellman函數,由Daniel J. Bernstein教授設計。在密碼學中,它是最快的ECC曲線之一,并未被任何已知專利所涵蓋。并且wireguard為了防止被以后的量子計算機破解,還可以額外使用wg genpsk產生與共享密鑰來保證安全??紤]的真的是周到。

    Wireguard 隧道創建流程非常簡單,用一句話來說就是,通過curve25519進行ecdh密鑰交換得到雙方的對稱密鑰,之后所有報文通過該密鑰進行加解密。

    其實所有的vpn都是為了雙方協商一個密鑰進行通信,但是能做到如此簡單的還只有wireguard,不像ipsec,協商個密鑰真的是復雜,ikev1就有野蠻模式和主模式,之后又來了個ikev2版本,讓人頭暈,就看libreswan中光pluto目錄下代碼就有10萬行。

    Wireguard使用

    安裝wireguard:

    如果內核大于5.6就不需要安裝內核模塊了,只要安裝wireguard-tools工具就行。舊版本內核可以安裝wireguard-dkms內核模塊。

    # apt install wireguard-tools wireguard-dkms

    了解前面幾個基本概念之后,就可以通過ip命令創建一個最簡單的wireguard vpn。

    在12.13.11.10機器上執行如下命令:

    在12.13.11.13上執行如下命令:

    查看wireguard連接狀態:

    這里可以看到wireguard vpn建立正常,已經可以ping通對方地址。

    這里的wg0設備里面顯示了NOARP,也就是說不支持2層mac地址查找,因此wireguard只能封裝三層包。

    要停止手工創建的wireguard隧道也很簡單,直接刪除就行了:

    # ip link del dev wg0

    上面演示的是純手工創建wireguard隧道,還有另一種方式,可以事先把配置先寫入/etc/wireguard/wg0.conf文件中,然后wg-quick up wg0啟用起來就可以。

    12.13.11.10節點:

    12.13.11.13節點:

    wg-quick-up命令除了會自動創建wg0設備并配置好wireguard的參數之外,還會處理路由表相關的東西,特別是當AllowedIPs設置為0.0.0.0/0時,就會通過ip rule添加額外的路由表,來讓本機出去的流量都從wg0設備走,不然這些規則都要手動設置。

    從上面的介紹可以看出,wireguard真的是簡單,配置參數也少,但是就是這樣一個vpn最純正功能的軟件,卻直到最近才被開發出來,當然wireguard缺點也是有的,比如沒辦法加密兩個節點之間本來的流量,wireguard只有在新接口上的流量才能被加密,而ipsec卻可以做到^^。

    責任編輯:劉沙