กำหนดค่า IKEv1 xAuth IPsec VPN Server ด้วย PSK หรือ RSA ใน pfSense

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

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

เซิร์ฟเวอร์ IPsec IKEv1 xAuth VPN มีไว้ทำอะไร

โปรโตคอล IPsec เป็นหนึ่งในโปรโตคอล VPN ที่ใช้กันอย่างแพร่หลายและเป็นที่รู้จักกันดีโดยใช้ทั้งในระดับภายในประเทศเพื่อเชื่อมต่อเรากับบ้านของเราได้อย่างง่ายดายและรวดเร็ว (เราเตอร์เช่น AVM FRITZ รวม VPN ที่ปลอดภัยประเภทนี้) เช่น ตลอดจนเชื่อมโยงเราในระดับธุรกิจกับสำนักงานหรือธุรกิจขนาดกลางและขนาดย่อม VPN นี้ใช้โปรโตคอล IKEv1 (Internet Key Exchange) เพื่อเจรจาการเข้ารหัสระหว่างไคลเอนต์และเซิร์ฟเวอร์ที่แตกต่างกันนอกจากนี้ยังใช้ประโยชน์จากการรับรองความถูกต้องด้วยชื่อผู้ใช้และรหัสผ่าน (xAuth) ซึ่งจะช่วยให้เราสามารถรับรองความถูกต้องของไคลเอนต์ต่างๆได้เมื่อ พวกเขาเชื่อมต่อกับเซิร์ฟเวอร์ VPN ภายในโปรโตคอล IPsec IKEv1 xAuth เรามีวิธีการพิสูจน์ตัวตนสองวิธี:

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

รายละเอียดที่สำคัญมากคือเราจะไม่สามารถใช้โปรโตคอล IKEv2 ได้เนื่องจากไม่สามารถใช้งานร่วมกับ VPN ประเภทนี้ได้เราต้องใช้ IKEv1 ใช่หรือใช่เพื่อให้ไคลเอนต์ VPN สามารถเชื่อมต่อได้อย่างถูกต้อง

ในบทช่วยสอนนี้เราจะดูวิธีกำหนดค่าโปรโตคอล IPsec IKEv1 xAuth ในระบบปฏิบัติการ pfSense เพื่อให้ไคลเอนต์ VPN สามารถเชื่อมต่อกับเครือข่ายขององค์กรและเริ่มแบ่งปันข้อมูล

การกำหนดค่าโปรโตคอล IPsec

ก่อนที่จะเริ่มกำหนดค่าโปรโตคอล IPsec IKEv1 xAuth เราต้องจำไว้ว่าโปรโตคอลนี้มุ่งเน้นไปที่ VPN การเข้าถึงระยะไกลซึ่งเรียกว่า "ไคลเอนต์มือถือ" ดังนั้นไคลเอนต์ VPN จะเป็นโทรศัพท์มือถือแท็บเล็ตหรือคอมพิวเตอร์ แต่ จะไม่มีการสร้าง Tunnel Site-to-Site ในการดำเนินการนี้ควรใช้โปรโตคอลเช่น IPsec IKEv2 โดยตรงโดยไม่มี xAuth ที่เราจะจัดการที่นี่

กำหนดค่า«ไคลเอนต์มือถือ»

สิ่งแรกที่เราต้องทำเพื่อกำหนดค่าเซิร์ฟเวอร์ VPN คือไปที่ส่วน“ VPN / IPsec / Mobile Clients” เราต้องเลือกตัวเลือกต่อไปนี้:

  • เปิดใช้งาน IPsec Mobile Client Support
  • การรับรองความถูกต้องแบบขยาย (xAuth)
    • การรับรองความถูกต้องของผู้ใช้: ฐานข้อมูลภายในเครื่อง

ในส่วน Extended Authentication ยังจำเป็นต้องกำหนดซับเน็ตที่จะวางไคลเอนต์ VPN ที่เชื่อมต่อ

  • การรับรองความถูกต้องแบบขยาย (xAuth)
    • กลุ่มที่อยู่เสมือน: ให้ที่อยู่ IP เสมือนแก่ไคลเอ็นต์และเราใส่เครือข่ายย่อยที่ไม่ได้ใช้งานเช่น 192.168.100.0/24
    • DNS Server: ให้เซิร์ฟเวอร์ DNS แก่ไคลเอ็นต์: ที่นี่เราสามารถใส่ DNS ในเครื่องหรือ DNS สาธารณะเช่น Google หรือ Cloudflare

การกำหนดค่าขั้นสุดท้ายจะเป็นดังนี้:

เมื่อเราบันทึกแล้วเราคลิกที่«บันทึก»และด้านบนจะมีปุ่มสีเขียวเพื่อใช้การเปลี่ยนแปลงเราคลิกที่ใช้การเปลี่ยนแปลงและเมื่อโหลดอีกครั้งเราต้องคลิกที่ปุ่มสีเขียวของ«สร้างเฟส 1 »

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

กำหนดค่า IPsec เฟส 1

ในเมนูนี้เราจะต้องกำหนดค่าโปรโตคอล IPsec ให้ถูกต้องเพื่อใช้กับ IKEv1 กับ xAuth ไม่ใช่ว่าการกำหนดค่าทั้งหมดจะใช้ได้กับโปรโตคอลนี้ นอกจากนี้รายละเอียดที่สำคัญมากคือการตั้งค่าความปลอดภัยอาจเปลี่ยนแปลงได้หากคุณใช้ไคลเอนต์ VPN สำหรับ Android, iOS, โปรแกรมภายนอกสำหรับ Windowsฯลฯ เราจะใช้การกำหนดค่าแบบอนุรักษ์นิยมซึ่งเข้ากันได้กับไคลเอนต์ VPN ส่วนใหญ่ แต่คุณต้องคำนึงถึงสิ่งนี้เนื่องจากคุณอาจต้องแก้ไขพารามิเตอร์บางอย่าง

ตัวเลือกที่เราต้องกำหนดค่าเพื่อให้ทำงานได้อย่างถูกต้องมีดังต่อไปนี้:

  • ข้อมูลทั่วไป
    • เวอร์ชันการแลกเปลี่ยนคีย์: IKEv1 หากเราเลือกเวอร์ชันอื่นจะใช้ไม่ได้
    • อินเทอร์เน็ตโปรโตคอล: IPv4 หรือ IPv6
    • อินเทอร์เฟซ: Internet WAN
    • คำอธิบาย: เราใส่คำอธิบาย
  • ข้อเสนอระยะที่ 1 (การรับรองความถูกต้อง)
    • วิธีการตรวจสอบความถูกต้อง: PSK ร่วมกัน + xAuth
    • โหมดการเจรจาต่อรอง: ก้าวร้าว; การเลือก“ หลัก” มีความปลอดภัยมากกว่า แต่ไคลเอนต์ VPN อาจไม่เชื่อมต่อ หาก VPN สามารถเชื่อมต่อได้ดีกับการกำหนดค่าที่เรานำเสนอคุณสามารถเปลี่ยนเป็น“ หลัก” ในภายหลังเพื่อดูว่าใช้งานได้หรือไม่
    • ตัวระบุของฉัน: ที่อยู่ IP ของฉัน
    • ตัวระบุเพียร์: ชื่อเฉพาะของผู้ใช้ - [email protected] หรืออะไรก็ได้ที่คุณต้องการ
    • คีย์ที่แชร์ล่วงหน้า: 12345678
  • ข้อเสนอระยะที่ 1 (การเข้ารหัสลับ)
    • อัลกอริทึมการเข้ารหัส: AES 128 บิต, SHA1, DH Group 2 (1024 บิต)

pfSense เป็นระบบปฏิบัติการระดับมืออาชีพปัญหาคือไคลเอนต์ VPN อาจไม่รองรับความปลอดภัยที่สูงขึ้นด้วยเหตุนี้เราจึงไม่ได้ใช้อัลกอริทึมที่แข็งแกร่งกว่าเช่น SHA-512 หรือกลุ่ม DH ที่สูงกว่า ในการกำหนดค่าให้มีความปลอดภัยสูงสุดเราต้องดูบันทึกของ IPsec และทราบว่า "ข้อเสนอ" ใดที่ไคลเอนต์ VPN จะส่งให้เราเพื่อเชื่อมต่อโดยพิจารณาจากข้อเสนอเหล่านี้ที่ได้รับเราจะสามารถเลือกสิ่งที่ปลอดภัยที่สุดได้

ตัวเลือกการกำหนดค่าที่เหลือสามารถปล่อยทิ้งไว้ได้ตามค่าเริ่มต้น

เมื่อเรากำหนดค่าเฟส 1 แล้วเราจะได้รับข้อมูลสรุปเล็กน้อยเกี่ยวกับสิ่งที่เราเพิ่งกำหนดค่าดังที่คุณเห็นที่นี่:

เมื่อเรากำหนดค่าเฟส 1 ของ IPsec xAuth แล้วเราจะกำหนดค่าเฟส 2

กำหนดค่า IPsec เฟส 2

ในเมนูนี้สิ่งแรกที่เราต้องเลือกคือโหมดการทำงานเราได้เลือก“ Tunnel IPv4” ดังที่คุณเห็นในภาพ นอกจากนี้เรายังจะต้องใส่« Local เครือข่าย»ที่เราต้องการให้ไคลเอนต์ VPN สามารถเข้าถึงเส้นทางจะถูกส่งไปให้พวกเขาเพื่อเข้าถึง เราจะสามารถให้ที่อยู่ IP เฉพาะแก่พวกเขาเครือข่ายย่อยที่เราต้องการซับเน็ต WAN และแม้แต่ซับเน็ต LAN ที่เรามีใน pfSense ในตัวเลือก« NAT »เราจะปล่อยไว้ที่« none »

ในเมนูการกำหนดค่านี้เราต้องใส่สิ่งต่อไปนี้:

  • ข้อมูลทั่วไป
    • โหมด: อุโมงค์ IPv4
    • เครือข่ายท้องถิ่น: เครือข่ายย่อย LAN
    • Description: คำอธิบายที่เราต้องการ
  • ข้อเสนอระยะที่ 2 (SA / การแลกเปลี่ยนคีย์):
    • โปรโตคอล: ESP
    • อัลกอริทึมการเข้ารหัส: AES 128 บิตและ AES-128-GCM 128 บิต

ในภาพต่อไปนี้คุณจะเห็นเวอร์ชันสุดท้าย:

  • ข้อเสนอระยะที่ 2 (SA / การแลกเปลี่ยนคีย์)
    • อัลกอริทึมแฮช: เราเลือก SHA-1 และ SHA-256
    • กลุ่มคีย์ PFS: ปิดไม่สนับสนุนโดยโปรโตคอล

ตัวเลือกที่เหลือเราสามารถใส่ค่าเริ่มต้นและคลิกที่บันทึกเพื่อบันทึกการเปลี่ยนแปลงทั้งหมด

เมื่อเสร็จแล้วเราสามารถดูสรุปการกำหนดค่าที่ทำ

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

สร้างผู้ใช้ใน pfSense เพื่อพิสูจน์ตัวตนด้วย xAuth

ในการสร้างผู้ใช้ที่แตกต่างกันเราต้องไปที่ " ผู้จัดการระบบ / ผู้ใช้ ” และสร้างผู้ใช้ใหม่ด้วยชื่อผู้ใช้และรหัสผ่านที่ตรงกันคลิกที่บันทึกจากนั้นป้อนใหม่เพื่อแก้ไข ตอนนี้เราสามารถเพิ่มสิทธิ์การเข้าถึงบริการและส่วนต่างๆของระบบปฏิบัติการ pfSense ได้แล้ว เราต้องเพิ่มสิทธิ์ให้กับ:

  • สิทธิ์ที่กำหนด: ผู้ใช้ - VPN-IPsec xauth Dialin

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

เปิดพอร์ตในไฟร์วอลล์ pfSense

ใน VPN นี้จำเป็นต้องเปิดพอร์ตบนอินเทอร์เน็ต WAN โดยเฉพาะเราจะต้องเปิดพอร์ต 500 UDP และพอร์ต 4500 UDP ถัดไปคุณมีรายละเอียดทั้งหมดเพื่อเปิดพอร์ตทั้งสอง

เราจะต้องสร้างกฎในส่วน“ Firewall / Rules / WAN” โดยมีข้อมูลดังต่อไปนี้:

  • การดำเนินการ: ผ่าน
  • อินเทอร์เฟซ: WAN
  • ที่อยู่ตระกูล: IPv4
  • โปรโตคอล: UDP
  • ที่มา: any
  • ปลายทาง: ที่อยู่ WAN บนพอร์ต 500

กฎข้อที่สองคือ:

  • การดำเนินการ: ผ่าน
  • อินเทอร์เฟซ: WAN
  • ที่อยู่ตระกูล: IPv4
  • โปรโตคอล: UDP
  • ที่มา: any
  • ปลายทาง: ที่อยู่ WAN บนพอร์ต 4500

อย่างที่คุณเห็นเรามีกฎ XNUMX ข้อที่ต้องยอมรับเพื่ออนุญาตการเข้าชม

เราบันทึกและใช้การเปลี่ยนแปลงเพื่อให้มั่นใจว่าจะปฏิบัติตามกฎนี้ ตอนนี้เราไปที่ส่วน "IPsec" ซึ่งเราจะดำเนินการ "อนุญาตทั้งหมด" จากนั้นเมื่อเราเชื่อมต่อหากเราต้องการ จำกัด การเข้าถึงเราสามารถทำได้โดยวางกฎที่เกี่ยวข้องไว้ที่นี่

  • การดำเนินการ: ผ่าน
  • อินเทอร์เฟซ: IPsec
  • ที่อยู่ตระกูล: IPv4
  • โปรโตคอล: ใด ๆ
  • ที่มา: any
  • ปลายทาง: ใด ๆ

จากนั้นคุณจะเห็นกฎที่สร้างขึ้นใหม่ซึ่งเป็นกฎเดียวที่เรามี

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

การทดสอบการเชื่อมต่อ

ในกรณีของเราเราได้สร้างการเชื่อมต่อ VPN กับสมาร์ทโฟน Android โดยเฉพาะไฟล์ หัวเว่ย P30 ที่รวมไคลเอนต์ IPsec xAuth PSK การกำหนดค่าที่เราต้องดำเนินการมีดังต่อไปนี้ (เราไม่สามารถทำการจับภาพได้เนื่องจากระบบปฏิบัติการตรวจพบว่าเป็นเนื้อหาส่วนตัว)

  • ชื่อ: เราตั้งชื่อ VPN ให้
  • ประเภท: IPsec Xauth PSK
  • เซิร์ฟเวอร์: โดเมน IP หรือ DDNS ของเซิร์ฟเวอร์ VPN ของคุณ
  • ตัวระบุ IPsec: [email protected]
  • คีย์ที่แชร์ IPsec เริ่มต้น: 12345678; คีย์ที่เราใส่ไว้ในส่วน "คีย์ที่แชร์ล่วงหน้า"

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

คำแนะนำและคำแนะนำ

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

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

ด้วยบทช่วยสอนเดียวกันนี้คุณจะสามารถกำหนดค่า IPsec IKEv1 xAuth แก้ไข“ Mutual PSK + xAuth” โดย“ Mutual RSA + xAuth” และกำหนดค่าเซิร์ฟเวอร์และใบรับรองไคลเอ็นต์ที่เกี่ยวข้อง เราจะแสดงวิธีการทำเร็ว ๆ นี้ นอกจากนี้ยังทำให้เกิดความยุ่งยากเนื่องจากหากเราสร้าง CA ด้วยใบรับรองไคลเอ็นต์ที่ใช้อัลกอริทึมล่าสุดมีความเป็นไปได้ที่จะส่งคืนข้อผิดพลาดเมื่อเราเชื่อมต่อเนื่องจากพวกเขาไม่รู้จัก