ฉันขอความช่วยเหลือหลังจากใช้เวลานานในการแก้ไขปัญหาการเชื่อมต่อระหว่างไคลเอ็นต์และเซิร์ฟเวอร์
ปัญหา
ไคลเอนต์ Mac OS X Catalina และ Linux ทำงานได้ดีในการเชื่อมต่อกับเซิร์ฟเวอร์ แต่ Big Sur ทำไม่ได้ ฉันยังไม่ได้ทดสอบ Mojave (ซึ่งในทางทฤษฎีแล้วความปลอดภัยจะหละหลวมมากกว่า) และยังไม่ได้ทดสอบ Windows 10 เหตุผลสำหรับลูกค้าที่แตกต่างกันทั้งหมดนั้นซับซ้อน แต่โดยพื้นฐานแล้วเราเป็นบริษัทที่ปรึกษาขนาดเล็กที่ผู้คนสามารถเลือกได้ แพลตฟอร์มของพวกเขาแม้ว่า Mojave ที่เก่ากว่านั้นเป็นเพียงเพราะพวกเขายังไม่ได้อัปเกรด ไม่ว่าจะด้วยวิธีใดที่ทำให้งานของฉัน (ในฐานะผู้ดูแลระบบ) ซับซ้อนขึ้นอย่างมาก แต่ก็มีอยู่
เซิร์ฟเวอร์
- เรดแฮท 8.2 หนึ่งได้รับการกำหนดค่าในโหมด FIPS อีกอันไม่ได้เนื่องจาก OpenVPN แน่นอนว่าทั้งคู่บริหาร Libreswan
- Libreswan เริ่มต้นการติดตั้งจาก yum เวอร์ชัน: 3.29-7
- IKEv2 ใช้ NSS พร้อมใบรับรอง RSA สำหรับการตรวจสอบสิทธิ์
- โครงสร้างพื้นฐาน CA ระดับราก/ระดับกลางแบบกำหนดเอง CRL ถูกต้อง ผสานรวม และจัดเก็บไว้ใน NSS
- ไฟร์วอลล์ ตารางเส้นทาง การตั้งค่า sysctl ฯลฯ ดูเหมือนว่าทั้งหมดจะได้รับการกำหนดค่าอย่างถูกต้อง ฉันใช้ iptables กับชุดกฎที่กำหนดเอง แทนที่จะเป็น firewalld
ลูกค้า
- Mac OS X Mojave, Catalina และ Big Sur
- วินโดวส์ 10
- ไคลเอนต์ Ubuntu และ RedHat Linux
การกำหนดค่า
ฝั่งไคลเอนต์ (Mobileconfig เพื่อรวมเข้าด้วยกัน)
ฉันใช้ไคลเอนต์เครือข่ายในตัว ไม่มีไคลเอนต์ภายนอกเพื่อทำให้สิ่งต่างๆ ง่ายขึ้น ลูกค้าที่จ่ายเงินส่วนใหญ่ดูเหมือนจะไม่รองรับ IKEv2 อยู่ดี แม้ว่าฉันจะลองใช้ GreenBow VPN ในช่วงสั้นๆ ก็ตาม
แท็บ VPN Payload (Apple Configurator 2 ทั้ง Catalina/Big Sur ข้อมูล/การกำหนดค่าเดียวกัน)
- ประเภทการเชื่อมต่อ: IKEv2
- Server/Remote Identifier: IP ของเซิร์ฟเวอร์ (ใบรับรองเซิร์ฟเวอร์มี SubjectAltName IP: IP ของเซิร์ฟเวอร์)
- ตัวระบุท้องถิ่น: ที่อยู่อีเมลของผู้ใช้ดูเหมือนจะทำงานได้ดีที่นี่ หากไม่ใช่ Big Sur การตั้งค่าว่างยังใช้งานได้ในครั้งเดียว ฉันไม่แน่ใจว่าฉันเปลี่ยนแปลงอะไรหรือแม้แต่ฉันเองที่เปลี่ยนแปลง แต่ตอนนี้อีเมลต้องแสดงอยู่ฉันเริ่มเพิ่มสิ่งนี้เป็นไคลเอ็นต์ฟิลด์อีเมล subjectAltName เช่นกันตามคำแนะนำจากเพื่อนร่วมงาน
- การรับรองความถูกต้องของเครื่องคือใบรับรอง, RSA สำหรับประเภท และชื่อผู้ออก CA ได้รับการตั้งค่าอย่างถูกต้อง
- เนื้อหาด้านความปลอดภัยอื่นๆ ทั้งหมด เช่น DH params และ crypto เป็นเกรดกลาง AES-256 และ DH21 เดิมทีฉันได้กำหนดค่าด้วย AES-256-GCM เพื่อพยายามหลีกเลี่ยงสิ่งใดก็ตามที่เกี่ยวข้องกับข้อผิดพลาดการตัดทอน SHA2 ที่ไม่ได้ผลเช่นกัน
แท็บเพย์โหลดใบรับรอง
- ฉันได้กำหนดค่านี้ด้วยวิธีต่างๆ ใช้สิ่งมาตรฐานที่นี่: ข้อมูลประจำตัว .p12 ที่มีทั้งรหัสผ่านคีย์ส่วนตัวสำหรับผู้ใช้และรหัสผ่านการส่งออก (ยาว 23 อักขระทั้งคู่) ระยะเวลา 920 วัน ฉันอ่านที่ไหนสักแห่งว่านี่อาจเป็นปัญหา แต่บันทึกที่ฉันพบฝั่งไคลเอ็นต์ไม่ได้แสดงว่าไม่พอใจกับระยะเวลาที่ถูกต้อง นอกจากนี้ ฉันได้ทดสอบเวลาใบรับรองที่สั้นลง 500 วันเพื่อดูว่ามันมีประโยชน์หรือไม่ มันไม่ได้
- CA รูท/ระดับกลางได้รวมอยู่ในการกำหนดค่าสองแบบที่นี่ระหว่างการสร้าง PKCS12: เพียง CA ระดับกลาง เทียบกับ ca-chain แบบเต็ม การกำหนดค่าทั้งสองไม่ได้ทำงานใน Big Sur
- นำเข้ารูท / CA ระดับกลางด้วยตนเอง ฉันได้ทำเครื่องหมายทั้งสองอย่างว่าเชื่อถือได้สำหรับทุกกรณีการใช้งาน ฉันได้นำเข้า/คัดลอกจากพวงกุญแจเข้าสู่ระบบไปยังพวงกุญแจระบบ ฉันได้ทำทุกอย่างที่ฉันพบในเรื่องนี้แล้ว แต่ก็ไม่ได้ผล
การกำหนดค่าฝั่งเซิร์ฟเวอร์
อัตโนมัติ = เพิ่ม
authby=rsasig
dpddelay=30
dpdtimeout=120
dpdaction=ชัดเจน
fragmentation=no (Big sur ให้ข้อผิดพลาดที่แตกต่างกับสิ่งนี้)
modecfgpull=ใช่
modecfgdns=" DNS ภายใน"
pfs=ใช่
คีย์ใหม่=ใช่
อายุการใช้งาน = 8 ชม
ikelifetime=8ชม
ซ้าย = IP สาธารณะ
leftcert=PUBLIC IP (ฉันได้ลองใช้รูปแบบต่างๆ ที่นี่แล้ว @PUB... เป็นต้น)
leftid=IP สาธารณะ
leftsendcert=เสมอ
leftsubnet=0.0.0.0/0
leftrsasigkey=%ใบรับรอง
leftmodecfgserver=ใช่
rightaddresspool=พูลที่อยู่ภายใน
ขวา=%ใดๆ
rightrsasigkey=%ใบรับรอง
rightmodecfgclient=ใช่
บันทึกฝั่งไคลเอ็นต์
ก่อนอื่น ป๊อปอัปข้อผิดพลาด GUI เดียวที่ฉันเห็นเมื่อพยายามเชื่อมต่อคือ "การตรวจสอบผู้ใช้ล้มเหลว" ฉันใช้คำสั่งต่อไปนี้เพื่อรับบันทึกที่ดีกว่า/มีประโยชน์มากกว่าบน Mac OS X:
บันทึกการแสดง --start DATE --เพรดิเคต 'senderImagePath มี [cd] "NetworkExtension"'
บันทึกเหล่านี้ส่วนใหญ่เป็นถังขยะ 1,000 บรรทัด ที่กล่าวว่าสิ่งนี้ดูเหมือนเกี่ยวข้อง:
2021-08-10 0x1aa44 Â Â Â Â Â 0x0 Â Â Â Â Â Â Â Â Â Â Â 2375 Â Â 0 Â Â NEIKEv2Provider: (NetworkExtension) [com.apple.networkextension:] ข้อผิดพลาดการประเมินใบรับรอง = kSecTrustResultRecoverableTrustFailure
2021-08-10 0x1aa44 Â Â ข้อผิดพลาด Â Â Â 0x0 Â Â Â Â Â Â Â Â Â Â Â 2375 Â Â 0 Â Â NEIKEv2Provider: (NetworkExtension) [com.apple.networkextension:] ใบรับรองไม่น่าเชื่อถือ
2021-08-10 0x1aa44 Â Â ข้อผิดพลาด Â Â Â 0x0 Â Â Â Â Â Â Â Â Â Â Â Â 2375 Â Â 0 Â Â NEIKEv2Provider: (NetworkExtension) [com.apple.networkextension:] ไม่สามารถยืนยันข้อมูลการรับรองความถูกต้องของใบรับรอง
2021-08-10 0x1aa44 Â Â ค่าเริ่มต้น Â Â 0x0 Â Â Â Â Â Â Â Â Â Â Â Â 2375 Â Â 0 Â Â NEIKEv2Provider: (NetworkExtension) [com.apple.networkextension:] IKEv2IKESA[2.2, C4CABCADAB06C2CF-75EF8F8317] สถานะการเชื่อมต่อ > ข้อผิดพลาดที่ขาดการเชื่อมต่อ (null) -> Error Domain=NEIKEv2ErrorDomain Code=8 "Authentication: Certificate authentication data can't beVerified" UserInfo={NSLocalizedDescription=Authentication: Certificate authentication data could not beVerified}
2021-08-10 0x1aa44 Â Â Â Â Â 0x0 Â Â Â Â Â Â Â Â Â Â Â 2375 Â Â 0 Â Â NEIKEv2Provider: (NetworkExtension) [com.apple.networkextension:] IKEv2Session[2, C4CABCADAB06C2CF-75EF8F2617] ล้มเหลวในการ ประมวลผลแพ็คเก็ต IKE Auth (เชื่อมต่อ)
หมายเหตุ
ตามที่อธิบายไว้ในความคิดเห็นก่อนหน้านี้เกี่ยวกับการกำหนดค่าไคลเอ็นต์ .. ฉันได้ทำงานเพื่อให้ถูกต้องแล้ว แม้จะแสดงบนหน้าจอ Apple Configurator ว่านี่เป็นแพ็คเกจการกำหนดค่าที่ยอมรับได้ เห็นได้ชัดว่าไม่ได้ลงนามโดย Apple แต่ก็ไม่แปลกใจการกำหนดค่า IKEv2 แบบแมนนวลมาตรฐานนั้นไม่ครอบคลุมเพียงพอสำหรับความต้องการของเรา และมันก็ใช้งานไม่ได้เช่นกัน อย่างน้อยก็สำหรับสิ่งที่ซับซ้อนกว่าของเล่นเด็กของเซิร์ฟเวอร์
ฉันได้ค้นคว้าเกี่ยวกับปัญหาความโปร่งใสของใบรับรองด้วย ขออภัย นี่ไม่ใช่โซลูชันสำหรับ Mac OS X แต่เป็นโซลูชันที่ใช้ได้กับอุปกรณ์ต่างๆ เช่น iPad เป็นต้น การพยายามติดตั้ง mobileconfig ลงใน OS X โดยเปิดใช้งาน CT และยกเว้นใบรับรองบางอย่าง ระบบจะปฏิเสธและจะไม่ติดตั้ง mobileconfig
บันทึกฝั่งเซิร์ฟเวอร์
ฉันมีเซิร์ฟเวอร์ภายนอกในโหมดดีบัก เพื่อสร้างบันทึกมากกว่าปกติ ที่กล่าวว่า ในกรณีนี้ เซิร์ฟเวอร์ดูเหมือนจะพอใจกับการทำธุรกรรมอย่างสมบูรณ์ เป็นฝั่งไคลเอ็นต์ที่เกลียด ........ บางอย่าง ฉันไม่รู้ว่าอะไร
นี่คือสิ่งที่ฉันเห็นว่า:
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | CA ที่เสนอ: 'C=US, ST=US, O=companyName, OU=OUCA, CN=CAName, [email protected]'
10 ส.ค. serverName pluto[]: "remote"[51] serverIP #90: IKEv2 mode peer ID is ID_USER_FQDN: '[email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ได้รับ v2N_INITIAL_CONTACT
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ได้รับการแจ้งเตือนที่ไม่รู้จัก/ไม่ได้รับการสนับสนุน v2N_NON_FIRST_FRAGMENTS_ALSO - ละเว้น
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ได้รับ v2N_MOBIKE_SUPPORTED ในขณะที่ไม่ได้ส่ง
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ได้รับน้ำหนักบรรทุก CERTREQ; จะไปถอดรหัส
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | CERT_X509_SIGNATURE CR:
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | 10 81 9a c1 4c a6 94 70 ca d1 7d 77 e1 5a ab 36
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | 93 3d ซีดี 39
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | เนื้อหา cert blob ไม่ใช่ ASN.1 แบบไบนารี
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ตรวจสอบเพย์โหลด AUTH
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | RSA CA ที่ต้องการคือ '%any'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ตรวจสอบรหัส RSA 'serverIP' เพื่อให้ตรงกับ '[email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ตรวจสอบรหัส RSA 'C=US, ST=US, L=City, O=companyName, OU=OUCA, CN=UserCN, [email protected]' เพื่อให้ตรงกับ '[email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ตรวจสอบรหัส RSA '[email protected]' เพื่อให้ตรงกับ '[email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | trustee_ca_nss: ผู้ดูแล A = 'C=US, ST=US, O=companyName, OU=OUCA, CN=CAName, [email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | CA ของผู้ออกคีย์คือ 'C=US, ST=US, O=companyName, OU=OUCA, CN=CAName, [email protected]'
10 ส.ค. ชื่อเซิร์ฟเวอร์ พลูโต[]: | ผ่านการตรวจสอบ RSA Sig ด้วย *AwEAAbi14 [ใบรับรองระยะไกล]
10 ส.ค. serverName pluto[]: "remote"[51] serverIP #90: รับรองความถูกต้องโดยใช้ RSA
บันทึกของเซิร์ฟเวอร์แสดงว่าไคลเอนต์ Mac OS X Big Sur รับรองความถูกต้องอย่างถูกต้อง จากนั้นจะสร้างความสัมพันธ์ของ SA เป็นต้น ตามที่คุณเห็นโดยทั่วไป ลูกค้าคือผู้ที่ปฏิเสธการเชื่อมต่อจากมือ สิ่งที่ฉันไม่เข้าใจคือสิ่งที่เปลี่ยนแปลงระหว่าง Catalina กับ Big Sur ??
ฉันไม่พบข้อมูลเกี่ยวกับการเปลี่ยนแปลงระบบปฏิบัติการนี้ ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงไม่มีแบบอักษร 60 พอยต์เป็นตัวหนาในหน้าแรกของเว็บไซต์ Apple ซึ่งใช่แล้ว ความจริงแล้วน่าสนุก เราได้เปลี่ยนวิธีการทำงานของ IPSEC ในระบบปฏิบัติการเวอร์ชันนี้โดยสิ้นเชิง และฉันเหนื่อยกับการทำให้หัวฉันเปื้อนเลือดไม่ว่าจะดึงผมออกหรือกระแทกกับกำแพงซ้ำแล้วซ้ำเล่า
ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม