### OpenLiteSpeed Web Server Users' Manual

##### Version 1.4 — Rev. 30

- 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

### 登入限制⇑

#### 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

用户数据库缓存超时