Leech Protect ใน cPanel ป้องกันแชร์รหัสผ่าน

ตั้งค่า Leech Protection ง่ายๆ ใน cPanel เพื่อปิดกั้นการนำรหัสผ่านไปแชร์สาธารณะ

Leech Protect ใน cPanel ป้องกันแชร์รหัสผ่าน Security

Leech Protect คืออะไร?

เมื่อคุณตั้งค่าพื้นที่บนเว็บไซต์ให้ต้องมีการ Login ด้วยรหัสผ่านก่อนเข้าถึง เช่น หน้าสมาชิก ไฟล์ดาวน์โหลดเฉพาะ หรือเนื้อหาพรีเมียม สิ่งที่น่ากังวลที่สุดคือผู้ใช้บางคนอาจนำ Username และ Password ไปแชร์ในโซเชียลมีเดีย หรือโพสต์ลงเว็บบอร์ดให้ทุกคนเข้าถึงได้ฟรี ปัญหานี้ทำให้ผู้ให้บริการเสียรายได้และระบบถูกใช้งานเกินโควต้าที่กำหนดไว้

Leech Protect (หรือ Leech Protection) เป็นฟีเจอร์ใน cPanel ที่ออกแบบมาเพื่อตรวจจับและบล็อกพฤติกรรมดังกล่าวโดยเฉพาะ ระบบจะนับจำนวนครั้งที่ User Account หนึ่งๆ ถูก Login จากตำแหน่งต่างๆ หรือถูกใช้งานพร้อมกันหลายเซสชัน ถ้าเกินเกณฑ์ที่กำหนด ระบบจะทำการ Disable บัญชีนั้น หรือ Redirect ไปหน้าที่ระบุไว้โดยอัตโนมัติ ไม่ต้องเฝ้าตรวจสอบเอง

Leech Protect ทำงานระดับ Apache Web Server ผ่านไฟล์ .htaccess ในโฟลเดอร์ที่เปิดใช้งาน โดย cPanel จะเพิ่ม directive พิเศษเข้าไปให้อัตโนมัติ ดังนั้นจึงใช้งานได้บน Shared Hosting ทั่วไปโดยไม่ต้องมีสิทธิ์ Root

เมื่อไหรควรใช้ Leech Protect?

ฟีเจอร์นี้เหมาะสมสำหรับสถานการณ์เหล่านี้:

ข้อกำหนดเบื้องต้นก่อนตั้งค่า

ก่อนเปิดใช้งาน Leech Protect โฟลเดอร์ที่ต้องการป้องกันต้องมีการตั้งค่า Password Protection ไว้ก่อนแล้ว ใน cPanel เรียกว่า Directory Privacy (หรือ Password Protected Directories ในบาง cPanel เวอร์ชัน) โดยต้องมี Username และ Password อย่างน้อยหนึ่งคู่ที่ผูกกับโฟลเดอร์นั้น มิฉะนั้น Leech Protect จะไม่สามารถทำงานได้

วิธีตั้งค่า Leech Protect ทีละขั้นตอน

ขั้นที่ 1: เปิด Directory Privacy ก่อน

Login เข้า cPanel แล้วไปที่ Files > Directory Privacy เลือกโฟลเดอร์ที่ต้องการ (เช่น members หรือ downloads) แล้วติ๊ก "Password protect this directory" ตั้งชื่อ Realm และสร้าง Username/Password ให้กับผู้ใช้อย่างน้อยหนึ่งคน บันทึกการตั้งค่า

ขั้นที่ 2: เข้าหน้า Leech Protect

กลับไปที่หน้าหลัก cPanel แล้วมองหาหมวด Security คลิก Leech Protect (ใน cPanel เวอร์ชันใหม่บางรุ่นชื่อว่า Hotlink Protection — ให้มองหา Leech Protection แยกต่างหาก) หน้าที่แสดงจะเป็น File Manager tree ให้คุณเลือกโฟลเดอร์ที่ต้องการ

ขั้นที่ 3: เลือกโฟลเดอร์และกำหนดค่า

คลิกที่ชื่อโฟลเดอร์ที่ต้องการ (ต้องเป็นโฟลเดอร์เดียวกับที่เปิด Directory Privacy ไว้) จากนั้น cPanel จะแสดงแบบฟอร์มตั้งค่า:

ขั้นที่ 4: บันทึกและเปิดใช้งาน

กรอกค่าที่ต้องการแล้วคลิก Enable cPanel จะทำการแก้ไขไฟล์ .htaccess ในโฟลเดอร์นั้นโดยอัตโนมัติ ระบบจะแสดงข้อความยืนยันว่าเปิดใช้งานสำเร็จ

ตัวอย่าง .htaccess ที่ cPanel สร้างให้

เมื่อเปิดใช้งาน Leech Protect cPanel จะเพิ่ม directive ลงในไฟล์ .htaccess ของโฟลเดอร์นั้น ซึ่งมีหน้าตาประมาณนี้:

AuthType Basic
AuthName "Protected Area"
AuthUserFile /home/username/.htpasswds/members/passwd
require valid-user

# Leech Protect directives
LeechProtectLoginAllowed   3
LeechProtectRedirect       https://yoursite.com/warning.html
LeechProtectEmailTo        [email protected]
LeechProtectDisable        On
หมายเหตุ: directive เหล่านี้ต้องการ mod_authn_core และ mod_leech ที่ cPanel ติดตั้งไว้ให้บน Shared Hosting ของคุณอยู่แล้ว ไม่ต้องติดตั้งเพิ่มเอง

การจัดการบัญชีที่ถูก Disable

เมื่อระบบตรวจพบว่า Username ใดถูกใช้งานเกินจำนวนที่กำหนด บัญชีนั้นจะถูก Disable อัตโนมัติ คุณจะได้รับอีเมลแจ้งเตือนพร้อมชื่อ Username ที่ถูกตรวจจับ หากต้องการ Enable คืน ให้ทำตามขั้นตอนนี้:

  1. ไปที่ cPanel > Files > Directory Privacy
  2. คลิกที่โฟลเดอร์ที่ตั้งค่าไว้
  3. เลื่อนลงไปส่วน Users ค้นหา Username ที่ถูก Disable (จะแสดงเป็น *** หรือ DISABLED ต่อท้าย)
  4. แก้ไข Password ให้ใหม่หรือลบแล้วสร้างใหม่ตามต้องการ

กรณีที่มีผู้ใช้จำนวนมาก แนะนำให้สร้างสคริปต์จัดการผ่าน cPanel API หรือตรวจสอบไฟล์ .htpasswd โดยตรง

เทคนิคเพิ่มเติม: จำกัด IP ร่วมกับ Leech Protect

นอกจาก Leech Protect แล้ว คุณสามารถเพิ่มความปลอดภัยได้อีกชั้นโดยเพิ่ม rule จำกัด IP ลงใน .htaccess ควบคู่กัน ตัวอย่างสำหรับกรณีที่ต้องการอนุญาตเฉพาะ IP ออฟฟิศ:

AuthType Basic
AuthName "Protected Area"
AuthUserFile /home/username/.htpasswds/members/passwd
require valid-user

# Allow only specific IP ranges + require authentication
Order deny,allow
Deny from all
Allow from 203.0.113.0/24
Allow from 198.51.100.50
Satisfy Any
Tip: ใช้ Satisfy Any เมื่อต้องการให้ผ่านได้ถ้าตรงเงื่อนไขข้อใดข้อหนึ่ง หรือเปลี่ยนเป็น Satisfy All ถ้าต้องการให้ต้องผ่านทั้ง IP และ Password พร้อมกัน

ตรวจสอบว่า Leech Protect ทำงานถูกต้อง

หลังตั้งค่าเสร็จแล้ว ควรทดสอบด้วยขั้นตอนต่อไปนี้เพื่อให้แน่ใจว่าระบบทำงานถูกต้อง:

# 1. ตรวจสอบว่าไฟล์ .htaccess มี directive ของ Leech Protect
#    (ดูผ่าน cPanel File Manager หรือ FTP)
grep -i "LeechProtect" /home/username/public_html/members/.htaccess

# 2. ทดสอบ Login ด้วย Username เดียวกันจาก Browser ต่างกัน
#    เปิด Incognito / Private Window แล้ว Login ซ้ำเกินค่าที่กำหนด

# 3. ตรวจสอบ error log ของ Apache หากต้องการดู activity
tail -f /usr/local/apache/logs/error_log | grep -i leech

# 4. ตรวจสอบว่า .htpasswd file มีอยู่และถูกต้อง
cat /home/username/.htpasswds/members/passwd

# 5. ทดสอบว่าหน้า Redirect ทำงานถูกต้อง
curl -I https://yoursite.com/warning.html
Tip: ถ้าต้องการทดสอบแบบรวดเร็ว ลองตั้งค่า "Number of logins allowed" ไว้ที่ 2 ก่อน แล้วลอง Login จากหน้าต่าง Browser สามหน้าต่างพร้อมกัน หน้าต่างที่สามควรถูก Redirect ไปหน้าที่กำหนด หลังทดสอบเสร็จค่อยเปลี่ยนกลับเป็นตัวเลขที่เหมาะสมกับการใช้งานจริง

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

Error: "Leech Protect ไม่ปรากฏใน cPanel"

บาง Hosting Provider อาจปิดฟีเจอร์นี้ไว้ หรือ cPanel เวอร์ชันใหม่บางรุ่นอาจย้าย Leech Protection ไปอยู่ในหมวดอื่น ให้ลองค้นหาคำว่า "Leech" ในช่อง Search บนหน้าหลัก cPanel หากไม่พบเลยให้ติดต่อ Hosting Support เพื่อขอเปิดใช้งาน Module ดังกล่าว

# ตรวจสอบว่า Apache มี mod_leech โหลดอยู่หรือไม่
# (ต้องทำผ่าน SSH หรือถามทาง Hosting Support)
apache2 -M | grep leech
# ถ้าไม่มีผลลัพธ์ = module ยังไม่ได้โหลด

Error: "ผู้ใช้ถูก Redirect ทั้งๆ ที่ยัง Login ไม่เกินจำนวน"

ปัญหานี้มักเกิดจาก Browser Cache หรือ Cookies เก่าที่ยังค้างอยู่ ให้ผู้ใช้ลองล้าง Cookie และ Cache ของ Browser ก่อน นอกจากนี้ถ้าผู้ใช้ใช้ Password Manager ที่ Auto-fill อาจทำให้ระบบนับการ Login จากหลาย Tab พร้อมกัน ลองเพิ่มค่า "Number of logins allowed" ขึ้นอีก 1-2 ครั้ง

Error: "ไม่ได้รับอีเมลแจ้งเตือนเมื่อตรวจพบการแชร์"

ตรวจสอบว่าอีเมลที่กรอกไว้ถูกต้อง และตรวจดูในโฟลเดอร์ Spam/Junk ของ Mailbox ด้วย บางครั้งอีเมลจาก Server ถูก Filter ว่าเป็น Spam เนื่องจากมาจาก IP ของ Server โดยตรง แนะนำให้ตั้งค่า SPF/DKIM ให้ Domain ของคุณก่อน

# ตรวจ Mail log ของ Server (ทาง Hosting Support ช่วยได้)
grep "leech" /var/log/exim_mainlog
# หรือตรวจผ่าน cPanel > Email > Track Delivery

Error: ".htaccess ถูก Override และ Leech Protect ไม่ทำงาน"

หากเว็บไซต์ใช้ CMS เช่น WordPress อาจมี .htaccess ของ WordPress ที่ Overwrite การตั้งค่าทับ วิธีแก้คือแยกโฟลเดอร์ที่ต้องการป้องกันออกมาต่างหาก ไม่ใช้โฟลเดอร์เดียวกับ WordPress Root และตรวจสอบว่า AllowOverride All ถูกตั้งไว้ใน Apache Config สำหรับโฟลเดอร์นั้น

Error: "บัญชีที่ถูก Disable ไม่สามารถ Enable คืนได้"

เมื่อ Leech Protect Disable บัญชี ระบบจะเพิ่ม "!!" นำหน้า Password Hash ใน .htpasswd ไฟล์ วิธีแก้ตรงที่สุดคือเข้าไปที่ Directory Privacy ใน cPanel แล้วแก้ไข Password ของ User นั้นให้ใหม่ ระบบจะสร้าง Hash ใหม่โดยอัตโนมัติและ Enable บัญชีคืน


คำถามที่พบบ่อย

Leech Protect รองรับกี่ Username ต่อโฟลเดอร์?

ไม่มีการจำกัดจำนวน Username ที่คุณสร้างได้ใน Directory Privacy Leech Protect จะตรวจสอบแยกกันทีละ Username โดยนับจำนวนการ Login ของแต่ละบัญชีอิสระจากกัน ดังนั้นถ้ามี User A ใช้ 3 ครั้งและ User B ใช้ 3 ครั้ง ระบบจะนับแยกกัน ไม่รวมกัน

Leech Protect ทำงานร่วมกับ WordPress Login ได้ไหม?

Leech Protect ทำงานระดับ Apache HTTP Authentication เท่านั้น ไม่ได้ตรวจสอบการ Login ของ WordPress หรือ CMS อื่น หากต้องการป้องกันการแชร์รหัสผ่าน WordPress ต้องใช้ Plugin เช่น "Limit Login Attempts" หรือระบบ Membership แทน อย่างไรก็ตาม คุณสามารถใช้ Leech Protect ป้องกันโฟลเดอร์ย่อยภายใน WordPress ที่เก็บไฟล์ดาวน์โหลดได้

ถ้าต้องการป้องกันทั้งเว็บไซต์ ควรตั้งที่โฟลเดอร์ไหน?

ตั้งที่โฟลเดอร์ public_html หลัก หรือ Root ของเว็บไซต์ อย่างไรก็ตามการทำแบบนี้จะทำให้ทุกหน้าต้อง Login ก่อน รวมถึงหน้าสาธารณะด้วย ดังนั้นแนะนำให้ตั้งเฉพาะโฟลเดอร์ย่อยที่ต้องการป้องกันจริงๆ เช่น /members/ หรือ /downloads/ เท่านั้น เพื่อให้ผู้เยี่ยมชมทั่วไปยังเข้าถึงส่วนอื่นของเว็บได้ตามปกติ