Como definir uma string de resposta de conexão SSH personalizada?


2

É 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:


4

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 mandar juntos 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 .


1

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.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.