ลดความยุ่งยากในการใช้คลาวด์ พูดคุยกับเจ้าหน้าที่

Home เปิด Two-Factor Authentication สำหรับหน้า Login WordPress

เปิด Two-Factor Authentication สำหรับหน้า Login WordPress

รหัสผ่านเพียงอย่างเดียวไม่พอสำหรับป้องกันหน้า Login ของ WordPress เพราะรหัสผ่านรั่วได้จากหลายทาง ทั้งการใช้รหัสซ้ำกับเว็บอื่น มัลแวร์ในเครื่อง หรือการเดาด้วยโปรแกรมอัตโนมัติ Two-Factor Authentication (2FA) เพิ่มขั้นตอนที่สอง คือรหัส 6 หลักจากแอปบนมือถือ ทำให้แม้มีคนรู้รหัสผ่าน ก็ยังเข้าระบบไม่ได้

WordPress ยังไม่มี 2FA ในตัว ต้องเพิ่มผ่านปลั๊กอิน บทความนี้ใช้ปลั๊กอิน Two Factor ซึ่งพัฒนาโดยทีมผู้ร่วมพัฒนา WordPress และเผยแพร่บน WordPress.org เป็นตัวอย่างหลัก พร้อมแนะนำทางเลือกเมื่อต้องการบังคับใช้ 2FA กับผู้ใช้ทุกคน และวิธีกู้การเข้าถึงเมื่อทำโทรศัพท์หาย

สิ่งที่ต้องเตรียม

หมายเหตุ: ชื่อเมนูและตัวเลือกของปลั๊กอินอาจเปลี่ยนตามเวอร์ชัน หากหน้าจอไม่ตรงกับบทความ ให้ดูหน้าเอกสารของปลั๊กอินบน WordPress.org ประกอบ ระหว่างตั้งค่าให้เปิดหน้าหลังบ้านค้างไว้อีกหนึ่งแท็บ และทดสอบการเข้าสู่ระบบในหน้าต่าง Incognito เพื่อไม่ให้ล็อกตัวเองออก

ขั้นตอนที่ 1: ติดตั้งปลั๊กอิน Two Factor

  1. ไปที่ Plugins > Add New Plugin
  2. ค้นหาคำว่า Two Factor เลือกปลั๊กอินชื่อ Two Factor ที่อยู่ในหน้า https://wordpress.org/plugins/two-factor/ (ระวังปลั๊กอินชื่อคล้ายกันจากผู้พัฒนาอื่น)
  3. คลิก Install Now แล้วคลิก Activate

หรือติดตั้งด้วย WP-CLI

wp plugin install two-factor --activate

ผลที่ถูกต้องคือ Plugin 'two-factor' activated. และ Success: Installed 1 of 1 plugins.

ขั้นตอนที่ 2: เปิด 2FA ให้บัญชีของตัวเอง

  1. ไปที่ Users > Profile เลื่อนลงไปที่ส่วน Two-Factor Options
  2. ติ๊กเปิด Authenticator App (TOTP) ระบบจะแสดง QR Code และรหัสลับแบบตัวอักษร
  3. เปิดแอป Authenticator บนมือถือ เลือกเพิ่มบัญชี แล้วสแกน QR Code
  4. พิมพ์รหัส 6 หลักที่แอปแสดงลงในช่องยืนยัน แล้วกดปุ่มยืนยันข้างช่อง (ชื่อปุ่มอาจเป็น Submit หรือ Verify ตามเวอร์ชัน)
  5. ติ๊กเปิด Backup Verification Codes แล้วคลิก Generate Verification Codes ระบบจะแสดงรหัสสำรองใช้ครั้งเดียวชุดหนึ่ง
  6. เลือก Authenticator App เป็นวิธีหลัก (Primary) แล้วคลิก Update Profile

รหัสสำรองแสดงเพียงครั้งเดียว ให้ดาวน์โหลดหรือพิมพ์เก็บไว้ในที่ปลอดภัย เช่น ในโปรแกรมจัดการรหัสผ่าน แยกจากโทรศัพท์ที่ใช้รับรหัส

วิธียืนยันตัวตนที่เลือกได้

วิธีข้อดีข้อควรระวัง
Authenticator App (TOTP)ไม่ต้องใช้อินเทอร์เน็ตบนมือถือ ปลอดภัยกว่าอีเมลทำโทรศัพท์หายต้องใช้รหัสสำรอง
Emailตั้งค่าง่าย ไม่ต้องติดตั้งแอปถ้าอีเมลถูกเจาะ 2FA ก็ไร้ผล และเว็บต้องส่งอีเมลได้ ดู ตั้งค่า WordPress ให้ส่งอีเมลผ่าน SMTP
Backup Verification Codesใช้กู้การเข้าถึงเมื่อไม่มีโทรศัพท์แต่ละรหัสใช้ได้ครั้งเดียว

แนะนำให้ผู้ใช้ระดับ Administrator ใช้ Authenticator App เป็นวิธีหลักและมีรหัสสำรองเสมอ

ขั้นตอนที่ 3: ให้ผู้ใช้คนอื่นเปิดใช้

ปลั๊กอิน Two Factor ให้ผู้ใช้แต่ละคนเปิดใช้เองจากหน้า Profile ผู้ดูแลสามารถเข้าไปที่ Users > All Users เลือกผู้ใช้ แล้วดูส่วน Two-Factor Options ได้ แต่การตั้ง Authenticator App ต้องให้เจ้าของบัญชีสแกน QR Code ด้วยโทรศัพท์ของตัวเอง ให้แจ้งผู้ใช้ทุกคนที่เป็น Administrator, Editor และ Shop Manager ให้เปิดใช้ทำตามขั้นตอนที่ 2

ปลั๊กอิน Two Factor ไม่มีหน้าตั้งค่าสำหรับบังคับใช้ 2FA ตามบทบาทผู้ใช้ หากต้องการบังคับ ให้พิจารณาปลั๊กอินที่มีความสามารถนี้ เช่น Wordfence Login Security ซึ่งกำหนดได้ว่าบทบาทใดต้องใช้ 2FA (ตัวเลือกอยู่ในหน้า Login Security > Settings และอาจต่างกันตามเวอร์ชัน) ไม่ควรติดตั้งปลั๊กอิน 2FA สองตัวพร้อมกัน เพราะหน้า Login อาจทำงานซ้อนกันจนเข้าไม่ได้

ขั้นตอนที่ 4: ตรวจช่องทางเข้าระบบอื่นที่ไม่ผ่าน 2FA

2FA ป้องกันหน้า wp-login.php แต่ WordPress ยังมีช่องทางอื่นที่ใช้ชื่อผู้ใช้และรหัสผ่าน

ตรวจสอบผลลัพธ์

  1. เปิดหน้าต่าง Incognito แล้วเข้า https://example.com/wp-login.php
  2. กรอกชื่อผู้ใช้และรหัสผ่าน ระบบต้องแสดงหน้าขอรหัสยืนยันเพิ่ม
  3. กรอกรหัสจากแอป ต้องเข้าหลังบ้านได้
  4. ทดสอบซ้ำโดยใช้รหัสสำรองหนึ่งรหัส เพื่อยืนยันว่ารหัสสำรองใช้ได้จริง (รหัสที่ใช้แล้วจะหมดอายุ)

ตรวจรายชื่อผู้ใช้ที่เปิด 2FA แล้วด้วย WP-CLI

wp user list --role=administrator --field=user_login | while read u; do
  echo "$u: $(wp user meta get "$u" _two_factor_enabled_providers --format=json 2>/dev/null)"
done

ผู้ใช้ที่ยังไม่เปิด 2FA จะไม่มีค่าแสดงหลังชื่อ

ปัญหาที่พบบ่อย

รหัสจากแอปไม่ถูกต้องทุกครั้ง

เวลาของเซิร์ฟเวอร์หรือโทรศัพท์คลาดเคลื่อน ตรวจเวลาเซิร์ฟเวอร์ด้วย timedatectl ว่า System clock synchronized: yes และตั้งโทรศัพท์ให้ใช้เวลาอัตโนมัติ

ทำโทรศัพท์หายและไม่มีรหัสสำรอง

ผู้ดูแลที่มีสิทธิ์ SSH ลบการตั้งค่า 2FA ของบัญชีนั้นได้ด้วย WP-CLI (เปลี่ยน somchai เป็นชื่อผู้ใช้)

wp user meta delete somchai _two_factor_enabled_providers
wp user meta delete somchai _two_factor_provider

จากนั้นให้ผู้ใช้เข้าระบบด้วยรหัสผ่าน แล้วตั้ง 2FA ใหม่ทันที หากเป็นกรณีฉุกเฉินและไม่แน่ใจชื่อ Meta ให้ปิดปลั๊กอินทั้งตัวชั่วคราวด้วย wp plugin deactivate two-factor หรือเปลี่ยนชื่อโฟลเดอร์ปลั๊กอิน ตาม ปิดปลั๊กอิน WordPress เมื่อเข้าหลังบ้านไม่ได้ แล้วเปิดกลับเมื่อแก้เสร็จ

ไม่ได้รับรหัสทางอีเมล

เว็บส่งอีเมลไม่ออกหรืออีเมลเข้า Spam ให้ตั้งค่า SMTP และตรวจ SPF, DKIM ของโดเมน ดู ตั้งค่า SPF, DKIM และ DMARC เพื่อลดโอกาสอีเมลเข้า Spam ระหว่างนี้ใช้รหัสสำรองเข้าระบบแล้วเปลี่ยนไปใช้ Authenticator App

ปลั๊กอิน Cache ทำให้หน้ายืนยันรหัสทำงานผิดปกติ

ตรวจว่าปลั๊กอิน Cache หรือ CDN ไม่ได้ Cache หน้า wp-login.php และ /wp-admin/ ปลั๊กอิน Cache ส่วนใหญ่ยกเว้นให้อยู่แล้ว แต่การตั้ง Cache ที่ CDN แบบ Cache Everything อาจรวมหน้าเหล่านี้ด้วย

หากทำตามขั้นตอนแล้วยังติดปัญหา สามารถติดต่อทีมสนับสนุนของ THAI DATA CLOUD ได้ที่ https://thaidata.cloud/contact/

ผู้ให้บริการคลาวด์ไทย
เพื่อธุรกิจของคนไทย

"มุ่งมั่น" และ "มั่นคง"
พร้อมรับมือทุกการเติบโต
Trust Cloud
คลาว์ที่ปลอดภัย
คือรากฐานที่มั่นคง
cloud security