Esta é uma API de gerenciamento das regras de NAT de origem de Firewall
Regras de tradução do endereço de origem dos pacotes.
API de listagem de regras de NAT de origem
Esta api permite fazer filtros através de 1 parâmetro na URL (QueryString), que é: zone
Exemplo de requisição
GET /api/firewall/rules/snat?zone=global HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
from itflex_sdk.firewall.types import GetSourceNatRulesRequest
request = GetSourceNatRulesRequest(
zone="global"
)
response = sdk.firewall.get_source_nat_rules(request)
print(response.payload)
const response = sdk.firewall.getSourceNatRules({ zone: "global" });
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"source_nat_rules": [
{
"id": 1,
"enabled": true,
"order": 3,
"group_id": 1,
"zone": "dmz",
"description": "Rule01",
"action": "accept",
"protocol": "tcp/udp",
"log_enabled": false,
"log_info": null,
"src_addr_type": "ip",
"src_addr": "192.168.10.10",
"src_translated_addr": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"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": 2,
"enabled": true,
"order": 8,
"group_id": 2,
"zone": "guest",
"description": "Rule02",
"action": "nat",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_addr_type": "ip",
"src_addr": "192.168.10.10",
"src_translated_addr": "192.168.0.23",
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"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"
}
]
}
[
SourceNatRule(
id=1,
enabled=True,
order=3,
group_id=1,
zone="dmz",
description="Rule01",
action="accept",
protocol="tcp/udp",
log_enabled=False,
log_info=None,
src_addr_type="ip",
src_addr="192.168.10.10",
src_translated_addr=None,
dst_conn_type="connection",
dst_conn="iface:1",
dst_addr_type="zone",
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'))
),
SourceNatRule(
id=2,
enabled=True,
order=8,
group_id=2,
zone="guest",
description="Rule02",
action="nat",
protocol="ip",
log_enabled=False,
log_info=None,
src_addr_type="ip",
src_addr="192.168.10.10",
src_translated_addr="192.168.0.23",
dst_conn_type="connection",
dst_conn="iface:1",
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,
groupId: 1,
zone: "dmz",
description: "Rule01",
action: "accept",
protocol: "tcp/udp",
logEnabled: false,
logInfo: null,
srcAddrType: "ip",
srcAddr: "192.168.10.10",
srcTranslatedAddr: null,
dstConnType: "connection",
dstConn: "iface:1",
dstAddrType: "zone",
dstAddr: "wan",
dstPortType: "range",
dstPort: "8000:8080",
createdAt: "2018-12-13T12:20:02.000Z",
updatedAt: "2018-12-13T12:20:02.000Z"
},
{
id: 2,
enabled: true,
order: 8,
groupId: 2,
zone: "guest",
description: "Rule02",
action: "nat",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcAddrType: "ip",
srcAddr: "192.168.10.10",
srcTranslatedAddr: "192.168.0.23",
dstConnType: "connection",
dstConn: "iface:1",
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 NAT de origem
id
Exemplo de requisição
GET /api/firewall/rules/snat/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.get_source_nat_rule(id=1)
print(response.payload)
const response = sdk.firewall.getSourceNatRule({ id: 1 });
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 1,
"enabled": true,
"order": 3,
"group_id": 1,
"zone": "dmz",
"description": "Rule01",
"action": "accept",
"protocol": "tcp/udp",
"log_enabled": false,
"log_info": null,
"src_addr_type": "ip",
"src_addr": "192.168.10.10",
"src_translated_addr": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"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"
}
SourceNatRule(
id=1,
enabled=True,
order=3,
group_id=1,
zone="dmz",
description="Rule01",
action="accept",
protocol="tcp/udp",
log_enabled=False,
log_info=None,
src_addr_type="ip",
src_addr="192.168.10.10",
src_translated_addr=None,
dst_conn_type="connection",
dst_conn="iface:1",
dst_addr_type="zone",
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'))
)
{
id: 1,
enabled: true,
order: 3,
groupId: 1,
zone: "dmz",
description: "Rule01",
action: "accept",
protocol: "tcp/udp",
logEnabled: false,
logInfo: null,
srcAddrType: "ip",
srcAddr: "192.168.10.10",
srcTranslatedAddr: null,
dstConnType: "connection",
dstConn: "iface:1",
dstAddrType: "zone",
dstAddr: "wan",
dstPortType: "range",
dstPort: "8000:8080",
createdAt: "2018-12-13T12:20:02.000Z",
updatedAt: "2018-12-13T12:20:02.000Z"
}
API de criação de regra de NAT de origem
Exemplo de requisição
POST /api/firewall/rules/snat?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": "accept",
"protocol": "tcp",
"log_enabled": false,
"src_addr_type": "ip",
"src_addr": "192.168.10.10",
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"dst_addr_type": "zone",
"dst_addr": "wan",
"dst_port_type": "range",
"dst_port": "8000:8080",
"apply": true
}
from itflex_sdk.firewall.types import CreateSourceNatRuleRequest
request = CreateSourceNatRuleRequest(
enabled=True,
order=11,
group_id=1,
zone="lan",
description="New Rule",
action="accept",
protocol="tcp",
log_enabled=False,
src_addr_type="ip",
src_addr="192.168.10.10",
dst_conn_type="connection",
dst_conn="iface:1",
dst_addr_type="zone",
dst_addr="wan",
dst_port_type="range",
dst_port="8000:8080",
apply=True
)
response = sdk.firewall.create_source_nat_rule(request)
print(response.payload)
const sourceNatRule = sdk.dbc.types.SourceNatRule();
sourceNatRule.enabled = true;
sourceNatRule.order = 11;
sourceNatRule.groupId = 1;
sourceNatRule.zone = "lan";
sourceNatRule.description = "New Rule";
sourceNatRule.action = "accept";
sourceNatRule.protocol = "tcp";
sourceNatRule.logEnabled = false;
sourceNatRule.srcAddrType = "ip";
sourceNatRule.srcAddr = "192.168.10.10";
sourceNatRule.dstConnType = "connection";
sourceNatRule.dstConn = "iface:1";
sourceNatRule.dstAddrType = "zone";
sourceNatRule.dstAddr = "wan";
sourceNatRule.dstPortType = "range";
sourceNatRule.dstPort = "8000:8080";
sourceNatRule.apply = true;
const response = sdk.firewall.createSourceNatRule(sourceNatRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"group_id": 1,
"zone": "dmz",
"description": "New Rule",
"action": "accept",
"protocol": "tcp",
"log_enabled": false,
"log_info": null,
"src_addr_type": "ip",
"src_addr": "192.168.10.10",
"src_translated_addr": null,
"dst_conn_type": "connection",
"dst_conn": "iface:1",
"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"
}
SourceNatRule(
id=3,
enabled=True,
order=11,
group_id=1,
zone="dmz",
description="New Rule",
action="accept",
protocol="tcp",
log_enabled=False,
log_info=None,
src_addr_type="ip",
src_addr="192.168.10.10",
src_translated_addr=None,
dst_conn_type="connection",
dst_conn="iface:1",
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,
groupId: 1,
zone: "dmz",
description: "New Rule",
action: "accept",
protocol: "tcp",
logEnabled: false,
logInfo: null,
srcAddrType: "ip",
srcAddr: "192.168.10.10",
srcTranslatedAddr: null,
dstConnType: "connection",
dstConn: "iface:1",
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 NAT de origem
id
Exemplo de requisição
PUT /api/firewall/rules/snat/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_addr_type": "any",
"dst_conn_type": "any",
"dst_addr_type": "any",
"dst_addr": "wan",
"apply": true
}
from itflex_sdk.firewall.types import UpdateSourceNatRuleRequest
request = UpdateSourceNatRuleRequest(
id=3,
enabled=True,
order=11,
description="New Rule",
action="accept",
protocol="ip",
log_enabled=False,
src_addr_type="any",
dst_conn_type="any",
dst_addr_type="any",
apply=True
)
response = sdk.firewall.update_source_nat_rule(request)
print(response.payload)
const sourceNatRule = {
id: 3,
enabled: true,
order: 11,
description: "New Rule",
action: "accept",
protocol: "ip",
logEnabled: false,
srcAddrType: "any",
dstConnType: "any",
dstAddrType: "any",
apply: true
};
const response = sdk.firewall.updateSourceNatRule(sourceNatRule);
console.log(response.payload);
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
{
"id": 3,
"enabled": true,
"order": 11,
"group_id": 1,
"zone": "dmz",
"description": "New Rule",
"action": "accept",
"protocol": "ip",
"log_enabled": false,
"log_info": null,
"src_addr_type": "any",
"src_addr": null,
"src_translated_addr": null,
"dst_conn_type": "any",
"dst_conn": 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"
}
SourceNatRule(
id=3,
enabled=True,
order=11,
group_id=1,
zone="dmz",
description="New Rule",
action="accept",
protocol="ip",
log_enabled=False,
log_info=None,
src_addr_type="any",
src_addr=None,
src_translated_addr=None,
dst_conn_type="any",
dst_conn=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,
groupId: 1,
zone: "dmz",
description: "New Rule",
action: "accept",
protocol: "ip",
logEnabled: false,
logInfo: null,
srcAddrType: "any",
srcAddr: null,
srcTranslatedAddr: null,
dstConnType: "any",
dstConn: 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 NAT de origem
id
Exemplo de requisição
DELETE /api/firewall/rules/snat/1 HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
response = sdk.firewall.delete_source_nat_rule(id=1)
const response = sdk.firewall.deleteSourceNatRule({ id: 1 });
Exemplo de resposta
HTTP/1.1 200 OK
Content-Type: application/json
API de aplicação de regras de NAT de origem
Exemplo de requisição
POST /api/firewall/rules/snat/apply HTTP/1.1
Host: api.exemplo.com
Accept: application/json
Authorization: Bearer <Access-Token>
{
"zone": "lan"
}
from itflex_sdk.firewall.types import ApplySourceNatRulesRequest
request = ApplySourceNatRulesRequest(
zone="lan"
)
response = sdk.firewall.apply_source_nat_rules(request)
const response = sdk.firewall.applySourceNatRules({ 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 origem |
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á. 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_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 conexão, esta deve satisfazer a regra do nível de segurança das Zonas conforme descrito abaixo:
|
||||||||||||
src_translated_addr | string IP de origem traduzido pela regra de NAT de origem. Se o valor do campo Requerido se: campo |
||||||||||||
dst_conn_type | stringrequerido Tipo da conexão de saída dos pacotes. Valores possíveis:
|
||||||||||||
dst_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:
|
||||||||||||
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 zona ou 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
|
||||||||||||
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 origem |
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. |
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_addr_type | string Tipo do endereço de origem dos pacotes. |
src_addr | string Endereço de origem dos pacotes. |
src_translated_addr | string IP de origem traduzido pela regra de NAT de origem. |
dst_conn_type | string Tipo da conexão de saída 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
|