MIKROTIK: Manipulando Address-List

O Roteadores Mikrotik permitem a criação de listas de endereços IP, que podem ser utilizados no modulo firewall de inúmeras formas, para bloqueio e/ou liberação e monitoramento de acessos de de determinados IP´s ou faixas de IP´s.

Características de uma entrada Address-list

Toda lista possui um ID, o nome da lista, endereço/faixa de IP´s, pode conter um tempo de expiração, e também um comentário.

ID

Quando uma entrada é adicionada a lista, recebe um identificador sequencial, chamado ID, que pode ser utilizado para manipulação da entrada. Este ID é somente leitura e não pode ser atualizado.

list

O Nome da lista, é utilizado para referencia-la nas regras de firewall, assim, uma lista de ip´s liberados poderia ter o nome de WHITELIST, ou em bom portugues LIBERADOS.

Importante, o nome da lista é case-sensitive, ou seja, WHITELIST e whitelist, são tratadas pelo MIKROTIK como listas distintas.

No exemplo abaixo, utilizando o comando print, são listadas duas regras, x1 e X1

address

O campo endereço, pode conter um IP individual, como 1.1.1.1, ou por exemplo uma faixa como 1.1.1.0/24, 1.1.0.0/16, ou, 1.0.0.0/8

Além de um endereço IP, o campo address, pode conter um endereço dns, nesse caso, o MIkrotik irá resolver o DNS informado e criará uma entrada dinâmica com o endereço IP referente ao DNS resolvido.

timeout

Cada entrada da lista, pode possuir um tempo de expiração, que após expirado faz com que a entrada seja removida do Mikrotik. O Tempo de expiração é definido utilizando o formato: Horas:Minutos:Segundos, ambos com 2 dígitos, assim uma entrada que deve permanecer por 1 hora e meia, possuirá o valor 01:30:00.

Em alguns casos é necessário manter a entrada por alguns dias, então deve-se informar o número de dias seguido da letra d, e então horas:minutos:segundos, como no exemplo abaixo, 30 dias, 10 horas, 30 minutos e 15 segundos:
30d10:30:15

Se o campo timeout, estiver ausente, a entrada permanecerá indefinidamente na lista.

comment

O campo comentário é opcional, pode servir para identificação da entrada/endereço, e ser utilizado em scripts para manipulação da lista.

Manipulando a address-list via terminal

Criando uma entrada na address -list

/ip firewall address-list add \
    list=whitelist address=1.1.1.1 comment="OpenDNS"

Listando as entradas da address-list

Utilizando o comando abaixo, é listado todos as as entradas da address-list, com seu ID, name, address, timeout e comment, estas propriedades podem ser utilizadas em filtros em manipulações em lote, como atualizações e remoções de entradas.

/ip firewall address-list print

Removendo entradas

Pelo ID: neste exemplo iremos remover a entrada com ID igual a 5000, para saber o ID da entrada utilize o comando print.

/ip firewall address-list remove number=5000

Usando consultas/filtros

Nestes exemplos, ao invés de utilizar o ID da entrada, iremos remover todas as entradas que possuem uma propriedade com um valor especifico, campos comment e list..

Remover as entradas que possuem um comentário OpenDNS

/ip firewall address-list remove \
    [/ip firewall address-list find comment="OpenDNS"]

Remover as entradas da lista whitelist

/ip firewall address-list remove \
    [/ip firewall address-list find list=whitelist]

SCRIPTs

Em algumas definições e ferramentas do MIKROTIK, é possível executar um script quando algum evento é disparado, como por exemplo no DHCP SERVER quando um endereço IP é atribuído, quando uma nova conexão VPN é iniciada ou finalizada (profile), nestes disparadores de evento, são passados variáveis ao script que podem ser usadas para automatizar certas situações.

O nome das variáveis podem ser encontradas na wiki do Mikrotik

Nas conexões VPN, o script é definido no Profile

https://wiki.mikrotik.com/wiki/Manual:PPP_AAA

Nessa opção são disponibilizados ao script as seguintes variáveis, que podem ser usadas em scripts ON-UP e ON-DOWN:

  • user
  • local-address
  • remote-address
  • caller-id
  • called-id
  • interface

Para utilizar uma variável preceda o o nome da mesma com $, colocando o nome da variável entre ” aspas duplas. Como no exemplo abaixo.

/ip firewall address-list add list=VPN \
    address=$"caller-id" comment=$user timeout=1d

Mais informações

https://wiki.mikrotik.com/wiki/Manual:IP/Firewall/Address_list

Conheça o DOH – DNS OVER HTTP

O que é o DOH?

O DOH, é um novo protocolo de resolução de nomes que utiliza o https para efetuar consultas seguras.

Hoje, o protocolo DNS não utiliza criptografia, assim, todas as consultas que seu computador faz aos servidores DNS, podem ser lidas por alguém no caminho, com acesso ao meio de comunicação, inclusive os provedores fazem uso desse meio para bloqueio de sites.

Como o DOH funciona?

Em vez de uma consulta plain text, o DOH utiliza o protocolo HTTPS para se comunicar com o servidor DNS.

Mais segurança

Todas as consultas são criptografadas, não podem ser intermediadas nem observadas por alguém(servidor/aplicativo/servidor/provedor) que estiver no meio do caminho; tornando assim suas consultas privadas e impossíveis de serrem alteradas.

Tudo tem um custo

Por utilizar criptografia, e o protocolo http, as consultas tem um overhead adicional, sendo um pouco mais lentas que uma consulta direta via protocolo DNS padrão. Mas se a sua necessidade de segurança é necessária, este problema deixa de ser um empecilho, visto que a consulta pode ser cacheada para utilização posterior.

Utilizar o DOH

No Windows, a Microsoft prepara uma implementação do procololo que estará disponível para o Windows 10 em breve, até lá, é possivel utilizar um ciente DOH, como o https://yogadns.com/

Para outros sistemas operacionais, existem alternativas que podem ser verificadas no site https://dnscrypt.info/implementations/

Cliente DOH da Cloudfare

Links Cloudflare:

Cliente DOH para C# (NetCore)

https://github.com/TechnitiumSoftware/DNS-over-HTTPS

Android: Comandos ADB

ADB significa Android Debug Bridge, ele faz a ponte entre o ambiente de desenvolvimento e dispositivos Android, sejam eles virtuais (emulados) ou físicos. Ele fornece uma interface  de terminal que permite a comunicação com o dispositivo.

Resolver problemas de conexão

Os emuladores e dispositivos Android diversas vezes param e não conectam mais, abaixo seguem alguns passos que podem ajudar.

  1. Desconecte o dispositivo do computador se for físico, caso seja emulador, tente reiniciar o mesmo.
  2. Conecte o dispositivo na mesma rede do seu PC de desenvolvimento, no caso do dispositivo conectar por rede wifi e o PC por cabo, ambos deverão estar acessíveis na rede, seja em bridge ou por roteamento local.
  3. Habilite o modo desenvolvedor em seu dispositivo, geralmente menu configurações, Programador, Depuração USB.
  4. Localize o Endereço IP do seu dispositivo, clicando sobre a conexão wifi nas configurações do seu dispositivo Android para poder fazer as configurações.

Listar dispositivos conectados

adb devices

Conectar ADBO via WIFI

adb tcpip 5555
adb connect 192.168.0.100:5555

 

Xamarin HotReload não atualiza o dispositivo!

Utilize o comando abaixo para redirecionar as portas.

adb forward tcp:8000 tcp:8000

https://github.com/AndreiMisiukevich/HotReload