{"id":3663,"date":"2026-02-09T00:35:48","date_gmt":"2026-02-08T23:35:48","guid":{"rendered":"https:\/\/meiobyte.com\/mb\/?p=3663"},"modified":"2026-02-09T00:38:00","modified_gmt":"2026-02-08T23:38:00","slug":"da-instalacao-ao-servidor-vpn-uma-jornada-com-ia-e-ubuntu-server","status":"publish","type":"post","link":"https:\/\/meiobyte.com\/mb\/da-instalacao-ao-servidor-vpn-uma-jornada-com-ia-e-ubuntu-server\/","title":{"rendered":"Da instala\u00e7\u00e3o ao servidor VPN: uma jornada com IA e Ubuntu Server"},"content":{"rendered":"\n<p><strong>Como configurei um servidor OpenVPN do zero com a ajuda do Comet da Perplexity<\/strong><\/p>\n\n\n\n<p><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\"><strong>F<\/strong>i<strong>m de semana de 7 e 8 de fevereiro de 2026<\/strong>.<\/mark> Decidi transformar um port\u00e1til antigo num servidor VPN completo. O que poderia ser um projeto de dias transformou-se numa experi\u00eancia fascinante de colabora\u00e7\u00e3o entre humano e intelig\u00eancia artificial, distribu\u00edda por tr\u00eas dias intensos. Esta \u00e9 a hist\u00f3ria dessa jornada.<\/p>\n\n\n\n<p><strong>O come\u00e7o: sexta-feira \u00e0 noite e o TP-Link<\/strong><\/p>\n\n\n\n<p>Sexta-feira, cerca das 20h. Comecei com um router TP-Link TL-WR1043ND V3 que tinha em casa. A ideia inicial era usar este equipamento para criar a VPN. Mudei o firmware para utilizar o LuCI e, com dicas preciosas do Comet, tentei configurar o WireGuard. O Comet n\u00e3o acedeu diretamente ao router nesta fase, mas orientou-me detalhadamente sobre como proceder. Tent\u00e1mos, ajust\u00e1mos, test\u00e1mos&#8230; e nada funcionava como esperado. Nem sequer cheg\u00e1mos a testar o OpenVPN naquele equipamento. Ia ser (e foi) uma noite longa, que se estendeu at\u00e9 \u00e0s 2 da manh\u00e3.<\/p>\n\n\n\n<p><strong>S\u00e1bado: mudan\u00e7a de estrat\u00e9gia e uma conversa decisiva<\/strong><\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">S\u00e1bado de manh\u00e3, 9h.<\/mark><\/strong> Depois de uma noite (e madrugada) frustrante com o TP-Link, liguei ao Rodrigo Andrade, um grande amigo de longa data. Quando lhe contei o que estava a tentar fazer, ele sugeriu imediatamente um Raspberry Pi. &#8220;Ou ent\u00e3o&#8221;, disse eu, &#8220;tenho aqui um port\u00e1til velho &#8211; um i3 com disco de 250GB e 2GB de mem\u00f3ria&#8221;.<\/p>\n\n\n\n<p>Foi ent\u00e3o que o Rodrigo deu as duas dicas que mudaram tudo: &#8220;Instala Ubuntu Server com Webmin&#8221;. Confesso que a minha primeira ideia era instalar Kali Linux&#8230; (sim, eu sei, hahahaha). Mas o Rodrigo, com a sua experi\u00eancia, sabia exatamente o que recomendava. E agrade\u00e7o-lhe muito essa orienta\u00e7\u00e3o &#8211; foi fundamental para o sucesso do projeto.<\/p>\n\n\n\n<p>Comecei pela base: instalei o Ubuntu Server 24.04.3 usando um velho amigo que est\u00e1 em uma pen no meu chaveiro, o Ventoy, uma ferramenta que permite criar pendrives boot\u00e1veis com m\u00faltiplos sistemas operativos. A instala\u00e7\u00e3o foi direta, sem complica\u00e7\u00f5es. Com o Ubuntu funcionando, instalei o Webmin seguindo as instru\u00e7\u00f5es do Comet. O Webmin seria a minha interface gr\u00e1fica para gerir o servidor, uma escolha que se revelou acertada.<\/p>\n\n\n\n<p><strong>Entra em cena o Comet<\/strong><\/p>\n\n\n\n<p>Com o servidor b\u00e1sico pronto, era hora de partir para a configura\u00e7\u00e3o da VPN. Foi aqui que a verdadeira colabora\u00e7\u00e3o come\u00e7ou. Abri o Comet e dei-lhe acesso ao Webmin do meu servidor atrav\u00e9s do browser. O que se seguiu foi extraordin\u00e1rio: o Comet navegou pela interface do Webmin, acedeu ao terminal integrado, e come\u00e7ou a executar comandos como se fosse um administrador de sistemas experiente.<\/p>\n\n\n\n<p>A primeira tentativa foi com o WireGuard, uma solu\u00e7\u00e3o VPN moderna e leve. O Comet instalou os pacotes necess\u00e1rios, configurou a interface de rede, criou chaves de encripta\u00e7\u00e3o e editou ficheiros de configura\u00e7\u00e3o. Tudo parecia perfeito&#8230; at\u00e9 que n\u00e3o era. Encontr\u00e1mos problemas persistentes com o Endpoint do WireGuard que nos levou at\u00e9 \u00e0s 3 da manh\u00e3 sem uma resolu\u00e7\u00e3o.<\/p>\n\n\n\n<p><strong>Domingo pela manh\u00e3, a mudan\u00e7a de estrat\u00e9gia: OpenVPN<\/strong><\/p>\n\n\n\n<p>Ap\u00f3s v\u00e1rias tentativas de resolu\u00e7\u00e3o, nos levaram a tomar uma decis\u00e3o pragm\u00e1tica: mudar para OpenVPN. E assim foi \u00e0s <strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">9 da manh\u00e3 deste domingo.<\/mark><\/strong><\/p>\n\n\n\n<p>A transi\u00e7\u00e3o para OpenVPN foi surpreendentemente fluida. O Comet usou um script automatizado (openvpn-install.sh) que simplificou enormemente o processo. Em poucos minutos, o servidor OpenVPN estava instalado e a correr. Mas a verdadeira aventura ainda estava por vir.<\/p>\n\n\n\n<p><strong>No meio do caminho, o router Huawei e o DNS din\u00e2mico<\/strong><\/p>\n\n\n\n<p>Entretanto, tinha mudado de router para um Huawei WS5200. Ter um servidor VPN funcional n\u00e3o serve de nada se n\u00e3o conseguirmos aceder a ele de fora da rede local. Era preciso configurar o port forwarding. Configurei manualmente o encaminhamento da porta 1194 UDP para o servidor.<\/p>\n\n\n\n<p>Depois havia a quest\u00e3o do DNS din\u00e2mico. Identifiquei que o Huawei n\u00e3o permitia configurar o No-IP diretamente no router. A solu\u00e7\u00e3o? Configurei o dom\u00ednio no site do No-IP (**********.ddns.***) e o Comet instalou e configurou o cliente DUC (Dynamic Update Client) diretamente no Ubuntu, criando tamb\u00e9m as regras de NAT necess\u00e1rias no servidor.<\/p>\n\n\n\n<p>Para ter a certeza de que o port forwarding estava correto, dei ao Comet acesso ao router Huawei atrav\u00e9s do browser. Observ\u00e1-lo a navegar pela interface do router, verificar as regras NAT e confirmar que o encaminhamento estava corretamente configurado foi um momento revelador. A IA n\u00e3o estava apenas a executar comandos cegamente &#8211; estava a compreender a arquitetura da rede e a verificar cada componente do sistema.<\/p>\n\n\n\n<p><strong>Autentica\u00e7\u00e3o: o desafio final<\/strong><\/p>\n\n\n\n<p>O servidor estava funcional, o router configurado, mas faltava um elemento crucial: autentica\u00e7\u00e3o robusta com utilizador e password, al\u00e9m dos certificados. Quer\u00edamos dupla autentica\u00e7\u00e3o para m\u00e1xima seguran\u00e7a.<\/p>\n\n\n\n<p>O Comet criou um script bash personalizado que validava utilizadores e passwords guardadas com hash SHA256. Criou os utilizadores com as suas respetivas passwords encriptadas. Testei a conex\u00e3o e&#8230; nada. &#8220;Credenciais incorretas&#8221;.<\/p>\n\n\n\n<p>Foi aqui que a metodologia de diagn\u00f3stico do Comet brilhou. Verificou os logs do OpenVPN, testou o script manualmente, analisou permiss\u00f5es de ficheiros. O problema? O ficheiro de passwords tinha permiss\u00f5es 600 (apenas root podia ler), mas o OpenVPN corria como utilizador &#8220;nobody&#8221;. Uma mudan\u00e7a simples para permiss\u00f5es 644 e propriedade root:nogroup resolveu tudo. Na pr\u00f3xima tentativa de conex\u00e3o: sucesso!<\/p>\n\n\n\n<p><strong>Li\u00e7\u00f5es aprendidas<\/strong><\/p>\n\n\n\n<p>Mesmo sendo formador de IA, estamos sempre a aprender, e esta experi\u00eancia ensinou-me mais coisas sobre o estado atual da IA e a sua aplica\u00e7\u00e3o pr\u00e1tica:<\/p>\n\n\n\n<p><strong>1. Persist\u00eancia e adaptabilidade<\/strong>: Quando o TP-Link n\u00e3o funcionou, mud\u00e1mos de equipamento. Quando o WireGuard falhou no Ubuntu, n\u00e3o houve hesita\u00e7\u00e3o em mudar para OpenVPN. A IA demonstrou flexibilidade em adaptar a nova estrat\u00e9gia.<\/p>\n\n\n\n<p><strong>2. Diagn\u00f3stico sistem\u00e1tico<\/strong>: Face a problemas, o Comet n\u00e3o adivinhou solu\u00e7\u00f5es. Verificou logs, testou componentes individualmente e isolou o problema real &#8211; as permiss\u00f5es de ficheiro.<\/p>\n\n\n\n<p><strong>3. Compreens\u00e3o contextual<\/strong>: A capacidade de navegar entre o terminal Linux, interface web do Webmin e interface do router, mantendo o contexto e o objetivo final, foi impressionante.<\/p>\n\n\n\n<p><strong>4. Documenta\u00e7\u00e3o autom\u00e1tica<\/strong>: Durante o processo, ap\u00f3s a minha solicita\u00e7\u00e3o, o Comet gerou um manual detalhado com todos os passos de configura\u00e7\u00e3o, incluindo como alterar passwords de administrador, criar utilizadores e configurar o OpenVPN.<\/p>\n\n\n\n<p><strong>5. Conhecimento t\u00e9cnico e prompts: a base da colabora\u00e7\u00e3o eficaz<\/strong>: Esta experi\u00eancia refor\u00e7ou algo fundamental que ensino aos meus alunos:&nbsp;<strong>a IA n\u00e3o substitui o conhecimento t\u00e9cnico, amplifica-o<\/strong>. Sem saber o que era uma VPN, port forwarding, ou a diferen\u00e7a entre WireGuard e OpenVPN, eu n\u00e3o teria conseguido orientar o processo ou validar as solu\u00e7\u00f5es propostas.<\/p>\n\n\n\n<p><strong>O resultado final<\/strong><\/p>\n\n\n\n<p>\u00c0s 12h de domingo, o servidor estava totalmente operacional:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Servidor OpenVPN<\/strong>&nbsp;a correr no Ubuntu Server 24.04.3<\/li>\n\n\n\n<li><strong>Webmin<\/strong>&nbsp;para administra\u00e7\u00e3o gr\u00e1fica simplificada<\/li>\n\n\n\n<li><strong>Autentica\u00e7\u00e3o dupla<\/strong>: certificado + utilizador\/password<\/li>\n\n\n\n<li><strong>Encripta\u00e7\u00e3o TLSv1.3<\/strong>&nbsp;com AES-256-GCM<\/li>\n\n\n\n<li><strong>Port forwarding<\/strong>&nbsp;configurado no router Huawei<\/li>\n\n\n\n<li><strong>DNS din\u00e2mico<\/strong>&nbsp;(No-IP) com cliente DUC no Ubuntu<\/li>\n\n\n\n<li><strong>Utilizadores<\/strong>&nbsp;ativos e testados<\/li>\n<\/ul>\n\n\n\n<p>Tudo isto, desde a primeira tentativa na sexta-feira at\u00e9 ao servidor funcional no domingo, num intenso fim de semana de aprendizagem.<\/p>\n\n\n\n<p><strong>Reflex\u00f5es finais<\/strong><\/p>\n\n\n\n<p>O que mais me impressionou n\u00e3o foi apenas a capacidade t\u00e9cnica da IA, mas a forma como ela transformou um projeto potencialmente frustrante numa experi\u00eancia de aprendizagem colaborativa. Em vez de seguir tutoriais cegamente ou copiar comandos sem compreender, pude observar e aprender com cada decis\u00e3o tomada, cada comando executado, cada problema diagnosticado.<\/p>\n\n\n\n<p>O <strong>Comet da Perplexity<\/strong> (com o <strong>Assitente Perplexity<\/strong>) n\u00e3o \u00e9 apenas uma ferramenta de automa\u00e7\u00e3o &#8211; \u00e9 um parceiro t\u00e9cnico que raciocina, adapta-se e resolve problemas. Para algu\u00e9m como eu, que ensina IA e tecnologia, esta experi\u00eancia refor\u00e7a a minha convic\u00e7\u00e3o de que estamos numa era onde a IA aumenta genuinamente as nossas capacidades, n\u00e3o as substitui. Posso afirmar isto, visto que os meus prompts n\u00e3o foram vagos como &#8220;configura-me uma VPN&#8221;. Foram espec\u00edficos:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>&#8220;Verifica se a porta 1194 UDP est\u00e1 aberta no router&#8221;<\/li>\n\n\n\n<li>&#8220;Analisa os logs de autentica\u00e7\u00e3o para diagnosticar porque as credenciais falham&#8221;<\/li>\n\n\n\n<li>&#8220;Cria um script bash que valide utilizadores com passwords em SHA256&#8221;<\/li>\n<\/ul>\n\n\n\n<p>A qualidade da colabora\u00e7\u00e3o depende da qualidade da comunica\u00e7\u00e3o. Saber fazer as perguntas certas, reconhecer quando algo n\u00e3o est\u00e1 correto, e compreender as solu\u00e7\u00f5es propostas fez toda a diferen\u00e7a. A IA executou, mas eu dirigi. E essa dire\u00e7\u00e3o s\u00f3 foi poss\u00edvel porque tinha conhecimento t\u00e9cnico suficiente para saber o que pedir e como avaliar os resultados.<\/p>\n\n\n\n<p>O servidor est\u00e1 a funcionar. A VPN est\u00e1 segura.<\/p>\n\n\n\n<p><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Para quem est\u00e1 a come\u00e7ar:<\/mark><\/strong> invistam em aprender os fundamentos. A IA ser\u00e1 um parceiro extraordin\u00e1rio, mas s\u00f3 se souberem trabalhar com ela. Assim \u00e9 poss\u00edvel combinar conhecimento humano com intelig\u00eancia artificial.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<p><em><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-luminous-vivid-orange-color\">\u00c9 por experi\u00eancias como esta que recomendo o Comet e a Perplexity nas minhas aulas de IA. N\u00e3o \u00e9 apenas sobre ter respostas &#8211; \u00e9 sobre ter um parceiro t\u00e9cnico que trabalha connosco para resolver problemas reais.<\/mark><\/strong><\/em><\/p>\n\n\n\n<p>Escrito por: @alecs &#8211; <mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-purple-color\">Alecsander Pereira<\/mark><\/p>\n\n\n\n<p>* Este texto foi redigido e as imagens foram geradas com a ajuda da Intelig\u00eancia Artificial ChatGPT.<\/p>\n\n\n\n<p>#Meiobyte<br>#Perplexity<br>#IA<br>#Tecnologia<br>#VPNServer<br>#OpenVPN<br>#UbuntuServer<br>#Webmin<br>#CometPerplexity<br>#Perplexity<br>#TecnologiaPortugal<br>#ServerAdmin<br>#LinuxServer<br>#AIAssistant<br>#TechEducation<br>#Ciberseguran\u00e7aAI<br><\/p>\n<a href=\"http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fmeiobyte.com%2Fmb%2Fda-instalacao-ao-servidor-vpn-uma-jornada-com-ia-e-ubuntu-server%2F&amp;t=Da%20instala%C3%A7%C3%A3o%20ao%20servidor%20VPN%3A%20uma%20jornada%20com%20IA%20e%20Ubuntu%20Server\" id=\"facebook_share_both_3663\" style=\"font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http:\/\/b.static.ak.fbcdn.net\/images\/share\/facebook_share_icon.gif) no-repeat top left;\">Partilhe no Facebook<\/a>\n\t<script type=\"text\/javascript\">\n\t<!--\n\tvar button = document.getElementById('facebook_share_link_3663') || document.getElementById('facebook_share_icon_3663') || document.getElementById('facebook_share_both_3663') || document.getElementById('facebook_share_button_3663');\n\tif (button) {\n\t\tbutton.onclick = function(e) {\n\t\t\tvar url = this.href.replace(\/share\\.php\/, 'sharer.php');\n\t\t\twindow.open(url,'sharer','toolbar=0,status=0,width=626,height=436');\n\t\t\treturn false;\n\t\t}\n\t\n\t\tif (button.id === 'facebook_share_button_3663') {\n\t\t\tbutton.onmouseover = function(){\n\t\t\t\tthis.style.color='#fff';\n\t\t\t\tthis.style.borderColor = '#295582';\n\t\t\t\tthis.style.backgroundColor = '#3b5998';\n\t\t\t}\n\t\t\tbutton.onmouseout = function(){\n\t\t\t\tthis.style.color = '#3b5998';\n\t\t\t\tthis.style.borderColor = '#d8dfea';\n\t\t\t\tthis.style.backgroundColor = '#fff';\n\t\t\t}\n\t\t}\n\t}\n\t-->\n\t<\/script>\n\t<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content -->","protected":false},"excerpt":{"rendered":"<p>Como configurei um servidor OpenVPN do zero com a ajuda do Comet da Perplexity Fim de semana de 7 e 8 de fevereiro de 2026. Decidi transformar um port\u00e1til antigo num servidor VPN completo. O que poderia ser um projeto de dias transformou-se numa experi\u00eancia fascinante de colabora\u00e7\u00e3o entre humano e intelig\u00eancia artificial, distribu\u00edda por [&hellip;]<!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n<a href=\"http:\/\/www.facebook.com\/share.php?u=https%3A%2F%2Fmeiobyte.com%2Fmb%2Fda-instalacao-ao-servidor-vpn-uma-jornada-com-ia-e-ubuntu-server%2F&amp;t=Da%20instala%C3%A7%C3%A3o%20ao%20servidor%20VPN%3A%20uma%20jornada%20com%20IA%20e%20Ubuntu%20Server\" id=\"facebook_share_both_3663\" style=\"font-size:11px; line-height:13px; font-family:'lucida grande',tahoma,verdana,arial,sans-serif; text-decoration:none; padding:2px 0 0 20px; height:16px; background:url(http:\/\/b.static.ak.fbcdn.net\/images\/share\/facebook_share_icon.gif) no-repeat top left;\">Partilhe no Facebook<\/a>\n\t<script type=\"text\/javascript\">\n\t<!--\n\tvar button = document.getElementById('facebook_share_link_3663') || document.getElementById('facebook_share_icon_3663') || document.getElementById('facebook_share_both_3663') || document.getElementById('facebook_share_button_3663');\n\tif (button) {\n\t\tbutton.onclick = function(e) {\n\t\t\tvar url = this.href.replace(\/share\\.php\/, 'sharer.php');\n\t\t\twindow.open(url,'sharer','toolbar=0,status=0,width=626,height=436');\n\t\t\treturn false;\n\t\t}\n\t\n\t\tif (button.id === 'facebook_share_button_3663') {\n\t\t\tbutton.onmouseover = function(){\n\t\t\t\tthis.style.color='#fff';\n\t\t\t\tthis.style.borderColor = '#295582';\n\t\t\t\tthis.style.backgroundColor = '#3b5998';\n\t\t\t}\n\t\t\tbutton.onmouseout = function(){\n\t\t\t\tthis.style.color = '#3b5998';\n\t\t\t\tthis.style.borderColor = '#d8dfea';\n\t\t\t\tthis.style.backgroundColor = '#fff';\n\t\t\t}\n\t\t}\n\t}\n\t-->\n\t<\/script>\n\t","protected":false},"author":1,"featured_media":3665,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,7,234,320,1],"tags":[323,232,342,322,346,321,352,221,338],"class_list":["post-3663","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-artigos","category-atualidade","category-destaque","category-inteligencia-artificial","category-tecnologia","tag-ai","tag-alecsander-pereira","tag-artificial-inteligence","tag-ia","tag-inovacao-digital","tag-inteligencia-artificial","tag-mariana-pereira","tag-meiobyte","tag-tecnologia"],"_links":{"self":[{"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/posts\/3663"}],"collection":[{"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/comments?post=3663"}],"version-history":[{"count":2,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/posts\/3663\/revisions"}],"predecessor-version":[{"id":3667,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/posts\/3663\/revisions\/3667"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/media\/3665"}],"wp:attachment":[{"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/media?parent=3663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/categories?post=3663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/meiobyte.com\/mb\/wp-json\/wp\/v2\/tags?post=3663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}