การรับรองความถูกต้องด้วยสองปัจจัยใน OpenVPN ด้วย Telegram bot

บทความนี้อธิบายการตั้งค่าเซิร์ฟเวอร์ OpenVPN เพื่อเปิดใช้งานการตรวจสอบสิทธิ์แบบสองปัจจัยด้วยบอท Telegram ที่จะส่งคำขอยืนยันเมื่อเชื่อมต่อ

OpenVPN เป็นเซิร์ฟเวอร์ VPN แบบโอเพ่นซอร์สที่เป็นที่รู้จักและฟรี ซึ่งใช้กันอย่างแพร่หลายเพื่อจัดระเบียบการเข้าถึงทรัพยากรภายในองค์กรของพนักงานอย่างปลอดภัย

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

การใช้ปัจจัยที่สองช่วยลดความเสี่ยงของการเข้าถึงโดยไม่ได้รับอนุญาตได้ถึง 99% และไม่ทำให้กระบวนการเชื่อมต่อยุ่งยากสำหรับผู้ใช้เลย

ฉันขอจองทันที: สำหรับการใช้งานคุณจะต้องเชื่อมต่อเซิร์ฟเวอร์การรับรองความถูกต้องของบุคคลที่สาม multifactor.ru ซึ่งคุณสามารถใช้ภาษีฟรีสำหรับความต้องการของคุณ

หลักการของการดำเนินงาน

  1. OpenVPN ใช้ปลั๊กอิน openvpn-plugin-auth-pam สำหรับการตรวจสอบสิทธิ์
  2. ปลั๊กอินตรวจสอบรหัสผ่านของผู้ใช้บนเซิร์ฟเวอร์และร้องขอปัจจัยที่สองผ่านโปรโตคอล RADIUS ในบริการ Multifactor
  3. Multifactor ส่งข้อความถึงผู้ใช้ผ่านทาง Telegram bot เพื่อยืนยันการเข้าถึง
  4. ผู้ใช้ยืนยันคำขอเข้าถึงในการแชท Telegram และเชื่อมต่อกับ VPN

การติดตั้งเซิร์ฟเวอร์ OpenVPN

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

การตั้งค่ามัลติแฟคเตอร์

ไปที่ ระบบควบคุมหลายปัจจัยไปที่ส่วน "ทรัพยากร" และสร้าง VPN ใหม่
เมื่อสร้างแล้ว คุณจะมีสองตัวเลือกให้เลือก: NAS-IDentifier и ความลับที่ใช้ร่วมกันซึ่งจำเป็นสำหรับการกำหนดค่าในภายหลัง

การรับรองความถูกต้องด้วยสองปัจจัยใน OpenVPN ด้วย Telegram bot

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

สร้างกลุ่มใหม่ "ผู้ใช้ VPN" ปิดการใช้งานวิธีการตรวจสอบสิทธิ์ทั้งหมดยกเว้น Telegram และระบุว่าผู้ใช้สามารถเข้าถึงทรัพยากร VPN ที่สร้างขึ้น

การรับรองความถูกต้องด้วยสองปัจจัยใน OpenVPN ด้วย Telegram bot

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

การรับรองความถูกต้องด้วยสองปัจจัยใน OpenVPN ด้วย Telegram bot

การตั้งค่าเซิร์ฟเวอร์ 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 ด้วย Telegram bot

ปุ่มเดียวช่วยให้เข้าถึงได้ ปุ่มที่สองจะบล็อก

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

หากบางอย่างใช้งานไม่ได้

ตรวจสอบตามลำดับว่าคุณไม่ได้พลาดสิ่งใด:

  • มีผู้ใช้บนเซิร์ฟเวอร์ที่มี OpenVPN พร้อมตั้งรหัสผ่าน
  • เซิร์ฟเวอร์สามารถเข้าถึงผ่านพอร์ต UDP 1812 ไปยังที่อยู่ radius.multifactor.ru
  • ระบุพารามิเตอร์ NAS-Identifier และ Shared Secret อย่างถูกต้อง
  • ผู้ใช้ที่มีการเข้าสู่ระบบเดียวกันได้ถูกสร้างขึ้นในระบบ Multifactor และได้รับสิทธิ์ในการเข้าถึงกลุ่มผู้ใช้ VPN
  • ผู้ใช้ได้กำหนดค่าวิธีการรับรองความถูกต้องผ่านทาง Telegram

หากคุณไม่เคยตั้งค่า OpenVPN มาก่อน โปรดอ่าน บทความโดยละเอียด.

คำแนะนำทำด้วยตัวอย่างบน CentOS 7

ที่มา: will.com

เพิ่มความคิดเห็น