Páginas

quinta-feira, 21 de fevereiro de 2013

IPSec

Olá a todos,

Meu último desafio (nem foi tão grande assim) foi conectar uma unidade do litoral à nossa sede. Os usuários se conectavam via PPTP, mas não estava muito legal dessa forma. A solução encontrada por mim era criar um tunel site-to-site através de IPSec.

Para a unidade, foi utilizado um roteador Cisco RV042 pelo fato de ser uma unidade bem pequena não tendo muito espaço para comportar equipamentos maiores (como é de minha preferência). Na sede eu utilizei uma máquina com Ubuntu Server.

Na ponta da sede o que eu fiz foi instalar o pacote "OpenSwan":

apt-get install openswan

E editar os seguintes arquivos:

/etc/ipsec.conf

config setup
        plutodebug=all
        #nat_traversal=on # Caso a máquina que conectará esteja atrás de um firewall
        oe=off
        protostack=netkey
        interfaces=%none

conn Unidade  # Trocar o nome "Unidade" para qualquer outro que desejar
        left=0.0.0.0  # IP público local
        leftsourceip=1.1.1.1 # IP da máquina que fará a conexão
        leftsubnet=1.1.1.0/24 # IP da rede que a outra ponta deverá enxergar
        leftnexthop=0.0.0.1 # gateway do IP público local
        right=2.2.2.2 # IP público da unidade
        rightsourceip=3.3.3.3 # IP da máquina da unidade que fará a conexão
        rightsubnet=3.3.3.0/24 # IP da rede da unidade
        rightnexthop=2.2.2.1 # Gateway do IP público da unidade
        authby=secret
        auto=start
        auth=esp
        rekey=yes
        keyingtries=0
        keyexchange=ike
        ike=3des-md5;modp1024
        ikelifetime=3600s
        esp=3des-md5;modp1024
        keylife=28800s
        pfs=no

Em seguida devemos configurar o arquivo /etc/ipsec.secrets (no ubuntu, o arquivo é /var/lib/openswan/ipsec.secrets.inc)

0.0.0.0 %any : PSK "chavequevocequiser"

A configuração acima permite que qualquer máquina que tenha as configurações adequadas e a mesma chave configurada acima se conecte no tunel. Caso não queira essa configuração basta alterar "%any" para o IP público da outra ponta.

Caso o tunel esteja configurado no firewall, é necessário adicionar a seguinte regra:

iptables -A INPUT -p udp --dport 500 -j accept

Caso esteja em uma máquina atrás do firewall, a regra muda para:

iptables -t nat -A PREROUTING -p udp -d ip_publico --dport 500 -j DNAT --to ip_da_máquina

E também essa:

iptables -t nat -A PREROUTING -p udp -d ip_publico --dport 4500 -j DNAT --to ip_da_máquina

Agora é só configurar a outra ponta que pode ser outra máquina linux ou um equipamento como o Cisco RV042, utilizando as mesmas configurações porém não esquecendo de fazer as devidas alterações de IPs.

Lembrando que essa é uma VPN básica, existem muito mais recursos de segurança a serem explorados, e cabe a cada um decidir o que é necessário para cada caso.

Espero que tenha sido útil,

Até a próxima!!!

Um comentário: