Nesta atividade, iremos configurar um servidor e um cliente para estabelecer uma sessão VPN SSL. Para o estabelecimento da sessão VPN SSL, utilizaremos o OpenVPN configurado como servidor no host GWFW1 e o cliente instalado na estação de trabalho da rede Local Windows XP. 1. Configurar o host FWGW1 como servidor de VPN SSL, que receberá conexões na interface
externa conectada à internet de um vizinho de laboratório.
Passo 1 Instale o OpenVPN no gateway Linux FWGW1 com o comando: # apt-get install openvpn
Passo 2 Para gerar os certificados, vamos utilizar o conjunto de scripts “EASY-RSA”, que acompanha o pacote do OpenVPN.
Entre no diretório /usr/share/doc/openvpn/examples/easy-rsa/2.0 e utilize os seguintes comandos para inicializar as configurações do script:
# . ./vars # ./clean-all
Para gerar os certificados do CA, utilize o seguinte comando:
# ./build-ca
Serão solicitados os parâmetros do certificado. Exemplo: Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]:Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []: Escola Superior de Redes
Common Name (eg, your name or your server’s hostname) [Fort-Funston CA]:ca.rnp.br
Se gu ra nç a d e R ed es e S is te m as
Passo 3 Para gerar o certificado do servidor OpenVPN, vamos utilizar o comando: # ./build-key-server FWGW1-G
Serão solicitadas informações para o certificado do servidor. Podemos utilizar o exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]: Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []:Escola Superior de
Redes
Common Name (eg, your name or your server’s hostname) [FWGW1-A]:fwgw1-G.esr.rnp.br
Email Address [me@myhost.mydomain]:admin@esr.rnp.br Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []:
Ao final serão realizadas duas perguntas. As respostas devem ser positivas. Passo 4 Para gerar o certificado do cliente, podemos utilizar o comando:
# ./build-key clienteXP
Será solicitado também os dados para o certificado do cliente, podemos utilizar o exemplo:
Country Name (2 letter code) [US]:BR
State or Province Name (full name) [CA]:Distrito Federal Locality Name (eg, city) [SanFrancisco]:Brasilia
Organization Name (eg, company) [Fort-Funston]: Rede
Nacional de Pesquisa
Organizational Unit Name (eg, section) []:Escola Superior de
Redes
Common Name (eg, your name or your server’s hostname) [FWGW1-A]:clientexp.esr.rnp.br
Email Address [me@myhost.mydomain]:aluno@esr.rnp.br Please enter the following ‘extra’ attributes to be sent with your certificate request A challenge password []:
Ao final serão realizadas duas perguntas. As respostas devem ser positivas. Passo 5 É necessário gerar também os parâmetros para o Diffie Hellman; para isso,
utilize o comando: # ./build-dh
Ca pí tu lo 7 - R ot ei ro d e A tiv id ad es
Passo 6 Os certificados foram gerados no subdiretório keys. Vamos copiar os certificados necessários para o servidor para o diretório /etc/openvpn/keys com os comandos: # mkdir /etc/openvpn/keys
# cp keys/ca.crt /etc/openvpn/keys # cp keys/FWGW1-G.crt /etc/openvpn/keys # cp keys/FWGW1-G.key /etc/openvpn/keys # cp keys/dh1024.pem /etc/openvpn/keys
Para aumentar ainda mais o nível de segurança, vamos gerar uma chave estática que deve ser configurada tanto no servidor quanto nos clientes da VPN. Para isso execute dentro do diretório /etc/openvpn/keys (essa chave será utilizada em outra atividade):
# openvpn --genkey --secret static.key
Passo 7 É necessário editar o arquivo de configuração do OpenVPN. No host FWGW1, crie um arquivo com o seu editor de texto: /etc/openvpn/openvpn.conf. Podemos utilizar o seguinte arquivo de configuração como exemplo: port 1194 proto udp dev tun ca /etc/openvpn/keys/ca.crt cert /etc/openvpn/keys/FWGW1-G.crt dh /etc/openvpn/keys/dh1024.pem server 10.8.G.0 255.255.255.0 ifconfig-pool-persist ipp.txt push “route 10.1.G.0 255.255.255.0” push “route 172.16.G.0 255.255.255.0” keepalive 10 120 comp-lzo persist-key persist-tun status openvpn-status.log verb 3
Passo 8 Inicie o servidor OpenVPN com o comando: # /etc/init.d/openvpn start
Passo 9 Forneça as chaves do cliente para o seu colega de laboratório utilizar na estação Windows XP que será utilizada por ele para estabelecer a VPN. Você precisa fornecer os seguintes arquivos:
keys/clienteXP.crt keys/clienteXP.key keys/ca.crt keys/dh1024.pem
Se gu ra nç a d e R ed es e S is te m as
Configure o host Windows XP para estabelecer a conexão VPN SSL com o gateway de seu colega. Iremos utilizar o cliente de VPN disponibilizado no site do OpenVPN.
Passo 1 A partir do host Windows XP, com um navegador, entre no site do OpenVPN (http://openvpn.net/) faça o download da última versão do cliente OpenVPN para Windows XP e proceda com a instalação do cliente. Por exemplo: http://swupdate.openvpn.net/community/releases/openvpn-2.1.4-install.exe Passo 2 Coloque os certificados fornecidos pelo seu colega de laboratório na pasta:
C:\Program Files\OpenVPN\config
Passo 3 Crie o arquivo de configuração para a conexão VPN: C:\Program Files\OpenVPN\config\Lab07SEG2.ovpn Com o seguinte conteúdo:
client dev tun proto udp remote Y.Y.Y.Y 1194 resolv-retry infinite nobind persist-key persist-tun ca ca.crt cert clienteXP.crt key clienteXP.key verb 3
Onde Y.Y.Y.Y é o endereço público (interface eth0) do firewall (FWGW1) do seu colega de laboratório, onde será estabelecida a VPN.
Passo 4 Abra o Windows Explorer na pasta de configuração do OpenVPN: C:\Program Files\OpenVPN\config
Clique com o botão direito do mouse sobre o arquivo de configuração criado no passo anterior.
Ca pí tu lo 7 - R ot ei ro d e A tiv id ad es
Passo 5 Verifique o funcionamento com testes de ping. Ex.: C:\>ping 172.16.G.10
Pinging 172.16.G.10 with 32 bytes of data: Reply from 172.16.G.10: bytes=32 time=5ms TTL=63 Reply from 172.16.G.10: bytes=32 time=4ms TTL=63 Reply from 172.16.G.10: bytes=32 time=2ms TTL=63 Reply from 172.16.G.10: bytes=32 time=5ms TTL=63 Ping statistics for 172.16.1.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 2ms, Maximum = 5ms, Average = 4ms C:\>ping 10.1.G.10
Pinging 10.1.G.10 with 32 bytes of data: Reply from 10.1.G.10: bytes=32 time=5ms TTL=64 Reply from 10.1.G.10: bytes=32 time=1ms TTL=64 Reply from 10.1.G.10: bytes=32 time=1ms TTL=64 Reply from 10.1.G.10: bytes=32 time=1ms TTL=64 Ping statistics for 10.1.G.10:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds:
Minimum = 1ms, Maximum = 5ms, Average = 2ms C:\>
Se gu ra nç a d e R ed es e S is te m as