{"id":172,"date":"2020-08-12T19:04:17","date_gmt":"2020-08-12T22:04:17","guid":{"rendered":"http:\/\/vbrain.com.br\/?p=172"},"modified":"2020-08-12T20:31:49","modified_gmt":"2020-08-12T23:31:49","slug":"nat-traversal-nat-t-e-sua-importancia-em-tuneis-vpn-ipsec","status":"publish","type":"post","link":"http:\/\/vbrain.com.br\/index.php\/2020\/08\/12\/nat-traversal-nat-t-e-sua-importancia-em-tuneis-vpn-ipsec\/","title":{"rendered":"NAT Traversal (NAT-T) e sua import\u00e2ncia em t\u00faneis VPN IPSEC"},"content":{"rendered":"<p>Bom pessoal, vamos come\u00e7ar esse post com um conceito b\u00e1sico de uma comunica\u00e7\u00e3o TCP\/IP roteada entre dois pontos.<\/p>\n<p>Uma conex\u00e3o TCP\/IP tem basicamente quatro informa\u00e7\u00f5es que fazem com que essa conex\u00e3o possa existir:<\/p>\n<p><strong>SOURCE ADDRESS \/ SOURCE PORT &#8212;&#8212;&#8211;&gt; DESTINATION ADDRESS \/ DESTINATION PORT<\/strong><\/p>\n<p>Basicamente qualquer conex\u00e3o utiliza esses atributos, e em alguns casos, existe a necessidade de utilizar t\u00e9cnicas de <strong>NAT (<em>Network Address Translation) <\/em><\/strong>ou <strong>PAT <\/strong><em><strong>(Port Address Translation) ou NAT Overload.<\/strong><\/em><\/p>\n<p>NAT e PAT s\u00e3o t\u00e9cnicas utilizadas para se modificar IP\/Porta, permitindo por exemplo, publicar um sistema na internet sem que exista a necessidade de configurar um IP p\u00fablico em um \u00fanico servidor, permitir que um usu\u00e1rio configurado com um IP interno (ex: 192.168.0.20\/24) acesse a internet utilizando um IP p\u00fablico (NAT 1:1) , ou ainda, permitir que v\u00e1rios usu\u00e1rios internos de uma empresa acessem a internet utilizando apenas 1 IP p\u00fablico (PAT\/NAT Overload), j\u00e1 que a maioria das empresas possuem v\u00e1rios usu\u00e1rios internos e servidores mas poucos ou at\u00e9 1 \u00fanico IP p\u00fablico.<\/p>\n<p>Exemplo de NAT, onde um servi\u00e7o HTTP \u00e9 publicado na internet utilizando um DNAT:<\/p>\n<p id=\"UzfJYmo\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-177 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd.png\" alt=\"\" width=\"1198\" height=\"224\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd.png 1198w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd-300x56.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd-1024x191.png 1024w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f344d63a8afd-768x144.png 768w\" sizes=\"auto, (max-width: 1198px) 100vw, 1198px\" \/><\/a><\/p>\n<p>Agora um exemplo de um NAT Overload, onde usu\u00e1rios acessam o google.com por exemplo utilizando um \u00fanico IP p\u00fablico.<\/p>\n<p id=\"xUgKQCT\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-178 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36.png\" alt=\"\" width=\"1140\" height=\"428\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36.png 1140w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36-300x113.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36-1024x384.png 1024w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34526cedf36-768x288.png 768w\" sizes=\"auto, (max-width: 1140px) 100vw, 1140px\" \/><\/a><\/p>\n<h3>IPSEC<\/h3>\n<p>O IPSec, ou tamb\u00e9m conhecido como <em>Internet Protocol Security , <\/em>\u00e9 um dos protocolos mais comums para se criar uma VPN (<em>Virtual Private Network) <\/em>entre dois pontos ou mais, na verdade, ele \u00e9 um protocolo que reuni v\u00e1rios padr\u00f5es em um s\u00f3, para que no final tenhamos um t\u00fanel criptografado entre dois pontos, se comunicando de uma forma segura mesmo em conex\u00f5es n\u00e3o seguras, como \u00e9 o caso da internet.<\/p>\n<p>A comunica\u00e7\u00e3o entre dois pontos \u00e9 &#8220;t\u00fanelada&#8221; de tal forma que para os usu\u00e1rios e servidores em ambos os lados, a comunica\u00e7\u00e3o \u00e9 simplesmente uma conex\u00e3o direta, sem a percep\u00e7\u00e3o que est\u00e1 sendo transmitida atrav\u00e9s da internet.<\/p>\n<p id=\"CyKOTew\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-175 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b.png\" alt=\"\" width=\"1367\" height=\"636\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b.png 1367w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b-300x140.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b-1024x476.png 1024w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f343b68d760b-768x357.png 768w\" sizes=\"auto, (max-width: 1367px) 100vw, 1367px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Bom, e porqu\u00ea falamos primeiro em NAT\/PAT, porqu\u00ea o IPSEC utiliza um protocolo chamado de ESP (<em>Encapsulating Security Payload) <\/em>, ele prov\u00ea autentica\u00e7\u00e3o, confidencialidade dos dados, e integridade da mensagem alterando o pacote original, encriptando os dados e o cabe\u00e7alho original, e gerando um novo cabe\u00e7alho com os IP&#8217;s dos gateways que formam a VPN.<\/p>\n<p>&nbsp;<\/p>\n<p id=\"cStPzzD\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345e593613b.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-179 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345e593613b.png\" alt=\"\" width=\"886\" height=\"316\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345e593613b.png 886w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345e593613b-300x107.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345e593613b-768x274.png 768w\" sizes=\"auto, (max-width: 886px) 100vw, 886px\" \/><\/a><\/p>\n<p style=\"text-align: center;\">Imagem &#8211; visualiza\u00e7\u00e3o do novo pacote<\/p>\n<p>&nbsp;<\/p>\n<p id=\"fiWBHYI\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-180 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f.png\" alt=\"\" width=\"1399\" height=\"638\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f.png 1399w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f-300x137.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f-1024x467.png 1024w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f345fc44a18f-768x350.png 768w\" sizes=\"auto, (max-width: 1399px) 100vw, 1399px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Quando se tem algum dispositivo realizando <strong>PAT <\/strong>entre os dois gateways de uma VPN IPSec, este dispositivo troca a porta (seja TCP ou UDP) com outro n\u00famero de porta, por\u00e9m, em uma comunica\u00e7\u00e3o IPsec, o dispositivo realizando NAT n\u00e3o \u00e9 capaz de abrir o <em>header<\/em> do pacote e verificar qual \u00e9 a <strong><em>sourceport<\/em><\/strong> do header original, j\u00e1 que esse est\u00e1 criptografado, e o novo <em>header <\/em>inserido pelo ESP n\u00e3o cont\u00e9m qualquer informa\u00e7\u00e3o sobre porta, <strong><span style=\"color: #ff0000;\">o que esse dispositivo ent\u00e3o faz? simplesmente descarta o pacote.<\/span><\/strong><\/p>\n<p id=\"BEvtNRe\"><a href=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-181 size-full\" src=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e.png\" alt=\"\" width=\"1617\" height=\"414\" srcset=\"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e.png 1617w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e-300x77.png 300w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e-1024x262.png 1024w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e-768x197.png 768w, http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/img_5f34659acef7e-1536x393.png 1536w\" sizes=\"auto, (max-width: 1617px) 100vw, 1617px\" \/><\/a><\/p>\n<p><strong>NAT-T ou<\/strong> <strong>NA<\/strong><strong>T<\/strong><strong> TRAVERSAL <\/strong>contorna esse problema, detectando no momento de estabelecer a comunica\u00e7\u00e3o VPN que os dois dispositivos est\u00e3o configurados com NAT-T, <strong>desta forma ele encapsula novamente todo o pacote ESP com uma nova <em>header <\/em>UDP com <em>source <\/em>e <em>destination port = 4500.<\/em><\/strong><\/p>\n<p>Contornando assim o problema e possibilitando que a VPN IPSec seja estabelecida.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bom pessoal, vamos come\u00e7ar esse post com um conceito b\u00e1sico de uma comunica\u00e7\u00e3o TCP\/IP roteada entre dois pontos. Uma conex\u00e3o TCP\/IP tem basicamente quatro informa\u00e7\u00f5es que fazem com que essa&hellip;<\/p>\n","protected":false},"author":1,"featured_media":183,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-172","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized"],"jetpack_featured_media_url":"http:\/\/vbrain.com.br\/wp-content\/uploads\/2020\/08\/post_ipsec.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/posts\/172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/comments?post=172"}],"version-history":[{"count":9,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/posts\/172\/revisions"}],"predecessor-version":[{"id":190,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/posts\/172\/revisions\/190"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/media\/183"}],"wp:attachment":[{"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/media?parent=172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/categories?post=172"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/vbrain.com.br\/index.php\/wp-json\/wp\/v2\/tags?post=172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}