Como desabilitar a criptografia ChaCha20-Poly1305 do ssh no Debian?
Eu tentei (como root):
echo 'Ciphers [email protected]' > /etc/ssh/sshd_config.d/anti-terrapin-attack
echo 'Ciphers [email protected]' > /etc/ssh/ssh_config.d/anti-terrapin-attack
systemctl restart sshd
Mas o meu ssh -Q cipher
ainda está aparecendo [email protected]
.
ATUALIZAR:
Como as respostas para resolver totalmente minha pergunta estão se espalhando por diferentes respostas, deixe-me resumi-las em um só lugar.
Por que? qual é o problema? - confira Ataque descoberto contra SSH , e
openssh
a versão estável do Debian está gerações atrás da correção oficial. Portanto, preciso consertar isso sozinho agora .Por que o OP não está funcionando? -- dois pontos:
ssh -Q
cipher sempre mostra todas as cifras compiladas no binário- todos os arquivos de configuração no
/etc/ssh/sshd_config.d
diretório " " devem terminar com ".conf
".
Como desabilitar o ataque? -- Veja a solução prática da Floresta https://unix.stackexchange.com/a/767135/374303
Como verificar se o ataque está desabilitado? - com base na solução prática do gogoud:
nmap --script ssh2-enum-algos -sV -p 22 localhost | grep chacha20 | wc
0 0 0
Melhor executá-lo antes e depois de aplicar as correções do Floresta.
ssh -Q cipher
sempre mostra todas as cifras compiladas no binário, independentemente de estarem habilitadas ou não. Isto também é verdade para algoritmos que são inseguros ou desativados por padrão.A configuração que você configurou deve ser suficiente para desabilitar o algoritmo, supondo que você esteja usando uma versão recente do OpenSSH que suporte esta sintaxe. Você pode verificar isso tentando se conectar via
ssh -vvv
, que imprimirá a lista de cifras do servidor para o cliente.Se você não possui uma versão recente do OpenSSH, essa sintaxe não é suportada e você precisa listar explicitamente as cifras desejadas. O padrão está listado em
man sshd_config
e, para minha versão do OpenSSH (Debian 9.6), ficaria assim (sem ChaCha):Supondo que você tenha clientes modernos, colocar o AES-GCM em primeiro lugar na lista melhorará o desempenho (e a segurança se você não estiver usando criptografia e depois MAC), mas havia uma versão mais antiga do OpenSSH que falharia durante a rechaveamento com AES-GCM (que todas as principais distros corrigiram), e é por isso que estão no final da lista.
Observe que se você estiver usando um sistema operacional corrigido no cliente e no servidor, não será necessário desabilitar o
[email protected]
. O motivo é que clientes e servidores autorizados negociarão uma conexão segura com extensões[email protected]
e[email protected]
que estão em versões corrigidas do OpenSSH. Não importa o que os raspadores aleatórios façam, porque eles cairão logo depois e não há necessidade de protegê-los.No entanto, se você não estiver usando um sistema operacional corrigido, é claro que estará vulnerável, mas também estará vulnerável a uma variedade de outras vulnerabilidades.
Acho que sua solução inicial está parcialmente correta. Na minha caixa Debian 12, o /etc/ssh/sshd_config contém esta linha no topo:
Portanto, todos os arquivos de configuração no diretório "/etc/ssh/sshd_config.d" devem terminar com ".conf". O mesmo para "/etc/ssh/ssh_config.d".
Os comandos abaixo funcionam no meu sistema:
Eu me pergunto se
ssh -Q
deveria refletir o que está configurado ? A página de manual diz issoÉ claro que ele também não consegue verificar a configuração do lado do servidor, já que na verdade não se conecta a lugar nenhum.
Suponho que você poderia tentar se conectar em algum lugar
ssh -v
e ver qual algoritmo ele acaba usando:Tente isso como uma forma de verificar quais cifras estão realmente disponíveis para ssh (também podem ser executadas a partir de um host remoto):
No meu caso, embora
ssh -Q cipher
shows[email protected]
, o acima não.Adicione o seguinte ao /etc/ssh/sshd_config
Observe o
-
no início da string de cifra chacha20.Em seguida, reinicie o servidor ssh para que tenha efeito.