目               录

一、等级保护三级对mysql数据库的要求

(一)、身份鉴别与访问控制:

(二)、安全审计与日志记录:

(三)、数据完整性与保密性:

(四)、安全配置与漏洞管理:

(五)、物理与环境安全:

(六)、灾难恢复与应急预案:

二、限制或者禁止root的远程访问

(一)、必要性

(二)、限制和禁止root的远程访问

1、多种访问策略

2、限制root远程访问

(1)查询目前系统root的访问权限

(2)撤销root对某个数据库的远程访问权限  

(3)赋予对某个数据库ivs具有远程访问的权限     

(4)赋予root只能从特定的主机访问的权限    

3、禁止root远程访问,启用其他用户进行远程访问

(三)、新建远程访问用户

1. 登录MySQL

2. 创建新用户remoteop

3. 授予remoteop用户权限

4. 刷新权限

5. 测试连接

6. 确保防火墙设置允许MySQL端口

7. 安全注意事项

三、附“等级保护三级”的要求及保护能力

(一)等级保护三级要求

(二)等级保护三级的保护能力

一、等级保护三级对mysql数据库的要求

        要使MySQL满足等级保护三级的要求,关键要注意以下几个方面:

(一)、身份鉴别与访问控制:

           - 启用强密码策略,确保MySQL的root账户和其他账户使用复杂且不易猜测的密码。

           - 限制或者禁止root账户的远程登录权限,仅允许从特定的受信任主机进行连接。

           - 实施多条件认证,提高账户的安全性。

           - 定期对账户和密码进行审查,确保没有过期或未使用的账户存在。

(二)、安全审计与日志记录:

           - 启用MySQL的审计插件,记录所有关键操作,包括用户登录、数据访问和修改等。

           - 配置日志记录到专用的日志文件,并设置适当的权限,确保只有授权人员能够访问。

           - 定期审查和分析日志,以发现潜在的安全威胁或异常行为。

(三)、数据完整性与保密性:

           - 使用加密算法对敏感数据进行加密存储,确保数据的保密性。

           - 启用行级锁定或表级锁定机制,防止数据并发访问时的冲突和不一致。

           - 定期对数据库进行备份,并验证备份数据的完整性和可用性。

(四)、安全配置与漏洞管理:

           - 定期更新和升级MySQL服务器和相关的安全补丁,以修复已知的安全漏洞。

           - 禁用不必要的MySQL功能和扩展,减少潜在的安全风险。

           - 限制MySQL服务器的网络访问范围,只允许必要的IP地址或IP地址段进行连接。

(五)、物理与环境安全:

           - 确保MySQL服务器所在的物理环境安全,包括机房门禁、监控摄像头等。

           - 对服务器进行物理加固,如锁定机箱、限制USB接口等。

(六)、灾难恢复与应急预案:

           - 制定详细的灾难恢复计划,包括数据备份、恢复流程和应急响应措施。

           - 定期进行灾难恢复演练,验证预案的有效性和可行性。

        

        具体的实施细节可能因项目实际情况而有所不同。因此,在实际操作中,建议参考相关的安全标准和规范,结合实际情况进行配置和管理。同时,定期进行安全评估和漏洞扫描,确保MySQL服务器的安全性得到持续保障。

二、限制或者禁止root的远程访问

(一)、必要性

        上面讲的等保三级的要求,第一条就是身份鉴别和访问控制,要求强密码,限制root账户的远程登录权限。

        这部分是大家最容易忽视的,并且也是网络攻击最常用的手段,并且这种攻击的入门门槛很低,因此我们本文就着重介绍如何限制或者禁止root的远程访问。

        另外,强密码应该比较简单,这里不做介绍。

(二)、限制和禁止root的远程访问

1、多种访问策略

        根据实际中碰到的各种情况,可以有三种访问策略以供选择

        (a)root可以进行远程访问,但是只能操作某个用户数据库,不能操作系统数据库,这样可以有效的保护;

        (b)root只能通过本机或者某个特定的主机来访问;

        (c)root只能通过本机来访问,禁止任何远程访问。

2、限制root远程访问

        根据上一节的说明,前两种策略是一种限制root访问的例子,下面分别来介绍:

(1)查询目前系统root的访问权限

mysql> SELECT user, host FROM mysql.user WHERE user='root';

+------+-----------+

| user | host      |

+------+-----------+

| root |  %       |

+------+-----------+

| root | localhost |

+------+-----------+

2 row in set (0.00 sec)

        可以看出,root具有远程访问权限。

(2)撤销root对某个数据库的远程访问权限  

        如果root用户当前拥有从远程主机访问数据库DB2的权限,你需要撤销这些权限。你可以使用REVOKE语句来实现这一点。首先,撤销root用户对DB2数据库的所有权限:

REVOKE ALL PRIVILEGES ON DB2.* FROM 'root'@'%';

        如果你只想撤销某些特定的权限(例如,只撤销SELECT权限),你可以这样操作:

REVOKE SELECT ON db1.* FROM 'remoteop'@'%';

        在撤销权限后,确保刷新MySQL的权限设置,使更改立即生效:  

FLUSH PRIVILEGES;

若要撤销其他数据库,可以类推。

(3)赋予对某个数据库ivs具有远程访问的权限     

GRANT ALL PRIVILEGES ON ivs.* TO 'remoteop'@'%';

        如果你只想授予部分权限(例如,只读权限),可以使用以下命令:

GRANT SELECT, INSERT, UPDATE, DELETE ON ivs.* TO 'remoteop'@'%';

        在授予或撤销权限后,需要刷新MySQL的权限设置:

FLUSH PRIVILEGES;

(4)赋予root只能从特定的主机访问的权限    

        为root用户指定可以从哪些主机进行连接。假设想要允许从主机192.168.1.100和10.0.0.50进行访问,你可以使用以下命令:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.100' IDENTIFIED BY '111222' WITH GRANT OPTION; 

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.0.0.50' IDENTIFIED BY ''111222' ' WITH GRANT OPTION;

3、禁止root远程访问,启用其他用户进行远程访问

(a)禁止root远程访问,root只能本地访问

注意:禁止root远程访问后,一定要确保root可以本地访问,密码正确。

        禁止root远程访问的命令为:

REVOKE ALL PRIVILEGES ON *.* FROM 'root'@'%'; 

       设置root本地访问的命令为:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '11112222' WITH GRANT OPTION;

可以先用命令查看root是否有本地访问权限,再决定是否采用上面的命令。查看命令如下:

SELECT user, host FROM mysql.user WHERE user='root';

(三)、新建远程访问用户

        我们可以直接新增一个用户`remoteop`并为其授予远程访问的权限。以下是如何操作的步骤:

1. 登录MySQL

        使用`root`用户登录到MySQL服务器:

mysql -u root -p

        输入`root`用户的密码。

2. 创建新用户remoteop

        如果`remoteop`用户还不存在,你需要先创建它。假设你想为这个用户设置密码为`password_for_remoteop`:

CREATE USER 'remoteop'@'%' IDENTIFIED BY '111222';

        这里`%`表示这个用户可以从任何主机连接。如果你只想允许从特定的IP地址或IP地址范围访问,可以替换`%`为具体的IP地址或CIDR表示法,例如`'remoteop'@'192.168.1.%'`。

3. 授予remoteop用户权限

        接下来,需要为`remoteop`用户授予访问数据库的权限。以下是一个例子,授予该用户对所有数据库的所有权限:

GRANT ALL PRIVILEGES ON *.* TO 'remoteop'@'%' WITH GRANT OPTION;

        如果你只想授予特定数据库的权限,可以将`*.*`替换为`DB_name.*`。

4. 刷新权限

在授予权限后,需要刷新MySQL的权限设置:

FLUSH PRIVILEGES;

5. 测试连接

        从远程主机尝试使用`remoteop`用户连接到MySQL,确保可以成功连接。

        可以通过ssh,也可以通过一些工具,比如navicat。

6. 确保防火墙设置允许MySQL端口

        如果你的服务器有防火墙,确保它允许外部连接MySQL的端口(默认为3306)。

7. 安全注意事项

        * 始终确保使用强密码。

        * 限制可以远程访问MySQL的用户数量,并仅为每个用户授予所需的最小权限。

        * 定期审查和更新权限设置,移除不再需要的权限。

        * 考虑使用SSL连接来增加通信的安全性。

        完成上述步骤后,`remoteop`用户应该能够远程访问MySQL服务器了。同时,由于`root`用户默认是只能从localhost访问的(除非特别配置),它通常不会被允许从远程主机访问。如果你之前对`root`用户做了远程访问的配置,记得按照之前的步骤撤销这些权限。

三、附“等级保护三级”的要求及保护能力

(一)等级保护三级要求

        国家信息安全等级保护坚持自主定级、自主保护的原则。信息系统的安全保护等级应当根据信息系统在国家安全、经济建设、社会生活中的重要程度,信息系统遭到破坏后对国家安全、社会秩序、公共利益以及公民、法人和其他组织的合法权益的危害程度等因素确定。

        信息系统的安全保护等级分为以下五级,一至五级等级逐级增高;第三级要求是,信息系统受到破坏后,会对社会秩序和公共利益造成严重损害,或者对国家安全造成损害。国家信息安全监管部门对该级信息系统安全等级保护工作进行监督、检查。

(二)等级保护三级的保护能力

        等级保护三级,应能够在统一安全策略下防护系统免受来自外部有组织的团体、拥有较为丰富资源的威胁源发起的恶意攻击、较为严重的自然灾难,以及其他相当危害程度的威胁所造成的主要资源损害,能够发现安全洞和安全事件,在系统遭到损害后,能够较快恢复绝大部分功能。

若想了解更多,可以“点击” 下面的 “威迪斯特 微信名片”,就会出现我的二维码。

相关文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: