因此,您应选择哪个方法来防止多余的客户端连接?下面我们将介绍一下这两个方法的优点和缺点。
- 节点验证在监听器级进行,因此将禁止所有用户连接 - 即使具有 DBA 角色的用户也不例外。而这可能并不是所需的。例如,如果您在台式机上安装了一个 DBA 工具并且您的台式机启用了 DHCP(每当该台式机连接到网络时将分配一个新的 IP),则无法将 IP 地址置于有效节点列表中;因此,您将无法连接。
- 节点验证需要重新启动监听器。监听器将在短时间内关闭,因此客户端将无法连接。尽管这可能算不上是问题,但您应该注意它。每当更改有效节点列表时,您必须要重新启动监听器。
- 如果要临时禁用节点验证,则应将 tcp.valid_node_checking=no 置于文件 sqlnet.ora 中并重新启动监听器。对于登录触发器而言,您所要做的就是禁用触发器。您可以在需要时重新启用它。
- 在节点验证中,可以将所有允许的客户端置于一行中,但只能置于一个不中断行中。如果该列表太长无法放在一行中,则您将无法使用该方法。而触发器方法几乎没有限制。您也可以使用另一个名为连接管理器的特性来限制长度超过一行的 IP 地址。
- 必须在节点验证中使用特定 IP 地址或主机名 - 不要使用“10.20.%.%”这样的通配符,因为它们表示子网 10.20 中的所有客户端。在触发器方法中,您可以使用通配符也可以使用连接管理器。
- 通过触发器方法,您可以构建一个复杂的跟踪系统,以针对所有尝试(成功或被拒绝)写入某个跟踪表。而节点验证中不存在这样的功能。
- 在触发器方法中,您可以根据 IP 以外的参数(如一天中的某个时间、用户连接等)控制访问。节点验证只读取 IP 地址。
- 注意,节点验证禁止监听器级的尝试;而数据库连接尚未尝试。因此,如果已经针对失败的尝试启用了审计,则它们将不被注册。
- 由于节点验证在监听器级别起作用,因此潜在的恶意攻击者甚至不会进入数据库,从而使拒绝服务攻击变得更困难。这对节点验证而言是一个巨大的好处。
您在考虑以上差别后应确定方法。通常情况下,如果您的目标只是禁止来自 IP 地址的连接,而不使用任何其他功能(如跟踪这些失败的尝试),则节点验证是一个快速、简单的方法。如果需要更复杂的功能,则应查看登录触发器。
如何知道要阻止哪些 IP 地址以及允许哪些 IP 地址?也许此假设太简单;实际上,客户机的列表将很长并很难攻击。在此处使用前面的调查将比较方便。注意,在第 2 阶段,您通过查看监听器日志捕获了用户连接源自的 IP 地址。在该步骤中,您一定已经生成了一个有效的客户端 IP 地址或主机名列表。该列表就是您需要知道的。
可能的影响 可能的影响可能比较严重;如果尚未执行您的操作,则可能阻止合法客户端。
操作计划
- 从第 2 阶段的第 1 步中,获得客户机的有效 IP 地址或主机名的列表。
- 确定要使用的方法 - 基于触发器或节点验证。
- 实施该计划。
- 密切监视几天,最好是整个周期(如一个月或一周),这对您的企业比较适合。
- 通过添加或删除过滤的节点微调该方法。
(编辑:ansiton)
|