วิธีโฮสต์ VPN ของคุณเองด้วย Algo และ Cloud Hosting
เผยแพร่แล้ว: 2022-01-29บริษัททั่วโลกขายบริการ VPN เพื่อรักษาความปลอดภัยกิจกรรมออนไลน์ของคุณ แต่คุณสามารถไว้วางใจผู้ให้บริการ VPN ได้จริงหรือ? หากคุณต้องการ คุณสามารถสร้างเครือข่ายส่วนตัวเสมือนของคุณเองด้วยซอฟต์แวร์โอเพ่นซอร์ส Algo และผู้ให้บริการคลาวด์โฮสติ้งที่คุณเลือก
VPN และความน่าเชื่อถือ
ไม่ว่านโยบายความเป็นส่วนตัวจะพูดหรืออวดอ้างอะไรเกี่ยวกับการตรวจสอบความปลอดภัยในบล็อกของบริษัท ไม่มีอะไรหยุด VPN จากการตรวจสอบทุกสิ่งที่คุณทำทางออนไลน์ ในท้ายที่สุด การเลือกบริการ VPN ทั้งหมดนั้นขึ้นอยู่กับความไว้วางใจ
หากการไว้วางใจบริการออนไลน์แบบ faceless ไม่ใช่เรื่องของคุณ ทางเลือกหนึ่งคือการเรียกใช้เซิร์ฟเวอร์ VPN ของคุณเอง สิ่งนี้เคยเป็นงานที่น่ากลัว แต่ต้องขอบคุณโครงการโอเพ่นซอร์ส Algo จากบริษัทรักษาความปลอดภัย Trail of Bits การสร้าง VPN ของคุณเองจึงเป็นเรื่องง่าย
คุณสามารถเรียกใช้และควบคุมเซิร์ฟเวอร์ VPN แบบเต็มเวลาได้ในราคา $5 ต่อเดือน ยิ่งไปกว่านั้น คุณสามารถใช้ Algo เพื่อตั้งค่าและทำลายเซิร์ฟเวอร์ VPN ได้ตามต้องการ และประหยัดเงินในกระบวนการ
ในการตั้งค่า Algo คุณต้องใช้บรรทัดคำสั่ง หากนั่นดูไม่ดี ไม่ต้องกังวล เราจะแนะนำคุณในทุกขั้นตอน
คำแนะนำเหล่านี้อาจดูเหมือนเยอะ แต่นั่นเป็นเพียงเพราะเรากำลังอธิบายให้มากที่สุด เมื่อคุณสร้าง VPN ด้วย Algo สองสามครั้งแล้ว ก็ไม่น่าจะใช้เวลานานนัก นอกจากนี้ คุณต้องตั้งค่าสภาพแวดล้อมการติดตั้งของ Algo เพียงครั้งเดียวเท่านั้น หลังจากนั้น คุณสามารถสร้างเซิร์ฟเวอร์ VPN ใหม่ได้ด้วยการกดแป้นไม่กี่ครั้ง
แต่คุณสามารถเชื่อได้หรือไม่ว่าสคริปต์ของ Algo ไม่ได้ทำอะไรที่เลวร้าย? ข่าวดีก็คือรหัสของ Algo นั้นเปิดเผยต่อสาธารณะบน GitHub ให้ทุกคนได้ดู นอกจากนี้ ผู้เชี่ยวชาญด้านความปลอดภัยหลายคนสนใจโครงการ Algo ซึ่งทำให้การกระทำผิดมีโอกาสน้อยลง
ที่เกี่ยวข้อง: VPN คืออะไรและเหตุใดฉันจึงต้องการ
สิ่งที่อัลโกทำได้ (และทำไม่ได้)
VPN เป็นวิธีที่ดีในการปกป้องกิจกรรมออนไลน์ของคุณ โดยเฉพาะอย่างยิ่งบนเครือข่าย Wi-Fi สาธารณะในสนามบินหรือร้านกาแฟ VPN ทำให้การท่องเว็บปลอดภัยยิ่งขึ้นและขัดขวางผู้ประสงค์ร้ายที่อาจอยู่ในเครือข่าย Wi-Fi ในพื้นที่เดียวกัน VPN สามารถช่วยได้เช่นกันหาก ISP ของคุณจำกัดการรับส่งข้อมูลบางประเภท เช่น ทอร์เรนต์
แต่ระวัง โจรสลัด! การดาวน์โหลด booty ผ่าน VPN ของคุณเองไม่ใช่ความคิดที่ดี เนื่องจากคุณสามารถติดตามกิจกรรมกลับมาหาคุณได้ง่ายกว่า
นอกจากนี้ หากคุณต้องการดู Netflix ผ่าน VPN คุณจะต้องมองหาที่อื่น เพราะ Algo ใช้งานไม่ได้ อย่างไรก็ตาม มีบริการเชิงพาณิชย์มากมายที่รองรับ Netflix
ข้อกำหนดเบื้องต้นสำหรับ Algo
ในการทำให้เซิร์ฟเวอร์ Algo VPN ทำงานได้ คุณต้องมีเชลล์ Unix Bash บนระบบ Mac หรือ Linux คุณสามารถใช้โปรแกรม Terminal ได้ แต่สำหรับ Windows คุณจะต้องเปิดใช้งานระบบย่อยสำหรับ Linux ต่อไปนี้คือวิธีการติดตั้งและใช้เปลือก Linux Bash บน Windows 10
คุณจะต้องมีบัญชีที่ผู้ให้บริการโฮสต์เซิร์ฟเวอร์คลาวด์ด้วย Algo รองรับสิ่งต่อไปนี้ทั้งหมด:
- DigitalOcean
- อเมซอน ไลท์เซล
- อเมซอน EC2
- Vultr
- Microsoft Azure
- Google Compute Engine
- สเกลเวย์
- เฮทซ์เนอร์ คลาวด์
- นอกจากนี้ยังติดตั้งไปยังอินสแตนซ์ OpenStack และ CloudStack
หากคุณไม่เคยใช้บริการเหล่านี้ เราขอแนะนำ DigitalOcean เนื่องจากใช้งานง่ายมาก นอกจากนี้ยังเป็นบริการที่เรากำลังใช้ในบทช่วยสอนนี้ กระบวนการจะแตกต่างออกไปเล็กน้อยหากคุณใช้ผู้ให้บริการรายอื่น
เมื่อบัญชี DigitalOcean ของคุณพร้อมใช้งาน ให้ลงชื่อเข้าใช้ จากนั้นจากแดชบอร์ดหลัก ให้เลือก "API" จากแถบด้านซ้ายใต้หัวข้อ "บัญชี"
ในหน้าถัดไป ให้คลิก “สร้างโทเค็นใหม่” โทเค็นการเข้าถึงคือชุดตัวอักษรและตัวเลขยาวๆ ที่อนุญาตให้เข้าถึงทรัพยากรของบัญชีโดยไม่ต้องใช้ชื่อผู้ใช้และรหัสผ่าน คุณจะต้องตั้งชื่อโทเค็นใหม่ โดยทั่วไป คุณควรตั้งชื่อตามแอปพลิเคชันที่คุณกำลังใช้ เช่น “algo” หรือ “ian-algo” (หากชื่อจริงของคุณคือ Ian)
หลังจากสร้างโทเค็นใหม่แล้ว ให้คัดลอกและวางลงในเอกสารข้อความบนเดสก์ท็อปของคุณ คุณจะต้องใช้ภายในไม่กี่นาที
การตั้งค่าสภาพแวดล้อมของคุณ
กลับมาที่เดสก์ท็อป เปิดหน้าต่างเทอร์มินัลใหม่ พิมพ์ cd
(สำหรับ "เปลี่ยนไดเรกทอรี" ซึ่งเป็นโฟลเดอร์ที่เรียกว่า Unix world) แล้วกด Enter เพื่อให้แน่ใจว่าคุณกำลังทำงานจากโฮมไดเร็กทอรีของเทอร์มินัล
ในการเขียนนี้ Algo ต้องการ Python 3.6 หรือใหม่กว่า พิมพ์ข้อมูลต่อไปนี้ลงในโปรแกรมเทอร์มินัลของคุณ:
python3 --version
หากคุณได้รับการตอบกลับเช่น Python 3.6.9
คุณก็พร้อมแล้ว ถ้าไม่คุณจะต้องติดตั้ง Python 3
ในการติดตั้ง Python 3 บน Mac คุณสามารถใช้ตัวจัดการแพ็คเกจ Homebrew เมื่อ Homebrew พร้อมใช้งานแล้ว ให้พิมพ์คำสั่งต่อไปนี้ในหน้าต่าง Terminal:
ชงติดตั้ง python3
หากคุณใช้ Ubuntu Linux หรือ WSL บน Windows พวกเขาควรมี Python 3 เป็นค่าเริ่มต้น หากไม่เป็นเช่นนั้น วิธีการติดตั้งจะแตกต่างกันไปตามรุ่นของ Linux ค้นหา "ติดตั้ง Python 3 บน [ใส่เวอร์ชันของ Linux ที่นี่]" ทางออนไลน์เพื่อดูคำแนะนำ
ถัดไป คุณต้องติดตั้ง Virtualenv ของ Python3 เพื่อสร้างสภาพแวดล้อม Python แบบแยกสำหรับ Algo พิมพ์ข้อมูลต่อไปนี้ใน Bash บน Mac:
python3 -m pip ติดตั้ง -- อัปเกรด virtualenv
บน Ubuntu Linux และ WSL คำสั่งมีดังต่อไปนี้:
sudo apt install -y python3-virtualenv
โปรดทราบว่าเรากำลังปรับแต่งบทช่วยสอนนี้สำหรับ Ubuntu และการแจกจ่ายที่เกี่ยวข้อง แต่คำแนะนำเหล่านี้จะใช้ได้กับ Linux เวอร์ชันอื่นโดยมีการเปลี่ยนแปลงเล็กน้อย ตัวอย่างเช่น หากคุณใช้ CentOS คุณจะต้องแทนที่คำแนะนำโดยใช้ apt
ด้วย dnf
ต่อไปเราต้องดาวน์โหลด Algo ด้วยคำสั่ง wget
Mac ไม่ได้ติดตั้ง wget
ตามค่าเริ่มต้น ดังนั้นหากต้องการใช้งานผ่าน Homebrew ให้พิมพ์ดังต่อไปนี้:
ชงติดตั้ง wget
มาดาวน์โหลดไฟล์ของ Algo กัน:
wget https://github.com/trailofbits/algo/archive/master.zip
หลังจาก wget
เสร็จสิ้น จะมีไฟล์บีบอัดชื่อ “master.zip” ในไดเร็กทอรีโฮมของเทอร์มินัล ลองตรวจสอบว่าด้วย ls
หากคุณเห็น “master.zip” ในรายการไฟล์และโฟลเดอร์ที่ปรากฏขึ้น แสดงว่าคุณพร้อมแล้ว ถ้าไม่ลองเรียกใช้ wget
อีกครั้ง
ตอนนี้เราต้องคลายซิปไฟล์ ดังนั้นเราจึงพิมพ์ดังต่อไปนี้:
เปิดเครื่องรูด master.zip
เสร็จแล้วกด ls
อีกครั้ง ตอนนี้คุณควรเห็นโฟลเดอร์ใหม่ในโฮมไดเร็กทอรีชื่อ "algo-master"
เราเกือบจะพร้อมสำหรับการดำเนินการแล้ว แต่ก่อนอื่น เราต้องตั้งค่าสภาพแวดล้อมแบบแยกอิสระและติดตั้งการพึ่งพาอื่นๆ อีกสองสามรายการ คราวนี้เราจะทำงานในโฟลเดอร์ “algo-master”
พิมพ์ข้อมูลต่อไปนี้เพื่อสลับไปยังโฟลเดอร์:
cd ~/algo-master
ตรวจสอบให้แน่ใจว่าคุณอยู่ที่นั่นด้วยคำสั่งนี้:
pwd
นี้ย่อมาจาก "ไดเร็กทอรีงานพิมพ์" และควรแสดงให้คุณเห็นเช่น /home/Bob/algo-master
หรือ /Users/Bob/algo-master
ตอนนี้เรามาถูกที่แล้ว มาเตรียมทุกอย่างให้พร้อมกัน
คัดลอกและวางหรือพิมพ์คำสั่งด้านล่างในบรรทัดเดียว (อย่ากด Enter จนจบ):
python3 -m virtualenv --python="$(command -v python3)" .env && source .env/bin/activate && python3 -m pip install -U pip virtualenv && python3 -m pip ติดตั้ง -r requirements.txt
สิ่งนี้จะทริกเกอร์การดำเนินการมากมายภายในไดเร็กทอรี Algo เพื่อเตรียมการรัน
ถัดไป คุณต้องตั้งชื่อผู้ใช้ของคุณสำหรับ VPN หากคุณไม่ตั้งชื่อทั้งหมดในตอนนี้ คุณจะต้องกดคีย์ความปลอดภัยค้างไว้ (ซึ่งมีความปลอดภัยน้อยกว่า) หรือเริ่มเซิร์ฟเวอร์ใหม่ตั้งแต่ต้นในภายหลัง
ไม่ว่าจะด้วยวิธีใด ให้พิมพ์สิ่งต่อไปนี้ในเทอร์มินัล:
nano config.cfg
ซึ่งเป็นการเปิดตัวแก้ไขข้อความบรรทัดคำสั่งที่ใช้งานง่าย Nano ไฟล์กำหนดค่า Algo มีข้อมูลมากมาย แต่เราสนใจเฉพาะส่วนที่ระบุว่า "ผู้ใช้" สิ่งที่คุณต้องทำคือลบชื่อผู้ใช้เริ่มต้น (โทรศัพท์ แล็ปท็อป เดสก์ท็อป) และพิมพ์ชื่อสำหรับแต่ละอุปกรณ์ที่คุณต้องการบน VPN
ตัวอย่างเช่น หากฉันกำลังสร้าง VPN สำหรับตัวเอง บิล และแมรี่ ไฟล์ปรับแต่งอาจมีลักษณะดังนี้:
users:
- Ian_PC
- Bill_Mac
- Mary_PC
- Ian_Android
- Bill_iPhone
- Mary_iPhone
เมื่อคุณตั้งชื่อทุกคนแล้ว ให้กด Ctrl+O เพื่อบันทึกไฟล์ ตามด้วย Ctrl+X เพื่อออก
เราเกือบจะพร้อมสำหรับการดำเนินการแล้ว แต่ผู้ใช้ Windows จำเป็นต้องอ้อมไปก่อน WSL มักจะไม่ได้ตั้งค่าการอนุญาตผู้ใช้ที่ถูกต้องสำหรับโฟลเดอร์ Algo ซึ่งทำให้ Ansible ไม่พอใจ (เครื่องมือ Algo อาศัยในการปรับใช้เซิร์ฟเวอร์)
บน WSL ให้พิมพ์ดังต่อไปนี้เพื่อกลับไปที่โฮมไดเร็กทอรีของคุณ:
ซีดี
จากนั้นพิมพ์ดังต่อไปนี้:
chmod 755 -R ~/algo-master
หากต้องการกลับไปที่โฟลเดอร์ Algo ให้พิมพ์:
cd ~/algo-master
วิ่งอัลโก
และตอนนี้คือช่วงเวลาแห่งความจริง
จากโฟลเดอร์ algo-master
พิมพ์ต่อไปนี้ในหน้าต่างเทอร์มินัล:
./อัลโก
การกำหนดค่า Algo ควรเริ่มทำงาน คุณจะรู้ว่ามันใช้งานได้เมื่อถามว่าคุณต้องการใช้ผู้ให้บริการระบบคลาวด์รายใด ในกรณีของเรา เราเลือกหมายเลข (1) สำหรับ DigitalOcean
หาก Algo ล้มเหลว อาจมีสาเหตุหลายประการที่เราไม่สามารถคาดเดาได้ที่นี่ หากข้อผิดพลาดแจ้งว่าไดเร็กทอรีของคุณ "สามารถกำหนดค่าการเขียนทั่วโลกได้" ให้ทำตามคำแนะนำด้านบนเพื่อเปลี่ยนการอนุญาต
หากคุณได้รับข้อผิดพลาดอื่น ให้ตรวจสอบหน้าการแก้ไขปัญหาในที่เก็บโปรเจ็กต์ Algo บน GitHub คุณยังสามารถคัดลอกข้อความแสดงข้อผิดพลาดแล้ววางลงใน Google เพื่อค้นหาได้ คุณควรหาโพสต์ในฟอรัมที่จะช่วยคุณได้ เนื่องจากคุณไม่น่าจะเป็นคนแรกที่ได้รับข้อผิดพลาดนั้น
ถัดไป คุณจะถูกถามถึงโทเค็นการเข้าถึงที่คุณคัดลอกไว้ก่อนหน้านี้จากบัญชี DigitalOcean ของคุณ คัดลอกและวางลงในเทอร์มินัล คุณจะไม่เห็นอะไรเลยเพราะ Bash ไม่แสดงอักขระสำหรับรายการรหัสผ่านและวลีความปลอดภัย ตราบใดที่คุณกดวางแล้วกด Enter ก็ควรจะใช้ได้
หากไม่สำเร็จ คุณอาจจะแค่ทำ Paste ให้ยุ่งเหยิง ซึ่งทุกคนทำใน Bash เพียงพิมพ์ข้อมูลต่อไปนี้เพื่อลองอีกครั้ง:
./อัลโก
เมื่อ Algo ทำงาน ให้ตอบคำถามที่ถาม ทั้งหมดนี้ค่อนข้างตรงไปตรงมา เช่นเดียวกับสิ่งที่คุณต้องการตั้งชื่อเซิร์ฟเวอร์ของคุณ (การใช้ “algo” ในชื่อเป็นความคิดที่ดี)
จากนั้นระบบจะถามว่าคุณต้องการเปิดใช้งาน "Connect on Demand" สำหรับอุปกรณ์ Mac และ iOS หรือไม่ หากคุณไม่ได้ใช้อุปกรณ์เหล่านี้ ให้พิมพ์ N แทน นอกจากนี้ยังจะถามว่าคุณต้องการเก็บคีย์ PKI ไว้เพื่อเพิ่มผู้ใช้ในภายหลังหรือไม่ โดยทั่วไป คุณจะพิมพ์ N ที่นี่เช่นกัน
แค่นั้นแหละ! ตอนนี้ Algo จะใช้เวลาประมาณ 15 ถึง 30 นาทีในการทำให้เซิร์ฟเวอร์ของคุณเริ่มทำงาน
การใช้ Algo
เมื่อ Algo เสร็จสิ้นการตั้งค่า เทอร์มินัลจะกลับไปที่พรอมต์บรรทัดคำสั่ง ซึ่งหมายความว่า VPN พร้อมใช้งานแล้ว เช่นเดียวกับบริการเชิงพาณิชย์จำนวนมาก Algo ใช้โปรโตคอล WireGuard VPN ซึ่งเป็นสิ่งใหม่ที่ร้อนแรงที่สุดในโลกของ VPN เนื่องจากมีการรักษาความปลอดภัยที่ดี ความเร็วที่มากขึ้น และใช้งานได้ง่ายขึ้น
เพื่อเป็นตัวอย่างว่าต้องทำอะไรต่อไป เราจะเปิดใช้งาน Algo บน Windows ในการตั้งค่าอุปกรณ์อื่นๆ คุณสามารถอ้างถึงที่เก็บ Algo บน GitHub
อันดับแรก เราจะติดตั้งไคลเอนต์เดสก์ท็อป Windows ทั่วไปจากไซต์ WireGuard ต่อไป เราต้องป้อนโปรแกรมไฟล์ปรับแต่งของเราสำหรับพีซี ไฟล์การกำหนดค่าจะถูกเก็บไว้ในโฟลเดอร์ algo-master ที่: ~/algo-master/configs/[VPN server IP address]/wireguard/
ไฟล์สำหรับกำหนดค่าอุปกรณ์ไคลเอนต์ VPN มี 2 ประเภท: .CONF และ .PNG อย่างหลังคือรหัส QR สำหรับอุปกรณ์เช่นโทรศัพท์ที่สามารถสแกนรหัส QR ได้ ไฟล์ .CONF (การกำหนดค่า) เป็นไฟล์ข้อความสำหรับไคลเอ็นต์ WireGuard บนเดสก์ท็อป
บน Mac และ Ubuntu การค้นหาโฟลเดอร์ algo-master
นอกบรรทัดคำสั่งนั้นไม่ใช่เรื่องยาก บน Macs algo-master
จะอยู่ในโฟลเดอร์โฮม เพียงใช้ Finder > Go > Home เพื่อไปที่นั่น บน Ubuntu คุณสามารถเปิด Nautilus และมันจะอยู่ในโฟลเดอร์โฮม
อย่างไรก็ตาม ใน Windows WSL จะแยกจากระบบปฏิบัติการที่เหลือ ด้วยเหตุนี้ การคัดลอกไฟล์โดยใช้บรรทัดคำสั่งจึงง่ายกว่า
จากตัวอย่างก่อนหน้านี้ สมมติว่าเราต้องการใช้ไฟล์การกำหนดค่า “Mary-PC.conf” บนพีซีที่ใช้ Windows 10 คำสั่งจะมีลักษณะดังนี้:
cp ~/algo-master/configs/[ที่อยู่ IP ของเซิร์ฟเวอร์ VPN]/wireguard/Mary-PC.conf /mnt/c/Users/[ชื่อบัญชีผู้ใช้ Windows ของคุณ]/เดสก์ท็อป/
สังเกตช่องว่างระหว่าง Mary-PC.conf
และ /mnt/
; นั่นคือวิธีที่ Bash รู้ว่าไฟล์ที่จะคัดลอกอยู่ที่ไหนและจะไปที่ไหน กรณีก็มีความสำคัญเช่นกัน ดังนั้นตรวจสอบให้แน่ใจว่าคุณพิมพ์ตัวพิมพ์ใหญ่ตามที่ระบุ
เป็นเรื่องปกติบน Windows ที่ต้องการใช้ประโยชน์จาก C ในไดรฟ์ “C:\” แต่ใน Bash คุณไม่ต้องการ นอกจากนี้ อย่าลืมแทนที่บิตในวงเล็บด้วยข้อมูลจริงสำหรับพีซีของคุณ
ตัวอย่างเช่น หากโฟลเดอร์ผู้ใช้ของคุณอยู่ในไดรฟ์ “D:\” ไม่ใช่ “C:\” ให้แทนที่ /mnt/c/
ด้วย /mnt/d/
เมื่อคัดลอกไฟล์แล้ว ให้เปิดไคลเอ็นต์ WireGuard สำหรับ Windows คลิก "นำเข้าอุโมงค์จากไฟล์" จากนั้นเลือกไฟล์การกำหนดค่าของคุณบนเดสก์ท็อป เสร็จแล้วคลิก “เปิดใช้งาน”
ในเวลาเพียงไม่กี่วินาที คุณจะเชื่อมต่อกับ VPN ของคุณเอง!