oracle 没有密码,Oracle tnslsnr服务器没有被设置密码

转自:http://thoreau.iteye.com/blog/910123

oracle 的监听机制 是外部应用程序连接oracle的入口。用oracle提供的lsnrctl 程序进行管理。一般很多人在管理oracle的时候,往往忽略对listener 的安全管理:监听在端口1521(默认端口)上的oracle tnslsnr未设置口令保护!

这会存在这个安全隐患:远程的Oracle tnslsnr服务器没有被设置密码,一个攻击者可以利用这个问题随意关闭oracle tnslsnr服务器或者设置新的口令,这将影响合法用户的正常使用。攻击者也可以获取数据库的一些细节信息以发动进一步攻击。结合其他漏洞,攻击者甚至可以在目标系统上创建或者修改文件,进而入侵系统。

这里对关于oracle监听模块密码安全设置的几个方法进行说明:

1. 如何进行远程操作:

在远程机器上修改listerner.ora 文件,增加对异地oracle服务器的配置,例如:

ls_oratest =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.10)(PORT = 1521))

)

)

这里的HOST = 192.168.1.10 即是指明远程的oracle服务器。如果默认的,oracle服务器上没有设置

listener 的管理密码,则在远程机器上只要执行:

lsnrctl stop ls_oratest

即可停止192.168.1.10 服务器上的监听服务。

2.如何修改密码:

listener的密码策略对start无效,目的是防止恶意stop(start ,如果有在运行,则不成功,所以也就不需要保护了)

修改密码方法如下:

打开命令提示符窗口,输入lsnrctl进入lsnrctl监听器管理窗口:

LSNRCTL> set current_listener listener

目前的监听器为 listener

LSNRCTL> change_password

Old password:

New password:

Reenter new password:

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

LISTENER的口令已更改

命令执行成功

LSNRCTL> set password

Password:

命令执行成功

LSNRCTL> save_config

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

保存的LISTENER配置参数。

监听器参数文件          D:\oracle\network\admin\listener.ora

旧的参数文件D:\oracle\network\admin\listener.bak

命令执行成功

LSNRCTL>exit

说明:

a.执行save_config 需要再执行一次 set password 提供新密码,是因为在lsnrctl 管理工具中,是通过 set password 命令来设置当前环境的密码。设置了正确的密码后,就可以执行一些重要的操作,如save_config, stop 等。

b 设置密码后,密码记录在listerner.ora 文件 中,

比如:

#----ADDED BY TNSLSNR 18-2月 -2011 16:16:25---

PASSWORDS_LISTENER = 9EDA43949D6C51A1

#---------------------------------------------         形式为:PASSWORDS_监听名称 = 密码密文。如果忘记密码,可以去掉该行,则密码为空。

c.设置了密码后,远程机器如果需要stop监听的时候,则需要提供密码,否则操作失败。

3.如何管理设置密码后的监听进程:

a.如果是人工交互的操作,则只需在执行操作前面键入两个命令:

lsnrct<

set current_listener listener_oratest 

set password

Password:

stop

b.如果是脚本自动执行,则需要提供密码的密文(由isterner.ora 文件获得)

#!/bin/sh

lsnrctl << eof

set current_listener listener_oratest

set password AF15F0B512F2229A

stop

eof

Oracle LISTENER监听文件参数详解及Lsnrctl命令综述

# listener.ora Network Configuration File: F:\oracle\product\10.2.0\db_1\network\admin\listener.ora

# Generated by Oracle configuration tools.

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))

)

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))

)

)

)

SID_LIST_LISTENER =   (SID_LIST =     (SID_DESC =       (SID_NAME = PLSExtProc)       (ORACLE_HOME = D:\oracle)       (PROGRAM = extproc)     )   )以上是本人本机上的一个监听文件,下面就该监听文件的各个参数的作用作个描述: LISTENER       指出一个监听器定义的起始点。它实际上是正被定义的当前监听器的名称。默认的名称是LISTENER。 DESCRIPTION    描述每个监听位置 ADDRESS_LIST   含有与监听器正在监听的那些位置有关的地址信息 PROTOCOL       指定用于本监听位置的协议 HOST           保存监听器所驻留在的那台计算机的名称 PORT           含有监听器正在上面监听的地址 SID_LIST_LISTENER  定义配置监听器所针对的ORACLE服务的列表 SID_DESC       描述每个Oracel SID GLOBAL_DBNAME  标识全局数据库名称。本项应该与当前Oracle服务的init.ora文件中的SERVICE_NAMES项一致 ORACLE_HOME    给出服务器上Oracle可执行程序的位置 SID_NAME       含有用于本Oracle实例的Oracle SID的名称                       Lsnrctl命令综述   Lsnrctl命令用来管理Oracle监听器,是一个命令行界面。想调用这个命令行工具,在命令行键入lsnrctl即可。可以在LSNRCTL>提示符下键入help来显示这些命令的一份清单。 Services        列举出服务的一个汇总表及为每个协议服务处理程序所建立和拒绝的连接信息个数 Start listener  启动指定的监听器 Status listener 显示指定监听器的状态 Stop listener   关闭指定的监听器 Trace           打开监听器的跟踪特性 Version         显示Oracle Net软件与协议适配器的版本 Change_password 允许用户修改关闭监听器所需要的密码 Reload          重新读取listener.ora文件,但不关闭监听器。如果该文件发生了变化,重新刷新监听器。 Save_config     当从lsnrctl工具中对listener.ora文件进行了修改时,复制一个叫做listener.bak的listener.ora文件 Exit            退出lsnrctl实用工具 Quit             执行和exit相同的功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值