Esta é uma API de gerenciamento das regras de encaminhamento de Firewall
Regras de encaminhamentos do firewall, usada para permitir/bloquear tráfego entre redes passando pelo firewall.
API de listagem de regras de encaminhamento
Esta api permite fazer filtros através de 2 parâmetros na URL (QueryStrings), que são: zone
, direction
Exemplo de requisição
GET /api/firewall/rules/forward?zone=global&direction=any HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.firewall.types import GetForwardRulesRequest
request = GetForwardRulesRequest(
zone="global",
direction="any"
)
response = sdk.firewall.get_forward_rules()
print(response.payload)
const response = sdk.firewall.getForwardRules({
zone: "global",
direction: "any"
});
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"forward_rules": [
{
"id": 1,
"enabled": true,
"order": 3,
"linked_rule": null,
"group_id": 1,
"zone": "global",
"direction": "any",
"description": "Rule01",
"action": "accept",
"protocol": "tcp/udp",
"log_enabled": false,
"log_info": null,
"src_conn_type": "any",
"src_conn": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "zone",
"dst_addr": "wan",
"dst_port_type": "range",
"dst_port": "8000:8080",
"created_at": "2018-12-13T12:20:02.932000+00:00",
"updated_at": "2018-12-13T12:20:02.932000+00:00"
},
{
"id": 3,
"enabled": true,
"order": 8,
"linked_rule": {
"id": 11,
"group_name": null,
"description": null
},
"group_id": 2,
"zone": "dmz",
"direction": "destination",
"description": "Rule02",
"action": "accept",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_conn_type": "any",
"src_conn": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "network",
"dst_addr": "192.168.0.0/24",
"dst_port_type": null,
"dst_port": null,
"created_at": "2018-12-13T14:15:02.932000+00:00",
"updated_at": "2018-12-13T14:15:02.932000+00:00"
}
]
}
[
ForwardRule(
id=1,
enabled=True,
order=3,
linked_rule=None,
group_id=1,
zone="global",
direction="any",
description="Rule01",
action="accept",
protocol="tcp/udp",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
dst_conn_type="connection",
dst_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_conn_type="connection",
dst_addr="wan",
dst_port_type="range",
dst_port="8000:8080",
created_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00')),
updated_at=DateTime(2018, 12, 13, 12, 20, 2, tzinfo=Timezone('+00:00'))
),
ForwardRule(
id=3,
enabled=True,
order=8,
linked_rule=LinkedRule(
id=11,
group_name=None,
description=None
),
group_id=2,
zone="dmz",
direction="destination",
description="Rule02",
action="accept",
protocol="ip",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
dst_conn_type="connection",
dst_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="network",
dst_addr="192.168.0.0/24",
dst_port_type=None,
dst_port=None,
created_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00')),
updated_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00'))
)
]
[
{
id: 1,
enabled: true,
order: 3,
linkedRule: null,
groupId: 1,
zone: "global",
direction: "any",
description: "Rule01",
action: "accept",
protocol: "tcp/udp",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
dstConnType: "connection",
dstConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "zone",
dstAddr: "wan",
dstPortType: "range",
dstPort: "8000:8080",
createdAt: "2018-12-13T12:20:02.000Z",
updatedAt: "2018-12-13T12:20:02.000Z"
},
{
id: 3,
enabled: true,
order: 8,
linkedRule: {
id: 11,
groupName: null,
description: null
},
groupId: 2,
zone: "dmz",
direction: "destination",
description: "Rule02",
action: "accept",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
dstConnType: "connection",
dstConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "network",
dstAddr: "192.168.0.0/24",
dstPortType: null,
dstPort: null,
createdAt: "2018-12-13T14:15:02.000Z",
updatedAt: "2018-12-13T14:15:02.000Z"
}
];
API de consulta de regra de encaminhamento
id
Exemplo de requisição
GET /api/firewall/rules/forward/3 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.get_forward_rule(id=3)
print(response.payload)
const response = sdk.firewall.getForwardRule({ id: 3 });
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 8,
"linked_rule": {
"id": 2,
"group_name": "DnatGroup01",
"description": "DnatRule01",
},
"group_id": 2,
"zone": "dmz",
"direction": "destination",
"description": "Rule02",
"action": "accept",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_conn_type": "any",
"src_conn": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "network",
"dst_addr": "192.168.0.0/24",
"dst_port_type": null,
"dst_port": null,
"created_at": "2018-12-13T14:15:02.932000+00:00",
"updated_at": "2018-12-13T14:15:02.932000+00:00"
ForwardRule(
id=3,
enabled=True,
order=8,
linked_rule=LinkedRule(
id=2,
group_name="DnatGroup01",
description="DnatRule01",
),
group_id=2,
zone="dmz",
direction="destination",
description="Rule02",
action="accept",
protocol="ip",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
dst_conn_type="connection",
dst_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="network",
dst_addr="192.168.0.0/24",
dst_port_type=None,
dst_port=None,
created_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00')),
updated_at=DateTime(2018, 12, 13, 14, 15, 2, tzinfo=Timezone('+00:00'))
)
{
id: 3,
enabled: true,
order: 8,
linkedRule: {
id: 2,
groupName:"DnatGroup01",
description:"DnatRule01",
},
groupId: 2,
zone: "dmz",
direction: "destination",
description: "Rule02",
action: "accept",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
dstConnType: "connection",
dstConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "network",
dstAddr: "192.168.0.0/24",
dstPortType: null,
dstPort: null,
createdAt: "2018-12-13T14:15:02.000Z",
updatedAt: "2018-12-13T14:15:02.000Z"
}
API de criação de regra de encaminhamento
Exemplo de requisição
POST /api/firewall/rules/forward?zone=lan&direction=source HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>
{
"enabled": true,
"order": 11,
"group_id": 1,
"linked_rule_id": 2,
"description": "New Rule",
"action": "accept",
"protocol": "tcp",
"log_enabled": false,
"src_conn_type": "any",
"src_conn": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "zone",
"dst_addr": "wan",
"dst_port_type": "range",
"dst_port": "8000:8080",
"apply": true
}
from itflex_sdk.firewall.types import CreateForwardRuleRequest
request = CreateForwardRuleRequest(
enabled=True,
order=11,
linked_rule_id=2,
group_id=1,
zone="lan",
direction="source",
description="New Rule",
action="accept",
protocol="tcp",
log_enabled=False,
src_conn_type="any",
src_conn=None,
dst_conn_type="connection",
dst_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="zone",
dst_addr="wan",
dst_port_type="range",
dst_port="8000:8080",
apply=True
)
response = sdk.firewall.create_forward_rule(request)
print(response.payload)
const forwardRule = sdk.dbc.types.forwardRule();
forwardRule.enabled = true;
forwardRule.order = 11;
forwardRule.linkedRuleId = 2;
forwardRule.groupId = 1;
forwardRule.zone = "lan";
forwardRule.direction = "source";
forwardRule.description = "New Rule";
forwardRule.action = "accept";
forwardRule.protocol = "tcp";
forwardRule.logEnabled = false;
forwardRule.srcConnType = "any";
forwardRule.srcConn = null;
forwardRule.dstConnType = "connection";
forwardRule.dstConn = "iface:1";
forwardRule.srcAddrType = "zone";
forwardRule.srcAddr = "wan";
forwardRule.dstAddrType = "zone";
forwardRule.dstAddr = "wan";
forwardRule.dstPortType = "range";
forwardRule.dstPort = "8000:8080";
forwardRule.apply = true;
const response = sdk.firewall.createForwardRule(forwardRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"linked_rule": {
"id": 2,
"group_name": "DnatGroup01",
"description": "DnatRule01",
},
"group_id": 1,
"zone": "lan",
"direction": "source",
"description": "New Rule",
"action": "accept",
"protocol": "tcp",
"log_enabled": false,
"log_info": null,
"dst_conn_type": "connection",
"src_conn": "any",
"src_conn_type": null,
"dst_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "zone",
"dst_addr": "wan",
"dst_port_type": "range",
"dst_port": "8000:8080",
"created_at": "2018-12-14T09:20:02.932000+00:00",
"updated_at": "2018-12-14T09:20:02.932000+00:00"
}
ForwardRule(
id=3,
enabled=True,
order=11,
linked_rule=LinkedRule(
id=2,
group_name="DnatGroup01",
description="DnatRule01",
),
group_id=1,
zone="lan",
direction="source",
description="New Rule",
action="accept",
protocol="tcp",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
dst_conn_type="connection",
dst_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="zone",
dst_addr="wan",
dst_port_type="range",
dst_port="8000:8080",
created_at=DateTime(2018, 12, 14, 9, 20, 2, tzinfo=Timezone('+00:00')),
updated_at=DateTime(2018, 12, 14, 9, 20, 2, tzinfo=Timezone('+00:00'))
)
{
id: 3,
enabled: true,
order: 11,
linkedRule: {
id: 2,
groupName:"DnatGroup01",
description:"DnatRule01",
},
groupId: 1,
zone: "lan",
direction: "source",
description: "New Rule",
action: "accept",
protocol: "tcp",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
dstConnType: "connection",
dstConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "zone",
dstAddr: "wan",
dstPortType: "range",
dstPort: "8000:8080",
createdAt: "2018-12-14T09:20:02.000Z",
updatedAt: "2018-12-14T09:20:02.000Z"
}
API de edição de regra de encaminhamento
id
Exemplo de requisição
PUT /api/firewall/rules/forward/3 HTTP/1.1
Host: api.exemplo.com
Content-Type: application/json
Accept: application/json
Authorization: Bearer <Access-Token>
{
"enabled": true,
"order": 11,
"description": "New Rule",
"action": "accept",
"protocol": "ip",
"log_enabled": false,
"src_conn_type": "any",
"dst_conn_type": "any",
"src_addr_type": "any",
"dst_addr_type": "any",
"dst_addr": "wan",
"apply": true
}
from itflex_sdk.firewall.types import UpdateForwardRuleRequest
request = UpdateForwardRuleRequest(
id=3,
enabled=True,
order=11,
description="New Rule",
action="accept",
protocol="ip",
log_enabled=False,
src_conn_type="any",
dst_conn_type="any",
src_addr_type="any",
dst_addr_type="any",
apply=True
)
response = sdk.firewall.update_forward_rule(request)
print(response.payload)
const forwardRule = {
id: 3,
enabled: true,
order: 11,
description: "New Rule",
action: "accept",
protocol: "ip",
logEnabled: false,
srcConnType: "any",
dstConnType: "any",
srcAddrType: "any",
dstAddrType: "any",
apply: true
};
const response = sdk.firewall.updateForwardRule(forwardRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"linked_rule": {
"id": 2,
"group_name": "DnatGroup01",
"description": "DnatRule01",
},
"group_id": 1,
"zone": "lan",
"direction": "source",
"description": "New Rule",
"action": "accept",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_conn_type": "any",
"src_conn": null,
"dst_conn_type": "any",
"dst_conn": null,
"src_addr_type": "any",
"src_addr": null,
"dst_addr_type": "any",
"dst_addr": null,
"dst_port_type": null,
"dst_port": null,
"created_at": "2018-12-14T09:20:02.932000+00:00",
"updated_at": "2018-12-14T10:30:02.932000+00:00"
}
ForwardRule(
id=3,
enabled=True,
order=11,
linked_rule=LinkedRule(
id=2,
group_name="DnatGroup01",
description="DnatRule01",
),
group_id=1,
zone="lan",
direction="source",
description="New Rule",
action="accept",
protocol="ip",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
dst_conn_type="any",
dst_conn=None,
src_addr_type="any",
src_addr=None,
dst_addr_type="any",
dst_addr=None,
dst_port_type=None,
dst_port=None,
created_at=DateTime(2018, 12, 14, 9, 20, 2, tzinfo=Timezone('+00:00')),
updated_at=DateTime(2018, 12, 14, 10, 30, 2, tzinfo=Timezone('+00:00'))
)
{
id: 3,
enabled: true,
order: 11,
linkedRule: {
id: 2,
groupName:"DnatGroup01",
description:"DnatRule01",
},
groupId: 1,
zone: "lan",
direction: "source",
description: "New Rule",
action: "accept",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
dstConnType: "any",
dstConn: null,
srcAddrType: "any",
srcAddr: null,
dstAddrType: "any",
dstAddr: null,
dstPortType: null,
dstPort: null,
createdAt: "2018-12-14T09:20:02.000Z",
updatedAt: "2018-12-14T10:30:02.000Z"
}
API de exclusão de regra de encaminhamento
id
Se houver uma regra DNAT associada, ela será excluída automaticamente.
Exemplo de requisição
DELETE /api/firewall/rules/forward/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.delete_forward_rule(id=1)
const response = sdk.firewall.deleteForwardRule({ id: 1 });
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
API de aplicação de regras de encaminhamento
Exemplo de requisição
POST /api/firewall/rules/forward/apply HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
{
"zone": "lan",
"direction": "destination"
}
from itflex_sdk.firewall.types import ApplyForwardRulesRequest
request = ApplyForwardRulesRequest(
zone="lan",
direction="destination"
)
response = sdk.firewall.apply_forward_rules(request)
const response = sdk.firewall.applyForwardRules({
zone: "lan"
direction: "destination"
});
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
Parâmetros da url
Campo | Descrição |
---|---|
id | int Identificador da regra de encaminhamento |
Parâmetros de consulta
Campo | Descrição | ||||||
---|---|---|---|---|---|---|---|
zone | stringrequerido Zona onde serão aplicadas as regras de encaminhamento Valores possíveis:
|
||||||
direction | stringrequerido Direção do tráfego onde serão aplicadas as regras de encaminhamento O preenchimento deste campo está relacionado ao valor de
|
Requisição
Campo | Descrição | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
enabled | boolrequerido Flag que determina se regra está habilitada ou desabilitada. |
||||||||||||
order | intrequerido Campo indicador da ordem da regra em relação às demais regras do grupo. |
||||||||||||
linked_rule_id | intrequerido Identificador do regra associada. Quando este campo estiver preenchido o campo Quando este campo estiver preenchido o campo Os campos O campo O campo |
||||||||||||
group_id | intrequerido Identificador do grupo da regra. |
||||||||||||
description | stringrequerido Breve descrição da regra. Tamanho máximo: 30 caracteres |
||||||||||||
action | stringrequerido Ação que a regra executará. Se houver uma regra DNAT associada, este campo obrigatoriamente terá o valor Valores possíveis:
|
||||||||||||
protocol | stringrequerido Protocolo da regra. Valores possíveis:
|
||||||||||||
log_enabled | bool Flag que a indica a geração de uma regra de log. Ocultar/Ignorar se: campo Valor padrão: |
||||||||||||
log_info | bool Texto do log da regra. Requerido se:
Deve satisfazer a expressão:
|
||||||||||||
src_conn_type | stringrequerido Tipo da conexão de origem dos pacotes. Valores possíveis:
A opção |
||||||||||||
src_conn | string Conexão ou Zona de origem dos pacotes. O preenchimento deste campo está relacionado ao valor do campo
Caso o valor do campo seja uma zona ou conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo: Se
Se
|
||||||||||||
dst_conn_type | stringrequerido Tipo da conexão de encaminhamento dos pacotes. Valores possíveis:
A opção |
||||||||||||
dst_conn | string Conexão ou Zona de encaminhamento dos pacotes. O preenchimento deste campo está relacionado ao valor do campo
Caso o valor do campo seja uma zona ou conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo: Se
Se
|
||||||||||||
src_addr_type | stringrequerido Tipo do endereço de origem dos pacotes. Valores possíveis:
A opção |
||||||||||||
src_addr | string Endereço de origem dos pacotes. O preenchimento deste campo está relacionado ao valor do campo
Caso o valor do campo seja uma zona ou conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo: Se
Se
|
||||||||||||
dst_addr_type | stringrequerido Tipo do endereço de destino dos pacotes. Valores possíveis:
A opção |
||||||||||||
dst_addr | string Endereço de destino dos pacotes. O preenchimento deste campo está relacionado ao valor do campo
Caso o valor do campo seja uma zona ou conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo: Se
Se
|
||||||||||||
dst_port_type | string Tipo da porta de destino dos pacotes.
|
||||||||||||
dst_port | string Porta ou faixa de portas de destino do pacote. Se o valor do campo O preenchimento deste campo está relacionado ao valor do campo
|
||||||||||||
apply | bool Flag que indica se as informações serão provisionadas imediatamente após a criação ou edição Valor padrão: |
Resposta
Campo | Descrição |
---|---|
id | int Identificador da regra de encaminhamento |
enabled | bool Flag que determina se regra está habilitada ou desabilitada. |
order | int Campo indicador da ordem da regra em relação às demais regras do grupo. |
linked_rule | LinkedRule Informações básicas da regra de NAT de destino associada. |
group_id | int Identificador do grupo da regra. |
zone | string Zona onde serão aplicadas as regras de encaminhamento. |
direction | string Direção do tráfego onde serão aplicadas as regras de encaminhamento. |
description | string Breve descrição da regra. |
action | string Ação que a regra executará. |
protocol | string Protocolo da regra. |
log_enabled | string Flag que a indica a geração de uma regra de log. |
log_info | bool Texto do log da regra. |
src_addr_type | string Tipo do endereço de origem dos pacotes. |
src_addr | string Endereço de origem dos pacotes. |
dst_conn_type | string Tipo da conexão de encaminhamento dos pacotes. |
dst_conn | string Conexão ou Zona de origem dos pacotes. |
dst_addr_type | string Tipo do endereço de destino dos pacotes. |
dst_addr | string Endereço de destino dos pacotes. |
dst_port_type | string Tipo da porta de destino dos pacotes. |
dst_port | string Porta ou faixa de portas de destino do pacote. |
created_at | string Data de criação
|
updated_at | string Data da última edição
|