Como posso determinar os MACs, cifras, comprimento de chave e KexAlogrithms suportados pelos meus servidores ssh?
Preciso criar uma lista para uma auditoria de segurança externa. Estou à procura de algo parecido com openssl s_client -connect example.com:443 -showcerts
. Da minha pesquisa, o ssh
usa as cifras padrão, conforme listado em man sshd_config
. No entanto, preciso de uma solução que possa ser usada em um script e . Preciso me corrigir aqui: você pode especificar man sshd_config
não lista informações sobre o comprimento da chaveServerKeyBits
in sshd_config
.
Eu acho que ssh -vv localhost &> ssh_connection_specs.out
retorna as informações de que preciso, mas não tenho certeza se as cifras listadas são suportadas pelo cliente ou pelo servidor. Também não tenho certeza de como executar isso não interativo em um script.
Existe uma maneira conveniente de obter SSH
informações de conexão?
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Aconteceu que, conforme sugerido por @Jakuje, funciona apenas em hosts RHEL7, mas não no RHEL6. Acabei usandonmap --script SSH2-hostkey localhost
enmap --script ssh-hostkey localhost
ssh -vv
gera a funcionalidade suportada como cliente para servidor (ctos) e servidor para cliente (stoc). No entanto, parece que essas saídas são limitadas ao que os dois lados suportam, tornando-as menos úteis para uma auditoria de segurança.Respostas:
Você perdeu alguns pontos na sua pergunta:
ServerKeyBits
é uma opção para a versão 1 do protocolo, que você desabilitou!Suportados cifras, MACs e KexAlgorithms estão sempre disponíveis no manual e isso não tem nada em comum com comprimentos de chave.
Ativados Chiphers, MACs e KexAlgorithms são os que são oferecidos usando conexão como você apontar. Mas eles podem ser obtidos também de outras maneiras, por exemplo, usando
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
Para obter o tamanho da chave do (s) servidor (es), você pode usar ssh-keygen:
ssh-keygen -lf /etc/ssh/ssh_host_rsa_key.pub
mas você provavelmente também desejará os tamanhos dos módulos oferecidos e usados durante a troca de chaves, mas isso realmente depende do método de troca de chaves, mas também deve ser legível na saída de depuração
ssh -vvv host
.fonte
sshd -T | grep "\(ciphers\|macs\|kexalgorithms\)"
funcionou apenas meus hosts RHEL7, mas não o RHEL6. Acabei usandonmap --script SSH2-hostkey localhost
enmap --script ssh-hostkey localhost
Parece que a resposta em /superuser//a/1219759/173408 também é uma resposta para sua pergunta. Cabe em uma linha:
Aqui está a saída em uma máquina Debian 9.4 simples com a versão SSH atual:
fonte
PORT STATE SERVICE VERSION 22/tcp filtered ssh
com este comando - embora eu possa acessar o mesmo servidor via ssh.1.2.3.4
pelo IP do seu servidor?