GaussDB(for Redis)安全性相关设置体验
【摘要】 GaussDB(for Redis)安全性功能体验
1.GaussDB数据库介绍
高斯,德语:Gauß; ,英语:Gauss。高斯的生平是1777年—1855。大概是中国清朝乾隆四十二年到咸丰五年。他和阿基米德、艾萨克·牛顿并称世界公认的三大著名数学家。高斯被认为是历史上最重要的数学家之一,并享有“数学王子”之称,是微分几何学的始祖(高斯、雅诺斯、罗巴切夫斯基)之一。
2019年5月15日,华为用大数学家高斯的名字正式面向全球推出了GaussDB数据库。我们在开源的选择中已经有了mysql等数据库,那华为推出的GaussDB又解决了哪些mysql类数据库没有解决的问题呢。我们通过华为自己的定位可以看到,华为将GaussDB定位于AI-Native数据库而非Cloud-Native数据库,这不仅是一种升维,更是源于GaussDB实现的两大革命性突破:其一,AI in DB,首次将AI技术引入了GaussDB全系列产品内核中,实现自运维、自管理、自调优、故障自诊断和自愈,调优性能比业界提升60%以上。其二,DB for AI,GaussDB数据库适配AI的运行。用户可以通过数据库语言来方便地使用AI,降低AI使用门槛,实现普惠AI。
经过几年的市场检验,在2022年6月的国产化数据库排行榜上,高斯开源的oepnGauss和GaussDB双双进入前五。
下面我们通过试用GaussDB(for Redis),来看一下在安全性方面,GaussDB(for Redis)有哪些配置和安全性如何。
2.GaussDB(for Redis)的安全性设置
2.1 密码安全设置
有人可能会说新建一个数据库,密码设置这不是常规操作,有什么值得说的。要知道GaussDB(for Redis)是对标redis的,由于redis本身并没有强制必须的密码配置和密码负责度的配置,很多线上环境的redis完全就是裸奔,有IP和端口就可以进行连接,Redis因配置不当可以未授权访问。攻击者无需认证访问到内部数据,可导致敏感信息泄露,也可以恶意执行flushall来清空所有数据。攻击者可通过EVAL执行lua代码,或通过数据备份功能往磁盘写入后门文件。如果Redis以root身份运行,可以给root账户写入SSH公钥文件,直接通过SSH登录受害服务器。所以使用GaussDB(for Redis)解决了redis本身自带的安全性问题,也提高了系统的安全性。
2.2内网安全组进行隔离
在创建GaussDB(for Redis)的安全配置主要就是选择内网安全组。内网安全组的配置其实就是一个小型ACL(访问控制列表)控制哪些IP和端口可以进行访问。
在安全组的描述说明中,华为云也很贴心的把常用的端口和威胁端口列了出来。
常用端口:
协议 | 端口 | 说明 |
---|---|---|
FTP | 21 | FTP服务上传和下载文件。 |
SSH | 22 | 远程连接Linux弹性云服务器。 |
Telnet | 23 | 使用Telnet协议访问网站。 |
SMTP | 25 | SMTP服务器所开放的端口,用于发送邮件。基于安全考虑,TCP 25端口出方向默认被封禁,申请解封请参考TCP 25端口出方向无法访问时怎么办?。 |
HTTP | 80 | 使用HTTP协议访问网站。 |
POP3 | 110 | 使用POP3协议接受邮件。 |
IMAP | 143 | 使用IMAP协议接受邮件。 |
HTTPS | 443 | 使用HTTPS协议访问网站。 |
SQL Server | 1433 | SQL Server的TCP端口,用于供SQL Server对外提供服务。 |
SQL Server | 1434 | SQL Server的TCP端口,用于返回SQLServer使用了哪个TCP/IP端口。 |
Oracle | 1521 | Oracle通信端口,弹性云服务器上部署了Oracle SQL需要放行的端口。 |
MySQL | 3306 | MySQL数据库对外提供服务的端口。 |
Windows Server Remote Desktop Services | 3389 | Windows远程桌面服务端口,通过这个端口可以连接Windows弹性云服务器。 |
代理 | 8080 | 8080端口常用于WWW代理服务,实现网页浏览,实现网页浏览。如果您使用8080端口,访问网站或使用代理服务器时,需要在IP地址后面加上:8080。安装Apache Tomcat服务后,默认服务端口为8080。 |
NetBIOS | 137、138、139 | NetBIOS协议常被用于Windows文件、打印机共享和Samba。* 137、138:UDP端口,通过网上邻居传输文件时使用的端口。* 139:通过这个端口进入的连接试图获得NetBIOS/SMB服务。 |
常见威胁端口:
协议 | 端口 |
---|---|
TCP | 42、135、137、138、139、444、445、593、1025、1068、1433、1434、3127、3128、3129、3130、4444、4789、5554、5800、5900、8998、9996 |
UDP | 135~139、1026、1027、1028、1068、1433、1434、4789、5554、9996 |
2.3 数据备份
数据备份其实是一个重要的功能,不要认为只有黑客入侵才是安全事件。数据安全同样是安全事件,因为滴滴问题去年数据安全大火了一把,因为磁盘、人为、环境等造成的数据丢失都需要数据的备份和恢复功能。
这边还可以根据用户自己的需求去设置备份策略。不知道是不是试用版的原因,我这边备份最大只能备份35天。因为按照等保2.0数据备份的要求,重要的数据至少需要备份6个月。
2.4 限制高危命令
从下图可以看到,我输入了redis常用的keys命令,居然是执行失败。因为GaussDB(for Redis)对redis原生命令进行了过滤,对一些高危命令进行了限制。详细的命令规范可以参考[命令兼容列表_云数据库 GaussDB NoSQL _GaussDB(for Redis)_用户指南_开发规范与命令兼容_华为云 (huaweicloud.com)]
3.小结
总得来说GaussDB(for Redis)相对传统开源redis的提升巨大,做了很多安全性的设置。开箱即用,使用GaussDB(for Redis)无疑会大大提升数据安全和系统安全。也期待GaussDB有更多安全性的提升。