实例讲解Oracle监听口令及监听器安全

   很多人都知道,Oracle的监听器一直存在着一个安全隐患,假如不设置安全措施,那么能够访问的用户就可以远程关闭监听器。

  相关示例:

  D:>lsnrctl stop eygle

  LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:02:40

  Copyright (c) 1991, 2006, Oracle. All rights reserved.

  正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521))

  (CONNECT_DATA=(SERVICE_NAME=eygle)))

  命令执行成功

  大家可以发现,此时缺省的监听器的日志还无法记录操作地址:

  No longer listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))

  28-NOV-2007 09:59:20 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=stop)

  (ARGUMENTS=64)(SERVICE=eygle)(VERSION=169870080)) * stop * 0

  为了更好的保证监听器的安全,大家最好为监听设置密码:

  [oracle@jumper log]$ lsnrctl

  LSNRCTL for Linux: Version 9.2.0.4.0 - Production on 28-NOV-2007 10:18:17

  Copyright (c) 1991, 2002, Oracle Corporation. All rights reserved.

  Welcome to LSNRCTL, type "help" for information.

  LSNRCTL> set current_listener listener

  Current Listener is listener

  LSNRCTL> change_password

  Old password:

  New password:

  Reenter new password:

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521)))

  Password changed for listener

  The command completed successfully

  LSNRCTL> set password

  Password:

  The command completed successfully

  LSNRCTL> save_config

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521)))

  Saved LISTENER configuration parameters.

  Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora

  Old Parameter File /opt/oracle/product/9.2.0/network/admin/listener.bak

  The command completed successfully

  在我们设置密码后,远程操作将会因缺失密码而出现失败:

  D:>lsnrctl stop eygle

  LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 28-11月-2007 10:22:57

  Copyright (c) 1991, 2006, Oracle. All rights reserved.

  正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)

  (PORT=1521))(CONNECT_DATA=(SERVICE_NAME=eygle)))

  TNS-01169: 监听程序尚未识别口令

  注意:此时在服务器端或客户端,都需要我们通过密码来起停监听器:

  LSNRCTL> set password

  Password:

  The command completed successfully

  LSNRCTL> stop

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521)))

  The command completed successfully

  LSNRCTL> start

  Starting /opt/oracle/product/9.2.0/bin/tnslsnr: please wait...

  TNSLSNR for Linux: Version 9.2.0.4.0 - Production

  System parameter file is /opt/oracle/product/9.2.0/network/admin/listener.ora

  Log messages written to /opt/oracle/product/9.2.0/network/log/listener.log

  Trace information written to /opt/oracle/product/9.2.0/network/trace/listener.trc

  Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))

  Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.16.33.11)(PORT=1521)))

  STATUS of the LISTENER

  ------------------------

  Alias LISTENER

  Version TNSLSNR for Linux: Version 9.2.0.4.0 - Production

  Start Date 28-NOV-2007 10:22:23

  Uptime 0 days 0 hr. 0 min. 0 sec

  Trace Level support

  Security ON

  SNMP OFF

  Listener Parameter File /opt/oracle/product/9.2.0/network/admin/listener.ora

  Listener Log File /opt/oracle/product/9.2.0/network/log/listener.log

  Listener Trace File /opt/oracle/product/9.2.0/network/trace/listener.trc

  Listening Endpoints Summary...

  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.16.33.11)(PORT=1521)))

  Services Summary...

  Service "eygle" has 1 instance(s).

  Instance "eygle", status UNKNOWN, has 1 handler(s) for this service...

  Service "julia" has 1 instance(s).

  Instance "eygle", status UNKNOWN, has 1 handler(s) for this service...

  The command completed successfully

  另外,ADMIN_RESTRICTIONS参数也是一个重要的安全选项,大家可以在 listener.ora 文件中设置 ADMIN_RESTRICTIONS_ 为 ON,此后所有在运行时对监听器的修改都将会被阻止,所有对监听器的修改都必须通过手工修改listener.ora文件才能顺利完成。

时间: 2024-07-28 17:54:33

实例讲解Oracle监听口令及监听器安全的相关文章

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理

AIX 日志清理 监听日志清理--过大的Oracle监听日志文件处理 Oracle监听器日志文件(通常叫做listener.log)是一个纯文本文件,它的大小是一直不断增长的,在一个生产Oracle服务器上,DBA会每日查看该文件,如检查监听器是否有异常停止,是否有恶意攻击连接等,当这个文件特别大的时候,打开和浏览文件内容时可能比较慢.这时可能会想到将当前的日志文件备份一下,然后重新创建一个新的日志文件,但Oracle的监听器在运行时是不允许对其日志文件做删除,重命名操作,于是只有停止监听器.重

ORACLE监听程序打开后自动关闭,一个很常见却很棘手的问题

问题描述 ORACLE监听程序打开后自动关闭,一个很常见却很棘手的问题 这个是打开监听时候报的错误. 命令行启动报错 现在主机名 listener.ora tnsnames.ora 问题出在哪里了? 我自己也在找办法解决,c币有限,只是希望遇到过类似问题的朋友分享下自己的经验.问题解决之后希望可以给大家带来便利

【Oracle】修改oracle监听端口

修改oracle 监听端口号,过程相对比较简单: 1 修改 listener.ora ,tnsnames.ora 文件中的端口号 2 重启监听 lsnrctl stop ,lsnrctl start 上面的过程是对于 监听名为默认的LISTENER 而言的,如果listener.oar文件中的监听名不是默认的,就重启时必须指定监听名.比如将端口号由1521改为1523 oracle@rac3:/opt/oracle/11.2.0/alifpre/network/admin>vi listener

服务-oracle监听关闭后无法启动了。

问题描述 oracle监听关闭后无法启动了. 我登录PL/SQL的时候提示无监听程序,我就把服务里面OracleOraDb10g_home1TNSListener关闭了,再启动就报错.网上一大堆乱七八糟的答案没一个有用的.有谁清楚怎么回事吗. 解决方案 监听文件有问题吧,怎么key=这打印出来的括号也没有匹配,看看listener.ora文件中写的格式是否有问题 解决方案二: 能不能直接把这个oracle服务给关闭了? 解决方案三: 如果你安装的是oracle完整版,可以用oracle自带的Ne

端口-oracle监听启动后停止

问题描述 oracle监听启动后停止 如图所示,之前好好的,昨天突然发现监听启动不了了,试过网上很多方法,包括修改listener.ora的IP,主机名:把监听改为手动后启动:命令启动监听弹出图二的错误:删除监听的时候会提示1521端口被占,但是换了其他端口全都提示被占.而且cmd命令显示1521没有被占.求高手帮忙! 解决方案 http://jingyan.baidu.com/article/d8072ac45d9860ec95cefdff.html

[20160418]修改oracle监听端口.txt

[20160418]修改oracle监听端口.txt --上午开发提出要修改oracle的监听端口,我以前测试遇到过一些问题: --链接: http://blog.itpub.net/267265/viewspace-758983/ -- 但是在11.2.0.4下遇到以前不一样的情况,时间太久了,测试在2013年做的,也许现在存在一些变化. 1.无静态注册监听: SYS@book> @ &r/ver1 PORT_STRING                    VERSION       

[20130422]修改oracle监听端口.txt

[20130422]修改oracle监听端口.txt 昨天朋友想尝试修改oracle的缺省监听端口,测试没有通过,而我在我的测试机器通过,通过对比监听文件,我发现其中的差异,问题出在动态注册以及静态注册的问题,把一些测试记录下来,便于理解动态以及静态注册监听的问题. 1.测试环境: SQL> @verBANNER--------------------------------------------------------------------------------Oracle Databa

Linux下修改Oracle监听地址

如果你的服务器换了ip怎么办? 如果你的服务器换了名字怎么办? 以前的小伙伴怎么办? 以前的老客户怎么办? 没关系,简单教你修改监听地址,老朋友随便找! 想要修改监听地址首先要找到两个文件,确定两样东西! 第一 你的主机名字? 第二 你的IP地址? 第三 你的listener.ora在哪里? 第四 你的tnsnames.ora在哪里? 原来的文件监听的是localhost,这个名字在/etc/hosts中会被映射成Ip地址127.0.0.1 lisenter.ora 目录在 /opt/oracl

oracle监听

原理 客户端向服务器端发送连接请求,监听器监听到客户端德连接请求 监听器监听到客户端德连接请求后,把客户端德连接请求交给数据库服务器处理 客户端和服务器端建立连接,连接建立后,服务器端和客户端直接通信,而不再需要监听器的参与. 监听器启动会读取listener.ora文件 LISTENER 是监听的名称(可以自定义) SID_NAME监听器监听的数据库实例名 PROTOCOL 是监听器监听的协议 HOST 指定数据库服务器的主机名或IP地址 PORT 监听器指定的端口号 [oracle@prod