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