Os dias passaram rápido neste ano, né? Quando já se viu estamos em novembro!
Mas vamos lá!..
Nos últimos tempos eu andei estudando bastante sobre como ser um hackerman segurança, no geral ofensiva e minha vida foi bastante: instala uma ferramenta, desinstala ela, aproveita um free tier, desinstala ele (vê se dá para aproveitar de novo re-instalando ou criando uma outra conta), instala algo duvidoso, tenta engenharia reversa, “Poxa! precisava de um Windows para testar essa vulnerabilidade”, “Poxa! precisava de um Debian para testar essa vulnerabilidade”, “Nossa! Um Parrot me ajudaria muito agora”, “Queria um Kali para postar no insta e parecer o hackerman”.
Enfim, muitas coisas que envolviam diferentes sistemas ou desinstalar e instalar diferentes coisas, além de que quando você chega no final de um trabalho, está cheio de arquivos e programas e repositórios baixados que nem quer mais e seria muito legal sumir com tudo em só um click. Também seria muito legal se isso não ficasse no seu computador principal!
E assim eu lembrei de um sistema que eu sempre quis testar, mas não tinha um bom motivo: Proxmox!
O Proxmox é um sistema de virtualização open-source🦆 que permite a criação e gestão de ambientes de máquinas virtuais (VMs) e containers (LXC).
Ele combina tecnologias como KVM (para virtualização de hardware) e LXC (para containers) e de quebra coloca um painel bem fácil para você gerenciar isso.
Também é possível fazer muito mais tipo administrar recursos de hardware (vários servidores físicos em um painel só), configurar redes e storage de forma centralizada, além de contar com recursos avançados como alta disponibilidade, backup, recuperação, e clusters.
Tá bom ou quer mais? Resumindo ele é um sistema super robusto que já está bem consolidado que pode fazer clouds complexas, e que na moral, a gente vai usar só o básico hahah, mas de qualquer jeito ele é muito otimizado e prático, então vamos lá!
Para rodar maquinas virtuais é inevitável que vamos ter que ter um bom hardware, até porque muitas vezes vamos querer rodas várias máquinas ao mesmo tempo.
O que eu deixo como requisitos mínimos aqui é um processador com bastante processamento paralelo, ou seja, bastante núcleos, bastante ram e armazenamento já que a gente vai rodar vários sistemas (de preferência em SSD). Placas de vídeo são completamente opcionais aqui, a não ser que partes da suas pesquisas envolvam grande quantidade de processamento paralelo em GPUs e aí você pode fazer passthrough de PCI.
O PC que estou usando para isso é um hardware de servidor, que era o meu PC de gaming, e que sim, foi montado com Xeon Chinês, bora lá para as specs que importam:
Processador: Xeon E5 2678v3 (12 núcleos e 24 threads)
Placa-Mãe: Huananzhi X99-TF
RAM: 48GB DDR4
SSD: 512GB SATA
É de fato um hardware potente apesar de um pouco antigo, mas vindo do futuro, posso dizer que cumpriu muito bem o seu trabalho e eu não senti nenhum gargalo.
Eu de fato não curto fazer tutoriais passo a passo, e realmente acho que não é necessário, se você já instalou qualquer sistema operacional tenho certeza que vai achar a instalação do Proxmox muito tranquila, aliás ela é bem mais simples que um Debian, por exemplo.
De qualquer forma, vou passar por alguns passos rápidos aqui e se você sentir necessidade de algo mais detalhado há diversos vídeos e tutoriais focando na instalação do Proxmox.
Você precisará de um pendrive bootável com a ISO do Proxmox que você pode encontrar aqui: https://www.proxmox.com/en/downloads/proxmox-virtual-environment
Feito seu pendrive é só seguir o processo de instalação de um sistema normal, selecione o disco removível no seletor de boot da ‘BIOS’, inicie por ele, siga o passo da instalação e voalá! Sistema instalado!
Essa será a última vez que você precisará de teclado/mouse e monitor nessa máquina agora vamos pela rede!
Quando o seu sistema Proxmox iniciou na máquina ele te deu o IP do server no monitor, por meio dele vamos pegar uma outra máquina e pelo o navegador vamos acessar http://IP_DO_SEU_PROXMOX:8006 (ps: você também poderia encontrar esse IP no seu roteador ou caso use algum programa/app que verifique sua rede como o Fing).
Olha aqui! Temos a dela inicial do Proxmox, o login padrão é ‘root’ e a senha você criou durante a instalação.
Feito isso já podemos subir as ISOs dos SOs que desejamos instalar nele para isso vamos selecionar a nossa máquina dentro do Datacenter (que no meu caso ganhou o nome de “proxmox” também)
Aqui já podemos ver algumas máquinas que eu andei usando, mas para adicionar uma ISO nova vamos em “local (nome_da_sua_maquina)”
Aqui você já pode ver umas ISOs que eu andei usando, o bom é que elas já ficam sempre no seu servidor o que facilita subir novas maquinas.
Para adicionar uma nova você pode fazer o upload pelo botão “upload” de um arquivo da sua máquina ou até já colocar a URL direto da ISO em algum mirror’ público e o proxmox faz o resto para você.
Feito isso a gente vai lá no canto superior direto e cria uma VM.
Aqui temos várias configurações e acho interessante você tentar explorar todas, porém falando das principais em “OS”, você escolhe entre as suas ISOs para criar a sua VM (Ps: se for algo diferente de Linux lembre-se de mudar as opções de Guest OS).
Depois em System no momento da instalação eu deixo padrão, mas depois mudaremos isso.
Em Disks eu até hoje só precisei mudar o “Disk size” e aqui você vai escolher o tamanho do seu disco virtual
Em CPU você vai precisar geralmente só mudar a quantidade de cores, e como eles são virtuais você pode até criar mais do que sua maquina tem fisicamente, mas no geral me limito aos 24 processadores lógicos do meu processador no máximo.
Outra coisa que eu gosto de fazer é mudar o tipo (Type) pelo mesmo do meu processador fisico para isso basta digitar “host” nesse campo.
Memory é o menu para definir quanto de ram vamos dar para nossa maquina virtual em megabytes, então como hoje trabalhamos já em gigas vai ser XGigas*1024, no meu caso serão 16*1024 que dará 16384MiB.
Para o meu uso todas as maquinas podem estar na mesma rede sem problemas, então nunca precisei alterar a rede delas, mas você pode criar N networks e alterar as regras delas o quanto quiser.
Por fim é só criar!
Feito isso sua maquina já foi criada, basta clicar nela no menu lateral esquerdo, depois ir em ‘Console’ e dar START.
O processo de instalação agora vai depender do seu sistema operacional escolhido, então vou deixar esses passos com vocês!
Após ter feito a instalação via o console interno do Proxmox eu recomendo que você vá para o menu de ‘Hardware’ (logo em baixo do ‘Console’) e altere a placa gráfica para ‘SPICE’ além de dar 128 MiB para ram de vídeo. Isso vai fazer com que agora quando você der “CONSOLE” lá no canto direito, ele te devolva um arquivo ".vv".
E bastando clicar nele, seu computador (principalmente Linux) irá conectar automaticamente com a máquina remota abrindo a janela gráfica dela. Apertando SHIFT + F11 você deixa ela em tela cheia e estando na mesma rede você nem sente que isso é uma máquina virtual já que o lag é imperceptível!
Caso você só queria acessar suas máquinas estando em casa, ou seja, na mesma rede, o tutorial já chegou ao fim! A partir de agora, você pode criar e derrubar máquinas com sistemas novos em minutos, criar clones, fazer testes e apagar eles, criar imagens para wayback e etc, a caixa de areia está pronta para você!
Sim! Eu sei o que você, o mais nerd de redes, está pensando “ZeroTier, sério? Por que você não usa um software de VPN tipo OpenVPN ou Wireguard e deixa isso disponível via Cloudflare Tunnel?”
Simples, muito trabalho e eu só quero que as coisas funcionem! Eu de fato cogitei fazer um servidor de VPN com OpenVPN e tunelar isso via Cloudflare, ou usar um dos serviços que dão IPs mesmo para quem tem conexão domestica, mas percebi que isso seria mais demorado, chato e até mais inseguro.
Então eu fui buscar alternativas que dão redes mesh/lan de forma emulada, e eu testei o Hamachi, o NordVPN Mesh e o ZeroTier. E, nos meus testes, a conclusão foi:
ZeroTier foi a solução mais rápida de configurar, que funcionou de primeira e que não exige que portas adicionais sejam abertas no seu roteador.
Então vamos de ZeroTier!
Basta ir em https://www.zerotier.com/, criar a sua conta. Logando basta clicar no enorme botão “Create A Network” e depois clicar na rede gerada, agora é só copiar a “Network ID” e deixar reservado para o futuro da nossa receita hahah!
Feito isso vamos conectar ao nosso servidor Proxmox, mas ao servidor mesmo, ao terminal do sistema Proxmox. Você pode fazer isso de duas formas, uma é conectando um teclado e monitor na máquina física mesmo, mas também é possível via SSH:
Para isso basta pegar o seu cliente favorito de SSH, usar o mesmo IP que utilizou para entrar no painel, só que mudando a porta para o padrão do SSH, a porta 22.
O Login padrão é ‘root’ e a senha é a mesma que você usou durante a criação e na hora de entrar no painel.
Estamos conectados ao SSH do nosso servidor Proxmox, nele basta seguir a instalação do ZeroTider para Ubuntu disponível em: https://www.zerotier.com/download/#entry-5
É só um comando, então para facilitar a sua vida eu já vou deixar ele aqui:
curl -s https://install.zerotier.com | bash
A única alteração que temos é que o terminal do Proxmox reclamada de executar as coisas como Sudo, então basta tirar o sudo quando quiser rodar um comando nele.
Instalado nosso cliente do ZeroTier, bsta usar:
zerotier-cli join Network_ID #Aquele que você deixou guardado antes
Agora é só voltar para o site e clicando em “Edit” na máquina que acabou de conectar basta autorizar, dar um nome e clicar em “Save”.
Agora é só fazer o processo de instalação e de entrar rede na sua máquina que irá acessar o server Proxmox e você terá acesso a ele via o IP da ZeroTier em qualquer lugar do mundo via Internet!
Como já dito no começo deste post parte do processo de testes de segurança é instalar diferentes ferramentas, efetuar testes específicos, testar ferramentas novas, gerar muitos logs que depois acabam virando lixo e etc viram coisas corriqueiras, dessa forma, seria ótimo poder subir e deletar sistemas novos toda hora, além disso, poder clonar sistemas prontos com as nossas ferramentas e configurações organizadas seria mágico, por fim, você ainda pode usar recursos mais avançados como network para testes de rede ou encriptação de discos para garantir maior segurança de dados.
O Proxmox resolve tudo isso de maneira rápida com um painel agradável e fácil de usar, simplesmente uma sandbox para brincar com N maquinas quando quiser!
Espero que esse post tenha te ajudado ou te ensinado algo novo!
Ando bem longe das redes já faz um bom tempo, mas no geral se quiser me encontrar é @marlonhenq.
Até o próximo post!