NOTA DE SEGURIDAD EN EL SERVIDOR.
Usualmente los usuario desarrolladores de fronend usan Filezilla con su configuración por defecto, dado que es muy conocido para los servidores del tipo Wordpress , el problema es que este agente SFTP (file transfer bajo ssh) usa los protocolos basados en diffie-hellman y politicas de seguridad basadas en ssh-rsa,ssh-dss que comprometen la seguridad del sistema , creando vulnerabilidades y bajo rendimiento del sistema.
Aquí dejo un archivo /etc/ssh/sshd-config funcional para poder usar filezilla en servidores con protecciones que no implementan estos protocolos y alguna configuraciones basicas que habilitan a Filezilla en servidores de alta seguridad.
Se recomienda enormemente cambiar/configurar a Filezila a otros protocolos como Curve , +ssh-rsa,ssh-dsspor entre otros que son mas eficientes y ofrece mayor seguridad, si es posible en sus usuarios antes de pensar en relajar sus sistema.
En este archivo las entradas para institucional, empre0,empre1,empre2 hace referesncia a la configuración hipotética de usuarios que despliegan sus desarrollos en el servidor por ejemplo apache o nginx, cambie su directorio del contenedor /usr/share/nginx según su conveniencia
$ sudo emacs /etc/ssh/sshd-config
------------------------------------------------------------------------------------------------------------
# $OpenBSD: sshd_config,v 1.104 2024/07/20 13:16:21 dtucker Exp $
# This is the sshd server system-wide configuration file. See
# sshd_config(5) for more information.
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKeyAlgorithms +ssh-rsa,ssh-dss
PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group-exchange-sha1,diffie-hellman-group14-sha1,diffie-hellman-group1-sha\
1,ecdh-sha2-nistp521,ecdh-sha2-nistp384,ecdh-sha2-nistp256
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
#AuthorizedPrincipalsFile none
PasswordAuthentication yes
PermitEmptyPasswords no
Subsystem sftp /usr/libexec/openssh/sftp-server
HostkeyAlgorithms +ssh-dss
PubkeyAcceptedKeyTypes +ssh-dss
AuthorizedKeysCommand /opt/aws/bin/eic_run_authorized_keys %u %f
AuthorizedKeysCommandUser ec2-instance-connect
Ciphers aes256-cbc,aes128-ctr,aes192-ctr,aes256-ctr,aes128-cbc,3des-cbc
Match User institucional
ChrootDirectory /usr/share/nginx/institucional
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match User empre0
ChrootDirectory /usr/share/nginx/empre0
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match User empre1
ChrootDirectory /usr/share/nginx/empre1
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
Match User empre2
ChrootDirectory /usr/share/nginx/empre2
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
-------------------------------------------------------------------------------------------------------------------
Es necesario hacer un par de paso de configuración para garantizar que esta configuración funcione
ya que usa contraseñas externas a los servidores es necesario configurarlas adecuadamente.
1. Verifique que los siguientes archivos existen , sino crearlos.
$ ls -l /etc/ssh/ssh_host_rsa_key
$ ls -l /etc/ssh/ssh_host_dsa_key
*Nota verifique si en el cliente local existe el archivo /ssh./host-knows con acceso para el servidor,
si lo tiene , eliminar la entrada asignada al servidor que se pretende tener acceso, para evitar que se bloquee el acceso al servidor desde esa terminal.
Crear las claves necesarias para permitir acceso a Filezilla.
$ sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key -N ''
$ sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key -N ''
dar los permisos necesarios a estas claves.
$ sudo chmod 600 /etc/ssh/ssh_host_rsa_key
$ sudo chmod 600 /etc/ssh/ssh_host_dsa_key
$ sudo chown root:root /etc/ssh/ssh_host_rsa_key
$ sudo chown root:root /etc/ssh/ssh_host_dsa_key
iniciar el servidor sshd de seguridad.
sudo service sshd restart
verificar el estado del sertvicio
$ sudo service sshd status
Use esta informacion con precaución, no se recomienda para servidores de producción.
Se recomienda leer el siguiente texto y buscar mas información de sus sistemas antes de
hacer cualquier cambio en el servidor.
Las prácticas de seguridad y las políticas de criptografía evolucionan con el tiempo para adaptarse a nuevas amenazas y vulnerabilidades descubiertas. Aquí tienes una explicación de por qué algunos protocolos y políticas, como Diffie-Hellman y las claves basadas en ssh-rsa
y ssh-dss
, pueden no ser recomendados o soportados en los servidores de seguridad modernos:
1. Diffie-Hellman (DH)
Debilidades:
- Tamaño de clave fijo: Algunos parámetros DH, especialmente aquellos con tamaños de clave pequeños, son vulnerables a ataques de fuerza bruta.
- Intercambio de claves sin autenticación: El protocolo DH por sí mismo no autentica las partes comunicantes, lo que lo hace susceptible a ataques man-in-the-middle (MitM) si no se combina con otros mecanismos de autenticación.
Alternativas modernas:
- Elliptic-Curve Diffie-Hellman (ECDH): Proporciona mayor seguridad con tamaños de clave más pequeños y es más eficiente en términos de procesamiento.
2. SSH-RSA
Debilidades:
- Debilidad en SHA-1: La firma
ssh-rsa
usa el algoritmo de hash SHA-1, que ha demostrado ser vulnerable a ataques de colisión. - Preferencia por algoritmos más seguros: Los algoritmos modernos como
rsa-sha2-256
y rsa-sha2-512
usan SHA-2, que es más seguro que SHA-1.
Alternativas modernas:
- ED25519: Un algoritmo de clave pública basado en curvas elípticas que es más seguro y eficiente.
- RSA con SHA-2: Utilizar
rsa-sha2-256
o rsa-sha2-512
para firmas RSA en lugar de ssh-rsa
.
3. SSH-DSS (DSA)
Debilidades:
- Tamaño de clave fijo y pequeño: DSA tradicionalmente usa un tamaño de clave fijo de 1024 bits, que no es considerado seguro hoy en día.
- Requerimientos específicos: DSA tiene requisitos específicos sobre el tamaño de la clave y otros parámetros, lo que limita su flexibilidad y seguridad.
Alternativas modernas:
- ED25519: Proporciona seguridad mejorada con claves más pequeñas.
- RSA y ECDSA: Ofrecen mayor seguridad y flexibilidad con tamaños de clave más grandes y algoritmos modernos.
Recomendaciones
Para mantener altos niveles de seguridad en servidores SSH y otros sistemas criptográficos, se recomienda:
Actualizar algoritmos y claves:
- Utilizar claves RSA de al menos 2048 bits, preferentemente 3072 o 4096 bits.
- Emplear algoritmos modernos como
ED25519
y ECDSA
.
Políticas de seguridad actualizadas:
- Deshabilitar algoritmos antiguos y débiles como
ssh-dss
y ssh-rsa
. - Implementar políticas que requieran el uso de algoritmos seguros y tamaños de clave adecuados.
Mantener el software actualizado:
- Asegurarse de que tanto el software del servidor como el cliente SSH estén actualizados para soportar las últimas prácticas y recomendaciones de seguridad.
Implementar estas prácticas ayuda a proteger la comunicación y los datos contra las amenazas más recientes y conocidas.
Comentarios
Publicar un comentario