Seguridad en Unix.

Primera sesión.

Passwords.

  1. Cambiate la password. Prueba diversas combinaciones (passwords cortas, letras repetidas) y observa los mensajes de error.
  2. El fichero /etc/passwd contiene los nombres de los usuarios del sistema e información relevante sobre ellos. Usando man passwd averigua su estructura.
  3. El fichero /etc/group contiene información sobre los grupos de usuarios del sistema. Averigua su estructura. El fichero /etc/shadow contiene las passwords. Averigua su estructura y examínalo.
  4. Crea un directorio (mkdir). Edita un programa que escriba hola en la pantalla y crea el ejecutable. Observa los permisos de los ficheros y del directorio.
  5. Cambiales sus permisos usando chmod y comprueba los efectos en cuanto acceso.
    Cambia los permisos del direcotrio y de los ficheros (prueba muchas combinaciones) y observa cómo afecta a la ejecución de las órdenes cd, ls, ls -l, rm, rmdir, cat, cp.
  6. Estudia la orden umask u prueba su efecto sobre creación de ficheros y directorios.

Suid.

  1. Ejecuta:
    cd
    cp /bin/bash ./mibash
    chmod a+s,a+x mibash
    chmod a+x .
  2. Que un compañero ejecute tu programa mibash con la opción -p.
    Comprende qué pasa cuando ejecuta whoami.
    Comprende qué pasa cuando ejecuta passwd.
  3. Sal de mibash con exit y ejecuta ahora mibash sin la opción -p.
  4. Repite las opciones anteriores y razona el comportamiento del programa.
  5. Asegúrate que tu compañero sale del programa. ¿Por qué?. Borra mibash.

  6. Averigua el funcionamiento de la orden su.
  7. Usala para cambiar tu usuario al de un compañero.
    Explica porqué es capaz de hacer lo que hace y escribe un algoritmo elemental del programa su.
    Reflexiona sobre el funcionamiento de la orden passwd y esboza su algoritmo.
  8. Averigua como se usan las llamadas al sistema getuid y setuid y similares. Escribe un programa para probarlas. Estudia su relación con el bit SUID de un ejecutable.
  9. ¿Cómo harias un programa mibash que no tuviese el problema con passwd del ejercicio 2?.
Segunda sesión.

Administración.

  1. Esta práctica se hace mejor siendo root.
  2. El comando find permite encontrar ficheros que cumplan unas determinadas condiciones (nombre, atributos, etc). La sintaxis simplificada es:
    1. find path condiciones/acciones
    Una de las condiciones es -perm que permite buscar los archivos que tienen determinados permisos. El comando man find nos da la ayuda necesaria para utilizarlo.
  3. Escribe un programa o script que:

Copias de seguridad.

  1. Prepara un script que haga copia de seguridad de tus datos del PC sobre un fichero de al.nisu.org.
  2. Prepara un script que haga copia de tus datos del PC modificados hoy sobre un fichero de al.nisu.org distinto para cada dia de la semana.
  3. Prepara un script que haga copia de seguridad de tus datos del PC sobre un fichero de al.nisu.org distinto para cada semana del mes.
  4. Prepara un script que haga copia de tus datos del PC modificados hoy, pero vía mail.
  5. Prepara un script que haga copia de tus datos de al.nisu.org modificados hoy sobre un fichero de al.nisu.org (cuidado).
  6. Explica todos los problemas de seguridad que pueden estar presentes al hacer copia de seguridad de un ordenador sobre otro.