Archive

Archive for the ‘Windows Server 2016’ Category

Sobre DNS Policies–Windows Server 2016–volume 05–DNS Filtering

19 de junho de 2017 2 comentários

Saudações! Depois de atuações em alguns auditorias de cybersecurity estamos aí de novo pra continuidade dessa interessante série de posts falando sobre DNS Policies no Windows Server 2016.

A quem está chegando agora, abaixo os links para os outros 4 posts da série:

Sobre DNS Policies – Windows Server 2016 – volume 01 – Teoria

Sobre DNS Policies – Windows Server 2016 – volume 02 – Balanceamento de Carga

Sobre DNS Policies – Windows Server 2016 – volume 03 – Gerenciamento de Tráfego de Rede baseado em Geo-Localização

Sobre DNS Policies – Windows Server 2016 – volume 04 – Split Brain DNS e Selective Recursion Control

Hoje, neste 5o. post desta série, vamos falar sobre DNS Filtering, que são filtros de critérios baseados em requisitos definidos na criação da política propriamente dita, ou seja, a resposta de um DNS Server ocorrerá de acordo com a maneira que um cliente faz a query.

Todos os termos associados aos procedimentos de criação de policies podem ser vistos nos posts anteriores desta série, pois, aqui vamos entrar de forma mais dinãmica no que podemos fazer em termos de Filtering via DNS Policies.

1. Bloqueando queries para um domínio:

Você pode impedir que seu DNS resolva requisições para um determinado domínio. Vamos supor que eu não queira que meus usuários acessem nada que seja do domínio *.malicious.org:

Add-DnsServerQueryResolutionPolicy -Name "BlockedDomains" -Action IGNORE -FQDN "EQ,*.malicious.org" –PassThru

No exemplo acima eu criei uma policy chamada “BlockedDomains” que vai ignorar tudo que for igual (EQ) a “malicious.org”.

2. Bloqueando queries para uma subnet:

Vamos agora supor que eu precise bloquear o acesso a uma subnet, ou seja, uma quantidade de endereços os quais eu teria mais trabalho em bloquear um a um:

Add-DnsServerClientSubnet -Name "BlockedSubnet" -IPv4Subnet 129.214.16.0/24 -PassThru

Add-DnsServerQueryResolutionPolicy -Name "BlockedSubnetPolicy" -Action IGNORE -ClientSubnet  "EQ,BlockedSubnet" -PassThru

No pirmeiro comando eu criei uma subnet chamada “BlockedSubNet” onde eu defino a subnet 129.214.16.0/24. No segundo comando eu crio uma regra chamada “BlockedSubnetPolicy” que ignora tudo o que estiver na range de IP citada.

Este filtro pode ser ainda mais incisivo. Vamos supor que eu queira bloquear acessos a tudo que estiver na subnet acima citada que responda pelo domínio *.malicious.org, ou seja, tudo que responder pelo domínio citado e estiver dentro da subnet criada será ignorado:

Add-DnsServerQueryResolutionPolicy -Name "BlockedSubnetPolicy" -Action IGNORE -ClientSubnet  "EQ,BlockedSubnet" –FQDN “EQ,*.malicious.org” -PassThru

3. Bloqueando e liberando tipo de queries

Vamos fazer um mini lab! Eu vou bloquear toda e qualquer consulta a partir do meu DNS Server e depois vou liberando de acordo com a necessidade.

Add-DnsServerQueryResolutionPolicy -Name "BlockAll" -Action IGNORE -QType "EQ,ANY" –PassThru

Cuidado: O comando acima simplesmente bloqueia todo tipo de queries e requisições a seu DNS. Então planeje bem ao usar o parâmtro ANY.

Agora vou fazer a liberação de determinados tipos de queries. O comando abaixo libera queries do tipo A, AAAA, MX, NS e SOA a partir da interface interface interna do meu DNS Server (10.10.1.20):

Add-DnsServerQueryResolutionPolicy -Name "WhiteListQType" -Action IGNORE -QType "NE,A,AAAA,MX,NS,SOA" –ServerInterface “EQ,10.10.1.20” -PassThru

Vamos agora a outros tipos liberação. Vamos liberar as consultas para meu domínio interno:

Add-DnsServerQueryResolutionPolicy -Name "Whitelist" -Action IGNORE -FQDN "NE,*.uilson.net" –PassThru

O comando acima cria uma white list liberando consultas a tudo que vier do domínio uilson.net, usando o parâmetro NE (Not Equal).

Agora vamos liberar o acesso a uma determinada subnet. Vamos repetir alguns parâmetros do comando exibido no item 2 deste post:

Add-DnsServerClientSubnet -Name "WhiteListSubNet" -IPv4Subnet 129.214.16.0/24 -PassThru

Add-DnsServerQueryResolutionPolicy -Name "WhitelistAllowedSubnetPolicy” -Action IGNORE -ClientSubnet  "NE, WhiteListSubNet" –PassThru

Nos comandos acima criei uma subnet chamada WhileListSubnet contendo a range 129.214.16.0/24 que será liberada para consultas DNS a partir da policy WhiteListAllowedSubNetPolicy.

4. Conclusão

Neste post mostrei exemplos de aplicação de filtros a partir do DNS Policies no Windows Server 2016. Como sempre digo aqui, espero que o conteúdo seja útil e possa ajuda-lo em seu dia a dia.

No próxima post da série irei mostrar DNS Policies para foresincs.

Abraços

Uilson

Sobre DNS Policies–Windows Server 2016–volume2–Balanceamento de Carga

11 de abril de 2017 Deixe um comentário

Saudações,

Dando continuidade a nossa série de posts sobre DNS Policies, hoje vou relembrar um post que publiquei a um tempo atrás falando sobre o uso do balanceamento de carga de aplicações.

Para quem ainda não leu o primeiro post desta série, segue abaixo o link:

Sobre DNS Policies – Volume1 – Teoria

1. Planejamento do Balanceamento de carga

Vamos clarificar que, o planejamento para alta disponibilidade e sizing de suas aplicações, você não deve somente se basear no que vamos falar aqui. Você precisa ter em mente os objetivos e tipos de acesso que serão necessários para a sua realidade. O balanceamento de carga pode ser feito via NLB Windows, Failover Clustering ou NLB via hardware (este um recurso mais indicado para aplicações que recebem muitos acessos). No caso de high availability em cloud, verifique as questões de elasticidade em termos desenvolvimento e veja como seu cloud provider trabalha em relação a isso.

Enfim, o balanceamento de carga via DNS Policies deve ser avaliado quanto sua eficácia para o negócio que seu aplicativo visa entregar a um departamento e/ou cliente final. Você precisa estar certo de que esta é a melhor opção para seu cenário.

2. Estudo de caso

Vamos propor aqui, como no artigo original publicado anteriormente, um estudo de caso que nos dará a base para a solução a ser implementada:

2.1. Tenho 4 servidores de aplicação – 1 em São Paulo, 1 no Rio de Janeiro, 1 em Fortaleza e  1 em Belo Horizonte

2.2. Fortaleza e Belo Horizonte possuem links com menos banda que SP e RJ

2.3. Essa aplicação vai atender a todo acesso que vier em qualquer uma das filiais da empresa

3. Cenário

Para atender a esta demanda, temos o seguinte desenho de solução:

 

image

4. Solução técnica

Com o exposto acima, vamos ver agora de forma prática como o DNS Policies nos ajuda a entregar essa solução de forma rápida e tudo via PowerShell!!

Primeiro vamos criar os escopos de zona. É a partir deles que a política vai se orientar para aplicar o que queremos. Para cada localidade onde tenho um servidor de aplicação vou crirar um Scope Zone.

Vou noema-los da seguinte forma:

São Paulo: SP_Scope

Rio de Janeiro: RJ_Scope

Fortaleza: For_Scope

Belo Horizonte: BH_Scope

Como fica as linhas de comando PowerShell para isso:

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “SP_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “RJ_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “For_Scope”

Add-DnsServerZoneScope –ZoneName “uilson.net” –Name “BH_Scope”

image

Com os Scope Zones criados, vou criar um registro tipo A dentro destes escopos, ou seja, cada escopo estará apontando para o IP do back-end server da localidade correspondente:

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.0.10” –ZoneScope “SP_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.1.10” –ZoneScope “RJ_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.2.10” –ZoneScope “For_Scope”

Add-DnsServerResourceRecord –ZoneName “uilson.net” –A –Name “AppServer” –IPv4 “10.10.3.10” –ZoneScope “SP_Scope”

image

Agora que já temos os Zone Scopes criados e seus respectivos registros, vamos criar a política que fará o balanceamento de carga via DNS Policies:

Add-DnsServerQueryResolutionPolicy -Name "AppServerPolicy" -Action ALLOW – -ZoneScope "SP_Scope,3;RJ_Scope,3;For_Scope,2;BH_Scope,2" -ZoneName "uilson.net"

image

No comando acima observa-se que ao fim de cada Scope Zone foi colocado uma vírgula e um número (Ex: SP_Scope,3). Isto vai definir que para a cada 10 requisições feitas para o host “appserver.uilson.net”, teremos as 3 primeiras sendo direcionadas para o servidor em São Paulo, as próximas 3 para o servidor do Rio de Janeiro, as 2 seguintes para o servidor em Fortaleza e as 2 últimas para o servidor de Belo Horizonte. Dessa forma conseguimos balancear a carga entre as 3 localidades, respeitando os limites de link de cada uma delas.

5. Conclusão

Este post foi publicado novamente para seguir a série que começamos em 03/abril/2017 sobre DNS Policies. No próximo post falaremos sobre Gerenciamento de tráfego de Rede usando políticas de DNS.

Espero que você tenha gostado e que este conteúdo possa ajuda-lo em suas tarefas diárias.

Abraços

Uilson

%d blogueiros gostam disto: