ผู้ใช้อินเทอร์เน็ตมีทางเลือกมากมายเมื่อพูดถึงบริการ VPN แต่พวกเขาต้องการการสมัครสมาชิกรายเดือนไม่ปลอดภัยหรือช้าเพียงธรรมดา โชคดีที่มีทางเลือกอื่นอยู่ พวกเขาต้องการความรู้ด้านเทคนิคมากกว่านี้เล็กน้อย แต่ถ้าคุณต้องการสิ่งที่ถูกต้องคุณต้องทำด้วยตัวเอง.
หากต้องการเรียนรู้วิธีสร้าง VPN ของคุณเองคุณสามารถดูวิดีโอหรืออ่านบทความ โปรดทราบว่าบทความมีคำสั่งที่มีประโยชน์และข้อความการกำหนดค่าที่คุณสามารถคัดลอกและวางเพื่อความสะดวกของคุณ. ปรับปรุง: วิดีโอใช้ easy-rsa เวอร์ชันเก่าที่ไม่สามารถใช้งานได้อีกต่อไป เมื่อคุณไปถึงเครื่องหมาย 8 นาทีโปรดอ้างอิงบทความนี้สำหรับการกำหนดค่า easy-rsa 3.
เริ่มต้นใช้งาน
Amazon Web Services เสนอพื้นที่เซิร์ฟเวอร์เสมือนฟรีหนึ่งปีให้คุณใช้แบนด์วิดท์เวลาและพื้นที่น้อยกว่าที่กำหนดไว้ล่วงหน้า แม้ว่าคุณจะเกินขีด จำกัด นั้นค่าใช้จ่ายในการเรียกใช้อิมเมจเซิร์ฟเวอร์บน Elastic Compute Cloud ของ Amazon อาจน้อยกว่าที่คุณจะจ่ายสำหรับการสมัคร VPN.
ที่นี่เราจะอธิบายสองวิธีที่แตกต่างกันในการใช้บริการ Elastic Cloud ของ Amazon หรือที่เรียกว่า EC2 เพื่อโอนการเชื่อมต่อของคุณผ่านสถานที่ส่วนตัวที่คุณเลือก: SSH Tunneling และ OpenVPN แต่ละคนมีข้อดีและข้อเสียดังนั้นใช้สิ่งที่คุณคิดว่าเหมาะสมกับความต้องการของคุณ ไม่ว่าคุณจะเลือกแบบใดคุณจะต้องการสิ่งต่อไปนี้:
- บัญชี Amazon Web Services สิ่งนี้ต้องใช้บัตรเครดิต แต่คุณจะถูกเรียกเก็บเงินสำหรับสิ่งที่คุณใช้เท่านั้นซึ่งอาจไม่เป็นเช่นนั้นหากคุณระมัดระวังเกี่ยวกับสิ่งที่คุณทำ.
- PuTTy ถ้าคุณอยู่บน Windows OpenSSH ผ่าน Cygwin เป็นอีกทางเลือกหนึ่ง แต่ฉันคิดว่ามันเป็นความเจ็บปวด คอมพิวเตอร์ Linux และ Mac มีพรอมต์ SSH ในกล่องและเทอร์มินัลแล้ว คุณจะต้องมีโปรแกรมสร้างรหัสน้องสาวของ PuTTy นั่นก็คือ PuttyGen.
- WinSCP หรือไคลเอนต์ FTP ที่เทียบเท่าเพื่อย้ายไฟล์ระหว่างเครื่องคอมพิวเตอร์และอินสแตนซ์ EC2 ของคุณ.
- ความรู้พื้นฐานในการทำงานของคำสั่ง Unix และการทำงานของเซิร์ฟเวอร์กับลูกค้าจะมีประโยชน์อย่างมากในการแก้ไขปัญหาหากมีบางอย่างไม่เป็นไปตามที่วางแผนไว้.
- OpenVPN GUI ติดตั้งในตำแหน่งเริ่มต้นและด้วยการตั้งค่าเริ่มต้นบนพีซีของคุณ
การตั้งค่า AWS
เมื่อคุณลงชื่อสมัครใช้บัญชี Amazon Web Services ต่อไปนี้เป็นวิธีเปิดเซิร์ฟเวอร์ที่เราจะใช้สำหรับ VPN ของเรา ::
- ลงชื่อเข้าใช้บัญชี Amazon Web Service ของคุณและมุ่งหน้าไปยังแดชบอร์ด EC2.
- ด้านขวาบนคุณสามารถเลือกตำแหน่งที่เราจะตั้งค่า VPN ของคุณ คลิกเรียกใช้อินสแตนซ์.
- เลือกสิ่งใดก็ตามที่ Linux AMI ถูกระบุว่าเป็น“ ระดับสิทธิ์ฟรี” ในขณะที่เขียนบทความนี้นั่นคือ Amazon Linux AMI ไปที่ขั้นตอนต่อไป.
- ที่นี่เลือกอินสแตนซ์ t2.micro ที่มีสิทธิ์ในระดับฟรี คลิก “ตรวจสอบและเปิดตัว”
- ในหน้าถัดไปให้คลิก แก้ไขกลุ่มความปลอดภัย.
- คุณจะต้องแก้ไขกลุ่มความปลอดภัยเพื่ออนุญาตการรับส่งข้อมูลจากคอมพิวเตอร์ของคุณเพื่อเข้าถึง VPN หรือพร็อกซี คุณควรมีกฎหนึ่งข้อสำหรับเชื่อมต่อกับเซิร์ฟเวอร์ของคุณผ่าน SSH ซึ่งเราจะใช้ในภายหลัง เราจะต้องเพิ่มรายการอื่นเพื่ออนุญาตการเชื่อมต่อ OpenVPN ซึ่งใช้พอร์ต 1194 เป็นค่าเริ่มต้น เพื่อความเรียบง่ายภายใต้ ขาเข้า คลิกแท็บ เพิ่มกฎ ปุ่ม. ตั้ง ชนิด ถึง UDP ที่กำหนดเอง, ช่วงพอร์ต ถึง 1194, และแหล่งที่มาของ ทุกแห่ง.
- ตี บันทึก.
- คลิก “ตรวจสอบและเปิดตัว” จากนั้นคลิก “เปิดตัว” ในหน้าถัดไป.
- ตอนนี้คุณต้องการสร้างคู่กุญแจซึ่งงานประเภทใดเช่นรหัสผ่านที่คุณจะใช้เชื่อมต่อกับเซิร์ฟเวอร์เสมือนที่คุณกำลังสร้าง เลือก “สร้างคู่คีย์ใหม่” จากเมนูแบบเลื่อนลงและตั้งชื่อตามที่คุณต้องการ คลิกที่ปุ่มเพื่อดาวน์โหลดคู่กุญแจ เก็บไว้ในที่ปลอดภัย.
- หน้าถัดไปควรเตือนคุณว่ามีการเปิดตัวอินสแตนซ์ เลื่อนไปที่ด้านล่างและกด “ดูอินสแตนซ์” ที่นี่คุณจะเห็นรายการของอินสแตนซ์ใด ๆ ที่คุณเปิดใช้ซึ่งหากนี่เป็นครั้งแรกที่คุณใช้ EC2 เพียงครั้งเดียว.
เชื่อมต่อกับเซิร์ฟเวอร์ด้วย PuTTy
เราสามารถเชื่อมต่อกับอินสแตนซ์ EC2 ของเราด้วย PuTTy แต่ก่อนอื่นเราจะต้องมีไฟล์คีย์ที่เหมาะสมในการเชื่อมต่อ เมื่อคุณติดตั้ง PuTTy คุณควรติดตั้ง PuTTygen เช่นกัน ไปข้างหน้าและเรียกใช้ทันที PuTTy และ PuTTygen ทั้งคู่วิ่งออกจากกล่องทันทีเป็นไฟล์. exe โดยไม่จำเป็นต้องติดตั้ง.
- เปิด PuTTygen คลิกโหลด.
- นำทางไปยังไฟล์คู่คีย์. pem ที่คุณดาวน์โหลดมาก่อนและโหลดลงใน Puttygen คุณจะต้องเลือกตัวเลือกเพื่อแสดงไฟล์ทุกประเภทสำหรับคีย์. pem ที่จะแสดง กด“ บันทึกคีย์ส่วนตัว” ชื่อไฟล์จะต้องเหมือนกับคีย์. pem คุณสามารถสร้างวลีรหัสผ่านสำหรับคีย์ส่วนตัวได้หากต้องการ.
- ตอนนี้ปิด PuTTygen แล้วเปิด PuTTy คัดลอก IP สาธารณะของอินสแตนซ์ของคุณจากคอนโซล EC2 ไปยัง PuTTy พิมพ์ชื่อเซสชันของคุณแล้วกดบันทึก.
- ในบานหน้าต่างด้านซ้ายนำทางไปยัง“ Auth” ภายใต้ SSH คลิกปุ่มเรียกดูที่ด้านล่างและไปที่คีย์ส่วนตัวที่คุณเพิ่งสร้างขึ้น.
- กลับไปที่หน้าเซสชันหลักตั้งชื่อและบันทึกโปรไฟล์เซสชันเพื่อให้คุณสามารถเชื่อมต่อได้อย่างรวดเร็วในครั้งต่อไปที่คุณใช้ PuTTy จากนั้นคลิกเปิด.
- ข้อความแจ้งจะปรากฏขึ้นเพื่อขอชื่อผู้ใช้ของคุณ สิ่งนี้จะแตกต่างกันไปตามประเภทของเซิร์ฟเวอร์ที่คุณตั้งค่าไว้ที่จุดเริ่มต้น สำหรับ Amazon Linux AMI เป็น“ ผู้ใช้ ec2”.
SSH Tunneling (อุปกรณ์เสริม)
ในการเริ่มต้นเราจะเปลี่ยนเส้นทางการรับส่งข้อมูลเว็บผ่านอินสแตนซ์ที่เราสร้างขึ้นโดยใช้ SSH tunneling และ proxy นี่เป็นวิธีที่รวดเร็วและสกปรกในการหลีกเลี่ยงไฟร์วอลล์หรือการล็อกทางภูมิศาสตร์ มันไม่ได้เป็น VPN – มันเป็นวิธีที่ดีที่สุดสำหรับการเข้าชมเว็บที่มีแสงน้อยและจะไม่ทำงานกับทุกอย่าง แต่มันง่ายกว่ามากในการตั้งค่า อย่างไรก็ตาม, การตั้งค่า SSH tunneling เป็นทางเลือกทั้งหมด, ดังนั้นอย่าลังเลที่จะข้ามไปยังส่วนถัดไป.
เปิด PuTTy และไปที่ Tunnels ด้วยความเจ็บปวดทางซ้าย เพิ่มพอร์ต 8080 ด้วย Auto และ Dynamic ที่เลือก กลับไปที่หน้าเซสชันแล้วกดบันทึกอีกครั้งเพื่อให้คุณไม่ต้องดำเนินการทั้งหมดอีกครั้ง จากนั้นคลิกเปิด.
ตอนนี้คุณเชื่อมต่อกับเซิร์ฟเวอร์แล้ว แต่คุณยังต้องกำหนดเส้นทางการรับส่งข้อมูลผ่านเว็บเบราว์เซอร์ของคุณ หากคุณใช้ Firefox สิ่งนี้สามารถทำได้ในการตั้งค่าเบราว์เซอร์ของคุณ หากคุณใช้ Chrome ให้ดาวน์โหลดส่วนขยาย Proxy Switchy. หากคุณต้องการสร้าง VPN ที่ทำงานได้อย่างสมบูรณ์แทนที่จะเป็นเพียงพร็อกซีสำหรับเบราว์เซอร์ของคุณให้ข้ามไปยังส่วนถัดไปทันที.
ใน Firefox:
- ไปที่เครื่องมือ > ตัวเลือก > สูง > เครือข่าย > สัมพันธ์ > การตั้งค่า > การกำหนดค่าพร็อกซีด้วยตนเอง
- ตั้งค่า SOCKS Host เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าช่องสัญญาณอุโมงค์เป็นบน PuTTy).
- คลิกตกลงเพื่อบันทึก
ใน Chrome Proxy Switchy
- หน้าการตั้งค่าควรปรากฏขึ้นทันทีที่คุณติดตั้งส่วนขยายหรือคลิกที่ไอคอนที่ด้านบนขวาของ Chrome แล้วคลิกตัวเลือก.
- ตั้งชื่อโปรไฟล์ตามที่คุณต้องการ ภายใต้การกำหนดค่าด้วยตนเองตั้งค่าโฮสต์ SOCKS เป็น 127.0.0.1 และพอร์ตเป็น 8080 (หรืออะไรก็ตามที่คุณตั้งค่าพอร์ตอุโมงค์เป็น PuTTy ปล่อยให้ทุกอย่างว่างเปล่า.
- กดปุ่มบันทึกจากนั้นคลิกที่ไอคอนอีกครั้งเพื่อเลือกโปรไฟล์พร็อกซีของคุณ.
Voila! ปริมาณการใช้เบราว์เซอร์ของคุณกำลังถูกส่งผ่านช่องทางผ่านอินสแตนซ์ EC2 ของคุณ สิ่งนี้จะทำงานได้ดีสำหรับการเรียกดูขั้นพื้นฐาน แต่บางเว็บไซต์อาจพบปัญหาและแอพอื่น ๆ นอกเหนือจากเว็บเบราว์เซอร์ของคุณจะยังคงใช้การเชื่อมต่อโดยตรง หากต้องการสร้าง VPN เต็มรูปแบบที่เปลี่ยนเส้นทางการรับส่งข้อมูลอินเทอร์เน็ตทั้งหมดของคุณให้อ่าน.
ตั้งค่า OpenVPN บนเซิร์ฟเวอร์และไคลเอนต์
OpenVPN เป็นเครื่องมือโอเพ่นซอร์สฟรีที่จะช่วยให้คุณเรียกใช้ VPN แบบเต็มผ่านอินสแตนซ์ Amazon EC2 ของคุณ นั่นหมายถึงปริมาณการใช้งานอินเทอร์เน็ตทั้งหมดของคุณไม่เพียง แต่ปริมาณการใช้งานเว็บเบราว์เซอร์ของคุณเท่านั้น โปรแกรมเดสก์ท็อปเช่น Steam หรือ Spotify ทำงานได้ดีขึ้นด้วยวิธีนี้.
เชื่อมต่ออินสแตนซ์ EC2 ของคุณโดยใช้ PuTTy ตามคำแนะนำด้านบน คุณควรมีพรอมต์คำสั่งต่อหน้าคุณที่ระบุว่า Amazon Linux AMI รันคำสั่งต่อไปนี้ (พิมพ์หรือคัดลอก / วางและกด Enter):
sudo yum install -y openvpn
sudo modprobe iptable_nat
echo 1 | sudo tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat-POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat-POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
เพียงบันทึกย่อที่นี่ คุณอาจสังเกตเห็นในภาพหน้าจอที่ฉันพยายามดาวน์โหลดและติดตั้ง OpenVPN อย่างไม่ถูกต้องโดยใช้คำสั่ง“ apt-get” แทน“ yum” Linux รุ่นอื่น ๆ ยังคงใช้ apt-get ดังนั้นถ้า yum ไม่ได้ผลสำหรับคุณลองคำสั่งนี้แทน:
sudo apt-get install -y openvpn
ข้อความจำนวนมากจะกะพริบบนพรอมต์คำสั่งขณะติดตั้ง OpenVPN อีกสามคำสั่งตั้งค่าการส่งต่อ IP ซึ่งจำเป็นสำหรับ VPN ในการทำงาน.
วิธีที่ # 1: การตั้งค่าการตรวจสอบ PKI ด้วย easy-rsa (แนะนำ)
ในเวอร์ชันดั้งเดิมของบทช่วยสอนนี้เราตั้งค่า OpenVPN ด้วยการเข้ารหัสแบบคงที่และไฟล์. vpn ในขณะที่ใช้งานได้จะอนุญาตให้เชื่อมต่ออุปกรณ์ได้ครั้งละหนึ่งอุปกรณ์เท่านั้นและความจริงที่ว่าคุณใช้กุญแจเพียงครั้งเดียวหมายความว่าปลอดภัยน้อยกว่า ตอนนี้เราขอแนะนำให้ผู้อ่านใช้ easy-rsa เพื่อตั้งค่าการตรวจสอบความปลอดภัยซึ่งมีความปลอดภัยมากขึ้นและอนุญาตให้มีการเชื่อมต่ออุปกรณ์จำนวนเท่าใดก็ได้ อย่างไรก็ตามหากคุณต้องการเวอร์ชั่นเก่าที่มีการเข้ารหัสแบบคงที่ให้ข้ามไปโดยคลิกที่นี่.
อัปเดตพฤษภาคม [year]: บทความนี้ได้รับการอัปเดตสำหรับใช้กับ easy-rsa 3.
การตั้งค่าเซิร์ฟเวอร์ OpenVPN และ easyrsa
เป็นการดีที่คุณจะสร้างคีย์และใบรับรองทั้งหมดที่คุณต้องการบนอุปกรณ์แยกจากเซิร์ฟเวอร์ VPN เพื่อความปลอดภัยสูงสุด อย่างไรก็ตามสิ่งนี้อาจค่อนข้างน่าเบื่อดังนั้นเราจะสร้างข้อมูลประจำตัวลูกค้าและเซิร์ฟเวอร์บนเซิร์ฟเวอร์จากนั้นย้ายไฟล์ที่เราต้องการจากที่นั่น.
- Easy-rsa ไม่สามารถใช้ได้ในรายการแพคเกจ yum เริ่มต้นดังนั้นเราจะต้องเปิดใช้งาน repo ของ EPEL เพื่อติดตั้ง พิมพ์ต่อไปนี้ในเทอร์มินัล PuTTy และกด Enter:
- sudo yum ติดตั้ง easy-rsa -y –enablerepo = epel
- สร้างไดเรกทอรีอย่างง่ายในไดเรกทอรีติดตั้ง OpenVPN ของคุณ คัดลอกไฟล์จากการติดตั้ง easy-rsa ของคุณ (เวอร์ชันล่าสุดคือ 3.0.3 ณ เวลาที่เขียน) ไปยังไดเรกทอรีใหม่:
- sudo mkdir / etc / openvpn / easy-rsa
cd / etc / openvpn / easy-rsa
sudo cp -Rv /usr/share/easy-rsa/3.0.3/*
- sudo mkdir / etc / openvpn / easy-rsa
- ตอนนี้เราพร้อมที่จะตั้งค่าหน่วยงานออกใบรับรองของเราแล้ว เริ่มต้นด้วยการเริ่มต้นไดเรกทอรี PKI ใหม่ (โครงสร้างพื้นฐานคีย์สาธารณะ) จากนั้นสร้างคีย์คู่ของหน่วยงานออกใบรับรอง.
- sudo ./easyrsa init-pki
sudo ./easyrsa build-ca
- sudo ./easyrsa init-pki
- ป้อนข้อความรหัสผ่าน PEM สิ่งนี้ไม่จำเป็น แต่แนะนำ หากมีใครได้รับ CA ของคุณอย่างใดอย่างหนึ่งพวกเขาจะไม่สามารถสร้างคีย์หรือลงชื่อใบรับรองโดยไม่ต้องใช้รหัสผ่าน.
- คุณจะได้รับแจ้งให้ป้อนชื่อสามัญ เรียกมันว่าสิ่งที่คุณต้องการหรือเพียงแค่กด เข้าสู่ เพื่อปล่อยให้เป็นค่าเริ่มต้น.
- ต่อไปเราจะสร้างคีย์ Diffie-Hellman ซึ่งให้การรักษาความลับล่วงหน้าที่สมบูรณ์แบบ:
- sudo ./easyrsa gen-dh
- คำสั่งนี้อาจใช้เวลาสักครู่ มันจะสร้างไฟล์ที่เรียกว่า dh.pem. เมื่อเสร็จแล้วเราจะไปยังข้อมูลรับรองเซิร์ฟเวอร์ เพื่อความสะดวกเราจะไม่ป้องกันรหัสผ่านเหล่านี้ แต่คุณยินดีอย่างแน่นอนหากคุณต้องการความปลอดภัยที่สูงขึ้น.
- sudo ./easyrsa เซิร์ฟเวอร์ gen-req ไม่สนับสนุน
- ตี เข้าสู่ เพื่อปล่อยให้ชื่อสามัญเป็น เซิร์ฟเวอร์. เมื่อสร้างคู่คีย์แล้วให้ลงนามใบรับรอง:
- sudo ./easyrsa เซิร์ฟเวอร์เซิร์ฟเวอร์ sign-req
- ชนิด ใช่ เพื่อยืนยันและป้อนรหัสผ่าน CA หากคุณตั้งไว้ก่อนหน้านี้.
- ตอนนี้เราจะตั้งค่าลูกค้า อีกครั้งเราจะไม่ตั้งรหัสผ่านในสิ่งนี้ แต่คุณยินดีต้อนรับ โปรดทราบว่าหากคุณต้องการกำหนดค่าเริ่มต้น VPN อัตโนมัติวิธีที่ดีที่สุดคืออย่าตั้งรหัสผ่าน.
- ./ easyrsa nopass ไคลเอนต์ gen-req
- ตี เข้าสู่ เพื่อปล่อยให้ชื่อสามัญเป็น ลูกค้า. ตอนนี้เซ็นชื่อ:
- sudo ./easyrsa ลูกค้าลูกค้าที่ลงชื่อเข้าใช้
- ชนิด ใช่ เพื่อยืนยันและป้อนรหัสผ่าน CA หากคุณตั้งค่าไว้.
- ต่อไปเราจะสร้างคีย์ TLS สำหรับการส่งต่อความลับอย่างสมบูรณ์แบบใน OpenVPN ซึ่งทำให้มั่นใจได้ว่าข้อมูลเซสชันที่ผ่านมาไม่สามารถถอดรหัสแม้ว่าผู้โจมตีจะได้รับรหัสส่วนตัวของเรา.
- cd / etc / openvpn
openvpn –genkey –secret pfs.key
- cd / etc / openvpn
- ตอนนี้เราได้สร้างไฟล์ข้อมูลรับรองทั้งหมดที่เราต้องการ ต่อไปเราจะสร้างไฟล์กำหนดค่าเซิร์ฟเวอร์ OpenVPN เราได้เขียนบทความให้คุณด้านล่างดังนั้นสิ่งที่คุณต้องทำคือคัดลอกและวางหากคุณได้ติดตามตั้งแต่ต้น เริ่มต้นโดยไปที่ไดเรกทอรี OpenVPN และสร้างไฟล์ใหม่:
- cd / etc / openvpn
sudo nano server.conf
- cd / etc / openvpn
- ตอนนี้คุณอยู่ในเครื่องมือแก้ไขข้อความนาโน คัดลอกและวางการกำหนดค่าต่อไปนี้จากนั้นกด CTRL + O เพื่อบันทึก, เข้าสู่ เพื่อยืนยันและ CTRL + X เพื่อออก (คำแนะนำ: คุณสามารถวางข้อความจากคลิปบอร์ดลงใน PuTTy เพียงแค่คลิกขวา)
- พอร์ต 1194
proto udp
dev tun
ca /etc/openvpn/easy-rsa/pki/ca.crt
ใบรับรอง /etc/openvpn/easy-rsa/pki/issued/server.crt
คีย์ /etc/openvpn/easy-rsa/pki/private/server.key
dh /etc/openvpn/easy-rsa/pki/dh.pem
รหัส AES-256-CBC
รับรองความถูกต้อง SHA512
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
ดัน "redirect-gateway def1 bypass-dhcp"
ดัน "dhcp-option DNS 8.8.8.8"
ดัน "dhcp-option DNS 8.8.4.4"
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-LZO
ยังคงมีอยู่ที่สำคัญ
ยังคงมีอยู่-TUN
สถานะ openvpn-status.log
บันทึกต่อท้าย openvpn.log
กริยา 3
TLS เซิร์ฟเวอร์
tls-auth /etc/openvpn/pfs.key
- พอร์ต 1194
- เซิร์ฟเวอร์ได้รับการกำหนดค่าแล้ว เราแค่ต้องเริ่มต้น OpenVPN เราจะเริ่มเป็นบริการเพื่อให้แม้หลังจากที่คุณปิด PuTTy มันจะยังคงทำงานต่อไปจนกว่าเซิร์ฟเวอร์จะปิดตัวเองหรือคุณสิ้นสุดบริการ.
- บริการ sudo openvpn เริ่มต้น
แก้ไข: ผู้อ่านบางคนชี้ให้เห็นว่าเซิร์ฟเวอร์ VPN หยุดทำงานหลังจากรีบูตเซิร์ฟเวอร์หรือบำรุงรักษา สิ่งนี้เกิดขึ้นเป็นครั้งคราวด้วยอินสแตนซ์ของชั้น EC2 ขนาดเล็ก เพื่อป้องกันสิ่งนี้เราจะใช้คำสั่งและทุบตีมารยาทสคริปต์ของ Matt Doyle ในส่วนความคิดเห็น เริ่มต้นด้วยคำสั่งนี้:
sudo chkconfig openvpn บน
ในขณะที่คุณยังอยู่ใน etc / openvpn ให้ใช้ เซิร์ฟเวอร์นาโน เพื่อสร้างไฟล์ข้อความใหม่และวางต่อไปนี้ลงในมัน:
#! / bin / ดวลจุดโทษ
echo 1 | sudo tee / proc / sys / net / ipv4 / ip_forward
sudo iptables -t nat-POSTROUTING -s 10.4.0.1/2 -o eth0 -j MASQUERADE
sudo iptables -t nat-POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
ใช้ CTRL + O เพื่อบันทึกและ CTRL + X เพื่อออก.
คำสั่งจะตรวจสอบให้มั่นใจว่า OpenVPN เริ่มต้นขึ้นเมื่อเซิร์ฟเวอร์บู๊ตและสคริปต์จะตรวจสอบให้แน่ใจว่ามีการตั้งค่าเส้นทางที่จำเป็นใน iptables เพื่ออนุญาตการรับส่งข้อมูลของ OpenVPN.
การตั้งค่าไคลเอนต์ OpenVPN และ easyrsa
ตอนนี้เซิร์ฟเวอร์ได้รับการกำหนดค่าแล้วเราจำเป็นต้องตั้งค่าไคลเอนต์ ในการดำเนินการดังกล่าวเราจะต้องย้ายใบรับรองและไฟล์สำคัญที่จำเป็นจากเซิร์ฟเวอร์ของเราไปยังอุปกรณ์ลูกค้าของเรา ด้วย PuTTy ยังคงเปิดและรันเป็น root อันดับแรกเราต้องเปลี่ยนการอนุญาตไฟล์เหล่านี้เพื่อให้เราสามารถเข้าถึงได้ เราจะทำให้พวกเขาทั้งหมดอยู่ในที่เดียวเพื่อทำให้สิ่งต่าง ๆ ง่ายขึ้น.
- ในการเข้าถึงไฟล์เหล่านี้เราจำเป็นต้องเป็นผู้ใช้รูท หากต้องการทำเช่นนั้นให้พิมพ์:
- sudo su
- สิ่งนี้จะทำให้คุณเป็นผู้ใช้รูทและให้สิทธิ์การดูแลระบบแก่คุณ ตอนนี้ป้อนคำสั่งต่อไปนี้ คำสั่งสุดท้ายลดสิทธิ์ที่จำเป็นในการเข้าถึงไฟล์เหล่านี้ โปรดทราบว่าการเปลี่ยนกลับเป็นสิ่งสำคัญเมื่อเสร็จสิ้น.
- cd / etc / openvpn
คีย์ mkdir
cp pfs.key keys
คีย์ cp /etc/openvpn/easy-rsa/pki/dh.pem
cp /etc/openvpn/easy-rsa/pki/ca.crt คีย์
cp /etc/openvpn/easy-rsa/pki/private/ca.key คีย์
cp /etc/openvpn/easy-rsa/pki/private/client.key
cp /etc/openvpn/easy-rsa/pki/issued/client.crt คีย์
chmod 777 *
- cd / etc / openvpn
- ในการลบไฟล์ออกจากเซิร์ฟเวอร์ของเราและไปยังพีซีเราจะใช้โปรแกรมฟรีที่เรียกว่า WinSCP เพียงใช้ตัวเลือกการติดตั้งเริ่มต้น เมื่อดำเนินการเสร็จสิ้นหน้าต่างจะปรากฏขึ้นพร้อมท์ให้คุณนำเข้ารายละเอียดการตรวจสอบสิทธิ์เซิร์ฟเวอร์ของคุณจาก PuTTy เลือกรายการที่เราทำด้านบนและดำเนินการต่อ.
- เลือก myvpn (หรือสิ่งที่คุณตั้งชื่อของคุณ) และกดปุ่มแก้ไข พิมพ์ใน EC2 ผู้ใช้ ภายใต้ชื่อผู้ใช้ คลิกที่เข้าสู่ระบบ.
- หากนี่ไม่ใช่ครั้งแรกที่คุณใช้ WinSCP คุณสามารถตั้งค่าไฟล์. pkk ที่คุณใช้ใน PuTTy ได้โดยคลิก แก้ไข และ สูง. ไปที่ SSH > การรับรอง > ไฟล์รหัสส่วนตัว และนำทางไปยังไฟล์ PPK ของคุณ.
- ในฟิลด์ชื่อโฮสต์บนหน้าหลักคุณสามารถป้อนที่อยู่ IP หรือโดเมนของอินสแตนซ์ EC2 ของคุณ อย่าลืมบันทึกการตั้งค่าของคุณแล้วกด เข้าสู่ระบบ.
- ในบานหน้าต่างด้านขวานำทางไปยังไดเรกทอรีที่มีไฟล์สำคัญของคุณในกรณีนี้ / etc / OpenVPN / คีย์
- เน้นหกไฟล์ที่คุณต้องการ: client.crt, client.key, ca.crt, dh.pem, pfs.key, และ ca.key (ไม่แสดงเนื่องจากการอัปเดตบทความ) ตีสีเขียว ดาวน์โหลด ปุ่ม. ไม่สำคัญว่าพวกเขาจะไปที่ใดในบานหน้าต่างด้านซ้ายตราบใดที่คุณไม่ต้องการสิทธิ์ผู้ดูแลระบบในการเข้าถึง เราวางไฟล์ไว้บนเดสก์ท็อปเพื่อความเรียบง่าย อย่างไรก็ตามคุณจะต้องเก็บไฟล์ ca.key ไว้ในที่ปลอดภัยเช่นไดรฟ์ USB.
- จุดจบสุดท้ายที่เราต้องทำคือ ลบไฟล์ ca.key ออกจากเซิร์ฟเวอร์. CA หรือผู้มีสิทธิ์ออกใบรับรองจะใช้ในการลงนามใบรับรองลูกค้าและหากมีการบุกรุกคุณจะไม่สามารถเชื่อถือใบรับรองที่ออกโดย CA นั้นอีกครั้ง แม้ว่าสิ่งนี้ไม่จำเป็นสำหรับ VPN ในการทำงาน แต่เราขอแนะนำอย่างยิ่งให้ทำ, โดยเฉพาะอย่างยิ่งหากคุณไม่ได้ตั้งรหัสผ่านสำหรับ CA. ตรวจสอบให้แน่ใจว่าคุณได้คีย์และใบรับรองทั้งหมดสำหรับทุกอุปกรณ์ที่คุณต้องการเชื่อมต่อก่อนที่จะลบไฟล์ หากคุณต้องการเพิ่มมากขึ้นในภายหลังคุณจะต้องย้ายไฟล์ ca.key กลับไปที่เซิร์ฟเวอร์.
- เมื่อคุณมีคีย์ CA เก็บไว้อย่างปลอดภัยที่อื่นนอกเหนือจากเซิร์ฟเวอร์ไปที่ PuTTy และลบทั้ง ca.key ดั้งเดิมและสำเนาที่เราทำจากเซิร์ฟเวอร์:
- sudo rm /etc/openvpn/easy-rsa/pki/private/ca.key
sudo rm /etc/openvpn/keys/ca.key
- sudo rm /etc/openvpn/easy-rsa/pki/private/ca.key
- เมื่อไฟล์ดาวน์โหลดแล้วเราจำเป็นต้องเรียกคืนการอนุญาตที่เข้มงวดกว่าบนเซิร์ฟเวอร์ดังนั้นไม่ใช่ทุกคนที่สามารถเข้าถึงได้ ย้อนกลับไปใน PuTTy:
- cd / etc / openvpn / keys
sudo chmod 600 *
- cd / etc / openvpn / keys
- บนพีซีของคุณตัดและวางไฟล์ห้าไฟล์จากที่ใดก็ตามที่คุณดาวน์โหลดลงในโฟลเดอร์กำหนดค่า OpenVPN ของคุณ ในกรณีนี้ C: // ไฟล์โปรแกรม // OpenVPN // config.
- สุดท้ายเราต้องสร้างไฟล์กำหนดค่าไคลเอนต์ เปิดโปรแกรมแก้ไขข้อความธรรมดาที่ชอบ (Notepad ทำงานได้ดี) โดยคลิกขวาและเลือก ทำงานในฐานะผู้ดูแลระบบ และวางการกำหนดค่าต่อไปนี้แทนที่ YOUR.EC2.INSTANCE.IP ด้วยที่อยู่ IP ของอินสแตนซ์ EC2 ของคุณ:
- ลูกค้า
dev tun
proto udp
ห่างไกล YOUR.EC2.INSTANCE.IP 1194
ca ca.crt
ใบรับรองลูกค้า
คีย์ลูกค้าคีย์
tls-version-min 1.2
tls-cipher TLS-ECDHE-RSA-WITH-AES-128-GCM-SHA256: TLS-ECDHE-ECDSA-WITH-AES-128-GCM-SHA256: TLS-ECDHE-RSA-พร้อม -AES-256-GCM-SHA384 : TLS-DHE-อาร์เอสที่มีการเข้ารหัส AES-256-CBC-SHA256
รหัส AES-256-CBC
รับรองความถูกต้อง SHA512
resolv-retry อนันต์
รับรองความถูกต้องลองอีกครั้งไม่มี
nobind
ยังคงมีอยู่ที่สำคัญ
ยังคงมีอยู่-TUN
เซิร์ฟเวอร์ ns-cert-type
comp-LZO
กริยา 3
TLS-ลูกค้า
tls-auth pfs.key
- ลูกค้า
- นี่เป็นไฟล์กำหนดค่า Windows สำหรับ OpenVPN GUI ดังนั้นเราจะบันทึกเป็น client.ovpn. ไคลเอนต์ OpenVPN อื่น ๆ อาจใช้ส่วนขยาย. config แทน ไม่ว่าในกรณีใดโปรดตรวจสอบให้แน่ใจว่าเครื่องมือแก้ไขข้อความของคุณไม่ได้เพิ่มส่วนขยาย. txt หลังจากบันทึก บันทึกลงในตำแหน่งเดียวกับไฟล์คีย์และไฟล์รับรองของคุณ: C: \\ โปรแกรมไฟล์ \\ OpenVPN \\ config
- ตอนนี้รัน OpenVPN GUI ในโหมดผู้ดูแลระบบโดยคลิกขวาและเลือก ทำงานในฐานะผู้ดูแลระบบ. คลิกขวาที่ไอคอนในซิสเต็มเทรย์ของคุณและเชื่อมต่อกับ ลูกค้า การกำหนดค่าเราเพิ่งตั้งค่า หน้าจอสถานะพร้อมข้อความจำนวนมากจะกระพริบไปทั่วหน้าจอจากนั้นไอคอนจะเปลี่ยนเป็นสีเขียว.
ขอแสดงความยินดี! ตอนนี้คุณเชื่อมต่อกับ VPN แบบโฮมเมดของคุณแล้ว.
วิธีที่ # 2: การเข้ารหัสแบบคงที่ (ง่ายกว่า แต่ไม่แนะนำ)
ในวิธีนี้เราจะสร้างรหัสแชร์สำหรับการตรวจสอบสิทธิ์ มันเป็นเหมือนไฟล์ที่ทำหน้าที่เป็นรหัสผ่าน การตั้งค่าทำได้ง่ายขึ้น แต่อนุญาตให้เชื่อมต่ออุปกรณ์เดียวกับ VPN ได้ตลอดเวลาและมีความปลอดภัยน้อยกว่าวิธี easy-rsa ด้านบน.
- ใน PuTTy Type ในคำสั่งต่อไปและกด Enter:
- cd / etc / openvpn
sudo openvpn –genkey –secret ovpn.key
- cd / etc / openvpn
- ตอนนี้เรากำลังจะสร้างไฟล์กำหนดค่าเซิร์ฟเวอร์สำหรับ VPN ของเรา พิมพ์คำสั่งต่อไปนี้เพื่อสร้างไฟล์ข้อความเปล่าในเท็กซ์เอดิเตอร์ขั้นพื้นฐานภายในเทอร์มินัล:
- sudo nano openvpn.conf
- พิมพ์การกำหนดค่าต่อไปนี้ คุณสามารถค้นหาตัวเลือกเพิ่มเติมได้จากเว็บไซต์ OpenVPN หากคุณต้องการเล่นกับสิ่งนี้ในภายหลัง แต่ให้แน่ใจว่าคุณรู้ว่าคุณกำลังทำอะไรก่อน.
- พอร์ต 1194
proto tcp-server dev tun1
ifconfig 10.4.0.1 10.4.0.2
สถานะเซิร์ฟเวอร์ -tcp.log
กริยา 3
secret ovpn.key
- พอร์ต 1194
- ตอนนี้กด CTRL + O (นั่นคือตัวอักษร ‘O’ ไม่ใช่ศูนย์) และกด Enter เพื่อบันทึกไฟล์ จากนั้นกด CTRL + X เพื่อออกจากโปรแกรมแก้ไขข้อความ กลับไปที่พรอมต์คำสั่งถึงเวลาที่จะเปิดใช้งาน OpenVPN:
- บริการ sudo openvpn เริ่มต้น
- ต่อไปเราต้องรับรหัสที่ใช้ร่วมกันจากเซิร์ฟเวอร์ไปยังเครื่องคอมพิวเตอร์ของคุณ ก่อนอื่นเราต้องเปลี่ยนการอนุญาตในไฟล์นั้นเพื่อให้เราสามารถเข้าถึงได้โดยใช้คำสั่งต่อไปนี้:
- sudo chmod 777 ovpn.key
- หาก ณ จุดใดก็ตามที่คุณปิด PuTTy โดยไม่ตั้งใจหรือเพิ่งออกมาคุณสามารถนำทางกลับไปยังไดเรกทอรีการติดตั้ง VPN ที่เปิดอยู่หลังจากเชื่อมต่อใหม่โดยใช้คำสั่งนี้:
- cd / etc / openvpn
- เพื่อให้ง่ายที่สุดเท่าที่จะเป็นไปได้ดาวน์โหลดและติดตั้งแอปพลิเคชั่นฟรีนี้ WinSCP (ผู้ใช้ Mac จะต้องค้นหาไคลเอนต์ FTP อื่นไม่ต้องกังวลมีจำนวนมาก) เพียงใช้ตัวเลือกการติดตั้งเริ่มต้น เมื่อดำเนินการเสร็จสิ้นหน้าต่างจะปรากฏขึ้นพร้อมท์ให้คุณนำเข้ารายละเอียดการตรวจสอบสิทธิ์เซิร์ฟเวอร์ของคุณจาก PuTTy เลือกรายการที่เราทำด้านบนและดำเนินการต่อ.
- เลือก myvpn (หรือสิ่งที่คุณตั้งชื่อของคุณ) และกดปุ่มแก้ไข พิมพ์“ ผู้ใช้ ec2” ภายใต้ชื่อผู้ใช้ คลิกที่เข้าสู่ระบบ.
- ตอนนี้คุณสามารถย้ายไฟล์ระหว่างเซิร์ฟเวอร์อินสแตนซ์ EC2 ของคุณและเครื่องคอมพิวเตอร์ของคุณ ที่แผงด้านขวานำทางขึ้นไปให้ไกลที่สุดจากนั้นไปที่ etc / openvpn ที่นี่คุณจะพบไฟล์ ovpn.key ที่เราต้องการ คลิกและลากลงในโฟลเดอร์ที่คุณเลือก แต่จำไว้ว่าคุณวางไว้ที่ไหนเพราะเราต้องการย้ายในภายหลัง.
- ตอนนี้คุณมีรหัสแล้วเราจำเป็นต้องใช้สิทธิ์เดิมอีกครั้งดังนั้นไม่ใช่ทุกคนที่สามารถคว้ามันได้ กลับไปที่เทอร์มินัล PuTTy ของคุณป้อน:
- sudo chmod 600 ovpn.key
- ได้เวลาดาวน์โหลดไคลเอนต์และ GUI ของ OpenVPN สำหรับคอมพิวเตอร์ของคุณ ไปที่หน้าดาวน์โหลด OpenVPN และเลือกรุ่นที่เหมาะสมสำหรับระบบปฏิบัติการของคุณ ติดตั้งด้วยการตั้งค่าเริ่มต้น.
- เรียกใช้ OpenVPN และควรปรากฏเป็นไอคอนในซิสเต็มเทรย์ของคุณ เปิดไฟล์ explorer และนำทางไปยังตำแหน่งที่คุณติดตั้ง OpenVPN ซึ่งอาจอยู่ในโฟลเดอร์ Program Files ของคุณ ย้ายไฟล์ opvn.key ที่เราดาวน์โหลดจากเซิร์ฟเวอร์ไปยังโฟลเดอร์ config ที่นี่ (C: / Program Files / OpenVPN / config …หากคุณใช้ไดเรกทอรีการติดตั้งเริ่มต้นบน Windows).
- ต่อไปเราต้องสร้างไฟล์กำหนดค่าสำหรับเครื่องในท้องถิ่นเพื่อให้ตรงกับที่เราทำบนเซิร์ฟเวอร์ของเรา เปิด Notepad และวางสิ่งต่อไปนี้แทนที่ที่อยู่ IP หลังจาก “remote” ด้วย IP ของอินสแตนซ์ EC2 ของคุณ (หากคุณลืมให้ค้นหาในคอนโซล AWS ของคุณภายใต้ EC2 อินสแตนซ์) ตรวจสอบอีกครั้งว่าพา ธ ไฟล์เต็มชี้ไปที่คีย์ของคุณถูกต้อง.
- proto tcp-client
ห่างไกล
พอร์ต 1194
dev tun
ความลับ "C: \\ โปรแกรมไฟล์ \\ OpenVPN \\ config \\ ovpn.key"
redirect-gateway def1
ifconfig 10.4.0.2 10.4.0.1
- proto tcp-client
- บันทึกเป็น myconfig.ovpn (ตรวจสอบให้แน่ใจว่าเครื่องมือแก้ไขข้อความของคุณไม่ได้ผนวกเป็น myconfig.ovpn.txt โดยไม่ได้ตั้งใจ) ในโฟลเดอร์ config ของการติดตั้ง OpenVPN ของคุณซึ่งเป็นตำแหน่งเดียวกับไฟล์ opvn.key ของคุณ.
- คลิกขวาที่ไอคอน OpenVPN ในซิสเต็มเทรย์ของคุณแล้วคลิกออกเพื่อออก ตอนนี้เริ่มต้นขึ้นอีกครั้ง – จากทางลัดบนเดสก์ท็อปหรือจากโฟลเดอร์ Program Files – แต่คราวนี้ใช้คลิกขวาแล้วกด“ Run as administrator” หากคุณไม่ได้ใช้ OpenVPN ในฐานะผู้ดูแลระบบของ Windows อาจเป็นไปได้ว่ามันจะไม่ทำงาน.
- คลิกขวาที่ไอคอนถาดระบบแล้วคลิกเชื่อมต่อ OpenVPN GUI จะปรากฏขึ้นเพื่อแสดงสถานะการเชื่อมต่อของคุณ หากใช้งานได้ไอคอนถาดระบบจะเปลี่ยนเป็นสีเขียว ไปที่ Google แล้วพิมพ์“ IP ของฉันคืออะไร” และควรส่งคืนที่อยู่ IP ของ Amazon EC2 Instance ของคุณ.
ขอแสดงความยินดีคุณเพิ่งสร้าง VPN ของคุณเอง!
หมายเหตุเพิ่มเติม
หากคุณต้องการปกป้อง VPN ของคุณจากการตรวจสอบแพ็คเก็ตลึกเทคนิคที่ใช้โดยระบบการเซ็นเซอร์ในสถานที่เช่นจีนและซีเรียในการบล็อกการเชื่อมต่อ OpenVPN ลองดูบทแนะนำการตั้งค่า Obfsproxy โปรดสังเกตว่าบทช่วยสอนนี้เขียนขึ้นเป็นภาคต่อของวิธีที่เก่ากว่า # 2 ในบทความนี้ดังนั้นหากคุณใช้ easy-rsa จะต้องมีการกำหนดค่าเพิ่มเติมบางอย่าง.
อย่าลืมรักษาแบนด์วิดท์ของคุณให้อยู่ในระดับที่ จำกัด ของ Amazon ฟรี วิธีที่ง่ายที่สุดในการทำเช่นนี้คือคลิกขวาบนอินสแตนซ์ของคุณในคอนโซล AWS และคลิกที่ลิงค์“ เพิ่ม / แก้ไขสัญญาณเตือน” คุณสามารถตั้งค่าเซิร์ฟเวอร์ของคุณให้หยุดหรือยกเลิกหลังจากไม่มีการใช้งานสองสามชั่วโมง เทียร์ฟรีอนุญาตให้ 750 ชั่วโมงต่อเดือน (ซึ่งครอบคลุมทั้งเดือน) ดังนั้นคุณไม่จำเป็นต้องทำเช่นนี้ ผู้ใช้เหล่านั้นผ่านปีที่ว่างในการให้บริการครั้งแรกหรือทำสิ่งต่างๆกับเซิร์ฟเวอร์ได้มากขึ้นสามารถป้องกันการเรียกเก็บเงินที่ไม่จำเป็นสำหรับเวลาเซิร์ฟเวอร์ที่ไม่ได้ใช้.
บางแห่งในบทช่วยสอนนี้มีบางอย่างที่อาจผิดปกติสำหรับคุณ หากคุณต้องการ VPN จริง ๆ แต่ไม่เต็มใจที่จะทำการแก้ไขปัญหาอย่างยุติธรรมคุณควรเลือกใช้บริการ VPN แบบเสียค่าใช้จ่าย นอกจากนี้ยังช่วยให้คุณสามารถเข้าถึงช่องทางอินเทอร์เน็ตของคุณผ่านสถานที่ทางภูมิศาสตร์หลายแห่งในขณะที่อินสแตนซ์ EC2 ถูก จำกัด ไว้เพียงที่เดียว ตรวจสอบรีวิว VPN ของเราที่นี่!
เข้ารหัสเซิร์ฟเวอร์ DNS ลงใน VPN ของคุณ
หากคุณต้องการตั้งค่าเซิร์ฟเวอร์ DNS เฉพาะให้ใช้กับ VPN ของคุณมีตัวเลือกสองสามตัว.
ในการ“ พุช” เซิร์ฟเวอร์ DNS ไปยังไคลเอนต์ให้เพิ่มบรรทัดนี้ในการกำหนดค่าเซิร์ฟเวอร์ สิ่งนี้จะมีผลกับอุปกรณ์ทั้งหมดที่เชื่อมต่อกับ VPN ของคุณ (รวมเครื่องหมายคำพูด):
ดัน "dhcp-option DNS 45.56.117.118"
หรือคุณสามารถตั้งค่า DNS ในการกำหนดค่าไคลเอนต์แต่ละรายการโดยใช้:
dhcp-option DNS 45.56.117.118
ในตัวอย่างเหล่านี้ฉันใช้เซิร์ฟเวอร์ DNS สาธารณะ OpenNIC ที่มีการบันทึกที่ไม่ระบุชื่อในสหรัฐอเมริกา คุณสามารถค้นหาเซิร์ฟเวอร์ OpenNIC ในประเทศที่คุณเลือกและกรองตามคุณสมบัติเช่นการบันทึกที่ไม่ระบุชื่อและ DNSCrypt ที่นี่.
ขอขอบคุณเป็นพิเศษกับบล็อกของ Dctr Watson ซึ่งฉันพึ่งพาเป็นแหล่งข้อมูลเมื่อเขียนบทความนี้.
Jon Watson (ไม่มีความสัมพันธ์ฉันคิดว่า) มีส่วนทำให้บทความนี้.