用户手册
Version 1.9 — Rev. 3

# 虚拟主机安全

### CAPTCHA 保护

#### 描述

CAPTCHA保护是一种用于减轻服务器负载的服务。当下列情况之一发生后，CAPTCHA保护将被激活。激活后，所有非信任客户端（按配置）发出的请求都会被重定向到CAPTCHA验证页面。验证完成后，客户端会被重定向到目标页面。
下列情况将启用CAPTCHA保护： 1. 服务器或虚拟主机并发请求计数超过连接限制。
2. 启用了Anti-DDoS，并且客户端以可疑的方式访问了URL。 客户端将首先重定向到CAPTCHA，而不是在触发时被拒绝。
3. 提供了新的重写规则环境，可通过RewriteRules激活CAPTCHA。可以设置“verifycaptcha”将客户端重定向到CAPTCHA。特殊值“: deny”可在客户端失败次数过多时拒绝它。例如，[E=verifycaptcha]会一直重定向到CAPTCHA，直到验证通过。[E=verifycaptcha: deny]会一直重定向到CAPTCHA，直到达到最大尝试次数，之后客户端将被拒绝。

### 启用CAPTCHA

#### 描述

在当前级别启用CAPTCHA保护功能。必须先在服务器级别将此设置设为Yes，才能使用CAPTCHA保护功能。
默认值：
服务器级别：Yes
虚拟主机级别：继承服务器级别设置

#### 语法

布尔值

### 网站密匙

#### 描述

reCAPTCHA或hCaptcha服务分配的公钥。
使用reCAPTCHA时，如果未设置站点密钥，将使用默认Site Key（不推荐）。

#### 语法

文本

### 密钥

#### 描述

reCAPTCHA或hCaptcha服务分配的私钥。
使用reCAPTCHA时，如果未设置密钥，将使用默认Secret Key（不推荐）。

### CAPTCHA类型

#### 描述

指定与密钥对一起使用的CAPTCHA类型。
如果未提供密钥对，且此设置设为Not Set，则会使用reCAPTCHA Invisible类型的默认CAPTCHA密钥对。
reCAPTCHA Checkbox会向访问者显示复选框CAPTCHA以进行验证。 （需要网站密匙、密钥）
reCAPTCHA Invisible会尝试自动验证CAPTCHA，验证成功后会重定向到目标页面。 （需要网站密匙、密钥）
hCaptcha可用于支持CAPTCHA提供商 hCaptcha。 （需要网站密匙、密钥）
默认值为reCAPTCHA Invisible。

#### 语法

从列表中选择

### 最大尝试次数

#### 描述

“最大尝试次数”指定在拒绝访客之前允许的最大CAPTCHA次尝试次数。
默认值是 3.

#### 语法

非负整数

### 并发请求限制

#### 描述

激活CAPTCHA所需的并发请求数。CAPTCHA会持续使用，直到并发请求数低于此值。
默认值为15000。

#### 语法

非负整数

### Bubblewrap容器

#### 描述

如果希望在Bubblewrap沙箱中启动CGI进程（包括PHP程序），请设置为Enabled。有关使用Bubblewrap的详细信息，请参见 https://wiki.archlinux.org/title/Bubblewrap 。使用此设置之前，必须先在系统上安装Bubblewrap。
如果服务器级别设置为“Disabled”，则无法在虚拟主机级别启用此设置。
默认值：
服务器级别：Disabled
虚拟主机级别：继承服务器级别设置

#### 语法

从列表中选择

### Namespace容器

#### 描述

如果希望在Namespace容器沙箱中启动CGI进程（包括PHP程序），请设置为Enabled。 仅当Bubblewrap容器设置为Disabled时使用。
当服务器级别未设置为Disabled时，此设置值可以在虚拟主机级别覆盖。
默认值：
服务器级别：Disabled
虚拟主机级别：继承服务器级别设置

#### 语法

从列表中选择

### 附加 Namespace 模板文件

#### 描述

指向现有配置文件的路径，该文件包含要挂载的目录列表以及挂载方式。 如果服务器级别也设置了Namespace模板文件，则两个文件都会被使用。

#### 语法

可以是绝对路径，也可以是相对于$SERVER_ROOT或$VH_ROOT的相对路径。

### 登入限制

#### 描述

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

#### 提示

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

### 允许列表

#### 描述

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

#### 语法

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

#### 示例

子网: 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.

#### 提示

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

### 拒绝列表

#### 描述

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

#### 语法

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

#### 示例

子网: 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.

### 授权Realm

#### 描述

列出此虚拟主机的所有授权Realm。 授权Realm用于阻止未授权用户访问受保护的网页。 Realm是一个用户目录，其中包含用户名、密码和可选的组分类。授权在上下文级别执行。 由于不同上下文可以共享同一个Realm（用户数据库），因此Realm会与使用它们的上下文分开定义。 您可以在上下文配置中通过这些名称引用Realm。

### Realm名称

#### 描述

指定授权Realm的唯一名称。

#### 语法

文本

### 用户数据库地址

#### 描述

指定用户数据库的位置。建议将数据库存储在$SERVER_ROOT/conf/vhosts/$VH_NAME/目录下。
对于类型为Password File的数据库，应设置为包含用户名/密码的展平文件的路径。 您可以在WebAdmin控制台中点击文件名来进行修改。
用户文件的每一行包含一个用户名，后跟冒号和crypt()加密的密码，后面还可以跟一个冒号和用户所属的组名。多个组名用逗号分隔。
示例：

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

#### 语法

用户数据库文件路径。

#### 另请参阅

组数据库位置, 密码属性名, Member-of 属性

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

#### 描述

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

#### 语法

非负整数

#### 提示

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

### 用户数据库缓存超时（秒）

#### 描述

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

#### 语法

非负整数

#### 提示

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

### 组数据库位置

#### 描述

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

> `testgroup: user1 user2 user3`

#### 语法

文件路径

#### 另请参阅

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

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

#### 描述

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

#### 语法

非负整数

#### 提示

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

#### 另请参阅

用户数据库最大缓存大小

### 组数据库缓存超时（秒）

#### 描述

指定多久检查一次后端组数据库变更。 更多详细信息请参阅用户数据库缓存超时（秒）。

#### 语法

非负整数

#### 另请参阅

用户数据库缓存超时（秒）