ArcGIS Enterprise 门户中随附用于扫描一些常见安全问题的 Python 脚本工具 portalScan.py。 该工具根据为门户配置安全的环境中的一些最佳做法来检查问题。 对多个条件或配置属性进行分析并将其划分为三个严重性级别:Critical、Important 和 Recommended。 这些标准的描述如下:
ID | 严重性 | 属性 | 描述 |
---|---|---|---|
PS01 | Critical | 代理限制 | 确定是否限制门户的代理功能。 默认情况下,门户代理服务器对所有 URL 开放。 为了减少潜在的拒绝服务 (DoS) 或服务器端请求伪造 (SSRF) 攻击,强烈建议您将门户的代理功能限制为已批准的 web 地址。 |
PS02 | Critical | 令牌请求 | 确定是否支持在查询参数中生成带有凭据的令牌请求。 如果支持,则生成令牌时,用户的凭据可作为 URL 的一部分提供,并通过浏览器历史记录或网络日志显示。 如果其他应用程序没有要求,建议禁用 。 |
PS03 | Important | 门户服务目录 | 确定是否可通过 web 浏览器访问门户服务目录。 为减少从 Web 搜索中找到、浏览或者通过 HTML 表单查询到您的门户项目、服务、Web 地图、群组和其他资源的可能性,应将其禁用。 |
PS04 | Important | 保护通信安全 | 确定是否仅通过 HTTPS 进行门户通信。 为了防止门户中的其他通信被截取,建议您配置门户和托管 Web Adaptor 的 Web 服务器以强制执行 SSL。 |
PS05 | Recommended | 内置帐户注册 | 确定用户是否可以单击门户注册页面上的创建帐户按钮来创建内置门户帐户。 如果正在使用企业帐户或者希望手动创建全部帐户,请禁用此选项。 |
PS06 | Recommended | 匿名访问 | 确定是否允许匿名访问。 为了防止任何用户在未预先提供门户凭据的情况下对内容进行访问,建议将门户配置为禁用匿名访问。 |
PS07 | 已推荐 | LDAP 标识存储 | 如果门户配置了 LDAP 标识存储库,则确定是否使用加密通信。 建议在 ldapURLForUsers 和 ldapURLForRoles 属性(这两个属性在用户存储和群组存储配置参数中列出)中使用 LDAPS。 |
PS08 | 已推荐 | 门户 SSL 证书 | 确定门户是否使用自签名证书。 为了帮助减少与门户通信的客户端的 Web 浏览器警告或其他意外行为,建议导入并使用已绑定到端口 7443 的 CA 签名 SSL 证书。 |
PS09 | 已推荐 | 跨域请求 | 确定跨域 (CORS) 请求是否不受限制。 为了降低未知应用程序访问共享门户项目的可能性,建议将跨域请求限制为仅在受信任域中托管的应用程序。 |
PS10 | 重要 | 联合服务器管理 URL | 确定您的联合服务器的管理员 URL 是否可通过门户访问,以及此 URL 中使用的 SSL 证书是否受信任。 如果不受信任或无法访问,许多门户功能将无法使用且操作将会失败。 |
PS11 | 已推荐 | 联合服务器服务 URL | 确定您的联合服务器的服务 URL 是否可通过门户访问,以及此 URL 中使用的 SSL 证书是否受信任。 如果不受信任或无法访问,门户仍将正常运行,但某些门户操作可能会失败。 |
PS12 | 已推荐 | 公共内容 | 如果门户已配置为成员无法公开共享内容,则会列出仍与所有人共享的所有项目。 |
portalScan.py 脚本位于 <Portal for ArcGIS installation location>\tools\security 目录中。 从命令行或 shell 运行脚本。 运行脚本时可以选择指定一个或多个参数。
portalScan.py 参数
下表将说明 portalScan.py 参数:
参数 | 描述 |
---|---|
-n | 安装了门户的计算机的完全限定域名(也就是说,gisportal.domain.com)。 默认为运行脚本的计算机的主机名。 |
-u | 管理员帐户的用户名。 |
-p | 管理员帐户的密码。 |
-o | 将用于保存安全扫描报告的目录。 默认目录与从中运行脚本的文件夹相同。 |
-t | 可以生成一个令牌并用其代替用户名和密码。 生成令牌时,应在 Webapp URL 字段中输入 portalScan。 提供令牌时,它会覆盖所提供的任何用户名或密码。 |
--ignoressl | 禁用 SSL 证书验证。 自 10.7.1 起,默认情况下,脚本将尝试验证所有 SSL 证书。 如果 Python 不信任证书的发行机构,则脚本将无法完成。 如果需要,可以指定此参数以忽略所有证书。 |
-h 或 -? | 输出一个列表,其中包含在运行脚本时可指定的参数。 |
示例:python portalScan.py -n portal.domain.com -u admin -p my.password -o C:\Temp
如果在未指定参数的情况下运行 portalScan.py 脚本,则系统将提示您手动输入或选择默认值。 如果您想要使用令牌,则在运行脚本时必须将其作为参数提供。
扫描可生成 HTML 格式的报告,此报告将列出在指定门户中发现的任何上述问题。
默认情况下,该报告将保存在从中运行脚本的同一个文件夹中并命名为 portalScanReport_[hostname]_[date].html。