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.
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
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.
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
Tenho certeza de que você não pode alterar o anúncio da versão.
As melhores maneiras de proteger o sshd são:
Os três primeiros podem ser feitos modificando / etc / sshd_config
A quarta depende de qual software de firewall você está usando.
Como dito acima, alterar um número de versão é
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.