Você está na página 1de 29

Controle de Firewall com

Forward
Conteúdo
• Forward
• Forward para Masquerade e SNAT
• Liberar ping
• Liberar DNS
• Demais Liberações
• Regras de firewall para DNAT
• DMZ
• Estado de Conexão (Established, Related)
Forward

Até agora vimos como criar regras de firewall, vimos como


fazer NAT, mas de fato não vimos como controlar nossos clientes.
Na tabela filter, as cadeias INPUT e OUTPUT quase não são
usadas, pois não temos muitos serviços a oferecer, o que podemos
fazer é controlar de fato o que o pessoal de fora, na WAN pode
acessar, criando algumas regras de DROP para serviços do RouterOS.
Neste primeiro momento iremos ver como controlar o que pode
ou não ser acessada da Internet para LAN, e LAN para Internet.
Forward para Masquarede e
SNAT
Nossas regras consistem em liberar as portas necessárias, e depois
bloquear tudo. Para iniciar podemos criar uma regra de DROP
no FORWARD como política padrão. Na realidade criaremos
uma regra FORWARD sem origem ou destino, com action DROP,
e está será a última regra na cadeia Forward.
A partir desse momento, nenhum cliente irá conseguir sequer
pingar para fora da rede, ou acessar algo na internet.
Forward para Masquarede e
SNAT
Não basta criar uma regra apenas liberando minha rede interna
dar ping, mas é necessário liberar o retorno do ping com destino
a rede interna. Desta forma temos duas possibilidades, na
realidade três mas falarei apenas de duas nesse momento, e
mais a frente nesse capitulo, falarei da terceira.
Criamos uma regra genérica de liberação ICMP no forward. Algo
como:
IP Origem: Qualquer
IP Destino: Qualquer
Protocolo: ICMP
Action: Accept
Forward para Masquarede e
SNAT

Essa seria a primeira solução, onde uma regra somente é criada. O


grande problema, é que estamos com uma regra muita aberta,
o que pode ocasionar alguns tipos de ataques, como DOS
através de ICMP Flood, entre outros. Então a segunda solução é,
criar uma regra que permite a rede LAN usar ICMP e outra regra
que permite a rede LAN receber ICMP.
Podemos ser mais específicos usando o tipo ICMP, echo request
para permitir a LAN dar um ping, e outra regra com echo-reply
para permitir a rede LAN receber a resposta do ping. Essa com
certeza é mais interessante.
Forward para Masquarede e
SNAT
Então teríamos para primeira regra, permitindo o ping através do
echo-request (código 8:0 do icmp-options):
• IP de Origem: 192.168.1.0/24
• Protocolo: ICMP
• ICMP-TYPE: 8:0 (echo-request)
• Action: accept
E para segunda regra, permitir que a minha rede LAN de destino,
consiga receber a resposta do ping, através do icmp-options 0:0
que é a resposta do ping echo-reply.
• IP de Destino: 192.168.1.0/24
• Protocolo: ICMP
• ICMP-TYPE: 0:0 (echo-replay)
• Action: accept
Permitir echo-request
Permitir echo-reply
Regra do Ping

Então sempre devemos criar regras de ida e volta para qualquer


protocolo. Ainda não falei da terceira opção, mas vamos criar
todas nossas liberações primeiro. Então temos as seguintes regras
por enquanto:
Regra do ping via CLI

ip firewall filter add chain=forward action=accept protocol=icmp


icmp-options=8:0 src-address=192.168.1.0/24
ip firewall filter add chain=forward action=accept protocol=icmp
icmp-options=0:0 dst-address=192.168.1.0/24
ip firewall filter add chain=forward action=drop
.
Liberação DNS

Agora vamos analisar a figura abaixo para liberação de


DNS: .
Liberação DNS
Podemos ver que temos dois fluxos, um indo com destino ao
servidor DNS, e outro voltando do DNS, ou seja, na ida temos
origem nossa rede interna, solicitando informações na porta
53/UDP do servidor DNS, e na volta temos como origem o
servidor DNS, com sua porta 53/UDP respondendo a solicitação
a nossa rede interna.
Então teremos as seguintes regras:
• Origem: 192.168.1.0/24 Destino: Servidor DNS Porta de destino:
53/UDP
• Origem: Servidor DNS Destino: 192.168.1.0/24 Porta de Origem:
53/UDP
Podemos ver que usamos a porta de destino na ida 53/UDP e na
volta 53/UDP como porta de origem.
.
Regras de DNS

Vamos as regras:
ip firewall filter add chain=forward action=accept src-ddress=192.168.1.0/24
protocol=udp dst-port=53
ip firewall filter add chain=forward action=accept dst-ddress=192.168.1.0/24
protocol=udp src-port=53
Demais liberações

Agora que já sabemos como funciona, teremos que criar sempre


regras que permitam a solicitação e outras que permitam os
servidores responderem nossos clientes, dessa forma, sempre ida
e volta. Então vamos criar o restante das regras para permitir
que nossos clientes possam navegar, receber e enviar email,
entre outros, veja tabela abaixo, lembrando que Ping e DNS: .
Demais liberações
Status Servidor Porta FLUXO

Solicitação HTTP DPORT 80/TCP IDA

Resposta HTTP SPORT 80/TCP VOLTA

Solicitação HTTPS DPORT 443/TCP IDA

Resposta HTTPS SPORT 443/TCP VOLTA

Solicitação POP3 DPORT 110/TCP IDA

Resposta POP3 SPORT 110/TCP VOLTA

Solicitação SMTP DPORT 25/TCP IDA

Resposta SMTP SPORT 25/TCP VOLTA

Solicitação SUBMISSION DPORT 587/TCP IDA

Resposta SUBMISSION SPORT 587/TCP VOLTA

Solicitação SPOP3 DPORT 995/TCP IDA

Resposta SPOP3 SPORT 995/TCP VOLTA

Solicitação SSH DPORT 22/TCP IDA

Resposta SSH SPORT 22/TCP VOLTA


Regras demais liberações

ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24


protocol=tcp src-port=80
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=80
ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24
protocol=tcp src-port=443
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=443
ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24
protocol=tcp src-port=110
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=110
Regras demais liberações

ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24


protocol=tcp src-port=25
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=25
ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24
protocol=tcp src-port=587
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=587
ip firewall filter add chain=forward action=accept dst-address=192.168.1.0/24
protocol=tcp src-port=22
ip firewall filter add chain=forward action=accept src-address=192.168.1.0/24
protocol=tcp dst-port=22
Regras demais liberações

Abaixo, veja o final do nosso firewall:


Regras de Firewall para DNAT
Da mesma forma que criamos regras para liberar que nossos clientes
acessem a internet, é necessário criar regras de ida e volta para que a
Internet possa acessar nossos servidores na LAN.
Como disse anteriormente, esse não é o ideal dos mundos, pois estaremos
dando acesso para dentro de nossa LAN. O ideal seria uma DMZ, que
veremos nesse capitulo ainda.
Vejamos a imagem abaixo, de uma conexão na Internet para o Servidor
de Terminal Services (RDP 3389/TCP) com endereço ip 192.168.1.254.
Regras de Firewall para DNAT

Veja que basicamente é a mesma coisa, só que as portas em nossas regras


ficam do lado do nosso cliente. Teremos na ida o seguinte:
• IP de Origem: Qualquer
• IP de Destino: 192.168.1.254
• Porta de Destino: 3389/TCP
E na volta teremos o seguinte:
• IP de Origem: 192.168.1.254
• IP de Destino: Qualquer
• Porta de Origem: 3389/TCP

Desta forma estamos liberando que qualquer IP da internet possa acessar


somente a porta 3389 do endereço IP 192.168.1.254. Lembrando que
logicamente o DNAT já deve ter sido feito na interface NAT do firewall.
Regras de Firewall para DNAT
Regra de Firewall para DNAT via
CLI
Agora já temos a nossa regra de ida e volta criado para nosso Servidor de
Terminal Service pronto, vejamos como criar via Command Line, acima
a criação das regras de forward e abaixo o print da tabela NAT.

ip firewall filter add chain=forward action=accept dst-ddress=192.168.1.254


protocol=tcp dst-port=3389
ip firewall filter add chain=forward action=accept src-ddress=192.168.1.254
protocol=tcp src-port=3389

ip firewall nat print


Flags: X - disabled, I - invalid, D - dynamic
0 chain=dstnat action=dst-nat to-addresses=192.168.1.254 to-ports=3389
protocol=tcp in-interface=ether1 dst-port=3389
Firewall Completo – Tabela Filter
Agora sim, temos nosso firewall totalmente controlado. Bem, pelo
menos no que diz respeito a entrada e saída de pacotes. Veja
nosso firewall abaixo com todas as regras criadas.
Firewall Completo – Tabela NAT
DMZ

Uma DMZ ou rede desmilitarizada, também conhecida como rede de


perímetro, é uma rede isolada da rede LAN interna, onde essa rede
oferecerá serviços para internet, como por exemplo servidor WEB,
servidor de Email, entre outros.
O ideal é que a rede interna LAN, tenha acesso os serviços oferecidos pela
rede DMZ, mas a DMZ não tenha acesso a rede LAN.
Em nosso caso temos as seguintes configurações:
• Interface WAN: Ip publico
• Interface LAN : 192.168.1.1/24
• Interface DMZ: 172.16.0.1/24
• Servidor WEB na DMZ: 172.16.0.2/24
DMZ

Tendo essas informações devemos criar todas as regras de firewall e NATs


necessários. Os passos são os seguintes:
1. Compartilhar a internet com a LAN e DMZ
2. Criar regras de firewall na tabela filter Forward para permitir a saída da
rede Interna para qualquer lugar ou se for o casa para determinados
locais.
3. Enfim criar uma regra de forward, onde seja permitido a passagem total
ou de determinados pacotes, com exceção do destino a rede LAN.

Então para esse exemplo, vamos dizer que seja liberado tudo tanto na LAN
como na DMZ, menos o acesso direto da DMZ para LAN. Enquanto
conexões vinda da LAN para DMZ são liberadas.
DMZ

Então vamos primeira criar os NAT para as duas redes LAN e DMZ.

ip firewall nat add chain=srcnat src-address=192.168.1.0/24 out-interface=wa


n action=masquerade
ip firewall nat add chain=srcnat src-address=172.16.0.0/24 out-interface=wa
n action=masquerade

Proximo passo liberar forward da LAN:

ip firewall filter add chain=forward src-address=192.168.1.0/24 action=accept


ip firewall filter add chain=forward dst-address=192.168.1.0/24 action=accept

E por fim as regras de liberação da DMZ com a exceção.

ip firewall filter add chain=forward src-address=172.16.0.0/24 dst-


address=!192.168.1.0/24 –j accept
Ip firewall filter add chain=forward dst-address=172.16.0.0/24 –j accept

Você também pode gostar