สารบัญ:

Raspberry Pi VPN Gateway: 6 ขั้นตอน
Raspberry Pi VPN Gateway: 6 ขั้นตอน

วีดีโอ: Raspberry Pi VPN Gateway: 6 ขั้นตอน

วีดีโอ: Raspberry Pi VPN Gateway: 6 ขั้นตอน
วีดีโอ: How to setup a Raspberry Pi OpenVPN gateway 2024, กรกฎาคม
Anonim
Raspberry Pi VPN เกตเวย์
Raspberry Pi VPN เกตเวย์

อัปเดต 2018-01-07:

  • อัปเดตสิ่งที่ขาดหายไปและการเปลี่ยนแปลงที่จำเป็นสำหรับ Raspian เวอร์ชันปัจจุบัน
  • สร้างคู่มือเฉพาะสำหรับ NordVPN ด้วย

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

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

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

คุณสามารถเลือกได้ในราคาต่ำกว่า 40 เหรียญใน Amazon อย่างไรก็ตาม ฉันขอแนะนำให้คุณซื้อเคสและอะแดปเตอร์ไฟที่เหมาะสมด้วย สำหรับคำแนะนำนี้คุณต้องการ:

  • Raspberry Pi 2 หรือ 3
  • กรณีที่คุณชื่นชอบ
  • อะแดปเตอร์ไฟที่เหมาะสม
  • สายเคเบิลเครือข่าย

ขั้นตอนที่ 1: เลือกบริการ VPN ของคุณ

การเลือกบริการ VPN ของคุณ
การเลือกบริการ VPN ของคุณ

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

ทดสอบฟรี

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

ความเป็นส่วนตัว

หากการดำเนินการดังกล่าวเป็นไปเพื่อความกังวลเรื่องความเป็นส่วนตัว นโยบายความเป็นส่วนตัวก็มีความสำคัญอย่างยิ่ง สิ่งสำคัญคือบริษัทดำเนินการจากประเทศใดและกฎหมายใดที่ปกป้องความเป็นส่วนตัวของคุณ ผู้ใช้ที่เกี่ยวข้องกับความเป็นส่วนตัวอย่างแท้จริงควรดูบริการที่ระบุว่าไม่มีการจัดเก็บบันทึกการรับส่งข้อมูลและอนุญาตให้ชำระเงินโดยไม่ระบุชื่อผ่าน Bitcoin เป็นต้น

การจราจรที่อนุญาต

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

ขีดจำกัดข้อมูล

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

ออกจากประเทศ

ขึ้นอยู่กับกรณีการใช้งาน สิ่งนี้มีความสำคัญต่างกัน สำหรับกรณีการใช้งานเช่นของฉัน ที่ฉันต้องลงเอยในประเทศใดประเทศหนึ่ง แน่นอนว่าต้องอยู่ในรายการ ฉันต้องได้รับอนุญาตให้เลือกประเทศที่จะเข้าด้วย มีบริการที่คุณไม่สามารถเลือกประเทศทางออกได้ ให้อยู่ห่างจากสิ่งเหล่านั้น คุณสามารถลงเอยในประเทศที่มีประสิทธิภาพต่ำหรือกฎหมายความเป็นส่วนตัว แม้ว่าคุณจะไม่ต้องการประเทศใดประเทศหนึ่ง คุณก็ควรเลือกบริการที่มีประเทศต่างๆ สองสามประเทศเพื่อแสดงเพื่อให้สามารถค้นหาบริการที่มีประสิทธิภาพดีได้

ประเภทของซอฟต์แวร์และการสนับสนุน

นี่เป็นหนึ่งในสาเหตุหลักที่ฉันชอบบริการที่มีการทดสอบฟรี มีผู้ให้บริการจำนวนมากที่มีซอฟต์แวร์ที่ไม่ดีที่มีปัญหา ไม่ปลอดภัย หรือใช้งานไม่ได้ สำหรับการใช้งาน Raspberry Pi ฉันต้องการผู้ให้บริการที่รองรับ OpenVPN

การเลือกของฉัน

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

ขั้นตอนที่ 2: ติดตั้ง Raspberry Pi

สำหรับการใช้งานเช่นนี้ ฉันใช้ระบบปฏิบัติการ Raspbian Lite เนื่องจากฉันไม่ต้องการ GUI เลย คุณสามารถรับรุ่นล่าสุดได้ที่นี่

ฉันใช้ Win32DiskImager เพื่อโหลดไฟล์.img บนการ์ด SD สำหรับ Raspberry Pi

เมื่อ Raspberry Pi บูตแล้ว ฉันจะดูในรายการ DHCP ของเราเตอร์เพื่อรับที่อยู่ IP จากนั้นเชื่อมต่อผ่าน SSH ด้วย Putty ชื่อผู้ใช้และรหัสผ่านมาตรฐานคือ pi/raspberry

เมื่อเชื่อมต่อแล้ว ฉันเรียกใช้เครื่องมือ raspi-config เพื่อเปลี่ยนการตั้งค่าพื้นฐาน

sudo raspi-config

สิ่งที่สำคัญที่สุดที่ต้องดูแลในการกำหนดค่านี้คือ:

  • ขยายระบบไฟล์
  • เปลี่ยนรหัสผ่าน

คุณยังสามารถเปลี่ยนชื่อโฮสต์ของ Raspberry Pi ได้หากต้องการ DHCP ของฉันมีสัญญาเช่าระยะยาว และฉันสามารถจองที่อยู่เฉพาะได้ หากคุณไม่มีความสามารถนั้น คุณต้องกำหนดค่า Raspberry Pi ให้ใช้ที่อยู่ IP แบบคงที่ เนื่องจากอุปกรณ์อื่นๆ จะใช้สิ่งนี้เนื่องจากมีเกตเวย์เริ่มต้น จึงเป็นสิ่งสำคัญที่จะยังคงใช้ที่อยู่ IP เดียวกัน นี่คือโพสต์ที่ฉันเขียนเกี่ยวกับการตั้งค่า IP แบบคงที่ใน Raspbian Jessie

จากนั้นเราจำเป็นต้องอัปเกรดทุกอย่างเป็นเวอร์ชันล่าสุด:

sudo apt-get updatessudo apt-get upgrade sudo apt-get dist-upgrade

ขั้นตอนที่ 3: ติดตั้ง OpenVPN

ติดตั้ง OpenVPN
ติดตั้ง OpenVPN

ตอนนี้เราต้องติดตั้ง OpenVPN บน Raspberry Pi

sudo apt-get ติดตั้ง openvpn

จากนั้นเราต้องตรวจสอบให้แน่ใจว่าบริการเริ่มต้นอย่างถูกต้อง

sudo systemctl เปิดใช้งาน openvpn

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

ไฟล์นี้มีไฟล์ใบรับรองและไฟล์การกำหนดค่า.opvn สำหรับแต่ละประเทศที่คุณสามารถทันเนลได้ คุณต้องใช้ไฟล์ใบรับรองทั้งหมดและไฟล์การกำหนดค่า.opvn สำหรับประเทศที่คุณเลือก ในกรณีของฉัน สวีเดน เปิดเครื่องรูดไฟล์ที่จำเป็นและใช้ winscp เพื่ออัปโหลดไฟล์ไปยัง Raspberry Pi ของคุณ ชื่อผู้ใช้/รหัสผ่านเดียวกันกับที่ใช้สำหรับ SSH จะนำคุณไปที่ /home/pi เพียงแค่วางไฟล์ที่นั่น

จากนั้นเรากลับไปที่เทอร์มินัล SSH และย้ายไฟล์ไปที่โฟลเดอร์ OpenVPN คำสั่งแรกคือเพื่อให้แน่ใจว่าเราอยู่ในโฟลเดอร์ /home/pi

cd /home/pi

sudo mv * /etc/openvpn/

ตอนนี้เราต้องแก้ไขไฟล์ ก่อนอื่นเราต้องเปลี่ยนชื่อไฟล์การกำหนดค่าจาก.ovpn เป็น.conf ไฟล์ใดๆ ที่ลงท้ายด้วย.conf ในโฟลเดอร์ /etc/openvpn จะเริ่มทำงานโดยอัตโนมัติเมื่อ OpenVPN daemon เริ่มทำงาน ก่อนอื่นเราต้องเข้าไปในไดเร็กทอรีนั้นก่อน

cd /etc/openvpn

จากนั้นเราเปลี่ยนชื่อไฟล์ปรับแต่ง คุณสามารถตั้งชื่ออะไรก็ได้ที่คุณต้องการตราบใดที่มันลงท้ายด้วย.conf ฉันชอบที่จะใช้ชื่อไฟล์โดยไม่มีช่องว่าง ในกรณีนี้ ฉันจะใช้ swe.conf

sudo mv *.ovpn swe.conf

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

sudo nano auth.txt

เนื้อหาควรเป็นเช่นตัวอย่างนี้:

ชื่อผู้ใช้

รหัสผ่าน

จากนั้นใช้ CTRL + O เพื่อเขียนไปยังไฟล์ และใช้ CTRL + X เพื่อออกจากโปรแกรมแก้ไขข้อความนาโน เรายังต้องปกป้องไฟล์ auth.txt ที่มีข้อมูลรับรองของเราด้วย

sudo chmod 600 /etc/openvpn/auth.txt

จากนั้นเราจำเป็นต้องแก้ไขไฟล์กำหนดค่าเพื่อให้แน่ใจว่าเส้นทางทั้งหมดถูกต้องและเพิ่มการอ้างอิงไปยังไฟล์ auth.txt ที่สร้างขึ้นใหม่

sudo nano swe.conf

บรรทัดที่ต้องเปลี่ยนคือบรรทัดที่อ้างถึงไฟล์อื่น ต้องเป็นพาธสัมบูรณ์ ในตัวอย่างนี้ นี่คือสิ่งที่เรากำลังมองหา:

ca CACertificate.crt

ใบรับรอง UserCertificate.crt คีย์ PrivateKey.key

เราเปลี่ยนเป็นเส้นทางสัมบูรณ์ดังนี้:

ca /etc/openvpn/CACertificate.crt

ใบรับรอง /etc/openvpn/UserCertificate.crt คีย์ /etc/openvpn/PrivateKey.key

จากนั้น ที่ส่วนท้ายของไฟล์ เราจะเพิ่มการอ้างอิงไปยังไฟล์ auth.txt ดังนี้:

auth-user-pass /etc/openvpn/auth.txt

อีกครั้งที่เราใช้ CTRL + O เพื่อบันทึกไฟล์ จากนั้นกด CTRL + X เพื่อออกจาก nano ตอนนี้ เราสามารถรีสตาร์ท OpenVPN daemon และเห็นว่าช่องสัญญาณใช้งานได้

sudo service openvpn รีสตาร์ท

หากคุณรันคำสั่ง ifconfig คุณควรเห็นอะแด็ปเตอร์ tun0 นอกเหนือจากอะแด็ปเตอร์ eth0 และ lo ของคุณ หากทันเนลเปิดอยู่ คุณยังสามารถเรียกใช้คำสั่งคำสั่งนี้เพื่อตรวจสอบ IP สาธารณะของคุณ:

wget https://ipinfo.io/ip -qO -

หากคุณมีปัญหาในการเปิดช่องสัญญาณก่อน ให้ลองรีบูต Raspberry Pi แล้วตรวจสอบข้อผิดพลาดในการกำหนดค่าอีกครั้ง

ขั้นตอนที่ 4: ตั้งค่าการกำหนดเส้นทาง

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

sudo /bin/su -c "echo -e '\n#Enable IP Routing\nnet.ipv4.ip_forward = 1' > /etc/sysctl.conf"

หากคุณเรียกใช้ sudo sysctl -p คุณจะเห็นสิ่งนี้พิมพ์บนหน้าจอ:

net.ipv4.ip_forward = 1

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

ขั้นตอนที่ 5: ตั้งค่าไฟร์วอลล์และ NAT

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

sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE

เปิดใช้งาน NAT

sudo iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT

อนุญาตให้ทราฟฟิกใด ๆ จาก eth0 (ภายใน) ผ่าน tun0 (อุโมงค์)

sudo iptables -A FORWARD -i tun0 -o eth0 -m state --state RELATED, ESTABLISHED -j ACCEPT

อนุญาตให้ทราฟฟิกจาก tun0 (อุโมงค์) ย้อนกลับผ่าน eth0 (ภายใน) เนื่องจากเราระบุสถานะ RELATED, ESTABLISHED จึงจำกัดเฉพาะการเชื่อมต่อที่เริ่มต้นจากเครือข่ายภายใน การบล็อกการรับส่งข้อมูลภายนอกที่พยายามเริ่มต้นการเชื่อมต่อใหม่

sudo iptables -A INPUT -i lo -j ACCEPT

อนุญาตการรับส่งข้อมูลลูปแบ็คของ Raspberry Pi

sudo iptables -A INPUT -i eth0 -p icmp -j ACCEPT

อนุญาตให้คอมพิวเตอร์ในเครือข่ายท้องถิ่น ping Raspberry Pi

sudo iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT

อนุญาต SSH จากเครือข่ายภายใน

sudo iptables -A INPUT -m state --state ESTABLISHED, RELATED -j ACCEPT

อนุญาตให้รับส่งข้อมูลทั้งหมดที่เริ่มต้นโดย Raspberry Pi กลับมา นี่เป็นหลักของรัฐเช่นเดียวกับก่อนหน้านี้

sudo iptables -P FORWARD DROP

sudo iptables -P INPUT DROP sudo iptables -L

หากปริมาณการใช้ข้อมูลไม่ตรงกับกฎใด ๆ ที่ระบุไว้ การเข้าชมจะถูกตัดทิ้ง

sudo apt-get install iptables-persistent

sudo systemctl เปิดใช้งาน netfilter-persistent

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

ขั้นตอนที่ 6: บทสรุป

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

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

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

แนะนำ: