Author Topic: roundcube plugin recaptcha หรือ rcguard  (Read 8794 times)

golfreeze

  • Administrator
  • Hero Member
  • *****
  • Posts: 2145
    • View Profile
    • นั่งสมาธิ สติปัฏฐานสี่ พาเที่ยววัด แนะนำวัด แจกcd ธรรมะฟรี
    • Email
roundcube plugin recaptcha หรือ rcguard
« on: กุมภาพันธ์ 23, 2016, 10:04:27 PM »
ปกติเวลาที่โดน bruteforce มาหน้า Login roundcube เราจะสามารถใช้ตัว plugin นี้ช่วยป้องกันได้ครับ
ถ้า login มาผิดเกิน 5 ครั้ง หรือ 10 ครั้งให้ขึ้น captcha code ให้ใส่เพิ่มเติม กับ รหัสผ่าน

ซึ่งในตัว roundcube ก็สามารถใช้งาน function นี้ได้ง่ายๆเลย
ก่อนอื่นทำการ โหลดโคดของท่าน dennylin93/rcguard ลงมาก่อน
ท่านที่ใช้ github อยู่แล้วสามารถ pull master.zip ลงมาได้เลย ผ่าน ssh ชิลๆ

แต่ถ้าท่านใดไม่มี gibhub ก็ download zip file ได้จากที่นี่ครับ
https://github.com/dennylin93/rcguard/archive/master.zip

ทำการ โหลดลงไปเก็บที่ /plugins ของ roundcube เราครับ
roundcube/plugins/
#unzip master.zip
#mv rcguard-master.zip rcguard

ทำการอ่าน README เพื่อทำความเข้าใจก่อน
#cp config.inc.php.dist  config.inc.php

ทำการสมัคร https://www.google.com/recaptcha
เพื่อสร้าง URL domain ที่จะใช้งาน captcha
ทำการโหลด private key กับ public key จากหน้าของ google มาใส่ใน code "config.inc.php"

// Public key  ของ reCAPTCHA ที่ได้จาก google
$rcmail_config['recaptcha_publickey'] = 'ใส่public_key';

// Private key ของ reCAPTCHA ที่ได้จาก google
$rcmail_config['recaptcha_privatekey'] = 'ใส่private_key';

// จำนวนที่ login ผิดต่อกัน 5 ครั้งถึงจะให้ขึ้นแสดง captcha รูปภาพ
$rcmail_config['failed_attempts'] = 5;

// ทำการปลด IP หลังจาก Login ผิดเป็นเวลากี่นาที
$rcmail_config['expire_time'] = 30;

// ถ้ามีการใช้งาน https ก็เปิดเป็น true ไว้ครับ
$rcmail_config['recaptcha_https'] = true;

หลังจากนั้นทำการ save configure แล้วออกมา

###ต่อไปทำการ สร้าง table ของ rcguard ใน database roundcube ครับผม ใน folder rcguard จะมี folder SQL ครับ
#cd SQL
ถ้าใช้งาน roundcube เป็น mysql อยู่แล้วก็
#mysql -uexamplerc -p roundcube555 < mysql.initial.sql
ทำการ update เรื่อง index
#mysql -uexamplerc -p roundcube555 < mysql.update.sql

###หลังจากเสร็จก็ไป enable plugin rcguard ใน roundcube
#cd /roundcube/config
#cp config.inc.php  config.inc.php.ori
#vi config.inc.php

add 'rcguard' ลงไปใน plugin บันทัดนี้
// List of active plugins (in plugins/ directory)
$config['plugins'] = array(
    'rcguard',
);

จากนั้นก็เป็นอันเสร็จเรียบร้อยครับผม : ) ลองเทสหน้า login roundcube ดูได้เลยครับผม

mysql> select * from rcguard;
+--------------+---------------------+------+
| ip           | last                | hits |
+--------------+---------------------+------+
| 58.11.10.126 | 2016-02-23 21:41:35 |    10 |
+--------------+---------------------+------+
1 row in set (0.00 sec)
« Last Edit: กุมภาพันธ์ 23, 2016, 10:36:58 PM by golfreeze »