由于跟踪级别为 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,重新加载监听程序。
1.8 调整清除权限
背景 普通用户需要执行其作业必不可少(不多不少)的权限。 但是,这种策略不太现实,您可能需要采用一种中间道路方法: 删除用户不需要的最强大的权限。
例如,CREATE ANY TABLE 就是一个强大的权限,它使用户可通过任意模式而不只是它自己的模式创建表。 用户几乎不需要该权限;您可以放心地收回该权限。 另一方面,QUERY REWRITE 之类允许用户会话重新写入查询以利用基于函数的索引或物化视图的权限则相对无害。
策略 首先,识别您认为无害的所有权限(CREATE TYPE、CREATE SESSION 等等)。 这里,我将 UNLIMITED TABLESPACE 包含在非清除权限内,但是您可能不这样认为。 set pages 50000
break on privilege skip 1
select privilege, grantee, admin_option
from dba_sys_privs
where privilege not in
(
/* list any other privilege here you don't find
"sweeping"
*/
'ALTER SESSION',
'QUERY REWRITE',
'CREATE DIMENSION',
'CREATE INDEXTYPE',
'CREATE LIBRARY',
'CREATE OPERATOR',
'CREATE PROCEDURE',
'CREATE SEQUENCE',
'CREATE SESSION',
'CREATE SNAPSHOT',
'CREATE SYNONYM',
'CREATE TABLE',
'CREATE TRIGGER',
'CREATE TYPE',
'CREATE USER',
'CREATE VIEW',
'UNLIMITED TABLESPACE'
)
and grantee not in
('SYS','SYSTEM','WKSYS','XDB',
'MDSYS','ORDPLUGINS','ODM','DBA')
/* Place all the user names you want to exclude */
order by privilege, grantee
/
(编辑:aniston)
|