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

การตั้งค่า 2FA บน AlmaLinux 10.1

คู่มือการเปิดใช้งาน Two-Factor Authentication (2FA) บน AlmaLinux 10.1 ด้วย Google Authenticator เพื่อเพิ่มความปลอดภัยให้กับระบบ

Apr 11, 2026

almalinuxlinuxsecurity2FAgoogle-authenticator

🔐 การตั้งค่า 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 เพื่อความปลอดภัยสูงสุด 🚀