Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
master_cs:fortificacion:tm5 [2025/02/24 16:33] – thejuanvisu | master_cs:fortificacion:tm5 [2025/02/25 13:50] (actual) – thejuanvisu | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | ====== TEMA 5: Securizando las cuentas de usuario ====== | + | ====== |
===== Modulos PAM ===== | ===== Modulos PAM ===== | ||
Línea 16: | Línea 16: | ||
* Success | * Success | ||
* errores varios | * errores varios | ||
- | En el archivo / | + | En el archivo / |
<code c> | <code c> | ||
auth requisite pam_securetty.so #Esto permite logins de root si el usuario se mete en una TTY segura | auth requisite pam_securetty.so #Esto permite logins de root si el usuario se mete en una TTY segura | ||
Línea 22: | Línea 22: | ||
auth requisite pam_shells.so #Si el usuario no está logueado, se rechaza. | auth requisite pam_shells.so #Si el usuario no está logueado, se rechaza. | ||
</ | </ | ||
+ | |||
+ | En el archivo / | ||
+ | < | ||
+ | auth requisite pam_shells.so #Si un usuario no está en el archivo shells no podrá loguear. | ||
+ | </ | ||
+ | |||
+ | ===== Vulnerabilidades ===== | ||
+ | * un usuario puede no ser quien dice ser: | ||
+ | * Se debe endurecer la autenticación con reglas más estrictas sobre contraseñas | ||
+ | * Limitar las horas a las que un usuario root puede hacer login | ||
+ | * revisar los logs para detectar comportamientos anómalos | ||
+ | * Un usuario puede abusar de sus privilegios | ||
+ | * Se deben imponer límites sobre los recursos usados por un usuario. | ||
+ | * Con pam_limits se puede checkear /etc/limits que afecta a los límites | ||
+ | * Poner cuotas | ||
+ | * Poner límites a las aplicaciones. | ||
+ | * Un usuario tiene permisos que no debería tener | ||
+ | |||
+ | ===== Securizando la autentización ===== | ||
+ | Los métodos más comunes son: | ||
+ | * Contraseñas | ||
+ | * Poner permisos más restrictivos en el archivo /etc/shadow (el que almacena las contraseñas) | ||
+ | * No se almacena la contraseña cifrada, si no, la forma cifrada de un texto que usa la contraseña como clave | ||
+ | * Se añade SALT | ||
+ | * Se usan algoritmos deliberadamente lentos. | ||
+ | * Sitios importantes | ||
+ | * / | ||
+ | * / | ||
+ | * / | ||
+ | * / | ||
+ | * Módulos pam usados: | ||
+ | * pam_unix: Definición del hash de la contraseña y las características de la contraseña | ||
+ | * pam_pwquality: | ||
+ | * pam_pwhistory: | ||
+ | * pam_securetty: | ||
+ | * pam_faildelay: | ||
+ | * pam_ google_authenticator: | ||
+ | * certificados digitales | ||
+ | * Datos biométricos | ||
+ | * Clave física | ||
+ | |||
+ | ==== Verificación en 2 Pasos ==== | ||
+ | Configuración de la verificación en 2 pasos: | ||
+ | <code c> | ||
+ | google-authenticator | ||
+ | #Pregunta si queremos los tokens basados en tiempo | ||
+ | y #Le damos | ||
+ | #Sale un QR que podemos escanear con el authenticator de google. | ||
+ | #Se introduce el código que nos da el authenticator. | ||
+ | </ | ||
+ | ==== Restricted Shells ==== | ||
+ | El usuario no puede usar ni modificar variables de entorno a menos que se las permitamos una por una. Generalmente se le asigna al usuario una ubicación con los símbolos lógicos de lo que se le permite usar. | ||
+ | |||
+ | ==== Root ==== | ||
+ | |||
+ | Se debe deshabilitar el login directo al root de la máquina, de forma que para usar el root tendríamos que usar "su - root" o " | ||
+ | |||
+ | ==== El comando Sudo ==== | ||
+ | |||
+ | Con sudo ejecutas con otro usuario, aunque en sistemas como ubuntu, sudo ejecuta siempre como root, mientras que lo normal es que sudo deje ejecutar con un usuario determinado. Sudo se rige por / | ||
+ | <code c> | ||
+ | usuario abyecti=(root) shutdown #Quien, máquina = como quien y que comando tiene permitido, en este caso esto significa que el usuario antonio como el usuario abyecto puede ejecutar como root el shutdown. | ||
+ | usuario abyecti=(root) ALL #Permite hacer todo como root al usuario usuario. | ||
+ | |||
+ | #Dar permisos de apagado a un grupo: | ||
+ | User_Alias DOWNDOERS = pepe, pepa, user2 #Se crea el grupo | ||
+ | Cmnd_Alias POWERDOWN = / | ||
+ | DOWNDOWERS rutercillo = (root) POWERDOWN #Se asigna el grupo de permisos al grupo de usuarios en la máquina rutercillo para que los puedan ejecutar como root. | ||
+ | </ | ||
+ | |||
+ |