ปกติเวลาที่โดน 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)