節(jié)點(diǎn)的公網(wǎng) IP 地址:端口,例如
123.124.125.126:1234
,或者直接使用域名some.domain.tld:1234
。如果peer節(jié)點(diǎn)不在同一子網(wǎng)中,那么節(jié)點(diǎn)的公開端點(diǎn)必須使用公網(wǎng) IP 地址。
- 私鑰(Private key)
單個(gè)節(jié)點(diǎn)的 WireGuard 私鑰,生成方法是:
wg genkey > example.key
。
- 公鑰(Public key)
單個(gè)節(jié)點(diǎn)的 WireGuard 公鑰,生成方式為:
wg pubkey < example.key > example.key.pub
。
- DNS
域名服務(wù)器,用于將域名解析為 VPN 客戶端的 IP,不讓 DNS請(qǐng)求泄漏到 VPN 之外。
主要功能和原理如下
WireGuard 通過(guò)添加一個(gè)(或多個(gè))網(wǎng)絡(luò)接口來(lái)工作,例如
eth0
或wlan0
,稱為wg0
(或wg1
、wg2
、wg3
等)。然后可以使用ifconfig(8)
或ip-address(8)
正常配置該網(wǎng)絡(luò)接口,并使用route(8)
或ip-route(8)
添加和刪除其路由,以及所有普通網(wǎng)絡(luò)實(shí)用程序都是如此。接口的特定 WireGuard 方面使用wg(8)
工具進(jìn)行配置。該接口充當(dāng)隧道接口。WireGuard 將隧道 IP 地址與公鑰和遠(yuǎn)程端點(diǎn)相關(guān)聯(lián)。當(dāng)接口向peer發(fā)送數(shù)據(jù)包時(shí),它會(huì)執(zhí)行以下操作:
- 該數(shù)據(jù)包適用于 192.168.30.8。那是哪位peer啊?讓我看看…好吧,這是給peer
ABCDEFGH
的。 (或者,如果它不適合任何已配置的peer,則丟棄該數(shù)據(jù)包。)- 使用peer
ABCDEFGH
的公鑰加密整個(gè) IP 數(shù)據(jù)包。- Peer
ABCDEFGH
的遠(yuǎn)程端點(diǎn)是什么?讓我看看…好的,端點(diǎn)是主機(jī) 216.58.211.110 上的 UDP 端口 53133。- 使用 UDP 通過(guò) Internet 將步驟 2 中的加密字節(jié)發(fā)送到 216.58.211.110:53133。
當(dāng)接口收到數(shù)據(jù)包時(shí),會(huì)發(fā)生以下情況:
- 我剛剛從主機(jī) 98.139.183.24 上的 UDP 端口 7361 收到一個(gè)數(shù)據(jù)包。讓我們來(lái)解密吧!
- 它為peer
LMNOPQRS
正確解密和驗(yàn)證。好的,讓我們記住,peerLMNOPQRS
的最新 Internet 端點(diǎn)是使用 UDP 的 98.139.183.24:7361。- 解密后,明文數(shù)據(jù)包來(lái)自 192.168.43.89。是否允許peer
LMNOPQRS
以 192.168.43.89 向我們發(fā)送數(shù)據(jù)包?- 如果是,則在接口上接受數(shù)據(jù)包。如果沒有,就放棄它。
WireGuard 的核心是一個(gè)稱為加密密鑰路由的概念,它的工作原理是將公鑰與隧道內(nèi)允許的隧道 IP 地址列表相關(guān)聯(lián)。每個(gè)網(wǎng)絡(luò)接口都有一個(gè)私鑰和一個(gè)peer點(diǎn)列表。每個(gè)peer都有一個(gè)公鑰。公鑰短小且簡(jiǎn)單,由peer用來(lái)相互驗(yàn)證。它們可以通過(guò)任何帶外方法傳遞以在配置文件中使用,類似于將 SSH 公鑰發(fā)送給朋友以訪問(wèn) shell 服務(wù)器的方式。
1.4 WireGuard安裝
wireGuard官方安裝教程
2 WireGuard組網(wǎng)實(shí)現(xiàn)內(nèi)網(wǎng)穿透
2.1 前提條件
- 公網(wǎng)服務(wù)器: 必須擁有一臺(tái)具有公網(wǎng)IP地址的服務(wù)器,這是內(nèi)網(wǎng)穿透的關(guān)鍵。該服務(wù)器充當(dāng)中轉(zhuǎn)站,負(fù)責(zé)將外部請(qǐng)求傳遞到內(nèi)部網(wǎng)絡(luò)。
- 網(wǎng)絡(luò)設(shè)備配置權(quán)限: 需要對(duì)內(nèi)部網(wǎng)絡(luò)的路由器或防火墻有一定的配置權(quán)限,以便進(jìn)行端口映射或其他必要的網(wǎng)絡(luò)設(shè)置。這確保了從公網(wǎng)服務(wù)器到內(nèi)網(wǎng)的連接是有效的。
- 安裝WireGuard: 在公網(wǎng)服務(wù)器和內(nèi)網(wǎng)設(shè)備上都需要安裝和配置WireGuard軟件。確保兩端的WireGuard配置一致,包括公私鑰的生成和網(wǎng)絡(luò)接口的配置。
- 開啟相應(yīng)端口: 在公網(wǎng)服務(wù)器的防火墻配置中,需要打開WireGuard所使用的端口(默認(rèn)是51820/UDP),以確保能夠接收來(lái)自內(nèi)網(wǎng)設(shè)備的連接請(qǐng)求。
- 合適的網(wǎng)絡(luò)拓?fù)洌?/strong> 確保了解內(nèi)部網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu),以便正確設(shè)置WireGuard配置,包括允許流量通過(guò)的子網(wǎng)、路由等。
2.2 網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
2.3 具體步驟
2.3.1 中繼服務(wù)器配置
- 創(chuàng)建密鑰對(duì)
wg genkey | tee server_privatekey | wg pubkey > server_publickey
執(zhí)行以上兩條命令后,會(huì)在執(zhí)行命令的當(dāng)前文件夾自動(dòng)生成2個(gè)文件:
- 開啟IP地址轉(zhuǎn)發(fā)
sudo sysctl net.ipv4.ip_forward
如果顯示1則說(shuō)明已開啟,否則則未開啟。
echo “net.ipv4.ip_forward = 1” >> /etc/sysctl.conf
echo “net.ipv4.conf.all.proxy_arp = 1” >> /etc/sysctl.conf
sysctl -p /etc/sysctl.conf
- 設(shè)置IP地址偽裝
允許防火墻偽裝IP
firewall-cmd --add-masquerade
檢查是否允許偽裝IP
firewall-cmd --query-masquerade
禁止防火墻偽裝IP
firewall-cmd --remove-masquerade
- 配置wireguard虛擬網(wǎng)卡(不推薦,只是讓讀者直觀了解過(guò)程)
sudo ip link add wg0 type wireguard # 添加一塊叫 wg0 的虛擬 wireguard 網(wǎng)卡
sudo ip addr add 192.168.71.1/24 dev wg0 # 給 wg0 網(wǎng)卡添加 ip 地址 192.168.71.1,子網(wǎng)掩碼 255.255.255.0
sudo wg set wg0 private-key ./server-privatekey # wireguard 設(shè)置密鑰
sudo ip link set wg0 up # 啟用剛剛添加的網(wǎng)卡
我們可以通過(guò)
ip addr
命令查看到wg0網(wǎng)卡的狀態(tài)
可以看到網(wǎng)卡
wg0
接口是已啟用的,具有 IPv4 地址192.168.71.1
輸入
wg
命令則可以看到配置信息,配置文件通常在/etc/wireguard/
目錄中
有想繼續(xù)嘗試這種方式的可以看一下官方教程
- 編寫配置文件配置網(wǎng)卡(推薦,應(yīng)該
wg set
命令需要提供很多參數(shù),很容易出錯(cuò))
我們?cè)?code>/etc/wireguard目錄中創(chuàng)建
wg0.conf
并編寫配置,配置項(xiàng)請(qǐng)看2.4 配置項(xiàng)說(shuō)明
[Interface]
本機(jī)密鑰
PrivateKey = KIDTljv66CgVYBNlrSD13Au6qfUdIcFJkTBkuErhTEk=
本機(jī)地址
Address = 192.168.71.1/24
監(jiān)聽端口
ListenPort = 51820
[Peer]
對(duì)端的publickey
PublicKey = iWy57DmR6wVXcVzMDOa2WyywO0WT5JRAGYIlh0v/nW8=
對(duì)端地址
AllowedIPs = 192.168.71.2/24
- 重新啟動(dòng)網(wǎng)卡
sudo wg-quick down wg0
sudo wg-quick up wg0
2.3.2 其他peer
我這里只列舉MacOS的操作方式(其他都同理,就是要配置私鑰和公鑰)
操作完之后,它會(huì)給出密鑰對(duì),我們只需要添加好其他信息即可。
配置文件如下:
[Interface]
本機(jī)密鑰
PrivateKey = kDUqWzkbaB1EU5C2ADoId1TXtZF89xxn0VV45EcjFHs=
本機(jī)地址
Address = 192.168.71.2/24
[Peer]
對(duì)端公鑰,即公網(wǎng)服務(wù)器公鑰
PublicKey = bEm1p736FQySfKlTTUCeHmiwTmna5umZWOWLGWqioSk=
允許此對(duì)等方的傳入流量并指定傳出流量的目標(biāo)。
AllowedIPs = 192.168.71.0/24
公網(wǎng)IP+監(jiān)聽端口號(hào)
Endpoint = 1.1.1.1:51820
PersistentKeepalive = 25
2.3.3 測(cè)試
MacOS端:
服務(wù)器Ping 主機(jī):
2.4 WireGuard配置文件說(shuō)明
自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過(guò),也去過(guò)華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。
深知大多數(shù)網(wǎng)絡(luò)安全工程師,想要提升技能,往往是自己摸索成長(zhǎng),但自己不成體系的自學(xué)效果低效又漫長(zhǎng),而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年網(wǎng)絡(luò)安全全套學(xué)習(xí)資料》,初衷也很簡(jiǎn)單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友。
既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上網(wǎng)絡(luò)安全知識(shí)點(diǎn),真正體系化!
由于文件比較大,這里只是將部分目錄大綱截圖出來(lái),每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會(huì)持續(xù)更新
如果你覺得這些內(nèi)容對(duì)你有幫助,可以添加VX:vip204888 (備注網(wǎng)絡(luò)安全獲?。?/strong>
一、網(wǎng)安學(xué)習(xí)成長(zhǎng)路線圖
網(wǎng)安所有方向的技術(shù)點(diǎn)做的整理,形成各個(gè)領(lǐng)域的知識(shí)點(diǎn)匯總,它的用處就在于,你可以按照上面的知識(shí)點(diǎn)去找對(duì)應(yīng)的學(xué)習(xí)資源,保證自己學(xué)得較為全面。
二、網(wǎng)安視頻合集
觀看零基礎(chǔ)學(xué)習(xí)視頻,看視頻學(xué)習(xí)是最快捷也是最有效果的方式,跟著視頻中老師的思路,從基礎(chǔ)到深入,還是很容易入門的。
三、精品網(wǎng)安學(xué)習(xí)書籍
當(dāng)我學(xué)到一定基礎(chǔ),有自己的理解能力的時(shí)候,會(huì)去閱讀一些前輩整理的書籍或者手寫的筆記資料,這些筆記詳細(xì)記載了他們對(duì)一些技術(shù)點(diǎn)的理解,這些理解是比較獨(dú)到,可以學(xué)到不一樣的思路。
四、網(wǎng)絡(luò)安全源碼合集+工具包
光學(xué)理論是沒用的,要學(xué)會(huì)跟著一起敲,要?jiǎng)邮謱?shí)操,才能將自己的所學(xué)運(yùn)用到實(shí)際當(dāng)中去,這時(shí)候可以搞點(diǎn)實(shí)戰(zhàn)案例來(lái)學(xué)習(xí)。
五、網(wǎng)絡(luò)安全面試題
最后就是大家最關(guān)心的網(wǎng)絡(luò)安全面試題板塊
一個(gè)人可以走的很快,但一群人才能走的更遠(yuǎn)。如果你從事以下工作或?qū)σ韵赂信d趣,歡迎戳這里加入程序員的圈子,讓我們一起學(xué)習(xí)成長(zhǎng)!
AI人工智能、Android移動(dòng)開發(fā)、AIGC大模型、C C#、Go語(yǔ)言、Java、Linux運(yùn)維、云計(jì)算、MySQL、PMP、網(wǎng)絡(luò)安全、Python爬蟲、UE5、UI設(shè)計(jì)、Unity3D、Web前端開發(fā)、產(chǎn)品經(jīng)理、車載開發(fā)、大數(shù)據(jù)、鴻蒙、計(jì)算機(jī)網(wǎng)絡(luò)、嵌入式物聯(lián)網(wǎng)、軟件測(cè)試、數(shù)據(jù)結(jié)構(gòu)與算法、音視頻開發(fā)、Flutter、IOS開發(fā)、PHP開發(fā)、.NET、安卓逆向、云計(jì)算文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-845206.html
的很快,但一群人才能走的更遠(yuǎn)。如果你從事以下工作或?qū)σ韵赂信d趣,歡迎戳這里加入程序員的圈子,讓我們一起學(xué)習(xí)成長(zhǎng)!**](https://bbs.csdn.net/forums/4304bb5a486d4c3ab8389e65ecb71ac0)文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-845206.html
AI人工智能、Android移動(dòng)開發(fā)、AIGC大模型、C C#、Go語(yǔ)言、Java、Linux運(yùn)維、云計(jì)算、MySQL、PMP、網(wǎng)絡(luò)安全、Python爬蟲、UE5、UI設(shè)計(jì)、Unity3D、Web前端開發(fā)、產(chǎn)品經(jīng)理、車載開發(fā)、大數(shù)據(jù)、鴻蒙、計(jì)算機(jī)網(wǎng)絡(luò)、嵌入式物聯(lián)網(wǎng)、軟件測(cè)試、數(shù)據(jù)結(jié)構(gòu)與算法、音視頻開發(fā)、Flutter、IOS開發(fā)、PHP開發(fā)、.NET、安卓逆向、云計(jì)算
到了這里,關(guān)于WireGuard 組網(wǎng)教程:快速構(gòu)建安全高效的私密網(wǎng)絡(luò)并實(shí)現(xiàn)內(nèi)網(wǎng)穿透_wire guard(2)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!