服务器安全
目录
文件访问
客户端流量限制
CGI Settings
CAPTCHA保护
容器
拒绝访问的目录
登入限制
跟随符号链接
描述
指定服务静态文件时跟踪符号链接的服务器级别默认设置。
选项有Yes、If Owner Match和No。
Yes设置服务器始终跟踪符号链接。 If Owner Match设置服务器只有在链接和目标属主一致时才跟踪符号链接。 No表示服务器永远不会跟踪符号链接。 该设置可以在虚拟主机配置中覆盖,但不能通过.htaccess文件覆盖。
语法
从下拉列表选择
提示
[性能和安全建议] 要获得最佳安全性,选择No或If Owner Match。 要获得最佳性能,选择Yes。
另请参阅
检查符号链接
描述
指定在启用了跟随符号链接时,是否检查符号链接在不在拒绝访问的目录中。 如果启用检查,将检查网址对应的真正的资源路径是否在配置的禁止访问目录中。 如果在禁止访问目录中,访问将被禁止。
语法
布尔值
提示
[性能和安全] 要获得最佳的安全性,启用该选项。要获得最佳性能,禁用该选项。
另请参阅
强制严格属主检查
描述
指定是否执行严格的文件所有权检查。 如果启用,Web服务器将检查正在服务的文件的所有者与虚拟主机的所有者是否相同。 如果不同,将返回403拒绝访问错误。 该功能默认是关闭的。
语法
布尔值
提示
[安全建议] 对于共享主机,启用此检查以得到更好的安全性。
脚本限制权限掩码
描述
为不能服务的脚本文件指定限制权限掩码。 例如,要禁止服务属组可写和全局可写的PHP脚本, 设置掩码为022。默认值是000。
用man 2 stat命令了解所有可选值。
语法
八进制数
另请参阅
脚本目录限制权限掩码
描述
指定服务器不会提供服务的脚本文件父目录的限制权限掩码。 例如,要禁止服务属组可写和全局可写的文件夹内的PHP脚本, 设置掩码为022。默认值是000。 此选项可用于防止执行文件上传目录内的脚本。
用man 2 stat命令了解所有可选值。
语法
八进制数
另请参阅
静态请求/秒
描述
指定每秒可处理的来自单个IP的静态内容请求数量(无论与该IP之间建立了多少个连接)。
当达到此限制时,所有后来的请求将被延滞到下一秒。 对于动态内容请求的限制与本限制无关。 每个客户端的请求限制可以在服务器或虚拟主机级别设置。 虚拟主机级别的设置将覆盖服务器级别的设置。
语法
非负整数
提示
[安全] 受信任的IP或子网不受影响。
另请参阅
动态请求/秒
描述
指定每秒可处理的来自单个IP的动态请求的数量(无论与该IP之间建立了多少个连接) 当达到此限制时,所有后来的请求将被延滞到下一秒。
静态内容的请求限制与此限制无关。 可以在服务器或虚拟主机级别设置每个客户端请求的限制。 虚拟主机级别的设置将覆盖服务器级别的设置。
语法
非负整数
提示
[安全] 受信任的IP或子网不受影响。
另请参阅
出口带宽 (bytes/sec)
描述
指定对单个IP地址允许的最大传出吞吐量(无论与该IP之间建立了多少个连接)。 为提高效率,真正的带宽可能最终会略高于设定值。 带宽按4KB为单位分配。设定值为0可禁用限制。 每个客户端的带宽限制(字节/秒)可以在服务器或虚拟主机级别设置。 虚拟主机级别的设置将覆盖服务器级别的设置。
语法
非负整数
提示
[性能建议] 按8KB单位设置带宽可获得更好的性能。
[安全建议] 受信任的IP或子网不受影响。
另请参阅
入口带宽 (bytes/sec)
描述
指定对单个IP地址允许的最大传入吞吐量(无论与该IP之间建立了多少个连接)。 为提高效率,真正的带宽可能最终会略高于设定值。 带宽是按1KB单位分配。设定值为0可禁用限制。 每个客户端的带宽限制(字节/秒)可以在服务器或虚拟主机级别设置。 虚拟主机级别的设置将覆盖服务器级别的设置。
语法
非负整数
提示
[安全] 受信任的IP或子网不受影响。
另请参阅
连接软限制
描述
指定来自单个IP的并发连接的软限制。 并发连接数低于连接硬限制时,此软限制可以在宽限期(秒)期间临时超过, 但Keep-Alive连接将被尽快断开,直到连接数低于软限制。 如果宽限期(秒)之后,连接数仍然超过软限制,相应的IP将被封锁 禁止期(秒)所设置的时长。
例如,如果页面包含许多小图像,浏览器可能会尝试同时建立许多连接,尤其是HTTP/1.0客户端。你应当在短时间内允许这些连接。
HTTP/1.1客户端还可能建立多个连接,以加快下载,另外SSL需要为非SSL连接建立单独的连接。确保限制设置正确, 以免影响正常服务。建议限制在5与10之间。
语法
非负整数
提示
[安全] 较低的数值可让服务器服务更多不同的客户端。
[安全建议] 受信任的IP或子网不受影响。
[性能建议] 使用大量并发客户端进行性能评测时,请设置一个较高的值。
连接硬限制
描述
指定来自单个IP的并发连接的硬限制。 此限制是永远执行的,客户端将永远无法超过这个限制。 HTTP/1.0客户端通常会尝试建立尽可能多的连接,因为它们需要同时下载嵌入的内容。此限制应设置得足够高,以使HTTP/1.0客户端仍然可以访问相应的网站。 使用连接软限制设置期望的连接限制。
建议根据你的网页内容和流量负载,限制在20与50之间。
语法
整数
提示
[安全] 一个较低的数字将使得服务器可以服务更多独立的客户。
[安全] 受信任的IP或子网不受影响。
[性能] 使用大量并发客户端进行基准测试时,设置一个较高的值。
阻止异常请求
描述
阻止持续发送格式错误的HTTP请求的IP,阻止时长由禁止期(秒)指定。默认值为Yes。 这有助于阻止反复发送垃圾请求的僵尸网络攻击。
语法
从单选框中选择
宽限期(秒)
描述
指定来自一个IP的连接数超过连接软限制之后, 多长时间之内可以继续接受新连接。在此期间,如果总连接数仍然 低于连接硬限制,将继续接受新连接。之后,如果连接数 仍然高于连接软限制,相应的IP将被封锁禁止期(秒)里设置的时长。
语法
整数
提示
[性能与安全建议] 设置为足够大的数量,以便下载完整网页, 但也要足够低以防范蓄意攻击。
CGI Settings
描述
The following settings control CGI processes. Memory and process limits also serve as the default for other external applications if limits have not been set explicitly for those applications.
CGI守护进程套接字
描述
用于与CGI守护进程沟通的唯一套接字地址。为了 最佳性能和安全性,LiteSpeed服务器使用一个独立的CGI 守护进程来产生CGI脚本的子进程。 默认套接字是uds://$SERVER_ROOT/admin/lscgid/.cgid.sock。 如果你需要放置在另一个位置,在这里指定一个Unix域套接字。
语法
UDS://path
示例
最大CGI实例数量
描述
指定服务器可以启动的CGI进程最大并发数量。 对于每个对CGI脚本的请求,服务器需要启动一个独立的CGI进程。 在Unix系统中,并发进程的数量是有限的。过多的并发进程会降 低整个系统的性能,也是一种进行拒绝服务攻击的方法。 LiteSpeed服务器将对CGI脚本的请求放入管道队列,限制并发 CGI进程数量,以确保最优性能和可靠性。 硬限制为2000。
语法
非负整数
提示
[安全和性能建议] 更高的数量并不一定转化为更快的性能。 在大多数情况下,更低的数量提供更好的性能和安全性。更高的数量 只在CGI处理过程中读写延迟过高时有帮助。
最小的UID
描述
指定外部应用程序的最小用户ID。 如果用户ID比这里指定的值更低。其外部脚本的执行将被拒绝。 如果的LiteSpeed Web服务器由“Root”用户启动,它可以在“suEXEC” 模式运行外部应用程序,类似Apache(可以切换到与Web服务器不同的用户/组ID)。
语法
非负整数
提示
[安全] 设置足够高的值以排除所有系统/特权用户。
最小的GID
描述
指定外部应用程序的最小组ID。 如果组ID比这里指定的值更小,其外部脚本的执行将被拒绝。 如果的LiteSpeed Web服务器是由“Root”用户启动,它可以在“suEXEC” 模式运行外部应用程序,类似Apache(可以切换到与Web服务器不同的用户/组ID)。
语法
非负整数
提示
[安全] 设置足够高的值以排除所有系统用户所属的组。
强制GID
描述
指定一组ID,以用于所有在suEXEC模式下启动的外部应用程序。 当设置为非零值时,所有suEXEC的外部应用程序(CGI、FastCGI、 LSAPI)都将使用该组ID。这可以用来防止外部应用程序访问其他用 户拥有的文件。
例如,在共享主机环境,LiteSpeed以“www-data”用户、“www-data”组 身份运行。每个文件根目录是由用户帐户所有,属组为“www-data”,权限 为0750。如果强制GID被设置为“nogroup”(或“www-data”之外的任何一 个组),所有suEXEC外部应用程序都将以特定用户身份运行,但属组为 “nogroup”。这些外部应用程序的进程依然能够访问属于相应用户的文件( 因为他们的用户ID),但没有组权限访问其他人的文件。另一方面,服务器 仍然可以服务在任何用户文件根目录下的文件(因为它的组ID)。
语法
非负整数
提示
[安全建议] 设置足够高的值以排除所有系统用户所在的组。
umask
描述
设置CGI进程默认的umask。 通过 man 2 umask命令了解详细信息。这也可作为外部应用程序umask的默认值。
语法
数值有效范围为[000] - [777]
另请参阅
ExtApp umask
CGI优先级
描述
指定外部应用程序进程的优先级。数值范围从-20到20。数值越小,优先级越高。
CGI进程不能拥有比Web服务器更高的优先级。如果这个优先级数值被设置为低于 服务器的优先级数值,则将使用服务器优先级作为替代。
语法
整数
另请参阅
Server 优先级
CPU硬限制(秒)
描述
以秒为单位,指定CGI进程的CPU占用时间限制。 如果进程持续占用CPU时间,达到硬限制,则进程将被强制杀死。如果没有设置该限制,或者限制设为0, 操作系统的默认设置将被使用。
语法
非负整数
内存软限制 (bytes)
描述
以字节为单位指定服务器启动的外部应用进程或程序的内存占用限制。
此限制的目的主要是为了防范软件缺陷或蓄意攻击造成的过度内存使用, 而不是限制正常使用。确保留有足够的内存,否则您的应用程序可能故障并 返回503错误。限制可以在服务器级别或独立的外部应用程序级别设置。如 果未在独立的外部应用程序级别设定限制,将使用服务器级别的限制。
如果在两个级别都没有设置该限制,或者限制值设为0,将使用操 作系统的默认设置。
语法
非负整数
提示
[注意] 不要过度调整这个限制。如果您的应用程序需要更多的内存, 这可能会导致503错误。
内存硬限制 (bytes)
描述
与内存软限制 (bytes)非常相同,但是在一个用户进程中,软限制 可以被放宽到硬限制的数值。硬限制可以在服务器级别或独立的外部应用程序级别设 置。如果未在独立的外部应用程序级别设定限制,将使用服务器级别的限制。
如果在两个级别都没有设置该限制,或者限制值设为0,将使用操 作系统的默认设置。
语法
非负整数
提示
[注意] 不要过度调整这个限制。如果您的应用程序需要更多的内存, 这可能会导致503错误。
进程软限制
描述
限制用户可以创建的进程总数.所有现有的进程都将被计算在这个限制之内,而不仅仅是要启动的新进程。
该限制可以在服务器级别或单个外部应用级别进行设置.如果未在应用级别设置,则将使用服务器级别的限制. 如果该值为0或服务器级和应用级都没有设置,将使用操作系统的默认设置
语法
非负整数
提示
Information PHP脚本可以派生进程。此限制的主要目的,是作为最后一道防线,防止PHP进程继续创建其他进程而造成fork bomb或其他攻击。
将此设置得太低可能会严重影响功能。因此,当设置低于某些级别时将被忽略。
当开机自启设置为“Yes (Daemon mode)”时,实际进程限制会高于此设置,以确保父进程不会被限制。
进程硬限制
描述
与进程软限制非常相同,但是,在用户进程中软限制 可以被放宽到硬限制的数值。硬限制可以在服务器级别或独立的外部应用程序级别设 置。如果未在独立的外部应用程序级别设定限制,将使用服务器级别的限制。 如果在两个级别都没有设置该限制,或者限制值设为0,将使用操 作系统的默认设置。
语法
非负整数
cgroups
描述
如果当前操作系统支持(目前支持RedHat/Centos Linux v7.5+和Ubuntu 18.04+),则将cgroup设置应用于此CGI进程。 。 当前执行的用户将用于确定要应用的cgroup配置。
在服务器级别将此设置为Disabled将在服务器范围内禁用此设置。 在其他情况下,可以在虚拟主机级别覆盖服务器级别的设置。
默认值:
服务器级别: Off
虚拟主机级别: 继承服务器级别设置
语法
从下拉列表选择
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
虚拟主机级别:继承服务器级别设置
语法
布尔值
CAPTCHA类型
描述
指定与密钥对一起使用的CAPTCHA类型。
如果未提供密钥对,且此设置设为Not Set,则会使用reCAPTCHA Invisible类型的默认CAPTCHA密钥对。
reCAPTCHA Checkbox会向访问者显示复选框CAPTCHA以进行验证。 (需要网站密匙、密钥)
reCAPTCHA Invisible会尝试自动验证CAPTCHA,验证成功后会重定向到目标页面。 (需要网站密匙、密钥)
hCaptcha可用于支持CAPTCHA提供商 hCaptcha。 (需要网站密匙、密钥)
默认值为reCAPTCHA Invisible。
语法
从列表中选择
Bubblewrap容器
描述
如果希望在Bubblewrap沙箱中启动CGI进程(包括PHP程序),请设置为Enabled。有关使用Bubblewrap的详细信息,请参见 https://wiki.archlinux.org/title/Bubblewrap 。使用此设置之前,必须先在系统上安装Bubblewrap。
如果服务器级别设置为“Disabled”,则无法在虚拟主机级别启用此设置。
默认值:
服务器级别:Disabled
虚拟主机级别:继承服务器级别设置
语法
从列表中选择
Bubblewrap Command
描述
bubblewraps使用的完整的命令, 包括bubblewrap程序本身。 有关配置此命令的更多信息,请参见: https://openlitespeed.org/kb/bubblewrap-in-openlitespeed/ . 如果未指定,将使用下面列出的默认命令。
默认值: /bin/bwrap --ro-bind /usr /usr --ro-bind /lib /lib --ro-bind-try /lib64 /lib64 --ro-bind /bin /bin --ro-bind /sbin /sbin --dir /var --dir /tmp --proc /proc --symlink../tmp var/tmp --dev /dev --ro-bind-try /etc/localtime /etc/localtime --ro-bind-try /etc/ld.so.cache /etc/ld.so.cache --ro-bind-try /etc/resolv.conf /etc/resolv.conf --ro-bind-try /etc/ssl /etc/ssl --ro-bind-try /etc/pki /etc/pki --ro-bind-try /etc/man_db.conf /etc/man_db.conf --ro-bind-try /home/$USER /home/$USER --bind-try /var/lib/mysql/mysql.sock /var/lib/mysql/mysql.sock --bind-try /home/mysql/mysql.sock /home/mysql/mysql.sock --bind-try /tmp/mysql.sock /tmp/mysql.sock --unshare-all --share-net --die-with-parent --dir /run/user/$UID ‘$PASSWD 65534’ ‘$GROUP 65534’
语法
文本
Namespace容器
描述
如果希望在Namespace容器沙箱中启动CGI进程(包括PHP程序),请设置为Enabled。 仅当Bubblewrap容器设置为Disabled时使用。
当服务器级别未设置为Disabled时,此设置值可以在虚拟主机级别覆盖。
默认值:
服务器级别:Disabled
虚拟主机级别:继承服务器级别设置
语法
从列表中选择
Namespace模板文件
描述
指向现有配置文件的路径,该文件包含要挂载的目录列表以及挂载方法。 当Namespace容器设置为Enabled且此值未设置时,将使用以下安全默认配置:
$HOMEDIR/.lsns/tmp /tmp,tmp
/usr,ro-bind
/lib,ro-bind
/lib64,ro-bind-try
/bin,ro-bind
/sbin,ro-bind
/var,dir
/var/www,ro-bind-try
/proc,proc
../tmp var/tmp,symlink
/dev,dev
/etc/localtime,ro-bind-try
/etc/ld.so.cache,ro-bind-try
/etc/resolv.conf,ro-bind-try
/etc/ssl,ro-bind-try
/etc/pki,ro-bind-try
/etc/man_db.conf,ro-bind-try
/usr/local/bin/msmtp /etc/alternatives/mta,ro-bind-try
/usr/local/bin/msmtp /usr/sbin/exim,ro-bind-try
$HOMEDIR,bind-try
/var/lib/mysql/mysql.sock,bind-try
/home/mysql/mysql.sock,bind-try
/tmp/mysql.sock,bind-try
/run/mysqld/mysqld.sock,bind-try
/var/run/mysqld.sock,bind-try
/run/user/$UID,bind-try
$PASSWD
$GROUP
/etc/exim.jail/$USER.conf $HOMEDIR/.msmtprc,copy-try
/etc/php.ini,ro-bind-try
/etc/php-fpm.conf,ro-bind-try
/etc/php-fpm.d,ro-bind-try
/var/run,ro-bind-try
/var/lib,ro-bind-try
/etc/imunify360/user_config/,ro-bind-try
/etc/sysconfig/imunify360,ro-bind-try
/opt/plesk/php,ro-bind-try
/opt/alt,bind-try
/opt/cpanel,bind-try
/opt/psa,bind-try
/var/lib/php/sessions,bind-try
语法
绝对路径或相对于$SERVER_ROOT的相对路径。
拒绝访问的目录
描述
指定应该拒绝访问的目录。 将包含敏感数据的目录加入到这个列表,以防止向客户端意外泄露敏感文件。 在路径后加一个“*”,可包含所有子目录。 如果跟随符号链接和检查符号链接都被启用, 符号链接也将被检查是否在被拒绝访问目录中。
语法
以逗号分隔的目录列表。
提示
[安全建议] 至关重要: 此设置只能防止服务这些目录中的静态文件。 这不能防止外部脚本如PHP、Ruby、CGI造成的泄露。
登入限制
描述
指定哪些子网络和/或IP地址可以访问该服务器。 这是影响所有的虚拟主机的服务器级别设置。您还可以为每个虚拟主机设置登入限制。虚拟主机的设置不会覆盖服务器设置。
是否阻止/允许一个IP是由允许列表与阻止列表共同决定。 如果你想阻止某个特定IP或子网,请在允许列表中写入* 或 ALL,并在拒绝列表中写入需要阻止的IP或子网。 如果你想允许某个特定的IP或子网,请在拒绝列表中写入* 或 ALL,并在允许列表中写入需要允许的IP或子网。 单个IP地址是被允许访问还是禁止访问取决于该IP符合的最小限制范围。
信任的IP或子网络可以在允许列表列表中添加后缀“T”来指定。受信任的IP或子网不受连接数/流量限制。 只有服务器级别的登入限制才可以设置受信任的IP或子网。
提示
[安全建议] 用此项设置适用于所有虚拟主机的常规限制。
允许列表
描述
指定允许的IP地址或子网的列表。 可以使用*或ALL。
语法
逗号分隔的IP地址或子网列表。 结尾加上“T”可以用来表示一个受信任的IP或子网,如192.168.1.*T。
示例
IPv6 地址: ::1 或 [::1]
IPv6 子网: 3ffe:302:11:2:20f:1fff:fe29:717c/64 或 [3ffe:302:11:2:20f:1fff:fe29:717c]/64.
提示
[安全建议] 在服务器级别设置的受信任的IP或子网不受连接/节流限制。