Home >

IPSEC em Máquinas Fora do Domínio

23. May 2009

Imaginem o seguinte cenário …

 

Seu ambiente está protegido com o IPSEC (Isolamento de Servidores e Domínio) mas existem algumas máquinas que não irão fazer parte do seu domínio, os motivos podem ser diversos (Máquinas de Terceirizados, Máquinas não Windows[Linux] e etc), e mesmo assim você quer manter seu nível de segurança, quais opções temos ?

 

- Colocar esses equipamentos na lista de exceção do IPSEC;

- Criar uma solução de “IPSEC Proxy” com o ISA Server;

- Configurar as Políticas de IPSEC de forma manual nessas máquinas;

 

Como em qualquer projeto a melhor opção é uma resultante da análise do cenário de negócio e políticas da Empresa. Neste post vou exemplificar a configuração da terceira opção.

 

A opção de configurarmos as Políticas de IPSEC de forma manual em uma máquina fora do domínio requer uma solução de PKI implementada em seu ambiente, a única forma de uma máquina fora do seu domínio falar IPSEC com sua rede interna (Rede Segura) é utilizar a opção de autenticação por Certificados Digitais. Considerando que sua estrutura possui esse pré-requisito vamos lá …

 

O primeiro passo é configurar em sua Autoridade Certificadora um Template de IPSEC para trabalhar em modo Offline, no Site da Microsoft existe um artigo que pode ajuda-lo. A resultante dessa etapa é a criação e publicação em sua CA de um Template para máquinas fora do domínio.

 

image

 

Em seguida temos de gerar um certificado para a máquina que está fora do domínio e vai falar IPSEC com sua rede. Nesse meu exemplo estou usando o Windows 7 RC - Claro !!! :) – mas esta etapa é a mesma, considerando as difenças na forma de execução, para qualquer SO, Windows ou Linux.

 

Crie um arquivo chamado certrequest.inf, este arquivo será usado para gerar os dados necessários para envio à autoridade certificadora da sua rede, o conteúdo desse arquivo é :

[Version]
Signature= "$Windows NT$"

[NewRequest]
RequestType = PKCS10
ProviderName = "Microsoft Software Key Storage Provider"
Subject = "CN=NOMECOMPUTADOR"  ***Repare que o campo subject deve ser alterado colocando o nome do computador que está sendo configurado.
KeyLength = 4096
MachineKeySet = TRUE
KeySpec = 2
KeyUsage = 0x80

[EnhancedKeyUsageExtension]
OID = 1.3.6.1.5.5.8.2.2 ;IP Security IKE Intermediate

 

Execute o comando < certreq – new > e siga as instruções da tela. Este comando terá como resultante um arquivo .req que contém os dados neccessário para enviarmos a CA.

 

O próximo passo deve ser executado dentro da CA.

 

Acesse o site https://ServidorCA/certsrv e escolha a opção “Request a Certificate”;

image

Em seguida  clique na opção “Advanced”;

image Escolha a opção “Submit a Certificate”

image No campo onde tem a opção Base-64-encoded você deve colar o conteúdo do arquivo .req eu foi gerado na sua máquina cliente, em seguida selecione o template correto e envie para a CA;

image

Feito isso é só fazer o download do arquivo gerado e instalar em sua máquina cliente;

image

 

Voltando para o nosso Windows 7 (máquina que está fora do domínio), importe o certificado gerado. Lembrando que você deve estar no contexto de computador dentro do Snap-in de Certificates.

image

A parte do Certificado Digital está concluída ! 

 

Agora precisamos apenas criar as políticas de IPSEC localmente, Para esta etapa podemos gerar um script, que deve ficar em conformidade com as regras definidas para a rede local, e executar em cada uma das máquinas que estão fora do domínio mas vão se comunicar com IPSEC, segue um exemplo do script :

 

##############################################

# Configuracoes de seguranca baseadas em IPSEC
# Execute o script da seguinte forma :
# netsh -f ScriptIPSEC.txt
# Criado por : Rodrigo Immaginario

###########  modo estatico ###########

pushd ipsec static
delete all
set store location=local

# FILTROS DE ACOES
add filteraction name="Bloqueio" description="Bloqueia o acesso" action=block
add filteraction name="Permite" description="Permite o trafego em claro" action=permit
add filteraction name="Requisicao Segura" description="Aceita conexoes inbound somente com IPsec, e permite conexoes outbound em claro" soft=yes action=negotiate qmsecmethods="ESP[None,SHA1] ESP[3DES,SHA1]"

# Lista Exceção
add filterlist name="Excecao" description="Maquinas fora da Política de IPSEC"
add filter filterlist="Excecao" srcaddr=any dstaddr=x.x.x.x description="Máquina I" protocol=any srcport=0 dstport=0

# Domain Controllers
add filterlist name="Domain Controllers" description="Domain Controllers"
add filter filterlist="Domain Controllers" srcaddr=any dstaddr=x.x.x.x description="DC-01" protocol=any srcport=0 dstport=0

# Rede Segura
add filterlist name="Rede Segura" description="Rede Segura"
add filter filterlist="Rede Segura" srcaddr=any dstaddr=10.x.x.x dstmask=255.0.0.0 description="Rede Segura" protocol=any srcport=0 dstport=0

# Habilita PING
add filterlist name="Habilita PING" description="Habilita PING"
add filter filterlist="Habilita PING" srcaddr=any dstaddr=me description="Habilita PING" protocol=ICMP

# Cria a Politica
add policy name="Politica IPSEC Maquinas Fora do Dominio" description="Politica IPSEC Maquinas Fora do Dominio" activatedefaultrule=no mmlifetime=180 assign=no pollinginterval=60 mmsecmethods="3DES-SHA1-2 3DES-MD5-2 DES-SHA1-1 DES-MD5-1"

# Adiciona as Regras

# Colocar o nome da autoridade certificadora no campo rootca


add rule name="Rede Segura" policy="Politica IPSEC Maquinas Fora do Dominio" filterlist="Rede Segura" filteraction="Requisicao Segura" rootca="C=BR, O=XXX, CN=XXXXX"
add rule name="Habilita PING" policy="Politica IPSEC Maquinas Fora do Dominio" filterlist="Habilita PING" filteraction="Permite" rootca="C=BR, O=XXX, CN=XXXXX"
add rule name="Domain Controllers" policy="Politica IPSEC Maquinas Fora do Dominio" filterlist="Domain Controllers" filteraction="Permite" rootca="C=BR, O=XXX, CN=XXXXX"
add rule name="Excecao" policy="Politica IPSEC Maquinas Fora do Dominio" filterlist="Excecao" filteraction="Permite" rootca="C=BR, O=XXX, CN=XXXXX"

# Liga a Politica
set policy name=”Politica IPSEC Maquinas Fora do Dominio" assign=YES

popd

exit

 

Pronto, agora é só testar !! 

 

Dá máquina fora do domínio, em nosso exemplo o Windows 7 RC, abra o IPSEC Monitor e verifique uma conexão a um servidor que esteja protegido pelo IPSEC, além de conseguir o acesso você verá que o tráfego já está seguro !

 

image

Abraços,

, , , , , , ,