{"id":4224,"date":"2015-12-11T14:00:51","date_gmt":"2015-12-11T16:00:51","guid":{"rendered":"https:\/\/www.viazap.com.br\/?p=4224"},"modified":"2015-12-09T02:02:56","modified_gmt":"2015-12-09T04:02:56","slug":"openswan-configurando-uma-conexao-vpn-site-to-site-e-simulando-com-gns3","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=4224","title":{"rendered":"OPENSWAN &#8211; CONFIGURANDO UMA CONEX\u00c3O VPN SITE-TO-SITE E SIMULANDO COM GNS3"},"content":{"rendered":"<h1>INTRODU\u00c7\u00c3O<\/h1>\n<p>De introdu\u00e7\u00e3o do <em>GNS3<\/em>, usando os conceitos apresentados, montarei um ambiente com dois servidores em locais separados que precisam se comunicar pela internet utilizando um conex\u00e3o segura, o jeito mais simples \u00e9 instalar o <em>Openswan<\/em> e criar uma VPN IPsec entre as localidades.<\/p>\n<p>O objetivos desse artigo s\u00e3o:<\/p>\n<ul>\n<li>Criar o ambiente de simula\u00e7\u00e3o usando o GNS3 e configurar regras b\u00e1sicas do firewall.<\/li>\n<li>Mostrar a instala\u00e7\u00e3o e configura\u00e7\u00e3o do Openswan no <em>Debian Jessie<\/em> em ambas as pontas (Peers).<\/li>\n<li>Validar o funcionamento da conex\u00e3o VPN IPsec.<\/li>\n<\/ul>\n<p>Antes de come\u00e7ar:<\/p>\n<p>Ao longo do artigo estarei citando a matriz da empresa XPTO sendo Site-A e o novo escrit\u00f3rio sendo Site-B.<br \/>\nSempre que referir a &#8220;Site&#8221; quero dizer local, escrit\u00f3rio, empresa, e n\u00e3o ao significado mais comum que \u00e9 relacionado a sites de internet, ou seja fazer uma VPN Site-to-Site \u00e9 fechar uma conex\u00e3o entre dois escrit\u00f3rios ou empresas.<\/p>\n<p>&nbsp;<\/p>\n<p><!--more--><br \/>\nOs servidores com hostname D8-xxxx ser\u00e3o maquinas virtuais no <em>VirtualBox<\/em> utilizadas pelo GNS3, o Desk02 e BB-Saida-Internet ser\u00e3o t\u00faneis configurado no host hospedeiro.<\/p>\n<p>Estudo de caso:<\/p>\n<p>A empresa XPTO possui uma matriz (Site-A) com duas redes, 172.16.10.0\/24 \u00e9 a rede servidores onde existe uma aplica\u00e7\u00e3o de intranet, a rede de desktop \u00e9 172.16.0.0\/24, por ser adepta de software open decidiu usar firewalls, servidores e desktop <a href=\"http:\/\/www.vivaolinux.com.br\/linux\/\">Linux<\/a>, optando pela distribui\u00e7\u00e3o Debian 8.<\/p>\n<p>Recentemente adquiriu um novo escrit\u00f3rio (Site-B), que ser\u00e1 implantado outra aplica\u00e7\u00e3o que ir\u00e1 se comunicar com os servidores do escrit\u00f3rio principal (Site-A) a rede de servidores desse escrit\u00f3rio \u00e9 192.168.0.0\/24. Devido aos altos custos de um link ponto a ponto decidiu adquirir um link de internet para comunica\u00e7\u00e3o entre os sites, o Site-A possui o IP v\u00e1lido 201.27.8.2 e o Site-B 187.8.230.2, no entanto os dados que trafegam entre os servidores s\u00e3o sigilosos e por isso a comunica\u00e7\u00e3o deve ser criptografada. Portando \u00e9 necess\u00e1rio a implanta\u00e7\u00e3o de uma solu\u00e7\u00e3o simples, r\u00e1pida e segura para conectar os sites.<\/p>\n<p>O primeiro software que vem na mente do administrador de rede \u00e9 o Openswan, que atende a todos os requisitos.<\/p>\n<p>Descri\u00e7\u00e3o dos hosts:<\/p>\n<ul>\n<li>D8-FW02 &#8211; Firewall do Site-A onde sera instalado o Openswan.<\/li>\n<li>D8-FW01 &#8211; Firewall do Site-B onde sera instalado o Openswan.<\/li>\n<li>D8-SRV02 &#8211; Servidor de aplica\u00e7\u00e3o do Site-A.<\/li>\n<li>D8-SRV01 &#8211; Servidor de aplica\u00e7\u00e3o do Site-B.<\/li>\n<li>D8-BB01 &#8211; Servidor que far\u00e1 o papel de backbone da operadora de internet entre os dois sites, de forma resumida ele ser\u00e1 apenas um servidor em bridge entre os dois sites e um gateway de internet para todos os hosts.<\/li>\n<li>Desk02 &#8211; Desktop do Site-A que utilizar\u00e1 o t\u00fanel tap1.<\/li>\n<li>BB-Saida-Internet &#8211; Backbone que permite a sa\u00edda para internet de toda rede GNS, utilizar\u00e1 o t\u00fanel tap0.<\/li>\n<\/ul>\n<p>Abstraindo o estudo de caso a cima, a situa\u00e7\u00e3o da empresa XPTO \u00e9 a seguinte:<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/Imagem_01.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_Imagem_01.png\" alt=\"Linux: Openswan - Configurando uma conex\u00e3o VPN Site-to-Site e simulando com GNS3\" width=\"500\" height=\"299\" border=\"0\" \/><\/a><\/div>\n<p>&nbsp;<\/p>\n<h1>CONFIGURANDO VMS E HOST HOSPEDEIRO<\/h1>\n<p>&nbsp;<\/p>\n<div>Aqui est\u00e3o todas as configura\u00e7\u00f5es utilizadas nas VMs e no host hospedeiro para deixar o ambiente do GNS3 funcional:<\/p>\n<p>Host: D8-SRV02<\/p>\n<p>Editar o arquivo interfaces:<\/p>\n<p><strong># vim \/etc\/network\/interfaces<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># IP da eth0<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 172.16.10.150<br \/>\nnetmask 255.255.255.0<br \/>\ngateway 172.16.10.254<\/div>\n<p>Host: D8-FW02<\/p>\n<p>Editar arquivo interfaces:<\/p>\n<p><strong># vim \/etc\/network\/interfaces<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Rede de servidores<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 172.16.10.254<br \/>\nnetmask 255.255.255.0<\/p>\n<p><span class=\"comentario\"># Rede de desktops<\/span><br \/>\nallow-hotplug eth1<br \/>\niface eth1 inet static<br \/>\naddress 172.16.0.254<br \/>\nnetmask 255.255.255.0<\/p>\n<p><span class=\"comentario\"># Rede WAN<\/span><br \/>\nallow-hotplug eth2<br \/>\niface eth2 inet static<br \/>\naddress 201.27.8.2<br \/>\nnetmask 255.255.255.252<br \/>\ngateway 201.27.8.1<\/div>\n<p>Criar script de iptables fwregras.sh:<\/p>\n<p><strong># vim \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Adicionar o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\">#!\/bin\/bash<\/span><br \/>\n<span class=\"comentario\"># Permitir a passagem de pacotes pelo firewall<\/span><br \/>\necho 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward<\/p>\n<p><span class=\"comentario\"># Limpar as regras anteriores de NAT, caso o script seja executado mais de uma vez<\/span><br \/>\niptables -t nat -F<\/p>\n<p><span class=\"comentario\"># Permitir a passagem dos IPs privados sem entrar no NAT<\/span><br \/>\niptables -t nat -A POSTROUTING -d 10.0.0.0\/8 -o eth2 -j ACCEPT<br \/>\niptables -t nat -A POSTROUTING -d 172.16.0.0\/12 -o eth2 -j ACCEPT<br \/>\niptables -t nat -A POSTROUTING -d 192.168.0.0\/16 -o eth2 -j ACCEPT<\/p>\n<p><span class=\"comentario\"># NAT para qualquer IP de origem da rede interna<\/span><br \/>\niptables -t nat -A POSTROUTING -s 172.16.0.0\/24 -o eth2 -j MASQUERADE<br \/>\niptables -t nat -A POSTROUTING -s 172.16.10.0\/24 -o eth2 -j MASQUERADE<\/div>\n<p>Alterar permiss\u00e3o do script fwregras.sh:<\/p>\n<p><strong># chmod 755 \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Configurar script para iniciar junto com o sistema, editando o arquivo rc.local:<\/p>\n<p><strong># vim \/etc\/rc.local<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">\/usr\/local\/bin\/fwregras.sh<br \/>\nexit 0<\/div>\n<p>Host: D8-FW01<\/p>\n<p>Editar o arquivo interfaces:<\/p>\n<p><strong># vim \/etc\/network\/interfaces<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Rede de servidores<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 192.168.0.254<br \/>\nnetmask 255.255.255.0<\/p>\n<p><span class=\"comentario\"># Rede WAN<\/span><br \/>\nallow-hotplug eth1<br \/>\niface eth1 inet static<br \/>\naddress 187.8.230.2<br \/>\nnetmask 255.255.255.252<br \/>\ngateway 187.8.230.1<\/div>\n<p>Criar script de iptables fwregras.sh:<\/p>\n<p><strong># vim \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Adicionar o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Permitir a passagem de pacotes pelo firewall<\/span><br \/>\necho 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward<\/p>\n<p><span class=\"comentario\"># Limpar as regras anteriores de NAT, caso o script seja executado mais de uma vez<\/span><br \/>\niptables -t nat -F<\/p>\n<p><span class=\"comentario\"># Permitir a passagem dos IPs privados sem entrar no NAT<\/span><br \/>\niptables -t nat -A POSTROUTING -d 10.0.0.0\/8 -o eth1 -j ACCEPT<br \/>\niptables -t nat -A POSTROUTING -d 172.16.0.0\/12 -o eth1 -j ACCEPT<br \/>\niptables -t nat -A POSTROUTING -d 192.168.0.0\/16 -o eth1 -j ACCEPT<\/p>\n<p><span class=\"comentario\"># NAT para qualquer IP de origem da rede interna<\/span><br \/>\niptables -t nat -A POSTROUTING -s 192.168.0.0\/24 -o eth1 -j MASQUERADE<\/div>\n<p>Alterar permiss\u00e3o do script fwregras.sh:<\/p>\n<p><strong># chmod 755 \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Configurar script para iniciar junto com o sistema, editando o arquivo rc.local:<\/p>\n<p><strong># vim \/etc\/rc.local<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">\/usr\/local\/bin\/fwregras.sh<br \/>\nexit 0<\/div>\n<p>Host: D8-SRV01<\/p>\n<p>Editar o arquivo interfaces:<\/p>\n<p><strong># vim \/etc\/network\/interfaces<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># IP da eth0<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 192.168.0.250<br \/>\nnetmask 255.255.255.0<br \/>\ngateway 192.168.0.254<\/div>\n<p>Host: D8-BB01<\/p>\n<p>Editar o arquivo interfaces:<\/p>\n<p><strong># vim \/etc\/network\/interfaces<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># Rede para sa\u00edda da internet<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 177.8.8.2<br \/>\nnetmask 255.255.255.252<br \/>\ngateway 177.8.8.1<\/p>\n<p><span class=\"comentario\"># Bloqueando o roteamento de IPs privados<\/span><br \/>\nup route add -net 10.0.0.0\/8 reject<br \/>\nup route add -net 172.16.0.0\/12 reject<br \/>\nup route add -net 192.168.0.0\/16 reject<\/p>\n<p><span class=\"comentario\"># Rede do Site-B<\/span><br \/>\nallow-hotplug eth1<br \/>\niface eth1 inet static<br \/>\naddress 187.8.230.0<br \/>\nnetmask 255.255.255.252<\/p>\n<p><span class=\"comentario\"># Rede do Site-A<\/span><br \/>\nallow-hotplug eth0<br \/>\niface eth0 inet static<br \/>\naddress 201.27.8.0<br \/>\nnetmask 255.255.255.252<\/div>\n<p>Criar script de iptables fwregras.sh:<\/p>\n<p><strong># vim \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Adicionar o seguinte conte\u00fado.<\/p>\n<div class=\"codigo\"><span class=\"comentario\">#!\/bin\/bash<\/span><br \/>\n<span class=\"comentario\"># Permitir a passagem de pacotes pelo firewall<\/span><br \/>\necho 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward<\/p>\n<p><span class=\"comentario\"># NAT necess\u00e1rio para a comunica\u00e7\u00e3o funcionar com a interface tuntap<\/span><br \/>\niptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE<\/div>\n<p>Alterar permiss\u00e3o do script fwregras.sh<\/p>\n<p><strong># chmod 755 \/usr\/local\/bin\/fwregras.sh<\/strong><\/p>\n<p>Configurar script para iniciar junto com o sistema, editando o arquivo rc.local:<\/p>\n<p><strong># vim \/etc\/rc.local<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">\/usr\/local\/bin\/fwregras.sh<br \/>\nexit 0<\/div>\n<h1>HOST HOSPEDEIRO<\/h1>\n<p>Configura\u00e7\u00f5es do tunel tap0, utilizado para simular Desk02:<\/p>\n<p><strong>$ sudo ip tuntap add dev tap1 mode tap<\/strong><br \/>\n<strong>$ sudo ifconfig tap1 172.16.0.100 netmask 255.255.255.0 up<\/strong><\/p>\n<p>Configura\u00e7\u00f5es do tunel tap1, utilizado para simular o BB-Saida-internet:<\/p>\n<p><strong>$ sudo ip tuntap add dev tap0 mode tap<\/strong><br \/>\n<strong>$ sudo ifconfig tap0 177.8.8.1 netmask 255.255.255.0 up<\/strong><\/p>\n<p>Rota para a rede de servidores Site-A:<\/p>\n<p><strong>$ sudo route add -net 172.16.10.0\/24 gw 172.16.0.254<\/strong><\/p>\n<p>Rota para a rede de servidores Site-B:<\/p>\n<p><strong>$ sudo route add -net 192.168.0.0\/24 gw 172.16.0.254<\/strong><\/p>\n<p>Permitir a passagem de pacotes pela interface:<\/p>\n<p><strong>$ sudo sh -c &#8220;echo 1 &gt; \/proc\/sys\/net\/ipv4\/ip_forward&#8221;<\/strong><\/p>\n<p>Mascarar a sa\u00edda permitindo o acesso a internet das VMs, substituir wlp9s0 pela interface de rede do host hospedeiro:<\/p>\n<p><strong>$ sudo iptables -t nat -A POSTROUTING -o wlp9s0 -j MASQUERADE<\/strong><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>INSTALA\u00c7\u00c3O E CONFIGURA\u00c7\u00c3O DO OPENSWAN<\/h1>\n<p>&nbsp;<\/p>\n<div>Quando comecei a montar o ambiente tive uma surpresa ao descobrir que o <a href=\"https:\/\/launchpad.net\/debian\/jessie\/+source\/openswan\" target=\"_blank\" rel=\"nofollow\">Openswan<\/a> n\u00e3o est\u00e1 dispon\u00edvel no reposit\u00f3rio oficial do Debian 8 Jessie, para instalar precisei usar o sources.list do Debian 7 Wheezy.<\/p>\n<p>Caso utilize Openswan no Debian 8 deixe nos coment\u00e1rios como est\u00e1 o funcionamento do servi\u00e7o, pois n\u00e3o testei a fundo se existia alguma incompatibilidade ou instabilidade.<\/p>\n<p>Instalando o Openswan, executar nos servidores D8-FW01 e D8-FW02:<\/p>\n<p><strong># apt-get update<\/strong><br \/>\n<strong># apt-get install openswan<\/strong><\/p>\n<p>Configurando o Openswan, editar arquivo ipsec.conf, deixar a mesma configura\u00e7\u00e3o em ambos os servidores.<\/p>\n<p><strong># vim \/etc\/ipsec.conf<\/strong><\/p>\n<p>Esse \u00e9 o principal arquivo de configura\u00e7\u00e3o do IPsec, poder\u00edamos configurar todos os t\u00faneis aqui, por\u00e9m acho pouco pr\u00e1tico, por isso sempre adiciono a linha include &#8220;\/etc\/ipsec.d\/ipsec.*&#8221;,com isso qualquer arquivo salvo no diret\u00f3rio \/etc\/ipsec.d\/ e que comece com ipsec \u00e9 lido e pode se tornar uma conex\u00e3o VPN, bem interessante para quando temos muitos t\u00faneis VPN com empresas e escrit\u00f3rios diferentes. Deixe o arquivo com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\"><span class=\"comentario\"># \/etc\/ipsec.conf &#8211; Openswan IPsec configuration file<\/span><br \/>\n<span class=\"comentario\"># This file:\u00a0\u00a0\/usr\/share\/doc\/openswan\/ipsec.conf-sample<\/span><br \/>\n<span class=\"comentario\">#<\/span><br \/>\n<span class=\"comentario\"># Manual:\u00a0\u00a0\u00a0\u00a0\u00a0ipsec.conf.5<\/span><br \/>\nversion 2.0<br \/>\n<span class=\"comentario\"># basic configuration<\/span><br \/>\nconfig setup<br \/>\ndumpdir=\/var\/run\/pluto\/<br \/>\nnat_traversal=yes<br \/>\nnhelpers=0<br \/>\nprotostack=netkey<br \/>\nplutodebug=none<br \/>\nklipsdebug=none<br \/>\n<span class=\"comentario\"># Add connections here<\/span><br \/>\ninclude \/etc\/ipsec.d\/ipsec.*<\/div>\n<p>Devemos criar o arquivo de conex\u00e3o VPN IPsec, a \u00fanica regra nesse caso \u00e9 que o nome do arquivo deve come\u00e7ar com ipsec. \u00c9 interessante colocar um nome para identificar a conex\u00e3o de formar f\u00e1cil, gosto de usar a seguinte nomenclatura:<\/p>\n<p><samp>ipsec.empresa.destino <\/samp><\/p>\n<p>Sendo assim o nome do arquivo ficar\u00e1:<\/p>\n<ul>\n<li>Site-A: ipsec.xpto.site-b<\/li>\n<li>Site-B: ipsec.xpto.site-a<\/li>\n<\/ul>\n<p>Criar o arquivo de conex\u00e3o do IPsec com o Site-B, para o servidor D8-FW02:<\/p>\n<p><strong># vim \/etc\/ipsec.d\/ipsec.xpto.site-b<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">conn xpto-site-b1<br \/>\ntype=tunnel<br \/>\nleft=201.27.8.2<br \/>\nleftsubnets={172.16.0.0\/24172.16.10.0\/24}<br \/>\nleftnexthop=201.27.8.1<br \/>\nright=187.8.230.2<br \/>\nrightsubnet=192.168.0.0\/24<br \/>\nauthby=secret<br \/>\nauth=esp<br \/>\nkeylife=24h<br \/>\nkeyexchange=ike<br \/>\nike=3des-md5-modp1024<br \/>\nesp=3des-md5-96<br \/>\nrekey=no<br \/>\nrekeymargin=8h<br \/>\nrekeyfuzz=25%<br \/>\npfs=no<br \/>\nauto=start<\/div>\n<p>Criar o arquivo de conex\u00e3o do IPsec com o Site-A, para o servidor D8-FW01:<\/p>\n<p><strong># vim \/etc\/ipsec.d\/ipsec.xpto.site-a<\/strong><\/p>\n<p>Deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">conn xpto-site-a<br \/>\ntype=tunnel<br \/>\nleft=187.8.230.2<br \/>\nleftsubnets=192.168.0.0\/24<br \/>\nleftnexthop=187.8.230.1<br \/>\nright=201.27.8.2<br \/>\nrightsubnets={172.16.10.0\/24,172.16.0.0\/24}<br \/>\nauthby=secret<br \/>\nauth=esp<br \/>\nkeylife=24h<br \/>\nkeyexchange=ike<br \/>\nike=3des-md5-modp1024<br \/>\nesp=3des-md5-96<br \/>\nrekey=no<br \/>\nrekeymargin=8h<br \/>\nrekeyfuzz=25%<br \/>\npfs=no<br \/>\nauto=start<\/div>\n<p>Os \u00fanicos itens que precisam ser alterados s\u00e3o:<\/p>\n<ul>\n<li>conn &#8211; Nome do t\u00fanel VPN, muito utilizada para troubleshooting, uso o mesmo conceito do nome do arquivo, empresa-destino. Todavia pode-se deixar igual o nome em ambos os sites que n\u00e3o causa problema, \u00e9 mais quest\u00e3o de identifica\u00e7\u00e3o.<\/li>\n<li>left &#8211; \u00c9 o IP v\u00e1lido do site em que se est\u00e1 (Peer).<\/li>\n<li>leftsubnets &#8211; Redes que o site possui e entraram no t\u00fanel, caso seja mais de uma deve se utilizar chaves e v\u00edrgula para separar as redes.<\/li>\n<li>leftnexthop &#8211; IP do gateway do IP v\u00e1lido.<\/li>\n<li>right &#8211; IP v\u00e1lido do site remoto que far\u00e1 a conex\u00e3o (Peer).<\/li>\n<li>rightsubnet &#8211; Redes que o site remoto possui ao entrar no t\u00fanel, caso seja mais de uma deve se utilizar chaves e v\u00edrgula para separar as redes.<\/li>\n<\/ul>\n<p>Precisamos ainda configurar o arquivo ipsec.secrets, respons\u00e1vel pela senha usado entre os Peers.<\/p>\n<p>Editar o arquivo ipsec.secrets em ambos os hosts:<\/p>\n<p><strong># vim \/etc\/ipsec.secrets<\/strong><\/p>\n<p>A configura\u00e7\u00e3o \u00e9 simples:<\/p>\n<p><samp>left right: PSK &#8220;senha&#8221; <\/samp><\/p>\n<p>No D8-FW02 deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">201.27.8.2 187.8.230.2: PSK &#8220;123456&#8221;<\/div>\n<p>No D8-FW01 deixar com o seguinte conte\u00fado:<\/p>\n<div class=\"codigo\">187.8.230.2 201.27.8.2: PSK &#8220;123456&#8221;<\/div>\n<p>Basta habilitar e iniciar o servi\u00e7o IPsec em ambos os servidores<\/p>\n<p><strong># systemctl enable ipsec<\/strong><br \/>\n<strong># systemctl start ipsec<\/strong><\/p>\n<\/div>\n<p>&nbsp;<\/p>\n<h1>VALIDAR FUNCIONAMENTO DA VPN IPSEC<\/h1>\n<p>&nbsp;<\/p>\n<div>Agora que tudo esta instalado e configurado basta validar o funcionamento!<\/p>\n<p><strong># systemctl status ipsec<\/strong><\/p>\n<p>Mostra o status do servi\u00e7o do IPsec, se esta em execu\u00e7\u00e3o e se existe algum erro.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/Imagem_02.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_Imagem_02.png\" alt=\"Linux: Openswan - Configurando uma conex\u00e3o VPN Site-to-Site e simulando com GNS3\" width=\"500\" height=\"138\" border=\"0\" \/><\/a><\/div>\n<p><strong># ipsec auto &#8211;status<\/strong><\/p>\n<p>Mostra o status de todos os t\u00faneis VPN bem \u00fatil para saber se existe alguma coisa errada, exemplo pendente fase 2. Na imagem a baixo usei o complemento | grep xpto &#8211;color para trazer itens apenas da conex\u00e3o xpto.<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/Imagem_03.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_Imagem_03.png\" alt=\"Linux: Openswan - Configurando uma conex\u00e3o VPN Site-to-Site e simulando com GNS3\" width=\"500\" height=\"171\" border=\"0\" \/><\/a><\/div>\n<p>Teste de traceroute do D8-SRV02 (Site-A) para o D8-SRV01 (Site-B):<\/p>\n<div class=\"figura\"><a href=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/Imagem_04.png\" target=\"_blank\" rel=\"nofollow\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/img.vivaolinux.com.br\/imagens\/artigos\/comunidade\/thumb_Imagem_04.png\" alt=\"Linux: Openswan - Configurando uma conex\u00e3o VPN Site-to-Site e simulando com GNS3\" width=\"500\" height=\"62\" border=\"0\" \/><\/a><\/div>\n<p>Veja que existe apenas tr\u00eas saltos:<\/p>\n<ol>\n<li>Gateway de rede do Site-A, host D8-FW02.<\/li>\n<li>Todo o caminho percorrido dentro do t\u00fanel VPN.<\/li>\n<li>Host de destino.<\/li>\n<\/ol>\n<p>Isso porque a conex\u00e3o entre os host \u00e9 pelo t\u00fanel IPsec, se tornando uma conex\u00e3o ponto a ponto.<\/p>\n<p>Um detalhe importante \u00e9 que os Peers (D8-FW01 e D8-FW02) n\u00e3o entram no t\u00fanel IPsec devido ao IP de sa\u00edda (IPs v\u00e1lidos) n\u00e3o corresponderem aos leftsubnets da configura\u00e7\u00e3o do ipsec. Por isso para executar um ping ou conectar SSH devemos usar um IP da interface que corresponda ao leftsubnets.<\/p>\n<p>Para conectar do firewall D8-FW02 (Site-A) no servidor D8-SRV01 (Site-B):<\/p>\n<p><strong># ssh -b 172.16.0.254 192.168.0.250<\/strong><\/p>\n<p>Para testar a resposta do ping do firewall D8-FW02 (Site-A) no servidor D8-SRV01 (Site-B):<\/p>\n<p><strong># ping -I eth0 192.168.0.250<\/strong><\/p>\n<h1>CONSIDERA\u00c7\u00d5ES E REFER\u00caNCIAS<\/h1>\n<p>O script com regras iptables fwregras.sh foi escrito da forma mais simples poss\u00edvel para fazer a conex\u00e3o VPN funcionar, por\u00e9m n\u00e3o \u00e9 um firewall, as pol\u00edticas padr\u00e3o foram deixadas no default que \u00e9 ACCEPT, fiz isso pois o foco \u00e9 o Openswan e n\u00e3o o iptables.<\/p>\n<p>No artigo usei dois procedimentos para facilitar a escrita e entendimento por\u00e9m N\u00c3O recomendo em ambiente de produ\u00e7\u00e3o:<\/p>\n<ol>\n<li>Todas as configura\u00e7\u00f5es foram realizadas com usu\u00e1rio root nos servidores, o ideal \u00e9 sempre usar o sudo.<\/li>\n<li>A senha do arquivo <em>\/etc\/ipsec.secrets<\/em> foi 123456, sendo uma chave muito fraca, o ideal \u00e9 usar no m\u00ednimo 16 caracteres contendo letras, n\u00fameros e caracteres especiais.<\/li>\n<\/ol>\n<p>N\u00e3o entrei em detalhes de cada par\u00e2metro de configura\u00e7\u00f5es do Openswan justamente por existir v\u00e1rios sites com documenta\u00e7\u00e3o melhor detalhada, segue sites que utilize como refer\u00eancias:<\/p>\n<ul>\n<li><a href=\"http:\/\/linux.die.net\/man\/5\/ipsec.conf\" target=\"_blank\" rel=\"nofollow\">Manual do ipsec.conf<\/a><\/li>\n<li><a href=\"http:\/\/www.nta-monitor.com\/wiki\/index.php\/OpenSwan\" target=\"_blank\" rel=\"nofollow\">Wiki do Openswan<\/a><\/li>\n<li><a href=\"http:\/\/blog.jameskyle.org\/2012\/07\/configuring-openswan-ipsec-server\/\" target=\"_blank\" rel=\"nofollow\">Configuring OpenSwan IPSec Server<\/a><\/li>\n<li><a href=\"http:\/\/www.gusleig.com\/sos\/2007\/10\/dicas\/instalar-vpn-openswan-no-linux-ubuntu-com-modem-adsl\/\" target=\"_blank\" rel=\"nofollow\">Instalar VPN OpenSwan no Linux Ubuntu com modem adsl<\/a><\/li>\n<li><a href=\"https:\/\/access.redhat.com\/documentation\/en--%20US\/Red_Hat_Enterprise_Linux\/6\/html\/Security_Guide\/Host-To-Host_VPN_Using_Openswan.html\" target=\"_blank\" rel=\"nofollow\">Host-To-Host VPN Using Openswan<\/a><\/li>\n<li><a href=\"https:\/\/lists.openswan.org\/pipermail\/users\/2009-May\/016573.html\" target=\"_blank\" rel=\"nofollow\">Openswan Users Multiple left and right subnets<\/a><\/li>\n<\/ul>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>INTRODU\u00c7\u00c3O De introdu\u00e7\u00e3o do GNS3, usando os conceitos apresentados, montarei um ambiente com dois servidores em locais separados que precisam se comunicar pela internet utilizando um conex\u00e3o segura, o jeito mais simples \u00e9 instalar o Openswan e criar uma VPN IPsec entre as localidades. O objetivos desse artigo s\u00e3o: Criar o ambiente de simula\u00e7\u00e3o usando [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,730,830,79,42,51,495,514,68,271,548,512],"tags":[349,1008,718,351,1010,1007,346,1009,807,164],"class_list":["post-4224","post","type-post","status-publish","format-standard","hentry","category-viazap","category-clusterweb","category-debian","category-firewall","category-leitura-recomendada","category-linux-linuxrs","category-profissional-de-ti","category-programacao","category-redes-2","category-seguranca-2","category-ubuntu-2","category-vpn-2","tag-com","tag-conexao","tag-configurando","tag-e","tag-gns3","tag-openswan","tag-simulando","tag-site-to-site","tag-uma","tag-vpn"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4224"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4224\/revisions"}],"predecessor-version":[{"id":4225,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/4224\/revisions\/4225"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}