โปรไฟล์ VPN นำเข้าไม่ได้บน macOS: อ่านเพย์โหลดก่อน
โปรไฟล์ที่ถูกปฏิเสธบน Mac เครื่องหนึ่งแต่นำเข้าได้บนอีกเครื่องมักเป็นปัญหาเพย์โหลด เปรียบเทียบ XML ดูว่าเครื่องมือสร้างเพิ่มอะไร แล้วตรวจสอบบริการ
เมื่อโปรไฟล์ติดตั้งได้เรียบร้อยบน Mac เครื่องหนึ่งแต่ถูกปฏิเสธบนอีกเครื่อง แปลว่ายังไปไม่ถึงเครือข่าย จึงไม่ควรโทษใบรับรอง เกตเวย์ หรือรหัสผ่าน ตัวติดตั้งหยุดที่เพย์โหลดที่ไม่ยอมรับ และโดยปกติจะบันทึกว่าเป็นตัวใด เหลือเพียงไฟล์โปรไฟล์กับสิ่งที่สร้างมันขึ้นมาเป็นที่ทำงานที่สมเหตุสมผลเท่านั้น และการล้างการตั้งค่าบนไคลเอนต์จึงกลายเป็นการทำลายหลักฐานมากกว่าการซ่อม
อ่านโปรไฟล์แทนการรีเซ็ต Mac
ส่งออก .mobileconfig แล้วดูว่ามีอะไรอยู่ข้างในจริง ๆ ก่อนแตะไคลเอนต์:
plutil -p profile.mobileconfig | head -60
โปรไฟล์ VPN จริง ๆ แล้วคือเพย์โหลดสองตัวที่ทำงานต่างกัน: com.apple.vpn.managed เก็บการเชื่อมต่อ และ com.apple.dnsSettings.managed เก็บการตั้งค่าตัวแปลงชื่อ การติดตั้งจะหยุดที่เพย์โหลดแรกที่ตัวติดตั้งปฏิเสธ และการปฏิเสธจะไปอยู่ในบันทึกระบบพร้อมชื่อเพย์โหลดนั้น ดังนั้นบันทึกจึงบอกว่าควรเปิดส่วนไหน เก็บสำเนาโปรไฟล์ล่าสุดที่นำเข้าสำเร็จไว้ เพราะไฟล์นั้นคือฐานที่ใช้เทียบความต่างของคุณ
สิ่งที่เครื่องมือสร้างเพิ่มอย่างเงียบ ๆ
Apple Configurator 2.15 บิลด์ 7A23 ส่งบล็อกต่อไปนี้ออกมาภายในเพย์โหลด DNS:
<key>DNS</key>
<dict>
<key>SupplementalMatchDomainsNoSearch</key>
<integer>0</integer>
</dict>
บน macOS 12.1 โปรไฟล์ที่เขียนโดยบิลด์นั้นถูกปฏิเสธตอนนำเข้า การเชื่อมต่อที่สร้างด้วย Configurator 2.11.1 เข้าได้โดยไม่มีข้อโต้แย้ง เพราะเวอร์ชันนั้นไม่ได้เขียนคีย์เลย ลบพจนานุกรม DNS ทั้งหมดหรือเฉพาะคีย์ที่มีปัญหา บันทึกใหม่ แล้วลองอีกครั้งบนเครื่องเดิมก่อนจะเปลี่ยนอย่างอื่น การแก้ไขเพียงครั้งเดียวนั้นมักเป็นการซ่อมทั้งหมด
เครื่องมือนี้มีกับดักที่ควรรู้ก่อนจะเชื่อถือ หลังลบคีย์แล้ว การบันทึกการเชื่อมต่อเดิมไม่ได้ใส่คีย์กลับ และคีย์จะปรากฏอีกครั้งเมื่อสร้างการเชื่อมต่อใหม่ตั้งแต่ต้น ถือว่าโปรไฟล์ที่สร้างใหม่ทุกอันเป็นสิ่งน่าสงสัยและตรวจดู โดยเฉพาะเมื่อสร้างการเชื่อมต่อทั้งชุดในครั้งเดียว
เส้นทาง MDM ล้มเหลวที่อื่น
บริการจัดการที่ผลักโปรไฟล์เดียวกันอาจล้มเหลวที่จุดอื่น: ไคลเอนต์บ่นว่าไม่มีการสร้างบริการ VPN เลย ในกรณีที่รายงานมา เพย์โหลดที่ตั้งค่าไว้สำหรับการยืนยันตัวตนด้วยใบรับรองกลับยังเรียกร้องช่องรหัสผ่าน การกรอกด้วยค่าตัวแทนทำให้โปรไฟล์ใช้งานได้ และไม่มีอะไรใช้ค่านั้นในการยืนยันตัวตนเลย
ถ้าเลือกเส้นทางนั้น ให้เก็บสตริงหลอกและไม่เก็บข้อมูลรับรองจริง และเก็บความลับจริงไว้นอกเนื้อหาโปรไฟล์ โปรไฟล์ที่มีรหัสผ่านใช้งานได้จะกลายเป็นไฟล์ที่ต้องป้องกันเหมือนกุญแจ ซึ่งเป็นปัญหาที่ใหญ่กว่าการนำเข้าที่ล้มเหลวมาก ตัดสินใจว่าใครเป็นเจ้าของค่าตัวแทนนั้นก่อนแจกจ่ายโปรไฟล์ เพื่อให้ไม่มีใครเข้าใจผิดว่าเป็นค่าที่ควรหมุนเวียนในภายหลัง การบันทึกว่าเหตุใดจึงมีอยู่ใช้เพียงบรรทัดเดียวและประหยัดการโต้เถียงในอีกหกเดือน
ยืนยันว่าโปรไฟล์ลงจริง
การนำเข้าสำเร็จไม่ใช่บริการที่ทำงานได้ จึงตรวจตามลำดับนี้:
profiles show -type configuration
scutil --nc list
scutil --nc start "Your VPN Service"
scutil --nc status "Your VPN Service"
scutil --dns | head -20
คำสั่งแรกแสดงรายการเพย์โหลดที่ติดตั้งไว้ คำสั่งที่สองบอกว่ามีบริการ VPN อยู่หรือไม่ คำสั่งสุดท้ายที่รันหลังเชื่อมต่อจะแสดงตัวแปลงชื่อที่ระบบจะใช้จริง อ่านตามลำดับนั้นและหยุดตรงที่ห่วงโซ่ขาด เพราะบริการที่หายไปทำให้คำถามเรื่องตัวแปลงชื่อไม่มีความหมาย โปรไฟล์อาจถูกระบุว่าติดตั้งแล้วแต่ไม่มีอะไรที่ใช้งานได้ ซึ่งเป็นสภาพที่ลำดับนี้ถูกออกแบบมาเพื่อเปิดเผย
ถ้าอุโมงค์ขึ้นมาในขณะที่รายการบริการยังไม่มีชื่อที่ใช้งานได้ แปลว่าช่องชื่อที่แสดงหายไปตอนส่งออก และวิธีแก้คือสร้างโปรไฟล์ใหม่ ไม่ใช่เปลี่ยนชื่อบนไคลเอนต์ ถ้าตัวแปลงชื่อยังชี้ไปที่ตัวในเครื่อง แปลว่าเพย์โหลด DNS ถูกลบละเอียดกว่าที่ตั้งใจ
ทยอยติดตั้งเป็นระยะ ทีละเครื่อง Mac
ติดตั้งบน Mac ที่มีการจัดการหนึ่งเครื่องที่รัน บิลด์ระบบปฏิบัติการเดียวกัน แล้วตรวจสามอย่างแยกกัน: บริการปรากฏ ตัวแปลงชื่อเปลี่ยน และคำขอภายในจริงหนึ่งรายการสำเร็จ เมื่อครบทั้งสามแล้วจึงค่อยขยายขอบเขต
นี่คือผลลัพธ์สามแบบที่ล้มเหลวคนละวิธี ซึ่งทำให้เครื่องทดสอบหนึ่งเครื่องคุ้มค่ากับสิบนาทีนั้น โปรไฟล์ที่นำเข้าได้ไม่ใช่โปรไฟล์ที่ทำงานได้ และเครื่องในระยะแรกจับความล้มเหลวทั้งสองแบบก่อนที่เครื่องอื่นในฝูงจะเห็นสักอย่าง