最近在牛蝇们的blog里看到了oracle 加固经验一文,结合自己的经验,补充一下。
1.删除或锁定账号
alter user username lock;
drop user username cascade;
2.更改密码
alter user username identified by “password”
3.限制数据库超级管理员远程登录
1. 在spfile中设置
REMOTE_LOGIN_PASSWORDFILE=NONE
2.在sqlnet.ora中设置
SQLNET.AUTHENTICATION_SERVICES=NONE 禁用SYSDBA角色的自动登录
4.启用审计日志
1. 通过设置参数audit_trail = db或os来打开数据库审计。
2. 然后可使用Audit命令对相应的对象进行审计设置
5.设置只有信任的IP地址才能通过监听器访问数据库:
在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行:
tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
6.设置数据库连接超时 (10分钟)
在sqlnet.ora中设置下面参数:
SQLNET.EXPIRE_TIME=10
7.Oracle数据库可通过设置listener.ora文件限制客户端IP地址对数据库的访问,具体操作包括以下步骤:
tcp.validnode_checking = YES
tcp.excluded_nodes = (list of IP addresses)
tcp.invited_nodes = (list of IP addresses)
重启listener
8.失败的登录尝试
检查失败的登录尝试
SQL> select * from dba_profiles where RESOURCE_NAME = ‘FAILED_LOGIN_ATTEMPTS’;
如果LIMIT为NULL,建议修改失败的登录尝试
ALTER PROFILE “DEFAULT” LIMIT FAILED_LOGIN_ATTEMPTS 3;
9.默认情况下,口令明文传输
通过配置在网络上通过DES加密传输
在Client上将ORA_ENCRYPT_LOGIN 变量设置成TURE
在Server上将DBLINK_ENCRYPT_LOGIN 参数设置成TURE
10.限制在DBA组中的操作系统用户数量,通常DBA组中只有Oracle安装用户
通过/etc/passwd文件来检查是否有其它用户在DBA组中。
11、为数据库监听器(LISTENER)的关闭和启动设置密码
通过下面命令设置密码:
$ lsnrctl
LSNRCTL> change_password
Old password: <OldPassword> Not displayed
New password: <NewPassword> Not displayed
Reenter new password: <NewPassword> Not displayed
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=prolin1)(PORT=1521)(IP=FIRST)))
Password changed for LISTENER
The command completed successfully
LSNRCTL> save_config
12、设置只有信任的IP地址才能通过监听器访问数据库
只需在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行:
tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
13、根据业务要求制定数据库审计策略
1. 通过设置参数audit_trail = db或os来打开数据库审计。
2. 然后可使用Audit命令对相应的对象进行审计设置。