โอเพ่น VPNเป็นแอปพลิเคชันสำหรับสร้างอุโมงค์ IP ที่ปลอดภัยผ่าน UDP เดียว - หรือพอร์ต TCP - พอร์ต 1194 เพื่อให้มั่นใจในความปลอดภัยของช่องสัญญาณควบคุมและการไหลของข้อมูล OpenVPN ใช้ไลบรารี OpenSSL (โปรโตคอล SSLv3 / TLSv1 ที่แม่นยำยิ่งขึ้น) เช่น ความสามารถในการเข้ารหัส การรับรองความถูกต้อง และการรับรองทั้งหมดของไลบรารี OpenSSL นั้นพร้อมใช้งาน (รหัส ขนาดคีย์ใดก็ได้) อัลกอริธึม HMAC สำหรับ OpenVPN ยังสามารถใช้เพื่อมอบความปลอดภัยที่มากขึ้น และ การเร่งความเร็วด้วยฮาร์ดแวร์ เพื่อปรับปรุงประสิทธิภาพการเข้ารหัส
OpenVPN ใช้กับ Solaris, OpenBSD, FreeBSD, NetBSD, GNU/Linux, แอปเปิ้ลแมค OS X และไมโครซอฟต์วินโดวส์
OpenVPN ให้การรับรองความถูกต้องหลายประเภทแก่ผู้ใช้:
ปุ่มที่ตั้งไว้ล่วงหน้าเป็นวิธีที่ง่ายที่สุด
เมื่อใช้ล็อกอินและรหัสผ่าน สามารถใช้งานได้โดยไม่ต้องสร้างใบรับรองไคลเอ็นต์ (ยังจำเป็นต้องมีใบรับรองเซิร์ฟเวอร์)
OpenVPN สามารถใช้คีย์แบบคงที่ คีย์ที่แชร์ล่วงหน้า หรือการแลกเปลี่ยนคีย์ไดนามิกแบบ TLS นอกจากนี้ยังรองรับ การเชื่อมต่อ VPNด้วยโฮสต์ระยะไกลแบบไดนามิก (DHCP หรือไคลเอ็นต์ผ่านสายโทรศัพท์) ช่องสัญญาณผ่าน NAT หรือผ่านระบบเต็มรูปแบบ ไฟร์วอลล์(เช่นกฎ iptables ของ Linux)
การตั้งค่าไฟล์คอนฟิกูเรชันไคลเอ็นต์เหมือนกันทั้งในรูปแบบไวยากรณ์และการเขียนสำหรับทั้ง Linux และ Windows
ส่วนประกอบเครือข่าย OpenVPN
ส่วนประกอบและวัตถุเครือข่าย OpenVPN หลัก
ผู้มีอำนาจออกใบรับรอง CA- ออกใบรับรองเมื่อมีการร้องขอจากโหนด เครือข่าย VPNลงนามโดยใบรับรองผู้ออกใบรับรอง มอบใบรับรองโฮสต์ VPN ของตนเองเพื่อตรวจสอบฝ่ายการรับรองความถูกต้อง จัดการรายการเพิกถอนใบรับรอง CRL
เซิร์ฟเวอร์ OpenVPN- ซอฟต์แวร์เซิร์ฟเวอร์ OpenVPN สร้างอุโมงค์ภายใน เครือข่ายที่ไม่ปลอดภัยเช่น อินเทอร์เน็ต อุโมงค์นี้ให้การรับส่งข้อมูลที่เข้ารหัสอย่างปลอดภัยระหว่างโหนดที่เข้าร่วมในเครือข่าย OpenVPN
ไคลเอนต์ OpenVPN- ซอฟต์แวร์ไคลเอนต์ OpenVPN ได้รับการติดตั้งบนโหนดทั้งหมดที่ต้องการช่องทางการสื่อสารที่ปลอดภัยกับเซิร์ฟเวอร์ OpenVPN ด้วยการกำหนดค่าที่เหมาะสมของเซิร์ฟเวอร์ OpenVPN การถ่ายโอนข้อมูลที่ปลอดภัยจึงเป็นไปได้ระหว่างไคลเอนต์ OpenVPN และไม่ใช่เฉพาะระหว่างไคลเอนต์กับเซิร์ฟเวอร์ OpenVPN เท่านั้น
ใบรับรอง (กุญแจสาธารณะ) X.509- ใบรับรอง X.509 เป็นกุญแจสาธารณะที่ได้รับการรับรองโดย CA ใช้ในการเข้ารหัสข้อมูล ความจริงที่ว่าใบรับรองได้รับการรับรองโดย CA ทำให้คุณสามารถระบุฝ่ายที่ส่งข้อมูลที่เข้ารหัสได้ ไฟล์คำขอใบรับรองจะถูกสร้างขึ้นบนโหนดเครือข่าย จากนั้นจะถูกถ่ายโอนไปยังโหนดผู้ออกใบรับรองและลงนามที่นั่น ใบรับรองที่ลงนามแล้วที่ได้จะถูกโอนกลับไปยังโหนดเครือข่าย OpenVPN ที่ร้องขอ
คีย์ส่วนตัว- คีย์ส่วนตัวเป็นความลับ ต้องสร้างและจัดเก็บไว้ในแต่ละโหนดของเครือข่าย OpenVPN มีจุดประสงค์เพื่อถอดรหัสข้อมูล และไม่ควรส่งผ่านเครือข่าย คีย์ส่วนตัวถูกสร้างขึ้นบนโหนดเครือข่าย OpenVPN พร้อมกันกับไฟล์คำขอใบรับรอง
รายการเพิกถอนใบรับรอง CRL- ประกอบด้วยรายการใบรับรองที่สูญเสียความน่าเชื่อถือ มันถูกสร้างและแก้ไขบนโหนด CA หากต้องการยกเลิกการเชื่อมต่อโหนดจากเครือข่าย เพียงเพิ่มใบรับรองไปยัง CRL หลังจากการสร้างและการเปลี่ยนแปลงแต่ละครั้ง รายการ CRL จะถูกโอนไปยังเซิร์ฟเวอร์ OpenVPN
ไฟล์ดิฟฟี-เฮลล์แมน- ใช้เพื่อป้องกันการถอดรหัสการรับส่งข้อมูลที่บันทึกไว้ก่อนการโจรกรรมในกรณีที่มีการโจรกรรมกุญแจ สร้างบนเซิร์ฟเวอร์ OpenVPN
ความปลอดภัยและการเข้ารหัส
ความปลอดภัยและการเข้ารหัสใน OpenVPN จัดทำโดยไลบรารี วิธีใช้ OpenSSL และโปรโตคอล ชั้นการขนส่งความปลอดภัยของเลเยอร์การขนส่ง (TLS) แทนที่จะใช้ OpenSSL ใน OpenVPN เวอร์ชันใหม่ คุณสามารถใช้ไลบรารี PolarSSL ได้ โปรโตคอล TLS เป็นการปรับปรุงโปรโตคอลการถ่ายโอนข้อมูลที่ปลอดภัยของเลเยอร์ Secure Socket Layers (ใบรับรอง SSL สำหรับเว็บไซต์ เมล)
OpenSSL สามารถใช้การเข้ารหัสแบบสมมาตรและไม่สมมาตรได้
ในกรณีแรกก่อนที่จะเริ่มการถ่ายโอนข้อมูลจำเป็นต้องวางสิ่งเดียวกันก่อน รหัสลับ- สิ่งนี้ทำให้เกิดปัญหา โอนอย่างปลอดภัยคีย์นี้ผ่านอินเทอร์เน็ตที่ไม่ปลอดภัย
ในกรณีที่สอง ผู้เข้าร่วมการแลกเปลี่ยนข้อมูลแต่ละคนจะมีสองคีย์ - สาธารณะ (เปิด) และส่วนตัว (ความลับ)
คีย์สาธารณะใช้เพื่อเข้ารหัสข้อมูล และใช้คีย์ส่วนตัวเพื่อถอดรหัส การเข้ารหัสจะขึ้นอยู่กับคณิตศาสตร์ที่ค่อนข้างซับซ้อน อัลกอริธึมการเข้ารหัสคีย์สาธารณะที่เลือกใน SSL/TLS ให้ความสามารถในการถอดรหัสโดยใช้คีย์ส่วนตัวเท่านั้น
คีย์ส่วนตัวเป็นความลับและต้องอยู่ภายในโหนดที่ถูกสร้างขึ้น คีย์สาธารณะจะต้องถูกส่งไปยังผู้เข้าร่วมในการแลกเปลี่ยนข้อมูล
เพื่อการถ่ายโอนข้อมูลที่ปลอดภัย จำเป็นต้องระบุฝ่ายที่เกี่ยวข้องกับการแลกเปลี่ยนข้อมูล มิฉะนั้น คุณอาจตกเป็นเหยื่อของสิ่งที่เรียกว่า "การโจมตีแบบแทรกกลาง" ตรงกลาง, มิทเอ็ม) ในระหว่างการโจมตี ผู้โจมตีจะเชื่อมต่อกับช่องรับส่งข้อมูลและดักฟังข้อมูลนั้น นอกจากนี้ยังสามารถรบกวน ลบ หรือเปลี่ยนแปลงข้อมูลได้อีกด้วย
เพื่อให้การรับรองความถูกต้อง (การรับรองความถูกต้องของผู้ใช้) โปรโตคอล TLSใช้โครงสร้างพื้นฐานคีย์สาธารณะ (PKI) และการเข้ารหัสแบบอสมมาตร
คุณต้องตระหนักว่าการถอดรหัสข้อมูลโดยไม่มีคีย์ส่วนตัวก็เป็นไปได้เช่นกัน เช่น การใช้กำลังดุร้าย แม้ว่าวิธีการนี้จะต้องใช้คอมพิวเตอร์มาก แต่ก็ต้องใช้เวลาเท่านั้นจึงจะสามารถถอดรหัสข้อมูลได้
แม้ว่าขนาดของคีย์จะส่งผลต่อความยากในการถอดรหัส แต่ไม่มีคีย์ใดรับประกันความปลอดภัยของข้อมูลได้อย่างสมบูรณ์ นอกจากนี้ยังมีความเป็นไปได้ที่จะถูกขโมยข้อมูลและคีย์ที่ถอดรหัสแล้วเนื่องจากช่องโหว่และบุ๊กมาร์กในระบบปฏิบัติการหรือแอพพลิเคชั่นซอฟต์แวร์ รวมถึงในฮาร์ดแวร์ของเซิร์ฟเวอร์และเวิร์กสเตชัน
การเข้ารหัสข้อมูลช่วยเพิ่มการรับส่งข้อมูลและทำให้การสื่อสารช้าลง ยิ่งคีย์ที่ใช้ในการเข้ารหัสข้อมูลนานเท่าไร การค้นหาก็จะยิ่งยากขึ้นเท่านั้น แต่การแลกเปลี่ยนข้อมูลจะช้าลงอย่างเห็นได้ชัด
OpenVPN Debian Wheezy/sid
# ความถนัดติดตั้ง openvpn # mkdir /etc/openvpn/easy-rsa # cp -R /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/
การเปลี่ยนการตั้งค่าเริ่มต้นสำหรับใบรับรอง
# nano /etc/openvpn/easy-rsa/vars ... ส่งออก KEY_COUNTRY="US" ส่งออก KEY_PROVINCE="CA" ส่งออก KEY_CITY="SanFrancisco" ส่งออก KEY_ORG="Fort-Funston" ส่งออก KEY_EMAIL=" [ป้องกันอีเมล]"
มาสร้างกันเถอะ ตัวแปรสภาพแวดล้อม bash หากยังไม่เสร็จสิ้น เมื่อสร้างคีย์ไคลเอ็นต์ ตัวแปรจะถูกนำมาจาก /etc/openvpn/easy-rsa/openssl.cnf และไม่ใช่จากไฟล์ vars
# cd /etc/openvpn/easy-rsa # source ./vars หมายเหตุ: หากคุณเรียกใช้ ./clean-all ฉันจะทำ rm -rf บน /etc/openvpn/easy-rsa/keys # ./clean- ทั้งหมด # ./build-dh
มาสร้างใบรับรองสำหรับเซิร์ฟเวอร์ชื่อ vpnspar
# ./pkitool --initca # ./pkitool --เซิร์ฟเวอร์ vpnspar
มาสร้างใบรับรองสำหรับลูกค้าที่ชื่อ farm1c คีย์แยกต่างหากสำหรับลูกค้าแต่ละราย
# ./pkitool farm1c # mkdir /etc/openvpn/keys # คีย์ cp/ca.crt /etc/openvpn/keys # คีย์ cp/dh1024.pem /etc/openvpn/keys # คีย์ cp/vpnspar.crt /etc/openvpn /keys # cp คีย์/vpnspar.key /etc/openvpn/keys
ไดเร็กทอรี ccd จัดเก็บ การตั้งค่าส่วนบุคคลสำหรับลูกค้าแต่ละราย ชื่อไฟล์ต้องตรงกับชื่อของใบรับรองไคลเอ็นต์ที่สร้างขึ้น ไฟล์คอนฟิกูเรชันไคลเอนต์ได้แก่ ไฟล์ข้อความและมีคำสั่งที่ดำเนินการโดยเซิร์ฟเวอร์เมื่อไคลเอนต์เชื่อมต่อ โดยทั่วไปแล้วไฟล์ไคลเอนต์จะมีคำสั่งต่อไปนี้:
เพิ่มเส้นทางให้กับลูกค้าไปยังเครือข่ายย่อยท้องถิ่นของสำนักงานกลาง (กด "เส้นทาง 192.168.1.0 255.255.255.0")
กำหนดที่อยู่ของเครือข่ายย่อยภายในเครื่องที่อยู่ด้านหลังไคลเอ็นต์ (เช่น เส้นทาง 192.168.2.0 255.255.255.0)
เชื่อมโยงกับ IP แบบคงที่ (ifconfig-push 192.168.14.21 192.168.14.22) โดยที่ ifconfig-push
เซิร์ฟเวอร์.conf
กำหนดค่าเซิร์ฟเวอร์ในไฟล์ server.conf
# cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/ # gunzip server.conf.gz # nano /etc/openvpn/server.conf server.conf ท้องถิ่น xxx.196.98.xxx # IP ที่เซิร์ฟเวอร์รับฟังข้อความขาเข้าพอร์ต 1194 # พอร์ตที่เซิร์ฟเวอร์รับฟังข้อความขาเข้าโปรโต udp dev tun # เปิดใช้งานอินเทอร์เฟซการจัดการ OpenVPN มีจำหน่ายที่ ความช่วยเหลือจากเทลเน็ตโลคัลโฮสต์ 7505การจัดการ localhost 7505 ca คีย์/ca.crt # ตำแหน่งของใบรับรองที่เชื่อถือได้ (CA) ที่ลงนามด้วยตนเองคีย์ใบรับรอง / vpnspar.crt # ตำแหน่งใบรับรองเซิร์ฟเวอร์คีย์ คีย์/ vpnspar.key # ตำแหน่งของคีย์ส่วนตัวของเซิร์ฟเวอร์คีย์ dh/ dh1024.pem # ตำแหน่งของไฟล์พารามิเตอร์ Diffie-Halman # การตั้งค่าโหมดเซิร์ฟเวอร์และที่อยู่เครือข่าย VPN # ซึ่ง OpenVPN จะกระจายที่อยู่ให้กับลูกค้า # เซิร์ฟเวอร์จะใช้เวลา 192.168.14.1, ที่อยู่อื่นอีก # รายการจะพร้อมใช้งานสำหรับลูกค้า # ลูกค้าแต่ละรายจะสามารถติดต่อเซิร์ฟเวอร์ได้ที่ 192.168.14.1เซิร์ฟเวอร์ 192.168.14.0 255.255.255.0 # ไฟล์ ipp.txt เก็บข้อมูลเกี่ยวกับการเชื่อมต่อ เช่น ในกรณีที่การเชื่อมต่อล้มเหลว #และการฟื้นฟูต่อไป ifconfig-พูล-คงอยู่ ipp.txt #เส้นทางที่จะส่งให้ลูกค้าแต่ละราย # push - คำสั่ง OpenVPN ส่งไปยังไคลเอนต์และดำเนินการโดยไคลเอนต์ #(วี ในกรณีนี้เพิ่มสองเส้นทางไปยังเครือข่ายส่วนตัวเสมือนบนฝั่งไคลเอ็นต์)ดัน "เส้นทาง 192.168.1.0 255.255.255.0"ดัน "เส้นทาง 192.168.35.0 255.255.255.0" # เปลี่ยนเส้นทางเกตเวย์เริ่มต้นไปยังเซิร์ฟเวอร์ VPN หากไม่จำเป็นก็แสดงความคิดเห็นหรือ # เพิ่มลงใน ccd สำหรับลูกค้าเฉพาะรายกด "เปลี่ยนเส้นทางเกตเวย์ def1" # ระบุตำแหน่งที่จะจัดเก็บไฟล์ที่มีการตั้งค่าที่อยู่ IP ของลูกค้าไคลเอนต์ config-dir ccd # เพิ่มเส้นทางเซิร์ฟเวอร์-ไคลเอนต์ # เส้นทาง - เพิ่มเส้นทางฝั่งเซิร์ฟเวอร์ไปยังเครือข่ายย่อยภายในเครื่องที่อยู่ด้านหลังไคลเอ็นต์เส้นทาง 192.168.14.0 255.255.255.252 # อนุญาตให้ไคลเอนต์เชื่อมต่อกับเซิร์ฟเวอร์ OpenVPN เพื่อสื่อสารระหว่างกันลูกค้าต่อลูกค้า #คำสั่งตรวจสุขภาพรวมส่ง #ข้อความแบบปิงไปมาทาง #การเชื่อมต่อเพื่อให้แต่ละฝ่ายรู้ว่าเมื่อใด #อีกด้านก็จะหายไป(ลงไป) # ปิงทุกๆ 10 วินาที โดยถือว่ารีโมท # ไม่สามารถเข้าถึงได้หากไม่ได้รับ ping หนึ่งครั้งต่อช่วงระยะเวลาหนึ่ง #เท่ากับ120วินาที keepalive 10 120 comp-lzo max-clients 10 ผู้ใช้ ไม่มีกลุ่ม nogroup ยังคงมีคีย์ ยังคงมีการปรับแต่ง # เนื้อหาของไฟล์สถานะขนาดเล็กที่แสดง # การเชื่อมต่อปัจจุบัน, ถูกตัดทอน # และเขียนใหม่หนึ่งครั้งต่อนาทีสถานะ / var/ log/ openvpn-status.log บันทึก / var/ log/ openvpn.log กริยา 3 # ระดับการแก้ไขข้อบกพร่อง# /etc/init.d/openvpn เริ่มต้น
เพิกถอนใบรับรองไคลเอ็นต์
ตัวอย่าง- การเพิกถอนใบรับรองผู้ใช้ farm1c # cd /etc/openvpn/easy-rsa # source ./vars # ./revoid-full farm1c การใช้การกำหนดค่าจาก /etc/openvpn/easy-rsa/openssl.cnf การเพิกถอนใบรับรอง 02 อัปเดตฐานข้อมูลแล้ว
หลังจากคำสั่ง revoid-full บรรทัดที่สอดคล้องกับใบรับรองผู้ใช้ farm1c จะถูกเปลี่ยนเป็นไฟล์ /etc/openvpn/easy-rsa/keys/index.txt
การติดตั้ง OpenVPN + OpenVZ
การติดตั้ง VE(VPS, VDS)
การติดตั้ง VE Ubuntu สำหรับ OpenVZ # cd /vz/template/cache/ # wget -c http://download.openvz.org/template/precreated/ubuntu-14.04-x86_64-minimal.tar.gz # vzctl create 111 --layout simfs --ostemplate ubuntu-14.04-x86_64-การกำหนดค่า CT ขั้นต่ำที่บันทึกไว้ใน /etc/vz/conf/111.conf
การกำหนดค่า VE 111.conf
การตั้งค่าอื่น ๆ ทั้งหมดได้ทำไปแล้วใน VE # vzctl enter 111 ที่ติดตั้งไว้
การสร้างคีย์
การสร้างคีย์โดยใช้ยูทิลิตี้ Easy-RSA ก่อนหน้านี้ยูทิลิตี้นี้เป็นส่วนหนึ่งของการแจกจ่ายเซิร์ฟเวอร์ OpenVPN แต่ตอนนี้เป็นโปรเจ็กต์แยกต่างหาก สามารถดาวน์โหลดยูทิลิตี้เวอร์ชันล่าสุดได้จากเว็บไซต์ OpenVPN แต่การใช้เวอร์ชันที่มาพร้อมกับระบบปฏิบัติการของคุณนั้นถูกต้องมากกว่า ความถนัดติดตั้ง easy-rsa
ก่อนที่จะเริ่ม OpenVPN daemon เราจำเป็นต้องมีไฟล์การกำหนดค่า OpenSSL ในไดเร็กทอรี /etc/openvpn/keys server.conf - ไฟล์กำหนดค่าเซิร์ฟเวอร์ OpenVPN ca.crt - ใบรับรองของผู้ออกใบรับรอง vpn-server.crt - ใบรับรองเซิร์ฟเวอร์ OpenVPN; เซิร์ฟเวอร์.คีย์ - รหัสส่วนตัวเซิร์ฟเวอร์ OpenVPN ความลับ; crl.pem - รายการเพิกถอนใบรับรอง dh.pem - ไฟล์ Diffie-Hellman เพื่อป้องกันการรับส่งข้อมูลจากการถอดรหัส ta.key - คีย์ HMAC สำหรับ การป้องกันเพิ่มเติมจากการโจมตี DoS และน้ำท่วม
คัดลอกไดเร็กทอรี easy-rsa ไปยังตำแหน่งที่เราจะสร้างโครงสร้างพื้นฐานคีย์สาธารณะ (PKI) cp -R /usr/share/easy-rsa /etc/openvpn/ cd /etc/openvpn/easy-rsa
การเปลี่ยนการตั้งค่าเริ่มต้นสำหรับใบรับรองในไฟล์ vars
ส่งออก KEY_COUNTRY="US" ส่งออก KEY_PROVINCE="CA" ส่งออก KEY_CITY="SanFrancisco" ส่งออก KEY_ORG="Fort-Funston" ส่งออก KEY_EMAIL=" [ป้องกันอีเมล]" ส่งออก KEY_OU="MyOrganizationalUnit"
มาสร้างตัวแปรสภาพแวดล้อมกันดีกว่า
แหล่งที่มา ./vars หมายเหตุ: หากคุณเรียกใช้ ./clean-all ฉันจะทำ rm -rf บน /etc/openvpn/easy-rsa/keys
ชัดเจนจากการทดลองครั้งก่อนๆ มาสร้างคีย์ Diffie-Hellman กัน (คีย์ต้องใช้เวลาพอสมควรในการสร้าง)
./clean-all ./build-dh กำลังสร้างพารามิเตอร์ DH, ไพรม์ปลอดภัยแบบยาว 2048 บิต, ตัวสร้าง 2 การดำเนินการนี้จะใช้เวลานาน ...
มาสร้างไดเร็กทอรีเพื่อจัดเก็บคีย์ส่วนตัวของเซิร์ฟเวอร์ OpenVPN คัดลอกไฟล์ Diffie-Hellman ที่นั่น (dh2048.pem) mkdir /etc/openvpn/keys cp Keys/dh2048.pem /etc/openvpn/keys/
มาสร้างกันเถอะ ผู้มีอำนาจออกใบรับรอง CA- ca.crt และ ca.key จะถูกสร้างขึ้น ไฟล์ ca.key แสดงถึงคีย์ส่วนตัวของ CA ความลับและเขา ไม่สามารถโอนได้ไปยังโหนดอื่นๆ บนเครือข่ายของคุณ ในทางกลับกันไฟล์ใบรับรอง CA ca.crt เปิดอยู่และจำเป็นสำหรับโหนดเซิร์ฟเวอร์และ ไคลเอนต์ OpenVPN- ./pkitool --initca
มาสร้างใบรับรองสำหรับเซิร์ฟเวอร์ชื่อ vpnluxor ./pkitool --server vpnluxor
คัดลอกไฟล์ที่สร้างขึ้น vpnluxor.crt และ vpnluxor.key ไปยังไดเร็กทอรี /etc/openvpn/keys/
มาสร้างใบรับรองสำหรับไคลเอนต์ client1 ด้วยพารามิเตอร์ CommonName ที่มีชื่อเดียวกัน คีย์แยกต่างหากสำหรับลูกค้าแต่ละราย ./pkitool ไคลเอนต์1
ตำแหน่งของใบรับรองและกุญแจ
ไฟล์ | รถ | วัตถุประสงค์ | เข้าถึง |
แคลิฟอร์เนีย | เซิร์ฟเวอร์และไคลเอนต์ | ใบรับรองรูท CA | สาธารณะ |
ซีเอคีย์ | บนเซิร์ฟเวอร์เท่านั้น | จำเป็นสำหรับการลงนามใบรับรองอื่น ๆ | ความลับ |
dh(n).pem | บนเซิร์ฟเวอร์เท่านั้น | พารามิเตอร์ดิฟฟี เฮลล์แมน | สาธารณะ |
vpnspar.crt | บนเซิร์ฟเวอร์เท่านั้น | ใบรับรองเซิร์ฟเวอร์ | สาธารณะ |
vpnspar.key | บนเซิร์ฟเวอร์เท่านั้น | รหัสเซิร์ฟเวอร์ | ความลับ |
darkfire.crt | บนไคลเอนต์เท่านั้น | ใบรับรองลูกค้า | สาธารณะ |
darkfire.key | บนไคลเอนต์เท่านั้น | รหัสลูกค้า | ความลับ |
การติดตั้ง OpenVPN
ไดเร็กทอรี ccd จะจัดเก็บการตั้งค่าส่วนบุคคลสำหรับไคลเอนต์แต่ละราย mkdir /etc/openvpn/ccd.mkdir
การขยายขอบเขตเครือข่าย VPN
ขยายขอบเขต VPN เพื่อรวมไว้ รถยนต์เพิ่มเติมจากซับเน็ตบนฝั่งไคลเอ็นต์หรือเซิร์ฟเวอร์ เปิดใช้งานเครื่องหลายเครื่องบนฝั่งเซิร์ฟเวอร์เมื่อใช้ VPN ที่มีการกำหนดเส้นทาง (dev tun)
เนื่องจาก VPN ทำงานแบบจุดต่อจุดเท่านั้น คุณอาจต้องการขยายขอบเขตของ VPN เพื่อให้ไคลเอนต์สามารถสื่อสารกับเครื่องอื่นบนเครือข่ายของเซิร์ฟเวอร์ ไม่ใช่แค่ตัวเซิร์ฟเวอร์เอง
เพื่ออธิบายสิ่งนี้ด้วยตัวอย่าง สมมติว่าใน เครือข่ายท้องถิ่นทางฝั่งเซิร์ฟเวอร์ซับเน็ตคือ 10.66.0.0/24 และสำหรับพูลที่อยู่ VPN 10.8.0.0/24 ถูกใช้ตามที่ระบุไว้ในคำสั่งเซิร์ฟเวอร์ในไฟล์การกำหนดค่าเซิร์ฟเวอร์ OpenVPN
ขั้นแรก คุณต้องบอกไคลเอนต์ VPN ว่าซับเน็ต 10.66.0.0/24 สามารถเข้าถึงได้ผ่าน VPN ซึ่งสามารถทำได้ง่ายๆ โดยใช้คำสั่งต่อไปนี้ใน ไฟล์การกำหนดค่าเซิร์ฟเวอร์:
กด "เส้นทาง 10.66.0.0 255.255.255.0"
ถัดไป คุณต้องกำหนดค่าเส้นทางบนเกตเวย์ LAN ในเครือข่ายเซิร์ฟเวอร์เพื่อกำหนดเส้นทางแพ็กเก็ตที่กำหนดไว้สำหรับเครือข่ายย่อยไคลเอนต์ VPN (10.8.0.0/24) ผ่านเซิร์ฟเวอร์ OpenVPN (จำเป็นเฉพาะเมื่อเซิร์ฟเวอร์ OpenVPN และเกตเวย์ LAN เป็น เครื่องต่างๆ)
Iptables -A INPUT -p udp --dport 1194 -j ยอมรับ iptables -A INPUT -i tap+ -j ยอมรับหรือ iptables -A INPUT -i tun+ -j ยอมรับ
การจัดการ OpenVPN
ปัญหา PPPoE และ OpenVPN
ปัญหา:หากเซิร์ฟเวอร์เชื่อมต่อกับ ISP โดยใช้เทคโนโลยี PPPoE ทำงานอย่างไร ในกรณีนี้ OpenVPN จะไม่สามารถทำได้ เครือข่ายที่สามารถเข้าถึงได้ด้านหลังไคลเอนต์ที่เชื่อมต่อ คำสั่งเส้นทางจะไม่ทำงาน เนื่องจาก PPP เขียนเส้นทางเริ่มต้นดังนี้:
# netstat -rn ตารางเส้นทาง IP ของเคอร์เนล เกตเวย์ปลายทาง Genmask แฟล็ก MSS Window irtt Iface 0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0
เหล่านั้น. อินเทอร์เฟซ (ppp0) ถูกระบุโดยเส้นทางเริ่มต้น ไม่ใช่ที่อยู่ IP เซิร์ฟเวอร์ OpenVPN ไม่เข้าใจรายการดังกล่าว สำหรับ การดำเนินการที่ถูกต้องเส้นทางเซิร์ฟเวอร์ OpenVpn ควรมีลักษณะดังนี้:
# netstat -rn เกตเวย์ปลายทาง Genmask ตั้งค่าสถานะ MSS Window irtt Iface 0.0.0.0 91.196.96.35 255.255.255.255 UGH 0 0 0 ppp0
ไคลเอนต์โปรโต udp dev tun ca ca.crt dh dh2048.pem ใบรับรอง client.crt คีย์ client.key ระยะไกล xxx.xxx.xxx.xxx 1194 tls-auth ta.key 1 การเข้ารหัส AES-256 -CBC ผู้ใช้ไม่มีใครกลุ่ม nogroup กริยา 2 ปิดเสียง 20 keepalive 10 120 comp-lzo ยังคงมีคีย์คงอยู่-tun float แก้ไข-ลองอีกครั้ง nobind ที่ไม่มีที่สิ้นสุด
การหมุนเวียนบันทึก OpenVPN
ในไฟล์ /etc/logrotate.d/openvpn เราเขียนการตั้งค่าสำหรับคำอธิบายและตัวอย่างการตั้งค่า logrotate ใน Linux พารามิเตอร์หลัก คัดลอกตัดทอน(เพื่อไม่ให้ OpenVPN โอเวอร์โหลดและบังคับให้มันเขียนข้อมูลลงในไฟล์บันทึกเดียวกัน) openvpn ฯลฯ/ openvpn/ เซิร์ฟเวอร์/ vpnluxor/ logs/ openvpn.log ( หมุนทุกวัน 8 บีบอัด ล่าช้าบีบอัด ขาดหายไป คัดลอกตัดการแจ้งเตือน สร้าง 640 รูท )
เครือข่ายส่วนตัวเสมือน ด้วยความช่วยเหลือนี้ เราสามารถ:
- สร้างช่องทางการสื่อสารที่ปลอดภัยในขณะที่เรากำลังนั่งอยู่ด้วย อินเทอร์เน็ตไร้สาย (Wi-Fi) ฟรีในร้านกาแฟ
- แลกเปลี่ยนไฟล์ระหว่างผู้เข้าร่วมเครือข่าย
- กระจายอินเทอร์เน็ตโดยใช้เกตเวย์ทั่วไป
ข้อดีหลัก:
- ติดตั้งง่าย.
- ความปลอดภัย.
- ไม่ต้องใช้อุปกรณ์เพิ่มเติม
- ความเร็วสูงและมีเสถียรภาพ
เช่นเดียวกับผู้เขียนบทความเกี่ยวกับ การติดตั้ง OpenVPNบน Linux ฉันไม่พบบทความปกติและแม้แต่บทความที่อธิบายทุกอย่างอย่างละเอียดจนถึงรายละเอียดที่เล็กที่สุด ในบทความเกี่ยวกับ Habrahabr นี้ ฉันจะพยายามอธิบายทุกอย่างให้ชัดเจนที่สุด ไปกันเลย!
ดาวน์โหลดการแจกจ่าย
ในขณะที่เขียนเวอร์ชันที่มีอยู่ 2.3.2 - ดาวน์โหลดตัวติดตั้ง Windows เวอร์ชัน 32 บิตหรือ 64 บิตเพื่อให้ตรงกับความต้องการของคุณ ระบบปฏิบัติการ.
การติดตั้ง
เมื่อทำการติดตั้ง ต้องแน่ใจว่าได้ทำเครื่องหมายในช่องทั้งหมด เราจะตอบเป็นการยืนยันเมื่อถูกขอให้ติดตั้งไดรเวอร์ อะแดปเตอร์เครือข่ายเสมือนใหม่จะปรากฏในระบบ
การสร้างใบรับรองและคีย์
กาลครั้งหนึ่ง จุดนี้ทำให้ฉันหยุดนิ่ง พวกเขาบอกว่า นี่คือกุญแจ ฉันจะไปหาสิ่งที่ง่ายกว่านี้ แต่อนิจจาฉันไม่พบสิ่งใดที่ดีไปกว่านี้ ดังนั้น ไปที่ C:\Program files\OpenVPN\easy-rsa รัน init-config.bat จากนั้น vars.bat จะปรากฏขึ้น เปิดใน Notepad เราสนใจบรรทัดที่ด้านล่างสุดซึ่งจะต้องกรอกตามต้องการ ตัวอย่างเช่น:
ตั้งค่า KEY_COUNTRY=RU
ตั้ง KEY_PROVINCE=หัวล้าน
ตั้ง KEY_CITY=ปีเตอร์
ตั้งค่า KEY_ORG=OpenVPN
ชุด
ตั้งค่า KEY_CN=เซิร์ฟเวอร์
ตั้งค่า KEY_NAME=เซิร์ฟเวอร์
ตั้งค่า KEY_OU=ouou
มันเขียนตรงไหน. เซิร์ฟเวอร์อย่าแตะต้อง บันทึกแล้ว
ตอนนี้เปิด openssl-1.0.0.cnf แล้วมองหาบรรทัด default_days 365 ตั้งเป็น 3650 ซึ่งจะยืดอายุใบรับรองของเราไปอีก 10 ปี บันทึก. จากนั้น เปิดบรรทัดคำสั่งในบรรทัดคำสั่งเริ่มต้นมาตรฐาน (บน Windows Vista/7/8 ในฐานะผู้ดูแลระบบ) เขียนตามลำดับ:
ซีดี C:\OpenVPN\easy-rsa
วาร์ส
ทำความสะอาดทั้งหมด
คำตอบควรเขียนว่า “Files copied: 1” สองครั้ง ดังนั้นทุกอย่างก็โอเค ในหน้าต่างเดียวกันเราพิมพ์:
สร้าง-dh
จะสร้างคีย์ Diffie-Hellman
สร้าง-แคลิฟอร์เนีย
จะสร้างใบรับรองหลัก
คำถามจะถูกถาม เพียงกด Enter จนกว่าคุณจะเห็นเส้นทาง C:\Program files\OpenVPN\easy-rsa ต่อไปเราพิมพ์:
สร้างคีย์เซิร์ฟเวอร์
หากมีคำถาม ให้กด Enter เพียงสละเวลา! ในตอนท้ายจะมีคำถามสองข้อ: “ลงนามในใบรับรอง?” และ “คำขอใบรับรอง 1 ใน 1 รายการได้รับการรับรอง คอมมิต?” ตอบคำถามทั้งสองข้อ ตอนนี้เรามาสร้างใบรับรองไคลเอ็นต์กันดีกว่า:
ไคลเอนต์คีย์บิลด์
ที่นี่คุณจะต้องระมัดระวังมากขึ้น เมื่อถามชื่อสามัญ (เช่น ชื่อของคุณหรือชื่อโฮสต์ของเซิร์ฟเวอร์) คุณจะต้องป้อนไคลเอนต์ ในตอนท้ายยังมี Y สองครั้งสำหรับแต่ละไคลเอ็นต์ คุณต้องสร้างใบรับรองใหม่โดยใช้ชื่อที่แตกต่างกันเท่านั้น เช่น build-key client1 และยังระบุเป็นชื่อสามัญด้วย ถ้าทำทุกอย่างถูกต้องก็หายใจออกได้! ส่วนที่ยากที่สุดจบลงแล้ว ในโฟลเดอร์ C:\Program Files\OpenVPN\easy-rsa\keys เราใช้: ca.crt, dh1024.pem, server.crt, server.key และวางไว้ใน C:\Program Files\OpenVPN\config
เราสร้างการกำหนดค่า
ไปที่ C:\Program Files\OpenVPN\config สร้างเอกสารข้อความ วาง:
# ยกอุโมงค์ L3
ปรับแต่งการพัฒนา
# โปรโตคอล
โปรโต udp
# พอร์ตที่ VPN ฟัง
พอร์ต 12345
#กุญแจและใบรับรอง
caca.crt
เซิร์ฟเวอร์ใบรับรอง.crt
คีย์เซิร์ฟเวอร์.คีย์
dh dh1024.pem
# พูดคร่าวๆ ก็คือ เราบันทึกที่อยู่ไว้
เครือข่ายย่อยโทโพโลยี
#ที่อยู่พูล
เซิร์ฟเวอร์ 10.8.0.0 255.255.255.0
# วิธีการเข้ารหัส
รหัส AES-128-CBC
#การบีบอัด
คอมพ์-lzo
# ปรับปรุง ping เล็กน้อย
mssfix.php
# อายุการใช้งานของลูกค้า ถ้าไม่ตอบสนอง - ตัดการเชื่อมต่อ
รักษาไว้ 10 120
# ระดับการแก้ไขข้อบกพร่อง
กริยา 3
บันทึกไฟล์เป็น server.ovpn นี่คือการกำหนดค่าเซิร์ฟเวอร์ของเรา ตอนนี้เรามาลองเริ่มเซิร์ฟเวอร์กัน จะมีทางลัดไปยัง OpenVPN Gui บนเดสก์ท็อปของคุณ หลังจากเปิดตัว ไอคอนสีแดงจะปรากฏในถาด คลิกสองครั้งหากไฟเป็นสีเขียวแสดงว่าทุกอย่างเรียบร้อยดีถ้าไม่ให้ดูที่บันทึกในโฟลเดอร์บันทึก
ตอนนี้การกำหนดค่าไคลเอนต์:
ลูกค้า
ปรับแต่งการพัฒนา
โปรโต udp
# ที่อยู่เซิร์ฟเวอร์และพอร์ต
ที่อยู่ห่างไกล 12345
# คีย์จะต้องอยู่ในโฟลเดอร์ปรับแต่ง
caca.crt
ใบรับรอง client.crt
คีย์ client.key
รหัส AES-128-CBC
ไม่มีข้อผูกมัด
คอมพ์-lzo
ยืนยันคีย์
ยังคงมีอยู่
กริยา 3
บันทึกเป็น client.ovpn สร้างโฟลเดอร์ใดๆ และใส่การกำหนดค่า client.ovpn และใบรับรอง ca.crt, client.crt, client.key ไว้ที่นั่น ซึ่งอยู่ใน C:\Program files\OpenVPN\easy-rsa ดาวน์โหลดไคลเอนต์สำหรับ Windows บน เครื่องไคลเอนต์ติดตั้ง ถ่ายโอนโฟลเดอร์ด้วยการกำหนดค่าและใบรับรอง และเรียกใช้ client.ovpn หากคุณเชื่อมต่อแล้ว ให้ลองพิมพ์ ping 10.8.0.1 ในบรรทัดคำสั่ง พัสดุมาถึงแล้วใช่ไหม? ยินดีด้วย! เซิฟเวอร์พร้อมแล้ว! ตอนนี้ไปที่แผงควบคุม - การดูแลระบบ - บริการมองหา OpenVPN ที่นั่น ดับเบิลคลิกและตั้งค่าเป็นอัตโนมัติ ตอนนี้เซิร์ฟเวอร์จะเริ่มทำงานเองหลังจากรีบูต
เรากำลังสรุปการกำหนดค่าหรือการกำหนดค่าของแต่ละรายการเอง
ตอนนี้ฉันจะบอกวิธีเผยแพร่อินเทอร์เน็ตและสิ่งเล็กๆ น้อยๆ อื่น ๆ ที่เกี่ยวข้องกับการตั้งค่า เริ่มจากสิ่งเล็กๆ น้อยๆ กันก่อน เราจะดำเนินการปรับแต่งทั้งหมดด้วยการกำหนดค่าเซิร์ฟเวอร์
หากคุณต้องการให้ลูกค้าของคุณ "เห็น" กัน เช่น สามารถแลกเปลี่ยนข้อมูลได้ แล้วเข้าไปที่ config
ลูกค้าต่อลูกค้า.
หากจำเป็นให้ลูกค้าต้องได้รับ ที่อยู่แบบคงที่จากนั้นในโฟลเดอร์ config ให้สร้างไฟล์ ip.txt และป้อนลงใน config
ifconfig-พูล-คงอยู่ ip.txt
ไม่ต้องการสร้างใบรับรองสำหรับทุกคนใช่ไหม จากนั้นเราก็เขียน ซ้ำ-cnแต่โปรดทราบว่า ifconfig-pool-persist ใช้ไม่ได้กับตัวเลือกนี้
ตอนนี้เกี่ยวกับการกำหนดค่าไคลเอนต์ คุณไม่สามารถถ่ายโอนไฟล์ใบรับรองได้ แต่ป้อนไฟล์เหล่านั้นลงในการกำหนดค่าโดยตรง แต่จะเป็นการดีกว่าถ้าทำเช่นนี้ไม่ใช่จากแผ่นจดบันทึก แต่จาก AkelPad หรือ Notepad++ เป็นต้น เปิด ca.crt และเลือกจาก ——BEGIN CERTIFICATE—— ถึง ——END CERTIFICATE—— การกำหนดค่าจะมีลักษณะดังนี้:
——เริ่มใบรับรอง——
ใบรับรอง
——ใบรับรองจบ——
——เริ่มใบรับรอง——
ใบรับรอง
——ใบรับรองจบ——
——เริ่มต้นคีย์ส่วนตัว——
สำคัญ
——สิ้นสุดคีย์ส่วนตัว——
เราเผยแพร่อินเทอร์เน็ต
หากต้องการทำสิ่งนี้ ให้เข้าสู่การกำหนดค่าเซิร์ฟเวอร์:
กด "เปลี่ยนเส้นทางเกตเวย์ def1"
กด "dhcp-option DNS 8.8.8.8"
กด "dhcp-option DNS 8.8.4.4"
เราแทนที่ที่อยู่ DNS ที่ให้ไว้ในการตั้งค่า คุณสามารถดูได้โดยไปที่แผงควบคุม การเชื่อมต่อการจัดการเครือข่ายโดยดับเบิลคลิกบนอะแดปเตอร์ที่ค้นหาอินเทอร์เน็ต สำหรับแผงควบคุม Win7 - เครือข่ายและศูนย์เครือข่ายอินเทอร์เน็ตและการแบ่งปัน - เปลี่ยนการตั้งค่าอะแดปเตอร์ จากนั้น ไปที่คุณสมบัติของอะแดปเตอร์เดียวกัน แท็บการเข้าถึง ทำเครื่องหมายที่ช่องถัดจาก “อนุญาตผู้ใช้เครือข่ายอื่น…” และในรายการแบบเลื่อนลง หากมี ให้เลือกอะแดปเตอร์ VPN เสมือน จากนั้นไปที่คุณสมบัติของอะแดปเตอร์ VPN คุณสมบัติของ ipv4 และตั้งค่า IP ที่ได้รับและ DNS โดยอัตโนมัติ ขอบคุณสำหรับความสนใจของคุณ!
เราเตอร์ซีรีส์ RTU มีความสามารถในการใช้การเชื่อมต่อที่ปลอดภัยผ่านทางส่วนตัว เครือข่ายเสมือน, เรียกว่า โอเพ่น VPN
กระบวนการติดตั้งและกำหนดค่า ของแพ็คเกจนี้สำหรับผู้ใช้ทั่วไปอาจมาพร้อมกับความยากลำบากมากมายเนื่องจากขาดความรู้ที่จำเป็น
การกำหนดค่าเกือบทั้งหมดสามารถทำได้ผ่านอินเทอร์เฟซเว็บ แต่องค์ประกอบบางอย่างยังต้องทำผ่านคอนโซล!
OpenVPN คืออะไรและเหตุใดจึงมีความจำเป็นสามารถพบได้ในบทความ Wikipedia: OpenVPN
ในบทความนี้เราจะทำความคุ้นเคยกับส่วนเตรียมการนี่คือการสร้างใบรับรองและคีย์การเข้ารหัสเพื่อปกป้องช่องทางการส่งสัญญาณของเรา
1. การสร้างใบรับรองและคีย์บน Windows
หากต้องการสร้างใบรับรองและคีย์การเข้ารหัสบน Windows OS คุณต้องติดตั้งแอปพลิเคชันเอง โอเพ่น VPN
หลังจากดาวน์โหลดและติดตั้งในโฟลเดอร์ที่คุณระบุ มันจะมีรายการไฟล์ สำหรับฉันนี่คือโฟลเดอร์ C:\Program Files\OpenVPN\
เราจำเป็นต้องไปที่โฟลเดอร์ ง่าย-rsa
จำเป็นต้องเปิด คอนโซลวินโดวส์(สำหรับ Windows Vista/7/8/8.1/10 คุณต้องเรียกใช้ในฐานะผู้ดูแลระบบ)
คุณสามารถดูวิธีเปิดบรรทัดคำสั่ง (คอนโซล) ในฐานะผู้ดูแลระบบได้โดยพิมพ์วลีในเครื่องมือค้นหา (Yandex, Google, Mail ฯลฯ ): " วิธีเรียกใช้พรอมต์คำสั่งในฐานะผู้ดูแลระบบ"
ไปที่โฟลเดอร์ ง่าย-rsaตามเส้นทางการติดตั้งด้วยคำสั่ง ซีดี
ตัวอย่างเช่น:
cd C:\Program Files\OpenVPN\easy-rsa
1.1 เรียกใช้ไฟล์ init-config.bat
C:\Program Files\OpenVPN\easy-rsa>init-config.bat
C:\Program Files\OpenVPN\easy-rsa>คัดลอก vars.bat.sample vars.bat
ไฟล์ที่คัดลอก: 1.
ไฟล์จะปรากฏในโฟลเดอร์ vars.batเปิดมัน โปรแกรมแก้ไขข้อความเราสนใจบรรทัดที่อยู่ท้ายสุดต้องกรอก
เราได้ตั้งค่าพารามิเตอร์ของเราแล้ว พารามิเตอร์ของคุณจะแตกต่างออกไป
ชุด
KEY_COUNTRY= รัสเซีย
ตั้ง KEY_PROVINCE= มอสโก
ตั้ง KEY_CITY= มอสโก
ตั้งค่า KEY_ORG= เทเลโอฟิส
ตั้งค่า KEY_EMAIL= [ป้องกันอีเมล]
ตั้งค่า KEY_CN= เซิร์ฟเวอร์
ตั้งค่า KEY_NAME= เซิร์ฟเวอร์
ตั้งค่า KEY_OU= เซิร์ฟเวอร์
ตั้งค่าเซิร์ฟเวอร์ PKCS11_MODULE_PATH=
ตั้ง PKCS11_PIN= 12345
ที่มันบอกว่าเซิร์ฟเวอร์อย่าแตะต้องมัน บันทึกไฟล์.
ค้นหาบรรทัด default_days 365 และแทนที่หมายเลข 365 ด้วย 3650 การทำเช่นนี้จะทำให้ใบรับรองของเรามีอายุการใช้งานยาวนานขึ้นอีก 10 ปี
บันทึกและปิด
1.3 การสร้างคีย์
เราเขียนคำสั่งไปยังคอนโซล
วาร์ส
ทำความสะอาดทั้งหมด
คำตอบควรจะมา
ไฟล์ที่คัดลอก: 1.
ไฟล์ที่คัดลอก: 1.
ถ้าเราเห็นแบบนี้แล้วทุกอย่างจะดีเราก็ไปต่อ...
การสร้างคีย์ Diffie-Hellman
สร้าง-dh
สร้างใบรับรองหลัก
สร้าง-แคลิฟอร์เนีย
เมื่อสร้างใบรับรองหลัก คำถามจะแสดงขึ้นในคอนโซล เพียงกด Enter เพราะ... เราป้อนพารามิเตอร์เหล่านี้ทั้งหมดในไฟล์ vars.bat
กด Enter จนกระทั่งบรรทัดพร้อมท์ปรากฏขึ้น
C:\Program Files\OpenVPN\easy-rsa
สร้างคีย์เซิร์ฟเวอร์
สำหรับคำถาม ให้กด Enter แต่ใช้เวลาสักครู่ ในตอนท้ายสุดจะมีการถามคำถามสองข้อ
ลงนามใบรับรอง?
เราตอบ Y ทั้งสองคำถามนี้
ตอนนี้เราสร้างใบรับรองและรหัสไคลเอนต์:
ไคลเอนต์คีย์บิลด์
เรายังใช้เวลากับคำตอบทันทีที่เราเห็นเส้น " ชื่อสามัญ (เช่น ชื่อของคุณหรือชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ)“จำเป็นต้องได้รับคำตอบ ลูกค้า
ในตอนท้ายสุดจะมีคำถามสองข้อ เราก็ตอบ Y ด้วย
ยิ่งไปกว่านั้น: สำหรับลูกค้าแต่ละราย คุณจะต้องสร้างคีย์แยกกันและตั้งชื่อ ลูกค้า1, ลูกค้า2หรืออย่างอื่น ทุกอย่างขึ้นอยู่กับจินตนาการของคุณ อย่าลืมป้อนชื่อเหล่านี้เมื่อได้รับแจ้ง ชื่อสามัญ
ตัวอย่างเช่น:
ไคลเอนต์คีย์บิลด์1
สร้างสำนักงานที่สำคัญ1
ไฟล์ทั้งหมดจะอยู่ในโฟลเดอร์ C:\Program Files\OpenVPN\easy-rsa\keys\
จากโฟลเดอร์นี้เราจะนำ:
dh1024.pem(หรือ dh2048.pem)
server.crt
เซิร์ฟเวอร์.คีย์
2. การสร้างใบรับรองและคีย์บน Linux
เราจะสร้างตัวอย่างการสร้างใบรับรองและคีย์บนระบบปฏิบัติการ อูบุนตู ลินุกซ์ 16.04 น
สำหรับระบบอื่นๆบน บนพื้นฐานลินุกซ์คำสั่งบางคำสั่งอาจแตกต่างกันไป!
เปิดคอนโซลระบบปฏิบัติการและติดตั้งแพ็คเกจขนาดเล็ก ง่าย-rsa
sudo apt-get ติดตั้ง easy-rsa
ไปที่ไดเร็กทอรีที่ติดตั้งแพ็คเกจการสร้างใบรับรอง
ซีดี /usr/share/easy-rsa/
สิ่งเดียวคือโฟลเดอร์นี้เขียนได้โดย superuser เท่านั้น เพื่อที่เราจะได้ไม่มีปัญหาในอนาคตเราจะเปลี่ยนเจ้าของ (อย่าพลาดจุดท้ายคำสั่ง!!!)
sudo chown -R เทเลโอฟิส:เทเลโอฟิส
ตอนนี้เรามากำหนดค่าข้อมูลเกี่ยวกับใบรับรองที่จะสร้างกัน
นาโนวาร์
เราพบประเด็นเหล่านี้แล้วปรับเปลี่ยนให้เหมาะกับตัวเราเอง
ส่งออก KEY_SIZE=1024 // ความยาวคีย์
ส่งออก CA_EXPIRE=3650 // ระยะเวลาความถูกต้องของคีย์หลักเป็นวัน
ส่งออก KEY_EXPIRE=3650 // ระยะเวลาความถูกต้องของใบรับรองเป็นวัน
ส่งออก KEY_COUNTRY="RU" // ประเทศ
ส่งออก KEY_PROVINCE="มอสโก" // ภูมิภาค
ส่งออก KEY_CITY="มอสโก" // เมือง
ส่งออก KEY_ORG="TELEOFIS" // องค์กร
ส่งออก KEY_EMAIL=" [ป้องกันอีเมล]"
// อีเมล
ส่งออก KEY_OU="เซิร์ฟเวอร์" // แผนก
ส่งออก KEY_NAME="เซิร์ฟเวอร์"//ชื่อคีย์
หลังจากแก้ไขแล้วให้บันทึกไฟล์
สำเนา เวอร์ชันล่าสุดการกำหนดค่า OpenSSL เป็นไฟล์ openssl.cnf
ซีพี openssl-1.0.0.cnf openssl.cnf
กำลังโหลดตัวแปร
ที่มา ./vars
เผื่อว่ามาทำความสะอาดถังขยะกันเถอะ
./ทำความสะอาดทั้งหมด
สร้างใบรับรองเซิร์ฟเวอร์
./build-ca
สำหรับคำถามทั้งหมด ให้กด Enter เราได้แก้ไขพารามิเตอร์เหล่านี้ทั้งหมดล่วงหน้าในไฟล์ วาร์ส
.........................................++++++
.......................................................................................++++++
เขียนคีย์ส่วนตัวใหม่ไปที่ "ca.key"
-----
-----
ชื่อสามัญ (เช่น ชื่อของคุณหรือชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ):
ชื่อ:
ที่อยู่อีเมล:
สร้างรหัสเซิร์ฟเวอร์
./build-key-เซิร์ฟเวอร์เซิร์ฟเวอร์
เราตอบทุกคำถามด้วย Enter แต่คุณต้องระวังในตอนท้ายจะมีคำถามหลายข้อเกี่ยวกับรหัสผ่านและชื่อเสริม
สำหรับการสอบถามเช่นกัน
ลงนามใบรับรอง?
คำขอใบรับรอง 1 ใน 1 ได้รับการรับรอง ยอมรับหรือไม่
เราตอบ Y
การสร้างคีย์ส่วนตัว RSA 1024 บิต
..............................++++++
.....................++++++
เขียนคีย์ส่วนตัวใหม่ไปที่ "server.key"
-----
คุณกำลังจะถูกขอให้ป้อนข้อมูลที่จะรวมไว้
ลงในคำขอใบรับรองของคุณ
สิ่งที่คุณกำลังจะป้อนคือสิ่งที่เรียกว่า Distinguished Name หรือ DN
มีค่อนข้างน้อยแต่ คุณสามารถเว้นว่างไว้บ้าง
สำหรับบางฟิลด์จะมีค่าเริ่มต้น
หากคุณป้อน "." ช่องจะเว้นว่างไว้
-----
ชื่อประเทศ (รหัส 2 ตัวอักษร) :
ชื่อรัฐหรือจังหวัด (ชื่อเต็ม) :
ชื่อสถานที่ (เช่น เมือง) :
ชื่อองค์กร (เช่น บริษัท) :
ชื่อหน่วยองค์กร (เช่น ส่วน) :
ชื่อสามัญ (เช่น ชื่อของคุณหรือชื่อโฮสต์ของเซิร์ฟเวอร์ของคุณ):
ชื่อ:
ที่อยู่อีเมล:
โปรดป้อนแอตทริบิวต์ "พิเศษ" ต่อไปนี้
จะถูกส่งไปพร้อมกับคำขอใบรับรองของคุณ
รหัสผ่านท้าทาย:
ชื่อบริษัทที่เป็นทางเลือก:
ใช้การกำหนดค่าจาก /usr/share/easy-rsa/openssl-1.0.0.cnf
ตรวจสอบว่าคำขอตรงกับลายเซ็น
ลายเซ็นโอเค
ชื่อเฉพาะของเรื่องมีดังนี้
ชื่อประเทศ:พิมพ์ได้:"RU"
stateOrProvinceName:พิมพ์ได้:"มอสโก"
ชื่อท้องถิ่น:พิมพ์ได้:"มอสโก"
ชื่อองค์กร:พิมพ์ได้:"TELEOFIS"
ชื่อหน่วยงานองค์กร: พิมพ์ได้: "เซิร์ฟเวอร์"
ชื่อสามัญ:พิมพ์ได้:"เซิร์ฟเวอร์"
ชื่อ:พิมพ์ได้:"เซิร์ฟเวอร์"
อีเมล์ที่อยู่: IA5STRING:" [ป้องกันอีเมล]"
ใบรับรองจะได้รับการรับรองจนถึงวันที่ 20 ธันวาคม 13:25:10 2026 GMT (3650 วัน)
ลงนามใบรับรอง? :y
คำขอใบรับรอง 1 ใน 1 ได้รับการรับรอง ยอมรับหรือไม่ ย
เขียนฐานข้อมูลด้วย 1 รายการใหม่
อัปเดตฐานข้อมูลแล้ว
การสร้างคีย์ Diffie-Hellman
./build-dh
ความสนใจ!!! สามารถสร้างไฟล์ได้ เวลานานเรารอการสิ้นสุดของรุ่น
กำลังสร้างพารามิเตอร์ DH, ไพรม์ปลอดภัยแบบยาว 1,024 บิต, ตัวสร้าง 2
เรื่องนี้จะใช้เวลานาน
.......+................+.............+.............................................................................+................+........................+...........................................+...............................................................................................................................................+....................+........................................+...................................................................................+....................................................................................................................+.+...................................++*++*++*
เราสร้างคีย์ไคลเอนต์ในลักษณะเดียวกัน
./build-key ไคลเอ็นต์1
./build-key rtu968
เราตอบทุกคำถามด้วย Enter แต่ระวังในตอนท้ายจะมีการร้องขอเพิ่มเติม
ลงนามใบรับรอง?
คำขอใบรับรอง 1 ใน 1 ได้รับการรับรอง ยอมรับหรือไม่
เราตอบพวกเขาว่า Y
การดำเนินการสร้างใบรับรองและไฟล์คีย์จะเสร็จสมบูรณ์
ในโฟลเดอร์ /usr/share/easy-rsa/keys/ใบรับรองและกุญแจของเราจะอยู่ที่นั่น
dh1024.pem(หรือ dh2048.pem)
server.crt
เซิร์ฟเวอร์.คีย์
3. ตัวเลือกเพิ่มเติม
นอกจากนี้ยังมีคีย์และวิธีการเพิ่มเติมเพื่อเพิ่มความปลอดภัยของการเชื่อมต่อ
3.1 คีย์สำหรับการตรวจสอบความถูกต้อง TLS
สร้างโดยคำสั่ง:
openvpn --genkey --secret %KEY_DIR%\ta.key-หน้าต่าง
สำหรับ Linux คุณต้องมีแพ็คเกจ OpenVPN แบบเต็ม เฉพาะแพ็คเกจเท่านั้น ง่าย-rsaจะไม่พอ!
ติดตั้ง แพคเกจที่สมบูรณ์ OpenVPN สามารถทำได้ด้วยคำสั่ง
sudo apt-get ติดตั้ง openvpn
openvpn --genkey --secret /usr/share/easy-rsa/keys/ta.key- ลินุกซ์
3.2 การตรวจสอบและการเพิกถอนใบรับรอง
เรายังสามารถสร้าง ไฟล์เพิ่มเติม crl.pemซึ่งใบรับรองจะถูกตรวจสอบและเพิกถอน
คุณไม่จำเป็นต้องใช้ไฟล์นี้ จะไม่มีอะไรเลวร้ายเกิดขึ้น
หากต้องการใช้งาน ให้สร้างใบรับรองผู้ใช้:
crlsert คีย์บิลด์ - Windows
./build-key crlsert - Linux
เราตอบทุกคำถามโดยกด Enter ยกเว้น ชื่อสามัญและ ชื่อ
สำหรับฟิลด์เหล่านี้ เราจะระบุชื่อของใบรับรองเอง
และสุดท้ายตามคำขอ ลงนามใบรับรอง? - คำขอใบรับรอง 1 ใน 1 ได้รับการรับรอง ยอมรับหรือไม่เราตอบ Y
หลังจากนั้นเราก็รันคำสั่ง เพิกถอนเต็มเธอมีหน้าที่รับผิดชอบในการเพิกถอนใบรับรองและการสร้างไฟล์ในภายหลัง crl.pem
เพิกถอน crlsert เต็ม - Windows
./revoid-full crlsert - Linux
ไฟล์ใบรับรองนั้นเอง clsertสามารถลบได้ เมื่อเพิกถอนแล้ว สิ่งเหล่านี้จะไม่ถูกลบออกจากโฟลเดอร์โดยอัตโนมัติ
เป็นอันเสร็จสิ้นการสร้างคีย์
เรามาดูบทความถัดไปกันดีกว่า:
ข้อมูลเพิ่มเติม