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
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
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
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
DNS
- Configurar /etc/resolv.conf
echo '# Pesquisa Local
search local
# Servidores DNS Primários
nameserver 1.1.1.1 # Cloudflare DNS
nameserver 8.8.8.8 # Google DNS
nameserver 9.9.9.9 # Quad9 (segurança)
# Servidores DNS Primários (IPv6)
nameserver 2606:4700:4700::1111 # Cloudflare DNS IPv6
nameserver 2001:4860:4860::8888 # Google DNS IPv6
nameserver 2620:fe::fe # Quad9 DNS IPv6 (segurança)
# Servidores DNS de Fallback (em caso de falha dos principais)
nameserver 1.0.0.1 # Cloudflare DNS (Backup)
nameserver 8.8.4.4 # Google DNS (Backup)
nameserver 149.112.112.112 # Quad9 (segurança - backup)
# Servidores DNS de Fallback (IPv6)
nameserver 2606:4700:4700::1001 # Cloudflare IPv6 (Backup)
nameserver 2001:4860:4860::8844 # Google IPv6 (Backup)
nameserver 2620:fe::9 # Quad9 IPv6 (segurança - Backup)
# Opções de Pesquisa
options timeout:1 # Tempo limite para resposta (em segundos)
options attempts:2 # Número de tentativas para cada servidor DNS
options rotate # Usar rotação entre servidores DNS para balanceamento de carga
options edns0 # Habilitar extensão EDNS para suportar pacotes grandes
options no-tld-query # Desativar domínios superior (TLD) não especificados' > > /etc/resolv.conf
- Tornando o /etc/resolv.conf imutável
Para garantir que o arquivo /etc/resolv.conf
não seja sobrescrito automaticamente pelo Proxmox ou outros serviços, torne-o imutável usando:
chattr +i /etc/resolv.conf
Aplicando o comando acima o seu resolv.conf não poderá ser editado por nenhuma processo, desse modo para tirar da persistência deverá executar o comando abaixo.
Se precisar modificá-lo novamente no futuro, remova o atributo imutável com:
chattr -i /etc/resolv.conf
O que fazer agora?
Cada pessoa terá um caminho diferente para configurar o seu servidor, mas neste guia irei abordar as demandas específicas dentro da minha própria estrutura. Apesar de já ter realizado as configurações iniciais pós-instalação, agora é hora de construir o ambiente conforme as opções que selecionei. No guia acima, apresento um padrão que "prepara" todo o servidor para as demandas que surgirem posteriormente. No entanto, este guia é destinado a uso profissional. Assim, pretendo avançar e compartilhar ao máximo a experiência adquirida com quem busca maneiras práticas de implementar os serviços que utilizo.
Vale destacar que meus servidores Proxmox não são voltados para HomeLab, mas sim para produção. Em todos os casos, faço uso de uma camada de roteamento separada do Proxmox. Utilizo uma CHR licenciada para atender às necessidades que listarei a seguir, onde cada demanda possui sua própria página explicativa.