Manual do serviço de Conexão de redes remotas pelo protocolo IPSEC

O sistema CLOUD-BRICKS, oferece dois tipos de conexão VPN:

1. Conexão L2TP/IPSEC

  • Serve para conectar computadores independentes numa VLAN específica.
  • É útil para configurar um acesso remoto criptografado com o objetivo de gerenciar os servidores de uma VLAN desde um computador desktop ou laptop.
  • É possível se conectar desde qualquer endereço IP (útil para “RoadWarriors”)
  • A autenticação é feita utilizando certificados digitais X.509.
  • Este tipo de conexão pode ser configurada no sistema de cloud no link “Usuários VPN”.
  • Veja o documento Manual VPN Windows para mais detalhes.

2. Rede Remota IPSEC

  • Serve para interconectar uma rede remota com uma VLAN dentro do Cloud utilizando um túnel IPSEC.
  • A ideia é conectar um ruteador na rede do cliente para que seja possível acessar transparentemente os servidores do Cloud.
  • Este tipo de conexão pode ser configurada no sistema de cloud no link “Redes VPN”.
  • O acesso é restrito unicamente ao endereço IP da rede do cliente.
  • A autenticação é feita utilizando um shared key do IPSEC.
  • Quando uma rede externa é conectada numa VLAN pelo sistema IPSEC, o endereço IP público da rede remota não pode ser usado para nenhuma outra conexão VPN.
  • O objetivo de este documento é mostrar como configurar este tipo de conexão.

TOPOLOGIA DE REDE

CONFIGURAÇÃO NO CLOUD

Para iniciar a configuração você precisa das seguintes informações:

  • Endereço IP público usado pelo ruteador do cliente.
  • Endereço IP e máscara da rede privada do cliente.
  • Se o ruteador estiver atrás de uma conexão NAT, também precisará do endereço IP privado do ruteador.

No sistema de Cloud, faça clic no link “Conexões → Redes VPN”, agora pode preencher as informações de configuração:

Nome: Um identificador para a conexão, pode ser o nome do cliente.

Shared Key: É a senha para proteger o acesso à rede VLAN.

Endereço IP público: É o IP utilizado pelo ruteador para conectar à Internet.

Endereço IP privado: Se seu ruteador estiver atrás de uma conexão NAT, tem que especificar o endereço IP privado do ruteador. Se este não for o caso, pode deixar sem preencher.

Rede privada: IP e máscara da rede privada do cliente. (Exemplo: 192.168.1.0/24 ou 172.30.11.0/255.255.255.0)

O sistema pode rejeitar sua rede privada se:

  • Já existe outra conexão VPN utilizando uma rede privada parecida que possa gerar conflitos de ruteamento.
  • A rede privada do cliente entra em conflito com alguma das VLANS configuradas no servidor do cloud.

Outras restrições:

  • Somente são permitidas redes privadas IPv4 (IPv6 ainda não é suportado neste tipo de conexão)
  • Os endereços IP da rede privada devem pertencer as redes 10.X.X.X/16 ou /24, 192.168.X.X/16 ou 172.16.0.0/12.
  • Endereços IP privados da rede 196.254.X.X/26 não devem ser utilizados.
Depois de clicar no botão “Salvar alterações” o sistema está pronto para receber a conexão IPSEC, agora é necessário configurar o ruteador do lado do cliente.

IMPORTANTE:

  • Os servidores virtuais da VLAN do Cloud que vai ser acessada, tem que ser desligados e ligados de novo (não reiniciados) para que o sistema de cloud possa configurar o ruteamento necessário para acessar a rede do cliente.
  • A rede VLAN do Cloud que vai ser acessada normalmente tem o endereço 10.80.XX.0/24 (onde XX é o número da VLAN)

RUTEADOR LINUX (CENTOS/REDHAT/FEDORA)

Um computador com sistema operacional Linux pode ser usado como ruteador IPSEC.

Estas instruções foram feitas para distribuções Linux compatíveis com RedHat Enterprise Linux (CentOS, Fedora, etc), mas podem servir como guia para outras distribuções também.

  • Instalar o pacote openswan:

yum install openswan

  • Editar o arquivo /etc/ipsec.secrets deixando somente uma linha com as seguintes informações:

<IP_RUTEADOR> <IP_CLOUD>: PSK “<SHARED_KEY>”

IP_RUTEADOR: É o IP do seu ruteador, se estiver atrás de NAT, tem que utilizar o IP privado, caso contrario o IP público.

IP_CLOUD: É o endereço IP do seu servidor físico do cloud.

SHARED KEY: É a senha (shared key) que foi configurada dentro do sistema de cloud no link “Redes VPN”

Exemplo:

192.168.0.250 74.50.112.156: PSK "rKtllZXP....."

  • Editar o arquivo /etc/ipsec.conf assim: (os espaços ao inicio das linhas são muito importantes)
version 2 # conforms to second version of ipsec.conf specification
config setup
dumpdir=/var/run/pluto/
nat_traversal=yes
virtual_private=%v4:0.0.0.0/0
protostack=netkey
force_keepalive=yes
keep_alive=60
conn WEBLINK
authby=secret
pfs=yes
auto=start
keyingtries=3
ikelifetime=8h
keylife=1h
type=tunnel

#Endereço IP público do seu ruteador 
#(se estiver atras de NAT, utilizar o IP privado)
left=192.168.0.250

#A rede privada do cliente no formato IP/mask
leftsubnet=192.168.0.0/24

## IP privado do ruteador:
leftsourceip=192.168.0.250
#Endereço IP público do seu servidor físico do cloud
right=74.50.112.156

#IP/mask da VLAN de destino no sistema cloud:
rightsubnet=10.80.45.0/24

dpddelay=10
dpdtimeout=20
dpdaction=clear


  • Executar os seguintes comandos, e configurá-los num script para que sejam rodados cada vez que o sistema for reiniciado:
#Evitar ICMP redirects
for vpn in /proc/sys/net/ipv4/conf/*; do 
echo 0 > $vpn/accept_redirects; echo 0 > $vpn/send_redirects; 
done
  • O ruteador tem que estar configurado como default gateway da rede do cliente.
  • Se o ruteador faz NAT pelo IPTABLES para compartilhar o endereço IP público com os outros computadores da rede, é muito importante que a regra de NAT do iptables NÃO TENTE ALTERAR (fazer NAT) OS PACOTES COM DESTINO À VLAN do CLOUD:

Exemplo 1: Se sua regra de NAT utiliza o comando SNAT assim:

iptables -t NAT -A POSTROUTING -s <rede_privada/mask> -j SNAT –to <IP_PUBLICO> 

Então a regra tem que ignorar a rede VLAN do Cloud assim:

iptables -t NAT -A POSTROUTING -s <rede_privada/mask> ! -d <rede_vlan/mask> -j SNAT –to <IP_PUBLICO> 

Exemplo 2: Se sua regra de NAT utiliza o comando MASQUERADE assim:

iptables -t NAT -A POSTROUTING -o <interface> -j MASQUERADE 

Então a regra tem que ignorar a rede VLAN do Cloud assim:

iptables -t NAT -A POSTROUTING -o <interface> ! -d <rede_vlan/mask> -j MASQUERADE 
  • Agora pode iniciar o serviço IPSEC para iniciar a conexão:
service ipsec start
  • Acompanhe o log /var/log/secure para ver se o processo de conexão é bem sucedido, procure o string: “IPsec SA established tunnel mode”
  • Se a conexão deu certo, o openswan deve criar as rutas necessárias para acessar a VLAN do cloud, pode verificar a tabla de ruteamento do Linux com o comando:
netstat -nr
  • Agora deve ser possível fazer ping desde a rede do cliente para os servidores virtuais do cloud e também no sentido contrario. (lembre-se de sempre utilizar os endereços IP privados nas duas redes)

RUTEADOR MIKROTIK


Um ruteador Mikrotik ou um computador com sistema operacional RouterOS pode ser usado como ruteador IPSEC para conectar ao serviço de VPN do Cloud.

  • Utilize o software WinBox para conectar no seu ruteador.
  • No menu escolha “IP → IPSEC”

  • Na janela do IPSEC, faça clic no icone “+” para aparecer a janela “New IPSEC Policy”

  • Agora temos que preencher as seguintes informações:
    • Src Address: IP/mask da rede privada interna do cliente
    • Dst Address: IP/mask da VLAN do sistema Cloud

  • Agora clicar na aba “Action” dentro da mesma janela “New IPSec Policy”
  • Preencher as seguintes informações:
    • Ativar o checkbox “Tunnel
    • SA Src Address: IP do ruteador (utilizar o IP privado se estiver atrás de NAT)
    • SA Dst Address: Endereço IP público do seru servidor físico do cloud.

  • Pode clicar OK.
  • Agora clica na aba “Peers” da Janela IPSEC e depois clica no icone “+”

  • A Janela “New IPSEC Peer” deve aparecer.
  • Preencher as seguintes informações:
    • Address: Endereço IP público do seu servidor de cloud.
    • Auth Method: pre shared key
    • Secret: Shared Key (senha) gerada no sistema de cloud quando a Rede VPN foi configurada.
    • Exchange mode: main
    • Ativar o checkbox: “Send Initial Contact
    • Se seu ruteador estiver atrás de um NAT, ativar o checkbox “NAT Traversal

  • Clic em OK
  • Se o ruteador faz NAT para compartilhar o endereço IP público com os outros computadores da rede, é muito importante que a regra de NAT ou de MASQUERADE do firewall NÃO TENTE ALTERAR OS PACOTES COM DESTINO À VLAN do CLOUD, ouseja a VLAN tem que ser ignorada pelas regras de NAT e MASQUERADE.
A configuração está pronta, para o Mikrotik conectar com o serviço de Cloud, precisamos gerar tráfego de dados com destino dos servidores do cloud, para isso podemos fazer um ping para algum dos nossos servidores virtuais (lembre-se de usar os endereços privados 10.X.X.X)

Também deve ser possível fazer ping desde os servidores virtuais para máquinas na rede privada do cliente.

Conexão pelo ruteador Juniper (ScreenOS)

Vamos mostrar como utilizar um dispositivo Juniper com capacidade de VPN para conectar ao serviço de Redes VPN do Cloud.

Recomendamos a configuración Policy-Based Site-toSite VPN AutoKey IKE

O dispositivo Juniper já deve ter configuradas as zonas trust (rede privada) e untrust (rede pública) com ruteamiento e NAT funcionando apropriadamente.

Configurar endereços no Address Book

Aqui devemos configurar a rede privada do lado do cliente, utilizaremos 192.168.0.0/24 como exemplo

Policy > Policy Elements > Addresses > List > New

Address Name: Trust_LAN
IP Address/Domain Name:
IP/Netmask: (select), 192.168.0.0/24
Zone: Trust

precisamos de mais uma entrada no address book para referenciar a VLAN remota no Cloud:

Policy > Policy Elements > Addresses > List > New

Address Name: CLOUD-BRICKS-VLAN
IP Address/Domain Name:
IP/Netmask: (select), 10.80.X.0/24    (substituir X com o número de la VLAN)
Zone: Untrust

Configuração da VPN

Vamos indicar o endereço IP remoto do cloud como destino da VPN, (Endereço IP do seu servidor físico de cloud), neste exemplo vamos chamar o gateway de "TO_WEBLINK".

VPNs > AutoKey Advanced > Gateway > New

Faça clic em "Advanced", no campo "Preshared Key" deve colocar a senha criada  no gerenciador de Cloud-Bricks (Shared Key) quando a rede VPN foi configurada.

Depois fazer clic em "Return" e depois em "OK".

Agora ir para VPNs > AutoKey IKE > New

Temos que usar o Gateway remoto criado no ponto anterior, neste exemplo vamos chamar à VPN de "WEBLINK_TUNNEL".

Fazer clic em "Advanced" para configurar os seguintes parámetros:

Fazer clic em "Return" e depois "OK"

Criação do Policy


Para finalizar, vamos juntar os elementos criados anteriormente usando um Policy, vá para:

Policies > (From: Trust, To: Untrust) New

Neste exemplo vamos chamar o policy de "WEBLINK_VPN".

Depois de fazer clic em "OK" a configuração está pronta, porém o dispositivo somente iniciará a conexão quando veja que há tráfego entre aa red local e a VLAN remota no Cloud-Brick.

Para gerar esse tráfego, sugerimos fazer um ping desde sua red local para qualquer um dos endereços IP das máquinas virtuales que estejam na VLAN configurada (10.80.X.Y, onde X corresponde ao número da sua VLAN).