É possível modificar a string que o servidor OpenSSH exibe quando uma conexão bruta é estabelecida?
Não é sobre o banner de texto exibido depois de a conexão é estabelecida e pode ser configurada pelo Banner
parâmetro em sshd_config
, mas sobre a saída bruta que o servidor SSH envia em uma tentativa de conexão antes do handshake.
Por exemplo, dada uma conexão telnet bruta
$ telnet localhost 22
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_7.2p2
Existe uma maneira de reduzir as informações de identificação ao mínimo?
Meu entendimento é que SSH-2.0-
deve estar presente porque é exigido pelo protocolo SSH, mas a sequência que segue - OpenSSH_7.2p2
- provavelmente não é exigido pelo protocolo, mas não consigo ver uma maneira de alterá-lo ou removê-lo sem recompilar.
A intenção é evitar fornecer mais informações do que o estritamente necessário para o protocolo funcionar.
Respostas:
Não. A string de versão é definida em version.h de Fonte OpenSSH Como
#define SSH_VERSION "OpenSSH_7.4"
.Você pode alterá-lo, mas é necessário recompilar.
É então
mandarjuntos por meio de:snprintf(buf, sizeof buf, "SSH-2.0-%.100s\r\n", SSH_VERSION)
(ssh_api.c linha 381, em função
_ssh_send_banner
)Veja também: Evitar que o SSH anuncie seu número de versão .
fonte
Versões recentes do OpenSSH permitem adicionar texto personalizado via
VersionAddendum
, mas não permite remover o nome / versão do produto. Você terá que corrigir o código-fonte para isso.fonte