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

วิธีตั้งค่าเซิร์ฟเวอร์ VPN ที่บ้านฟรี

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

แต่ทำไมต้องเป็น VPN แล้วทำไมต้องเป็น WireGuard

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

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

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

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

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

WireGuard เป็นผู้เล่นรายใหญ่รายใหม่ล่าสุดจากสามผู้เล่นรายใหญ่ในโลกโอเพ่นซอร์ส VPN โดยอีกสองคนคือ IPsec และ OpenVPN

WireGuard สร้างขึ้นเพื่อให้ใช้งานง่ายขึ้น เร็วขึ้น และยืดหยุ่นกว่ารุ่นอื่นๆ เป็นเด็กใหม่ในบล็อก แต่ได้รับเพื่อนที่สำคัญบางคนอย่างรวดเร็ว ตามคำแนะนำของ Linus Torvalds ผู้สร้าง Linux เอง WireGuard เพิ่งรวมเข้ากับเคอร์เนล Linux

จะสร้างเซิร์ฟเวอร์ VPN ได้ที่ไหน

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

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

อย่างไรก็ตาม หากคุณมีอินเทอร์เน็ตเซิร์ฟเวอร์ที่มีความปลอดภัยอย่างมืออาชีพอยู่รอบๆ บ้าน (หรือคุณยินดีที่จะเสี่ยงโชคกับ Raspberry Pi สำรองที่คุณเคยโกหก) มันก็จะใช้งานได้ในลักษณะเดียวกัน

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

เตรียมตัวให้พร้อม

เริ่มต้นใช้งานอินสแตนซ์ระบบคลาวด์ของคุณ โดยอาจใช้บทช่วยสอนจากที่นี่

ตรวจสอบให้แน่ใจว่าพอร์ต 51820 เปิดให้เซิร์ฟเวอร์ของคุณ เสร็จสิ้นด้วย กลุ่มความปลอดภัย บน AWS และ ไฟร์วอลล์เครือข่าย VPC บน Google Cloud

ด้วยการเปิดตัว Debian/Ubuntu ที่ทันสมัย ​​ทำให้ Wireguard สามารถติดตั้งได้จากตัวจัดการแพ็คเกจดังนี้:

sudo apt install wireguard

หรือกับยำ จากที่เก็บ EPEL:

sudo yum install kmod-wireguard wireguard-tools

ขั้นตอนที่หนึ่ง:สร้างคีย์การเข้ารหัส

ในไดเร็กทอรีใดๆ บนเซิร์ฟเวอร์ที่คุณต้องการสร้างไฟล์ที่มีคีย์สาธารณะและคีย์ส่วนตัว ให้ใช้คำสั่งนี้:

umask 077; wg genkey | tee privatekey | wg pubkey > publickey

ทำเช่นเดียวกันกับไคลเอนต์ในไดเร็กทอรีอื่นหรือบนเครื่องของคุณ เพียงตรวจสอบให้แน่ใจว่าคุณจะสามารถแยกแยะระหว่างชุดคีย์ต่างๆ ได้ในภายหลัง

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

ขั้นตอนที่สอง:สร้างการกำหนดค่าเซิร์ฟเวอร์

คุณต้องสร้าง .conf ไฟล์ในไดเร็กทอรี /etc/wireguard คุณยังสามารถใช้งาน VPN หลายตัวพร้อมกันได้โดยใช้พอร์ตที่ต่างกัน

วางรหัสต่อไปนี้ในไฟล์ใหม่:

sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.0.0.1/24
ListenPort = 51820
# use the server PrivateKey
PrivateKey = GPAtRSECRETLONGPRIVATEKEYB0J/GDbNQg6V0s=

# you can have as many peers as you wish
# remember to replace the values below with the PublicKey of the peer

[Peer]
PublicKey = NwsVexamples4sBURwFl6HVchellou6o63r2B0s=
AllowedIPs = 10.0.0.2/32

[Peer]
PublicKey = NwsexampleNbw+s4sBnotFl6HrealxExu6o63r2B0s=
AllowedIPs = 10.0.0.3/32

เริ่มต้น VPN

sudo systemctl start wg-quick@wg0

หากคุณไม่มี systemd (ซึ่งอาจเป็นจริงหากอินสแตนซ์ของคุณใช้งาน Amazon Linux) คุณสามารถใช้ sudo wg-quick up wg0 .

ขั้นตอนที่สาม:สร้างการกำหนดค่าไคลเอ็นต์

ขั้นแรกให้ติดตั้ง Wireguard บนเครื่องไคลเอนต์ของคุณ ด้วยวิธีเดียวกันบน Linux หรือผ่าน App Store หากคุณใช้ Windows, macOS, Android หรือ iPhone

หากคุณใช้ตัวสร้างคีย์ออนไลน์หรือสคริปต์ QR ในขั้นตอนที่หนึ่ง คุณจะเชื่อมต่อโทรศัพท์ได้โดยการถ่ายภาพโค้ด QR

เมื่อติดตั้ง WireGuard บนไคลเอนต์แล้ว ให้กำหนดค่าโดยใช้ค่าเหล่านี้:

# Replace the PrivateKey value with the one from your client interface
[Interface]
Address = 10.0.0.2/24
ListenPort = 51820
PrivateKey = CNNjIexAmple4A6NMkrDt4iyKeYD1BxSstzer49b8EI=

#use the VPN server's PublicKey and the Endpoint IP of the cloud instance
[Peer]
PublicKey = WbdIAnOTher1208Uwu9P17ckEYxI1OFAPZ8Ftu9kRQw=
AllowedIPs = 0.0.0.0/0
Endpoint = 34.69.57.99:51820

มีตัวเลือกเสริมมากมายที่คุณอาจต้องการโดยขึ้นอยู่กับกรณีการใช้งานของคุณ เช่น การระบุ DNS หรือคีย์ที่แชร์ล่วงหน้าเพื่อความปลอดภัยอีกชั้นหนึ่ง

เริ่มต้นไคลเอนต์ในลักษณะเดียวกับเซิร์ฟเวอร์หากคุณใช้ Linux หรือผ่านแอปพลิเคชันบนระบบอื่น

ทดสอบ VPN ของคุณ

พิมพ์ "my ip" ในเบราว์เซอร์เพื่อค้นหาที่อยู่ IP สาธารณะของคุณ หาก IP ที่คุณได้รับแตกต่างจากที่อยู่ที่คอมพิวเตอร์ของคุณมีก่อนเริ่ม VPN แสดงว่าคุณประสบความสำเร็จ!

(และถ้าลืมว่าเมื่อก่อน ให้ลอง sudo systemctl stop wg-quick@wg0 ให้ตรวจสอบแล้วเริ่มใหม่อีกครั้ง)

คู่มือการแก้ไขปัญหา

ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ของคุณได้รับการกำหนดค่าสำหรับการส่งต่อ IP ตรวจสอบไฟล์ /etc/sysctl.conf หรือเรียกใช้:

echo 1 > /proc/sys/net/ipv4/ip_forward

การเชื่อมต่อของคุณตายบ่อย? เพิ่มในส่วนเพียร์ของการกำหนดค่าไคลเอนต์:

PersistentKeepalive = 25

ไม่แน่ใจว่าทำไมมันไม่ทำงาน? ลอง sudo tcpdump -i eth บนเซิร์ฟเวอร์ขณะพยายามใช้ไคลเอนต์

ขอขอบคุณที่อ่านคู่มือนี้

หากคุณต้องการดำดิ่งให้ลึกยิ่งขึ้น ลองพิจารณาหลักสูตร Manning แบบชำระเงินของฉันใน WireGuard VPN