Archive

Archive for the ‘Windows Server 2012 R2’ Category

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

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

28 de julho de 2016 Deixe um comentário

Saudações,

Hoje vamos entrar no quarto post da série “Otimizando Tarefas com PowerShell”. Pra quem está chegando agora e não conhecia o blog Microsoft Space, estou trabalhando em uma série de artigos relacionados a PowerShell, conforme abaixo:

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

Vamos continuar usando o ambiente fictício criado nos posts anteriores.

Imagine que você precisa instalar o IIS em uma farm de servidores que vão estar balanceando a carga. Vc teria habilitar a feature em um por um, mesmo usando o Server Manager de um único servidor para isso. Vamos mostrar a seguir como fazer de forma otimizada e mais rápidamente. Ou então você vai analisar um ambiente em que o IIS esteja em um Server Core ou até mesmo Nano Server.

Algo importante que esqueci de mencionar no segundo e terceiro artigos da série é que os comandos de instalação de roles e features estão armazenados no módulo ServerManager do PowerShell, portanto, se ao tentarem fazer o teste com os comandos citados nos artigos anteriores vocês receberem alguma mensagem de erro, façam o carregamento do módulo conforme abaixo:

Import-Module ServerManager

1. Instalando o IIS:

Como vocês já devem saber, o IIS pode ser instalado em sua totalidade, ou seja, com todas as features ou somente aquelas que você precisar para o proposito da sua infra.

Com o comando abaixo você instala o IIS com todas as features do role:

add-windowsfeature web-server –includeallsubfeature

Recomendo fortemente aquilo que sempre falo em post´s neste blog e em outros espaços, além das palestras e webcasts que entreguei; faça um planejamento prévio, converse com sua área de desenvolvimento para entender o que você vai precisar do seu IIS, qual o tipo de aplicação que irá hospedar e as features exatas que você vai precisar.

Para sabermos quais as features do IIS disponíveis, podemos usar o comando get-windowsfeature parametrizando pelas funções do IIS:

get-windowsfeature | Where-Object {$_.Name –like “Web*”}

image

Na coluna “Name” da figura acima, você tem a listagem de todas as features do IIS. Tomando como exemplo a sessão “Application Development”, eu posso instalar todos os itens da mesma, declarando todos os parâmetros, ou posso escolher uma ou mais funcionalidades tais como ASP, ASP.NET 3.5, etc, usando os parâmetros separadamente. Lembrando que as funcionalidades vitais de cada feature são instaladas automaticamente, mesmo que eu não as declare na minha linha de comando (exemplo – se eu declarar somente a feature Web-Security, a funcionalidade Web-Filtering será habilitada automaticamente).

Em nosso laboratório vamos instalar o IIS pensando em autenticação básica, autenticação integrada, protocolos http e https. Além desses, vamos usar o serviço de armazenamento de certificados digitais, o CCS (Centralized Certificate Store – sobre o qual escrevi um post detalhado com um passo a passo bem completo). Veja abaixo como fica o comando para instalação:

add-windowsfeature web-server, web-webserver, web-default-doc, web-http-errors, web-static-content, web-http-redirect, web-health, web-security, web-basic-auth, web-certprovider, web-cert-auth, web-ip-security, web-windows-auth, web-app-dev

A imagem abaixo mostra o progresso da instalação:

image

Veja agora através do comando get-feature, as funcionalidades do IIS que foram instaladas com o comando usado acima:

image

OBS: Não instalei aqui a console de gerenciamento do IIS que você encontra em Start/Administrative Tools. Vamos focar na implementação e administração do IIS somente via powershell. Se você prefere gerenciar a partir da console, basta adicionar o parâmetro –IncludeManagementTools no fim do comando, ou na figura acima, você tem a sessão Management Tools com o parâmetro Web-Mgmt-Tools.

Agora que temos o IIS instalado, vamos aos métodos para administra-lo através do Powershell.

2. Criando um web-site

Vamos criar um site com os dados abaixo:

Nome – PortalUilson.net

Biding – https://www.uilson.net

Path – c:\webapp

Autenticação – Windows Integrated

Documento Default – iisstart.htm

Vai pegar o certificado através do Centralized Certificate Store.

1. Criando WebSite:

É importante que você já carregue o módulo do IIS com o comando: import-module WebAdministration

No prompt de comando, você já poderá ver como está configurado o Default Web Site conforme figura abaixo:

image

Com o comando “dir iis:” você visualiza três “pastas” do IIS disponíveis: 1. AppPools (Os application pools criados), 2. Sites (Seus WebSites, applications e virtual directories), 3. SSLBindings (Todos os bindings criados com certificado digital – porta 443).

Para listar os sites criados use o comando dir iis:\Sites para ter o resultado abaixo:

image

Acima você que o Default Web Site tem o ID 1 (importante na hora de determinar e configurar a parte de log do IIS), está em status “Started”, mostra o Physical Path e a parte do Binding rodando em http na porta padrão (80).

Para simplificar, você pode entrar no IIS pelo PowerShell digitando “IIS:” e teclando ENTER:

image

Viram como facilita?

Agora vamos criar nosso novo Web Site conforme descrevi:

Vamos criar a pasta onde vai ficar a aplicação web:

new-item c:\webapp –type directory

Com esse comando criamos a pasta webapp. Copiei os arquivos do site inicial do IIS para podermos efetuar o teste de acesso a página.

Comando para criar o site:

iis:

New-Item Sites\PortalUilson.net –bindings @{protocol=”http”;BindingInformation=”:80:www.uilson.net”} –physicalPath c:\webapp

image

O ID ficou meio estranho pra visualisar mas, é 1949349561. É com esse ID que ele vai criar a pasta de log da aplicação.

Na imagem acima você pode ver que eu já criei o site com o acesso a porta 80 no host header http://www.uilson.net . Eu poderia ter usado o comando acima sem o host header e poderia deixar um binding para porta 80 do localhost e poderia criar outro binding na mesma porta definindo a URL com o comando abaixo:

New-WebBinding -Name PortalUilson.net -IPAddress "*" -Port 80 -HostHeader www.uilson.net

Veja também que nosso site está em estado “Started”, ou seja, está escutando requisições na porta 80 a partir da URL que definimos. Caso houvesse algum conflito de porta, ele estaria em status “Stoped”, ou caso fosse necessário poderiamos para-lo com o comando abaixo:

Stop-WebSite PortalUilson.net

Para colocar o site no ar novamente, basta executar o comando abaixo:

Start-WebSite PortalUilson.net 

image

Agora que já temos nosso ambiente pronto, vamos começar a ver outros detalhes tais como log e documento default.

Em nosso laboratório criei um site simples sem nenhum application ou virtual directory. Nesse caso temos que definir o documento default que irá iniciar a pagina default do site. Caso contrário teremos erro no acesso.

Vamos verificar quais são os documentos que constam da lista de Default Document e qual documento está no topo da mesma. Para isso você vai usar o comando abaixo:

Get-WebConfigurationProperty -Filter //defaultDocument/files/add -PSPath ‘IIS:\Sites\PortalUilson.net’ -Name value | select value

image

Veja que no nosso site (PortalUilson.net) já temos Default.htm, Default.asp, index.htm, index.html e issstart.htm. Precisamos configurar o iisstart.htm no topo da lista, pois ele é o arquivo a ser chamado pela URL definida anteriormente.

Durante o período de estudos para confecção deste post, não encontrei uma linha de comando que fizesse a alteação da ordem dos arquivos, colocando ele no topo. Caso tentasse adiciona-lo como parâmetro para coloca-lo no topo, recebia uma msg de erro. Resolvi esse problema removendo o iisstart.htm da lista com o comando abaixo:

Remove-WebConfigurationProperty //defaultdocument/files "IIS:\sites\PortalUilson.net" -name collection -AtElement @{value="iisstart.htm"}

Depois verifiquei com o Get-WebConfigurationProperty para me certificar de que ele não constava mais na lista:

image

Agora vamos configurar o iisstart.htm como defult document do nosso site. Abaixo vou executar um comando que irá coloca-lo no topo da lista de arquivos do default document:

Add-WebConfiguration //defaultDocument/files "IIS:\sites\PortalUilson.net" -atIndex 0 -Value @{value="iisstart.htm"}

image

Você pode ver na imagem acima que o arquivo iisstart.htm aparece no fim do documento, entretanto, o parâmetro “atIndex 0” do comando aplicado acima o coloca no topo da ordem do default document.

3. Application Pool e métodos de autenticação

Já temos nosso site criado e configurado. Agora vamos verificar a parte do application pool dele:

Abaixo mostro como visualisar os application pools criados no IIS

image

Na imagem acima vemos que o Default Web Site já tem seu Application Pool definido, porém, o site do nosso laboratório ainda não.

Abaixo o comando para criação de um application pool:

image

OBS: O comando New-Item criou uma nova application pool no IIS. Como você pode ver na figura acima, estamos posicionados na pasta de Application Pools do IIS. Poderiamos executar esse comando mesmo em outra pasta ou na raiz do IIS da seguinte forma:  New-Item IIS:\AppPools\PortalUilson.AppPool

Agora vamos associar nosso Applicaton Pool com o site PortalUilson.net com o comando: Set-ItemProperty ‘IIS:\Sites\PortalUilson.net’ -Name applicationPool -Value PortalUilson.AppPool

Com a execução do comando acima, você verá agora que o site criado em nosso laboratório agora tem um application pool para ele:

image

Vamos definir uma conta para gerenciar essa application pool:

Set-ItemProperty iis:\AppPools\PortalUilson.AppPool -name processModel -value @{userName="appuser";password="WebAppPool@2016";identitytype=3}

No comando acima defini uma conta local (username = appuser e senha = AppPool@2016) classificando com IdentityType 3 – o Identity type se refere ao tipo de conta que você vai usar em sua Application Pool. O número do identity mudaria caso você fosse usar outro tipo de autenticação, exemplo: Network Service.

No link abaixo, você tem uma explanação detalhada da parte de Itentity Type:

http://www.iis.net/configreference/system.applicationhost/applicationpools/add/processmodel

Agora vamos ver as propriedades de nosso application pool com o comando get-item PortalUilson.AppPool | Select-Object *

image

Para ver os dados de usuário usamos o comando Get-ItemProperty PortalUilson.AppPool -name "processmodel.username"

image

Veja na figura acima que a penultima linha (Value) traz o nome da conta que configuramos nos passos acima.

Podemos ver também que nosso Application Pool está configurado para usar a versão 4.0 do .NET Framework:

image

Caso sua aplicação peça outra versão, você deverá tê-la instalada no servidor. A instalação de outras versões do .NET pode ser feita nas features do IIS conforme descrito no começo deste post.

Se você tiver um Application Pool rodando o .NET Framework na versão 2.0 e quiser mudar para a 4.0, use o comando abaixo:

Set-ItemProperty PortalUilson.AppPool managedRuntimeVersion v4.0

Com o conceito de Web Application Pool definido, vamos agora vamos falar sobre autenticação.

Lembre-se do começo deste post em que instalamos o IIS com diversos métodos de autenticação (basic, integrada, etc). Quero que o site site tenha autenticação integrada, entretanto, o IIS vem com autenticação anônima (por default) habilitada.

Nos comandos abaixo vamos desabilitar a autenticação anônima e habilitar autenticação integrada (lembrando que, para este fim a aplicação já deve estar preparada para tal):

Desabilitando Anonymous: Set-WebConfiguration system.webserver/security/authentication/anonymousAuthentication -PSPath IIS:\sites\PortalUilson.net -Value @{enabled="False"}

Habilitando Windows Integrated: Set-WebConfiguration system.webserver/security/authentication/WindowsAuthentication -PSPath IIS:\sites\PortalUilson.net -Value @{enabled="True"}

4. Logging e Backup

Depois de instalar e configurar o IIS, criar e configurar o novo site, iremos agora definir onde gravar os log´s do mesmo. Por default o IIS coloca os log´s de acesso na pasta padrão da role: c:\inetpub\logs\LogFiles\WebisteID#:

image

No nosso caso vamos configurar o log para que seja gravado numa pasta diferente. Vou configurar para gravar em C:\weblogs\PortalUilson.net. Para tanto vamos usar os comandos abaixo:

Alteração do log para a pasta citada acima:

Set-ItemProperty IIS:\sites\PortalUilson.net -name logFile -value @{format=’W3C’;directory=’C:\weblogs\PortalUilson.net’}

Listando as propriedades de logging do nosso siteget-ItemProperty IIS:\sites\PortalUilson.net -name logFile:

image

No link a seguir, você encontra diversas formas de interagir com logging do IIS via PowerShell, inclusive alterando os campos do arquivo:

https://gallery.technet.microsoft.com/office/Set-IIS-Log-Fields-via-ee9c19b3

Com tudo pronto no nosso laboratório, vamos demonstrar agora como fazer o backup das configurações do IIS. A melhor forme de garantir seu ambiente é um backup do servidor usando a ferramenta da sua empresa, mas, para situações em que você precisa de um restore rápido é interessante ter um backup das configurações do IIS feito no próprio web server.

Para efetuar um backup rápido de suas configurações do IIS use o comando abaixo:

Backup-WebConfiguration –Name IISLab

image

Nesse comando eu fiz um backup das configurações do meu servidor IIS com o nome de “IISLab”.

Para verificar um ou mais backup´s feitos em seu ambiente use o comando Get-WebConfigurationBackup:

image

Como você pode ver na figura acima, posicionei na pasta c:\windows\system32\inetsrv\backup, onde o IIS grava os arquivos de backup gerados pelo comando que usamos a pouco:

image

5. SSL Settings – Agora é a sua vez de por a mão na massa!

Agora é com você!

Se leu todo post com atenção, testou em seu ambiente pessoal e ficou entusiasmado com a possibilidade de administrar seu IIS sem a Console de Gerenciamento, leia o conteúdo dos links abaixo e configure a parte SSL do IIS 8.5. Não foge dos conceitos que coloquei aqui e tudo pode ser encontrado no site iis.net da Microsoft.

Criando SSL Bindings no IIS – http://www.iis.net/learn/manage/powershell/powershell-snap-in-configuring-ssl-with-the-iis-powershell-snap-in

Na instalação do IIS você viu que coloquei também o recurso do CCS – Centralized Certificate Store. No começo deste post eu deixei um link com um artigo que escrevi sobre esse tema mostrando todo conceito e todos os passos (um lab completo) para habilitar o CCS. Para fazer o mesmo procedimento via PowerShell, clique no link abaixo:

https://technet.microsoft.com/en-us/magazine/jj937171.aspx

Além de ensinar a configurar o CCS, o link acima traz um exemplo de como instalar o IIS com as mesmas configurações em vários servidores, caso sua aplicação esteja definida para rodar numa farm.

E assim concluímos mais um post da série “Otimizando tarefas com PowerShell”. Cobrimos todos os passos para a instalação e administração do IIS 8.5 do Windows Server 2012 R2 via cmdlet.

Espero que o conteúdo tenha sido útil e caso tenha dúvidas ou críticas, por favor, deixe seu comentário ou me deixe uma msg em minha pag pessoal em http://facebook.com/usouzajr

Abraços

Uilson

Correções recentes para Web Application Proxy e ADFS

15 de outubro de 2014 2 comentários

Saudações,

Após minha palestra sobre Web Application Proxy para o MVP Show Cast (clique aqui para ler o resumo e também para ter acesso ao video), postei um artigo no TechNet Wiki sobre como implementar o WAP e seus pré-requisitos. Para ler o artigo clique aqui.

Durante este período de uso da ferramenta, alguns problemas foram reportados e documentados pela Microsoft. A resolução dos mesmos se dá com a aplicação do KB2975719, lançado em agosto deste ano. Este update vem a corrigir também problemas nas versões Windows RT 8.1, Windows 8.1 e Windows Server 2012 R2.

O link para o KB – http://support.microsoft.com/kb/2975719

Para quem usa o Web Application Proxy com ADFS, abaixo a lista de problemas reportdos que são resolvidos com o KB citado:

Update to enable or disable the HttpOnly feature for a WAP or an application in Windows Server

http://support.microsoft.com/kb/2982037

Expired certificates cannot be removed when automatic certificate rollover is disabled in Windows Server 2012 R2

http://support.microsoft.com/kb/2976996

You cannot sign in to a web application when you use certificate authentication method in Windows Server 2012 R2

http://support.microsoft.com/kb/2975066

2971171 ADFS authentication issue for Active Directory users when extranet lockout is enabled

http://support.microsoft.com/kb/2971171

ExtendedProtectionTokenCheck setting keeps being disabled in AD FS 3.0 in Windows Server 2012 R2

http://support.microsoft.com/kb/2978096

You are prompted to re-enter credentials frequently when using Work Folders by using ADFS authentication in Windows 8.1

http://support.microsoft.com/kb/2975719

You cannot log on to an AD FS server when you use an alternative UPN suffix account in Windows Server 2012 R2

http://support.microsoft.com/kb/2980756

AD FS cannot start on a non-English language-based server in Windows Server 2012 R2 or Windows Server 2008 R2

http://support.microsoft.com/kb/2975070

Update to support the SAML sender-vouches token in STS on a Windows Server 2012 R2-based AD FS server

http://support.microsoft.com/kb/2975067

Single Sign-On is available for Office 365 users to access SharePoint Online sites in Windows 2012 R2

http://support.microsoft.com/kb/2958298

Para os próximos posts vamos falar sobre o passo a passo na publicação de aplicações com pré-autenticação e via Passthrough.

Iremos tratar também das mudanças implementadas no Windows Server Technical Preview para o WAP e o ADFS.

Abraços

Uilson

MVP ShowCast 2014 – Estarei lá novamente!

25 de agosto de 2014 Deixe um comentário

Saudações,

Mais uma vez o grupo MVP (Most Valuable Professional) da Microsoft promove o evento MVP ShowCast! Uma grande quantidade de palestras para ITPro´s e profissionais de DEV com ênfase em ferramentas Microsoft. Nestas palestras você verá algumas melhores práticas e dicas de implementação que vão ajudar no seu dia a dia.

Serão 64 webcast´s que ocorrerão entre os dias 15 de setembro a 09 de outubro de 2014, sempre as 12:00 hs e as 20:00 hs.

Como no ano passado, mais uma vez tive a honra de ser convidade para palestrar e este ano estarei falando sobre Web Application Proxy – nova feature de reverse proxy do Windows Server 2012 R2.

Se você ainda usa o Forefront TMG para reverse proxy e está a procura de uma opção para substitui-lo, não perca minha palestra que ocorrerá no dia 22 de setembro as 20:00 hs com moderação do meu amigo MVP Alberto Oliveira. Para se inscreverem na minha palestra basta clicar na imagem abaixo e você será direcionado a página de inscrição:

banner

Além da minha palestra teremos temas muito importantes e interessantes a ser tratados que recomendo a você que não perca! Para tal, visite a página do MVP ShowCast 2014, veja todas as trilhas e faça a sua inscrição nas palestras de seu interesse. Clique aqui para ser direcionado ao site do MVP Show Cast.

Espero que, aqueles que se inscreverem na minha trilha gostem do conteúdo, pois, estou fazendo o meu melhor para oferecer um conteúdo dos melhores para ajudar a tantos quantos for possível!

Um bom evento a todos e um abraço!

Uilson

Appliances Celestix para Direct Access – Solução eficaz e de fácil implementação

31 de julho de 2014 Deixe um comentário

Saudações,

Ontem (30/07/2014) participei de um WebMinar entregue pelo amigo Richard Hicks sobre as funcionalidades dos appliances da Celestix Networks para implementação do Direct Access.

O produto, além de implementar o Direct Access, também permite fazer proxy reverso com Web Application Proxy e também o Remote Desktop Gateway. O Appliance vem com uma versão customizada do Windows Server 2012 R2, porém, o uso deve ser unica e exclusivamente para as finalidades citadas:

1. Uma plataforma integrada que provê acesso seguro, dinâmico e abrangente através de datacenters e núvem para usuários externos.

2. Windows Server 2012 R2 based Unified Remote Access para conexões já usadas atualmente (RRAS based VPN, DirectAccess e Web Application Proxy) pelas corporações e também suporte a BYOD (Bring your own device)

3. Implantação rápida e uma interface de gerenciamento única

4. Acesso Remoto seguro para paplicações em núvem e on-premisses

5. Acesso Site to Site VPN entre ambientes privados, núvem pública ou núvem híbrida

6. Simplifica e garante a segurança do processo de migração através de um processo fim a fim de monitoramento e auditoria da conexão estabelecida.

Considerando o tamanho de sua infra e a abrangência do seu acesso externo, o produto é uma solução eficaz que alia alta performance, eficácia e facilidade no deployment com um custo mais baixo.

Para todas as informações referentes aos appliances da Celestix Networks, bem como os modelos e a documentação, clique no link abaixo:

http://www.celestix.com/products/cloud/

Espero que as informações acima possam ajudar e ser úteis.

Abraços

Uilson

Como fica o reverse proxy pós Forefront TMG e UAG

7 de julho de 2014 2 comentários

Saudações,

Tenho visto na Microsoft muitos projetos de implementação e muitas perguntas acerca de como fica a parte de proxy reverso agora que o TMG irá ser descontinuado.

As corporações até podem manter sua estrutura atual do TMG para reverse proxy até 2020 (prazo em que o suporte extendido se encerra), porém, algumas questões devem ser levadas em consideração e aí você assume (ou não) o risco.

1. O suporte ao Windows Server 2008 R2 deverá estar ativo, e as atualizações continuarão, porém, em termos de performance e até mesmo segurança entramos numa zona de risco. Como estará o cenário de segurança daqui a alguns anos, meses ou até mesmo dias? Não sabemos.

2. Os métodos de autenticação no TMG hoje estão aquém daquilo que as novas versões do Windows oferecem. Portanto, temos um decréscimo na segurança também neste ponto.

3. Qual o custo que a corporação terá que assumir para manter um sistema legado desses e quais os problemas que isso pode gerar em questões como a atualização da aplicação no servidor de destino? A atualização no servidor WEB não está atrelada a versão ou métodos que o TMG utiliza para fazer o tráfego entre a origem e o destino. Portanto, pense bem antes de assumir o risco de manter o produto se uma atualização na aplicação não irá causar erros no acesso por parte dos usuários.

4. Ainda na questão do custo, imagine que você tem um contrato de licenciamento que lhe gere um custo anual de acordo com o que você tem instalado em termos de sistema operacional e aplicações. Dependendo do tamanho da sua estrutura de proxy reverso, a manutenção do mesmo poderá gerar um custo que não seria tão alto caso você pense em migrar.

Esses são apenas alguns fatores a serem pensados por nossos clientes e nós da Microsoft estamos ajudando com essas e outras questões que aparecem de acordo com cada ambiente.

Outro ponto relevante é o caso de alguns clientes que migraram suas infras de Exchange para a versão 2013. É possível publicar o Exchange 2013 no TMG, porém, não é um cenário suportado. Caso haja problemas, a corporação não tem a cobertura da Microsoft para uma eventual análise de caso.

Para quem pensa em migrar, é interessante pensar numa solução completa que englobe todos os pontos que o Forefront TMG cobre (Inspeção de Malware, Rede, filtro de conteúdo, proxy, firewall, cache e proxy reverso).

Hoje, a solução mais interessante no que tange a preço e serviços como um todo é o UTM da Sophos – veja detalhes em www.sophos.com – que cobre praticamente todos os pontos de atuação do Forefront TMG. Tanto que o pessoal da FastVue postou um artigo com os passos para se montar um proxy reverso usando Sophos – veja em http://fastvue.co/sophos/blog/how-to-publish-websites-with-sophos-utm-web-server-protection/ .

Voltando ao universo Microsoft, a chegada do Windows Server 2012 e o Windows Server 2012 R2 veio suprir muitas lacunas deixadas com a saída do TMG. Como o conceito agora é ter sempre um ambiente seguro pensando em todas as soluções (e não só em uma), o serviço de reverse proxy pode ser oferecido a partir do próprio Windows a um custo muito mais baixo (em se tratando de licenciamento) a partir do Web Application Proxy e do ARR (Application Request Routing) do IIS 8.5.

No fim de 2013 entreguei diversos webcasts sobre o tema “Segurança para Redes Microsoft” onde dei uma pincelada nestas duas ferramentas. Você pode ver o conteúdo de uma das apresentações clicando aqui.

A proteção a suas aplicações fica mais confiável, pois, o acesso a elas dependerá de diversos fatores inclusos nas features de segurança do Windows Server 2012 R2. A autenticação via kerberos é fortalecida com o conceito de “claims”, onde o processo de autenticação vem muito mais forte do que nas versões anteriores. Veja o que há de novo em Kerberos a partir do Windows Server 2012 em http://technet.microsoft.com/en-us/library/hh831747.aspx

O Web Application Proxy faz parte da feature Remote Access do Windows Server 2012 R2 e é uma evolução do Active Directory Federation Services Proxy no Windows Server 2012. Com ele vc pode publicar aplicações usando autenticação Kerberos com claims (http://support.microsoft.com/kb/2722087) e KDC (http://technet.microsoft.com/en-us/library/cc734104(v=WS.10).aspx).

Para conhecer o produto vá em http://technet.microsoft.com/en-us/library/dn584107.aspx

Uma documentação completa com o passo a passo da implementação do WAP (Web Application Proxy) para acesso a aplicações internas vá em http://technet.microsoft.com/en-us/library/dn383650.aspx.

Um fator importante para quem vai publicar aplicações usando certificado digital. Os novos certificados SHA2 – CNG (Certificate New Generation) não são suportados pelo TMG. Além do que o conceito do SNI (Server Name Indication) fortalece a segurança para aplicações hosteadas no IIS a partir da versão 8. Para saber mais sobre o SNI clique aqui.

O WAP é a ferramenta recomendada para publicação de aplicações e para acesso remoto em SharePoint, aumentando sua segurança.

O único ponto a ponderar é que o WAP só trabalha com certificado digital, ou seja, somente aplicações SSL são tratadas pela feature. Se você publica alguma aplicação somente na porta 80 (HTTP) terá que usar alguma outra ferramenta, ou aguardar até o lançamento da próxima versão do produto que irá tratar esse tipo de requisição.

Para publicações em HTTP estamos sugerindo a manutenção do TMG ou UAG. Portanto, cabe em seu planejamento pensar nessa questão.

Uma sugestão de leitura também é o post do Ian Parramore da Microsoft sobre SSL Termination no WAP, publicado em 04/07/2014  – quando e como usar  – para ler o post clique aqui.

Sobre o Application Request Routing (ARR), confesso que ainda não tive tempo de fazer nenhum laboratório na funcionalidade, mas, se trata da viabilidade de publicar o Exchange 2013 a partir do IIS. Para conhecer sobre o produto, o link abaixo oferece a você uma série de links do site www.iis.net que irão ajuda-lo no planejamento, instalação e uso de forma geral:

http://www.iis.net/search?searchterm=arr

Espero que o conteúdo seja útil e possa ajuda-lo na fase de transição de sua infra estrutura de Rever Proxy.

Um abraço

Uilson

Configurando o Centralized Certificate Store no IIS 8.5 do Windows Server 2012 R2

24 de março de 2014 1 comentário

Saudações,

Hoje quero falar sobre um tema que acho muito importante para quem administra o IIS com aplicações protegidas por certificado digital. Inclusive este foi um dos temas que falei nas minhas palestras sobre Segurança em Redes Microsoft para o projeto Quintas da TI, na série de webcasts dos MTAC´s e no MVP  ShowCast.

Em se falando de proteção SSL, o administrador de um webserver IIS tem que lidar com uma série de procedimentos para configurar uma aplicação com certificado. Vamos tentar entender todos os passos (ou parte deles):

1. Gerar a CSR no IIS e enviar para validação em uma CA externa ou interna (no caso de validação interna, para sites que serão acessados somente pelos usuários da corporação).

2. Após validação, aplicar este certificado através da conclusão da solicitação da CSR no próprio WEB Server

Pouco né?

Mas, imagine que vc tem diversos webserver´s em sua estrutura, sendo que, em muitos casos o mesmo certificado pode ser usado em N servidores da mesma farm ou de farm´s diferentes. Além disso uma série de aplicações podem requerer seu próprio certificado, gerando a necessidade de importar muitos certificados em muitos servidores.

Vc teria que exportar o certificado para um arquivo PFX de forma a importar nos servidores da farm, usando o Snap-in Certificates via MMC, para que o tráfego SSL ocorra sem problemas.

Para os casos de empresas que fazem host de aplicações WEB, entre outras, esse processo pode ser automatizado através da aplicação de políticas que irão replicar estes certificados a um determinado grupo de servidores.

Agora, a partir do Windows Server 2012, este processo ocorre de uma forma mais eficaz, em se tratando de grandes estruturas de web farms.

O IIS, a partir da versão 8, traz a funcionalidade “Centralized Certificate Store”. Com ele vc pode armazenar seus certificados em um file share, sem a necessidade de importar o mesmo para a conta Computer no Sna-In Certificates da máquina. Para que o CCS seja instalado com a role do IIS, é preciso seleciona-lo no momento da instalação.

Dessa forma, a aplicação vai buscar o certificado neste file share, sendo que você só precisa que toda a farm de webserver´s tenha acesso a esta pasta.

Vamos ver o passo a passo dessa configuração:

Para escrever este post, eu montei um laboratório com 1 servidor contendo o AD-DS e o AD-CS (Root CA), outro com o IIS e ainda mais dois servidores com AD-RMS e AD-FS que estão servindo para estudo e aprofundamento nessas tecnologias, além de serem fonte para muitos outros artigos a serem postados aqui.

O domínio responde pelo nome de uilson.net. A aplicação que iremos usar para o CCS (Centralized Certificate Store) responde pela URL www.uilson.net e nada mais é que a página default do IIS (iisstart).

Após criar o website no seu webserver e requisitar o seu certificado, ele deverá ser validado em um CA Externa ou na sua própria CA Interna (para o caso de aplicações internas que não serão compartilhadas com parceiros ou usuários externos) – Estou assumindo que o leitor deste post já sabe como fazê-lo.

A partir do certificado gerado e validado, exporte-o para um arquivo pfx e o copie para um compartilhamento no seu file server que será o repositório de certificados do IIS para sua estrutura.

OBS: o nome do arquivo PFX deverá ser o mesmo do common name do seu certificado, no exemplo que veremos aqui, o common name do meu certificado é www.uilson.net. Neste caso o nome do arquivo deverá ser www.uilson.net.pfx – qualquer coisa diferente disso, o acesso não funciona.

Para criar o PFX a partir do certificado válido, siga os passos abaixo:

Duplo clique no certificado, clicar na aba “Details” e clicar em “Copy to File”

image

O wizard abrirá e você deverá clicar em “Next”. Em seguida você será perguntado sobre exportar ou não a Private Key. No meu caso, vou exportar para este PFX. Após este passo, clique “Next”:

image

Na tela abaixo, selecione a última opção “Export all extended properties” e clique em “Next”:

image

Na tela abaixo defina uma senha para o arquivo PFX. No meu caso a senha nada mais é que 123456 (é apenas um lab ok?). Em seguida clique “Next”:

image

Na tela abaixo clique em “Browse”:

image 

Agora defina a pasta (compartilhamento) onde o arquivo deverá ser gravado. Obviamente, respeitando o que disse acima sobre o nome do arquivo. Feito isso, clique em “Save”:

image

Na tela abaixo, clique “Next”:

image

Na tela abaixo clique em “Finish”:

image

Você irá receber um aviso dizendo que o export ocorreu com sucesso. Clique em “OK” para fechar o aviso e OK para fechar as propriedades do certificado.

Agora que o certificado está validado, o PFX criado e copiado na pasta correta, vamos configurar o IIS. Entretanto, antes de configurar a aplicação WEB, vc precisa habilitar o serviço do Centralized Certificate Store.

Na imagem abaixo clique no array name (nome do servidor IIS) e no painel a direita de um duplo clique em “Centralized Certificates”:

image

Na tela abaixo vc irá visualizar todos os certificados que estiverem na pasta, ou file share, que foi previamente criado. Para que isso aconteça, clique em “Edit Feature Settings” no lado superior direito:

image

Na tela abaixo, habilitar o checkbox “Enable Centralized Certificates”, configure o caminho UNC do share ou pasta que irá servir de repositório dos seus certificados e defina uma conta que tenha acesso completo a esta pasta para que todos os servidores da sua farm possa ler o conteúdo. Depois você deverá inserir a senha que vc definiu para o arquivo PFX(no nosso exemplo aqui foi 123456). Feito isto, clicar  em “OK”:

image

Com as configurações acima feitas de forma correta, você visualizará o conteúdo do PFX que está no file share ou pasta e agora você já tem o seu primeiro certificado no repositório. Vide imgagem abaixo:

image

Agora que o repositório está configurado, vamos configurar a aplicação WEB para que use o certificado armazenado na CCS.

Clique com o botão direito do mouse no web site e escolha a opção “Edit Bindings…

image

Na tela abaixo clique em “ADD” e a tela “Add Site Biding” irá abrir. No campo “Type” escolha a opção “https” e em “hostname” você poderá inserir o endereço do seu web site. Para que a aplicação WEB use o repositório do Centralized Certificate Store, você deverá selecionar o checkbox “Use Centralized Certificate Store” e clique em OK:

image

Você também tem a opção de habilitar o SNI através do checkbox “Require Server Name Indication”. O SNI é uma extensão TLS usada para identificar o domínio virtual ou o hostname do end point da conexão durante a negociação SSL. Para  habilitar essa opção você precisa ter certeza de que os browsers da sua empresa ou aqueles que vão acessar externamente sejam compatíveis com esta funcionalidade.

As últimas versões do IE têm suporte a este mecanismo, porém, as versões desenvolvidas para o Windows XP não. Portanto, pense nisso antes de habilitar esta opção.

Para ter uma visão detalhada do SNI clique em http://blogs.msdn.com/b/kaushal/archive/2012/09/04/server-name-indication-sni-in-iis-8-windows-server-2012.aspx

Na tela abaixo podemos ver que o site www.uilson.net está pronto para ser acessado via SSL. Clique em “Close”:

image

Ao acessar o site pelo IE, vemos o resultado abaixo:

image

Esta é uma funcionalidade que eu realmente gosto e espero que o conteúdo deste post possa ajudar a você que lida diariamente com uma grande quantidade de servidores WEB IIS.

Abraços

Uilson

%d blogueiros gostam disto: