网络访问黑名单

功能描述

现使用内置的 iptables 为基础:黑名单为拒绝(DROP),白名单为(ACCEPT)。

下发后会默认将 INPUT与OUTPUT 链的默认策略置为DROP,并且在其中增加自定义链用于白名单和黑名单和默认规则。其中,默认规则为将mqtt 地址和端口放开。

下发后会写入一条或者多条iptables 规则,根据iptables的版本可支持:对应的单个IP、多个IP、IP段,单个端口、多个端口、端口段。

1. 请求消息

1.1 topic

Topic
/v1/devices/{DeviceSn}/security/command

消息发送方

物联网平台

消息接收方

网关设备

1.2 请求消息payload

数据域
数据类型
是否必选
描述

mid

stirng

消息ID,推荐使用uuid, 请求和应答匹配,用来匹配请求和应答消息和去重

msgTime

string

消息发送时间戳,RFC3339标准,例如:1985-04-12T23:20:50.52Z

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

service

string

服务名称。这里固定为:security

cmd

string

具体操作方法,这里固定为:setNetworkBlacklist

params

List<Params>

对象内容

params结构体说明

字段名
必选/可选
类型
参数描述

dstIp

可选

String

远程ip

dstPort

可选

String

远程端口,其余同 srcPort

srcIp

可选

String

本地ip

srcPort

可选

String

本地端口,可选择为:

"8080" 为单个网口

"1080:1090" 为网口段

protocol

可选

String

协议,默认为tcp

priority

必选

Uint16

规则优先级

请求示例

{
    "mid": 54132,
    "service": "security",
    "cmd": "setNetworkBlacklist",
    "params": [{
        "dstIp": "192.168.0.1",
        "dstPort": 1234,
        "srcIp": "192.168.1.1",
        "srcPort": 8080,
        "protocol": "tcp",
        "priority": 1
    }],
    "zone":"设备部署的区域",
    "node":"设备部署的节点",
    "deviceSn": "D23pigXo",
    "deviceId": "A1234456",
    "requestId":"xxxxxxxxxx",
    "msgTime": "1985-04-12T23:20:50.52Z "
}

2. 应答消息

2.1 Topic

Topic
/v1/devices/security/response

消息发送方

网关设备

消息接收方

物联网平台

2.2  应答消息payload

数据域
数据类型
是否必选
描述

mid

string

消息ID,用于消息去重。

replyId

string

表示响应的是哪条请求指令,为该指令的mid,用来匹配请求和应答

msgTime

string

消息发送时间戳,采用RFC3339标准,例如:1985-04-12T23:20:50.52Z。

zone

string

设备部署的区域,例如ZONE3

node

string

设备部署的节点,例如440000

requestId

string

微服务链路追踪用的标识

deviceSn

string

设备ESN码,用于唯一标识设备

deviceId

string

统一物联网平台分配的设备id,据说可能会重复,不能唯一标识设备

code

uint16

标识应答的返回码批处理请求时,如果所有处理都成功,返回200如果有部分失败,返回400。

取值如下:

•200:请求成功。

•400:请求消息错误,例如消息格式错误等。

•404:不支持该操作。

•429:请求太多。

•500:服务端内部错误,由应用定义。

body

JsonObject

(可选)对象内容。

最后更新于