验证“Lexmark 打印管理”

建议在 LPM 服务器上应用以下安全策略:

注意: 某些限制可能与 LPM 冲突。例如,对某些目录进行病毒扫描会导致文件争用问题。为确保新策略不与 LPM 冲突,请在应用每个策略之前对其进行检查。

防病毒策略要求和建议

必需的防病毒策略

推荐的防病毒策略

在非高峰时段,在所有利盟服务器上运行以下程序:

使用 httpd.conf 文件配置 Apache

  1. 从您的计算机,导览至 <install-Dir>\Solutions\Apache2\conf 文件夹,其中 <install-Dir> 是 Apache 的安装文件夹。

  2. 使用文本编辑器,配置下面的任何设置:

    注意:

    • 默认情况下,某些指令不存在或不活动。
    • 如需更多信息,请参阅 Apache 网站。

    漏洞

    指令

    HTTP 响应的 Web 服务器响应头可能包含以下内容:

    • Web 服务器类型和版本

    • 操作系统和版本

    • 相关端口

    • 内部编译模块

    ServerTokens 指令设置为 Prod,将 ServerSignature 指令设置为 Off

    文档、示例代码和应用程序,以及教程等其他文件可能会构成威胁。

    注意: 示例文件列表可能会随软件版本而变化。

    请移除以下示例代码和文档项:

    • <install-Dir>/apache2/manual/*.*

    • <install-Dir>/apache2/conf/extra/*.*

    • <install-Dir>/apache2/cgi-bin/printenv

    • <install-Dir>/apache2/cgi-bin/test-cgi

    其中 <install-Dir> 是 Apache 的安装文件夹。

    为了帮助减少拒绝服务攻击,请指定超时。

    注意: 如果需要,请为每个服务器调整这些设置。

    执行以下操作:

    • Timeout 指令设置为 300 或更少。

    • KeepAlive 指令设置为 On

    • KeepAliveTimeout 设置为 15 或更少。

    CGI 脚本是 Web 服务器上利用最多的漏洞之一。

    使用以下方法在 Apache 中运行 CGI 脚本:

    • ScriptAlias-配置服务器以 CGI 脚本的形式读取目录中的所有内容。

    • OptionsAddHandlerSetHandler 指令的组合-使用 OptionsHandler 指令的组合时,将失去集中管理脚本的能力,从而在 Web 服务器上造成漏洞。我们建议使用 ScriptAlias 指令管理脚本。

    搜索以下未注释的指令:

    • SetHandler

    • AddHandler

    • Options

    对于 SetHandlerAddHandler 指令的所有实例,请向 Web 管理员查询以确定指令是否允许 CGI 脚本。

    如果 CGI 脚本被 SetHandlerAddHandler 使用,那么这是一个查找。

    对于正在使用 +ExecCGI 或 ExecCGI 的 Options 指令的所有实例,这是一个查找。

    如果发现 Options 指令带有 -ExecCGI,那么这不是一个查找。

    如果值不存在,那么除非 Options 语句设置为 None,否则这是一个查找。

    ScriptAlias 目录中找到脚本,然后添加适当的符号以禁用 ExecCGI,或者将 Options 指令设置为 None

    Options 指令配置特定目录中可用的 Web 服务器功能。

    FollowSymLinks 功能允许您使用符号名称引用文件或目录,从而在将符号链接到敏感数据时引发潜在的危险。

    includesNoOEXEC 功能启用服务器端包含,但禁用 exec 命令以帮助防止恶意软件的执行。

    Multiviews 功能可能会响应目录中不用于浏览的所有可用文件。

    如果 URL 映射到没有 DirectoryIndex (index.html) 的目录,则可能会返回不用于浏览的目录列表。

    将所有 Options 指令分别设置为以下内容:

    • -FollowSymLinks

    • -includes-includesNOEXEC+includesNOEXEC

    • -MultiViews

    • -indexes

    注意: Options 指令设置为 None 将禁用所有额外功能。

    以下指令通过限制可接受数据的数量来减少缓冲区溢出和拒绝服务攻击:

    • LimitRequestBody 指令允许您设置 HTTP 请求消息正文的允许大小限制。

    • LimitRequestFields 指令允许您限制请求标头字段的数量。

    • LimitRequestFieldSize 指令允许您设置 HTTP 请求标头字段的允许大小限制。

    • LimitRequestLine 指令允许您设置客户端 HTTP 请求行的允许大小限制。

    注意: 如果出现错误,请为每个服务器调整这些值。

    执行下面的任何操作:

    • LimitRequestBody 指令设置为大于 0 的任何数值。

    • LimitRequestFields 指令设置为大于 0 的任何数值。

    • LimitRequestFieldSize 指令设置为 8190

    • LimitRequestLine 指令设置为 8190

    注意: 其中一些值是默认值,但必须明确设置。

    Web 服务器使用模块来获得其功能。将启用模块最小化至仅必需的模块可以减少脆弱点的数量。

    Apache 代理模块允许服务器充当 HTTP 和其他协议的正向或反向代理。

    要显示已加载模块的列表,请执行以下操作:

    1. 从您的计算机,打开命令提示符。

    2. 导览至 <install-Dir>/apache2/bin/ 文件夹,其中 <install-Dir> 是 Apache 的安装文件夹。

    3. 运行 httpd -M 命令。

    以下模块是必需的核心 Apache 模块:

    • core_module

    • win32_module

    • mpm_winnt_module

    • http_module

    • so_module

    扫描发送代理请求的 Web 服务器是一种常见的攻击。代理服务器可以匿名攻击其他服务器,或者将代理请求发送到受保护的网络。

    以下模块是 LPM 不需要的 Apache 代理模块:

    • proxy_module

    • proxy_ajp_module

    • proxy_balancer_module

    • proxy_ftp_module

    • proxy_http_module

    • proxy_connect_module

    禁用 UserDir 指令以防止访问用户主目录。

    userdir_module

    特定于 Web 服务器的内容可用于标识 Web 服务器的类型和版本。

    禁用对各种内容的访问,以帮助减少攻击。

    autoindex_module

    要禁用 LPM 不需要的模块,请在 httpd.conf 文件中,在适当的模块之前添加 #

    必须保护对 Web 服务器的根目录的访问。

    • Apache Directory 指令启用特定于目录的配置。创建一个默认的拒绝策略,该策略不允许访问操作系统的根目录。

    • 使用 Apache Options 指令为可能启用权限的根目录创建默认的最小选项策略。

    • 使用 Apache OverRide 指令让 .htaccess 文件指定可以更改的先前配置指令。

    注意: authz_core_module 使用 Require all denied 指令。

    将根 Directory 指令 (<Directory />) 分别设置为以下内容:

    • Order deny,allow

    • Deny from all

    • Options None

    • AllowOverride None

    如果这些根目录条目不存在,则添加它们。

    TRACE 方法不是必需的,必须禁用。

    TraceEnable 指令设置为 Off

    如果该指令不存在,则添加它。

    Apache Listen 指令指定 Apache Web 服务器侦听请求的 IP 地址和端口号。将服务器配置为只侦听预期的地址和端口号。

    为每个 Listen 指令指定 IP 地址和端口号。

    ScriptAlias 指令指定 Apache 服务器将哪些目录识别为包含脚本。如果指令使用的 URL-path 名称与实际的文件系统路径不同,则脚本源代码可能会公开。

    验证 ScriptAlias 指令的 URL-pathfile-path/directy-path 是否匹配。

    正确路径的示例

    ScriptAlias/cgi-bin/<install-Dir>/cgi-bin/,其中 <install-Dir> 是 Apache 的安装文件夹。

    错误路径的示例

    ScriptAlias/script-cgi-bin/<install-Dir>/cgi-bin/,其中 <install-Dir> 是 Apache 的安装文件夹。

    “HTTP 请求方法”(如 PUT 和 DELETE)会修改资源,而 LPM 的运行不需要这些方法。请禁用这些方法。

    对于除 root 之外的每个 Directory 指令,请设置以下内容:

    Order allow,deny

    <LimitExcept GET POST OPTIONS> Deny from all </LimitExcept>


  3. 保存文件。

  4. 重新启动 Apache 服务。

注意: 某些常见的安全相关配置,如 WebDAV、Apache mod_info 和 mod_status 模块,可能与 LPM 或 LDD 冲突。

支持的端口号和协议

确认防火墙允许以下端口号和协议:

组件

端口号

协议

配置

功能

数据库 (Firebird)

3050

TCP

应用程序服务器到数据库

数据库通信

8001

TCP

应用程序服务器和负载平衡器到数据库服务器

备份和还原代理

负载平衡器

443

TCP

打开

负载平衡器 HTTPS TLS 通信,包括“Lexmark LDD 管理控制台”

9700

TCP

打开

  • 向 e-Task 打印机提交配置文件

  • Web 适配器 (JMX)

9705

TCP

应用程序服务器到负载平衡器

Apache 代理

9780

TCP

打开

负载平衡器通信,包括“Lexmark LDD 管理控制台”

9783

TCP

打开

负载平衡器 HTTPS TLS 通信,包括“Lexmark LDD 管理控制台”

服务器

4111

TCP

应用程序服务器到应用程序服务器

JMX

5111

TCP

应用程序服务器到应用程序服务器

RMI

8009

TCP

负载平衡器到 Tomcat

AJP 和 Tomcat 连接器(负载平衡器工作器)

9743

TCP

打开

从打印机或客户端软件向服务器(包括“Lexmark LDD 管理控制台”)提交 HTTPS TLS 配置文件作业

9788

TCP

打开

从打印机或客户端软件向服务器(包括“Lexmark LDD 管理控制台”)提交配置文件作业

打印机

79

TCP

Finger

161

UDP

  • SNMP

  • 打印机发现

5000

TCP

  • 策略更新

  • ObjectStore 纯文本通信

5353

UDP

多播 DNS

6000

UDP

  • 打印机发现

  • 使用 XML 协议进行 ObjectStore 通信

6100

UDP

  • 打印机发现

  • 策略更新

  • Lexmark 安全传输 (LST) 加密数据

6110

TCP

  • 打印机发现

  • 策略更新

  • LST 身份验证和协商

9100

TCP

  • 打印

  • 策略更新

9300

UDP

  • 打印机发现

  • NPA 协议 UDP 通信

9500

TCP

NPA 协议 TCP 通信

LPM

631

TCP

打开

IPP

5672

TCP

应用程序服务器到应用程序服务器

ActiveMQ

9780

TCP

打开

MFPAuth1

61614

TCP

应用程序服务器到应用程序服务器

ActiveMQ

61616

TCP

应用程序服务器到应用程序服务器


LDAP 和 LDAPS 的标准端口号

端口号

功能

389

LDAP 通信

636

LDAPS 通信


使用 LPM REST API 进行身份验证

注意: 以下说明适用于“打印管理控制台”、移动身份验证和 Chrome 扩展身份验证。

使用令牌进行身份验证

为了保护资源,LPM REST API 令牌使用 JSON Web 令牌来验证访问声明。根据身份验证期间提供的凭证,REST 服务可能会发布管理员或用户令牌。

注意: 用户令牌具有有限的资源访问权限。

默认情况下,令牌有效期为 30 分钟。要更新到期时间,请执行以下操作:

  1. 从您的计算机,导览至 <install-Dir>\Lexmark\Solutions\apps\idm\WEB-INF\classes 文件夹,其中 <install-Dir> 是 LDD 的安装文件夹。

  2. 使用文本编辑器,打开 idm-production-config.properties 文件。

  3. 指定 idm.token.expirationInMinutes 的值。

  4. 保存文件。

使用 hashid 进行身份验证

为了解决“不安全的直接对象引用”漏洞,LPM REST API 服务使用 hashid 屏蔽所有资源 ID。此方法防止接口将 dbid 引用公开给外部实体。

hashid 算法依靠关键短语或盐来计算和生成 hashid 值。更改加密盐值会生成不同的 hashid 计算。

要更改默认的加密盐值,请执行以下操作:

  1. 从您的计算机,导览至 <install-Dir>\Lexmark\Solutions\apps\lpm\WEB-INF\classes 文件夹,其中 <install-Dir> 是 LDD 的安装文件夹。

  2. 使用文本编辑器,打开 app-production-config.properties 文件。

  3. 指定 hashids.salt 的值。

  4. 保存文件。

注意: 当使用企业设置时,确认所有应用程序服务器有相同的加密盐值。