Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Next revision Both sides next revision
litespeed_wiki:config:recaptcha [2019/01/14 14:38]
qtwrk created
litespeed_wiki:config:recaptcha [2019/06/14 20:29]
Lisa Clarke [Advanced Configuration: Define reCAPTCHA Actions Through Rewrite Rules]
Line 1: Line 1:
-===== reCAPTCHA =====+====== reCAPTCHA ​======
  
-Since LiteSpeed WebServer 5.4RC1, reCAPTCHA ​has been introduced in order to defend from DDoS attack.+As of LiteSpeed WebServer 5.4RC1, reCAPTCHA ​is available as a method of defense against ​DDoS attack.
  
-==== How To Enable ​On Server Level ====+====Enable ​Globally at the Server Level =====
  
-Access ​webadmin ​console ​by https://​YOUR_SERVER_IP:​7080+Access ​the WebAdmin ​console ​via ''<​nowiki>​https://​YOUR_SERVER_IP:​7080 ​</​nowiki>''​
  
-Configuration -> Server -> Security -> reCAPTCHA Protection+Navigate to **Configuration -> Server -> Security -> reCAPTCHA Protection**
  
 {{:​litespeed_wiki:​config:​recaptcha1.jpg|}} {{:​litespeed_wiki:​config:​recaptcha1.jpg|}}
  
  
-Set **Enable reCAPTCHA** to Yes, this is the master switch.+Set **Enable reCAPTCHA** to ''​Yes''​. This is the master switch ​and it is required for both a control panel environment and an LSWS native environment. It will enable the reCAPTCHA feature for all control panel Apache virtual hosts as well as LSWS native virtual hosts globally. It may be overridden at the virtual host level 
  
-For other options ​please ​hover over the ''?''​ symbol to view detail ​information.+For other optionshover over the ''?''​ symbol to view detailed ​information ​about that option.
  
- +For demonstration ​purposes, we will set **Trigger Sensitivity** ​to maximum (''​100''​),​ and **reCAPTCHA Type** to ''​Checkbox''​. You  may adjust ​these values ​according to your needs. ​Save and restart LSWS. This sensitivity setting will be inherited by all control panel Apache virtual hosts and LSWS native virtual hosts unless overridden at the virtual host level
-For demonstration ​purpose this guide will set it to maximum ​sensitivity and type checkbox ​(please ​adjust ​the value according to your needs.), save and restart LSWS.+
  
 {{:​litespeed_wiki:​config:​recaptcha2.jpg|}} {{:​litespeed_wiki:​config:​recaptcha2.jpg|}}
  
  
-When access ​the website , it will need to do reCAPTCHA validation to against DDoS attack such as HTTP Flood.+When a visitor accesses ​the website , they will need to go though ​reCAPTCHA validation to protect ​against ​DDoS attack such as HTTP Flood.
  
 {{:​litespeed_wiki:​config:​recaptcha3.jpg|}} {{:​litespeed_wiki:​config:​recaptcha3.jpg|}}
  
-You can also only enable reCAPTCHA on an individual virtual host that is under attack while leave other websites ​less intruded and distributed.+You can also enable reCAPTCHA on an individual virtual host that is under attackwhile leaving ​other websites ​disabled.
  
-=== How To Enable On Vhost Level ===+===== Override/​Disable at the Virtual Host Level =====
  
-Server level reCAPTCHA ​must be enable.+Assuming you have enabled ​reCAPTCHA ​at the server level globally, you can override the settings at a virtual host level, but how you do so depends on which environment you are using.
  
-Please note that virtual host level sensitivity will override the server level. 
  
-== Rewrite Rule: ==+==== Override/​Disable for Apache Virtual Hosts ==== 
 +As of LSWS v5.4RC4, you can configure vhost-level reCAPTCHA via the ''​LsRecaptcha''​ directive in the virtual host include configuration.
  
-using following rewrite rule directive.+  <​IfModule LiteSpeed>​ 
 +     ​LsRecaptcha (0-100) 
 +  </​IfModule>​ 
 +   
 +The ''​0-100''​ value defines or overrides **Trigger Sensitivity** for the virtual host. When LsRecaptcha is set to ''​0'',​ it means the reCAPTCHA feature has been disabled for that virtual host
  
-**[E=verifycaptcha]** or **[E=verifycaptchadeny]** ​+**NOTE**: The ''​LsRecaptcha''​ directive cannot be used in .htaccess files.
  
-[E=verifycaptcha] ​will always redirect to reCAPTCHA until verified. ​[E=verifycaptcha: ​deny] will redirect to reCAPTCHA until **Max Tries** is reached, ​after which the client will be denied.+==== Override for LiteSpeed Native Virtual Hosts ====  
 + 
 +Use the LSWS WebAdmin console to override reCAPTCHA in LSWS native mode. 
 + 
 +Navigate to **Configuration -> Virtual Hosts -> Security -> reCAPTCHA Protection** 
 + 
 +{{:​litespeed_wiki:​config:​recaptcha4.jpg|}} 
 + 
 + 
 +===== Advanced Configuration:​ Define reCAPTCHA Actions Through Rewrite Rules ===== 
 + 
 +If you want to further define the reCAPTCHA action as ''​deny''​ or ''​drop'',​ you can use one of the following rewrite rule directives in control panel virtual host document root .htaccess:​ 
 + 
 +''​[E=verifycaptcha]''​ or ''​[E=verifycaptcha: ​ACTION]''​ 
 + 
 +''​[E=verifycaptcha]'' ​will always ​redirect to reCAPTCHA until verified. ''​ACTION''​ can be ''​deny''​ to return a 403 or ''​drop''​ to drop the connection when **Max Tries** ​is reached. Until Max Tries is reached, the client will be redirected to reCAPTCHA.
  
 For example: For example:
  
-<​code>​RewriteCond SOME-CONDITIONAL-CHECK ​(suspicious UA, IP address ...etc)+<​code>​RewriteCond SOME-CONDITIONAL-CHECK
  
 RewriteRule .* - [E=verifycaptcha]</​code>​ RewriteRule .* - [E=verifycaptcha]</​code>​
  
-== LiteSpeed native mode: == +(''​SOME-CONDITIONAL-CHECK''​ would be a suspicious UA, IP address, etc.)
  
-You can also use LSWS webadmin console ​to enable ​reCAPTCHA ​if it is LSWS native mode.+**NOTE**: In most cases, rewrite rules will override the default server behavior. However, in cases where trigger sensitivity is high, visitors may be sent directly ​to reCAPTCHA ​before the rewrite rules can even be processed.
  
-Configuration -> Virtual Hosts -> Security -> reCAPTCHA Protection+===== Customize the Good Bots List =====
  
-{{:​litespeed_wiki:​config:​recaptcha4.jpg|}}+Google bots are considered good bots because they help index your site. However, they cannot do their job properly without receiving the correct page. The Bot Whitelist configuration may be used to specify bots that you may need for your site. 
 + 
 +{{:​litespeed_wiki:​config:​recaptcha5.png|}} 
 + 
 +Here, we have configured '​Edge'​ in the Bot Whitelist text area. Bot Whitelist is a '​contains'​ match, but regex may be used as well. 
 + 
 +After restarting, browsers containing Edge in the user-agent header will bypass reCAPTCHA:​ 
 + 
 +{{ :​litespeed_wiki:​config:​recaptcha6.png?​800 |The browser on the left is Microsoft Edge, the browser on the right is Chrome.}} 
 + 
 +The Allowed Bot Hits configuration may be used to limit how many times a good bot (including Googlebot) is allowed to hit a URL before it is redirected to reCAPTCHA as well. This may be useful to prevent bad actors from bypassing reCAPTCHA using a custom user agent. 
 + 
 +===== Customize the reCAPTCHA Page ===== 
 + 
 +The default reCAPTCHA page is generic. If you would like to customize the page, you may do so by creating a file at ''​$SERVER_ROOT/​lsrecaptcha/​_recaptcha_custom.shtml''​. 
 + 
 +There are two script tags that are required and it is strongly recommended to avoid changing the form and the ''​recaptchadiv''​ unless you know what you are doing. There are three echos within the page itself. Those are used by the web server to customize the reCAPTCHA type and keys and specify any query string used. 
 + 
 +Beyond those required attributes, everything else is customizable. As noted before, please ensure that you have backups of the default page and your customized page. Note that the ''​.shtml''​ extension is required in order to use the LSWS configured type and keys. 
 + 
 +===== Apply Your Own Site Key ===== 
 +You can apply your own reCAPTCHA key and adjust the configuration as you like. Client verification is completely determined by Google'​s reCAPTCHA service. The invisible type may display a difficult puzzle. 
 + 
 +For server wide protection that needs to cover a lot of domains, make sure ''​Verify the origin of reCAPTCHA''​ solutions is unchecked. Otherwise, you may need to apply a key for each domain. 
 + 
 +===== Set Trigger Sensitivity ===== 
 +Trigger Sensitivity refers to the automatic reCAPTCHA sensitivity. The higher the value, the more likely reCAPTCHA Protection will be used. A value of ''​0''​ is equivalent to "​Off"​ while a value of ''​100''​ is equivalent to "​Always On".  
 + 
 +Default values:  
 +  * Server level: ''​0''​.  
 +  * Virtual Host level: inherits server-level setting.  
 +   
 +Syntax: Integer value between ''​0''​ and ''​100''​. 
 + 
 +LiteSpeed calculates **Trigger Sensitivity** as the percentage of your server capacity used, based on the number of active connections. reCAPTCHA is activated when this formula is true: 
 + 
 +Active connections * 100 / **Max Connections** > (100 - **Trigger Sensitivity**) 
 + 
 +===== reCAPTCHA Returning 403 and Dropping Connection ===== 
 + 
 +If reCAPTCHA fails a few times, it will return a 403 error and then drop the connection from that IP. It works this way in order to block attacks. If the ''​invisible''​ reCAPTCHA keeps auto-refreshing and then fails, just change the type to ''​one-click''​.
  
  
  • Admin
  • Last modified: 2020/05/20 20:25
  • by Shivam Saluja