Segurança Digital

SSH

Protocolo de acesso remoto seguro, SSH substitui Telnet e rlogin ao autenticar o servidor, negociar chaves e cifrar a sessão. A arquitetura SSH-2 foi publicada em 2006 nas RFCs 4251–4254; usa normalmente TCP 22. Em comparação com uma VPN, protege sessões e encaminhamentos específicos, não toda a rede. Chaves Ed25519, host keys verificadas, MFA e restrição de comandos elevam a segurança. A limitação é operacional: aceitar uma host key errada ou expor senha fraca continua permitindo comprometimento.


🛡 Níveis de Segurança
Forte
SSH-2 com chaves modernas e host key validada
SSH é uma família de protocolos com três camadas principais. O transport protocol negocia algoritmos, autentica o servidor por host key, executa troca de chaves e cria confidencialidade e integridade. O user authentication protocol autentica o cliente por chave pública, senha, keyboard-interactive, certificado ou outro método. O connection protocol multiplexa canais de shell, execução, subsistema, encaminhamento e túnel sobre uma única conexão. As RFCs 4251 a 4254, publicadas em 2006, definem a arquitetura SSH-2, transporte, autenticação e conexões. OpenSSH é a implementação dominante. Uma configuração atual prefere chaves Ed25519 ou ECDSA/RSA com tamanhos e algoritmos adequados, conforme política e suporte. A chave privada fica no cliente, cifrada e, idealmente, protegida por agente ou hardware FIDO2. O servidor guarda a chave pública em `authorized_keys`. A host key identifica o servidor. Na primeira conexão, o cliente exibe fingerprint. Aceitar cegamente elimina a proteção contra MITM. Em ambiente administrado, fingerprints são distribuídas por inventário, DNS SSHFP com DNSSEC ou certificados SSH. A opção `StrictHostKeyChecking` deve ser mantida. Alteração inesperada de host key precisa de investigação; pode ser reinstalação ou ataque. Algoritmos antigos como `ssh-rsa` baseado em SHA-1, DSA, CBC legado e MACs fracos devem ser desabilitados quando todos os clientes suportam alternativas. O nome `ssh-rsa` refere-se ao algoritmo de assinatura SHA-1; a mesma chave RSA pode usar rsa-sha2-256/512. Não excluir chave sem entender. O servidor e cliente precisam de versões atualizadas.
Administrado
Autenticação multifator e certificados SSH
Para gateways, servidores de automação e NVRs, uma chave por administrador é superior a conta compartilhada. Cada pessoa possui identidade. A chave pode exigir presença física em YubiKey ou token FIDO2 por tipos `sk-ssh-ed25519@openssh.com`. Isso reduz exfiltração, embora perda do token exija recuperação. OpenSSH também suporta certificados SSH assinados por uma CA interna. Em vez de copiar chaves públicas para centenas de hosts, uma CA assina uma chave de usuário por horas e inclui principals. O servidor confia na CA. Certificados expiram. Isso facilita acesso just-in-time. Não confundir certificado SSH com X.509/TLS; o formato e confiança são diferentes. Para MFA, o servidor pode exigir `publickey,keyboard-interactive` em AuthenticationMethods e integrar TOTP ou PAM, mas a disponibilidade precisa. Um técnico em emergência precisa de break-glass protegido. Senha direta pode ser desabilitada após validar chaves. Root login remoto deve ser `no` ou restrito. Administradores entram com conta individual e usam sudo. `authorized_keys` aceita opções como `from=`, `command=`, `no-port-forwarding`, `no-agent-forwarding`, `no-pty` e `restrict`. Essas opções transformam uma chave de backup em acesso de função limitada. Um gateway de automação pode aceitar uma chave que executa somente script de exportação. Isso é menor privilégio. A rotação remove chaves de ex-funcionários. Inventário e logs identificam fingerprint. Não compartilhar arquivo privado por mensageiro. A chave pública pode ser compartilhada.
Rede
Túneis, encaminhamentos e bastion host
SSH pode encaminhar portas locais (`-L`), remotas (`-R`) e SOCKS dinâmico (`-D`). Isso permite acessar Home Assistant, MQTT ou interface de um switch sem expor portas diretamente. Um bastion host ou jump host é o único servidor SSH acessível por VPN ou Internet controlada; os demais são alcançados por `ProxyJump`. Esse desenho reduz superfície. Porém, forwarding também pode contornar firewalls. O servidor precisa restringir `AllowTcpForwarding`, `PermitOpen`, `PermitListen` e usuários. Um túnel remoto iniciado por um dispositivo para um servidor cloud pode criar acesso de suporte, mas deve ser temporário e autorizado. Não deixar `-R 0.0.0.0` aberto. `GatewayPorts` deve permanecer restrito. Um SOCKS proxy concede acesso amplo à rede; use apenas em conta autorizada. SSH também oferece tun/tap com `-w`, mas uma VPN como WireGuard é mais adequada a conectividade contínua, múltiplos clientes e políticas de rede. O critério de escolha é escopo: SSH para administração pontual e túneis específicos; VPN para acesso de rede. O SFTP é subsistema seguro para arquivos. SCP moderno usa SFTP por padrão em OpenSSH recente; implementações antigas do protocolo SCP têm riscos de nomes e caminhos. Preferir SFTP/rsync sobre SSH. A transferência precisa de permissões e quotas. Chroot e `internal-sftp` isolam contas. Um servidor de backup pode aceitar somente SFTP.
Operação
Hardening, exposição e auditoria
A porta 22 exposta recebe varreduras e tentativas. Mudar a porta reduz ruído, não aumenta a segurança fundamental. Melhor restringir por firewall/VPN, usar chaves, MFA, rate limiting e atualizações. O daemon deve escutar apenas interfaces necessárias. `AllowUsers`/`AllowGroups` restringem. Desabilitar login root, senhas e autenticação vazia. Limitar `MaxAuthTries`, `LoginGraceTime`, sessões e forwardings. Fail2ban pode bloquear padrões, mas não substitui autenticação. Logs registram usuário, origem, método e chave; não comandos por padrão. Para auditoria de comandos, usar sudo logs, tlog, bastion com gravação ou ferramentas, respeitando privacidade e segredos. O agente SSH permite usar chaves sem expor arquivo a cada host, mas agent forwarding é arriscado: um host comprometido pode usar o agente enquanto conectado. Preferir ProxyJump e não encaminhar agente. Se indispensável, usar chaves com confirmação. Arquivos `known_hosts` precisam ser protegidos e gerenciados. Hashed hostnames reduzem exposição de inventário, mas dificultam inspeção. Certificados SSH simplificam. A atualização do OpenSSH é crítica; vulnerabilidades surgem. O serviço deve ser reiniciado de forma segura. A consequência prática é que SSH pode ser uma porta administrativa extremamente segura ou um atalho perigoso, dependendo de chaves, host verification e configuração. Uma senha forte sem host key validada ainda permite MITM. Uma chave forte numa conta root global ainda dá privilégio excessivo.
🖥 Aplicações em Hardware
🔒
Hubs e servidores
Administração de Home Assistant, Linux e NVR
O host executa OpenSSH atualizado, aceita apenas chaves e escuta na VLAN de gestão. Root login é negado. O administrador entra com usuário e sudo. O firewall aceita da VPN. Uma chave FIDO2 é usada para privilégio. Backups via SFTP usam conta separada com `internal-sftp`, chroot e sem shell. Configuração é testada com `sshd -t` antes de reload. Acesso de emergência local existe. O Home Assistant OS tem modelo de add-on diferente; não se deve contornar suporte com modificações não documentadas. Em appliances, use interface oficial.
🔒
Roteadores e switches
CLI segura em infraestrutura de rede
OpenWrt, switches gerenciáveis e firewalls podem oferecer SSH. A gestão fica em VLAN dedicada. Telnet e HTTP são desativados. Chaves por administrador. O equipamento pode suportar algoritmos limitados; firmware atualizado. Se só oferece `ssh-rsa` ou cifras antigas, restrinja a rede e planeje substituição. Configuração é exportada por SCP/SFTP conforme suporte, cifrada no backup. O acesso do sistema de monitoramento usa conta somente leitura ou comando restrito. O roteador não expõe SSH na WAN, salvo bastion com regras. IPv6 recebe mesma política; erro comum é proteger só IPv4.
🔒
Dispositivos embarcados
Acesso de manutenção com Dropbear ou OpenSSH reduzido
Gateways IoT usam Dropbear ou implementação compacta. A superfície deve ser mínima. Produção não pode ter senha padrão nem chave privada comum entre unidades. Se SSH é necessário, uma chave de host única é gerada em fábrica ou primeiro boot. Chaves de manutenção são por cliente, não globais. O daemon pode estar desabilitado por padrão e ativado fisicamente por 30 minutos. A porta fica na LAN de serviço. O firmware valida. Logs. Um shell completo aumenta risco; um protocolo de diagnóstico limitado pode ser melhor. O fabricante precisa de processo de vulnerabilidade e atualização.
🔒
Automação e CI
Ansible, Git e deploy por SSH
Ansible e pipelines usam SSH para configurar hubs. Chaves de máquina ficam em secret manager, têm escopo e rotação. O `known_hosts` é pré-carregado, não desativado. Uma CA SSH pode emitir certificados curtos para jobs. A conta de deploy executa somente comandos necessários por sudoers. Não possui shell interativo. Repositórios Git por SSH usam chave distinta. O agente de CI não recebe chave de produção permanente. Logs mascaram. A automação confirma hash do artefato. Um compromise do CI não deve dar acesso irrestrito à casa. Segmentação e aprovação protegem.