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

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน

โดย เดนิส นูทิอู

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน My Raspberry ซึ่งทำหน้าที่เป็นเซิร์ฟเวอร์ OpenVPN

สวัสดีทุกคน!

ในบทความสั้น ๆ นี้ ฉันจะอธิบายวิธีการตั้งค่าเซิร์ฟเวอร์ VPN (Virtual Private Network) ของคุณเองบน Raspberry PI ด้วย OpenVPN หลังจากที่เราตั้งค่าเซิร์ฟเวอร์แล้ว เราจะตั้งค่าเซิร์ฟเวอร์ที่สร้างความสับสนเพื่อปิดบังการรับส่งข้อมูลของเราที่ระบุว่าเรากำลังใช้ VPN วิธีนี้จะช่วยให้เราหลีกเลี่ยงการเซ็นเซอร์บางรูปแบบ

เหตุใดจึงต้องใช้ VPN

ก่อนอื่น เรามาพูดถึงสาเหตุที่คุณอาจต้องการใช้เซิร์ฟเวอร์ VPN:

  1. หลีกเลี่ยงการโจมตีโดยมนุษย์ที่อยู่ตรงกลาง หากคุณมีผู้ใช้ที่เป็นอันตรายบนเครือข่ายท้องถิ่นของคุณ — แม้แต่เพื่อนร่วมห้องของคุณ — บุคคลนั้นสามารถตรวจสอบการรับส่งข้อมูลที่ไม่ได้เข้ารหัสของคุณและเข้าไปยุ่งเกี่ยวกับมันได้
  2. ซ่อนกิจกรรมทางอินเทอร์เน็ตของคุณจาก ISP (ผู้ให้บริการอินเทอร์เน็ต) หรือมหาวิทยาลัย ในกรณีของฉัน
  3. เลิกบล็อกบริการ My University บล็อกแพ็กเก็ต UDP (User Datagram Protocol) ทั้งหมด ซึ่งหมายความว่าฉันไม่สามารถใช้แอปพลิเคชันใด ๆ ที่สื่อสารผ่าน UDP ได้ ฉันไม่สามารถใช้โปรแกรมรับส่งเมล เล่นเกม หรือแม้แต่ใช้ Git ได้!

ฉันตัดสินใจตั้งค่า VPN บนอินเทอร์เน็ตที่บ้านโดยใช้ Raspberry Pi ด้วยวิธีนี้ฉันสามารถเชื่อมต่อกับเครือข่ายในบ้านของฉันได้ในขณะที่ฉันอยู่ที่มหาวิทยาลัย หากคุณต้องการเซิร์ฟเวอร์ VPN ในประเทศอื่น คุณสามารถซื้อเซิร์ฟเวอร์ส่วนตัวเสมือนในราคา 5$/เดือนจาก DigitalOcean คุณสามารถใช้ลิงก์ผู้อ้างอิงของฉันเพื่อรับส่วนลด $10 — นั่นคือ VPN ฟรีสองเดือน แต่คุณไม่จำเป็นต้องใช้มันหากคุณไม่ต้องการ

การติดตั้ง OpenVPN

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

การติดตั้งจะใช้เวลานาน ขึ้นอยู่กับขนาดคีย์ที่คุณเลือก บน Raspberry Pi 3 Model B ของฉันใช้เวลาประมาณ 3 ชั่วโมง

โปรดไปที่พื้นที่เก็บข้อมูลนี้แล้วทำตามคำแนะนำ

ติดตั้ง Angristan/OpenVPN
_OpenVPN-install - ตั้งค่าเซิร์ฟเวอร์ OpenVPN ของคุณเองบน Debian, Ubuntu, Fedora CentOS และ Arch Linux_github.com

หากคุณไม่ทราบที่อยู่ IP ของเซิร์ฟเวอร์ของคุณ เพียงใส่ 0.0.0.0 . ฉันเลือก 443 สำหรับพอร์ตและ TCP (Transmission Control Protocol) สำหรับโปรโตคอล

หมายเหตุ :สิ่งนี้สำคัญมากเพราะมหาวิทยาลัยของฉันอนุญาตเฉพาะ TCP/80 เท่านั้น และ TCP/443 พอร์ตที่เหลือก็ค่อนข้างจะบล็อก นอกจากนี้ Obfsproxy ใช้งานได้กับ TCP เท่านั้น ดังนั้นตรวจสอบให้แน่ใจว่าคุณเลือก TCP !

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

การทดสอบการเชื่อมต่อ

นำเข้าไฟล์ .ovpn ในไคลเอนต์ VPN ของคุณและเปลี่ยน ip 0.0.0.0 ไปยัง IP ในเครื่องของ Raspberry PI ของคุณ ขึ้นอยู่กับการกำหนดค่าเครือข่ายของคุณ อาจอยู่ในรูปแบบ192.168.*.* .

หมายเหตุ:วิธีนี้จะใช้งานได้เฉพาะเมื่อคุณเชื่อมต่อกับ WiFi เดียวกันกับที่ Pi เท่านั้น

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน Viscosity เชื่อมต่อกับเซิร์ฟเวอร์ VPN ของฉันสำเร็จแล้ว

ฉันได้กำหนดค่าเราเตอร์เพื่อให้ PI ได้รับที่อยู่ IP ที่สงวนไว้เสมอ คุณอาจต้องตรวจสอบการตั้งค่าเราเตอร์ของคุณหากต้องการทำสิ่งที่คล้ายกัน

หากการเชื่อมต่อสำเร็จ ขอแสดงความยินดี คุณมีเซิร์ฟเวอร์ VPN แล้ว! แต่คุณไม่สามารถเข้าถึงได้จากภายนอก… ยัง

หากคุณต้องการเพียงเซิร์ฟเวอร์ OpenVPN ที่ไม่มีพร็อกซี obfuscation คุณสามารถข้ามไปที่ การส่งต่อพอร์ต .

การสร้างความสับสน การติดตั้งพร็อกซี

Obfs4 เป็นพร็อกซีที่มีสัญญาณรบกวน มันปิดบังการรับส่งข้อมูลอินเทอร์เน็ตของคุณให้ดูเหมือนเสียงรบกวน คนที่สอดแนมการรับส่งข้อมูลของคุณจะไม่รู้ว่าคุณกำลังทำอะไรอยู่ และจะปกป้องคุณจากการโจมตีแบบเจาะจงที่ใช้งานโดย Great Firewall of China

หมายเหตุ:วิธีนี้จะไม่ทำงานหากฝ่ายตรงข้ามของคุณอนุญาตเฉพาะการเข้าชมที่อนุญาตพิเศษ :(

มาติดตั้งพร็อกซีเซิร์ฟเวอร์ทันที

  1. ติดตั้งแพ็คเกจที่จำเป็น:
apt-get update && apt-get install obfs4proxy
  1. สร้างไดเร็กทอรีที่จะเก็บการกำหนดค่า
sudo mkdir -p /var/lib/tor/pt_state/obfs4
  1. สร้างไฟล์การกำหนดค่า
sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config

ในไฟล์การกำหนดค่า คุณจะวางสิ่งต่อไปนี้:

TOR_PT_MANAGED_TRANSPORT_VER=1TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4TOR_PT_SERVER_TRANSPORTS=obfs4TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444TOR_PT_ORPORT=127.0.0.1:443

TOR_PT_SERVER_BINDADDR คือที่อยู่ที่พร็อกซีจะรับฟังการเชื่อมต่อใหม่ ในกรณีของฉันคือ 0.0.0.0:444 — ทำไมต้อง 444 ไม่ใช่ 443? เพราะฉันไม่ต้องการเปลี่ยนการกำหนดค่าเซิร์ฟเวอร์ OpenVPN ที่กำลังฟังอยู่บน 443 อยู่ในขณะนี้ นอกจากนี้ ฉันจะแมปที่อยู่นี้ในภายหลังเป็น 443 โดยใช้การส่งต่อพอร์ต

TOR_PT_ORPORT ควรชี้ไปที่เซิร์ฟเวอร์ OpenVPN ในกรณีของฉัน เซิร์ฟเวอร์ของฉันทำงานบน 127.0.0.1:443

  1. สร้างไฟล์บริการ SystemD
sudo nano /etc/systemd/system/obfs4proxy.service

จากนั้นวางเนื้อหาต่อไปนี้ลงไป:

[Unit]Description=Obfsproxy Server[Service]EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.configExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO[Install]WantedBy=multi-user.target
  1. เริ่มพร็อกซี Obfuscation

ตอนนี้ตรวจสอบให้แน่ใจว่า OpenVPN กำลังทำงานอยู่และเรียกใช้คำสั่งต่อไปนี้เพื่อเริ่มพร็อกซีและเปิดใช้งานให้เริ่มเมื่อบู๊ตเครื่อง

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy
  1. บันทึกคีย์ใบรับรอง

หลังจากบริการเริ่มต้นแล้ว ให้รันคำสั่งต่อไปนี้และบันทึกใบรับรอง KEY

cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt

คีย์อยู่ในรูปแบบ Bridge obfs4 <IP ADDRESS>:<PORT> <FIN**GER**PRINT> c ert=KEY iat-mode=0 คุณจะต้องใช้มันเมื่อเชื่อมต่อกับ VPN

  1. การทดสอบการเชื่อมต่อ

เปิดไคลเอนต์ VPN ของคุณและเปลี่ยน IP จาก 443 เป็น 444 เพื่อเชื่อมต่อกับพร็อกซีแทนเซิร์ฟเวอร์ OpenVPN

หลังจากนั้น ให้ค้นหาตัวเลือก Pluggable Transport ในไคลเอนต์ OpenVPN ของคุณและดูว่ารองรับ obfs4 หรือไม่ .

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน ความหนืดรองรับวิธี Obfuscation ที่แตกต่างกัน เช่น:obfs2, obfs3, obfs4 และ ScrambleSuit

หากทุกอย่างใช้งานได้ แสดงว่าคุณพร้อมแล้ว! ขอแสดงความยินดี! ปรับแต่งเพิ่มเติมอีกเล็กน้อยก่อนใช้ VPN นี้จากโลกภายนอก

การส่งต่อพอร์ต

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

ด้วยวิธีนี้ฉันได้กำหนดกฎต่อไปนี้ในตารางการส่งต่อพอร์ตของฉัน:

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน หน้าการตั้งค่าการส่งต่อพอร์ตของ TL-WR841N

พอร์ตภายนอก 443 จะชี้ไปที่พอร์ตเซิร์ฟเวอร์ของการสร้างความสับสน 444 หากคุณไม่มีเซิร์ฟเวอร์ที่สร้างความสับสน ให้ปล่อย 443->4 43.

พอร์ต 25 จะชี้ไปที่พอร์ต SSH ของ PI 22 นี่เป็นเพื่อความสะดวกของฉันเท่านั้น

ในกรณีที่ฉันต้องการเข้าถึงเซิร์ฟเวอร์ OpenVPN โดยตรงโดยไม่ต้องใช้พร็อกซี obfuscation ฉันได้สร้างกฎ 444-> 443

พอร์ตบริการคือ ด้านนอก พอร์ตที่จะใช้กับ สาธารณะ ของคุณ ที่อยู่ IP หากต้องการค้นหา IP สาธารณะของคุณ ให้ใช้บริการเช่น whatsmyip.com

พอร์ตภายในคือ INSIDE พอร์ต สามารถใช้ได้เมื่อคุณเชื่อมต่อกับเครือข่ายเท่านั้น

_หมายเหตุ:กฎข้อแรกบอกว่าเปลี่ยนเส้นทางการเชื่อมต่อทั้งหมดจาก PUBLIC_IP:443 เป็น 192.168.1.125:444 _

การทดสอบ

  1. ค้นหา IP สาธารณะของคุณและแทนที่ IP เก่าของคุณด้วย IP สาธารณะในไฟล์ .ovpn หรือในไคลเอนต์ VPN
  2. เชื่อมต่อกับ VPN

แค่นั้นแหละ.

ไดนามิก DNS

ในกรณีส่วนใหญ่ IP ของคุณจะเปลี่ยนแปลงเนื่องจากเป็น IP แบบไดนามิก วิธีที่จะเอาชนะสิ่งนี้คือการสร้างโปรแกรมขนาดเล็กบน PI ที่จะบันทึก IP ของคุณและส่งอีเมลถึงคุณทุกวัน คุณยังสามารถจัดเก็บ IP ไว้ในฐานข้อมูลออนไลน์ เช่น Firebase ได้

เราเตอร์ของฉันมีการตั้งค่า DNS แบบไดนามิก ด้วยวิธีนี้ ฉันสามารถใช้ผู้ให้บริการเช่น NoIP และรับโดเมนเช่น example.no-ip.com ซึ่งจะชี้ไปยังที่อยู่ IP สาธารณะของฉันเสมอ

ตั้งค่าเซิร์ฟเวอร์ OpenVPN บน Raspberry Pi ของคุณ:คำแนะนำทีละขั้นตอน หน้าการตั้งค่า TL-WR841N DDNS

แหล่งข้อมูลอื่นๆ:

  • สวนเด็กแห่งการเดินทางแบบเสียบปลั๊ก
  • ความหนืด-การบดบัง/
  • https://www.pluggabletransports.info/transports/

หากคุณมีคำถามใด ๆ โปรดติดต่อฉันบน Twitter

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


No