MyCat21——防火墙设置

194 阅读2分钟

在mycat的 server.xml 配置文件中有一个标签 firewall 是用来设置防火墙。

whitehost 用来设置白名单;

blacklist 用来设置SQL操作的黑名单。

image.png

1 白名单

1.1 设置

通过白名单设置,可以实现来自指定IP的指定用户对mycat的访问。而未在设置中出现的用户或IP,则禁止访问。

修改 server.xml 配置文件,进行如下修改

<host host="192.168.137.4" user="root"/>

表示仅允许root用户从192.168.137.4访问mycat。

保存修改后重启mycat服务。

1.2 验证

  • root用户从192.168.137.3访问mycat

报错如下,提示访问被拒绝。

image.png

  • root用户从192.168.137.4访问mycat

可以正常访问到mycat服务。

image.png

白名单中的 host 设置,可以支持通配符,因些如果服务器较多时,可以简化设置。

2 黑名单

2.1 设置

通过黑名单的设置,可以实现对具体的SQL操作的拦截,如对数据库中数据进行的CRUD操作。

修改server.xml文件,添加黑名单:

  • check 设置true,表示进行SQL检查
  • property 中设置具体的限制名称,名称与操作文末,设置为false时表示限制,true为不限制。

image.png

不允许执行 delete 操作,保存后重新启动mycat服务。

2.2 验证

在 192.168.137.4 服务器登录Mycat后,执行删除操作。

image.png

删除操作被拒绝。

2.3 禁止使用通配符查询列

修改配置文件

<blacklist check="true">
    <property name="selectAllColumnAllow">false</property>
</blacklist>

重启mycat服务后,进入并查询,select * from 语句被禁止使用。

image.png

2.4 黑名单 SQL 拦截功能列表

配置项默认值功能
selectAllowtrue是否允许执行select语句
selectAllColumnAllowtrue是否允许执行select * from 操作
selectIntoAllowtrue是否允许select语句中包含into子句
deleteAllowtrue是否允许执行delete语句
updateAllowtrue是否允许执行update语句
insertAllowtrue是否允许执行insert语句
replaceAllowtrue是否允许执行replace语句
createTableAllowtrue是否允许创建表
setAllowtrue是否允许使用set语法
truncateAllowtrue是否允许执行truncate语句
alterTableAllowtrue是否允许执行alter table语句
dropTableAllowtrue是否允许修改表
commitAllowtrue是否允许执行commit操作
rollbackAllowtrue是否允许执行rollback操作
useAllowtrue是否允许执行use语句
describeAllowtrue是否允许执行describe操作
showAllowtrue是否允许执行show语句