| Red Hat Enterprise Linux 4: Guia de Segurança | ||
|---|---|---|
| Anterior | Capítulo 6. Redes Privadas Virtuais (Virtual Private Networks) | Próxima |
O IPsec pode ser configurado para conectar um computador pessoal ou estação de trabalho a outra através de uma conexão máquina-a-máquina. Este tipo de conexão utiliza a rede à qual cada máquina está conectada para criar o túnel seguro entre elas. Os requisitos de uma conexão máquina-a-máquina são mínimos, já que é a configuração do IPsec em cada máquina. As máquinas precisam somente de uma conexão dedicada a uma rede de transporte (como a Internet) e do Red Hat Enterprise Linux para criar a conexão do IPsec.
O primeiro passo para criar uma conexão é coletar as informações de sistemas e de rede de cada estação de trabalho (workstation). Para uma conexão máquina-a-máquina, você precisa das seguintes informações:
O endereço IP das duas máquinas
Um nome único para identificar a conexão IPsec e distinguí-la de outros dispositivos e conexões (ex.: ipsec0)
Uma chave fixa de criptografia ou uma gerada automaticamente pelo racoon
Uma chave de autenticação pré-compartilhada, usada para iniciar a conexão e trocar chaves de criptografia durante a sessão
Por exemplo: suponha que as estações de trabalho A e B queiram se interconectar através de um túnel IPsec. Pretendem se conectar usando uma chave pré-compartilhada com o valor foobarbaz e os usuários concordam em deixar que o racoon gere automaticamente e compartilhe uma chave de autenticação entre cada máquina. Ambos usuários das máquinas decidem nomear suas conexões como ipsec0.
Veja o arquivo ifcfg da estação de trabalho (workstation) A para uma conexão IPsec máquina-a-máquina com a estação de trabalho B (o nome único para identificar a conexão neste exemplo é ipsec0, portanto o arquivo resultante é nomeado como /etc/sysconfig/network-scripts/ifcfg-ipsec0).
DST=X.X.X.X TYPE=IPSEC ONBOOT=yes IKE_METHOD=PSK |
A estação de trabalho A substituirá X.X.X.X pelo endereço IP da estação de trabalho B, enquanto esta deve substituir X.X.X.X pelo endereço IP da estação de trabalho A. A conexão é definida para iniciar na inicialização (boot-up) (ONBOOT=yes) e usa o método de autenticação de chave pré-compartilhada (IKE_METHOD=PSK).
A seguir, veja o conteúdo do arquivo da chave pré-compartilhada (chamado /etc/sysconfig/network-scripts/keys-ipsec0) que ambas máquinas precisam para autenticarem-se entre si. O conteúdo deste arquivo deve ser idêntico nas duas estações de trabalho, e somente o usuário root deve ser capaz de acessar ou gravar (read or write) este arquivo.
IKE_PSK=foobarbaz |
![]() | Importante | |
|---|---|---|
Para alterar o arquivo keys-ipsec0 para que somente o usuário root possa acessá-lo ou editá-lo, execute o seguinte comando após criar o arquivo:
|
Para alterar a chave de autenticação a qualquer momento, edite o arquivo keys-ipsec0 nas duas estações de trabalho. As duas chaves devem ser idênticas para que a conexão funcione apropriadamente.
O próximo exemplo mostra a configuração específica para a conexão da fase 1 à máquina remota. O arquivo é nomeado como X.X.X.X.conf (X.X.X.X é substituído pelo endereço IP do roteador IPsec remoto). Note que este arquivo é gerado automaticamente quando o túnel IPsec é ativado e não deve ser editado diretamente.
;
remote X.X.X.X
{
exchange_mode aggressive, main;
my_identifier address;
proposal {
encryption_algorithm 3des;
hash_algorithm sha1;
authentication_method pre_shared_key;
dh_group 2 ;
}
} |
O arquivo de configuração default da fase 1, criado quando uma conexão IPsec é iniciada, contém as seguintes asserções usadas pela implementação IPsec do Red Hat Enterprise Linux:
Especifica que as asserções subsequentes deste arquivo de configuração aplicam-se somente ao nódulo remoto identificado pelo endereço IP X.X.X.X.
A configuração default do IPsec no Red Hat Enterprise Linux usa um método de autenticação agressivo, que reduz a sobrecarga da conexão enquanto permite a configuração de diversas conexões IPsec com máquinas múltiplas.
Define o método de identificação a ser usado na autenticação dos nódulos. O Red Hat Enterprise Linux usa endereços IP para identificar os nódulos.
Define a cifra de criptografia usada durante a autenticação. Por default, o Triple Data Encryption Standard (3DES) é usado.
Especifica o algoritmo hash usado durante a negociação entre nódulos da fase 1. Por default, usa-se o Secure Hash Algorithm versão 1.
Define o método de autenticação usado durante a negociação dos nódulos. Por default, o Red Hat Enterprise Linux usa chaves pré-compartilhadas para autenticação.
Especifica o número do grupo Diffie-Hellman para estabelecer chaves de sessões geradas dinamicamente. Por default, o grupo de 1024 bits é usado.
Os arquivos /etc/racoon/racoon.conf devem ser idênticos em todos os nódulos IPsec, exceto pela asserção include "/etc/racoon/X.X.X.X.conf". Esta asserção (e o arquivo que referencia) é gerada quando o túnel IPsec é ativado. Para a estação de trabalho A, X.X.X.X na asserção include é o endereço IP da estação de trabalho B. O oposto vale para a estação de trabalho B. Veja a seguir um arquivo racoon.conf típico quando a conexão IPsec é ativada.
# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.
path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
sainfo anonymous
{
pfs_group 2;
lifetime time 1 hour ;
encryption_algorithm 3des, blowfish 448, rijndael ;
authentication_algorithm hmac_sha1, hmac_md5 ;
compression_algorithm deflate ;
}
include "/etc/racoon/X.X.X.X.conf" |
Este arquivo racoon.conf default inclui localidades definidas para a configuração do IPsec, arquivos de chaves pré-compartilhadas e certificados. Os campos sainfo anonymous descrevem a SA da fase 2 entre os nódulos IPsec — a natureza da conexão IPsec (incluindo os algoritmos suportados de criptografia usados) e o método de troca de chaves. A lista a seguir define os campos da fase 2:
Denota que a SA pode iniciar anonimamente com qualquer par desde que as credenciais IPsec coincidam.
Define o protocolo Diffie-Hellman de troca de chaves, o que determina o método através do qual os nódulos do IPsec estabelecem uma chave de sessão temporária mútua para a segunda fase da conectividade IPsec. Por default, a implementação IPsec do Red Hat Enterprise Linux usa o grupo 2 (ou modp1024) dos grupos de troca de chave criptográfica Diffie-Hellman. O grupo 2 usa uma exponenciação modular de 1024 bits, evitando que atacantes descriptografem transmissões IPsec anteriores, mesmo que uma chave privada seja comprometida.
Este parâmetro especifica o ciclo de vida de uma SA e pode ser quantificado por hora ou bytes de dados. A implementação IPsec do Red Hat Enterprise Linux especifica o tempo de uma hora.
Especifica as cifras de criptografia suportadas para a fase 2. O Red Hat Enterprise Linux suporta 3DES, 448-bit Blowfish e Rijndael (a cifra usada no Advanced Encryption Standard ou AES).
Lista os algoritmos hash suportados para autenticação. Os modos suportados são os códigos de autenticação de mensagem sha1 e md5 hashed (HMAC).
Define o algoritmo Deflate de compressão para suporte à IP Payload Compression (IPCOMP), que permite a transmissão potencialmente mais rápida de datagramas IP através de conexões lentas.
Para iniciar a conexão, reinicialize a estação de trabalho ou execute o seguinte comando, como root, em cada máquina:
/sbin/ifup ipsec0 |
Para testar a conexão IPsec, execute o utilitário tcpdump para visualizar os pacotes de rede sendo transferidos entre as máquinas (ou redes) e verificar se estão criptografadas via IPsec. O pacote deve incluir um cabeçalho AH e deve ser exibido como pacotes ESP. ESP significa que está criptografado. Por exemplo:
17:13:20.617872 pinky.example.com > ijin.example.com: \ AH(spi=0x0aaa749f,seq=0x335): ESP(spi=0x0ec0441e,seq=0x335) (DF) |