Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
▼
enero
(Total:
52
)
- Configuración MariaDB (MySQL) Gestor Base de Datos
- Instalar WSL2 en Windows 10 para ejecutar Linux de...
- Análisis BackBlaze de los discos duros mecánicos m...
- Tecnologías grabación disco duro mecánico HDD: dif...
- Europol desmantela Emotet: la botnet de malware má...
- Obtener IP de un contacto mediante una llamada en ...
- Nomenclatura de la BIOS/UEFI: ErP Ready, CSM, VRM,...
- Vulnerabilidad en sudo presente desde 2011 permite...
- Seguridad en SSH: uso de llaves privadas y multifa...
- Securizar una RaspBerry Pi
- Convierte tu Raspberry PI en un analizador de red ...
- Optimizar módulo PHP FPM y opciones de seguridad e...
- Los mejores HoneyPots: ejemplos, tipos, caracterís...
- SMiShing: ¿Por qué son tan efectivos los engaños p...
- Vulnerabilidad en "Enviar a Kindle" por e-mail per...
- Utilizan Windows RDP (Escritorio Remoto) puerto 33...
- Secuestran mediante phishing la cuenta de Instagra...
- Google indexa de nuevo datos privados de WhatsApp ...
- Arbitrium-RAT: troyano de acceso remoto multiplata...
- Un exempleado interrumpe el envío de suministros d...
- Los 10 mejores sitios web descarga de Torrent de 2021
- La Policía Nacional detiene en Valencia varón 25 a...
- La policía británica borra por error 400.000 histo...
- Guía configuración y optimización Apache (MPM, suE...
- Administración de Trump añade a Xiamoi a lista de ...
- Comprobar la capacidad real de espacio en un pendr...
- Error en Windows 10 corrompe tu disco duro al ver ...
- Empresa china filtra 200 millones de datos de usua...
- Expertos alertan potente y peligroso RAT llamado R...
- nVidia presenta la serie GeForce RTX Serie 30 y AM...
- Intel agrega a procesadores capacidades de detecci...
- Archivan todas las publicaciones de Parler elimina...
- Fuga de datos privados de la ONU: trabajadores de ...
- Muchas otras redes sociales se unen al veto de Twi...
- SolarWinds contrata una nueva empresa de cibersegu...
- Compartir la ubicación de Telegram no es tan priva...
- HackTools v0.3.0 : la extensión todo en uno para W...
- FBI advierte a empresas sobre ataques del ransomwa...
- Estados Unidos condena ruso a 12 años de cárcel po...
- Aumentan las descargas de Signal y Telegram ante p...
- Condenan a Vodafone a devolver 20.380 euros a un c...
- La aplicación KeyDecoder permite usar el teléfono ...
- Comprendiendo el cifrado TPM con BitLocker y métod...
- Descubre contraseñas escuchando las pulsaciones de...
- Grupo Ransomware DoppelPaymer roba y publica datos...
- Apple compara cuántos metadatos recoge Whatsapp Vs...
- Nintendo pide $15 millones de daños de un sitio we...
- Crecen los ciberataques a los bancos a raíz del co...
- iptables Vs FirewallD: diferencias, ejemplos práct...
- Desactivar scripts PowerShell para evitar ataques ...
- Fallo en Facebook SDK permitía robar cuentas vía o...
- ¿Se atreverá Twitter banear a Donald Trump cuando ...
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Seguridad en SSH: uso de llaves privadas y multifactor (2FA) con Google Authenticator
SSH (Secure Shell - puerto 22) es esencial para la administración de un servidor remoto. En esta publicación te guiaremos a través de algunas de las opciones disponibles para fortalecer (hardening) OpenSSH.
Hardening Básico SSH
Configuración del servidor OpenSSH
El archivo de configuración de OpenSSH en Ubuntu 16.04 se encuentra en
/etc/ssh/sshd_config
Deberá ser root o usar sudo para editar y controlar el servidor SSH.
Archivo de configuración de respaldo
Siempre es una buena idea hacer una copia de seguridad de los archivos de configuración antes de editarlos.
cp /etc/ssh/sshd_config /etc/ssh/backup.sshd_config
Editar el archivo de configuración
Puedes usar nano para editar archivos de configuración.
nano /etc/ssh/sshd_config
Prueba de configuración SSH
Después de editar el archivo de configuración, debe probar que sea válido antes de volver a cargar el servicio.
sshd -t
Vuelva a cargar el archivo de configuración
Una vez que crea que sus ediciones son buenas, vuelva a cargar el demonio SSH.
sudo systemctl reload sshd
Ver el Protocolo
Nuestra primera edición será muy sencilla. Realmente es más una doble verificación que una edición. Abra / etc / ssh / sshd_config y verifique la línea que comienza con Protocol. Asegúrese de que esté configurado en 2 y no en 1. El valor predeterminado actual es 2.
Protocol 2
Deshabilitar acceso root
En lugar de usar root, deberíamos usar la conexión como usuario con permiso sudo. Asegúrese de tener sudo configurado correctamente antes de continuar. Desactivemos la capacidad de root para iniciar sesión mediante SSH. Dentro del archivo de configuración, busque la línea:
PermitRootLogin yes
Cambia eso a no:
PermitRootLogin no
Desactivar re-envio de tráfico
Pueden utilizar ssh para redireccionar tráfico
AllowTCPForwarding No
Desconectar sesiones inactivas
Las sesiones inactivas pueden ser peligrosas. Es una buena idea cerrar la sesión de las personas después de una cantidad determinada de inactividad. ClientAliveInterval es la cantidad de tiempo en segundos antes de que el servidor envíe un mensaje activo al cliente después de que no se hayan recibido datos. ClientAliveCountMax es el número de veces que comprobará antes de desconectarse. En el siguiente ejemplo, el servidor verificará al cliente después de 5 minutos de inactividad. Lo hará dos veces y luego se desconectará.
ClientAliveInterval 300
ClientAliveCountMax 2
Usuarios de la lista blanca
Podemos limitar los usuarios que pueden iniciar sesión en SSH. Esta es una lista blanca. Solo se permitirán los usuarios de esta lista. A todos los demás se les negará. Digamos que quiero permitir que el usuario elhackernet inicie sesión de forma remota a través de SSH. Agregaremos la línea:
AllowUsers elhackernet
No olvides agregar su nombre de usuario a la lista AllowUser.
Cambiar puertos
Otra forma menos favorita de reforzar SSH es cambiar el puerto predeterminado. Normalmente, SSH se ejecuta en el puerto 22. La idea es que la mayoría de los script kiddies solo apunten a ese puerto. Si cambias el puerto predeterminado, tal vez los ataques disminuyan. Pero recuerda que la seguridad por oscuridad no sirve de nada. No es una buena recomendación, En el archivo de configuración, busca la línea:
Port 22
Cambiar el puerto por otro disponible como quizás 2222.
Port 2222
Utilizar Llaves SSH en vez de contraseñas
De forma predeterminada, inicia sesión en el sistema a través de SSH con un nombre de usuario y una contraseña. Estos pueden ser de fuerza bruta. La gente probará una enorme cantidad de combinaciones de nombre de usuario y contraseña hasta que encuentre una que funcione. Entonces, en lugar de usar contraseñas, deberíamos usar claves SSH.
Generando un par de claves
Si ya tienes un par de claves, continúe.
Vamos a hacer algunas claves públicas de cifrado. Vienen en parejas. Privado y publico.
Ejecute el siguiente comando para generar sus claves en la máquina cliente. No ejecutes este comando sudo. Le pedirá una frase de contraseña para proteger la clave. Puede dejarlo en blanco, pero no lo recomiendo. Cualquier persona que posea esa clave puede utilizar una clave SSH privada sin protección de contraseña para acceder al servidor.
ssh-keygen
Comparte tu clave pública
Utiliza ssh-copy-id para enviar su clave pública al servidor.
ssh-copy-id ns2@192.168.0.5
Ahora intenta iniciar sesión. Es posible que te solicite tu contraseña.
ssh ns2@192.168.0.5
Deberías recibir un mensaje que también se vea similar a:
The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is ff:fd:d5:f9:66:fe:73:84:e1:56:cf:d6:ff:ff.
Are you sure you want to continue connecting (yes/no)?¿Está seguro de que desea continuar conectándose (sí / no)?
Di que sí y deberías iniciar sesión sin contraseña.
Deshabilitar la autenticación con contraseña
Si tenemos claves SSH en funcionamiento, podemos deshabilitar todas las autenticaciones de contraseña. Encuentra la línea:
PasswordAuthentication yes
Y cámbialo por no:
PasswordAuthentication no
Deshabilitar el reenvío X11
X11Forwarding yes
X11Forwarding no
Fail2Ban
apt-get install fail2ban
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
/etc/fail2ban/jail.local
[sshd]enabled = trueport = sshlogpath =% (sshd_log) s
service fail2ban restart
Autenticación multifactor SSH - 2FA
Añade un segundo factor de autenticación en SSH
Time-based One-time Password: TOTP
sudo apt-get install libpam-google-authenticator
O en CentOS y derivadas
yum install google-authenticator
google-authenticator
Do you want authentication tokens to be time-based (y/n)
Do you want to disallow multiple uses of the same authenticationtoken? This restricts you to one login about every 30s, but it increases your chances to notice or even prevent man-in-the-middle attacks (y/n) yBy default, tokens are good for 30 seconds and in order to compensate for possible time-skew between the client and the server, we allow an extra token before and after the current time. If you experience problems with poor time synchronization, you can increase the window from its default size of 1:30min to about 4min. Do you want to do so (y/n) yIf the computer that you are logging into isn't hardened against brute-force login attempts, you can enable rate-limiting for the authentication module. By default, this limits attackers to no more than 3 login attempts every 30s. Do you want to enable rate-limiting (y/n) y)
/etc/pam.d/sshd
auth required pam_google_authenticator.so
Edite el archivo de configuración de ssh.
UsePAM yesChallengeResponseAuthentication yes
systemctl restart sshd.service
Banners y MOTD
#Banner /etc/issue.net
ssh fake_user@192.168.1.1
Ubuntu 16.04.3 LTSfake_user@192.168.1.1's contraseña:
/etc/issue.net
______________________| || Bienvenido Leet Haxor || ____________________ |||(\ _ /) ||(*, *) ||(") _ (")
ssh fake_user@192.168.1.1
______________________| || Bienvenido Leet Haxor || ____________________ |||(\ _ /) ||(*, *) ||(") _ (") fake_user@192.168.1.1 password:
MOTD
Bienvenido a Ubuntu 16.04.3 LTS (GNU / Linux 4.13.17-x86_64-linode69 x86_64) * Documentación: https://help.ubuntu.com* Gestión: https://landscape.canonical.com* Soporte: https://ubuntu.com/advantageÚltimo inicio de sesión: lun 19 de febrero 16:01:33 2018 desde 192.168.1.1
cp /etc/update-motd.d/00-header /etc/update-motd.d/backup.00-header
/etc/update-motd.d/00-header
figlet "No Trespassing"
Bienvenido a Ubuntu 16.04.3 LTS (GNU / Linux 4.14.17-x86_64-linode99 x86_64) _ _ _____ _| \ | | ___ | _ _ | __ ___ ___ _ __ __ _ ___ ___ (_) _ __ __ _| \ | | / _ \ | || '__ / _ \ / __ | '_ \ / _` / __ / __ | | '_ \ / _` || | \ | (_) | | || | | __ / \ __ \ | _) | (_ | \ __ \ __ \ | | | | (_ | || _ | \ _ | \ ___ / | _ || _ | \ ___ || ___ / .__ / \ __, _ | ___ / ___ / _ | _ | | _ | \ __, || _ | | ___ / * Documentación: https://help.ubuntu.com* Gestión: https://landscape.canonical.com* Soporte: https://ubuntu.com/advantage
Hardening Avanzado
Auditoría SSH
python ssh-audit.py ns2.ehacker.net
Cambiar la preferencia de la clave de host
HostKey /etc/ssh/ssh_host_ed25519_keyHostKey /etc/ssh/ssh_host_rsa_key
Cambiar cifrados y algoritmos predeterminados
KexAlgorithms curve25519-sha256@libssh.orgCiphers chacha20-poly1305@openssh.com,aes256-gcm@openssh.com,aes128-gcm@openssh.com,aes256-ctr,aes192-ctr,aes128-ctrMACs hmac-sha2-512-etm@openssh.com,hmac-sha2-256-etm@openssh.com,umac-128-etm@openssh.com
python ssh-audit.py ns2.elhacker.net
Módulos regenerados
/etc/ssh/moduli
ssh-keygen -G moduli-2048.candidates -b 2048ssh-keygen -T moduli-2048 -f moduli-2048.candidatescp moduli-2048 /etc/ssh/modulirm moduli-2048
1 comentarios :
hola, el link de ssh audit lleva a un repo obsoleto.
Aqui la version actualizada :
https://github.com/jtesta/ssh-audit/
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.