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