EMQX配置ACL訂閱發布許可權問題

2021-10-04 07:17:29 字數 2262 閱讀 9302

環境說明:

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外口的入方向上要拒絕掉所有外網主動發起的流量,但是要能夠允許內網發起而由外網返回的流量,否則內網發起的流量也不能正常通訊 配置步驟介面及路由配置 第一步 定義內網...