Solución:
Si no tiene una lista explícita de cifrados en ssh_config
utilizando el Ciphers
palabra clave, luego el valor predeterminado, de acuerdo con man 5 ssh_config
(del lado del cliente) y man 5 sshd_config
(lado del servidor), es:
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
Tenga en cuenta la presencia de cifrados arcfour. Por lo tanto, es posible que deba establecer explícitamente un valor más restrictivo para Ciphers
.
ssh -Q cipher
del cliente le dirá qué esquemas puede soportar su cliente. Tenga en cuenta que esta lista no se ve afectada por la lista de cifrados especificada en ssh_config
. Eliminar un cifrado de ssh_config
no lo eliminará de la salida de ssh -Q cipher
. Además, usando ssh
con el -c
La opción para especificar explícitamente un cifrado anulará la lista restringida de cifrados que establezca en ssh_config
y posiblemente le permita utilizar un cifrado débil. Esta es una función que le permite utilizar su ssh
cliente para comunicarse con servidores SSH obsoletos que no son compatibles con los cifrados más nuevos y más potentes.
nmap --script ssh2-enum-algos -sV -p <port> <host>
le dirá qué esquemas admite su servidor.
Para deshabilitar RC4 y usar cifrados seguros en el servidor SSH, codifique lo siguiente en /etc/ssh/sshd_config
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
O si prefiere no dictar cifrados pero simplemente desea eliminar los cifrados inseguros, ejecute esto en la línea de comando (en 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
Puede comprobar los cifrados que utiliza actualmente su servidor con:
sudo sshd -T | grep ciphers | perl -pe 's/,/n/g' | sort -u
Asegúrese de que su cliente ssh pueda usar estos cifrados, ejecute
ssh -Q cipher | sort -u
para ver la lista.
También puede indicarle a su cliente SSH que negocie solo cifrados seguros con servidores remotos. En /etc/ssh/ssh_config
colocar:
Host *
ciphers [email protected],[email protected],[email protected],aes256-ctr,aes192-ctr,aes128-ctr
Los fragmentos anteriores provienen de aquí
Para probar la configuración de su servidor, puede usar ssh-audit
El problema de especificar explícitamente una lista de cifrado es que debe agregar manualmente nuevos cifrados a medida que aparecen. En su lugar, simplemente enumere los cifrados que desea eliminar, anteponiendo la lista (no cada cifrado individual) con un carácter ‘-‘. Entonces, en este caso, la línea Ciphers debería leer:
Ciphers -arcfour*
O si lo prefieres:
Ciphers -arcfour,arcfour128,arcfour256
Desde la página del manual sshd_config en el Cifrados opción (desde OpenSSH 7.5, lanzado 2017-03-20):
Si el valor especificado comienza con un carácter ‘+’, los cifrados especificados se agregarán al conjunto predeterminado en lugar de reemplazarlos. Si el valor especificado comienza con un carácter ‘-‘, los cifrados especificados (incluidos los comodines) se eliminarán del conjunto predeterminado en lugar de reemplazarlos.
Esto también se aplica a Algoritmos de Kex y MAC opciones.