在 Oracle 数据库 10g 中,该进程稍有不同。 请记住,在该版本中,监听程序设置为了仅 Oracle 软件所有者可执行,无需密码。 如果已经设置了密码,则其他用户可以在提供密码后执行监听程序。 下面是状态显示: STATUS of the LISTENER
------------------------
Alias LISTENER_ODSPDB02
Version TNSLSNR for HPUX:Version 10.1.0.4.0 - Production
Start Date 16-OCT-2005 05:58:35
Uptime 9 days 17 hr.44 min. 41 sec
Trace Level off
Security ON:Local OS Authentication
注意最后一行 ON: Local OS Authentication,它指示尚未设置密码。 如果设置了密码,该行显示为: Security ON: Password or Local OS Authentication
注意上面添加的子句 Password,它指示已经设置密码。
结论 在 Oracle 数据库 10g 和更高版本中,使用 OS 身份验证来验证用户,没有必要提供密码来启动或停止监听程序。 在 Oracle9i 和更低版本中,您需要提供密码,因此脚本需要密码。 操作计划
IF Oracle 数据库 10g 或更高版本 THEN |
|
删除所有用户的权限,所有者除外 |
ELSE |
|
删除所有用户的权限,所有者除外 设置操作监听程序的密码 |
END IF |
1.7 保护监听程序
背景 创建一个缓冲区溢出,即通过发送要执行的大型字符串使监听程序崩溃是常用的入侵策略。 另一种常用策略是使用 SET DISPLAYMODE VERBOSE 从 lsnrctl 实用工具查看各种组件。 在这种情况下,黑客可以通过在有漏洞的计算机上运行 lsnrctl 以管理目标服务器上的监听程序来操纵设置。下面就是一个例子: LSNRCTL> set trc_level support
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)))
LISTENER parameter "trc_level" set to support
The command completed successfully
LSNRCTL> set trc_directory /tmp
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)))
LISTENER parameter "trc_directory" set to /tmp
The command completed successfully
由于跟踪级别为 SUPPORT,因此监听程序会生成大量您可能不希望黑客知道的信息。 此外,因为目录 /tmp 中会写入跟踪文件,所以黑客也很容易查看到这些信息。 甚至不登录服务器也可以了解到所有这些信息。
策略 要保护监听程序,最好的方法是设置密码。 此外,也可以使用其他方法: 限制使用 lsnrctl 实用工具设置各种监听程序参数的能力。 在这种情况下,更改参数的唯一方式是在监听程序配置文件中设置参数,然后重新加载。 要设置这些限制,可以在 listener.ora 文件中添加以下行: ADMIN_RESTRICTIONS_LISTENER = ON
然后,重新启动监听程序。 现在,您将不再能够在 lsnrctl 提示中使用 SET 命令来更改值了。例如: LSNRCTL> set trc_directory /hacker_dir
Connecting to (ADDRESS=(PROTOCOL=IPC)(KEY=PROPRD1))
TNS-12508: TNS:listener could not resolve the COMMAND given
注意 TNS-12508。从现在开始,要更改值,必须在 listener.ora 中进行,然后使用重新加载命令。 LSNRCTL> reload
这对本系列讨论的所有 Oracle 版本都适用。
即使使用密码保护监听程序,您仍然应该使用该技术进一步限制黑客操纵监听程序的能力。 在 Oracle 数据库 10g 中尤其应该如此,因为在该软件中,Oracle 软件所有者不需要提供监听程序密码。
结论 结论可以忽略。 总之,很少有用户在线编辑参数;而是先编辑·listener.ora,然后重新加载监听程序。 因此,该更改根本不会影响他们。
但是,请注意,使用远程监听程序控制来管理另一台服务器上的监听程序将不再可能。 相反,您需要登录服务器在 listener.ora 中进行更改,然后重新加载监听程序,总之,这是最好的方法。 操作计划
- 在文件 listener.ora 中,添加参数 ADMIN_RESTRICTIONS_LISTENER = ON。
- 发出 lsnrctl reload,重新加载监听程序。
(编辑:anna sui)
|