Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
Proyecto Integral de Ingeniería del Software | |
---|---|
Metodologías Ágiles |
Trabajo Fin De Grado | |
---|---|
Guía Memoria TFG |
Servidores | |
---|---|
Minercraft | |
Knoppia | |
Omegacraft |
Base de datos de juegos | |
---|---|
GameBoy Advance (GBA) |
Para deshabilitar estos permisos vamos a modificar los archivos de PAM que se encuentran en /etc/pam.d. Para deshabilitar el acceso a root en la interfaz gráfica modificamos el archivo lightdm con las siguientes lineas:
auth required pam_unix.so nullok account required pam_unix.so
Para deshabilitar los permisos en las terminales virtuales modificamos el archivo login con lo siguiente:
auth [success=1 default=ignore] pam_securetty.so
Usuario no necesita saber la contraseña, mientras que los usuarios del 001 al 004 la necesitan para convertirse en root. Al resto de usuarios no se les preguntará por la contraseña.
Para aplicar los ajustes debemos modificar el archivo /etc/pam.d/su con las siguientes líneas:
auth required pam_wheel.so group=wheel #Permite a los usuario del grupo Wheel a usar su sin contraseña auth [success=1 default=ignore] pam_succeed_if.so user = usuario #Permite al usuario "usuario" usar su sin contraseña auth required pam_unix.so #se configura para permitir que los usuarios indicados tengan que poner la contraseña
También debemos añadir a los usuarios en cuestión al grupo wheel con el siguiente comando:
sudo usermod -aG wheel usuario sudo usermod -aG wheel user001 sudo usermod -aG wheel user002 sudo usermod -aG wheel user003 sudo usermod -aG wheel user004
Deberíamos usar SHA256 y cambiar las contraseñas de todos los usuarios a SHA256 ¿Como deberíamos hacer? Echando un vistazo a /etc/shadow podemos ver las contraseñas cifradas por un lado para root:
y por otro lado para los demás usuarios:
Las contraseñas en general comienzan con una cadena \$<caracter>\$, estos primeros 3 caracteres señalan en que cifrado viene cada contraseña, por lo que sabemos que:
Esto lo sabemos gracias a las salidas del comando man 5 crypt, donde podemos ver que es cada cifrado, por ejemplo, el de root y usuario sería el siguiente:
Y el del resto de usuarios sería el siguiente:
Para cmbiar el cifrado de todos los usuarios a SHA256 habría que primero cambiar cual es el cifrado predeterminado en /etc/pam.d/common-password con las siguientes líneas:
password requisite pam_unix.so sha256
Y tras eso modificar todas las contraseñas con un script como este:
for user in $(cut -f1 -d: /etc/passwd); do sudo passwd --stdin $user done
Para aplicar dichas políticas de contraseña debemos modificar el módulo common-password de PAM añadiendo la siguiente línea:
password requisite pam_pwquality.so retry=3 minlen=10 minclass=4 minupper=1 mindigit=2 minother=1
Tras esto faltaría por establecer que no se puedan usar las 3 contraseñas anteriores, apara ello añadimos en el mismo fichero la siguiente línea:
password requisite pam_unix.so remember=3
Para poder limitar el usuario de estam manera debemos comenzar por modificar el módulo login de PAM con la siguiente linea
auth required pam_shells.so
Tras eso creamos un archivo con los comandos restringidos llamado comandosrest.sh:
allowed_commands=("ls" "rm" "vi" "wc") if [[ ! " ${allowed_commands[@]} " =~ " $1 " ]]; then echo "No puedes ejecutar ese comando :(" exit 1 fi
Tras eso volvemos al archivo de login y añadimos la siguiente línea:
session required pam_exec.so /etc/pam.d/comandosrest.sh