O Controle de Requisições do Servidor SSH é o conjunto de mecanismos técnicos que o sshd utiliza para gerenciar o volume, a cadência e a legitimidade das tentativas de conexão que chegam até a infraestrutura. Gerir requisições de forma eficiente é o que garante que o servidor permaneça responsivo para administradores legítimos, mesmo quando submetido a ataques de negação de serviço (DoS) ou scans massivos de botnets. Esta função técnica reside na orquestra entre o soquete de rede e as diretivas de configuração que limitam a exposição do sistema operacional.
1. O Fluxo de Entrada e Aceite de Conexão
Sempre que um novo pacote SYN chega à porta 22 (SSH), o servidor inicia um processo rigoroso de triagem técnica:
1. Escuta e Aceite (Listen/Accept): O sshd aceita a conexão TCP e, imediatamente, aloca recursos mínimos para o diálogo inicial.
2. Troca de Versão (Version Exchange): As duas pontas trocam strings de identificação do protocolo (ex: SSH-2.0-OpenSSH_8.2p1). Se as versões forem incompatíveis (ex: o cliente solicitar SSH-1 em um servidor moderno), a conexão é encerrada sumariamente.
3. Negociação de Algoritmos: O servidor apresenta sua lista de métodos de troca de chaves (KEX), cifras simétricas e algoritmos de MAC, buscando a maior interseção de segurança suportada por ambos.
2. Prevenção de DoS: O Grace Time e Conexões Pendentes
O servidor SSH implementa proteções contra ataques que tentam exaurir seus recursos de rede (como o Slowloris adaptado para SSH).
- LoginGraceTime: Define o tempo máximo em segundos que uma conexão pode permanecer aberta sem que o usuário tenha concluído a autenticação com sucesso. Se o usuário (ou robô) não logar em, por exemplo, 120 segundos, o sshd corta a conexão para liberar o slot para outro cliente.
- MaxStartups: Limita o número de conexões “não autenticadas” simultâneas. Isso impede que um atacante abra milhares de conexões em paralelo para travar o daemon de autenticação do servidor.
3. Gestão de Escala: MaxSessions e Sockets
Para grandes infraestruturas com múltiplos administradores, o controle de requisições deve ser refinado:
- MaxSessions: Define o número máximo de sessões (canais) abertas por cada conexão de rede única. Isso permite que um administrador tenha múltiplos terminais abertos sobre um único túnel seguro, otimizando o tráfego.
- Isolamento de Soquete (Privilege Separation): Cada requisição aceita é processada por um “unprivileged worker process” (usuário sshd), garantindo que falhas de rede não permitam a exploração de memória com privilégios de root.
4. Perspectiva de Cyber Security: Monitoramento de Entrada
Para um profissional de Cyber Security, o controle de requisições é o principal sensor de anomalias de rede.
Detecção de Ataques de Brute Force
O sshd pode ser configurado para ser rígido quanto ao número de erros.
- MaxAuthTries: Define quantas tentativas de senha um usuário pode fazer em uma única conexão. Ao atingir o limite (geralmente 6), o login é recusado e a tentativa é registrada no log de auditoria.
- Sincronismo com IPS/IDS: Sistemas de detecção de intrusão externos (como o Snort ou Suricata) monitoram o tráfego da porta 22 em busca de assinaturas de scanners de SSH, bloqueando o IP na borda antes que ele atinja o controle de requisições do servidor.
5. Auditoria Técnica e Diagnóstico de Requisições
Administradores de sistema utilizam ferramentas de rede para validar o comportamento do daemon sob carga:
# Verificando as configurações de limite de conexões ativas
grep -E "MaxStartups|LoginGraceTime|MaxAuthTries" /etc/ssh/sshd_config
# Monitorando conexões SSH em tempo real e identificando o estado (ESTABLISHED vs SYN_RECV)
ss -atn | grep :22
# Testando a resposta do servidor a múltiplas requisições simultâneas via ferramentas de benchmark
6. Conclusão: A Primeira Linha de Defesa
O Controle de Requisições é o filtro que mantém a integridade do servidor SSH em face da hostilidade constante da rede. De sua precisão técnica depende a disponibilidade do acesso remoto e a proteção contra a exaustão de recursos. Dominique as diretivas de MaxStartups, entenda o ciclo de handshakes iniciais e monitore constantemente os logs de autenticação para garantir que a sua infraestrutura seja rápida e resiliente frente a tentativas de invasão e negação de serviço.