Anonim

ทำไมต้องใช้ VPN เพื่อเข้าถึงบ้านของคุณ

ลิงค์ด่วน

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

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

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

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

ตั้งค่า Pi

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

ติดตั้ง Raspbian

ระบบปฏิบัติการที่ดีที่สุดที่จะใช้กับ Pi ของคุณคือ Raspbian เป็นตัวเลือกเริ่มต้นที่วางรากฐานโดย Raspberry Pi และเป็นพื้นฐานของ Debian ซึ่งเป็นหนึ่งใน Linux เวอร์ชันที่ปลอดภัยและเสถียรที่สุด

ไปที่ หน้าดาวน์โหลด Rasbian และคว้าเวอร์ชันล่าสุด คุณสามารถใช้เวอร์ชัน“ Lite” ได้ที่นี่เพราะคุณไม่จำเป็นต้องใช้เดสก์ท็อปแบบกราฟิก

ในขณะที่กำลังดาวน์โหลดให้รับ Etcher เวอร์ชันล่าสุดสำหรับระบบปฏิบัติการของคุณ หลังจากการดาวน์โหลดเสร็จสิ้นให้คลายอิมเมจ Raspbian จากนั้นเปิด Etcher เลือกภาพ Raspbian จากที่ที่คุณแตกไฟล์ เลือกการ์ด SD ของคุณ (ใส่ก่อน) ในที่สุดเขียนภาพไปยังการ์ด

ทิ้งการ์ด SD ไว้ในคอมพิวเตอร์ของคุณเมื่อเสร็จแล้ว เปิดตัวจัดการไฟล์และเรียกดูการ์ด คุณควรเห็นพาร์ทิชันที่ต่างกันสองคู่ ค้นหาพาร์ติชัน“ เริ่มระบบ” มันเป็นไฟล์เดียวที่มีไฟล์“ kernel.img” สร้างไฟล์ข้อความเปล่าบนพาร์ติชั่น“ boot” และเรียกมันว่า“ ssh” โดยไม่มีนามสกุลไฟล์

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

ให้ Pi เพียงไม่กี่นาทีเพื่อตั้งค่า จากนั้นเปิดเว็บเบราว์เซอร์และไปที่หน้าจอการจัดการของเราเตอร์ของคุณ ค้นหา Raspberry Pi และจดบันทึกที่อยู่ IP

ไม่ว่าคุณจะอยู่บน Windows, Linux หรือ Mac ให้เปิด OpenSSH เชื่อมต่อกับ Raspberry Pi ด้วย SSH

$ ssh

เห็นได้ชัดว่าใช้ที่อยู่ IP ที่แท้จริงของ Pi ชื่อผู้ใช้เป็น pi เสมอ และรหัสผ่านคือราสเบอร์รี่

ตั้งค่า OpenVPN

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

$ sudo apt อัปเดต $ sudo apt อัปเกรด

หลังจากการอัพเดตเสร็จสิ้นคุณสามารถติดตั้ง OpenVPN และยูทิลิตี้ใบรับรองที่คุณต้องการ

$ sudo apt ติดตั้ง openvpn easy-rsa

ผู้ออกใบรับรอง

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

ก่อนอื่นให้สร้างไดเรกทอรีสำหรับใบรับรองของคุณ ย้ายไปยังไดเรกทอรีนั้น

$ sudo make-cadir / etc / openvpn / certs $ cd / etc / openvpn / certs

มองหาไฟล์การกำหนดค่า OpenSSL จากนั้นลิงก์ล่าสุดกับ openssl.cnf

$ ls | grep -i openssl $ sudo ln -s openssl-1.0.0.cnf openssl.cnf

ในโฟลเดอร์“ certs” เดียวกันนั้นเป็นไฟล์ที่ชื่อว่า“ vars” เปิดไฟล์นั้นขึ้นมาด้วยโปรแกรมแก้ไขข้อความ Nano เป็นค่าเริ่มต้น แต่คุณสามารถติดตั้ง Vim ได้ฟรีหากคุณคุ้นเคยกับมันมากขึ้น

ค้นหาตัวแปร KEY_SIZE ก่อน มันถูกตั้งค่าเป็น 2048 โดยค่าเริ่มต้น เปลี่ยนเป็น 4096

ส่งออก KEY_SIZE = 4096

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

ส่งออก KEY_COUNTRY = "US" ส่งออก KEY_PROVINCE = "CA" ส่งออก KEY_CITY = "SanFrancisco" ส่งออก KEY_ORG = "Fort-Funston" ส่งออก KEY_EMAIL = "" ส่งออก KEY_OU = "MyOrganizationalUnit" ส่งออก KEY_NAME = "HomeVPN"

เมื่อคุณมีทุกสิ่งบันทึกและออก

แพ็คเกจ Easy-RSA ที่คุณติดตั้งก่อนหน้านั้นมีสคริปต์จำนวนมากที่ช่วยในการตั้งค่าทุกสิ่งที่คุณต้องการ คุณเพียงแค่ต้องเรียกใช้พวกเขา เริ่มต้นด้วยการเพิ่มไฟล์“ vars” เป็นแหล่งที่มา นั่นจะโหลดตัวแปรทั้งหมดที่คุณเพิ่งตั้ง

$ sudo source ./vars

ถัดไปทำความสะอาดปุ่ม คุณไม่มีเลยดังนั้นอย่ากังวลเกี่ยวกับข้อความที่บอกว่ากุญแจของคุณจะถูกลบ

$ sudo ./clean-install

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

$ sudo ./build-ca

ทำกุญแจบางอย่าง

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

$ sudo ./build-key-server เซิร์ฟเวอร์

ถัดไปสร้าง Diffie-Hellman PEM เป็นสิ่งที่ OpenVPN ใช้เพื่อรักษาความปลอดภัยการเชื่อมต่อไคลเอนต์ของคุณไปยังเซิร์ฟเวอร์

$ sudo openssl dhparam 4096> /etc/openvpn/dh4096.pem

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

$ sudo openvpn --genkey --secret /etc/openvpn/certs/keys/ta.key

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

คุณมีกุญแจ ส่วนถัดไปในการตั้งค่า OpenVPN คือการกำหนดค่าเซิร์ฟเวอร์เอง โชคดีที่มีไม่มากที่คุณต้องทำที่นี่ Debian มีการกำหนดค่าพื้นฐานที่คุณสามารถใช้เพื่อเริ่มต้นใช้งาน ดังนั้นเริ่มต้นด้วยการรับไฟล์การกำหนดค่านั้น

$ sudo gunzip -c /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz> /etc/openvpn/server.conf

ใช้โปรแกรมแก้ไขข้อความของคุณอีกครั้งเพื่อเปิด /etc/openvpn/server.conf สิ่งแรกที่คุณต้องค้นหาคือไฟล์ ca, cert และ key คุณต้องตั้งค่าให้ตรงกับตำแหน่งที่แท้จริงของไฟล์ที่คุณสร้างขึ้นซึ่งทั้งหมดอยู่ใน / etc / openvpn / certs / keys

ca /etc/openvpn/certs/keys/ca.crt cert /etc/openvpn/certs/keys/server.crt key /etc/openvpn/certs/keys/server.key # ไฟล์นี้ควรเก็บเป็นความลับ

ค้นหาการตั้งค่า dh และเปลี่ยนให้ตรงกับ Diffie-Hellman .pem ที่คุณสร้าง

dh dh4096.pem

กำหนดเส้นทางสำหรับคีย์ HMAC ของคุณด้วย

tls-auth /etc/openvpn/certs/keys/ta.key 0

ค้นหารหัสและตรวจสอบให้แน่ใจว่าตรงกับตัวอย่างด้านล่าง

รหัส AES-256-CBC

ตัวเลือกต่อไปอยู่ที่นั่น แต่พวกเขาแสดงความคิดเห็นกับ; ลบเครื่องหมายอัฒภาคข้างหน้าของแต่ละตัวเลือกเพื่อเปิดใช้งาน

พุช "redirect-gateway def1 bypass-dhcp" push "dhcp-option DNS 208.67.222.222" พุช "dhcp-option DNS 208.67.220.220"

ค้นหาตัวเลือกผู้ใช้และกลุ่ม ยกเลิกการคอมเม้นท์พวกเขาและเปลี่ยนผู้ใช้เป็น“ openvpn”

กลุ่มผู้ใช้ openvpn กลุ่ม nogroup

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

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

# การตรวจสอบสิทธิ์แบบย่อรับรองความถูกต้อง SHA512

จากนั้น จำกัด cipers ที่ OpenVPN สามารถใช้กับอันที่แข็งแรงกว่าเท่านั้น สิ่งนี้จะช่วย จำกัด การโจมตีที่เป็นไปได้เกี่ยวกับยันต์ที่อ่อนแอ

# ขีด จำกัด ของรหัส Tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-WITH-AES-128-GCM-SHA256: TLS-DHE-RSA-WITH-AES-256- CBC-SHA: TLS-DHE-อาร์เอสที่มี CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-WITH-AES-128-CBC-SHA: TLS-DHE-อาร์เอสที่มี CAMELLIA-128 CBC- SHA

นั่นคือทั้งหมดสำหรับการกำหนดค่า บันทึกไฟล์และออก

เริ่มต้นเซิร์ฟเวอร์

ก่อนที่คุณจะสามารถเริ่มต้นเซิร์ฟเวอร์คุณต้องสร้างผู้ใช้ openvpn ที่คุณระบุ

$ sudo adduser - ระบบ - เชลล์ / usr / sbin / nologin - no-create-home openvpn

เป็นผู้ใช้พิเศษที่ใช้ OpenVPN และจะไม่ทำอะไรเลย

ตอนนี้เริ่มต้นเซิร์ฟเวอร์

$ sudo systemctl เริ่มต้น openvpn $ sudo systemctl เริ่มต้น

ตรวจสอบว่าทั้งคู่กำลังทำงานอยู่

$ sudo systemctl สถานะ openvpn * .service

หากทุกอย่างดูดีให้เปิดใช้งานเมื่อเริ่มต้น

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

การตั้งค่าไคลเอนต์

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

$ cd / etc / openvpn / certs $ sudo source ./vars $ sudo ./build-key client

กระบวนการเกือบจะเหมือนกันกับเซิร์ฟเวอร์ดังนั้นให้ทำตามขั้นตอนเดียวกัน

การกำหนดค่าไคลเอนต์

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

เปลี่ยนเป็นไดเรกทอรีลูกค้า จากนั้นให้คลายการกำหนดค่าตัวอย่าง

$ cd / etc / openvpn / client $ sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client/client.ovpn

เปิดไฟล์ client.ovpn ด้วยโปรแกรมแก้ไขข้อความ จากนั้นค้นหาตัวเลือกระยะไกล สมมติว่าคุณยังไม่ได้ใช้ VPN Google ค้นหา“ IP ของฉันคืออะไร” นำที่อยู่ที่จะแสดงและตั้งค่าที่อยู่ IP ระยะไกลให้กับมัน ปล่อยหมายเลขพอร์ตไว้

remote 107.150.28.83 1194 # นั่นคือ IP แดกดันคือ VPN

เปลี่ยน certs เพื่อสะท้อนถึงสิ่งที่คุณสร้างเช่นเดียวกับที่คุณทำกับเซิร์ฟเวอร์

ca ca.crt client client.crt key client.key

ค้นหาตัวเลือกผู้ใช้และยกเลิกการใส่ข้อคิดเห็น ไม่เป็นไรที่จะเรียกลูกค้าว่าเป็นใคร

กลุ่มผู้ใช้ nogroup

ยกเลิกหมายเหตุตัวเลือก tls-auth สำหรับ HMAC

tls-auth ta.key 1

ถัดไปค้นหาตัวเลือกตัวเลขและตรวจสอบให้แน่ใจว่าตรงกับเซิร์ฟเวอร์

รหัส AES-256-CBC

จากนั้นเพียงเพิ่มข้อมูลสรุปการตรวจสอบสิทธิ์และข้อ จำกัด การเข้ารหัสที่ด้านล่างของไฟล์

# การรับรองความถูกต้องแยกย่อยรับรองความถูกต้อง SHA512 # ข้อ จำกัด การเข้ารหัส tls-cipher TLS-DHE-RSA-WITH-AES-256-GCM-SHA384: TLS-DHE-RSA-with-AES-128-GCM-SHA256: TLS-DHE-RSA-พร้อม -AES-256-CBC-SHA: TLS-DHE-อาร์เอสที่มี CAMELLIA-256-CBC-SHA: TLS-DHE-RSA-WITH-AES-128-CBC-SHA: TLS-DHE-อาร์เอสที่มี CAMELLIA -128-CBC-SHA

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

$ sudo tar cJf /etc/openvpn/clients/client.tar.xz -C / etc / openvpn / certs / keys ca.crt client.crt client.key ta.key -C /etc/openvpn/clients/client.ovpn

ถ่ายโอนแพ็คเกจนั้นไปยังไคลเอนต์ตามที่คุณเลือก SFTP, FTP และไดรฟ์ USB ล้วนเป็นตัวเลือกที่ยอดเยี่ยม

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

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

เชื่อมต่อกับเว็บอินเตอร์เฟสของเราเตอร์ของคุณโดยพิมพ์ที่อยู่ IP บนเบราว์เซอร์ของคุณ

เราเตอร์ทุกคนต่างกัน แม้กระนั้นพวกเขาทุกคนควรมีฟังก์ชั่นบางอย่างนี้ ค้นหาบนเราเตอร์ของคุณ

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

เชื่อมต่อกับลูกค้า

ลูกค้าทุกคนแตกต่างกันดังนั้นจึงไม่มีทางออกที่เป็นสากล หากคุณใช้ Windows คุณจะต้องมี ไคลเอ็นต์ Windows OpenVPN

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

บน Linux คุณต้องติดตั้ง OpenVPN มากมายเช่นเดียวกับที่ทำกับเซิร์ฟเวอร์

$ sudo apt ติดตั้ง openvpn

จากนั้นเปลี่ยนเป็น / etc / openvpn และแกะ tarball ที่คุณส่งมา

$ cd / etc / openvpn $ sudo tar xJf /path/to/client.tar.xz

เปลี่ยนชื่อไฟล์ไคลเอนต์

$ sudo mv client.ovpn client.conf

อย่าเริ่มไคลเอนต์ มันจะล้มเหลว คุณต้องเปิดใช้งานการส่งต่อพอร์ตบนเราเตอร์ของคุณก่อน

การปิดความคิด

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

เปลี่ยนราสเบอร์รี่ pi เป็น VPN เพื่อเข้าถึงเครือข่ายของคุณได้จากทุกที่