環境說明:
linux系統,centos7.5環境
mysql 5.7
emqx版本 4.0.3
安裝過程參考:
安裝完成後能夠正常啟動,配置emqx_auth_mysql 外掛程式:
進入配置資料夾:cd etc/plugins/
編碼配置檔案:vim emqx_auth_mysql.conf
儲存退出,返回上級資料夾:cd …
進入emqx.conf,關閉匿名認證:
allow_anonymous = false
開啟acl許可權驗證:
acl_nomatch = allow
關聯許可權驗證配置檔案
acl_file = etc/acl.conf
儲存退出;
資料庫新建表:
create
table
`mqtt_user`
(`id`
int(11)
unsigned
notnull
auto_increment
,`username`
varchar
(100
)default
null
,`password`
varchar
(100
)default
null
,`salt`
varchar(35
)default
null
,`is_superuser`(1
)default0,
`created`
datetime
default
null
,primary
key(
`id`),
unique
key`mqtt_username`
(`username`))
engine
=innodb
default
charset
=utf8mb4;
create
table
`mqtt_acl`
(`id`
int(11)
unsigned
notnull
auto_increment
,`allow`
int(1)
default
1comment
'0: deny, 1: allow'
,`ipaddr`
varchar(60
)default
null
comment
'ipaddress'
,`username`
varchar
(100
)default
null
comment
'username'
,`clientid`
varchar
(100
)default
null
comment
'clientid'
,`access`
int(2)
notnull
comment
'1: subscribe, 2: publish, 3: pubsub'
,`topic`
varchar
(100
)not
null
default
''comment
'topic filter'
,primary
key(
`id`))
engine
=innodb
default
charset
=utf8mb4;
進入控制台啟動emqx_auth_mysql 外掛程式,需要時進入配置頁面進行配置。
進行到這裡的時候已經可以通過資料庫的使用者和密碼驗證連線emq伺服器了,但是訂閱和發布的主題的許可權依然沒有被限制。
配置如下:
進入acl.conf
儲存重啟,搞定。
emqx 新增 mysql 外掛程式進行acl驗證
1 新建表 create table mqtt user id int 11 unsigned not null auto increment,username varchar 100 default null,password varchar 100 default null,salt varch...
配置高階ACL
配置高階acl 2.1 問題 如圖配置ip位址 允許client1訪問server1的web服務 允許client1 訪問網路 192.168.2.0 24 禁止client1 訪問其他網路 2.2 方案 搭建實驗環境,如圖 2所示。圖 22.3 步驟 實現此案例需要按照如下步驟進行。1 配置終端裝...
配置自反ACL
配置自反acl 需求 ra是公司的邊界路由器,要求只允許內網使用者主動訪問外網的tcp流量,外網主動訪問內網的所有流量都拒絕 注意 在ra外口的入方向上要拒絕掉所有外網主動發起的流量,但是要能夠允許內網發起而由外網返回的流量,否則內網發起的流量也不能正常通訊 配置步驟介面及路由配置 第一步 定義內網...