Score:1

ปัญหาไคลเอนต์ Libreswan และ Mac OS X Big Sur

ธง cn

ฉันขอความช่วยเหลือหลังจากใช้เวลานานในการแก้ไขปัญหาการเชื่อมต่อระหว่างไคลเอ็นต์และเซิร์ฟเวอร์

ปัญหา

ไคลเอนต์ 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 ข้อมูล/การกำหนดค่าเดียวกัน)

  1. ประเภทการเชื่อมต่อ: IKEv2
  2. Server/Remote Identifier: IP ของเซิร์ฟเวอร์ (ใบรับรองเซิร์ฟเวอร์มี SubjectAltName IP: IP ของเซิร์ฟเวอร์)
  3. ตัวระบุท้องถิ่น: ที่อยู่อีเมลของผู้ใช้ดูเหมือนจะทำงานได้ดีที่นี่ หากไม่ใช่ Big Sur การตั้งค่าว่างยังใช้งานได้ในครั้งเดียว ฉันไม่แน่ใจว่าฉันเปลี่ยนแปลงอะไรหรือแม้แต่ฉันเองที่เปลี่ยนแปลง แต่ตอนนี้อีเมลต้องแสดงอยู่ฉันเริ่มเพิ่มสิ่งนี้เป็นไคลเอ็นต์ฟิลด์อีเมล subjectAltName เช่นกันตามคำแนะนำจากเพื่อนร่วมงาน
  4. การรับรองความถูกต้องของเครื่องคือใบรับรอง, RSA สำหรับประเภท และชื่อผู้ออก CA ได้รับการตั้งค่าอย่างถูกต้อง
  5. เนื้อหาด้านความปลอดภัยอื่นๆ ทั้งหมด เช่น DH params และ crypto เป็นเกรดกลาง AES-256 และ DH21 เดิมทีฉันได้กำหนดค่าด้วย AES-256-GCM เพื่อพยายามหลีกเลี่ยงสิ่งใดก็ตามที่เกี่ยวข้องกับข้อผิดพลาดการตัดทอน SHA2 ที่ไม่ได้ผลเช่นกัน

แท็บเพย์โหลดใบรับรอง

  1. ฉันได้กำหนดค่านี้ด้วยวิธีต่างๆ ใช้สิ่งมาตรฐานที่นี่: ข้อมูลประจำตัว .p12 ที่มีทั้งรหัสผ่านคีย์ส่วนตัวสำหรับผู้ใช้และรหัสผ่านการส่งออก (ยาว 23 อักขระทั้งคู่) ระยะเวลา 920 วัน ฉันอ่านที่ไหนสักแห่งว่านี่อาจเป็นปัญหา แต่บันทึกที่ฉันพบฝั่งไคลเอ็นต์ไม่ได้แสดงว่าไม่พอใจกับระยะเวลาที่ถูกต้อง นอกจากนี้ ฉันได้ทดสอบเวลาใบรับรองที่สั้นลง 500 วันเพื่อดูว่ามันมีประโยชน์หรือไม่ มันไม่ได้
  2. CA รูท/ระดับกลางได้รวมอยู่ในการกำหนดค่าสองแบบที่นี่ระหว่างการสร้าง PKCS12: เพียง CA ระดับกลาง เทียบกับ ca-chain แบบเต็ม การกำหนดค่าทั้งสองไม่ได้ทำงานใน Big Sur
  3. นำเข้ารูท / 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 ในระบบปฏิบัติการเวอร์ชันนี้โดยสิ้นเชิง และฉันเหนื่อยกับการทำให้หัวฉันเปื้อนเลือดไม่ว่าจะดึงผมออกหรือกระแทกกับกำแพงซ้ำแล้วซ้ำเล่า

ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม

Graham Leggett avatar
cn flag
ปัญหาเดียวกัน มีข่าวอะไรไหม?
cn flag
@GrahamLeggett ในที่สุดฉันก็ค้นพบ (ด้วยความช่วยเหลือจากเพื่อนร่วมงาน): DNS SAN ต้องมีอยู่ในใบรับรองเซิร์ฟเวอร์ที่มีให้ อินเทอร์เฟซ Big Sur ต้องการ FQDN สำหรับการเจรจา และจะไม่ทราบวิธีตรวจสอบสิทธิ์เซิร์ฟเวอร์เป็นอย่างอื่น แม้ว่าจะมีการตั้งค่า CN ก็ตาม เมื่อฉันเปลี่ยนมันก็เริ่มทำงาน ฝั่งไคลเอ็นต์ ฉันยังเพิ่มอีเมล SAN ฉันไม่แน่ใจว่าตอนนี้ฉันจำได้แล้วว่าทำไมฉันถึงทำอย่างนั้น มีเหตุผล แต่มันหนีฉันไปอย่างน่าเสียดาย

โพสต์คำตอบ

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