VPN FreeSWan IPSec
Apresento neste artigo a configuração de uma VPN (Virtual Private Network) utilizando-se da ferramenta FreeS/Wan (freeswan). Toda a configuração foi feita baseada em um Conectiva Linux 9.
Parte 5: ipsec.secrets
Agora é necessário configurar as chaves que serão usadas para a criptografia e autenticação.
Como disse anteriormente, devemos dar preferência para o tipo RSA, que é mais seguro e tem outras vantagens em relação ao tipo de chaves PSK, como por exemplo:
Na transmissão de chaves. A chave do tipo RSA não tem nenhum problema de transmissão de chaves. No caso das chaves compartilhadas (PSK), você deve enviar a chave para o outro lado de algum modo. Com o mecanismo de chave pública/privada, você transmite para o outro lado apenas a chave pública. O sistema foi desenvolvido para que não importe caso alguém pegue sua chave pública, nada poderá ser feito com ela (para descriptografar o que foi criptografado com a chave pública é necessária a chave privada que não foi transmitida).
Na nossa configuração iremos gerar uma chave de 1024 bits.
O comando a ser utilizado para a geração de chaves tipo RSA é o:
# ipsec rsasigkey 1024
Com isso iremos gerar uma chave de 1024 bits. Será exibido na tela algo parecido com:
RSA 1024 bits Tru Sep 30 23:15:45 2004
for signature only, UNSAFE FOR ENCRYPTION
pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
NOTA: o número gerado aqui é será muito maior, mas colocarei somente uma parte por questões estéticas.
Serão geradas mais algumas linhas também, mas vamos para a parte prática.
Vamos gerar uma chave de 1024 bits e colocar no arquivo ipsec.secrets:
# ipsec rsasigkey 1024 > /etc/ipsec.secrets
Com isso todo o conteúdo gerado irá para o arquivo ipsec.secrets (arquivo onde a chave deve ficar).
O arquivo ficará mais ou menos assim:
# vi /etc/ipsec.secrets
Como disse anteriormente, devemos dar preferência para o tipo RSA, que é mais seguro e tem outras vantagens em relação ao tipo de chaves PSK, como por exemplo:
Na transmissão de chaves. A chave do tipo RSA não tem nenhum problema de transmissão de chaves. No caso das chaves compartilhadas (PSK), você deve enviar a chave para o outro lado de algum modo. Com o mecanismo de chave pública/privada, você transmite para o outro lado apenas a chave pública. O sistema foi desenvolvido para que não importe caso alguém pegue sua chave pública, nada poderá ser feito com ela (para descriptografar o que foi criptografado com a chave pública é necessária a chave privada que não foi transmitida).
Na nossa configuração iremos gerar uma chave de 1024 bits.
O comando a ser utilizado para a geração de chaves tipo RSA é o:
# ipsec rsasigkey 1024
Com isso iremos gerar uma chave de 1024 bits. Será exibido na tela algo parecido com:
RSA 1024 bits Tru Sep 30 23:15:45 2004
for signature only, UNSAFE FOR ENCRYPTION
pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
NOTA: o número gerado aqui é será muito maior, mas colocarei somente uma parte por questões estéticas.
Serão geradas mais algumas linhas também, mas vamos para a parte prática.
Vamos gerar uma chave de 1024 bits e colocar no arquivo ipsec.secrets:
# ipsec rsasigkey 1024 > /etc/ipsec.secrets
Com isso todo o conteúdo gerado irá para o arquivo ipsec.secrets (arquivo onde a chave deve ficar).
O arquivo ficará mais ou menos assim:
# vi /etc/ipsec.secrets
# RSA 1024 bits Tru Sep 30 23:15:45 2004
# for signature only, UNSAFE FOR ENCRYPTION
#pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
#IN KEY 0x4200 4 1 AQNu jq5VUTHRxA...
Modulus: 0x9ef4ef002620fecafbce547...
PublicExponent: 0x03
#everything after this point is secret
PrivateExponent: 0x124fceefb4ea84f002620...
Prime1: 0xdef2333dec...
Prime2: 0x92d34ecdw...
Exponent1: 0x9401ecf00cc8d1...
Exponent2: 0x7a36c3e2acb8dad...
Coefficient: 0x7cc93334223f7f3c...
# for signature only, UNSAFE FOR ENCRYPTION
#pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
#IN KEY 0x4200 4 1 AQNu jq5VUTHRxA...
Modulus: 0x9ef4ef002620fecafbce547...
PublicExponent: 0x03
#everything after this point is secret
PrivateExponent: 0x124fceefb4ea84f002620...
Prime1: 0xdef2333dec...
Prime2: 0x92d34ecdw...
Exponent1: 0x9401ecf00cc8d1...
Exponent2: 0x7a36c3e2acb8dad...
Coefficient: 0x7cc93334223f7f3c...
O arquivo ipsec.secrets ficará parecido com este acima. Peço que tomem cuidado com as posições da cada linha neste arquivo, nada de juntar tudo para um lado ou querer formatar e etc, deixem as linhas como estão.
Precisamos apenas inserir um informação que precisa estar na primeira linha e começar na primeira coluna e depois colocar outro parâmetro na última linha do arquivo. Segue abaixo os parâmetros:
:RSA {
# RSA 1024 bits Tru Sep 30 23:15:45 2004
# for signature only, UNSAFE FOR ENCRYPTION
#pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
#IN KEY 0x4200 4 1 AQNu jq5VUTHRxA...
Modulus: 0x9ef4ef002620fecafbce547...
PublicExponent: 0x03
#everything after this point is secret
PrivateExponent: 0x124fceefb4ea84f002620...
Prime1: 0xdef2333dec...
Prime2: 0x92d34ecdw...
Exponent1: 0x9401ecf00cc8d1...
Exponent2: 0x7a36c3e2acb8dad...
Coefficient: 0x7cc93334223f7f3c...
}
# RSA 1024 bits Tru Sep 30 23:15:45 2004
# for signature only, UNSAFE FOR ENCRYPTION
#pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
#IN KEY 0x4200 4 1 AQNu jq5VUTHRxA...
Modulus: 0x9ef4ef002620fecafbce547...
PublicExponent: 0x03
#everything after this point is secret
PrivateExponent: 0x124fceefb4ea84f002620...
Prime1: 0xdef2333dec...
Prime2: 0x92d34ecdw...
Exponent1: 0x9401ecf00cc8d1...
Exponent2: 0x7a36c3e2acb8dad...
Coefficient: 0x7cc93334223f7f3c...
}
Pronto, está aí. O arquivo precisa estar assim, ou seja, inserir ": RSA {" na primeira linha do arquivo e inserir "}" na última linha do arquivo. Agora precisamos copiar apenas a linha "# pubkey=0x01039...", aconselho copiar a linha e colar em algum arquivo por exemplo:
# vi left.key
#pubkey=0x01039efb4ea84f0026206cd876e41dfbce7...
Pessoal, vamos considerar que toda está configuração está sendo feita no gateway da RedeA, ou seja, estou na parte que descrevi como left no arquivo ipsec.conf.
Agora o necessário a se fazer é abrir o arquivo left.key e copiar a pubkey e depois colar no arquivo ipsec.conf na parte "lefrsasigkey=". Vamos abrir o arquivo ipsec.conf ir até a linha onde deixamos em branco (leftrsasigkey=) e colar toda a chave publica após o sinal de "=". Precisamos deixar somente o conteúdo que está depois do sinal de "=" da chave pública (tirar #pubkey=). Então o arquivo ipsec.conf ficará assim:
...
conn vivaolinux
left=200.241.112.1
leftsubnet=192.168.6.0/24
leftnexthop=%defaultroute
leftrsasigkey=0x01039efb4ea84f0026206cd876e41dfbce7...
right=200.250.46.1
rightsubnet=192.168.7.0/24
rightnexthop=%defaultroute
rightrsasigkey=
auto=add
conn vivaolinux
left=200.241.112.1
leftsubnet=192.168.6.0/24
leftnexthop=%defaultroute
leftrsasigkey=0x01039efb4ea84f0026206cd876e41dfbce7...
right=200.250.46.1
rightsubnet=192.168.7.0/24
rightnexthop=%defaultroute
rightrsasigkey=
auto=add
Salve e feche o arquivo. Agora vamos fazer o mesmo do outro lado (RedeB).
Gostaria de dizer que não sei se vc sabe mas o projeto FreeSWAN está parado, e que a continuação dele é o OpenSWAN ... acho bom dizer isso ao pessoal, porque é melhor seguir usando um projeto que vai ter atualizações e continuação.
Blz ?
Falow