การตั้งค่า 2FA บน AlmaLinux 10.1 (Web Console และ SSH)

คู่มือการเปิดใช้งาน Two-Factor Authentication (2FA) บน AlmaLinux 10.1 ด้วย Google Authenticator เพื่อเพิ่มความปลอดภัยให้กับระบบ
Apr 11, 2026
🔐 การตั้งค่า 2FA บน AlmaLinux 10.1
การเปิดใช้งาน Two-Factor Authentication (2FA) เป็นวิธีเพิ่มความปลอดภัยให้กับระบบ โดยเฉพาะ Server ที่เปิดใช้งานผ่าน Web Console (Cockpit) และ SSH โดยในคู่มือนี้จะใช้ Google Authenticator ผ่านระบบ PAM (Pluggable Authentication Modules)
📦 1. ติดตั้งแพ็กเกจที่จำเป็น
เริ่มต้นด้วยการติดตั้ง Google Authenticator PAM module:
sudo dnf install google-authenticator -y
หากไม่พบแพ็กเกจ ให้เปิดใช้งาน CRB repository:
sudo dnf config-manager --set-enabled crb
และตรวจสอบว่า EPEL ถูกเปิดใช้งานแล้ว
🔑 2. ตั้งค่า Google Authenticator
รันคำสั่ง:
google-authenticator
จากนั้นให้ตอบ y (yes) สำหรับตัวเลือกต่าง ๆ เช่น:
- ใช้ token แบบ time-based
- อัปเดตไฟล์
.google_authenticator - ไม่ให้ใช้รหัสซ้ำ
- เพิ่มช่วงเวลาเผื่อ (time skew)
- เปิด rate-limiting
หลังจากนั้นระบบจะให้:
- QR Code (สำหรับสแกนด้วยมือถือ)
- Secret Key
- Emergency Scratch Codes ⚠️ (สำคัญมาก)
⚙️ 3. ตั้งค่า 2FA สำหรับ Web Console (Cockpit)
แก้ไขไฟล์:
/etc/pam.d/cockpit
เพิ่มบรรทัด:
auth required pam_google_authenticator.so
หากต้องการให้ user ที่ยังไม่ตั้งค่า 2FA เข้าได้:
auth required pam_google_authenticator.so nullok
🖥️ 4. ตั้งค่า 2FA สำหรับ SSH (แนะนำ)
แก้ไข config SSH
/etc/ssh/sshd_config
ตั้งค่า:
ChallengeResponseAuthentication yes
แก้ไข PAM ของ SSH
/etc/pam.d/sshd
เพิ่ม:
auth required pam_google_authenticator.so
🔄 5. รีสตาร์ทบริการ
sudo systemctl restart sshd
sudo systemctl restart cockpit
⚠️ ข้อควรระวัง
🔐 Backup Codes
เก็บ Emergency Codes ไว้ให้ดี เพราะใช้แทน OTP ได้กรณีมือถือหาย
⏱️ เวลาเครื่องต้องตรง
ควรใช้ NTP เพื่อให้เวลา server ตรง ไม่เช่นนั้น OTP จะไม่ทำงาน
📦 ปัญหาแพ็กเกจ
AlmaLinux 10 บางเครื่องอาจยังไม่มี package ต้องเปิด CRB และ EPEL เพิ่ม
✅ สรุป
การเปิดใช้งาน 2FA บน AlmaLinux 10.1 เป็นสิ่งที่ควรทำอย่างยิ่ง โดยเฉพาะระบบที่เปิด SSH หรือ Web Console เพื่อ:
- ลดความเสี่ยงจากการถูก brute-force
- เพิ่ม layer ความปลอดภัย
- ป้องกันการเข้าถึงโดยไม่ได้รับอนุญาต
แนะนำให้เปิดใช้งานทั้ง Cockpit และ SSH เพื่อความปลอดภัยสูงสุด 🚀