Banner Inteligente no SSH do Linux

Administrar servidores via SSH faz parte da rotina de qualquer profissional de infraestrutura. Porém, muitos ambientes ainda exibem apenas o MOTD padrão do sistema, sem qualquer contexto operacional relevante. Neste artigo, você vai aprender a criar um banner dinâmico personalizado no Debian 13, exibindo informações essenciais do host — como versão do sistema, IP ativo, gateway, DNS, vCPU, memória e disco.


🎯 Objetivo

A ideia é transformar a tela inicial do SSH em um pequeno painel informativo que permita identificar rapidamente:

  • Versão do sistema operacional
  • Interface ativa e endereço IP
  • Gateway padrão e DNS utilizados
  • Quantidade de vCPU
  • Memória total
  • Capacidade total de disco

Isso melhora a visibilidade operacional e reduz tempo de diagnóstico ao acessar múltiplos servidores.


🧩 Como funciona o MOTD no Debian

O Debian moderno não utiliza apenas o arquivo /etc/motd.
O conteúdo exibido após o login é gerado dinamicamente pelo diretório:

/etc/update-motd.d/

Cada script executável dentro desse caminho é processado pelo pam_motd.so durante a autenticação SSH.

Portanto, a melhor prática é criar um script próprio ao invés de editar arquivos do sistema.


⚙️ Criando o Script do Banner

Crie um novo arquivo:

nano /etc/update-motd.d/99-linux

Adicione o conteúdo abaixo:

#!/bin/bash

# Detecta interface padrão baseada na rota default
IFACE=$(ip route | awk '/default/ {print $5; exit}')

OS=$(grep PRETTY_NAME /etc/os-release | cut -d= -f2 | tr -d '"')
IFACE=$(ip route | awk '/default/ {print $5; exit}')
IP=$(ip -4 addr show "$IFACE" | awk '/inet / {print $2}' | cut -d/ -f1)
MASK=$(ip -4 addr show "$IFACE" | awk '/inet / {print $2}' | cut -d/ -f2)
GTW=$(ip route | awk '/default/ {print $3; exit}')
DNS=$(grep nameserver /etc/resolv.conf | awk '{print $2}' | paste -sd "," -)
VCPU=$(nproc)
MEM=$(free -h | awk '/Mem:/ {print $2}')
DISK=$(df -h / | awk 'NR==2 {print $2}')

echo "================================================="
echo "              🚀 Linux Server"
echo "================================================="
echo "OS       : $OS"
echo "Interface: $IFACE"
echo "IP       : $IP/$MASK"
echo "Gateway  : $GTW"
echo "DNS      : $DNS"
echo "vCPU     : $VCPU"
echo "Memória  : $MEM"
echo "Disco    : $DISK"
echo "================================================="

Agora torne o script executável:

chmod +x /etc/update-motd.d/99-linux

No próximo login SSH, o banner já será exibido automaticamente.


🔎 Por que detectar a interface via rota default?

Em ambientes modernos é comum ter múltiplas interfaces:

  • lo (loopback)
  • bridges Docker
  • VLANs
  • interfaces virtuais

Se você apenas listar todos os IPs, o sistema pode retornar 127.0.0.1.
Ao usar a rota default, garantimos que o script sempre utilize a interface realmente ativa para saída de tráfego.


🚀 Benefícios Operacionais

Implementar um MOTD dinâmico traz ganhos imediatos:

  • Identificação rápida do host ao acessar via SSH
  • Redução de erros em ambientes multi-tenant
  • Visualização instantânea de recursos disponíveis
  • Padronização do acesso administrativo

Esse tipo de personalização é bastante comum em appliances de rede e ambientes NOC, pois reduz a necessidade de executar comandos básicos após cada login.


🧠 Possíveis Evoluções

Você pode expandir o banner com:

  • Status de serviços
  • Uptime e Load Average
  • Uso atual de CPU/RAM
  • Cores ANSI para visual mais profissional
  • Indicador ONLINE/OFFLINE de aplicações

✅ Conclusão

Criar um banner inteligente no Debian 13 é uma forma simples e eficiente de enriquecer a experiência administrativa via SSH. Utilizando o mecanismo nativo do update-motd, é possível construir uma tela inicial dinâmica, segura e alinhada às necessidades do seu ambiente.

Com poucos comandos, você transforma o login SSH em um verdadeiro painel de status do servidor.

CATEGORIES:

Software Livre

Comments are closed