terça-feira, 25 de abril de 2017

RB Técnico Interno

Objetivo:

Permitir ao técnico ficar na rede da empresa e ter acesso aos equipamentos resetados que esta configurando.

Pontos de atenção:

- Mikrotik reiniciado sem configuração default não tem IP precisa de acesso por MAC, tem que estar na mesma bridge.
- Alguns equipamentos ao reiniciar tem servidor DHCP que pode propagar para rede corporativa(link).
- O Equipamento configurado por um técnico não pode ser visível para outro ou na rede corporativa.
- Alguns equipamentos precisam de DHCP client, mas não devem se misturar a rede corporativa.

Solução:

1) Trabalhar em bridge para permitir o acesso ao mikrotik por MAC e ao DHCP da empresa no PC do técnico.
2) Adicionar vários IPs diferentes na bridge para comunicação com cada rede que os equipamentos usam.
3) Fazer SRC-NAT do que vai para os equipamentos pois eles não tem gateway default.
4) Fazer redirect na Bridge quando o destino são as redes dos equipamentos, assim usando RB como gateway.
5) Filtrar toda comunicação entre empresa e equipamentos.
6) Filtrar DHCP Server dos equipamentos para o PC do técnico.
7) Criar DHCP Server da RB que é usada para alguns equipamentos.
8) Filtrar DHCP Server da RB que é usada para alguns equipamentos, para não atender PC do técnico e rede corporativa.
9) Configurações Básicas para acesso a RB.


Passo a passo:

1) Trabalhar em bridge para permitir o acesso ao mikrotik por MAC e ao DHCP da empresa no PC do técnico.
/interface bridge
add name=bridge1
/interface ethernet
set [ find default-name=ether1 ] name=ether1-Link
set [ find default-name=ether2 ] name=ether2-Notebook poe-out=off
set [ find default-name=ether3 ] poe-out=off
set [ find default-name=ether4 ] poe-out=off
/interface bridge port
add bridge=bridge1 interface=ether2-Notebook
add bridge=bridge1 interface=ether3
add bridge=bridge1 interface=ether4
add bridge=bridge1 interface=ether5
add bridge=bridge1 interface=ether1-Link
add bridge=bridge1

2) Adicionar vários IPs diferentes na bridge para comunicação com cada rede que os equipamentos usam.
/ip address
add address=10.0.0.2/24 interface=ether3 network=10.0.0.0
add address=192.168.1.2/24 interface=ether3 network=192.168.1.0
add address=192.168.2.2/24 interface=ether3 network=192.168.2.0
add address=192.168.88.2/24 interface=ether3 network=192.168.88.0
add address=192.168.100.2/24 interface=ether3 network=192.168.100.0
add address=192.168.13.1/24 interface=bridge1 network=192.168.13.0

3) Fazer SRC-NAT do que vai para os equipamentos pois eles não tem gateway default.
/ip firewall nat
add action=masquerade chain=srcnat dst-address=10.0.0.0/24
add action=masquerade chain=srcnat dst-address=192.168.1.0/24
add action=masquerade chain=srcnat dst-address=192.168.2.0/24
add action=masquerade chain=srcnat dst-address=192.168.88.0/24
add action=masquerade chain=srcnat dst-address=192.168.100.0/24
add action=masquerade chain=srcnat src-address=192.168.13.0/24

4) Fazer redirect na Bridge quando o destino são as redes dos equipamentos, assim usando RB como gateway.
/interface bridge nat
add action=redirect chain=dstnat dst-address=10.0.0.0/24 mac-protocol=ip
add action=redirect chain=dstnat dst-address=192.168.1.0/24 mac-protocol=ip
add action=redirect chain=dstnat dst-address=192.168.2.0/24 mac-protocol=ip
add action=redirect chain=dstnat dst-address=192.168.88.0/24 mac-protocol=ip
add action=redirect chain=dstnat dst-address=192.168.100.0/24 mac-protocol=ip
add action=redirect chain=dstnat dst-address=192.168.13.0/24 mac-protocol=ip

5) Filtrar toda comunicação entre empresa e equipamentos.
/interface bridge filter
add action=accept chain=forward in-interface=ether2-Notebook out-interface=ether1-Link
add action=accept chain=forward in-interface=ether1-Link out-interface=ether2-Notebook
add action=drop chain=forward out-interface=ether1-Link
add action=drop chain=forward in-interface=ether1-Link

6) Filtrar DHCP Server dos equipamentos para o PC do técnico.
/interface bridge filter
add action=drop chain=forward comment=\
    "Oferta DHCP - Colocar depois de permitir a rede da empresa" dst-port=68,67 \
    ip-protocol=udp mac-protocol=ip out-interface=ether2-Notebook
add action=drop chain=forward comment=\
    "Requisi\E7\E3o DHCP - Colocar depois de permitir a rede da empresa" \
    dst-port=67,68 in-interface=ether2-Notebook ip-protocol=udp mac-protocol=ip

7) Criar DHCP Server da RB que é usada para alguns equipamentos.
/ip pool
add name=dhcp_pool1 ranges=192.168.13.2-192.168.13.254
/ip dhcp-server network
add address=192.168.13.0/24 gateway=192.168.13.1
/ip dhcp-server
add address-pool=dhcp_pool1 disabled=no interface=bridge1 name=dhcp1

8) Filtrar DHCP Server da RB que é usada para alguns equipamentos, para não atender PC do técnico e rede corporativa.
/interface bridge filter
add action=drop chain=output comment="Oferta DHCP" dst-port=68 ip-protocol=\
    udp mac-protocol=ip out-interface=ether1-Link
add action=drop chain=output comment="Oferta DHCP" dst-port=68 ip-protocol=\
    udp mac-protocol=ip out-interface=ether2-Notebook
add action=drop chain=input comment="Requisi\E7\E3o DHCP" dst-port=67 \
    in-interface=ether1-Link ip-protocol=udp mac-protocol=ip
add action=drop chain=input comment="Requisi\E7\E3o DHCP" dst-port=67 \
    in-interface=ether2-Notebook ip-protocol=udp mac-protocol=ip

9) Configurações Básicas para acesso a RB.
/ip dhcp-client
add dhcp-options=hostname,clientid disabled=no interface=ether1-Link
/system identity
set name="MikroTik - Suporte1"
/ip dns
set servers=8.8.8.8,8.8.4.4
/user set admin password=********

domingo, 23 de abril de 2017

MT Invisível pra trabalhar em clientes corporatívos

Usando uma RB com 2 portas ethernet e 1 wireless.
Consegui inserir os clientes da wireless, como se fossem o PC da rede cabeada.

Acho que todos são responsáveis pelo que fazem, criei isso com o objetivo de fazer a transparência, mas teria me sido útil no passado.
Isso foi inspirado em um vídeo do MUM onde o palestrante faz mil coisas com um mAP.

Tentativas de me achar:


1) Tamanho e uptime do cabo
Existem equipamentos que para efeito de teste medem o cabo e dizem o tamanho de cada par. Se você colocar um cabo novo ligado a esse equipamento e o administrador testar novamente e tiver o resultado antigo vai perceber.
Solução:
- Colocar a RB próxima ao lado que não deve ter esse controle, mantendo o cabo original saindo do equipamento com esse controle.
- Usar um cabo do mesmo tamanho para o outro lado (os pares podem ter diferença de tamanho o que entregaria você).
- Ligar os cabos da LAN e WAN ao mesmo tempo na RB depois de ligada.
Comentário:
Nem nos servidores do pentágono deve ter essa preocupação


2) TTL
Cada sistema operacional tem um valor de TTL na origem do pedido:
Windows 128
Linux 64
Quando passa por um roteador esse valor é reduzido em 1, por tanto você seria percebido se colocasse um roteador a mais.
Solução:
- Saber qual é o sistema de cada lado e setar novo valor para o TTL, novo pois você poderia ter equipamentos na rede Wi-Fi diferentes com os da rede LAN.
Comentário:
Diversos provedores já no passado pensaram em bloquear o usuário de adicionar roteador para ele não dividir a internet, em redes corporativas nunca vi esse controle. Vou mostrar a solução.


3) Pacote ARP
O ARP pergunta o MAC de alguém e conta o seu próprio MAC e IP para facilitar a resposta.
Dentro do protocolo ARP esta o IP e esse valor não pode ser alterado.
Mas em rede local IP não é usado pra quase nada.
Solução:
- Desabilitar o ARP e inserir na tabela ARP entradas estáticas.
Comentário:
O problema é pior que ser achado, é achar um IP que não seja de outro equipamento da rede. Vou mostrar a solução.


4) DNS
Em uma rede corporativa solicitações de site externos não costumam ser feitas ao DNS interno.
Isso em teoria poderia ser detectado ou o DNS poderia responder um site interno de bloqueio.
Não deve existir rota em redes internas para DNSs externos como 8.8.8.8, então precisa saber o DNS interno.
Solução:
- Usar um Modem 4G USB e acessar a internet e DNS pelo 4G
- Colocar um firewall dropando DNS pra rede corporativa.
- Adicionar entradas estáticas no arquivo host do PC usado na Wi-Fi. SIM o Windows também tem arquivo host, como no linux.
- Usar um Modem 4G USB e acessar a internet e DNS pelo 4G
- Cadastrar o DNS interno como segunda opção a ser usado, sabendo dos riscos.
Comentário:
Ser pego aqui é o de menos o questão é resposta errada. E a dificuldade de saber o DNS interno a usar.


5) Outros protocolos e excesso de trafego
Quando você liga um PC ou celular a rede diversos programas em background tentaram enviar e receber dados, isso pode te entregar.
Solução:
- Adicionar regras bem restritivas ao firewall, trabalhar com lista branca.
Comentário:
Como isso vai depender muito do local e lista necessária não vou abordar aqui.


6) MAC
Switchs de datacenters costumam desligar a porta se outro MAC for conectado a ela como medida de segurança.
Solução:
- Clonar o MAC do PC para o Switch.
- Clonar o MAC do Switch para o PC.
Comentário:
Eu já derrubei uma porta sem querer ao fazer o sniffer de um servidor. Isso com certeza gerou um log. Mas logs só são olhados quando um problema precisa ser analisado.
Eu desliguei e religuei o switch "por acidente" a porta dele voltou liguei o servidor novamente, ninguém foi demitido a analise do sniffer ajudou a resolver o problema e ainda teve comoração no final do dia.


7) IPSec
Se toda rede trabalhar com IPSec ai não tem como entrar ou ler nada.
Sem solução.


Eu adicionaria a essa solução um Modem 4G USB com isso:
- Colocaria o DNS público
- Host da rede no arquivo hosts
- rota default para o Modem
- rotas necessárias para a rede corporativa
Com isso você pode trabalhar do seu notebook em um cliente usando a internet e a rede dele ao mesmo tempo, como se estivesse usando o PC que lhe foi dado para trabalhar.


Bom eu vou mostrar o que fiz infelizmente tudo manual agradeceria se alguém pensasse em script pra pegar as informações e automatizar a configuração.


Cenário do Lab:
PC com IP 192.168.55.254 MAC E4:8D:8C:65:B8:A9 e TTL 128
Gateway com IP 192.168.55.1 MAC 4C:5E:0C:71:5A:67 e TTL 64
Para facilitar criei um IP fictício 10.100.100.0/24 que não deve corresponder ao da rede que vai ser usada.

Como funcionou a transparência
Foi mais simples que pensava
Fiz NAT na Bridge para os MACs
Fiz NAT no firewall para os IPs
Fiz o trafego da bridge passar pelo firewall para permitir recuperar os pacotes recebidos com origem em NAT de saída e também interceptar algum pacote como fiz com o Winbox.
Eu me expus colocando a interceptação de pacotes para a porta do Winbox, fazendo parecer que o PC tem a porta do Winbox aberta, também permitindo acessar a RB de fora do Wi-Fi.


A parte comum:

/interface ethernet
set [ find default-name=ether1 ] name=ether-WAN
set [ find default-name=ether2 ] name=ether-LAN
/interface bridge
add arp=disabled name=bridge-Invisible
/interface bridge port
add bridge=bridge-Invisible interface=ether-LAN
add bridge=bridge-Invisible interface=ether-WAN
/interface bridge settings
set use-ip-firewall=yes
/ip neighbor discovery
set ether-LAN discover=no
set ether-WAN discover=no
set bridge-Invisible discover=no
/ip address
add address=10.100.100.2/24 interface=ether-LAN network=10.100.100.0
/ip route
add distance=1 gateway=10.100.100.1



A parte onde os TTLs, MACs e IPs da rede devem ser colocados com atenção:

/ip firewall mangle
add action=change-ttl chain=postrouting dst-address=192.168.55.254 new-ttl=set:64 out-interface=bridge-invisivel passthrough=yes
add action=change-ttl chain=postrouting new-ttl=set:128 out-interface=bridge-invisivel passthrough=yes


/ip arp
add address=10.100.100.1 comment=GATEWAY interface=bridge-Invisible mac-address=4C:5E:0C:71:5A:67
add address=10.100.100.254 comment=PC interface=bridge-Invisible mac-address=E4:8D:8C:65:B8:A9
/interface bridge nat
add action=src-nat chain=srcnat out-interface=ether-WAN to-src-mac-address=E4:8D:8C:65:B8:A9
add action=src-nat chain=srcnat out-interface=ether-LAN to-src-mac-address=4C:5E:0C:71:5A:67
/ip firewall nat
add action=src-nat chain=srcnat out-interface=bridge-Invisible to-addresses=192.168.55.1 dst-address=192.168.55.254
add action=src-nat chain=srcnat out-interface=bridge-Invisible to-addresses=192.168.55.254
add action=redirect chain=dstnat dst-port=8291 dst-address=192.168.55.254 in-interface=bridge-Invisible protocol=tcp
/ip route
add distance=1 gateway=10.100.100.254 dst-address=192.168.55.254/32



Eu criei rapidamente uma rede pois neste local de lab a internet era liberada sem proxy.

/interface wireless
set [ find default-name=wlan1 ] band=2ghz-b/g/n disabled=no mode=ap-bridge
/ip address
add address=192.168.56.1/24 interface=wlan1 network=192.168.56.0
/ip pool
add name=dhcp_pool0 ranges=192.168.56.10-192.168.56.254
/ip dhcp-server
add address-pool=dhcp_pool0 disabled=no interface=wlan1 name=dhcp1
/ip dhcp-server network
add address=192.168.56.0/24 gateway=192.168.56.1
/ip dns
set servers=8.8.8.8,8.8.4.4