บทนำ
บทความนี้อธิบายวิธีแก้ปัญหา ไม่สามารถติดตั้ง SCMT Agent บนเครื่อง Linux ต้นทางได้ เนื่องจากระบบเปิดใช้งาน Secure Boot ที่ UEFI firmware ทำให้ kernel module ของ SCMT Agent ไม่สามารถ load ขึ้นมาทำงานได้ เพราะไม่ได้ถูก sign ด้วย key ที่ firmware เชื่อถือ
ข้อกำหนดเบื้องต้น (Prerequisites)
- Source Linux server ที่ต้องการทำ migration ด้วย SCMT (Point-to-Point Agent-based)
- สิทธิ์ root บนเครื่องต้นทาง
- สิทธิ์เข้าถึง UEFI/BIOS Setup หรือสิทธิ์ Console ของ Hypervisor (กรณีเป็น VM)
- SCMT Agent installer (.run) จาก SCMT console
อาการของปัญหา
- ขณะรัน installer SCMT Agent บน Linux จะเจอ error ว่าไม่สามารถ insert kernel module ได้ เช่น
insmod: ERROR: could not insert module ...: Required key not available - คำสั่ง
dmesg | grep -i "lockdown\|secure"จะเห็นข้อความเช่นLockdown: insmod: unsigned module loading is restricted - Agent ติดตั้งไม่สมบูรณ์ และ SCMT Console ไม่สามารถมองเห็นเครื่องต้นทางได้
การตรวจสอบสถานะ Secure Boot
ก่อนเริ่มแก้ปัญหา ให้ตรวจสอบว่าเครื่องเปิด Secure Boot อยู่จริงหรือไม่ ด้วยคำสั่งใดคำสั่งหนึ่ง:
- ใช้ mokutil (แนะนำสำหรับ Ubuntu/Debian/RHEL 8+):
mokutil --sb-stateหากขึ้นว่า SecureBoot enabled แสดงว่าเปิดใช้งาน Secure Boot อยู่ - ตรวจสอบผ่าน efivars:
od -An -t u1 /sys/firmware/efi/efivars/SecureBoot-*หาก byte สุดท้ายเป็น 1 แสดงว่าเปิดใช้งาน - ตรวจสอบผ่าน dmesg:
dmesg | grep -i "Secure boot"
แนวทางแก้ไข (Workaround Options)
มี 3 แนวทางหลักในการแก้ปัญหา เลือกใช้ตามความเหมาะสมและนโยบายความปลอดภัยขององค์กร
แนวทางที่ 1: ปิด Secure Boot ใน UEFI/BIOS (แนะนำมากที่สุด)
เป็นวิธีที่เร็วและแน่นอนที่สุดสำหรับทำ migration แล้วค่อยเปิดกลับหลัง migrate เสร็จ
- Schedule downtime และ reboot เครื่อง Linux ต้นทาง
- กดปุ่มเข้า UEFI/BIOS Setup (ปกติคือ F2, F10, Del หรือ Esc แล้วแต่ยี่ห้อ)
- ไปที่เมนู Security > Secure Boot และตั้งค่าเป็น Disabled
- กรณีเป็น VMware VM: แก้ไข VM Settings > VM Options > Boot Options > ยกเลิก Enable Secure Boot
- Save and Exit จากนั้นเครื่องจะ reboot
- ยืนยันว่า Secure Boot ถูกปิดด้วย
mokutil --sb-state - ติดตั้ง SCMT Agent ใหม่ และเริ่ม migration task ตามปกติ
แนวทางที่ 2: MOK Enrollment (Machine Owner Key)
เหมาะสำหรับกรณีที่องค์กรไม่อนุญาตให้ปิด Secure Boot ใช้วิธีลงทะเบียน key ของ Sangfor เข้า MOK list ของ shim bootloader
- ติดต่อ Sangfor TAC เพื่อขอไฟล์ public key (.der/.cer) ที่ใช้ sign kernel module ของ SCMT Agent
- Copy key ไปที่เครื่องต้นทาง เช่น
/root/sangfor-scmt.der - รันคำสั่ง:
mokutil --import /root/sangfor-scmt.der - ระบบจะให้ตั้ง password ชั่วคราว (จดไว้ให้ดี)
- Reboot เครื่อง จะเข้าหน้า MOK Manager สีฟ้า
- เลือก Enroll MOK > Continue > Yes และใส่ password ที่ตั้งไว้
- Reboot อีกครั้ง เครื่องจะ boot เข้า OS ปกติ
- ตรวจสอบ key ที่ enrolled ด้วย
mokutil --list-enrolled - ติดตั้ง SCMT Agent ใหม่ กระบวนการ insmod จะสำเร็จแล้ว
แนวทางที่ 3: Shim Signing (ติดต่อ Sangfor TAC)
สำหรับลูกค้าที่มีนโยบายเข้มงวด สามารถขอให้ Sangfor จัดหา SCMT Agent build พิเศษที่ kernel module ถูก sign ด้วย key ที่ shim ของ distribution นั้นเชื่อถืออยู่แล้ว วิธีนี้ใช้เวลานาน และอาจไม่สามารถทำได้ทุก kernel version แนะนำให้ติดต่อ Sangfor TAC Thailand เพื่อประเมินความเป็นไปได้
การตรวจสอบหลังการแก้ไข (Verification)
- รันคำสั่ง
lsmod | grep -i sangforหรือlsmod | grep scmtจะต้องเห็น kernel module ของ SCMT load ขึ้นมาแล้ว - ตรวจสอบ service ของ agent:
systemctl status sangfor-agentต้องเป็น active (running) - เข้า SCMT Console ไปที่ Source Machines จะต้องเห็น IP ของเครื่องต้นทาง online อยู่ในรายการ
- ลองสร้าง Migration Task เพื่อทดสอบการ sync data
หมายเหตุ (Notes)
- หลังจาก migration เสร็จสมบูรณ์แล้ว หากเลือกแนวทางที่ 1 สามารถกลับไปเปิด Secure Boot บนเครื่อง VM ปลายทางที่อยู่บน HCI ได้อีกครั้ง (Sangfor HCI รองรับ Secure Boot สำหรับ Guest VM)
- การปิด Secure Boot ต้องได้รับอนุมัติจากทีม Security/Compliance ขององค์กรก่อน เนื่องจากอาจกระทบต่อ security posture
- Distribution บางตัว เช่น RHEL/CentOS 7 ไม่มีคำสั่ง
mokutilโดย default ต้องติดตั้ง packagemokutilเพิ่มเติม - หาก migration เป็น physical server ที่มี Secure Boot เปิดอยู่ที่ hardware BIOS ต้องเข้า BIOS Setup โดยตรงเท่านั้น ไม่สามารถปิดจาก OS ได้
- ปัญหานี้พบบ่อยบน Ubuntu 20.04/22.04, RHEL 8/9, SLES 15 ที่ติดตั้งแบบ default พร้อม Secure Boot
ข้อคิดเห็น
0 ข้อคิดเห็น
โปรด ลงชื่อเข้าใช้ เพื่อแสดงข้อคิดเห็น