### OpenLiteSpeed Web Server Users' Manual

##### Version 1.6 — Rev. 2

- License
- Introduction
- Installation
- Administration
  - Service Manager
- Security
- Configuration
  - Server General
  - Server Log
  - Server Tuning
  - Server Security
  - External Apps
  - Fast CGI App
  - Fast CGI Authorizer
  - LSAPI App
  - Servlet Engine
  - Web Server
  - Piped logger
  - Load Balancer
  - Script Handler
  - App Server Settings
  - Module Configuration
  - Listener General
  - Listener SSL
  - Virtual Host Templates
  - Virtual Host Basic
  - Virtual Host General
  - Virtual Host Security
  - Virtual Host SSL
  - Rewrite
  - Context
  - Static Context
  - Java Web App Context
  - Servlet Context
  - Fast CGI Context
  - LSAPI Context
  - Proxy Context
  - CGI Context
  - Load Balancer Context
  - Redirect Context
  - App Server Context
  - Module Handler Context
  - Web Socket Proxy
- Web Console
  - Admin Console General
  - Admin Console Security
  - Admin Listener General
  - Admin Listener SSL

# Virtual Host Security

## Table of Contents

### reCaptcha Protection⇑

#### Description

reCaptcha Protection is a service provided as a way to mitigate heavy server load. reCaptcha Protection will activate after one of the below situations is hit. Once active, all requests by NON TRUSTED(as configured) clients will be redirected to a reCAPTCHA validation page. After validation, the client will be redirected to their desired page.
The following situations will activate reCaptcha Protection:
1. The server or vhost concurrent requests count passes the configured connection limit.
2. Anti-DDoS is enabled and a client is hitting a url in a suspicious manner. The client will redirect to reCAPTCHA first instead of getting denied when triggered.
3. WP Brute Force protection is enabled and action is set to 'Captcha or Drop’. When a brute force attack is detected, the client will redirect to reCAPTCHA first. After max tries is reached, the connection will be dropped, as per the ‘drop’ option.
4. A new rewrite rule environment is provided to activate reCAPTCHA via RewriteRules. 'verifycaptcha' can be set to redirect clients to reCAPTCHA. A special value ': deny' can be set to deny the client if it failed too many times. For example, [E=verifycaptcha] will always redirect to reCAPTCHA until verified. [E=verifycaptcha: deny] will redirect to reCAPTCHA until Max Tries is hit, after which the client will be denied.

### Enable reCAPTCHA⇑

#### Description

Enable the reCaptcha Protection feature at the current level. This setting must be set to Yes at the Server level before the reCaptcha Protection feature can be used.
Default values:
Server-level: Yes
VH-Level: Inherit Server level setting

#### Syntax

Select from radio box

### Site Key⇑

#### Description

The site key is the public key provided by Google via its reCAPTCHA service. A default Site Key will be used if not set.

### Secret Key⇑

#### Description

The secret key is the private key provided by Google via its reCAPTCHA service. A default Secret Key will be used if not set.

### reCAPTCHA Type⇑

#### Description

Specify the reCAPTCHA type to use with the key pairs. If a key pair has not been provided and this setting is set to Not Set, a default key pair of type Invisible will be used.
Checkbox will display a checkbox reCAPTCHA for the visitor to validate.
Invisible will attempt to validate the reCAPTCHA automatically and if successful, will redirect to the desired page.
Default value is Invisible.

#### Syntax

Select from drop down list

### Max Tries⇑

#### Description

Max Tries specifies the maximum number of reCAPTCHA attempts permitted before denying the visitor.
Default value is 3.

#### Syntax

无符号整数

### Concurrent Request Limit⇑

#### Description

The number of concurrent requests needed to activate reCAPTCHA. reCAPTCHA will be used until concurrent requests drop below this number.
Default value is 15000.

#### Syntax

无符号整数

### 登入限制⇑

#### Description

指定哪些子网络和/或IP地址可以访问该服务器。 这是影响所有的虚拟主机的服务器级别设置。您还可以为每个虚拟主机设置登入限制。虚拟主机的设置不会覆盖服务器设置。
是否阻止/允许一个IP是由允许列表与阻止列表共同决定。 如果你想阻止某个特定IP或子网，请在允许列表中写入* 或 ALL，并在拒绝列表中写入需要阻止的IP或子网。 如果你想允许某个特定的IP或子网，请在拒绝列表中写入* 或 ALL，并在允许列表中写入需要允许的IP或子网。 单个IP地址是被允许访问还是禁止访问取决于该IP符合的最小限制范围。
信任的IP或子网络可以在允许列表列表中添加后缀“T”来指定。受信任的IP或子网不受连接数/流量限制。 只有服务器级别的登入限制才可以设置受信任的IP或子网。

#### Tips

[安全建议] 用此项设置适用于所有虚拟主机的常规限制。

### 允许列表⇑

#### Description

指定允许的IP地址或子网的列表。 可以使用{VAL}*或{VAL}ALL。

#### Syntax

逗号分隔的IP地址或子网列表。 结尾加上“T”可以用来表示一个受信任的IP或子网，如{VAL}192.168.1.*T。

#### Example

子网: 192.168.1.0/255.255.255.0, 192.168.1.0/24, 192.168.1 或 192.168.1.*.
IPv6 地址: ::1 或 [::1]
IPv6 子网: 3ffe:302:11:2:20f:1fff:fe29:717c/64 或 [3ffe:302:11:2:20f:1fff:fe29:717c]/64.

#### Tips

[安全建议] 在服务器级别设置的受信任的IP或子网不受连接/节流限制。

### 拒绝列表⇑

#### Description

指定不允许的IP地址或子网的列表。

#### Syntax

逗号分隔的IP地址或子网列表。 可以使用{VAL}*或{VAL}ALL。

#### Example

子网: 192.168.1.0/255.255.255.0, 192.168.1.0/24, 192.168.1 或 192.168.1.*.
IPv6 地址: ::1 或 [::1]
IPv6 子网: 3ffe:302:11:2:20f:1fff:fe29:717c/64 或 [3ffe:302:11:2:20f:1fff:fe29:717c]/64.

### Realms授权⇑

#### Description

列出这个虚拟主机的所有Realm。 Realm授权可以阻止未授权用户访问受保护的网页。 Realm是一个用户名录，其中包含了用户名、密码、分组（可选）。授权是在context级别执行的。不同的context可以共享相同的Realm（用户数据库），所以Realm是与调用它的context分开定义的。你可以通过context配置中的名称识别Realm。

### Realm名称⇑

#### Description

为Realm授权指定唯一的名称。

#### Syntax

文本

### 用户数据库地址⇑

#### Description

指定用户数据库的地址。 对于类型为Password File的数据库，应设置为包含用户名/密码的展平文件的路径。 您可以在WebAdmin控制台中点击文件名来进行修改。
用户文件的每一行包含一个用户名，后面加上冒号，在跟上加密的密码，后面可选择添加冒号和用户所属组名。 多个组名通过逗号分隔。如果组信息在用户数据库中指定，那么组数据库将不被检查。
例如:

> `john:HZ.U8kgjnMOHo:admin,user`

对于类型为LDAP的数据库，应该设置用于查询用户信息的LDAP URL。对于每个有效的用户，存储在LDAP服务器中的认证数据 应至少包含用户ID和用户密码。当根据HTTP认证报头中的信息通过指定URL进行LDAP查询请求时，应当有且仅有一个记录被返回。"$k"必须在URL中的过滤部分指定并且将用用户名来替代。用户密码属性名必须在查询中返回。用户密码属性名由密码属性名指定。组信息可以使用Member-of 属性来指定（可选）。
例如: 用户至少要在LDAP中通过以下对象类定义：uidObject, simpleSecurityObject和organizationalRole。可以使用如下URL：

> `ldap://localhost/ou=UserDB,dc=example,dc=com???(&(objectClass=*)(uid=$k))`

#### Syntax

到用户数据库文件的路径或LDAP URL（RFC 2255）。

#### Tips

[安全建议] 建议在文档树以外保存用户密码文件。 如果用户密码文件被放置在文档树以内，只需要使用".ht"作为文件名开头， 如.htuser，来防止被当做静态文件输出。LiteSpeed Web服务器不输出前缀为“.ht”的文件。

#### See Also

Group DB Location, 密码属性名, Member-of 属性

### 用户数据库最大缓存大小⇑

#### Description

指定用户数据库的最大缓存大小。 最近访问的用户认证信息会被缓存在内存中以提供最佳性能。

#### Syntax

无符号整数

#### Tips

[性能建议] 由于更大的缓存会消耗更多的内存，更高的值可能会也可能不会提供更好的性能。 请根据您的用户数据库大小和网站使用情况来设定一个合适的大小。

### 用户数据库缓存超时⇑

#### Description

指定多久检查一次后端用户数据库变更。 在缓存中每个条目都有一个时间戳。 当缓存日期超过指定的超时时间时，将检查后端数据库是否有变化。 如果没有，时间戳将被重置为当前时间，否则会将新的数据载入。 服务器重载和平滑重启会立即清除缓存。

#### Syntax

单元

#### Tips

[性能建议] 如果后端数据库不经常发生变更，设置较长的缓存时间来获得更好的性能。

### Group DB Location⇑

#### Description

指定组数据库的位置。
组信息可以在用户数据库或在这个独立的组数据库中设置。 用于用户验证时，将首先检查用户数据库。 如果用户数据库同样包含组信息，组数据库将不被检查。
对于类型为Password File的数据库， 组数据库地址应当是到达包含有组定义的平面文件的路径。 你可以在WebAmin控制台中点击文件名来修改这个设置。
每一行组文件应当包含一个组名， 组名后面跟一个冒号，并在冒号后面使用空格来分割组中的用户名。 例如:

> `testgroup: user1 user2 user3`

对于类型为LDAP的数据库， 组数据库地址应当是查询组信息的LDAP URL地址。 对于每一个有效的组， 基于同一URL地址和同一在Require（授权的用户/组）中指明的组名进行的LDAP查询请求，应当有且仅有一个记录返回。 "$k"中指定的组名称必须在URL的过滤部分指定并用组名称代替。在组中指定成员的属性名称需在组成员属性名中指定。
例如: 如果objectClass posixGroup被用来存储组信息。可以使用以下的地址：

> `ldap: //localhost/ou=GroupDB,dc=example,dc=com???(&(objectClass=*)(cn=$k))`

#### Syntax

文件3

#### Tips

[安全建议] 建议把组文件保存到站点目录外。 如果必须将组文件放置在站点目录内，只需要用".ht"开头命名，如.htgroup，来防止文件被当做静态文件而输出。LiteSpeed网页服务器不会输出前缀是".ht"的文件。

#### See Also

用户数据库地址, Context Require（授权的用户/组）, 组成员属性名

### 组数据库最大缓存大小⇑

#### Description

指定组数据库的最大缓存大小。

#### Syntax

无符号整数

#### Tips

[性能建议] 由于更大的缓存会消耗更多的内存， 更高的值可能会也可能不会提供更好的性能。 请根据你的用户数据库大小和网站使用情况来设置合适的大小。

#### See Also

用户数据库最大缓存大小

### Group DB Cache Timeout (secs)⇑

#### Description

指定多长时间后台组数据库将检查一次变更。 查看更多详细信息查看用户数据库缓存超时。

#### Syntax

无符号整数

#### See Also

用户数据库缓存超时