Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> VPN

สร้าง WireGuard VPN ที่ปลอดภัยใน 5 นาที—รวดเร็วและง่ายดาย

สร้าง WireGuard VPN ที่ปลอดภัยใน 5 นาที—รวดเร็วและง่ายดาย

คุณอาจเข้าใจแล้วว่า VPN ที่ดีมีความสำคัญเพียงใดในการรักษาความปลอดภัยและความเป็นส่วนตัวของการสื่อสารบนมือถือของคุณ

ไม่ว่าคุณจะต้องใช้โทรศัพท์เพื่อทำธุรกรรมทางการเงินผ่านสนามบินสาธารณะหรือร้านกาแฟ WiFi หรือคุณกังวลเกี่ยวกับคนผิดที่แอบฟังการโต้ตอบออนไลน์ของคุณ การเข้ารหัสแบบทันเนลที่ VPN ดีๆ มอบให้คุณนั้นมีคุณค่าอย่างยิ่ง

อย่างไรก็ตาม เคล็ดลับคือการหา VPN ที่ "ดี" จริงๆ – และทั้งสะดวกและราคาไม่แพง

มีบริการ VPN เชิงพาณิชย์มากมาย และการกำหนดค่าบริการดังกล่าวสำหรับโทรศัพท์หรือแล็ปท็อปของคุณมักจะทำได้ง่ายเพียงพอ

แต่บริการดังกล่าวมาพร้อมกับข้อเสียที่อาจเกิดขึ้นสองประการ:มักจะมีราคาแพง โดยมีการชำระเงินโดยเฉลี่ยประมาณ $10 ต่อเดือน และคุณไม่สามารถแน่ใจได้ 100% ว่าบริการเหล่านั้นจะไม่รั่วไหลหรือใช้ข้อมูลของคุณในทางที่ผิด (โดยตั้งใจหรือโดยตั้งใจ)

นอกจากนี้ VPN ที่ราคาถูกกว่ามักจะจำกัดการใช้ข้อมูลและจำนวนอุปกรณ์ที่คุณสามารถเชื่อมต่อได้

หากคุณชอบชมวิดีโอบทช่วยสอนเพื่อเสริมการเรียนรู้ของคุณ โปรดติดตามได้ที่นี่:

สิ่งที่ WireGuard มอบให้

แต่หากคุณมีเซิร์ฟเวอร์ Linux บนคลาวด์ที่ทำงานอยู่แล้ว การสร้าง WireGuard VPN อาจเป็นวิธีที่ง่ายและฟรีในการเพิ่มความปลอดภัยและความเป็นส่วนตัวที่จริงจังและไร้การประนีประนอมให้กับชีวิตของคุณ

หากคุณวางแผนที่จะจำกัด VPN ไว้เฉพาะอุปกรณ์ที่คุณและเพื่อนสองสามคนเป็นเจ้าของ คุณอาจไม่สังเกตเห็นการโหลดทรัพยากรเพิ่มเติมบนเซิร์ฟเวอร์ของคุณเลยด้วยซ้ำ แม้ว่าคุณจะต้องเริ่มใช้งานและชำระค่าอินสแตนซ์ AWS EC2 t2.micro เฉพาะ ค่าใช้จ่ายรายปีก็ควรจะถูกกว่า VPN เชิงพาณิชย์ส่วนใหญ่อย่างมาก และเพื่อเป็นโบนัส คุณจะได้ควบคุมข้อมูลของคุณได้อย่างสมบูรณ์

ตอนนี้ ฉันจะแสดงให้คุณเห็นว่าทั้งหมดนี้ทำงานอย่างไรโดยใช้ซอฟต์แวร์โอเพ่นซอร์ส WireGuard บนเซิร์ฟเวอร์ Ubuntu Linux

ทำไมต้อง WireGuard? เพราะมันใช้งานง่ายจริงๆ ได้รับการออกแบบมาให้ต้านทานการโจมตีเป็นพิเศษ และทำได้ดีมากจนเพิ่งถูกรวมเข้ากับเคอร์เนล Linux เมื่อไม่นานมานี้

งานจริงที่จะทำให้สิ่งนี้เกิดขึ้นจะเป็นเช่นนั้นจริงๆ ใช้เวลาเพียงห้านาทีหรือน้อยกว่านั้น ต้องบอกว่าการวางแผนสิ่งต่าง ๆ การแก้ไขปัญหาที่ไม่คาดคิด และหากจำเป็น การเปิดตัวเซิร์ฟเวอร์ใหม่อาจเพิ่มเวลาที่สำคัญให้กับโปรเจ็กต์

วิธีการตั้งค่าสภาพแวดล้อมของคุณ

ก่อนอื่น คุณจะต้องเปิดพอร์ต UDP 51820 ในไฟร์วอลล์ที่คุณใช้อยู่ ต่อไปนี้คือลักษณะที่จะค้นหากลุ่มความปลอดภัยที่เกี่ยวข้องกับอินสแตนซ์ AWS EC2:

สร้าง WireGuard VPN ที่ปลอดภัยใน 5 นาที—รวดเร็วและง่ายดาย

ตอนนี้บนเซิร์ฟเวอร์ Linux ให้ใช้ sudo shell เราจะเริ่มต้นด้วยการติดตั้งแพ็คเกจ WireGuard และ resolvconf

ในทางเทคนิคแล้ว เราอาจไม่จำเป็นต้องแก้ไขที่นี่ แต่เนื่องจากนั่นคือสิ่งที่คุณต้องการหากคุณต้องการตั้งค่าเครื่อง Linux เป็น ไคลเอนต์ WireGuard ฉันคิดว่าฉันจะโยนมันลงไปที่นี่เหมือนกัน

apt install wireguard resolvconf

วิธีสร้างคีย์การเข้ารหัส

01 คำสั่งสร้างคีย์เข้ารหัสส่วนตัวใหม่และบันทึกเป็นไฟล์ในไดเร็กทอรี /etc/wireguard ไดเรกทอรีนี้ถูกสร้างขึ้นโดยอัตโนมัติเมื่อเราติดตั้ง WireGuard

11 คำสั่งตั้งค่าการอนุญาตที่เข้มงวดที่เหมาะสมสำหรับไฟล์คีย์ส่วนตัวนั้น

เช่นเดียวกับทุกสิ่งใน Linux มีวิธีอื่นในการทำให้สำเร็จ แต่เพียงให้แน่ใจว่าคุณทำถูกต้อง

wg genkey | sudo tee /etc/wireguard/private.key
chmod go= /etc/wireguard/private.key

ต่อไป เราจะใช้ค่าของคีย์ส่วนตัวของเราเพื่อสร้างคีย์สาธารณะที่ตรงกัน ซึ่งจะถูกบันทึกไว้ในไดเร็กทอรี /etc/wireguard ด้วย เป้าหมายคือการเพิ่ม สาธารณะ ของเซิร์ฟเวอร์ กุญแจสำคัญในการกำหนดค่า WireGuard บนอุปกรณ์ไคลเอนต์ทั้งหมดที่เราจะใช้ จากนั้นจึงเพิ่มกุญแจสาธารณะของไคลเอนต์เหล่านั้นในการกำหนดค่าเซิร์ฟเวอร์ที่นี่

คีย์ส่วนตัวไม่ควรละทิ้งเครื่องที่ถูกสร้างขึ้น และควรได้รับการปกป้องอย่างระมัดระวังเสมอ

cat /etc/wireguard/private.key | wg pubkey | sudo tee

วิธีกำหนดค่าเซิร์ฟเวอร์ WireGuard

ตอนนี้เราพร้อมที่จะสร้างไฟล์การกำหนดค่าเซิร์ฟเวอร์แล้ว ตามแบบแผน ฉันจะตั้งชื่อไฟล์ wg0.conf แต่คุณสามารถตั้งชื่อไฟล์ได้ตามต้องการ คุณยังสามารถมีการกำหนดค่าหลายรายการ (ด้วยชื่อไฟล์ที่แตกต่างกัน) ที่มีอยู่ในเวลาเดียวกันได้

การกำหนดค่าของเราจะมีลักษณะดังนี้:

[Interface]
Address = 10.5.5.1/24
ListenPort = 51820
# Use your own private key, from /etc/wireguard/privatekey
PrivateKey = your_key
[Peer]
# Workstation public key
PublicKey = your_key
# VPN client's IP address in the VPN
AllowedIPs = 10.5.5.2/32
[Peer]
# laptop public key
PublicKey = your_key
# VPN client's IP address in the VPN
AllowedIPs = 10.5.5.3/32

โปรดสังเกตว่าไฟล์นี้มีสามส่วน:ส่วนต่อประสานและสองเพียร์ ส่วนอินเทอร์เฟซจะกำหนดที่อยู่เครือข่าย NAT ส่วนตัวที่เซิร์ฟเวอร์ของเราจะใช้ นั่นคือที่อยู่ส่วนตัวที่ไคลเอนต์จะเชื่อมต่อด้วย หลังจากร้องขอการเข้าถึงผ่านที่อยู่ IP สาธารณะของเซิร์ฟเวอร์ในครั้งแรกแน่นอน

คุณไม่จำเป็นต้องปฏิบัติตามที่อยู่ของฉัน ตราบใดที่คุณใช้ช่วง IP ส่วนตัวที่ถูกต้องซึ่งไม่ทับซ้อนกับบล็อกเครือข่ายใดๆ ที่เซิร์ฟเวอร์หรือไคลเอนต์ของคุณใช้

เพื่อให้ตรงกับกฎกลุ่มความปลอดภัย UDP ที่ฉันตั้งค่าไว้ก่อนหน้านี้ใน AWS ฉันกำลังกำหนด ListenPort เป็น 51820 แต่ฉันสามารถเลือกที่อยู่อื่นเพื่อเพิ่มความปลอดภัยอีกเล็กน้อยได้หากต้องการ

สุดท้าย ฉันจะวางคีย์ส่วนตัวของเซิร์ฟเวอร์เป็นค่า 28 ดังนั้น WireGuard จะสามารถตรวจสอบคำขอของลูกค้าที่เข้ามาได้

36 ตัวแรก ส่วนไม่มีอะไรมากไปกว่า สาธารณะ คีย์และกำหนดที่อยู่ IP ส่วนตัวของลูกค้ารายหนึ่ง 41 ตัวที่สอง ส่วนทำเช่นเดียวกันกับเครื่องไคลเอนต์เครื่องที่สอง

การรับกุญแจสาธารณะเหล่านั้นจากไคลเอนต์ถือเป็นงานที่ต้องทำด้วยตนเองมากที่สุดในการตั้งค่าทั้งหมดนี้ แต่เนื่องจากนี่คือ VPN ของคุณเอง คุณจึงสามารถหาวิธีคัดลอกและวางลงในการกำหนดค่าเซิร์ฟเวอร์ของคุณได้โดยตรง ดังนั้นคุณจึงไม่จำเป็นต้องพิมพ์ทั้งหมดอย่างยุ่งยาก

นั่นควรจะเป็นทุกอย่าง ฉันจะใช้ 55 คำสั่งเพื่อทำให้ VPN มีชีวิตชีวา 68 บอกให้ WireGuard อ่านการกำหนดค่า wg0.conf ที่เราเพิ่งสร้างขึ้น และใช้เพื่อสร้างอินเทอร์เฟซ VPN ใหม่

wg-quick up wg0

กำลังรัน 70 จะแสดงให้เราเห็นว่ามันได้ผล สุดท้ายนี้ ฉันจะเรียกใช้ 87 เพื่อบอกให้ Linux โหลดอินเทอร์เฟซ WireGuard นี้โดยอัตโนมัติทุกครั้งที่รีบูตเซิร์ฟเวอร์

systemctl enable wg-quick@wg0

วิธีกำหนดค่าไคลเอ็นต์ WireGuard

นั่นคือทั้งหมดที่เราต้องการจากฝั่งเซิร์ฟเวอร์ การตั้งค่าอุปกรณ์ไคลเอนต์ของคุณด้วย WireGuard นั้นอาจจะง่ายกว่ามากหรือน้อยกว่านั้นก็ได้เหมือนกัน

นั่น ทำอะไร หมายถึง? หากคุณใช้งาน Windows, macOS, Android หรือ iOS จะมีลิงก์ไปยังแอป GUI ที่มีอยู่ในหน้า wireguard.com/install นี้ แอปเหล่านั้นจะสร้างคู่คีย์ สำหรับ คุณ. คุณจะต้องป้อนที่อยู่ IP หรือโดเมนของเซิร์ฟเวอร์และรหัสสาธารณะเท่านั้น จากนั้นคุณจะนำคีย์สาธารณะของลูกค้าและเพิ่มลงในไฟล์เซิร์ฟเวอร์ wg0.conf ตามที่ฉันแสดงให้คุณเห็นก่อนหน้านี้

อย่างไรก็ตาม หากเป็นไคลเอนต์ Linux PC หรือแล็ปท็อปที่คุณต้องการเพิ่ม มันก็จะซับซ้อนกว่าเล็กน้อย โดยพื้นฐานแล้ว คุณจะทำตามขั้นตอนทั้งหมดที่คุณเห็นสำหรับการกำหนดค่าเซิร์ฟเวอร์ รวมถึงการสร้างคีย์ด้วย คุณยังจะสร้างไฟล์กำหนดค่าชื่อ wg0-conf ด้วย (หากเป็นชื่อที่คุณต้องการ) แต่ไฟล์กำหนดค่าควรมีลักษณะดังนี้:

[Interface]
# The address your computer will use on the VPN
Address = 10.5.5.2/32
DNS = 8.8.8.8
# Load your privatekey from file
PostUp = wg set %i private-key /etc/wireguard/privatekey
# Also ping the vpn server to ensure the tunnel is initialized
PostUp = ping -c1 10.47.47.1
[Peer]
# VPN server's wireguard public key
PublicKey = your_key
# Public IP address of your VPN server (USE YOURS!)
Endpoint = 54.160.21.183:51820
# 10.0.0.0/24 is the VPN subnet
AllowedIPs = 10.47.47.0/24
# PersistentKeepalive = 25

90 ส่วนนี้หมายถึงเครื่องไคลเอนต์ในขณะที่ 108 ส่วนด้านล่างหมายถึงเซิร์ฟเวอร์ เริ่มต้นด้วย 118 . ที่อยู่ IP ส่วนตัวควรตรงกับที่อยู่ที่คุณให้ไคลเอ็นต์นี้ในการกำหนดค่าบนเซิร์ฟเวอร์

หากคุณต้องการให้ไคลเอนต์ของคุณเลี่ยงผ่านเซิร์ฟเวอร์ DNS ในเครื่อง คุณสามารถระบุเซิร์ฟเวอร์ DNS แบบกำหนดเองได้ที่นี่ อันนี้คืออันที่ Google จัดให้

แทนที่จะฮาร์ดโค้ดคีย์ส่วนตัวในเครื่องของคุณลงในไฟล์การกำหนดค่าเหมือนกับที่เราทำบนเซิร์ฟเวอร์ คุณสามารถบอกให้ WireGuard อ่านไฟล์คีย์ส่วนตัวทุกครั้งที่โหลดได้ นี่อาจเป็นแนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัยเล็กน้อย และเราก็สามารถทำบนเซิร์ฟเวอร์ได้อย่างง่ายดายเช่นกัน สุดท้ายนี้ สคริปต์การกำหนดค่าจะทดสอบการเชื่อมต่อของเรากับ 123 คำสั่ง ping.

131 – หรือเซิร์ฟเวอร์ – การกำหนดค่าต้องใช้ สาธารณะ ของเซิร์ฟเวอร์ คีย์ซึ่งเพิ่มไว้ที่นี่

141 เป็นที่ที่คุณบอก WireGuard ว่าจะค้นหาเซิร์ฟเวอร์ได้ที่ไหน ไม่มีอะไรจะทำงานได้หากไม่มีสิ่งนี้! ซึ่งจะต้องมี IP สาธารณะของเซิร์ฟเวอร์ หรือชื่อโดเมน ตามด้วยพอร์ตที่คุณเลือก อีกครั้ง 51820 เป็นค่าเริ่มต้นของ WireGuard

สุดท้าย 159 การตั้งค่าจะกำหนดช่วงที่อยู่เครือข่ายที่คุณจะใช้ และตัวเลือก 163 ค่าสามารถป้องกันการเชื่อมต่อที่หลุดได้

คุณเปิดใช้ WireGuard บนไคลเอนต์ทุกประการเหมือนกับที่คุณทำบนเซิร์ฟเวอร์ โดยใช้ 172 . ขอย้ำอีกครั้งว่าขั้นตอนทั้งหมดเหล่านั้นจำเป็นสำหรับไคลเอนต์ Linux เท่านั้น คุณสามารถใช้แอปสำหรับแพลตฟอร์มอื่นได้

สรุป

นั่นแหละครับ อย่างที่ฉันบอกไป VPN ที่ใช้งานได้ภายในเวลาประมาณห้านาที ตอนนี้คุณมีข้อแก้ตัวน้อยลงในการปกป้องความเป็นส่วนตัวออนไลน์และรักษาความปลอดภัยการสื่อสารของคุณ

เพื่อความดีด้านเทคโนโลยีเพิ่มเติม โปรดสมัครรับข้อมูลช่อง YouTube ของฉัน และเมื่อคุณมีเวลา ลองดู Linux, ความปลอดภัย, การวิเคราะห์ข้อมูล ตลอดจนหนังสือและหลักสูตร AWS มากมายที่มีให้บริการผ่านเว็บไซต์ bootstrap-it.com ของฉัน

เรียนรู้การเขียนโค้ดฟรี หลักสูตรโอเพ่นซอร์สของ freeCodeCamp ช่วยให้ผู้คนมากกว่า 40,000 คนได้งานในตำแหน่งนักพัฒนา เริ่มต้น