我申请这个blog是为了督促自己,把自己平时的一些想法和思考结果保留下来。 本博客所有内容均为原创,如有转载请注明作者和出处

为监听设置密码

上一篇 / 下一篇  2008-05-06 23:25:10 / 个人分类:ORACLE

数据库的帐号需要密码进行保护,监听同样需要设置密码进行保护,否则就会留下安全隐患。

 

 

监听是操作系统上启动的进程,负责将用户的请求连接到Oracle的实例上。一旦监听被关闭,数据库服务器以外的用户将无法正常登陆数据库。

监听命令可以通过配置本地监听参数文件listener.ora来达到获取远端监听信息,甚至关闭远端监听的能力。

本地监听环境的设置如下:

# LISTENER.ORA Network Configuration File: E:\oracle\oracle920\network\admin\listener.oraITPUB个人空间.`s v1J1{Y
# Generated by Oracle configuration tools.

LISTENER =ITPUB个人空间Ph3U'C)S&T'Z
  (DESCRIPTION_LIST =ITPUB个人空间iMGEI
    (DESCRIPTION =
JeAx V}0      (ADDRESS_LIST =
GV7WzW R ?Bt1a)\0        (ADDRESS = (PROTOCOL = TCP)(HOST = ytk-thinkpad)(PORT = 1521))
qOe"} o Z-i0UO4`0      )
ay!Z"V-_ B2~]^ G-u0      (ADDRESS_LIST =
:g"G2{ Aq8l:FR3c h0        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))ITPUB个人空间&H;f\XQ0L;S*A2} }`1q
      )ITPUB个人空间'm%@a-RQ i/b:@
    )ITPUB个人空间Q4l\:S1A^*W/kz1e
  )

SID_LIST_LISTENER =
3k0Q1M;s%{Tl0  (SID_LIST =
p:a*ux\~m0    (SID_DESC =
V rtY)E.[9`*h0      (SID_NAME = PLSExtProc)
iY-_ p"C,SUa0      (ORACLE_HOME = E:\oracle\oracle920)ITPUB个人空间&k'j\/Mi*A|R2d
      (PROGRAM = extproc)ITPUB个人空间NB+w|`
    )
LR#l0Aj kf}:_!p0    (SID_DESC =ITPUB个人空间7m,\.a+K4b-m1FY
      (GLOBAL_DBNAME = ytk92.ytk_thinkpad)
C$dn;I \?9M5H0      (ORACLE_HOME = E:\oracle\oracle920)ITPUB个人空间9u"HU.W3p8W4w
      (SID_NAME = ytk92)
-Ue)IVC9lZ8n9re N0    )
iXpb;w(WL0  )

ITPUB个人空间zX&K }*IO
LISTENER1 =ITPUB个人空间,_H5plb#Ek+m
  (DESCRIPTION_LIST =
f8Ej W"\)EO0    (DESCRIPTION =ITPUB个人空间3XZc7fv B
      (ADDRESS_LIST =ITPUB个人空间O~Vc!_ Um$K
        (ADDRESS = (PROTOCOL = TCP)(HOST = 172.25.1.100)(PORT = 1521))ITPUB个人空间 ^x/^bY;Fwx&|kR
      )ITPUB个人空间l0VhWK
      (ADDRESS_LIST =
n2E,l l!tk|.t0        (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
0p ]`9QN,bQ0      )ITPUB个人空间"~o+[q ?J|@
    )ITPUB个人空间q)G l/IHn fh
  )

其中LISTENER1的设置是手工添加的远端配置,目前远端监听已经启动,下面就可以通过指定LISTENER1来获取远端监听的状态,甚至关闭远端监听:

E:\>ipconfig

Windows IP Configuration

ITPUB个人空间qp}%r@^!s1|
Ethernet adapter
无线网络连接2:

        Connection-specific DNS Suffix  . :ITPUB个人空间 ^JTr0Ls
        IP Address. . . . . . . . . . . . : 172.25.13.100ITPUB个人空间*@'L,d)pc&S6]vNi9T^
        Subnet Mask . . . . . . . . . . . : 255.255.0.0ITPUB个人空间L!XP ??$Z?a Ro
        Default Gateway . . . . . . . . . : 172.25.13.1

Ethernet adapter本地连接:

       MediaState. . . . . . . . . . . : Media disconnected

Ethernet adapter本地连接2:

       MediaState. . . . . . . . . . . : Media disconnected

E:\>%ORACLE_HOME%/bin/lsnrctl

LSNRCTL for 32-bit Windows: Version9.2.0.4.0 - Production on 07-5-2008 00:00ITPUB个人空间Z9R8t"^f5`
:44

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> status listener1
!i:j6J_ P%b#g,C0
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))
t5m E.A0MPXY&N0LISTENER
STATUSITPUB个人空间)]b0RNp#rQ
------------------------ITPUB个人空间1KV|V(q0ap.C
别名
                      LISTENERITPUB个人空间|!a^ E C;L
版本
                      TNSLSNR for 32-bit Windows: Version9.2.0.4.0 - ProducITPUB个人空间` sl~"D&X7R
tion
6V-O#x:n(W+L/f{0
启动日期                  07-5
-2008 00:01:30ITPUB个人空间^0B3CVq{ ^OKV
正常运行时间              00小时349
ITPUB个人空间6_T'Y\hI1}#c~
跟踪级别                  off
xN&ldM0H@{$G0
安全性
                    OFF
%j Iy4|Y.p5{ zk? }0SNMP                      OFFITPUB个人空间]QevK0g{b/q
监听器参数文件
          F:\oracle\ora92\network\admin\listener.ora
oj+`0])at;z9g `0
监听器日志文件
          F:\oracle\ora92\network\log\listener.log
tH7l)w:Y&x?1G0
监听端点概要
...ITPUB个人空间8Z2R|F$Th8TXey
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))ITPUB个人空间6d$P"Y6B&B'^9tf0[
服务摘要
..
YP0g(P.T!x F0
服务"PLSExtProc"包含1个例程。

}uSL(N0 
例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间4hK K:k&P7j[Q
服务"dicsys.YANGTINGKUN"包含1个例程。

@ \ j"g"j}t0 
例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...
5\[.f1KZ6D YcO l R0
服务"test.yangtingkun"包含1个例程。

oZ#v&q]/x5?N/{A)?0 
例程"test",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间v gOt`1Z#E&n4G
服务"test1"包含1个例程。
ITPUB个人空间6}a!I?cbJC
 
例程"test1",状态UNKNOWN,包含此服务的1个处理程序...
N"^8gfT |0
服务"test2"包含1个例程。

W y}F;FPlu0 
例程"test2",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间4g]r:Q,g;pg
服务"test3"包含1个例程。
ITPUB个人空间2|Y ?(q)w/G
 
例程"test3",状态UNKNOWN,包含此服务的1个处理程序...
%_G_v N-U%I$r0
服务"test4"包含1个例程。

GO"r3w+@{[p0 
例程"test4",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间&g%Iv5B.P4V!O u:lN
服务"test5"包含1个例程。
ITPUB个人空间a1YlM[/H
 
例程"test5",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间J;B RX$N#\s
服务"testst"包含1个例程。

+ob0I2Aul~(E0 
例程"testst",状态UNKNOWN,包含此服务的1个处理程序...
[G/{lci&sc0
服务"yangtk.yangtingkun"包含1个例程。

8xe:]i%F/o0 
例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间{,Q~YL|
命令执行成功

8vyN ^3S"u4x0LSNRCTL> stop listener1ITPUB个人空间G2m6bfR
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))
/D CE2v:d3d0
命令执行成功

通过这个例子可以看到,只需要知道远端数据库的地址和监听端口,就可以通过配置来关闭远端的监听。这存在很大的安全隐患。

解决的方法是为监听设置密码,方法如下:

F:\>lsnrctl

LSNRCTL for 32-bit Windows: Version9.2.0.4.0 - Production on 07-5-2008 00:15ITPUB个人空间 K }NEypAR
:36

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> startITPUB个人空间'@#t p$M R/?5AGb
启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version9.2.0.4.0 - ProductionITPUB个人空间#KO EO;l6z
系统参数文件为F:\oracle\ora92\network\admin\listener.ora
G,Zx$ovC/[;Ur0
写入F:\oracle\ora92\network\log\listener.log的日志信息
ITPUB个人空间s^XNU[H
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))ITPUB个人空间[z~f3r.wR
LISTENER
STATUS
y0N-Z ^^ x0------------------------
5I"S"L1mF0
别名
                      LISTENER
7t9UbCe\R @0
版本
                      TNSLSNR for 32-bit Windows: Version9.2.0.4.0 - ProducITPUB个人空间j0H:f o fU&L[m
tion
;]EO)tw-L-P XU0
启动日期                  07-5
-2008 00:15:38ITPUB个人空间ID(u]+cSt
正常运行时间              00小时00

a-p8s$BdM%Y8z0
跟踪级别                  off
'F{ QgD`p@0o0
安全性
                    OFF
%g``mA)J[\Q0SNMP                      OFFITPUB个人空间^+tJ lY
监听器参数文件
          F:\oracle\ora92\network\admin\listener.ora
nR1@+icm9HqM0
监听器日志文件
          F:\oracle\ora92\network\log\listener.logITPUB个人空间f`$hetSw
监听端点概要
...ITPUB个人空间W| E9k)B[~b0i4K1LV
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))ITPUB个人空间/g3J|b%R3~
服务摘要
..
Y&sV/Dz}*X0
服务"PLSExtProc"包含1个例程。
ITPUB个人空间({/`{w{"M$l1Kwu
 
例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...
hq D%C[&GJ'i0
服务"dicsys.YANGTINGKUN"包含1个例程。
ITPUB个人空间N#E|3KIS {9w1s3p
 
例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...
?i7j!F d#^ h'q+Sa*e0
服务"test.yangtingkun"包含1个例程。
ITPUB个人空间o2}BJY r K
 
例程"test",状态UNKNOWN,包含此服务的1个处理程序...
+Q x0[k'x3s!Z0
服务"test1"包含1个例程。

K#k;N8|#U-d0 
例程"test1",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间 X'PG W&bJ
服务"test2"包含1个例程。
ITPUB个人空间}:F0h8Jjz:X!?+U0h
 
例程"test2",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间(CC:n6W$hCy
服务"test3"包含1个例程。

pQH'L(V#Yt D0 
例程"test3",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间)F1|'p*MC e&f\
服务"test4"包含1个例程。

]s5s'D sml*F k;LK0 
例程"test4",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间.qo RZ!x;JUl}
服务"test5"包含1个例程。

/|7v U"` j7_0 
例程"test5",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间n9}U%x!h
服务"testst"包含1个例程。
ITPUB个人空间A;K P%g2N K
 
例程"testst",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间)ujg3GA
服务"yangtk.yangtingkun"包含1个例程。
ITPUB个人空间L!}8sg)Flb
 
例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间]&K$G)d&Q7uN
命令执行成功
ITPUB个人空间kd9V9J1Phi1nL0c
LSNRCTL> change_passwordITPUB个人空间)w.xfmG8Mj
Old password:
$A/tX*M4WG_0New password:
(g jE/V ot(mr SC0Reenter new password:
qI|9F J5MW;i0
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))ITPUB个人空间 N+R7m^L9pW;C
LISTENER
的口令已更改
ITPUB个人空间7}%c ]0d#q` fl
命令执行成功
J!{g9qw0LSNRCTL> set passwordITPUB个人空间c~4O/}|
Password:ITPUB个人空间+ZFh$P6Z;i
命令执行成功
[6C.O+o u}/Rr0LSNRCTL> save_config
w:vJC O0
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))
pUb.P~r3v\,v0
保存的LISTENER配置参数。
ITPUB个人空间'H-j9? SWs.L fI
监听器参数文件          F:\oracle\ora92\network\admin\listener.oraITPUB个人空间IN(t,m2y$l*|zE"YL
旧的参数文件
F:\oracle\ora92\network\admin\listener.bak
?iS VFJ0
命令执行成功

由于设置了密码,以后无论是本地还是远端执行类似LSNRCTL STOP或者SAVE_CONFIG等操作都会提示输入密码。

以后本地的关闭监听操作为:

LSNRCTL> exit

F:\>lsnrctl

LSNRCTL for 32-bit Windows: Version9.2.0.4.0 - Production on 07-5-2008 00:19ITPUB个人空间m(O!YF?%a:a B i
:55

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

欢迎来到LSNRCTL,请键入"help"以获得信息。

LSNRCTL> stopITPUB个人空间&o#YH"f4ZJ R8T8gV
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))ITPUB个人空间(ZvnJ ks!g C3U'cM
TNS-01169:
监听器尚未识别口令
ITPUB个人空间i C_KSjL(v;\%s+u
LSNRCTL> set password
!U#|a&Q/~#JG%p m0Password:
(@uc*D-B/am5A5p0
命令执行成功
R2jWvV0LSNRCTL> stop
uh:h"hk q*Z0
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))ITPUB个人空间.W-T6@)t9q%w
命令执行成功

W:@*b U.R B9IF;nO0LSNRCTL> start
:J5CG`s i~*izo5i#A0
启动tnslsnr:请稍候...

TNSLSNR for 32-bit Windows: Version9.2.0.4.0 - ProductionITPUB个人空间5kw&N2?.s Y
系统参数文件为F:\oracle\ora92\network\admin\listener.oraITPUB个人空间3m]x9Tv3iw
写入F:\oracle\ora92\network\log\listener.log的日志信息

PQ2^J,l&x;A%_0
监听:(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))

正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=yangtk)(PORT=1521)))
uk(V9l0f7`7M0LISTENER
STATUS
:^lk/E Sq'n3RP a'oP0------------------------ITPUB个人空间:~*^}~E[ ~.b#_
别名
                      LISTENERITPUB个人空间$\RI$H }!c3z
版本
                      TNSLSNR for 32-bit Windows: Version9.2.0.4.0 - ProducITPUB个人空间(b r2OR [5V {
tionITPUB个人空间i(D&gf5A[CJF
启动日期                  07-5
-2008 00:20:20ITPUB个人空间&HK2te%j(`AK[H
正常运行时间              00小时00

"m(Vj_&wq0
跟踪级别                  off
9nQcLb i0
安全性
                    ON
;n7H a |cDo1~,Y0SNMP                      OFFITPUB个人空间Qm Xu"M I J
监听器参数文件
          F:\oracle\ora92\network\admin\listener.oraITPUB个人空间;y/l3B A:g.I(z
监听器日志文件
          F:\oracle\ora92\network\log\listener.logITPUB个人空间5N&FF R)?OVc
监听端点概要
...
+]}k,xU a0  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=yangtk)(PORT=1521)))
6aJ:j$f9V h q` dt0
服务摘要
..
7ZaB` n)o8S x0
服务"PLSExtProc"包含1个例程。

nf6X9s%d$u0 
例程"PLSExtProc",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间6OLQ;q/]d%m{
服务"dicsys.YANGTINGKUN"包含1个例程。

7Z5hu*n/AP0 
例程"DICSYS",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间$C6z}|'r6N P
服务"test.yangtingkun"包含1个例程。

2C*a0`!T4p~y0 
例程"test",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间 X b5q7o8aYi
服务"test1"包含1个例程。
ITPUB个人空间 C+Sxr)dkY'Z
 
例程"test1",状态UNKNOWN,包含此服务的1个处理程序...
5\:wbf+K+f}+Y0
服务"test2"包含1个例程。
ITPUB个人空间T e%M4@M n a$V
 
例程"test2",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间5|x)M2hC Bc
服务"test3"包含1个例程。
ITPUB个人空间%y)F;Sa(zo
 
例程"test3",状态UNKNOWN,包含此服务的1个处理程序...
*a+Th!vH1H(CG'x0
服务"test4"包含1个例程。
ITPUB个人空间k/^DA2W5N
 
例程"test4",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间9YFwP5R
服务"test5"包含1个例程。

,|%_G AT3hw_v0 
例程"test5",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间|P-D NK;XICD
服务"testst"包含1个例程。
ITPUB个人空间 lZ.Wh3|Ez C
 
例程"testst",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间w-h`.^!FbC'XR X-a
服务"yangtk.yangtingkun"包含1个例程。

|d[!_W jq|0 
例程"yangtk",状态UNKNOWN,包含此服务的1个处理程序...ITPUB个人空间5kS0B:dw1kK]1T6p)|.q
命令执行成功

这时远端尝试关闭监听就会报错并提示输入密码:

LSNRCTL> stop listener1ITPUB个人空间-Q$I@ p@[o+D)_
正在连接到(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.25.1.100)(PORT=1521)))ITPUB个人空间+e$ki yxX)p#d
TNS-01169:
监听器尚未识别口令

通过设置监听的密码,提高了系统的安全性。

10g开始,Oracle增加了监听程序的安全性,即使不设置密码,也没有办法从远端关闭监听。

 


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

Open Toolbar