Skip to main content

Pós Instalação do Proxmox VE

Após a instalação inicial do Proxmox VE, é essencial realizar algumas configurações para garantir a melhor performance, segurança e gerenciamento do seu ambiente. Neste post, apresento um guia básico com os principais passos para você começar a operar o seu Proxmox com confiança.

Ajustes Inicias

Este script oferece opções para gerenciar os repositórios do Proxmox VE, incluindo desativar o repositório Enterprise, adicionar ou corrigir fontes do PVE, habilitar o repositório No-Subscription, adicionar o repositório de testes, desativar o aviso de assinatura, atualizar o Proxmox VE e reiniciar o sistema.

  • Execute o comando abaixo no Shell do Proxmox VE.
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/post-pve-install.sh)"
  • O Microcode do processador é uma camada de software de baixo nível que roda no processador e fornece patches ou atualizações para o firmware. As atualizações de microcode podem corrigir bugs de hardware, melhorar o desempenho e aprimorar os recursos de segurança do processador.
bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/microcode.sh)"
  • Após a reinicialização, você pode verificar se alguma atualização de microcode está em efeito executando o seguinte comando.
journalctl -k | grep -E "microcode" | head -n 1
  • Instale algumas coisas que são necessárias mais cedo ou mais tarde
apt install htop ifupdown2 git certbot -y
  • Ajuste o swappiness
echo 'vm.swappiness=10' >> /etc/sysctl.conf
sysctl -p

Ajustes no Servidor SSH

  • Alerar a porta do SSH (no exemplo está a 2222 mas vc pode escolher qualquer uma mudando o valor
sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config

Esse comando encontra a linha que contém #Port 22 (geralmente comentada por padrão) e substitui por Port 2222
A opção -i faz a edição diretamente no arquivo.

  • Desative o login do root por ssh
sed -i 's/#PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config

Isso descomenta e altera a linha para PermitRootLogin no.

  • Crie um usuário para poder desativar o login do root por ssh
useradd -m -s /bin/bash <usuario> && echo "<usuario>:<senha>" | chpasswd
  • Copie a sua chave pública do seu computador para o Servidor
ssh-copy-id -i ~/.ssh/<suachave.pub> <usuario>@<ip-do-servidor>

Esse comando é para ser executado nos computadores que terão acesso ao servidor.

  • Desative o login por senha no ssh
sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
  • Reinicie o servidor SSH
systemctl restart ssh
  • Crie um nova bridge sem interface física

Objetivo de ter uma segunda interface para a VM com um roteador Mikrotik CHR. O comando a abaixo vai criar uma bridge sem interface física com o ip 172.21.21.254/24, mude para o ip que desejar, ou deixe como está.

echo 'auto vmbr1
iface vmbr1 inet static
        address 172.21.21.254/24
        bridge_ports none
        bridge_stp off
        bridge_fd 0' >> /etc/network/interfaces

Para aplicar use:

ifreload -a

image.png

Monitoramento

O Netdata é uma ferramenta de monitoramento de performance em tempo real, de código aberto, projetada para fornecer insights sobre o desempenho e a saúde de sistemas e aplicações. É comumente utilizado por administradores de sistemas, profissionais de DevOps e desenvolvedores para monitorar e solucionar problemas em servidores e outros dispositivos.

Para instalar/desinstalar o Netdata no Proxmox VE, execute o comando abaixo no Shell do Proxmox VE.

bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/misc/netdata.sh)"

Depois estará disponível em http://<SEU-IP>:19999

image.png

Configure o SSL / HTTPs

  • Crie um subdominio no seu servidor de DNS e aponte para o IP do seu servidor

....

  • Instale e configure o certificado SSL

Para evitar conflitos, pare o serviço pveproxy antes de solicitar o certificado:

systemctl stop pveproxy &&
certbot certonly --standalone -d  <sub.dominio.com> --register-unsafely-without-email --agree-tos

Use o comando acima para solicitar um certificado para o subdomínio sub.dominio.com

Este comando fará o Certbot utilizar seu próprio servidor HTTP temporário para verificar o subdomínio e emitir o certificado. Caso a configuração DNS esteja correta e o domínio esteja apontando para o IP do Proxmox, o Certbot deve obter o certificado.

Copie o Certificado para o Diretório do Proxmox:

cp /etc/letsencrypt/live/<sub.dominio.com>/fullchain.pem /etc/pve/local/pveproxy-ssl.pem
cp /etc/letsencrypt/live/<sub.dominio.com>/privkey.pem /etc/pve/local/pveproxy-ssl.key
chmod 640 /etc/pve/local/pveproxy-ssl.pem
chmod 640 /etc/pve/local/pveproxy-ssl.key

Com os certificados no lugar, reinicie o serviço pveproxy para aplicar as mudanças:

systemctl start pveproxy

Configurar o Crontab para renovar o certificado sozinho

sed -i '$ a\0 2 * * 1 certbot renew --quiet && 
systemctl restart pveproxy' /var/spool/cron/crontabs/root

Firewall

Crie o arquivo de firewall (se necessário):

echo '[OPTIONS]
enable: 1

[RULES]
OUT ACCEPT -log nolog
FORWARD ACCEPT -log nolog
IN ACCEPT -p tcp -dport 2222 -log nolog
IN ACCEPT -p tcp -dport 8006 -log nolog
IN ACCEPT -p icmp -log nolog' >> /etc/pve/nodes/pve1/host.fw

Lembre-se que mudamos a porta do Servidor SSH para 2222, caso tenha escolhida outra precisa mudar na regra antes de ariver o firewall. E que pve1 é o nome do node que estamos usando como exemplo.

Ative o firewall no Datacenter:

pve-firewall start

Verifique o status para garantir que está ativo:

pve-firewall status

image.png

NAT

Na nossa planta o Proxmox terá um NAT para conversar com a bridge vmbr1 com saída para a internet pela rede 172.21.21.0/24. 

  • Primeiro, habilite o roteamento no sistema para permitir a comunicação entre as interfaces de rede:
echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf
sysctl -p
  • Adicione a regra utilizando o iptables em /etc/network/interfaces
echo -e '#
#NAT
post-up   iptables -t nat -A POSTROUTING -s '172.21.21.0/24' -o vmbr0 -j MASQUERADE
post-down iptables -t nat -D POSTROUTING -s '172.21.21.0/24' -o vmbr0 -j MASQUERADE' >> /etc/network/interfaces
  • Teste as configurações

Ping

ping -I 172.21.21.254 8.8.8.8

Traceroute

traceroute -s 172.21.21.254 8.8.8.8