Oracle护卫侦查侦听端口号(oracle 侦听端口)
Oracle护卫侦查侦听端口号
Oracle是世界上应用最广泛的关系型数据库之一,因而备受黑客们瞩目。Oracle数据库的安全性是构建Oracle应用的首要考虑因素之一。在Oracle的安全措施中,防范端口扫描和端口侦听攻击是至关重要的。端口扫描是黑客的入侵前期行为,而端口侦听是黑客成功入侵后的行为。本文将介绍如何利用Oracle的护卫(DBSNMP)侦查和侦听的端口号。
1.侦查端口号
Oracle护卫(DBSNMP)默认使用全局数据库名称和默认端口1521。为了确保Oracle数据库安全,应更改此默认设置。生成端口号后,应更改Oracle马达管理框架配置,以便使用生成的端口。
如果要侦查Oracle端口,请按照以下步骤进行操作:
1)使用Oracle的lsnrctl工具扫描运行的Oracle监听进程,并确定Oracle监听的端口号。
2)使用Oracle的netstat工具扫描当前运行的TCP端口,并确定Oracle的TCP端口号。
3)比较步骤1和步骤2,以确定Oracle监听的端口和实现数据库通信的端口。记录这些端口号。
4)使用Oracle工具更改Oracle马达管理框架配置,并重新启动Oracle服务。
下面是使用lsnrctl确定Oracle监听端口和使用netstat确定Oracle TCP端口的示例代码:
(1)使用lsnrctl工具扫描运行的Oracle监听进程,并确定Oracle监听的端口号:
[oracle@localhost Desktop]$ lsnrctl status
LSNRCTL for Linux: Version 10.1.0.2.0 – Production on 04-JUL-2007 17:23
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC)))
STATUS of the LISTENER
————————
Alias LISTENER
Version TNSLSNR for Linux: Version 10.1.0.2.0 – Production
Start Date 04-JUL-2007 17:20:55
Uptime 0 days 0 hr. 2 min. 50 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Default Service XE
Listener Parameter File /home/oracle/product/10.1.0/db_1/network/admin/listener.ora
Listener Log File /home/oracle/product/10.1.0/db_1/network/log/listener.log
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomn)(PORT=1521)))
The listener supports no services
The command completed successfully
由上述输出可以看出,Oracle监听使用了协议为TCP的1521端口。
(2)使用netstat工具扫描当前运行的TCP端口,并确定Oracle的TCP端口号:
[oracle@localhost Desktop]$ netstat -an | grep 1521
tcp 0 0 127.0.0.1:1521 0.0.0.0:* LISTEN
由上述输出可以看出,Oracle的TCP端口是1521。
(3)比较步骤1和步骤2,以确定Oracle监听的端口和实现数据库通信的端口。记录这些端口号。
由步骤1和步骤2的结果可以看出,Oracle的监听端口和数据库通信端口都是1521。
(4)使用Oracle工具更改Oracle马达管理框架配置,并重新启动Oracle服务:
[oracle@localhost Desktop]$ lsnrctl stop
[oracle@localhost Desktop]$ lsnrctl start
[oracle@localhost Desktop]$ dbstart
2.侦听端口号
当黑客不再扫描端口并成功地入侵系统时,他们可以使用端口侦听攻击。黑客可以在数据库中创建非授权身份,并在其中存储窃取的信息。另外,他们还可以监听数据库的传输,以便获取敏感信息。滥用Oracle容易导致黑客听取数据库中的通信,但是Oracle提供了多个防御机制。
为了提高Oracle数据库的安全性,需要更换端口,并启用两个或多个监听器。在此过程中,应该确保监听器的端口不同,同时还要确保侦听器使用的协议(TCP或IPC)和服务名称都是唯一的。
下面是更换Oracle端口和启用多个监听器的示例代码:
1)更改Oracle马达管理框架配置。最好在oracle用户的.bashrc文件中设置环境变量,以便在启动Oracle时使用这些设置。
#设置Oracle监听器的命名
export ORACLE_HOSTNAME=localhost.localdomn
export ORACLE_UNQNAME=DB11G
#设置Oracle SELinux安全策略
if [ -x /usr/sbin/sestatus ]; then
if `/usr/sbin/sestatus | grep “SELinux status: enabled” >/dev/null 2>&1` ; then
echo “SELinux status: Enabled”
SELINUX=enforcing
export SELINUX
echo $SELINUX
else
echo “SELinux status: Disabled”
SELINUX=disabled
export SELINUX
echo $SELINUX
fi
else
SELINUX=disabled
export SELINUX
echo $SELINUX
fi
#设置Oracle Listener监听的端口
export ORACLE_LISTENER_PORT=1522
#设置另一个Oracle Listener监听的端口
export ORACLE_LISTENER2_PORT=1523
2)使用Oracle的netmgr工具创建两个监听器。
3)使用Oracle的netmgr工具更改Oracle马达管理框架配置,以启用两个监听器:
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME=DB11G_DGMGRL)
(SID_NAME=DB11G)
(ORACLE_HOME=/u01/app/oracle/product/11.2.0/db_1)
)
)
LISTENER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomn)
(PORT=1522))
(ADDRESS=(PROTOCOL=TCP)(HOST=localhost.localdomn)
(PORT=1523))
)
(CONNECT_DATA=
(SERVICE_NAME=DB11G_DGMGRL)
(FLOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=180)
(DELAY=5)
)
(UR=A)
)
)
4)更改Oracle TNS配置,以便使用新的监听器。
5)重新启动Oracle服务以应用新的监听器和配置。
结论
在Oracle数据库中,保护端口是防止黑客侦听和侵入的一个重要步骤。本文介绍了如何侦查和侦听Oracle数据库的端口。我们强烈建议使用Oracle的护卫(DBSNMP)来保护数据库端口。至少应该随时更换默认的Oracle端口,启用多个监听器,并严格限制Oracle监听进程的访问权限。为了确保Oracle数据库的安全,请持续更新并执行相应的安全政策和程序。