本部分概述了安全安装和配置的规划和实现过程,并介绍了 ACSLS 的建议部署拓扑。
要更好地了解安全需求,必须回答以下问题:
保护 ACSLS 和必需的基础结构组件时,请遵循以下过程以确保 ACSLS 在进行更改后可以继续工作:
安装 ACSLS。
检验 ACSLS 是否可正常工作。包括配置和审计磁带库、挂载和卸载磁带、装入和弹出磁带以及备份和恢复数据库。
实施更改以提高安全性。
检验 ACSLS 是否仍可正常工作。
本部分介绍了部署 ACSLS 以保护 Internet 访问的建议。
ACSLS 及其支持的磁带库应部署在企业防火墙后面。如果远程工作人员需要登录到 ACSLS 服务器,他们可以通过 VPN 进行访问。
注: 如果具有基于 IPv4 的边缘防火墙,该防火墙应配置为删除所有出站 IPv4 协议 41 数据包和 UDP 端口 3544 数据包,以防止 Internet 主机使用任何 IPv6-over-IPv4 隧道通信访问内部主机。 |
如果通过防火墙将使用 ACSLS 来挂载磁带和管理磁带库的客户机应用程序与 ACSLS 隔开,我们建议启用防火墙安全选项。即使未通过防火墙将客户机应用程序与 ACSLS 隔开,实施防火墙安全选项也可提供附加的 ACSLS 安全性(通过限制用于在 ACSLS 及其客户机应用程序之间通信的端口),如下所示。因此,CSI_FIREWALL_SECURE 静态变量在 ACSLS 8.1 和更高发行版中默认为 TRUE。
有关详细信息,请参见《ACSLS Administrator’s Guide》中的 "Firewall Security Option" 附录。
ACSLS 服务器上可使用以下端口。确保将任何防火墙配置为允许与这些端口进行通信。这包括由 Solaris 上的 ipfilter 或 Linux 上的 iptables 实施的防火墙。
22 双向端口-用于 ssh 访问。
111 端口映射器,除非已禁用端口映射器。
115 端口,用于 SFTP(安全文件传输协议)。
161 默认端口,用于 ACSLS SNMP 代理-get/set/walk。
162 默认端口,用于 ACSLS SNMP 代理-陷阱。
注: ACSLS SNMP 代理使用的端口可由以下命令进行配置:AcslsAgtdSnmpConf [ -p port ] [-t trap port ] [-d] 。 -d 选项用于显示当前设置。 更改端口设置后,必须使用命令 agentRegister 重新启动代理。 |
5432 默认端口,用于从 ACSLS 到 PostgreSQL 数据库的内部通信(acsss 用户 ID 对应的 PGPORT 环境变量)。
如果已获取端口 5432,则将使用下一个可用的较高端口号。
注: 端口 5432 仅需本地主机 (127.0.0.1) 访问。 |
7001 和 7002-由 WebLogic 和 ACSLS GUI 使用。
30031 或 ACSLS CSI 的侦听端口,由 CSI_INET_PORT 设置。
50003 端口用于从 ACSLS GUI 和 Java 组件到旧版 ACSLS 处理的内部通信。此端口不可配置。
要让客户机应用程序通过 ACSAPI 与 ACSLS 进行通信,必须开启以下端口:
客户机应用程序必须能够与 ACSLS CSI 的侦听端口进行通信。该端口默认为 30031,由 CSI_INET_PORT 静态变量进行设置。
您可以从 Unix shell 中使用以下命令来搜索哪些端口正由 ACSLS 用来侦听来自 ACSAPI 客户机的请求:
rpcinfo -p | egrep "300031 | 536871166"
显示的最后一个字段中将列出端口 ID。
ACSAPI 客户机(例如,NetBackup 或 SAM-QFS 服务器)可使用 SSI_INET_PORT 环境变量设置其固定传入端口。指定 1024-65535 范围内的端口(端口 50001 和 50004 除外)。ACSLS 服务器必须能够与此端口通信。
注: 在 ACSAPI 客户机服务器上,端口 50001 和 50004 用于 AF_INET 域 IPC 与小型事件记录程序的通信,以及从客户机应用程序到 SSI 的通信。 |
有关客户机应用程序与 ACSLS 之间通信的更多详细信息,请参见《ACSLS Administrator’s Guide》中的 "Firewall Security Option" 附录。
SL8500 或 SL3000 磁带库上必须开启的端口:
ACSLS 在 SL8500 或 SL3000 磁带库的 2A 和 2B 以太网连接上与这些端口进行通信。如果从 ACSLS 到这些端口的通信被阻止,则 ACSLS 将无法管理磁带库。
50001-用于 ACSLS 和磁带库之间的所有正常通信
50002-供 ACSLS HA 用来确定备用 HA 节点是否能够在故障转移到备用节点前与磁带库进行通信
除了外部防火墙,还可以通过 Solaris 上的 ipfilter 或 Linux 上的 iptables 在 ACSLS 服务器上实施防火墙保护。下面介绍如何管理这些在 ACSLS 服务器上运行的防火墙。
管理 Solaris 上的 ipfilter:
有关详细信息,请参阅 ipf 和 ipfilter 的手册页。
ipfilter 防火墙由 "root" 使用以下命令启用(禁用):
svcadm enable ipfilter (svcadm disable ipfilter)
了解 ipfilter 的当前状态:
svcs ipfilter
以下文件中定义了防火墙策略:/etc/ipf/ipf.conf
要允许在本地主机上的组件之间(例如,ACSLS 和 WebLogic 之间或 GUI 和 ACSLS 数据库之间)自由通信,请包含如下语句:
pass in quick from 127.0.0.1 to 127.0.0.1
或
pass in quick from 127.0.0.1 to all
需要定义策略以允许访问 ACSLS 所需的所有端口。例如,要包含允许基于 Web 的远程浏览器访问 ACSLS GUI 的策略,需要开启端口 7001 和 7002。
pass in quick from any to any port = 7001
pass in quick from any to any port = 7002
在搜索 ACSLS 使用哪些端口来侦听来自 ACSAPI 客户机的请求之后,为这些端口中的每个端口添加 "pass in quick" 语句。
可能需要为 RPC 端口映射器端口 111 包含 "pass in quick" 语句。
建议规则集中的最后一条语句 "block in from any" 指出,除非先前的语句中特别允许,否则不应当有通往主机的通信。
管理 Linux 上的 iptables:
iptables 防火墙由 "root" 使用以下命令启用(禁用):
service iptables start (service iptables stop)
检查 iptables 的状态:
service iptables status
iptables 对应的策略文件是 /etc/sysconfig/iptables:
需要定义策略以允许访问 ACSLS 所需的所有端口。例如,要包含允许通过 http/https 远程访问 ACSLS GUI 的策略,应该使用类似以下的语句更新该文件,以包含端口 7001 和 7002 的例外情况:
-A input -p tcp --dport 7001 -j ACCEPT
-A input -p tcp --dport 7002 -j ACCEPT
在搜索 ACSLS 使用哪些端口来侦听来自 ACSAPI 客户机的请求之后,需要将这些端口中的每个端口的例外情况添加到 iptables 策略文件。可能需要为 RPC 端口映射器端口 111 包含例外情况语句。
本部分介绍如何安全地安装和配置 Solaris。
建议包括:
禁用 telnet 和 rlogin。改用 ssh。还要禁用 ftp,改用 sftp。
通过以 root 身份发出以下命令来禁用 telnet、rlogin 和 ftp 服务。
查看所有服务:
svcs
禁用 telnet、rlogin 和 ftp:
svcadm disable telnet
svcadm disable rlogin
svcadm disable ftp
请勿禁用 ssh。您想要用户使用 ssh 而不是 telnet 或 rlogin 远程登录到 ACSLS。同样,请勿禁用 sftp。
ACSLS 需要 rpc-bind。请勿禁用它。
如果使用 "Secure by Default" 选项安装了 Solaris,则需要更改 rpc-bind 的网络配置属性以允许 ACSAPI 客户机将请求发送到 ACSLS。
有关详细信息,请参阅 ACSLS 安装手册的 "Installing ACSLS on Solaris" 一章中的 "Installing Solaris" 一节。
需要开启 ACSLS 服务器上的一些以太网端口,才能与 ACSLS 进行通信。客户机应用程序使用特定的以太网端口与 ACSLS 进行通信,而 ACSLS 与磁带库上的特定端口进行通信。有关需要用于供 ACSLS 通信的端口,请参见用于 ACSLS 通信的以太网端口。在 ACSLS 服务器上,请确保将 ipfilter 配置为允许与 ACSLS 所用的端口进行通信。
确定 Solaris 审计策略。《Oracle Solaris 管理:安全服务》中的“在 Oracle Solaris 中审计”部分可帮助您规划要审计的事件、审计日志应保存的位置以及如何查看日志。
安全地安装和配置 Linux 的建议:
确保未安装 telnet 和 rlogin 或禁用 telnet 和 rlogin。改用 ssh。
同样,请确保未安装 ftp 或禁用 ftp,并改用 sftp。
要查看所有服务,请以 root 身份登录并运行以下命令:
service –-status-all
要永久删除服务,请使用:
svccfg delete -f
service-name
请勿禁用 ssh。您想要用户使用 ssh 而不是 telnet 或 rlogin 远程登录到 ACSLS。同样,请勿禁用 sftp。
必须启用网络服务(特别是 rpcbind),以便允许 ACSLS 客户机通信。
在 Linux 上启动 rpc 时,请使用 –i 标志。
需要开启 ACSLS 服务器上的一些以太网端口,才能与 ACSLS 进行通信。客户机应用程序使用特定的以太网端口与 ACSLS 进行通信,而 ACSLS 与磁带库上的特定端口进行通信。有关需要用于供 ACSLS 通信的端口,请参见用于 ACSLS 通信的以太网端口。在 ACSLS 服务器上,请确保将 iptables 配置为允许与 ACSLS 所用的端口进行通信。
确定 Linux 审计策略。《Oracle Linux: Security Guide for Release 6》中的 "Configuring and Using Auditing" 部分可帮助您规划要审计的事件、审计日志应保存的位置以及如何查看日志。
用于审计 Linux 安全性的有用日志和命令包括:
以 root 身份查看 var/log/secure 以了解登录尝试和其他访问消息的历史记录。
参数 'last' | more
可提供登录用户的历史记录。
/var/log/audit/audit.log.[0-9] 保存了 SE Linux 拒绝的访问尝试的日志。必须成为 root 用户才能查看这些内容。
ACSLS 8.3 设计为在可选的安全性增强型 Linux 环境中运行。SELinux 提供对文件、目录和其他系统资源的访问控制,超越了 Unix 环境中作为标准的传统保护。除了 owner-group-public 权限访问,SELinux 还包括基于用户角色、域和上下文的访问控制。对所有系统资源实施访问控制的代理是 Linux 内核。
Linux 系统上的 root 用户可以通过 setenforce
命令将实施状态设置为开启或关闭。
setenforce [Enforcing | Permissive | 1 | 0 ]
使用 Enforcing
或 1 将 SELinux 置于实施模式。使用 Permissive
或 0 将 SELinux 置于许可模式
要查看当前的系统实施状态,请使用命令 getenforce
。
安装 ACSLS 时,内核中会装入三个 SELinux 策略模块:allowPostgr、acsdb 和 acsdb1。SELinux 实施方案有效时,这些模块提供 ACSLS 访问自身数据库和其他系统资源所需的定义和实施方案例外情况。安装这些模块后,您应当能够运行常规 ACSLS 操作,包括数据库操作(例如 bdb.acsss、rdb.acsss、db_export.sh 和 db_import.sh),无需禁用 SELinux 实施方案。
有关更多信息,请参阅《StorageTek ACSLS 8.3 Administrator’s Guide》的 "Troubleshooting" 附录中有关 SELinux 的部分。
本部分说明如何安全地安装 ACSLS。
执行标准 ACSLS 安装可确保您具备所有必需的组件。
如果要从以前的 ACSLS 发行版迁移到较后的 ACSLS 发行版,请查看动态变量和静态变量的设置,了解是否要使用更多的安全选项,特别是有关防火墙安全选项。
ACSLS 通常将对 ACSLS 文件的访问仅限定于 acsls 组,其中包括 acsss、acssa、acsdb 和 root 用户 ID。某些数据库和诊断文件仅可由单个 acsls 用户 ID 访问。ACSLS 运行时采用的 umask 设置为 027。
ACSLS 文件不应设置为全局可读或全局可写。但是,限制默认安装设置以外的访问可能会造成 ACSLS 运行失败。
安装脚本建议客户必须在 /export/home/ACSSS 文件系统的三个可执行文件中设置 "root" 的有效用户 ID (setuid):
acsss
(该二进制文件必须以 "root" 特权运行,因为它用于启动和停止 ACSLS 应用程序所需的系统服务。)
db_command
(该二进制文件可启动和停止用于控制和维护 ACSLS 数据库的 PostgreSQL 数据库引擎。)
get_diags
(该二进制文件由客户调用以收集全面的系统诊断信息,服务支持调用的上下文中可能需要这些信息。)
使用 pkgadd 安装 ACSLS 期间,系统会提示客户:Do you want to install these as setuid/setgid files?
(您是否要安装这些文件使之成为 setuid/setgid 文件?)针对提示回答 y
,将允许 acsls 组中的用户运行这三个命令,即使实用程序执行某些要求 root 特权的系统操作也是如此。
ACSLS 8.1 和更高发行版使用 WebLogic 作为其 Web 服务器。WebLogic 随 ACSLS 一起安装。
有关保护 WebLogic 服务器以及 WebLogic 审计迹可能性的选项,请参阅《Oracle Fusion Middleware Securing Oracle WebLogic Server 11g Release 1 (10.3.5)》。
要使用 ACSLS GUI,您需要安装最新的 JRE 版本,并通过浏览器访问 ACSLS GUI。
确保在系统上安装了 Java Runtime Environment (JRE) 1.6 的最新版本,系统将使用 ACSLS GUI 访问 ACSLS。
注: ACSLS 8.3 需要 JRE 1.6 或 1.7。 |
打开浏览器,按照以下格式输入包含服务器主机名或 IP 地址的 URL:
https://myAcslsHostName.myDomainName:7002/SlimGUI/faces/Slim.jsp
或 https://127.99.99.99:7002/SlimGUI/faces/Slim.jsp
最好使用主机的全限定主机名或 IP 地址。如果 WebLogic 不能完全解析 URL,则一些页面(包括 ACSLS 帮助页面)可能不会正确显示。
如果同时使用 http 和端口 7001,则 WebLogic 将自动将您重新路由到端口 7002 上的 https。
由于 WebLogic 使用安全 https 协议,因此您的浏览器可能会向您发出警告,指出站点安全证书尚未注册,因而不可信。如果您确信该 URL 是本地 ACSLS 计算机,则可以放心地继续执行操作。此时,您应当看到登录屏幕。