บทความนี้อธิบายการตั้งค่าเซิร์ฟเวอร์ OpenVPN เพื่อเปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยด้วยบอท Telegram ที่จะส่งคำขอยืนยันเมื่อเชื่อมต่อ
OpenVPN เป็นเซิร์ฟเวอร์ VPN แบบโอเพ่นซอร์สที่เป็นที่รู้จักและฟรี ซึ่งใช้กันอย่างแพร่หลายเพื่อจัดระเบียบการเข้าถึงทรัพยากรภายในองค์กรของพนักงานอย่างปลอดภัย
ในการตรวจสอบสิทธิ์สำหรับการเชื่อมต่อกับเซิร์ฟเวอร์ VPN โดยปกติจะใช้คีย์และการเข้าสู่ระบบ/รหัสผ่านของผู้ใช้ร่วมกัน ในขณะเดียวกัน รหัสผ่านที่จัดเก็บไว้ในไคลเอนต์จะเปลี่ยนทั้งชุดให้เป็นปัจจัยเดียวที่ไม่ได้ให้ระดับความปลอดภัยที่เหมาะสม ผู้โจมตีที่สามารถเข้าถึงคอมพิวเตอร์ไคลเอนต์ได้ก็สามารถเข้าถึงเซิร์ฟเวอร์ VPN ได้เช่นกัน โดยเฉพาะอย่างยิ่งสำหรับการเชื่อมต่อจากเครื่องที่ใช้ Windows
การใช้ปัจจัยที่สองช่วยลดความเสี่ยงของการเข้าถึงโดยไม่ได้รับอนุญาตได้ถึง 99% และไม่ทำให้กระบวนการเชื่อมต่อยุ่งยากสำหรับผู้ใช้เลย
ฉันขอจองทันที: สำหรับการใช้งานคุณจะต้องเชื่อมต่อเซิร์ฟเวอร์การรับรองความถูกต้องของบุคคลที่สาม multifactor.ru ซึ่งคุณสามารถใช้ภาษีฟรีสำหรับความต้องการของคุณ
หลักการของการดำเนินงาน
- OpenVPN ใช้ปลั๊กอิน openvpn-plugin-auth-pam สำหรับการตรวจสอบสิทธิ์
- ปลั๊กอินตรวจสอบรหัสผ่านของผู้ใช้บนเซิร์ฟเวอร์และร้องขอปัจจัยที่สองผ่านโปรโตคอล RADIUS ในบริการ Multifactor
- Multifactor ส่งข้อความถึงผู้ใช้ผ่านทาง Telegram bot เพื่อยืนยันการเข้าถึง
- ผู้ใช้ยืนยันคำขอเข้าถึงในการแชท Telegram และเชื่อมต่อกับ VPN
การติดตั้งเซิร์ฟเวอร์ OpenVPN
มีบทความมากมายบนอินเทอร์เน็ตที่อธิบายกระบวนการติดตั้งและกำหนดค่า OpenVPN ดังนั้นเราจะไม่ทำซ้ำบทความเหล่านี้ หากคุณต้องการความช่วยเหลือ มีลิงก์ไปยังบทช่วยสอนหลายลิงก์ท้ายบทความ
การตั้งค่ามัลติแฟคเตอร์
ไปที่
เมื่อสร้างแล้ว คุณจะมีสองตัวเลือกให้เลือก: NAS-IDentifier и ความลับที่ใช้ร่วมกันซึ่งจำเป็นสำหรับการกำหนดค่าในภายหลัง
ในส่วน "กลุ่ม" ให้ไปที่การตั้งค่ากลุ่ม "ผู้ใช้ทั้งหมด" และลบการตั้งค่าสถานะ "ทรัพยากรทั้งหมด" เพื่อให้เฉพาะผู้ใช้ของกลุ่มบางกลุ่มเท่านั้นที่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ VPN
สร้างกลุ่มใหม่ "ผู้ใช้ VPN" ปิดการใช้งานวิธีการตรวจสอบสิทธิ์ทั้งหมดยกเว้น Telegram และระบุว่าผู้ใช้สามารถเข้าถึงทรัพยากร VPN ที่สร้างขึ้น
ในส่วน "ผู้ใช้" ให้สร้างผู้ใช้ที่จะสามารถเข้าถึง VPN เพิ่มพวกเขาในกลุ่ม "ผู้ใช้ VPN" และส่งลิงก์ให้พวกเขาเพื่อกำหนดค่าการตรวจสอบสิทธิ์ปัจจัยที่สอง การเข้าสู่ระบบของผู้ใช้จะต้องตรงกับการเข้าสู่ระบบบนเซิร์ฟเวอร์ VPN
การตั้งค่าเซิร์ฟเวอร์ OpenVPN
เปิดไฟล์ /etc/openvpn/server.conf และเพิ่มปลั๊กอินสำหรับการตรวจสอบสิทธิ์โดยใช้โมดูล PAM
plugin /usr/lib64/openvpn/plugins/openvpn-plugin-auth-pam.so openvpn
ปลั๊กอินสามารถอยู่ในไดเร็กทอรี /usr/lib/openvpn/ปลั๊กอิน/ หรือ /usr/lib64/openvpn/ปลั๊กอิน/ ขึ้นอยู่กับระบบของคุณ
ถัดไปคุณต้องติดตั้งโมดูล pam_radius_auth
$ sudo yum install pam_radius
เปิดไฟล์เพื่อแก้ไข /etc/pam_radius.conf และระบุที่อยู่ของเซิร์ฟเวอร์ RADIUS ของ Multifactor
radius.multifactor.ru shared_secret 40
ที่ไหน:
- radius.multifactor.ru — ที่อยู่เซิร์ฟเวอร์
- shared_secret - คัดลอกจากพารามิเตอร์การตั้งค่า VPN ที่เกี่ยวข้อง
- 40 วินาที - หมดเวลาสำหรับการรอคำขอที่มีระยะขอบมาก
เซิร์ฟเวอร์ที่เหลือจะต้องถูกลบหรือใส่ความคิดเห็น (ใส่เครื่องหมายอัฒภาคที่จุดเริ่มต้น)
จากนั้นสร้างไฟล์สำหรับ openvpn ประเภทบริการ
$ sudo vi /etc/pam.d/openvpn
และเขียนมันลงไป
auth required pam_radius_auth.so skip_passwd client_id=[NAS-IDentifier]
auth substack password-auth
account substack password-auth
บรรทัดแรกเชื่อมต่อโมดูล PAM pam_radius_auth ด้วยพารามิเตอร์:
- skip_passwd - ปิดใช้งานการส่งรหัสผ่านของผู้ใช้ไปยังเซิร์ฟเวอร์ RADIUS Multifactor (เขาไม่จำเป็นต้องรู้)
- client_id — แทนที่ [NAS-Identifier] ด้วยพารามิเตอร์ที่เกี่ยวข้องจากการตั้งค่าทรัพยากร VPN
พารามิเตอร์ที่เป็นไปได้ทั้งหมดอธิบายไว้ในเอกสารประกอบสำหรับโมดูล .
บรรทัดที่สองและสามประกอบด้วยการตรวจสอบระบบของการเข้าสู่ระบบ รหัสผ่าน และสิทธิ์ผู้ใช้บนเซิร์ฟเวอร์ของคุณ พร้อมด้วยปัจจัยการรับรองความถูกต้องที่สอง
รีสตาร์ท OpenVPN
$ sudo systemctl restart openvpn@server
การตั้งค่าไคลเอนต์
รวมคำขอเข้าสู่ระบบและรหัสผ่านของผู้ใช้ในไฟล์การกำหนดค่าไคลเอนต์
auth-user-pass
ตรวจสอบ
เปิดไคลเอนต์ OpenVPN เชื่อมต่อกับเซิร์ฟเวอร์ ป้อนชื่อผู้ใช้และรหัสผ่านของคุณ บอท Telegram จะส่งคำขอเข้าถึงด้วยสองปุ่ม
ปุ่มเดียวช่วยให้เข้าถึงได้ ปุ่มที่สองจะบล็อก
ตอนนี้คุณสามารถบันทึกรหัสผ่านของคุณบนไคลเอนต์ได้อย่างปลอดภัย ปัจจัยที่สองจะปกป้องเซิร์ฟเวอร์ OpenVPN ของคุณจากการเข้าถึงที่ไม่ได้รับอนุญาตได้อย่างน่าเชื่อถือ
หากบางอย่างใช้งานไม่ได้
ตรวจสอบตามลำดับว่าคุณไม่ได้พลาดสิ่งใด:
- มีผู้ใช้บนเซิร์ฟเวอร์ที่มี OpenVPN พร้อมตั้งรหัสผ่าน
- เซิร์ฟเวอร์สามารถเข้าถึงผ่านพอร์ต UDP 1812 ไปยังที่อยู่ radius.multifactor.ru
- ระบุพารามิเตอร์ NAS-Identifier และ Shared Secret อย่างถูกต้อง
- ผู้ใช้ที่มีการเข้าสู่ระบบเดียวกันได้ถูกสร้างขึ้นในระบบ Multifactor และได้รับสิทธิ์ในการเข้าถึงกลุ่มผู้ใช้ VPN
- ผู้ใช้ได้กำหนดค่าวิธีการรับรองความถูกต้องผ่านทาง Telegram
หากคุณไม่เคยตั้งค่า OpenVPN มาก่อน โปรดอ่าน
คำแนะนำทำด้วยตัวอย่างบน CentOS 7
ที่มา: will.com