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

3 de abril de 2017 Deixe um comentário

Saudações,

Falando em termos de Windows Server 2016 podemos citar, além de sua total integração e adequação à nuvem também aspectos on-premisses que vão aumentar muito a produtividade de seu datacenter em matéria de Segurança.

Vamos começar hoje uma série de posts voltados a DNS Policies no Windows Server 2016. Nas primeiras versões do ainda recém-divulgado SO Windows Server 2016 TP fiz um laboratório neste espaço acerca do balanceamento de carga de aplicações usando DNS Policies. Vou republicar este post para que a comunidade possa rever o tema e fica como o primeiro de uma série que iremos tratar.

palestra_preview

No que tange à Segurança da Informação levando em mente alguns dos seus principais pilares (Integridade, Disponibilidade e Confidencialidade), o DNS Policies traz possibilidades interessantes de expansão da capacidade de resolução de nomes.

De que forma e como posso configurar DNS Policies? Veja abaixo como:

1. Application Load Balance – Ao implementar vários nodes em uma farm de servidores de aplicação – seja IIS ou outro web server (ou até mesmo um client server) – o DNS Policies pode ser usado para balancear o tráfego entre os nodes desta farm. Diferente do antigo recurso de Round Robin o balanceamento do DNS Policies distribui a carga de forma dinâmica e mais inteligente podendo priorizar um ou mais nodes em relação ao direcionamento das requisições.

2. Gerenciamento de tráfego baseado em Geo-Localização – Para as requisições baseadas em localização geográficas o DNS Policies faz com que servidores DNS primário e secundário fazem o cliente ser redirecionado para o IP do recurso mais próximo, otimizando o tráfego e consumo de banda, dependendo da localização do destino.

3. Split Brain DNS – Com o recurso de Split Brain DNS os registros são divididos em diferentes escopos de zona no mesmo servidor DNS. Os clientes DNS recebem uma resposta baseado onde de fato estes clientes estão – internos ou externos. Este recurso pode ser configurado em zonas integradas ao AD ou para DNS Standalone servers.

4. Filtering – Neste caso você cria 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.

5. Foresincs – Um dos recursos que mais gostei nessa parte de políticas. Você pode fazer com que seu DNS redirecione requisições maliciosas para um IP não existente ao invés de direcioná-la para o computador que ela tenta alcançar.

6. Redirecionamento baseado na hora do dia – Vem como uma adicional à política de gerenciamento de tráfego. Você pode direcionar a requisição para um determinado local baseado em uma hora do dia, ou seja, a requisição vai para aquele servidor a partir de um determinado horário do dia.

Novos conceitos

Client Subnet – Um objeto Client Subnet representa uma range IP (IPv4 ou IPv6) a qual as queries são submetidas em um servidor DNS. Você pode criar client subnet’s que vão ser usadas em políticas de DNS que vai resolver/encaminhar uma requisição a um determinado destino baseado na range de IP definida em uma subnet client. Exemplo: Clientes da subnet 10.10.1.0/24 serão encaminhados ao node 2 da farm de servidores de aplicação, enquanto clientes da subnet 10.10.2.0/24 serão encaminhados ao node 1 da minha farm de servidores.

Recursion Scope – Um escopo de recursão contém uma lista de Forwarders e especifica se a recursão está ativada. Um DNS Server pode ter diversos recursion scopes e as políticas atreladas a ele irão ser direcionadas para o escopo que contemple aquela query. Você pode especificar quais forwarders serão utilizados e se utilizarão a recursão.

Zone Scopes – Um DNS Server pode ter diversos escopos de zona (Zone Scopes) contendo neles uma lista de registros. Um mesmo registro pode estar presente em diversos escopos de zona, com diferentes endereços IP. Políticas de Zone Transfer são feitas usando os escopos de zona.

Os conceitos acima se aplicam aos seguintes tipos de política: Query Resolution Policies, Recursion Policies, Zone Transfer Policies, Traffic Management, Block Queries from a Domain, Block Queries from a Subnet, Allow Recursion for Internal Clients, Create a Server Level Zone Transfer Policy, e finalmente, Create a Zone Leve Zone transfer Policy.

No decorrer desta série de posts veremos em exemplos práticos com PowerShell como usar todas as políticas citadas acima em seu ambiente. Não perca! Certamente ela vai ajudar bastante seu dia a dia para assimilar melhor essa nova funcionalidade no Windows Server 2016.

Em breve a parte de balanceamento de carga com DNS Policies será republicada.

A base de estudos para este post foi tirada do link abaixo:

https://technet.microsoft.com/en-us/windows-server-docs/networking/dns/deploy/dns-policies-overview

Abraços

Uilson

Usando PowerShell para corrigir vulnerabilidades via chave de registro

28 de março de 2017 Deixe um comentário

Saudações,

O post de hoje visa ajudar os administradores de rede e analistas de segurança no momento em que precisam planejar a mitigação e correção de alguns tipos de vulnerabilidades em estações de trabalho via chave de registro.

Normalmente, a empresa dispõe de uma ferramenta que faz o scan, encontra, classifica e exibe em relatório quais vulnerabilidades uma ou mais estações têm e como corrigir.

Agora, imaginem uma determinada vulnerabilidade a ser corrigida em diversas estações? Como fazer?

Uma forma é usar o comando PSEXEC do SysInternals para executar este trabalho. A partir de um arquivo de lote eu uma simples variável (%1), o problema pode ser resolvido. Entretanto, como nosso foco é disseminar todas as formas de otimização de tarefas com PowerShell, queria mostrar como o usei para resolver um problema num case real.

Recebemos a notificação de que uma determinada área da empresa precisava ter todas as estações com o parâmetro de SMB Signing habilitado. Este parâmetro criptografa todo fluxo de informações entre a estação e um file server, num processo semelhante ao do SMB Encryption, feito no Windows Server 2012 R2, entretanto, o processo aqui visa proteger estações com Windows 7 Professional.

Não existe uma console administrativa ou um processo via GUI para tal, portanto, como falei, ou você o faz via PSEXEC do SysInternals ou, no nosso caso, usando PowerShell.

O processo consiste na criação de uma chave de registry que vai habilitar o SMB Signing na estação:

Chave a ser criada – EnableSecuritySignature

Tipo – DWORD

Valor – 1

Endereço – HKLM\System\currentcontrolset\services\lanmanworkstation\parameters

Comando PowerShell a ser usado:

Invoke-Command -cn computername {New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters" -Name EnableSecuritySignature -Value "1" -PropertyType DWORD -Force | Out-Null}

No comando acima, criamos a chave de registry remotamente em uma estação. Estou considerando aqui que o administrador tem amplo acesso ao equipamento remoto. Entretanto você pode se deparar com um ambiente em que seu usuário não tenha acesso àquela estação (ou grupo de estações) e precise declarar seu usuário. Neste caso você pode entrar com o seguinte comando:

$Auth = Get-Credential dominio\usuario
Invoke-Command -cn computername -Cred $Auth {New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters" -Name EnableSecuritySignature -Value "1" -PropertyType DWORD -Force | Out-Null}

Ao executar este comando, você será solicitado a entrar com o usuário e senha com permissão de acesso na estação:

image

Ao entrar com as credenciais necessárias, o script faz criação da chave com o valor conforme citado acima.

Você pode conferir se a chave foi mesmo criada usando comando abaixo:

Invoke-Command -cn computername {Get-Item -Path "HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters"}

Abaixo o resultado:

image

Agora vamos considerar o fato de termos uma lista de estações a serem corrigidas. Como fazer? Você pode usar o PowerShell ISE e criar um script para isso, usando laços do comando For EACH:

ForEach ($WKS in (Get-Content C:\ComputerList.txt)){
    Invoke-Command -cn $WKS {New-ItemProperty -Path "HKLM:\System\CurrentControlSet\Services\LanManWorkstation\Parameters" -Name EnableSecuritySignature -Value "1" -PropertyType DWORD -Force | Out-Null}
    }

Antes de executar o script acima, você precisa preencher o TXT citado na primeira linha e preencher com os nomes das estações. O processo será realizado em cada uma delas.

Espero que o conteúdo seja útil e ajude no seu dia a dia.

Abraços

Uilson

Criação e adequação em contas de parceiros externos via PowerShell

6 de março de 2017 Deixe um comentário

Saudações,

Neste primeiro post de 2017 vou compartilhar com vocês um trabalho feito a uns dias atrás na empresa onde trabalho.

Cenário – Uma consultoria foi contratada para dar suporte a uma aplicação on-premisses da empresa. O contrato tem duração da data de hoje até 31 de dezembro de 2017. Como se trata de uma solução de ERP instalada em um de nossos servidores, ficou acertado que 4 pessoas desta consultoria deveriam ter acesso como Administrator neste servidor para as devidas manutenções, migrações, etc. Entretanto, não posso simplesmente criar 4 novas contas no domínio e coloca-las como administrator de um servidor. Alguns critérios tiveram que ser seguidos para que as normas de segurança definidas pelo nosso time de Cyber Security não fossem quebradas.

Vou neste post mostrar como fiz, usando alguns exemplos em meu ambiente de laboratório.

Descrição do ambiente:

Domínio: uilson.net

Nome da empresa que vai alocar consultores: 123 Consultoria SA

Passos a serem seguidos na tarefa:

1. Criar uma OU específica para provedores externos

New-ADOrganizationalUnit -Name "ExternalProviders" -Path "DC=uilson,DC=net" -Description "OU para contas de usuários externos"

Acima criei a OU “ExternalProviders” que irá abrigar as OU´s de todos os meu parceiros externos que alocam pessoas em minha organização

2. Criar uma OU dentro daquela criada no item 1 descrevendo o nome da empresa

New-ADOrganizationalUnit -Name "123Consultoria" -Path "OU=ExternalProviders,DC=uilson,DC=net" -Description "OU para contas da 123 consultoria SA"

Acima criei a OU “123Consultoria” que vai ficar dentro da OU “ExternalProviders”.

3. Criar as contas de usuário já dentro dessa nova OU, definindo a senha provisória, solicitando alteração de senha no log on do usuário e seguindo as melhores práticas de segurança definir que cada conta será desabilitada em 31/12/2017

New-ADUser -Name "José da Silva 123 Consultoria" -SamAccountName jose.silva -UserPrincipalName jose.silva.ext@uilson.net -DisplayName "Jose da Silva – consultor externo" -Description "Usuário Consultor da 123 Consultoria" -Title "Jose da Silva – 123 Consultoria" -Enable $true -ChangePasswordAtLogon $true -AccountPassword (ConvertTo-SecureString "!!!zaq12wsx" -AsPlainText -force) -PassThru -Path "OU=123Consultoria,OU=ExternalProviders,DC=uilson,DC=net" | Set-ADAccountExpiration -DateTime "12/31/2017"

O comando acima cria o usuário “jose.silva” com uma senha pré-definida que deverá ser alterada no momento do primeiro log on do usuário, a localização da conta (dentro das OU´s que criamos anteriormente) e para casos como este de usuários externos, definição da data de expiração da conta, ou seja, o projeto ao que este usuário está alocado deverá se encerrar até 31/12/2017, data qual a conta será desabilitada.

O mesmo poderá ser repetido com outros usuários desta mesma empresa que vierem a integrar o quadro de consultores externos.

Agora vamos supor que o gestor do contrato com a “123 Consultoria” lhe peça pra listar a data de expiração da conta do consultor “José da Silva”, apenas para ter certeza de que a configuração de expiração da conta bate com a data final do contrato:

get-aduser jose.silva -Properties * | Select-Object Name,SamAccountName,AccountExpirationDate

No comando acima você receberá o seguinte resultado:

image

Vimos na imagem acima que a criação do usuário foi feita de forma a respeitar os processos de segurança da informação da empresa e também certifica que, em 31/12/2017 a conta do usuário listado não mais funcionará a partir da meia noite do dia citado.

Agora seu gerente quer saber quais são os recursos da “123 Consultoria” alocados na empresa. Sabendo qual a OU em que esses usuários estão criados você já pode fazer uma linha de comando mais elaborada:

Get-ADUser –Filter * –SearchBase “OU=123Consultoria,OU=ExternalProviders,DC=uilson,DC=net” | Select-Object Name,SamAccountName

Executando o comando acima você tem o resultado abaixo

image

Você pode mandar essas informações para seu gerente no corpo do email ou simplesmente  envie para um arquivo TXT e trate depois em um excel, basta incluir “> arquivo.txt” no fim da linha de comando exemplificada acima.

Depois de alguns dias, você recebe uma notificação de sua gestão dizendo que, pela complexidade do projeto no qual a 123 Consultoria está atuando, o tempo de contrato foi extendido, ou seja, não mais acabará em 31/12/2017 e sim em 31/12/2018. Dessa forma, os acessos da equipe alocada precisa continuar em funcionamento após a primeira data estipulada.

Neste caso você não precisa efetuar a alteração conta por conta. Simplesmente aplique o update para toda a OU “123Consultoria”:

O primeiro comando fará com que todos os usuários da 123 Consultoria tenham sua data de expiração alterada para 31/12/2018:

Get-ADUser -Filter * -SearchBase "OU=123Consultoria,OU=ExternalProviders,DC=uilson,DC=net" | Set-ADAccountExpiration -DateTime "12/31/2018"

Agora você pode tirar a prova para se certificar que a alteração foi feita usando o comando abaixo:

Get-ADUser -Filter * -SearchBase "OU=123Consultoria,OU=ExternalProviders,DC=uilson,DC=net" -Properties * | Select-Object Name,SamAccountName,AccountExpirationDate

Os comandos acima trazem o resultado na figura abaixo:

image

Com base na imagem acima, e tendo em mente os usuários externos da empresa, vamos para nosso último laboratório deste post. Depois de alguns meses de trabalho, o gerente da equipe de desenvolvimento entendeu que a consultora Hele de Jesus (userid – helena.jesus) desempenha um excelente trabalho no suporte ao produto ERP da empresa e lhe faz uma proposta de contratação como funcionária efetiva. A mesma aceita e agora vai fazer parte do quadro de funcionários.

Com todas as formalidades em dia, você da área de infra estrutura recebe uma solicitação para adequar o usuário de Helena ao padrão da empresa, ou seja, tem que mover a conta para a OU “DevTeam” que fica dentro de “ITDept”, mudar as descrições da conta e remover a data de expiração da conta, afinal, Helena agora é funcionária nossa!

Dessa vez vamos usar o editor de script´s PowerShell ISE, lembrando que para abrir este editor você apenas precisa digitar “ise” no prompt de comando do PowerShell. Como vamos rodar vários comandos, resolvi definir uma varíavel para o usuário “helena.jesus”. Veja como ficou abaixo:

$conta = "helena.jesus"
Get-ADUser $conta | Clear-ADAccountExpiration
Get-ADUser $conta |  Move-ADObject -TargetPath "OU=DevTeam,OU=ITDept,DC=uilson,DC=net"
Set-ADUser $conta -DisplayName "Helena de Jesus" -Description "Desenvolvedora ITDept" -Department "IT Department" -UserPrincipalName "helena.jesus@uilson.net" -Title "Helena de Jesus"

O script acima fica assim no ISE:

image

Após execução do Script, ainda vemos que um atributo permanece inalterado, conforme image abaixo:

image

O campo “Name” não foi alterado, permanece como “Helena de Jesus 123 Consultoria”. Isso ocorre porque este campo fica na propriedade DistinguishedName do usuário “helena.jesus”. Para que este campo seja renomeado corretamente, é preciso alterar o objeto “CN” do DistinguishedName. Abaixo mostro dois comandos, sendo o primeiro para listar o DistinguishedName do usuário e o segundo mostro como fazer a alteração necessária:

get-aduser helena.jesus | Select-Object distinguishedname

Rename-ADObject -Identity "CN=Helena de Jesus 123 Consultoria,OU=DevTeam,OU=ITDept,DC=uilson,DC=net" -NewName "Helena de Jesus"

image

Na tela acima você vê os resultados da aplicação dos comandos.

Agora o objeto aparece corretamente no AD:

image

Além disso, vemos que os procedimentos adotados removeram a data de expiração da conta:

image

Neste post vimos como configurar acessos no Active Directory para consultores externos seguindo as melhores práticas de segurança e todos os

Espero que possa ser útil no dia a dia de vocês.

Quero pedir desculpas pela demora em postar neste ano. Estou estudando para as provas da CompTIA. Vou começar com Cloud Essentials (o livro vc pode comprar no link no lado superior direito). Depois vou estudar Security+, depois vem Cloud+ e CSA (Cyber Security Analyst) – você pode ter uma visão geral de todas essas certificações em https://certification.comptia.org/pt/certificações

Seguiremos este ano com posts voltados a todo tipo de otimização de tarefas com PowerShell, Web Application Proxy e Azure AD Application Proxy.

Abraços

Uilson

Video da minha palestra sobre Segurança em Plataforma Microsoft pelo ARQENGTI

19 de dezembro de 2016 Deixe um comentário

Saudações,

No último dia 19/12/2016, em evento da ARQENGTI (Arquitetos e Engenheiros de TI), falei sobre o tema “Segurança em Plataforma Microsoft”.

Fiquei muito feliz pela quantidade de pessoas não só do Brasil, mas, de vários países como Portugal, Angola e Estados Unidos!

Falamos sobre a montagem de um ambiente desde a parte física, arquitetura de ambientes, ferramentas para scan de vulnerabilidades, WPAD no DNS, Proxy Reverso, Next Generation Firewall e ferramenta de anti-malware. Tudo isso, mostrando exemplos e dicas para ambientes on-premisses e cloud – usando Azure como exemplo (Azure AD, Azure RMS, Azure AD App Proxy).

Em um formato totalmente diferente de tudo que já participei em termos de WebCast, trocamos idéias, tivemos excelentes intervenções dos mestres Fábio Oliveira e Marcelo Stripolli, além termos a alegrias de presentear um livro “Cloud Essentials” ao expectador Anderson Jacobsen que irá receber o mesmo num oferecimentoda Nova Terra Editora.

Abaixo o video na integra do evento para quem não pôde ver, ou para quem viu e quer rever:

image

Espero que os conceitos e dicas aqui tratados possam ser úteis a todos!

Que todos os que acompanham este blog e a fan page do facebook tenham um excelente natal e um 2017 repleto de sucesso e realizações!

Abraços

Uilson

Categorias:Não categorizado

Participe da minha palestra–Segurança em Plataforma Microsoft–e concorra a um livro!

12 de dezembro de 2016 Deixe um comentário

Saudações,

Depois de quase 1 ano sem palestrar devido a várias razões, vou falar no evento da ARQENGTI (Arquitetos e Engenheiros de TI) mais uma vez sobre o tema “Segurança em Plataforma Microsoft”.

No passado apresentei esse tema em outros eventos com o nome “Segurança para Redes Microsoft” onde focava mais no que tinhamos de urgente no momento – on premisses.

Na palestra que vou apresentar, vamos falar não só de on premisses, mas, tb de Cloud e também apresentar as principais ferramentas Microsoft que podem te proporcionar segurança em seu ambiente a custo baixo ou zero.

Falaremos sobre os seguintes temas:

image

Vou abordar como montar uma rede já pensando no aspecto de segurança tanto on premisses como Cloud, usar (ou não usar) o registro WPAD no DNS para apontamento de proxy, o que a Microsoft dispõe para scan de vulnerabilidades, patche managemnet, segurança de rede (802.1x), para quem saiu do ISA Server/TMG, como pensar em proxy reverso, além de uma vasta e detalhada documentação para estudo.

Também será sorteado um livro “Cloud Essentials” escrito pelo Yuri Diógenes para os participantes do evento. Livro este cedido pelo Nova Terra Editora.

Também vou mostrar uma ferramenta de anti-malware muito boa que poderá te ajudar de forma eficaz no combate a ameaças em seu ambiente, principalemnte ransomware.

Não perca, o evento ocorre nessa semana, dia 16/12/2016 as 21:30. É totalmente gratuíto e você pode se cadastrar clicando na figura abaixo:

image

Espero você lá!

Abraços

Uilson

Categorias:Não categorizado

DNS Server–Configurando a Global Query Block List via PowerShell

28 de novembro de 2016 Deixe um comentário

Saudações,

Aos que estão acompanhando a nossa série de artigos sobre otimização de tarefas com PowerShell, hoje vou fazer um “adendo” ao 5o. post – Otimização de tarefas com PowerShell – DNS Server.

Um dos pontos de atenção nas empresas nos últimos anos é a configuração do acesso ao proxy usando o registro wpad do DNS Server. O mesmo pode ser configurado via DHCP também, mas, deixarei isso para um próximo post.

Por questões de segurança, desde o Windows Server 2008, o registro WPAD e ISATAP (registro que auxilia na comunicação de dipsositivos IPv4 e IPv6), estão bloqueados para uso. Entretanto, o administrador do ambiente pode escolher entre:

1. Ativar um desses registros – via PowerShell com via linha de comando DNSCMD

2. Desativar a Global Query Global List

Um exemplo de como configurar essa funcionalidade via linha de comando foi dada no meu artigo de 16/07/2013 onde citei a configuração do WPAD via DNS usando o DNSCMD.

No nosso caso em que estamos destrinchando o PowerShell para nosso dia a dia, estou deixando aqui um exemplo prático de como usar o comando Get-DnsServerGlobalQueryBlockList e Set-DnsServerGlobalQueryBlockList

No primeiro exemplo vamos listar os hosts que estão bloqueados pelo Global Query Block List:

Get-DnsServerGlobalQueryBlockList

Em seguinda vamos liberar o uso do registro WPAD:

Set-DnsServerGlobalQueryBlockList –List “isatap” –Passthru

O comando acima vai reconstruir a Global Query Block List deixando bloqueado somente o registro “ISATAP”.

Agora vamos reconstruir a Global Query Block List inclindo, além do ISATAP, o WPAD também;

Set-DnsServerGlobalQueryBlockList –List “wpad, isatap” –Passthru

Se você quiser, também pode desabilitar a Global Query Block List (o que não recomendo):

Set-DnsServerGlobalQueryBlockList –Enable $False

E para habilitar de novo:

Set-DnsServerGlobalQueryBlockList –Enable $True

Abaixo um exemplo prático de como você visualiza todos os comandos citados:

image

No próximo post quero voltar ao Web Application Proxy, mostrando como configurar seu ambiente para aplicações com autenticação Kerberos.

Fique ligado aqui no blog e na fan page – facebook.com/usouzajr.

Abraços

Uilson

Otimizando tarefas com PowerShell–Administração DNS Server

16 de novembro de 2016 Deixe um comentário

Saudações,

Chegamos hoje ao quinto artigo da série “Otimizando tarefas com PowerShell”. Dessa vez vamos falar sobre administração do DNS.

Para quem ainda não viu, abaixo os 4 primeiros posts publicados:

1. Otimizando tarefas com PowerShell – Administrando Active Directory Users and Computers

2. Otimizando tarefas com PowerShell – Implementação e administração Web Application Proxy

3. Otimizando tarefas com PowerShell – Implementando e administrando AD Federation Services

4. Otimizando tarefas com PowerShell – Implementando e administrando Internet Information Services – IIS

Publiquei tb um artigo no TechNet Wiki sobre Administração do AD Directory Services via PowerShell com coneitos mais avançados que o primeiro desta série.

Podemos levar em consideração o ambiente fictício dos últimos 4 posts:

Domínio – uilson.net

Vamos considerar um ambiente básico onde o DNS está junto com o AD e também considerar a instalação de um novo servidor de resolução de nomes com as configurações básicas, criação de zones, hosts, etc.

1. Instalando e configurando a Role via Powershell:

A principio, todo domain controller já vem com o DNS Server instalado. Neste caso vamos simular um segundo DNS Server sendo instalado e que será integrado ao nosso Active Directory.

Como já mostrado em outros artigos desta série vamos usar o cmdlet “Add-WindowsFeature” ou “Install-WindowsFeature”:

Install-WindowsFeature DNS –IncludeManagementTools

No comando acima eu pedi a inclusão da console de gerenciamento, mas, vamos mostrar aqui como administrar seu DNS sem usa-la.

2. Configurando forward, reverse e stub zones (primárias)

Sabemos que podemos ter dois tipos de forward zone no DNS – Com integração no AD (que é o tipo mais comum para redes internas, tanto que um servidor promovido a Domain Controller já instala a role do DNS junto) e sem integração, ou seja, aquele DNS Server que poderá ser usado para resolução de nomes externos

Para criar uma Forward Lookup Zone integrada ao AD – Add-DnsServerPrimaryZone -Name "uilson.net" -ReplicationScope "Forest" –PassThru 

O comando acima vai criar um forward zone primária integrada ao AD, ou seja, todas as informações que forem criadas nesta zona serão armazenadas no base do AD.

Para criar uma Forward Lookup Zone sem integração com o AD – Add-DnsServerPrimaryZone -Name "uilson.net" -ZoneFile "uilson.net"

O Zone File armazena todas as configurações e registros criados neste forward lookup zone, uma vez que não há integração com o AD. Esse arquivo fica na pasta c:\windows\system32\dns do seu servidor DNS. De forma que, para zonas sem integração com o AD é interessante manter um backup destes arquivos para imediato restore em caso de necessidade.

Agora vamos ver como criar as zonas reversas, ou seja, aquelas que fazem a resolução IP-Nome. Abaixo os comandos que você deve usar para esta finalidade:

Para criar uma Reverse Lookup Zone integrada a seu AD – Add-DnsServerPrimaryZone -NetworkID "10.1.1.0/24" -ReplicationScope "Forest"

Para criar uma zona reversa sem integração com o AD – Add-DnsServerPrimaryZone -NetworkID 10.1.1.0/24 -ZoneFile "0.1.10.in-addr.arpa.dns"

Outra tipo de zone que você pode criar no DNS Server é a Stub Zone. Ela facilita a resolução de nomes em ambientes complexos. Os endereços da filial A serão mais rapidamente resolvidos pela filial C que se conectam via WAN em distâncias grandes.

Como os exemplos acima, você poderá criar uma stub zone de forma integrada, não integrada e também uma reverse stub zone.

Para criar uma stub zone não integrada com o AD – Add-DnsServerStubZone -Name "filialrj.uilson.net "192.168.1.1" -PassThru -ZoneFile "filialrj_uilsonnet.dns"

No exemplo acima criei uma stub zone não integrada ao AD para uma filial no Rio de Janeiro dentro da arvore uilson.net.

Com base no cenário do exemplo acima, segue o comando para criar uma stub zone integrada ao AD:

Add-DnsServerStubZone -Name "filialrj.uilson.net" -MasterServers 192.168.1.1 -PassThru -ReplicationScope "Forest"

Você também pode criar uma reverse stub zone – Add-DnsServerStubZone -NetworkId 10.10.1.0/24 -MasterServers 192.168.1.1 -PassThru -ReplicationScope Forest – neste exemplo, integrada ao AD.

3. Criando Zonas Secundárias

Para criação de uma Reserve Lookup Zone integrada ao AD em um DNS Secundário, ou seja, uma zona secundária que irá receber informações de uma zona primária criada conforme mostramos no item 2 deste post, você deve usar o comando abaixo:

Integrada ao AD – Add-DnsServerSecondaryZone –Name “uilson.net” –ReplicationScope “Forest” –MasterServers 10.10.1.1

Associada a um Zone File – Add-DnsServerSecondaryZone -Name "uilson.net" -ZoneFile "uilson.net" -MasterServers 10.10.1.1

4. Configurando propriedades dos zones

DNS Forwarder e DNS Conditional Forwarder

Um dos pontos a serem configurados em uma zona de encaminhamento no DNS Server é o serviço de Forwarder.

O servidor DNS que você configura como Forwarder irá receber as requisições de resolução de nomes externas encaminhadas do seu DNS Interno.

Neste caso, temos duas maneiras de configurar a lista de Forwarders:

1. Set-DnsServerForwarder – Este comando irá começar a lista de IP´s externos do zero, ou seja, usado em situações em que você acabou de instalar e configurar seu DNS Server.

2. Add-DnsServerForwarder – Este comando irá adicionar IP´s a uma lista de forwarders já existente.

OBS: Se você usar o comando Set-DnsServerForwarder em uma lista de forwarders já existente, você vai “zerar” a lista e usar aquele IP que o comando definir no momento em que for executado, portanto, cuidado!

Para criar um nova lista de forwarders – Set-DnsServerForwarder -IPAddress "192.168.0.1" –PassThru

Para adicionar um IP a uma lista de forwarders – Add-DnsServerForwarder -IPAddress 192.168.0.1 –PassThru

Outra configuração interessante a ser feita é a do Conditional Forwarder, funcionalidade que foi introduzida a partir do Windows Server 2003. Um Conditional Forwarder permite a resolver nomes de um rede privada ou externa, ajudando a acelerar a resolução. Quando o DNS recebe a requisição de um cliente para resolver o nome de um host que não está em sua zona autoritativa, o processo começa a partir do root name do servidor e continua até a resolução do nome. Quando você configura um Conditional Forwarder, o DNS local encaminhará a requisição para a zona autoritativa do domínio de destino.

De igual forma aos exemplos mostrados neste post, você pode criar uma zona Conditional Forwarder de forma integrada a seu AD Loal ou não.

O link abaixo fala de Zonas Conditional Forwarder para Windows Server 2003, mas, o conceito explicado pode ser usado em qualquer situação a frente, ou seja, Windows Server 2008, 2012, 2016, etc:

https://support.microsoft.com/en-us/kb/304491 – Conditional Forwarding in Windows Server 2003

Agora vamos a prática:

Para criar uma Conditional Forwarder Zone integrada a seu AD: Add-DnsServerConditionalForwarderZone -Name "contoso.com" -ReplicationScope "Forest" -MasterServers 172.16.10.1

Para criar uma Conditional Forwarder Zone sem integração com seu AD: Add-DnsServerConditionalForwarderZone -Name "contoso.com" -MasterServers 172.16.10.1 –PassThru

Root Hints

Para adicionar um endereço a minha lista de root hints – Add-DnsServerRootHint -NameServer "root.contoso.com" -IPAddress 172.23.90.128

Zone Transfers

Quando você configura uma zona secundária, precisa habilitar a transferência dos dados da primária.

Para habilitar o zone transfer – Start-DnsServerZoneTransfer -Name "uilson.net"

DNS Policy

Ao invés de deixar um ou outro exemplo sobre DNS Policy, vou colocar o link pra um artigo que escrevi em 24/06/2015 – Nele mostrei um cenário completo onde você pode configurar o DNS Policy. Essa feature vem a partir do Windows Server 2016. Clique aqui para ler o post.

Tem muito mais

Os exemplos citados acima são apenas alguns daqueles que podem ser usados para configurar e administrar seu DNS Server via PowerShell. Muitos outros existem e vou deixar um link aqui com todos os cmdlets do DNS Server com exemplos práticos.

5. Criação de Registros

A criação de registros em uma zona é feita de forma automática. Entretanto, imagine a situação em que você precise registrar um host que aponte a um web server, um application server ou back-end server.

Vamos ver abaixo como criar um registro A que venha de encontro a esse propósito.

Cenário: Temos um web server no domínio uilson.net. O mesmo tem uma aplicação que deverá ser publicada e usada internamente ou externamente. No IIS eu configurei esta aplicação com o host header sistemas.uilson.net. O IP deste servidor é 10.10.1.50. Veja abaixo como este registro é criado:

Add-DnsServerResourceRecord -ZoneName "uilson.net" -A -Name "sistemas" -IPv4Address "10.10.1.50"

Nesse link você encontra exemplos práticos de como criar os demais tipos de registro (AAAA, CNAME, etc) – https://technet.microsoft.com/en-us/library/jj649925.aspx

6. Consultas

Neste ponto em que nosso laboratório já está totalmente configurado. Vamos ver os comandos que você pode usar para verificar as configurações de seu DNS Server:

Get-DnsServer

Este comando traz todas as configurações de seu DNS Server. Voce pode usar também o parâmetro –computername para pegar informações remotamente.

image

Get-DnsServerZone

Este comando traz todas as Zones criadas no seu DNS Server. Voce pode usar também o parâmetro –computername para pegar informações remotamente.

image

Get-DnsServerResourceRecord -ZoneName uilson.net

O comando acima lista todos os registros na zone uilson.net:

image

Estas são apenas algumas das muitas consultas que podem ser feitas. No item abaixo você encontra o link que poderá ver exemplos práticos de todas elas.

7. Referências para estudo

Neste link você encontra todos, exatamente todos os comandos DNS para PowerShell com exemplos práticos – https://technet.microsoft.com/en-us/library/jj649850.aspx

8. Conclusão

Neste post mostrei para você exemplos práticos de instalação, configuração e administração do DNS Server via PowerShell.

Espero que o conteúdo possa ser útil e lhe ajudar em suas tarefas diárias.

Abraços

Uilson

%d blogueiros gostam disto: