Esta é uma API de gerenciamento das regras de NAT de destino de Firewall
Regras de tradução do endereço/porta de destino dos pacotes.
API de listagem de regras de NAT de destino
zone
Esta api permite fazer filtros através de 1 parâmetro na URL (QueryString), que é: zone
Exemplo de requisição
GET /api/firewall/rules/dnat?zone=global HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.firewall.types import GetDestinationNatRulesRequest
request = GetDestinationNatRulesRequest(
zone="global"
)
response = sdk.firewall.get_destination_nat_rules(request)
print(response.payload)
const response = sdk.firewall.getDestinationNatRules({ zone: "global" });
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"destination_nat_rules": [
{
"id": 1,
"enabled": true,
"order": 3,
"linked_rule": {
"id": 20,
"group_name": null,
"description": null
},
"group_id": 1,
"zone": "dmz",
"description": "Rule01",
"action": "nat",
"protocol": "tcp/udp",
"log_enabled": false,
"log_info": null,
"src_conn_type": "connection",
"src_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "ip",
"dst_addr": "192.168.10.10",
"dst_port_type": "range",
"dst_port": "8000:8080",
"dst_translated_addr": "172.10.0.15",
"dst_translated_port": null,
"created_at": "2018-12-13T12:20:02.932000+00:00",
"updated_at": "2018-12-13T12:20:02.932000+00:00"
},
{
"id": 2,
"enabled": true,
"order": 8,
"linked_rule": null,
"group_id": 2,
"zone": "guest",
"description": "Rule02",
"action": "nat",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_conn_type": "connection",
"src_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "network",
"dst_addr": "192.168.0.0/24",
"dst_port_type": "port",
"dst_port": "1000",
"dst_translated_addr": "172.10.0.15",
"dst_translated_port": "8080",
"created_at": "2018-12-13T14:15:02.932000+00:00",
"updated_at": "2018-12-13T14:15:02.932000+00:00"
}
]
}
[
DestinationNatRule(
id=1,
enabled=True,
order=3,
linked_rule=LinkedRule(
id=20,
group_name=None,
description=None
),
group_id=1,
zone="dmz",
description="Rule01",
action="nat",
protocol="tcp/udp",
log_enabled=False,
log_info=None,
src_conn_type="connection",
src_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="ip",
dst_addr="192.168.10.10",
dst_port_type="range",
dst_port="8000:8080",
dst_translated_addr="172.10.0.15",
dst_translated_port=None,
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'))
),
DestinationNatRule(
id=2,
enabled=true,
order=8,
linked_rule=None,
group_id=2,
zone="guest",
description="Rule02",
action="nat",
protocol="ip",
log_enabled=False,
log_info=None,
src_conn_type="connection",
src_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="network",
dst_addr="192.168.0.0/24",
dst_port_type="port",
dst_port="1000",
dst_translated_addr="172.10.0.15",
dst_translated_port="8080",
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: {
id: 20,
groupName: null,
description: null
},
groupId: 1,
zone: "dmz",
description: "Rule01",
action: "nat",
protocol: "tcp/udp",
logEnabled: false,
logInfo: null,
srcConnType: "connection",
srcConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "ip",
dstAddr: "192.168.10.10",
dstPortType: "range",
dstPort: "8000:8080",
dstTranslatedAddr: "172.10.0.15",
dstTranslatedPort: null,
createdAt: "2018-12-13T12:20:02.000Z",
updatedAt: "2018-12-13T12:20:02.000Z"
},
{
id: 2,
enabled: true,
order: 8,
linkedRule: null,
groupId: 2,
zone: "dmz",
description: "Rule02",
action: "nat",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcConnType: "connection",
srcConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "network",
dstAddr: "192.168.0.0/24",
dstPortType: "port",
dstPort: "1000",
dstTranslatedAddr: "172.10.0.15",
dstTranslatedPort: 8080,
createdAt: "2018-12-13T14:15:02.000Z",
updatedAt: "2018-12-13T14:15:02.000Z"
}
];
API de consulta de regra de NAT de destino
id
Exemplo de requisição
GET /api/firewall/rules/dnat/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.get_destination_nat_rule(id=1)
print(response.payload)
const response = sdk.firewall.getDestinationNatRule({ id: 1 });
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"enabled": true,
"order": 3,
"linked_rule": {
"id": 5,
"group_name": "ForwardGroup01",
"description": "ForwardRule01",
},
"group_id": 1,
"zone": "dmz",
"description": "Rule01",
"action": "nat",
"protocol": "tcp/udp",
"log_enabled": false,
"log_info": null,
"src_conn_type": "connection",
"src_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "ip",
"dst_addr": "192.168.10.10",
"dst_port_type": "range",
"dst_port": "8000:8080",
"dst_translated_addr": "172.10.0.15",
"dst_translated_port": null,
"created_at": "2018-12-13T12:20:02.932000+00:00",
"updated_at": "2018-12-13T12:20:02.932000+00:00"
}
DestinationNatRule(
id=1,
enabled=True,
order=3,
linked_rule=LinkedRule(
id=5,
group_name="ForwardGroup01",
description="ForwardRule01",
),
group_id=1,
zone="dmz",
description="Rule01",
action="nat",
protocol="tcp/udp",
log_enabled=False,
log_info=None,
src_conn_type="connection",
src_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="ip",
dst_addr="192.168.10.10",
dst_port_type="range",
dst_port="8000:8080",
dst_translated_addr="172.10.0.15",
dst_translated_port=None,
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'))
)
{
id: 1,
enabled: true,
order: 3,
linkedRule: {
id: 5,
groupName: "ForwardGroup01",
description: "ForwardRule01",
},
groupId: 1,
zone: "dmz",
description: "Rule01",
action: "nat",
protocol: "tcp/udp",
logEnabled: false,
logInfo: null,
srcConnType: "connection",
srcConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "ip",
dstAddr: "192.168.10.10",
dstPortType: "range",
dstPort: "8000:8080",
dstTranslatedAddr: "172.10.0.15",
dstTranslatedPort: null,
createdAt: "2018-12-13T12:20:02.000Z",
updatedAt: "2018-12-13T12:20:02.000Z"
}
API de criação de regra de NAT de destino
Exemplo de requisição
POST /api/firewall/rules/dnat?zone=lan 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,
"description": "New Rule",
"action": "nat",
"protocol": "tcp",
"log_enabled": false,
"src_conn_type": "connection",
"src_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "ip",
"dst_addr": "192.168.10.10",
"dst_port_type": "range",
"dst_port": "8000:8080",
"dst_translated_addr": "192.168.201.64",
"linked_dnat_rule": false,
"linked_group_id": null,
"apply": true
}
from itflex_sdk.firewall.types import CreateDestinationNatRuleRequest
request = CreateDestinationNatRuleRequest(
enabled=True,
order=11,
group_id=1,
zone="lan",
description="New Rule",
action="nat",
protocol="tcp",
log_enabled=False,
src_conn_type="connection",
src_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="ip",
dst_addr="192.168.10.10",
dst_port_type="range",
dst_port="8000:8080",
dst_translated_addr="192.168.201.64",
linked_dnat_rule=False,
linked_group_id=None,
apply=True
)
response = sdk.firewall.create_destination_nat_rule(request)
print(response.payload)
const destinationNatRule = sdk.dbc.types.DestinationNatRule();
destinationNatRule.enabled = true;
destinationNatRule.order = 11;
destinationNatRule.groupId = 1;
destinationNatRule.zone = "lan";
destinationNatRule.description = "New Rule";
destinationNatRule.action = "nat";
destinationNatRule.protocol = "tcp";
destinationNatRule.logEnabled = false;
destinationNatRule.srcConnType = "connection";
destinationNatRule.srcConn = "iface:1";
destinationNatRule.srcAddrType = "zone";
destinationNatRule.srcAddr = "wan";
destinationNatRule.dstAddrType = "ip";
destinationNatRule.dstAddr = "192.168.10.10";
destinationNatRule.dstPortType = "range";
destinationNatRule.dstPort = "8000:8080";
destinationNatRule.dstTranslatedAddr = "192.168.201.64";
destinationNatRule.linkedDnatRule: false;
destinationNatRule.linkedGroupId: null;
destinationNatRule.apply: true;
const response = sdk.firewall.createDestinationNatRule(destinationNatRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"linked_rule": null,
"group_id": 1,
"zone": "dmz",
"description": "New Rule",
"action": "nat",
"protocol": "tcp",
"log_enabled": false,
"log_info": null,
"src_conn_type": "connection",
"src_conn": "iface:1",
"src_addr_type": "zone",
"src_addr": "wan",
"dst_addr_type": "ip",
"dst_addr": "192.168.10.10",
"dst_port_type": "range",
"dst_port": "8000:8080",
"dst_translated_addr": "192.168.201.64",
"dst_translated_port": null,
"created_at": "2018-12-14T09:20:02.932000+00:00",
"updated_at": "2018-12-14T09:20:02.932000+00:00"
}
DestinationNatRule(
id=3,
enabled=True,
order=11,
linked_rule=None,
group_id=1,
zone="dmz",
description="New Rule",
action="nat",
protocol="tcp",
log_enabled=False,
log_info=None,
src_conn_type="connection",
src_conn="iface:1",
src_addr_type="zone",
src_addr="wan",
dst_addr_type="ip",
dst_addr="192.168.10.10",
dst_port_type="range",
dst_port="8000:8080",
dst_translated_addr="192.168.201.64",
dst_translated_port=None,
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: null,
groupId: 1,
zone: "dmz",
description: "New Rule",
action: "nat",
protocol: "tcp",
logEnabled: false,
logInfo: null,
srcConnType: "connection",
srcConn: "iface:1",
srcAddrType: "zone",
srcAddr: "wan",
dstAddrType: "ip",
dstAddr: "192.168.10.10",
dstPortType: "range",
dstPort: "8000:8080",
dstTranslatedAddr: "192.168.201.64",
dstTranslatedPort: null,
createdAt: "2018-12-14T09:20:02.000Z",
updatedAt: "2018-12-14T09:20:02.000Z"
}
API de edição de regra de NAT de destino
id
Exemplo de requisição
PUT /api/firewall/rules/dnat/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": "nat",
"protocol": "ip",
"log_enabled": false,
"src_conn_type": "any",
"src_addr_type": "any",
"dst_addr_type": "any",
"dst_translated_addr": "192.168.201.64",
"apply": true
}
from itflex_sdk.firewall.types import UpdateDestinationNatRuleRequest
request = UpdateDestinationNatRuleRequest(
id=3,
enabled=True,
order=11,
description="New Rule",
action="nat",
protocol="ip",
log_enabled=False,
src_conn_type="any",
src_addr_type="any",
dst_addr_type="any",
dst_translated_addr="192.168.201.64",
apply=True
)
response = sdk.firewall.update_destination_nat_rule(request)
print(response.payload)
const destinationNatRule = {
id: 3,
enabled: true,
order: 11,
description: "New Rule",
action: "nat",
protocol: "ip",
logEnabled: false,
srcConnType: "any",
srcAddrType: "any",
dstAddrType: "any",
dstTranslatedAddr: "192.168.201.64",
apply: true
};
const response = sdk.firewall.updateDestinationNatRule(destinationNatRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"linked_rule": null,
"group_id": 1,
"zone": "dmz",
"description": "New Rule",
"action": "nat",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_conn_type": "any",
"src_conn": null,
"src_addr_type": "any",
"src_addr": null,
"dst_addr_type": "any",
"dst_addr": null,
"dst_port_type": null,
"dst_port": null,
"dst_translated_addr": "192.168.201.64",
"dst_translated_port": null,
"created_at": "2018-12-14T09:20:02.932000+00:00",
"updated_at": "2018-12-14T10:30:02.932000+00:00"
}
DestinationNatRule(
id=3,
enabled=True,
order=11,
linked_rule=None,
group_id=1,
zone="dmz",
description="New Rule",
action="nat",
protocol="ip",
log_enabled=False,
log_info=None,
src_conn_type="any",
src_conn=None,
src_addr_type="any",
src_addr=None,
dst_addr_type="any",
dst_addr=None,
dst_port_type=None,
dst_port=None,
dst_translated_addr="192.168.201.64",
dst_translated_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: null,
groupId: 1,
zone: "dmz",
description: "New Rule",
action: "nat",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcConnType: "any",
srcConn: null,
srcAddrType: "any",
srcAddr: null,
dstAddrType: "any",
dstAddr: null,
dstPortType: null,
dstPort: null,
dstTranslatedAddr: "192.168.201.64",
dstTranslatedPort: null,
createdAt: "2018-12-14T09:20:02.000Z",
updatedAt: "2018-12-14T10:30:02.000Z"
}
API de exclusão de regra de NAT de destino
id
Se houver uma regra de Forward associada, ela será excluída automaticamente.
Exemplo de requisição
DELETE /api/firewall/rules/dnat/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.delete_destination_nat_rule(id=1)
const response = sdk.firewall.deleteDestinationNatRule({ id: 1 });
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
API de aplicação de regras de NAT de destino
Exemplo de requisição
POST /api/firewall/rules/dnat/apply HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
{
"zone": "lan"
}
from itflex_sdk.firewall.types import ApplyDestinationNatRulesRequest
request = ApplyDestinationNatRulesRequest(
zone="lan"
)
response = sdk.firewall.apply_destination_nat_rules(request)
const response = sdk.firewall.applyDestinationNatRules({ zone: "lan" });
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 NAT de destino |
Parâmetros de consulta
Campo | Descrição |
---|---|
zone | string Zona onde serão aplicadas as regras de encaminhamento Valores possíveis:
|
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. |
||||||||||||
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 de Forward de destino 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 entrada dos pacotes. Valores possíveis:
|
||||||||||||
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:
|
||||||||||||
src_addr_type | stringrequerido Tipo do endereço de origem dos pacotes. Valores possíveis:
|
||||||||||||
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:
|
||||||||||||
dst_addr_type | stringrequerido Tipo do endereço de destino dos pacotes. Valores possíveis:
|
||||||||||||
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 conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo:
|
||||||||||||
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
|
||||||||||||
dst_translated_addr | string IP de destino traduzido pela regra de NAT de destino Se o valor do campo Requerido se: campo |
||||||||||||
dst_translated_port | string Porta de destino traduzida pela regra de NAT de destino. O valor do campo deve estar entre Algumas condições obrigam que este campo receba o valor
|
||||||||||||
linked_dnat_rule | boolean Flag que habilita a criação de uma regra de forward de destino associada. Este campo só é valido quando o campo |
||||||||||||
linked_group_id | int Identificador do grupo de regra utilizado na criação da regra de forward de destino. Este campo só é valido quando o 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 NAT de destino |
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 Forward de destino associada. |
group_id | int Identificador do grupo da regra. |
zone | string Zona 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_conn_type | string Tipo da conexão de saída dos pacotes. |
src_conn | string Conexão ou Zona de origem dos pacotes. |
src_addr_type | string Tipo do endereço de origem dos pacotes. |
src_addr | string Endereço 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. |
dst_translated_addr | int IP de destino traduzido pela regra de NAT de destino. |
dst_translated_port | string Porta de destino traduzida pela regra de NAT de destino. |
created_at | string Data de criação
|
updated_at | string Data da última edição
|