Olá a todos!
Este case surgiu de uma necessidade de ligar uma unidade distante com a nossa sede, sem precisar gastar muito, pois no lugar existem apenas dois funcionários.
Meu último desafio (nem foi tão grande assim) foi conectar uma unidade do litoral à nossa sede. Os usuários conectavam-se via PPTP, mas não estava muito legal dessa forma. A solução encontrada: criar um túnel
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, utilizei uma máquina com
Ubuntu Server.
Na ponta da sede, o que 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, conecte-se ao túnel. Caso não queira essa configuração, basta alterar "%any" para o IP público da outra ponta.
Caso o túnel 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
GNU/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: 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.
Esta dica também foi publicada em:
::Unix for Life::: IPSec
Espero que tenha sido útil.
Até a próxima!