Regra de Firewall > Filter Rule para acesso externo à RB
Galera, estou tendo um problema meio que esquisito.
Tenho uma RB750Gr2 com dois links, tudo está funcionando normal, balance, redirecionamento de portas, failover e etc, no entanto estou enfrentando problemas para acessar a RB via winbox de fora da minha rede.
A parte estranha começa agora. Pelo link da GVT eu consigo acesso normal, mas qdo tento acesso via link da NET, não consigo entrar por nada na RB. Os dois modens possuem DMZ para a RB, e os dois modens possui diversos redirecionamentos, e tudo funciona, tanto num link qto no outro, mas qdo é a para entrar na RB via Winbox aí não vai.
Alguém sabe me dizer o que pode ser isso? Vejam as regras abaixo.
Obs.: Eu alterei a porta padrão do winbox para 8222
/ip firewall filter
add chain=input in-interface=REDE
add chain=input dst-port=8222 in-interface=GVT protocol=tcp
add chain=input dst-port=8222 in-interface=NET protocol=tcp
add action=drop chain=input
Re: Regar de Firewall > Filter Rule para acesso externo à RB
Boa tarde @maxwbr
Coloca ai as regras de mangle
Código :
/ip firewall mangle print
E das rotas
Re: Regar de Firewall > Filter Rule para acesso externo à RB
Citação:
Postado originalmente por
inquiery
Boa tarde @
maxwbr
Coloca ai as regras de mangle
Código :
/ip firewall mangle print
E das rotas
Segue aí mano
Código :
/ip firewall mangle
add chain=prerouting comment=CNPQ dst-address-list=LINK_NET
add chain=prerouting comment="HTTPS LIVRE" disabled=yes dst-port=443 in-interface=REDE protocol=tcp
add action=change-ttl chain=forward comment="Filtro Tracert / Traceroute" new-ttl=set:30 protocol=icmp
add action=mark-connection chain=input in-interface=GVT new-connection-mark=GVT_CONN
add action=mark-connection chain=input in-interface=NET new-connection-mark=NET_CONN
add action=mark-routing chain=output connection-mark=GVT_CONN new-routing-mark=GVT_ROUTE out-interface=GVT
add action=mark-routing chain=output connection-mark=NET_CONN new-routing-mark=NET_ROUTE out-interface=NET
add action=mark-connection chain=prerouting connection-state=new in-interface=GVT new-connection-mark=GVT_CONN
add action=mark-connection chain=prerouting connection-state=new in-interface=NET new-connection-mark=NET_CONN
add chain=prerouting dst-address=10.10.10.0/24 in-interface=REDE
add action=mark-connection chain=prerouting connection-state=new dst-address-type=!local in-interface=REDE new-connection-mark=GVT_CONN per-connection-classifier=both-addresses-and-ports:2/0
add action=mark-connection chain=prerouting connection-state=new dst-address-type=!local in-interface=REDE new-connection-mark=NET_CONN per-connection-classifier=both-addresses-and-ports:2/1
add action=mark-routing chain=prerouting connection-mark=GVT_CONN in-interface=REDE new-routing-mark=GVT_ROUTE
add action=mark-routing chain=prerouting connection-mark=NET_CONN in-interface=REDE new-routing-mark=NET_ROUTE
Código :
/ip route
add distance=3 gateway=192.168.25.1 routing-mark=GVT_ROUTE
add distance=1 gateway=192.168.0.1 routing-mark=NET_ROUTE
add check-gateway=ping distance=2 gateway=192.168.25.1
add check-gateway=ping distance=3 gateway=192.168.0.1
add distance=1 dst-address=4.2.2.1/32 gateway=192.168.0.1
add distance=1 dst-address=4.2.2.2/32 gateway=192.168.25.1
add comment="Portal de Peri\F3dicos CAPES" distance=1 dst-address=200.130.19.24/32 gateway=192.168.25.1
add comment="CNPQ > NET" distance=1 dst-address=200.130.33.0/24 gateway=192.168.0.1
add comment="CNPQ > GVT" disabled=yes distance=1 dst-address=200.130.33.0/24 gateway=192.168.25.1
Re: Regar de Firewall > Filter Rule para acesso externo à RB
Então @maxwbr,
Não se incomode muito se eu fizer considerações as quais você já sabe, mas vamos lá.
Quando um pacote não é marcado (routing-mark), ele vai sair pela rota padrão de menor distancia da tabela main. A tabela main são as rotas que não possuem nome nenhum. Então a sua primeira regra, que não define action e portanto o action padrão é accept vai dar accept em todos os pacotes que o endereço de destino estiverem na address-list "LINK_NET", e isso vai fazer o pacote sair sempre pela rota da GVT (192.168.25.1) que é uma rota de distancia 2 da tabela main (sem nome/routing-mark).
Você tem que considerar também, no mangle, o packet flow. Todo pacote que entra por uma interface, vai cair sempre primeiro no chain prerouting. O pacote, ao entrar pela porta do link da NET_ROUTE, vai ganhar uma connection-mark NET_CONN, pois primeiro o chain prerouting acontece aqui, logo após isso, ele vai para o chain output, e aqui a decisão de roteamento já foi feita. Como o pacote não ganhou nenhuma routing-mark (as 2 ultimas regras só marcam caso o pacote vanha da interface REDE, e no caso de acessar tua RB de fora o pacote não vai vir por essa interface), ele caiu na tabela main, na qual a rota de menor distancia é o 192.168.25.1. Ou seja, o pacote entra por uma rota e tenta responder por outra.
As suas duas regras que dão routing-mark no chain output não vão funcionar, pois o pacote quando chegou no chain output já passou pela tabela de roteamento. Você precisa fazer essa marcação no chain prerouting, e somente quando o pacote está saindo da RB para a internet. Algo do tipo:
Código :
/ip firewall mangle add chain=prerouting src-address-type=local connection-mark=GVT_CONN action=mark-routing new-routing-mark=GVT_ROUTE
/ip firewall mangle add chain=prerouting src-address-type=local connection-mark=NET_CONN action=mark-routing new-routing-mark=NET_ROUTE
Assim sendo, aquelas 2 regras no chain output são desnecessárias. E alias, as regras do chain input também são pois o pacote já vai ser marcado pelas regras de prerouting com as connection-marks GVT_CONN e NET_CONN; as regras no input só vão refazer essa marcação, são desnecessárias e apesar de ser mínimo, é um processamento a mais desnecessário.
Faz um teste ai. Pois essas regras costumam embaralhar a cabeça e eu costumo errar bastante na analise mesmo de regras simples.
Re: Regar de Firewall > Filter Rule para acesso externo à RB
ps.: fui responder via celular e acabou que apaguei a resposta sem querer rs. Mas vamo lá novamente.
@inquiery, cara, muitíssimo obrigado pela resposta. Isso foi uma aula pra mim, estou começando agora no mundo do mikrotik, estou batendo mta cabeça, mas estou caminhando. Graças a pessoas como você, consigo pescar coisas aqui e ali e, aos poucos vou absorvendo.
Mas só uma pergunta, aquelas regras de input e output são desnecessárias mesmo para o balance?
Vou testar suas dicas, e posto aqui o resultado. :)
Mais uma vez, meus sinceros agradecimentos.