+ Responder ao Tópico



  1. #1

    Padrão 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
    Última edição por maxwbr; 09-05-2016 às 08:10.

  2. #2

    Padrão 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

    Código :
    /ip route print

  3. #3

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Citação Postado originalmente por inquiery Ver Post
    Boa tarde @maxwbr

    Coloca ai as regras de mangle

    Código :
    /ip firewall mangle print

    E das rotas

    Código :
    /ip route print

    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
    Última edição por maxwbr; 07-05-2016 às 07:51.

  4. #4

    Padrão 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.

  5. #5

    Padrão 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.

  6. #6

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Buenas @maxwbr

    Código :
    /ip firewall mangle
    01 add chain=prerouting comment=CNPQ dst-address-list=LINK_NET
    02 add chain=prerouting comment="HTTPS LIVRE" disabled=yes dst-port=443 in-interface=REDE protocol=tcp
    03 add action=change-ttl chain=forward comment="Filtro Tracert / Traceroute" new-ttl=set:30 protocol=icmp
    04 add action=mark-connection chain=input in-interface=GVT new-connection-mark=GVT_CONN
    05 add action=mark-connection chain=input in-interface=NET new-connection-mark=NET_CONN
    06 add action=mark-routing chain=output connection-mark=GVT_CONN new-routing-mark=GVT_ROUTE out-interface=GVT
    07 add action=mark-routing chain=output connection-mark=NET_CONN new-routing-mark=NET_ROUTE out-interface=NET
    08 add action=mark-connection chain=prerouting connection-state=new in-interface=GVT new-connection-mark=GVT_CONN
    09 add action=mark-connection chain=prerouting connection-state=new in-interface=NET new-connection-mark=NET_CONN
    10 add chain=prerouting dst-address=10.10.10.0/24 in-interface=REDE
    11 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
    12 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
    13 add action=mark-routing chain=prerouting connection-mark=GVT_CONN in-interface=REDE new-routing-mark=GVT_ROUTE
    14 add action=mark-routing chain=prerouting connection-mark=NET_CONN in-interface=REDE new-routing-mark=NET_ROUTE

    Sim, aquelas regras são desnecessárias. A questão das regras de input (regras 04 e 05) estão ali só para marcar a conexão, que na realidade já vão ser marcadas ao passar pelo chain prerouting (regras 08 e 09). Como o chain prerouting "acontece antes" do input, apesar das regras estarem abaixo das de input, elas vão "executar" primeiro. É questão do packet-flow, o pacote entra na RB vindo de qualquer lugar, ele primeiro cai no prerouting para ser analisado antes de cair na tabela de roteamento, aqui nesse passo TODAS as regras de prerouting são analisadas, na ordem em que se encontram no mangle, porém, não importa que outros chain tem antes ou pelo meio das regras de prerouting, somente as regras de prerouting serão analisadas. Após passar pelo prerouting ai sim cai no input, e no seu caso, quando o pacote chegar no input ele ja ta com a conexão marcada, não precisa marcar denovo.

    Logo após passa pro output, e quando cai no output as decisões de roteamento ja foram tomadas. A routerboard ja decidiu pra qual rota mandar e por qual porta sair. Portanto, marcar a tabela de roteamento do pacote nessa etapa não faz efeito nenhum, a não ser no caso de um pacote que está sendo gerado pela própria routerboard. No caso da própria routerboard gerar o pacote (quando por exemplo você usa a ferramente ping), esse pacote cai direto no chain output, pois não precisa passar pelo prerouting considerando que não é um trafego que está sendo "roteado" pela routerboard, e sim ela mesmo que esta gerando. Mesmo aqui nesse caso não adiantaria você fazer marcação de rota no chain output, pois como disse, o pacote ja passou pela tabela de roteamento. Gerar pacotes na própria routerboard para que usem uma tabela de roteamento específica deve ser feita com as opções da própria ferramenta, o ping por exemplo tem um parametro para especificar o uso de uma routing-table, o que fara que a routerboard use a tabela de roteamento especificada para essa conexão específica.

  7. #7

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Acho que tenho mto que aprender ainda!

    Eu coloquei as regras (linhas 06 e 07) que você sugeriu, mas não surtiu efeito. Eu me confundo muito ainda na ordem das regras, apesar de você ter falado q nesse caso a prerouting sempre será executada primeiro. Mas outra coisa que me confunde, é que na linha 11 e 12 já possui um prerounting com as marcações mas no caso essas linhas permite apenas conexões na interface REDE certo? Então por isso há a necessidade de criar outras prerouting para permitir a entrada pelos links das operadoras? Desculpe-me se as perguntas são idiotas demais, mas é que realmente eu ainda estou aprendendo a trabalhar com mikrotik.

    Código :
    01 add chain=prerouting comment=CNPQ dst-address-list=LINK_NET02 add chain=prerouting comment="HTTPS LIVRE" disabled=yes dst-port=443 in-interface=REDE protocol=tcp
    03 add action=change-ttl chain=forward comment="Filtro Tracert / Traceroute" new-ttl=set:30 protocol=icmp
    04 add action=mark-connection chain=prerouting connection-state=new in-interface=GVT new-connection-mark=GVT_CONN
    05 add action=mark-connection chain=prerouting connection-state=new in-interface=NET new-connection-mark=NET_CONN
    06 add action=mark-routing chain=prerouting connection-mark=GVT_CONN new-routing-mark=GVT_ROUTE src-address-type=local
    07 add action=mark-routing chain=prerouting connection-mark=NET_CONN new-routing-mark=NET_ROUTE src-address-type=local
    08 add chain=prerouting dst-address=10.10.10.0/24 in-interface=REDE
    09 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
    10 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
    11 add action=mark-routing chain=prerouting connection-mark=GVT_CONN in-interface=REDE new-routing-mark=GVT_ROUTE
    12 add action=mark-routing chain=prerouting connection-mark=NET_CONN in-interface=REDE new-routing-mark=NET_ROUTE

  8. #8

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Deixa eu tirar uma dúvida aqui primeiro então @maxwbr, você tem algumas regras de filtro:

    Código :
    /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

    Pelo Winbox, edita a regra da porta 8222 da interface GVT e la na guia Action,j habilita a opção Log. Dai abre o log do mikrotik e ve qual é o src-address das requisições que caem naquela regra.

    Depois desmarca o Log dessa interface, e edita a regra na interface NET e habilita o Log nela. Novamente, verifica o src-address dos pacotes que caem ali. Depois pode desabilitar o Log nessa regra também.

    Quero saber se os dois modens fazem ou não mascaramento ao repassar as conexões para essas portas para a sua routerboard.

  9. #9

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Olha ae @inquiery.

    O log da NET fica só em 3 linhas mesmo, sempre q tento me conectar. O da GVT gera mtos logs, mas se repetem igual a esses aí.

    Código :
    17:06:38 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK,PSH), 191.248.41.114:63569->192.168.25.71:8222, len 104 
    17:06:38 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK,PSH), 191.248.41.114:63569->192.168.25.71:8222, len 232 
    17:06:39 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40 
    17:06:39 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40 
    17:06:39 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40 
    17:06:39 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40 
    17:06:40 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40 
    17:06:40 firewall,info entrando_GVT input: in:GVT out:(none), src-mac 2c:e4:12:a2:2b:71, proto TCP (ACK), 191.248.41.114:63569->192.168.25.71:8222, len 40


    Código :
    17:07:40 firewall,info entrando_NET input: in:NET out:(none), src-mac 14:cf:e2:64:21:61, proto TCP (SYN), 191.248.41.114:64094->192.168.0.103:8222, len 52 
    17:07:40 firewall,info entrando_NET input: in:NET out:(none), src-mac 14:cf:e2:64:21:61, proto TCP (SYN), 191.248.41.114:64095->192.168.0.103:8222, len 52 
    17:07:40 firewall,info entrando_NET input: in:NET out:(none), src-mac 14:cf:e2:64:21:61, proto TCP (SYN), 191.248.41.114:64096->192.168.0.103:8222, len 52
    Última edição por maxwbr; 07-05-2016 às 16:44.

  10. #10

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Eu achava que deveria funcionar, não to vendo o problema com as últimas regras.

    Tenta alterar elas (as regras 6 e 7), assim:

    Código :
    06 add action=mark-routing chain=prerouting connection-mark=GVT_CONN new-routing-mark=GVT_ROUTE src-address=192.168.25.71 
    07 add action=mark-routing chain=prerouting connection-mark=NET_CONN new-routing-mark=NET_ROUTE src-address=192.168.0.103

    Só como teste. Vou continuar pensando aqui o que pode ser que está dando, pois pelo que vi até agora deveria estar funcionando o acesso externo por qualquer link.

  11. #11

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Pois é @inquiery, o trem não vai. Eu já até desativei a DMZ e fiz só o redirecionamento da porta, só pra ter certeza que não era nada no modem, mesmo vendo a conexão chegando na RB.

    Fiz as alterações nas regras mas mesmo assim não funcionou.

    Sinceramente, eu não sei mais onde mexer. :/ e pior que já te passei todas as minhas regras, tem algumas no route q não passei mas pq não precisava mesmo, eram rotas para sites sairem por um ou outro gateway.

    Mto esquisito isso, pq a conexão chega na RB, pelo log percebe-se isso, mas ela pára. Quando é um dst-nat no link da NET, funciona tudo de boa.

    Enquanto eu digito esta resposta, tive uma idéia, vou ativar a porta telnet, criar uma regra no filter rules e tentar entrar nela pela NET.

    ps.: para não fazer outra postagem, editei essa mesmo. Fiz o teste, e dá a msm coisa, a comunicação chega na RB mas parece que ela não retorna para quem solicitou a conexão. :/

  12. #12

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Tenta também só trocar os nomes das rotas, em IP->Route

    A que ta GVT_ROUTE renomeia para NET_ROUTE
    A que ta NET_ROUTE renomeia para GVT_ROUTE

    Se é algo que ta passando desapercebido nas regras, vai começar a funcionar o acesso externo pelo link da NET e vai parar o da GVT.

  13. #13

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    @inquiery agora lascou rsrsrsrs

    Troquei as rotas e no mesmo instante minha conexão com a RB caiu, e pior derrubou tudo, todos os serviços q eu tinha online pararam. Só vou conseguir acesso local na segunda-feira srsrsr.

  14. #14

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    @maxwbr rapaz, achei que tu tava mexendo nela localmente.

    Você alterou primeiro o NET_ROUTE para GVT_ROUTE?
    Se foi isso que você fez, a rota 192.168.0.1 assumiu total, pois ela tem distancia 1 e a GVT_ROUTE original tem distancia 3, você teria ficado assim:

    Código :
    add distance=3 gateway=192.168.25.1 routing-mark=GVT_ROUTE
    add distance=1 gateway=192.168.0.1 routing-mark=GVT_ROUTE

    E neste caso, se você não consegue acessar a routerboard pelo link da NET (do modem 192.168.0.1), isso indica que é o próprio modem que tem algum problema no redirecionamento. Pois como as configurações para a tabela de roteamento GVT_ROUTE estavam funcionando direitinho quando vinha do modem 192.168.25.1, e agora não funcionam vindo do modem 192.168.0.1, então o problema seria no modem.

    Agora, se você alterou primeiro a rota GVT_ROUTE para NET_ROUTE, você também ficou com o modem 192.168.0.1 assumindo tudo por ter distancia 1. E neste caso, se era a RB que não tava respondendo direito pela rota NET_ROUTE, realmente você não vai mais ter acesso, pois somente o link do modem 192.168.0.1 vai funcionar neste caso.

  15. #15

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    É eu não fiz desta forma.

    Eu fiz assim ó...eu inverti as duas rotas ao mesmo tempo.


    Código :
    add distance=3 gateway=192.168.25.1 routing-mark=NET_ROUTE
    add distance=1 gateway=192.168.0.1 routing-mark=GVT_ROUTE

    Mas eu fiz do jeito q vc disse e foi batata, eu mudei o gateway 192.168.0.1 para o routing_mark GVT_ROUTE e parou na hora, eu não só não tive mais acesso à RB como também minha negação à internet parou.

    Agora, se por algum motivo é um problema no redirecionamento no modem, oque explica eu ter 16 redirecionamentos no meu firewall > nat e todos funcionarem normal pelo link da NET e só a porta 8222 é que não funciona.

    Isso tá um mistério prá mim viu rs. Não sei se é te pedir muito, mas se for, minhas sinceras desculpas. Mas será qseria possível vc me adicionar no skype para vermos isso mais de perto, se fornecessário pode até me falar o valor do seu atendimento, mas é que eu realmentenão sei mais o q fazer, mas de repente tem algo errado nas minhas regras q eu não esteja enxergando, sei lá. De qualquer forma, agradeço demais a gentileza de até agora estar interagindo aqui na postagem.

    Segue meu skype, caso a resposta seja positiva

    skype: maxwribeiro

  16. #16

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    O redirecionamento so funciona no link que for default!

  17. #17

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    @maxwbr vou te adicionar no skype chegando na oficina hoje a tarde

  18. #18

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Citação Postado originalmente por rogeriodj Ver Post
    O redirecionamento so funciona no link que for default!
    Sua resposta não procede @rogeriodj, se fosse assim, nenhum dos meus serviços externos funcionaria no link da NET e todos funcionam normalmente como já mencionei.

    Tenho vários serviços externos rodando, e todos entram tanto pela NET como pela GVT, a única porta q não consigo acesso é a porta interna da RB. A menos que você esteja sendo específico e dizendo em relação à porta da RB. Aí já não seria redirecionamento, e outra, eu tinha uma RB750gl e funcionava normal com os dois links, qdo eu troquei por essa Gr2 é que não consigo mais, não sei se por algo errado q eu fiz (provavelmente) ou por algo q ainda não descobri rsrs.

  19. #19

    Padrão Re: Regar de Firewall > Filter Rule para acesso externo à RB

    Citação Postado originalmente por inquiery Ver Post
    @maxwbr vou te adicionar no skype chegando na oficina hoje a tarde

    Valeu mesmo @inquiery.