SSH: Como desativar cifras fracas?

37

A equipe de segurança da minha organização nos disse para desativar os códigos fracos, pois eles emitem chaves fracas.

  arcfour
  arcfour128
  arcfour256

Mas eu tentei procurar por essas cifras no arquivo ssh_config e sshd_config, mas as encontrei comentadas.

 grep arcfour *
ssh_config:#   Ciphers aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,aes128-cbc,3des-cbc

Onde mais devo verificar para desativar essas cifras do SSH?

    
por rɑːdʒɑ 30.12.2016 / 10:29

4 respostas

31

Se você não tiver uma lista explícita de cifras configuradas em ssh_config usando a palavra-chave Ciphers , o valor padrão, de acordo com man 5 ssh_config (lado do cliente) e man 5 sshd_config (lado do servidor), é:

            aes128-ctr,aes192-ctr,aes256-ctr,arcfour256,arcfour128,
            [email protected],[email protected],
            [email protected],
            aes128-cbc,3des-cbc,blowfish-cbc,cast128-cbc,aes192-cbc,
            aes256-cbc,arcfour

Observe a presença das cifras arcfour. Portanto, você pode ter que definir explicitamente um valor mais restritivo para Ciphers .

ssh -Q cipher do cliente lhe dirá quais esquemas seu cliente pode suportar. Observe que essa lista não é afetada pela lista de cifras especificadas em ssh_config . Remover uma cifra de ssh_config não a removerá da saída de ssh -Q cipher . Além disso, usar ssh com a opção -c para especificar explicitamente uma cifra substituirá a lista restrita de cifras que você definiu em ssh_config e possivelmente permitirá que você use uma cifra fraca. Esse é um recurso que permite usar seu cliente ssh para se comunicar com servidores SSH obsoletos que não suportam as novas codificações mais strongs.

nmap --script ssh2-enum-algos -sV -p <port> <host> dirá quais esquemas seu servidor suporta.

    
por 30.12.2016 / 10:35
24

Para desabilitar o RC4 e usar cifras seguras no servidor SSH, codifique com firmeza o seguinte em /etc/ssh/sshd_config

ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

OU se você preferir não ditar cifras, mas apenas quiser remover cifras inseguras, execute isto na linha de comando (no modo sudo):

sshd -T | grep ciphers | sed -e "s/\(3des-cbc\|aes128-cbc\|aes192-cbc\|aes256-cbc\|arcfour\|arcfour128\|arcfour256\|blowfish-cbc\|cast128-cbc\|[email protected]\)\,\?//g" >> /etc/ssh/sshd_config

Você pode verificar as cifras usadas atualmente pelo seu servidor com:

sudo sshd -T | grep ciphers | perl -pe 's/,/\n/g' | sort -u

Verifique se o seu cliente ssh pode usar essas cifras, execute

ssh -Q cipher | sort -u

para ver a lista.

Você também pode instruir seu cliente SSH a negociar somente criptografias seguras com servidores remotos. Em /etc/ssh/ssh_config set:

Host *
    ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr

Os snippets acima são aqui
Para testar as configurações do seu servidor, você pode usar ssh-audit

    
por 30.12.2016 / 13:59
12

O problema com a especificação explícita de uma lista de cifras é que você deve adicionar manualmente novas cifras à medida que elas saem. Em vez disso, simplesmente liste as cifras que você deseja remover, prefixando a lista (não cada cifra individual) com um caractere '-'. Portanto, neste caso, a linha Ciphers deve ler:

Ciphers -arcfour*

Ou se preferir:

Ciphers -arcfour,arcfour128,arcfour256

A partir da página man do sshd_config na opção Cifras (desde o OpenSSH 7.5, lançado em 2017-03-20):

If the specified value begins with a ‘+’ character, then the specified ciphers will be appended to the default set instead of replacing them. If the specified value begins with a ‘-’ character, then the specified ciphers (including wildcards) will be removed from the default set instead of replacing them.

Isso também se aplica às opções KexAlgorithms e MACs .

    
por 11.12.2017 / 18:38
0

ativar / desativar a cifra precisa adicionar / remover no arquivo / etc / ssh / sshd_config

ssh -Q cipher from the client will tell you which schemes support
ssh localhost  -c arcfour   check arcfour cipher enable or not on the server
ssh localhost  -c arcfour128 check arcfour128 cipher enable or not on the server
    
por 09.10.2018 / 13:20