Evitar que o SSH anuncie seu número de versão

7

O servidor que estou usando é o Ubuntu 10.10. Para garantir a segurança, quero editar o banner que o servidor envia ao cliente.

Se eu fizer telnet para meu host na porta 22, ele me informará a versão exata do SSH que estou executando (SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu4). A situação é a mesma com o MySQL e o Cyrus.

Alguma sugestão? Pelo menos para o SSH?

Obrigado

    
por Lerikun 28.12.2010 / 21:26

5 respostas

16

Quase universalmente, a identificação de banners faz parte do código compilado e não possui opções de configuração para alterá-los ou suprimi-los. Você terá que recompilar esses pedaços de software.

    
por 28.12.2010 / 21:51
19

Escondê-los não irá proteger o seu servidor. Há muitas outras maneiras de identificar o que seu sistema está executando. Para o SSH em particular, o anúncio da versão faz parte do protocolo e é obrigatório.

link

    
por 28.12.2010 / 21:43
16

Embora seja proibitivamente difícil esconder o número da versão do seu daemon SSH, você pode facilmente ocultar a versão linux (Debian-3ubuntu4)

Adicione a seguinte linha a /etc/ssh/sshd_config

DebianBanner no

E reinicie seu daemon do SSH: /etc/init.d/ssh restart ou service ssh restart

    
por 01.04.2016 / 01:28
8

Tenho certeza de que você não pode alterar o anúncio da versão.

As melhores maneiras de proteger o sshd são:

  1. Altere o número da porta padrão.
  2. Proibir logons de raiz.
  3. Força o protocolo 2 (supondo que isso não seja feito por padrão).
  4. Disponibilize os servidores permitidos para o SSH.

Os três primeiros podem ser feitos modificando / etc / sshd_config

A quarta depende de qual software de firewall você está usando.

    
por 28.12.2010 / 21:47
5

Como dito acima, alterar um número de versão é

  1. Difícil de fazer
  2. Segurança através da obscuridade
  3. Não flexível

O que eu sugiro é implementar o Port Knocking. É uma técnica bastante simples para ocultar qualquer coisa que esteja em execução no seu servidor.

Aqui está uma boa implementação: link

Foi assim que o implementei nos meus servidores (outros números) para abrir o SSH apenas para as pessoas que sabem "o segredo":

[openSSH]
    sequence = 300,4000,32
    seq_timeout = 5
    command = /opencloseport.sh %IP% 2305
    tcpflags = syn

Isso dará uma janela de 5 segundos na qual os 3 pacotes SYN precisam ser recebidos na ordem correta. Escolha portas distantes umas das outras e não sequenciais. Dessa forma, um portcanner não pode abrir a porta por acidente. Essas portas não precisam ser abertas pelo iptables.

O script que eu chamo é esse. Ele abre uma porta específica por 5 segundos para o IP que envia os pacotes SYN.

#!/bin/bash
/sbin/iptables -I INPUT -s $1 -p tcp --dport $2  -j ACCEPT
sleep 5
/sbin/iptables -D INPUT -s $1 -p tcp --dport $2  -j ACCEPT

Pode ser muito difícil enviar os pacotes SYN, então eu uso o script para me conectar ao SSH dos meus servidores:

#!/bin/bash
knock $1 $2
knock $1 $3
knock $1 $4
ssh $5@$1 -p $6

(É bem óbvio o que está acontecendo aqui ...)

Após a conexão ser estabelecida, a porta pode ser fechada. Dica: use a autenticação de chave. Caso contrário, você precisa ser muito rápido para digitar sua senha.

    
por 20.02.2011 / 01:43