Curso Basico Ponencia 678

1,387 views

Published on

  • Be the first to comment

Curso Basico Ponencia 678

  1. 1. gnuLinex en los centros educativos Ismael Campos Suárez Antonio Durán Terrés
  2. 2. Linex en los centros educativos <ul><li>Configuración de red: dnsmasq </li></ul><ul><li>Uso de permisos, usuarios y grupos </li></ul><ul><li>Archivos de autenticación </li></ul><ul><li>Conceptos generales de PAM </li></ul><ul><li>Autenticación con LDAP </li></ul><ul><li>Apt-cacher </li></ul><ul><li>Squid </li></ul><ul><li>Scripts de configuración </li></ul><ul><li>Systemimager: conación </li></ul>
  3. 3. dnsmasq <ul><li>Realiza dos funciones principales: </li></ul><ul><ul><li>Servidor de nombres DNS. </li></ul></ul><ul><ul><li>Servidor DHCP (Asignación automática de ip). </li></ul></ul><ul><li>El servidor dnsmasq sustituye a el servidor de nombres bind y al servidor dhcp . </li></ul><ul><li>Se utiliza por la facilidad de instalación, configuración y por su simplicidad de uso. </li></ul>
  4. 4. dnsmasq <ul><li>Fichero de configuración: </li></ul><ul><ul><li>/etc/dnsmasq.conf </li></ul></ul><ul><li>Dnsmasq almacena la base de datos de todas las maquinas a las que ha asignado una dirección: IP,MAC y nombre DNS, añadiendo el tiempo que durará el préstamo de la dirección. </li></ul><ul><ul><li>/var/lib/misc/dnsmasq.leases </li></ul></ul>
  5. 5. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>domain-needed: No hace consultas de nombres locales a servidores DNS externos. </li></ul></ul><ul><ul><li>bogus-priv: No deja pasar consultas de direcciones que no pertenecen al espacio de direccionamiento. </li></ul></ul><ul><ul><li>expand-hosts: Añade automáticamente el dominio a las entradas de un ficheros hosts . </li></ul></ul>
  6. 6. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>domain: Indica tres cosas: </li></ul></ul><ul><ul><ul><li>Permite a los clientes DHCP tener FQDN (fully qualified domain names) siempre que la parte de dominio del cliente coincida con el valor de domain. </li></ul></ul></ul><ul><ul><ul><li>Pone la opción “domain” de DHCP. </li></ul></ul></ul><ul><ul><ul><li>Proporciona el dominio para la opción expand-hosts. </li></ul></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><ul><li>domain=elbrocense.ex </li></ul></ul></ul>
  7. 7. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>dhcp-range: Rango de direcciones disponibles para arrendar, junto a un tiempo de arrendamiento opcional. </li></ul></ul><ul><ul><li>Ejemplo: </li></ul></ul><ul><ul><ul><li>dhcp-range=172.19.232.31,172.19.235.254,255.255.252.0,infinite </li></ul></ul></ul><ul><ul><li>Tenemos disponibles desde 172.19.232.31 hasta 172.19.235.254 (4 rangos) y el tiempo de arerndamiento es infinito. </li></ul></ul>
  8. 8. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>dhcp-host: Asignaciones fijas de IP. </li></ul></ul><ul><ul><li>Ejempo: </li></ul></ul><ul><ul><ul><li>dhcp-host= 00:10:DC:9C:E0:8E,ddprogramador-1,172.19.232.10 </li></ul></ul></ul><ul><ul><li>Asigna la direccion 172.19.232.10 al equipo con MAC 00:10:DC:9C:E0:8E, añadiendolo a la BD DNS con nombre ddporgramador-1. </li></ul></ul>
  9. 9. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>dhcp-lease-max: Indica el número máximo de préstamos concurrentes. </li></ul></ul><ul><ul><li>dhcp-option: Especifica varios parámetros que el servidor DHCP entrega a los clientes. El formato general es: </li></ul></ul><ul><ul><ul><li>dhcp-option=numero_opcion, direccion </li></ul></ul></ul><ul><ul><li>Ejemplo. Asignar como ruta por defecto al servidor: </li></ul></ul><ul><ul><ul><li>dhcp-option=3,172.21.232.2 </li></ul></ul></ul>
  10. 10. dnsmasq <ul><li>Opciones de configuración en dnsmasq.conf: </li></ul><ul><ul><li>dhcp-option: Especifica varios parámetros que el servidor DHCP entrega a los clientes. </li></ul></ul><ul><ul><li>Ejemplo. Asignar como servidor DNS al servidor: </li></ul></ul><ul><ul><ul><li>dhcp-option=6,172.21.232.2 </li></ul></ul></ul><ul><ul><li>También se pueden asignar otros parámetros menos comunes. </li></ul></ul>
  11. 11. dnsmasq <ul><li>Introducción el la BD DNS de datos sobre máquinas que no obtienen su dirección por medio de dhcp. </li></ul><ul><li>Por ejemplo, queremos asignar un alias al servidor, para poder referirnos a él como www . </li></ul><ul><li>Editamos el fichero /etc/hosts del servidor y añadimos la entrada correspondiente: </li></ul><ul><ul><li>172.21.232.2 www.elbrocense.ex www </li></ul></ul><ul><li>Luego reiniciamos dnsmasq. </li></ul>
  12. 12. dnsmasq <ul><li>Diágnostico </li></ul><ul><ul><li>El servidor dnsmasq atiende peticiones DNS y DHCP, por lo que realiza dos servicios muy difrenciados, usando puertos separados para cada uno de ellos. </li></ul></ul><ul><ul><li># netstat --inet -nlp|grep dnsmasq </li></ul></ul><ul><ul><li>tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 303/dnsmasq </li></ul></ul><ul><ul><li>udp 0 0 0.0.0.0:32768 0.0.0.0:* 303/dnsmasq </li></ul></ul><ul><ul><li>udp 0 0 0.0.0.0:53 0.0.0.0:* 303/dnsmasq </li></ul></ul><ul><ul><li>udp 0 0 0.0.0.0:67 0.0.0.0:* 303/dnsmasq </li></ul></ul><ul><ul><li>raw 0 0 0.0.0.0:1 0.0.0.0:* 7 303/dnsmasq </li></ul></ul>
  13. 13. dnsmasq <ul><li>Diágnostico </li></ul><ul><ul><li>Cuando un equipo arranca, debe obtner su IP por DHCP. Para comprobar que lo ha hecho correctamente: </li></ul></ul><ul><ul><ul><li>#ifconfig </li></ul></ul></ul><ul><ul><li>El servidor DHCP asigna al servidor del centro como servidor DNS por defecto. Para comprobar que funciona correctamente: </li></ul></ul><ul><ul><ul><li>#host nombre_maquina </li></ul></ul></ul>
  14. 14. Permisos, usuarios y grupos <ul><li>Cada archivo pertenece a un usuario. </li></ul><ul><li>Cada archivo pertenece a un grupo. </li></ul><ul><li>Cada archivo tiene asignados permisos, que definen el acceso al mismo para el dueño, los miembros del grupo y el resto de los usuarios del sistema. </li></ul><ul><li>Para cada rol, se usan tres bits para codificar los permisos. Cuando el bit está a uno, el permiso está concedido. </li></ul>
  15. 15. Permisos, usuarios y grupos <ul><li># ls -al list </li></ul><ul><li>-rw-r--r-- 1 root root 324 2005-11-08 22:40 list </li></ul><ul><li>Para cada uno de los roles (propietario, miembros del grupo, resto de usuarios) se definen tres permisos: </li></ul><ul><ul><li>r: lectura </li></ul></ul><ul><ul><li>w: escritura </li></ul></ul><ul><ul><li>x: ejecución </li></ul></ul>
  16. 16. Permisos, usuarios y grupos <ul><li>El permiso de ejecución en directorios se refiere a la posibilidad de acceder a ellos mediante el comando cd, mientras que el de lectura indica que es posible listar los contenidos del mismo. </li></ul><ul><li>El permiso de escritura en un directorio permite la posibilidad de crear y borrar entradas del directorio. Es por esto que es posible borrar un archivo para el que no tenemos acceso de escritura (o incluso de lectura) siempre que tengamos permisos de escritura del dir. </li></ul>
  17. 17. Permisos, usuarios y grupos <ul><li>Cambio de propietario de un archivo: chown </li></ul><ul><ul><li>#chown usuario[:grupo] archivo </li></ul></ul><ul><ul><li>Asigna propietario [y grupo ] a archivo . </li></ul></ul><ul><ul><li>#chown aduran:profesor list </li></ul></ul><ul><ul><li>Para cambiar el propietario de un directorio recursivamente y de sus contenidos: </li></ul></ul><ul><ul><li>#chown -R aduran directorio/ </li></ul></ul>
  18. 18. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>#chmod modo fichero </li></ul></ul><ul><ul><li>chmod cambia los permisos de cada fichero dado según modo, que puede ser o bien una representación simbolica de los cambios a realizar, o bien un número octal que representa el patrón de bits de los nuevos permisos. </li></ul></ul><ul><ul><li>Ejemplos: </li></ul></ul><ul><ul><ul><li>#chmod u=rwx list </li></ul></ul></ul><ul><ul><ul><li>#chmod 700 list </li></ul></ul></ul>
  19. 19. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo simbólico: </li></ul></ul><ul><ul><ul><li>‘[ugoa][+-=][rwxXst]’ </li></ul></ul></ul><ul><ul><ul><li>Dividido en tres partes: </li></ul></ul></ul><ul><ul><ul><ul><li>[ugoa] Indica a que permisos se aplica el cambio: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>u: user </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>g: grupo </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>o: otros </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>a: todos (all) </li></ul></ul></ul></ul></ul>
  20. 20. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo simbólico: </li></ul></ul><ul><ul><ul><li>‘[ugoa][+-=][rwxXst]’ </li></ul></ul></ul><ul><ul><ul><li>Dividido en tres partes: </li></ul></ul></ul><ul><ul><ul><ul><li>[+-=] Indica como es el cambiop a aplicar en los permisos: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>+ : Indica que se añaden permisos </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>- : Indica que se quitan permisos </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>= : Indica que se asignan esos permisos, eliminandose los no indicados. </li></ul></ul></ul></ul></ul>
  21. 21. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo simbólico: </li></ul></ul><ul><ul><ul><li>‘[ugoa][+-=][rwxXst]’ </li></ul></ul></ul><ul><ul><ul><li>Dividido en tres partes: </li></ul></ul></ul><ul><ul><ul><ul><li>[rwxXst] Representa el tipo de permiso aplicado. </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>r: lectura </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>w: escritura </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>x: ejecución </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>X: ejecución solamente si el fichero es un directorio o ya tiene permiso de ejecución para algún usuario </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>s: activar el bit SUID o SGID para ejecución </li></ul></ul></ul></ul></ul>
  22. 22. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo simbólico: </li></ul></ul><ul><ul><ul><li>‘[ugoa][+-=][rwxXst]’ </li></ul></ul></ul><ul><ul><ul><li>Dividido en tres partes: </li></ul></ul></ul><ul><ul><ul><ul><li>[rwxXst] Representa el tipo de permiso aplicado. </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>s: activar el bit SUID o SGID para ejecución </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><li>Este permiso “sustituye” al de ejecución: </li></ul></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><ul><li>$ls -al /usr/bin/passwd </li></ul></ul></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><ul><li>-rwsr-xr-x 1 root root 26616 2004-11-26 07:30 /usr/bin/passwd </li></ul></ul></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><ul><li>Indica que el programa se ejecutará con los permisos del propietario/grupo del archivo. </li></ul></ul></ul></ul></ul></ul>
  23. 23. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo simbólico: </li></ul></ul><ul><ul><ul><li>‘[ugoa][+-=][rwxXst]’ </li></ul></ul></ul><ul><ul><ul><li>Dividido en tres partes: </li></ul></ul></ul><ul><ul><ul><ul><li>[rwxXst] Representa el tipo de permiso aplicado. </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>t: sticky (pegajoso). Originalmente se usaba para que el texto del programa se mantuviese en la swap. Hoy en día, cuando se aplica a un directorio significa que solamente el propietario de un archivo y el propietario de ese directorio pueden borrar el fichero de dicho directorio. Con esto evitamos el problema comentado anteriormente para directorios de escritura común. </li></ul></ul></ul></ul></ul>
  24. 24. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo númerico: </li></ul></ul><ul><ul><ul><li>Formado por entre 1 y 4 dígitos octales formados mediante la adicción de los bits de valores 4, 2 y 1. Los dígitos que faltan se toman como ceros inicales. </li></ul></ul></ul><ul><ul><ul><li>El primer dígito selecciona los bits SUID (4), SGID (2) y Sticky (1). </li></ul></ul></ul><ul><ul><ul><li>Los tres restantes seleccionan permisos de lectura (4), escritura (2) y ejecución (1) para usuario, grupo y resto de usuarios. </li></ul></ul></ul><ul><ul><ul><li>Muy rápido una vez conocido. </li></ul></ul></ul>
  25. 25. Permisos, usuarios y grupos <ul><li>Cambio de permisos de un archivo: chmod </li></ul><ul><ul><li>modo númerico: </li></ul></ul><ul><ul><ul><li>Cada bit representa un permiso: </li></ul></ul></ul><ul><ul><ul><ul><li>r w x </li></ul></ul></ul></ul><ul><ul><ul><ul><li>1 0 0: Permiso de lectura: 4 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>0 1 0: Permiso de escritura: 2 </li></ul></ul></ul></ul><ul><ul><ul><ul><li>0 0 1: Permiso de ejecución: 1 </li></ul></ul></ul></ul><ul><ul><ul><li>Asignar todos los permisos al propietario y ninguno a los demás: </li></ul></ul></ul><ul><ul><ul><ul><li>#chmod 700 archivo </li></ul></ul></ul></ul>
  26. 26. Archivos de autenticación <ul><li>/etc/passwd </li></ul><ul><ul><li>Fichero de texto que contiene una lista de las cuentas del sistema, proporcionando para cada una cieta información útil como el identificador de usuario y de grupo, el directorio personal del usuario, etc. </li></ul></ul><ul><ul><li>Antes también contenía las claves cifradas de los usuarios. </li></ul></ul><ul><ul><li>Problema de seguridad, que el fichero debe tener permiso de lectura para todos los usuarios, ya que se usa para hacer la correspondencia entre ID y nombre de usuario. </li></ul></ul>
  27. 27. Archivos de autenticación <ul><li>/etc/passwd </li></ul><ul><ul><li>Si todos los usuarios pueden leer las claves cifradas, pueden aplicar ataques de fuerza bruta (con, por ejemplo. john the ripper) para intentar averiguar las contraseñas almacenadas. </li></ul></ul><ul><ul><li>Se soluciona este problema trasladando a otro fichero (/etc/shadow) las claves cifradas. Este fichero no necesita tener acceso por los usuarios no privilegiados, por lo que se evitan los mencionados ataques. </li></ul></ul>
  28. 28. Archivos de autenticación <ul><li>/etc/passwd </li></ul><ul><ul><li>Hay una entrada por cada línea, cada una con el siguiente aspecto: </li></ul></ul><ul><ul><ul><li>cuenta:contraseña:UID:GID:GECOS:directorio:intérprete </li></ul></ul></ul><ul><ul><ul><li>cuenta: nombre de usuario </li></ul></ul></ul><ul><ul><ul><li>contraseña: un * si usamos shadow passwords. </li></ul></ul></ul><ul><ul><ul><li>UID: Número ID del usuario. </li></ul></ul></ul><ul><ul><ul><li>GID: Número ID del grupo primario para este usuario. </li></ul></ul></ul><ul><ul><ul><li>GECOS: Usualmente nombre completo del usuario. </li></ul></ul></ul>
  29. 29. Archivos de autenticación <ul><li>/etc/passwd </li></ul><ul><ul><li>Hay una entrada por cada línea, cada una con el siguiente aspecto: </li></ul></ul><ul><ul><ul><li>cuenta:contraseña:UID:GID:GECOS:directorio:intérprete </li></ul></ul></ul><ul><ul><ul><li>directorio: directorio base del usuario ($HOME) </li></ul></ul></ul><ul><ul><ul><li>programa que debe ejecutarse cuando el usuario ingresa. </li></ul></ul></ul>
  30. 30. Archivos de autenticación <ul><li>/etc/shadow </li></ul><ul><ul><li>Contiene las contraseñas cifradas de los usuarios, y opcionalemente, información sobre el envejecimiento de las cuentas. </li></ul></ul><ul><ul><li>Contiene: </li></ul></ul><ul><ul><ul><li>Nombre de usuario </li></ul></ul></ul><ul><ul><ul><li>Clave cifrada </li></ul></ul></ul><ul><ul><ul><li>Información sobre cuadno se cambió la contraseña por última vez o cuando debe ser cambiada para que no se desactive la cuenta. </li></ul></ul></ul>
  31. 31. Archivos de autenticación <ul><li>/etc/group </li></ul><ul><ul><li>Fichero de grupos de usuarios </li></ul></ul><ul><ul><li>Es un fichero de texto que define los grupos a los cuáles pertenecen los usuarios del sistema. Hay una entrada por linea, con el siguiente formato: </li></ul></ul><ul><ul><ul><li>nombre_grupo:contraseña:GID:lista_usuarios </li></ul></ul></ul><ul><ul><ul><ul><li>nombre_grupo: nombre del grupo </li></ul></ul></ul></ul><ul><ul><ul><ul><li>contraseña: Si está vacía, no se usa contraseña. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>GID: Número ID del grupo. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>lista_usuarios: los nombres de usuarios de los miembros, separados por comas. </li></ul></ul></ul></ul>
  32. 32. Archivos de autenticación <ul><li>Comprobación de ficheros </li></ul><ul><ul><li>pwck </li></ul></ul><ul><ul><ul><li>Verifica la integridad de los ficheros passwd y shadow . </li></ul></ul></ul><ul><ul><ul><li>Cada entrada se comprueba para ver que tiene todos los campos requeridos en el formato correcto. </li></ul></ul></ul><ul><ul><ul><li>Se pregunta al usuario si desea eliminar las entradas que tienen errores incorregibles. </li></ul></ul></ul><ul><ul><ul><li>Debemos usarlo si tenemos problemas para cambiar una contraseña. </li></ul></ul></ul>
  33. 33. Archivos de autenticación <ul><li>Comprobación de ficheros </li></ul><ul><ul><li>grpck </li></ul></ul><ul><ul><ul><li>Verifica la integridad de los ficheros grupo y gshadow. </li></ul></ul></ul><ul><ul><ul><li>Cada entrada se comprueba para ver que tiene todos los campos requeridos en el formato correcto. </li></ul></ul></ul><ul><ul><ul><li>Se pregunta al usuario si desea eliminar las entradas que tienen errores incorregibles. </li></ul></ul></ul><ul><ul><ul><li>Debemos usarlo si tenemos poblemas al ejecutar useradd, usermod y comandos relacionados, ya que normalmente el error suele ser un nombre de grupo repetido. </li></ul></ul></ul>
  34. 34. PAM <ul><li>PAM = Pluggable Authentication Modules </li></ul><ul><li>Colección de librerías que permiten al administrador elegir como se autenticarán los usuarios. </li></ul><ul><li>Permite cambiar la autenticación que usan las aplicaciones PAM sin necesidad de recompilarlas. </li></ul>
  35. 35. PAM <ul><li>Objetivo: separar el SW dedicado a otorgar privilegios del SW dedicado a desarrollar sistemas de autenticación seguros y apropiados. </li></ul><ul><li>Configuración: </li></ul><ul><ul><li>/etc/pam.conf </li></ul></ul><ul><ul><li>/etc/pam.d/ </li></ul></ul><ul><li>Módulos: /lib/security </li></ul>
  36. 36. PAM <ul><li>PAM trata con cuatro tipos de tareas: </li></ul><ul><ul><li>Gestión de autenticación </li></ul></ul><ul><ul><li>Gestión de cuentas </li></ul></ul><ul><ul><li>Gestión de sesiónes </li></ul></ul><ul><ul><li>Gestión de contraseñas </li></ul></ul>
  37. 37. PAM <ul><li>Configuración </li></ul><ul><ul><li>Una entrada por línea en /etc/pam.conf </li></ul></ul><ul><ul><ul><li>nombre_servicio tipo_modulo flag_control path_modulo args </li></ul></ul></ul><ul><ul><li>nombre_servicio </li></ul></ul><ul><ul><ul><li>El nombre del servicio asociado a la entrada. Suele ser el nombre del programa. </li></ul></ul></ul><ul><ul><ul><li>Puede ser 'other' para indicar una opción por omisión para los programas que no tienen entrada específica. </li></ul></ul></ul>
  38. 38. PAM <ul><li>Configuración </li></ul><ul><ul><li>tipo_modulo </li></ul></ul><ul><ul><ul><li>Uno de los 4 tipos de módulos actuales: </li></ul></ul></ul><ul><ul><ul><ul><li>auth </li></ul></ul></ul></ul><ul><ul><ul><ul><li>account </li></ul></ul></ul></ul><ul><ul><ul><ul><li>session </li></ul></ul></ul></ul><ul><ul><ul><ul><li>password </li></ul></ul></ul></ul>
  39. 39. PAM <ul><li>Tipos de módulo </li></ul><ul><ul><li>auth </li></ul></ul><ul><ul><ul><li>Proporciona dos aspectos de la autenticación de usuarios. Primero establece que el usuario es quien dice ser. Segundo, puede otorgar mebresías de grupo independientemente del fichero /etc/groups, u otros privilegios. </li></ul></ul></ul>
  40. 40. PAM <ul><li>Tipos de módulo </li></ul><ul><ul><li>account. Se encarga de la gestión de cuentas no relacionada con la autenticación. Suele usarse para permitir/denegar accesos basandose en la hora/día, recursos del sistema disponibles o la localización del usuario (por ej: root sólo puede hacer login en la consola) </li></ul></ul>
  41. 41. PAM <ul><li>Tipos de módulo </li></ul><ul><ul><li>session. Principalmente este módulo se encarga de las cosas que se deben hacer por el usuario antes/después de que se le conceda el servicio. Estas actividades se refieren, por ejemplo, a la escritura de información de registro sobre la apetura/cierre de sesiones, el montaje de directorios, etc. </li></ul></ul>
  42. 42. PAM <ul><li>Tipos de módulo </li></ul><ul><ul><li>password. Es necesario para actualizar los tokens utilizados para la autenticación. Normalmente hay uno para cada módulo del tipo auth . </li></ul></ul>
  43. 43. PAM <ul><li>Configuración </li></ul><ul><ul><li>bandera de control </li></ul></ul><ul><ul><ul><li>Se utiliza para indicar como reaccionará la librería PAM al tener éxito o fracaso el módulo al que está asociada. </li></ul></ul></ul><ul><ul><ul><li>Como los módulos pueden ser apilados, la bandera de control representa la importancia relativa de cada módulo. </li></ul></ul></ul><ul><ul><ul><li>La aplicación no recibe el resultado de módulos individuales, sino sólo un resultado de la librería. </li></ul></ul></ul>
  44. 44. PAM <ul><li>Configuración </li></ul><ul><ul><li>bandera de control </li></ul></ul><ul><ul><ul><li>2 formas de especificar la bandera de control. Vemos sólo la simple (la que usamos en los IES). </li></ul></ul></ul><ul><ul><ul><li>Representamos la bandera de control con una sola palabra que indica la severidad de un acierto o fracaso en el módulo. Las cuatro opciones son: </li></ul></ul></ul><ul><ul><ul><li>required, requisite, sufficient, optional e include. </li></ul></ul></ul>
  45. 45. PAM <ul><li>Configuración </li></ul><ul><ul><li>bandera de control </li></ul></ul><ul><ul><ul><li>required: Indica que es necesario el éxito de este módulo. </li></ul></ul></ul><ul><ul><ul><li>requisite: como required, sin embargo si falla no se siguen ejecutando más modulos. </li></ul></ul></ul><ul><ul><ul><li>suffcient: El éxito de éste módulo se considera como suficiente para conceder el permiso. </li></ul></ul></ul><ul><ul><ul><li>optional: No es crítico para el éxito o fracaso de la aplicación. </li></ul></ul></ul>
  46. 46. PAM <ul><li>Configuración </li></ul><ul><ul><li>bandera de control </li></ul></ul><ul><ul><ul><li>include: Indica al sistema PAM que incluya los contenidos del fichero indicado. </li></ul></ul></ul><ul><ul><li>path_modulo </li></ul></ul><ul><ul><ul><li>Ruta hacia el módulo. </li></ul></ul></ul><ul><ul><li>args </li></ul></ul><ul><ul><ul><li>Argumentos que se pasan al módulo. </li></ul></ul></ul>
  47. 47. PAM <ul><li>Configuración basada en directorios </li></ul><ul><ul><li>Más flexible </li></ul></ul><ul><ul><li>Usa los ficheros de /etc/pam.d </li></ul></ul><ul><ul><li>Cada fichero tiene el nombre de un servicio, que corresponde con la configuración para ese servicio. </li></ul></ul><ul><ul><li>Formato de las líneas de cada fichero: </li></ul></ul><ul><ul><ul><li>tipo_modulo bandera_control path_modulo args </li></ul></ul></ul>
  48. 48. PAM <ul><li>Configuración basada en directorios. Ventajas: </li></ul><ul><ul><li>Menos propensa al error. </li></ul></ul><ul><ul><li>Más facil de mantener. </li></ul></ul><ul><ul><li>Permite enlazar ficheros. </li></ul></ul><ul><ul><li>Más rápido. </li></ul></ul><ul><ul><li>Mejor gestión de permisos. </li></ul></ul><ul><ul><li>Facilita la administración de paquetes. </li></ul></ul>
  49. 49. PAM <ul><li>Configuración basada en directorios. </li></ul><ul><li>Ficheros comunes: </li></ul><ul><ul><li>common-account </li></ul></ul><ul><ul><li>common-auth </li></ul></ul><ul><ul><li>common-password </li></ul></ul><ul><ul><li>common-session </li></ul></ul>
  50. 50. PAM <ul><li>Configuración </li></ul><ul><ul><li>Argumentos opcionales generales: </li></ul></ul><ul><ul><ul><li>debug: información de debug en los logs. </li></ul></ul></ul><ul><ul><ul><li>no_warn: no dar mensajes de aviso a la aplicación. </li></ul></ul></ul><ul><ul><ul><li>use_first_pass: El módulo no debe pedir una contraseña al usuario. En cambio, debe usar la contraseña introducida anteriormente en el primer módulo de tipo auth. Si no funciona, el acceso será denegado. </li></ul></ul></ul>
  51. 51. PAM <ul><li>Configuración </li></ul><ul><ul><li>Argumentos opcionales generales: </li></ul></ul><ul><ul><ul><li>try_first_pass: El módulo debe intentar la autentiacción con la contraseña introducida anteriormente. Si no funciona, se pide otra contraseña al usuario. </li></ul></ul></ul><ul><ul><ul><li>expose_account: da mas información al usuario sobre las cuentas. </li></ul></ul></ul>
  52. 52. PAM <ul><li>Ejemplos de common-auth </li></ul><ul><li>Versión 1: </li></ul><ul><ul><li>auth sufficient pam_unix.so </li></ul></ul><ul><ul><li>auth sufficient pam_ldap.so user_first_pass </li></ul></ul><ul><li>Versión 2: </li></ul><ul><ul><li>auth sufficient pam_unix.so </li></ul></ul><ul><ul><li>auth required pam_ldap.so user_first_pass </li></ul></ul>
  53. 53. PAM <ul><li>Ejemplos </li></ul><ul><li>Versión 3: </li></ul><ul><ul><li>auth required pam_nologin.so </li></ul></ul><ul><ul><li>auth required pam_env.so </li></ul></ul><ul><ul><li>auth required pam_unix_auth.so </li></ul></ul>
  54. 54. PAM <ul><li>Descripción de los módulos </li></ul><ul><ul><li>pam_unix: Módulo de autenticación estandar. Ficheros passwd y shadow. </li></ul></ul><ul><ul><li>pam_ldap: Autentiación contra directorios LDAP. </li></ul></ul><ul><ul><li>pam_nologin: Encargdo de la funcionalidad Unix nologin. </li></ul></ul><ul><ul><li>pam_env: Para asignar valores a variables de entorno. </li></ul></ul><ul><ul><li>pam_unix_auth: Módulo de autenticación estandar. </li></ul></ul>
  55. 55. Autenticación con LDAP <ul><li>LDAP: Lightweight Directory Access Protocol. </li></ul><ul><li>LDAP es un protocol de acceso a un servicio de directorio. </li></ul><ul><li>Basicamente es como una base de datos, pero organizado jerárquicamente y basado en atributos. </li></ul><ul><li>Al usar autenticación LDAP, simplemente sustituimos las consultas sobre usuarios a la BD local (ficheros passwd y shadow) por consultas al servidor LDAP. PAM se encarga de ello. </li></ul>
  56. 56. Autenticación con LDAP <ul><li>El servicio de directorio LDAP se basa en un modelo cliente-servidor . </li></ul><ul><li>Uno o más servidores LDAP contienen los datos que conforman el árbol del directorio LDAP o base de datos troncal. </li></ul><ul><li>El cliente ldap se conecta con el servidor LDAP y le hace una consulta. </li></ul><ul><li>El servidor contesta con la respuesta correspondiente, o bien con una indicación de dónde puede el cliente hallar más información (normalmente otro servidor LDAP). </li></ul>
  57. 57. Autenticación con LDAP <ul><li>El modelo de información de LDAP está basado en entradas. Una entrada es una colección de atributos que tienen un único y global Nombre Distinguido (DN). </li></ul><ul><li>El DN se utiliza para referirse a una entrada sin ambigüedades. Cada atributo de una entrada posee un tipo y uno o más valores. </li></ul><ul><li>Los tipos son normalmente palabras nemotécnicas, como “ cn ” para common name, o “mail” para una dirección de correo. </li></ul><ul><li>La sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el valor “Sergio González”. </li></ul>
  58. 58. Autenticación con LDAP <ul><li>En LDAP, las entradas están organizadas en una estructura jerárquica en árbol . </li></ul><ul><li>Tradicionalmente, esta estructura reflejaba los límites geográficos y organizacionales. </li></ul><ul><li>Las entradas que representan países aparecen en la parte superior del árbol. </li></ul><ul><li>Debajo de ellos, están las entradas que representan los estados y las organizaciones nacionales. </li></ul>
  59. 59. Autenticación con LDAP <ul><li>Debajo de estás, pueden estar las entradas que representan las unidades organizacionales, empleados, impresoras, documentos o todo aquello que pueda imaginarse. </li></ul>
  60. 60. Autenticación con LDAP
  61. 61. Autenticación con LDAP <ul><li>Programa servidor: slapd </li></ul><ul><li>Configuración: /etc/ldap/slapd.conf </li></ul><ul><li>Para conocer todas las opciones: </li></ul><ul><ul><li>$man 5 slapd.conf </li></ul></ul><ul><li>Opciones importantes: </li></ul><ul><ul><li>replogfile: Fichero de logs del servidor. </li></ul></ul><ul><ul><li>loglevel: Nivel de detalle en los logs. </li></ul></ul><ul><ul><li>database: estilo de BD. Usamos ldbm. </li></ul></ul>
  62. 62. Autenticación con LDAP <ul><li>Programa servidor: slapd </li></ul><ul><li>Configuración: /etc/ldap/slapd.conf </li></ul><ul><li>Opciones importantes: </li></ul><ul><ul><li>sufix: La base del directorio. </li></ul></ul><ul><ul><li>directory: donde se almacena fisicamente la BD. </li></ul></ul><ul><ul><li>access: indican permisos para diferentes acciones y usuarios. </li></ul></ul>
  63. 63. Autenticación con LDAP <ul><li>Control de acceso. Indica: </li></ul><ul><ul><li>Atributos a los que se concede acceso. </li></ul></ul><ul><ul><li>A que usuarios ser permite cada acceso. </li></ul></ul><ul><ul><li>El tipo de acceso concedido. </li></ul></ul><ul><li>Vemos ejemplos en los ficheros de configuración proporcionados. </li></ul>
  64. 64. Autenticación con LDAP <ul><li>Para importar y exportar información de directorio entre servidores de directorios basados en LDAP, o para describir una serie de cambios que han de aplicarse al directorio, se usa en general del fichero de formato conocido como LDIF (siglas de &quot;LDAP interchange format&quot;, «formato de intercambio de LDAP»). </li></ul><ul><li>Un fichero LDIF almacena información en jerarquías de entradas orientadas a objeto. </li></ul>
  65. 65. Autenticación con LDAP <ul><li>Fragmento de fichero ldif: </li></ul><ul><li>dn: uid=root,ou=People,dc=elbrocense,dc=ex </li></ul><ul><li>uid: root </li></ul><ul><li>cn::cm9vdA== </li></ul><ul><li>objectClass: account </li></ul><ul><li>objectClass: posixAccount </li></ul><ul><li>objectClass: top </li></ul><ul><li>objectClass: shadowAccount </li></ul><ul><li>userPassword: {crypt}$1$btERS/EE$l6bMnEg3Yiyt4g0D7u6Yq. </li></ul><ul><li>shadowLastChange: 12809 </li></ul><ul><li>shadowMax: 99999 </li></ul>
  66. 66. Autenticación con LDAP <ul><li>Actualización del directorio en los I.E.S. </li></ul><ul><ul><li>Actualización por phpldapadmin </li></ul></ul><ul><ul><ul><li>Los cambios sólo se aplican al directorio LDAP. </li></ul></ul></ul><ul><ul><ul><li>Acceso por web </li></ul></ul></ul><ul><ul><li>Actualización de la BD local de usuarios y grupos del servidor, y posterior migración de los datos al directorio LDAP. </li></ul></ul><ul><ul><ul><li>Los cambios se hacen en LDAP y en la BD local del servidor. </li></ul></ul></ul><ul><ul><ul><li>Acceso por consola: migrar </li></ul></ul></ul>
  67. 67. Autenticación con LDAP <ul><li>Actualización del directorio en los I.E.S. </li></ul><ul><ul><li>/usr/bin/migrar </li></ul></ul><ul><ul><ul><li>Script encargado de realizar la migración de datos de la BD local del servidor al directorio LDAP. </li></ul></ul></ul><ul><ul><ul><li>Pasos: </li></ul></ul></ul><ul><ul><ul><ul><li>Construir ficheros ldif a partir de la BD de usuarios y grupos del servidor: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>migrate_passwd.pl y migrate_group.pl </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Hacer el trasvase de información al directorio LDAP: </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>ldapadd, ldapmodify </li></ul></ul></ul></ul></ul>
  68. 68. Autenticación con LDAP <ul><li>Actualización del directorio en los I.E.S. </li></ul><ul><ul><li>/usr/bin/migrar </li></ul></ul><ul><ul><ul><li>Añade los nuevos usuarios creados. </li></ul></ul></ul><ul><ul><ul><li>Añade los nuevos grupos creados. </li></ul></ul></ul><ul><ul><ul><li>NO modifica los atributos de usuarios o grupos que ya estén creados. </li></ul></ul></ul><ul><ul><li>/usr/bin/migrar2 </li></ul></ul><ul><ul><ul><li>Cambio de ldapadd por ldapmodify en la migración de grupos, para aplicar los cambios. No en los usuarios. </li></ul></ul></ul>
  69. 69. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>Instalación del software necesario. Antes de poder autenticar a los usuarios a través de un servidor LDAP, es necesario instalar algunas utilidades en el cliente, como pam_ldap y nss_ldap . </li></ul><ul><ul><li>pam_ldap permite hacer uso de un servidor LDAP para la autenticación de usuarios (comprobación de claves) a aquellas aplicaciones que utilicen PAM. </li></ul></ul>
  70. 70. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>Instalación del software necesario. </li></ul><ul><ul><li>nss-ldap permite a un servidor LDAP actuar como un servidor de nombres. Esto significa que provee la información de las cuentas de usuario, los IDs de los grupos, la información de la máquina, los alias, los grupos de red y básicamente cualquier cosa que normalmente se obtiene desde los archivos almacenados bajo /etc o desde un servidor NIS. </li></ul></ul>
  71. 71. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>/etc/nsswitch.conf </li></ul><ul><li>nsswitch.conf es el fichero de configuración de las Bases de Datos del Sistema y del sistema de Conmutación de los Servicios de Nombres (Name Service Switch). </li></ul><ul><li>En otras palabras, es un archivo que indica el orden y el procedimiento a seguir para la búsqueda de la información requerida, por ejemplo, para hacer búsquedas de hosts o usuarios. </li></ul>
  72. 72. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>/etc/nsswitch.conf </li></ul><ul><li>La forma de configurar este archivo es muy simple: </li></ul><ul><li>Primero se especifica la base de datos sujeta a la búsqueda(primera columna) seguida del procedimiento que se va a emplear para realizar una búsqueda sobre la misma(columnas siguientes). </li></ul><ul><li>De esta forma, basta con configurar el procedimiento de búsqueda para que haga uso de LDAP en algún momento. </li></ul>
  73. 73. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>/etc/libnss-ldap.conf </li></ul><ul><li>Configuración del servidor LDAP al que el cliente conectará. Opciones: </li></ul><ul><ul><li>host: Indica la dirección del servidor LDAP. </li></ul></ul><ul><ul><li>base: Nombre distinguido de la base de búsqueda. </li></ul></ul><ul><ul><li>ldap_version: Número de versión LDAP a usar. </li></ul></ul><ul><ul><li>binddn: Nombre distinguido con el que hacer bind al servidor. </li></ul></ul>
  74. 74. Autenticación con LDAP <ul><li>Configuración en los clientes </li></ul><ul><li>/etc/libnss-ldap.conf </li></ul><ul><li>Configuración del servidor LDAP al que el cliente conectará. Opciones: </li></ul><ul><ul><li>bindpw: Las credenciales con las que hacer bind . </li></ul></ul><ul><li>/etc/pam-ldap.conf </li></ul><ul><ul><li>Mismo contenido que libnss-ldap.conf </li></ul></ul><ul><ul><li>Nueva opción: pam_password. Indica el cifrado a realizar por el cliente antes de enviar la contraseña. </li></ul></ul>
  75. 75. Autenticación con LDAP <ul><li>Funcionamiento del protocolo LDAP </li></ul><ul><ul><li>Cliente -> Servidor BIND REQUEST </li></ul></ul><ul><ul><li>Servidor -> Cliente BIND RESULT </li></ul></ul><ul><ul><li>Cliente -> Servidor SEARCH REQUEST </li></ul></ul><ul><ul><li>Servidor -> Cliente SEARCH ENTRY </li></ul></ul><ul><ul><li>Servidor -> Cliente SEARCH RESULT </li></ul></ul><ul><li>Mas información: RFC 2251 </li></ul>
  76. 76. Autenticación con LDAP <ul><li>Funcionamiento del protocolo LDAP </li></ul><ul><ul><li>Operación BIND. </li></ul></ul><ul><ul><ul><li>Sirve para conectar a un servidor LDAP. Normalmente protegemos el acceso al servidor LDAP, de modo que solo clientes que conocen la “bind password” (bindpw) pueden conectarse. </li></ul></ul></ul><ul><ul><ul><li>Si el par usuario/contraseña suministrada al servidor no coincide con las credenciales definidas para hacer bind (en slapd.conf), no se permitirá el acceso. </li></ul></ul></ul>
  77. 77. Autenticación con LDAP <ul><li>Funcionamiento del protocolo LDAP </li></ul><ul><ul><li>Operación SEARCH REQUEST </li></ul></ul><ul><ul><ul><li>El cliente pide información al servidor </li></ul></ul></ul><ul><ul><li>Operación SEARCH ENTRY </li></ul></ul><ul><ul><ul><li>El servidor entrega información al cliente </li></ul></ul></ul><ul><ul><li>Operación SEARCH RESULT </li></ul></ul><ul><ul><ul><li>El servidor indica al cliente el resultado de la operación de búsqueda. </li></ul></ul></ul>
  78. 78. APT-CACHER <ul><li>Apt-cacher responde a la pregunta de cómo hacer una cache de los paquetes de Debian del apt-get para varios ordenadores en la misma red y así minimizar el tráfico de la línea a Internet y al mismo tiempo acelerar las actualizaciones. </li></ul><ul><li>La respuesta (una de ellas) es usar el apt-cacher. </li></ul>
  79. 79. APT-CACHER <ul><li>El principio de funcionamiento es muy sencillo. </li></ul><ul><li>El apt-cacher es un script en Perl que se ejecuta como CGI en el Apache, con el URL http://servidor_cache/apt-cacher/. </li></ul><ul><li>Luego hay que cambiar los URLs del sources.list de los clientes en la misma red para que apunten al URL anterior. </li></ul>
  80. 80. APT-CACHER <ul><li>El servidor de paquetes &quot;original&quot; se envía como &quot; argumento &quot; del URL, por ejemplo: </li></ul><ul><li>http://SERVIDOR/apt-cacher/ ftp.us.debian.org/debian/ </li></ul><ul><li>El CGI verifica si el paquete de ese servidor ya está en su directorio cache (/var/cache/apt-cacher/ y si está almacenado localmente, lo envía directamente al cliente. </li></ul><ul><li>Como los paquetes Debian de distintas versiones tienen nombres diferentes, no hay posibilidades de conflictos. </li></ul>
  81. 81. APT-CACHER <ul><li>Para instalar basta con un apt-get install apt-cacher. </li></ul><ul><li>Este paquete tiene dependencias con apache, perl y wget, por lo que los instalará si no lo tenéis. </li></ul><ul><li>Una vez instalado, lo único que hay que hacer es ajustar los parámetros por defecto del script, eso se hace en el fichero /etc/apt-cacher/apt-cacher.conf . </li></ul>
  82. 82. APT-CACHER <ul><li>Para verificar que funciona, podéis acceder desde cualquier navegador a vuestro servidor al url http://SERVIDOR/apt-cacher/ y tenéis que ver una página donde se os muestra la configuración. </li></ul>
  83. 83. APT-CACHER <ul><li>Configuración del servidor </li></ul><ul><ul><li>Ficheros en /etc/apt-cacher </li></ul></ul><ul><ul><ul><li>apache.conf: valores de configuración que Apache debe usar al tratar con el directorio de apt-cacher. Es un fichero .htaccess normal y corriente. </li></ul></ul></ul><ul><ul><ul><li>apt-cacher.conf: Configuración de apt-cacher. </li></ul></ul></ul>
  84. 84. APT-CACHER <ul><li>apt-cacher.conf </li></ul><ul><ul><li>cache_dir: directorio donde almacenar los paquetes. </li></ul></ul><ul><ul><li>allowed_hosts: rango de direcciones a las que se permite usar apt-cacher. </li></ul></ul><ul><ul><li>generate_reports: Generar informes cada 24 horas. Se pueden consultar en http://SERVIDOR/apt-cacher/report </li></ul></ul>
  85. 85. APT-CACHER <ul><li>apt-cacher.conf </li></ul><ul><ul><li>clean_cache: limpiar la cache cada 24 horas. No nos interesa. </li></ul></ul><ul><ul><li>logdir: Directorio de logs. </li></ul></ul><ul><ul><li>expire_hours: horas que se mantiene una lista de paquetes sin refrescarla. </li></ul></ul><ul><ul><li>limit: Limitación del ancho de banda usado. </li></ul></ul>
  86. 86. APT-CACHER <ul><li>Configuración de los clientes </li></ul><ul><ul><li>Ahora lo único que hay que hacer es modificar los sources.list de los clientes para que pasen a través del servidor. </li></ul></ul><ul><ul><li>Hay que añadir a cada línea del sources.list, el servidor donde tenemos instalado apt-cacher y además tener cuidado que todos hagan referencia a los mismos servidores, sino el cache no tendrá efecto. </li></ul></ul>
  87. 87. APT-CACHER <ul><li>Configuración de los clientes </li></ul><ul><ul><li>Originales: </li></ul></ul><ul><ul><ul><li>deb http://www.linex.org/sources/linex/debian sarge linex main contrib non-free </li></ul></ul></ul><ul><ul><li>Modificados: </li></ul></ul><ul><ul><ul><li>deb http://SERVIDOR/apt-cacher/www.linex.org/sources/linex/debian sarge linex main contrib non-free </li></ul></ul></ul>
  88. 88. SQUID <ul><li>Squid se usa como proxy-cache en los I.E.S. para dar salida a internet a todos los puestos. </li></ul><ul><li>Entre otras cosas, Squid puede hacer Proxy y cache con los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cache transparente, WWCP, aceleración HTTP, cache de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario. </li></ul>
  89. 89. SQUID <ul><li>Para instalar squid: </li></ul><ul><ul><li>apt-get -y install squid </li></ul></ul><ul><li>Fichero de configuracion: </li></ul><ul><ul><li>/etc/squid/squid.conf </li></ul></ul>
  90. 90. SQUID <ul><li>/etc/squid/squid.conf </li></ul><ul><ul><li>http_port: Puerto en el que escucha squid. </li></ul></ul><ul><ul><li>cache_mem: cantidad de memoria que Squid puede usar para ciertas funciones internas. </li></ul></ul><ul><ul><li>cache_swap_low y cache_swap_high: controlan el reemplazo de objetos en cache, cuando se va llenando. </li></ul></ul>
  91. 91. SQUID <ul><li>/etc/squid/squid.conf </li></ul><ul><ul><li>maximum_object_size: los objetos de tamaño mayor que éste, no serán almacenados en la caché. </li></ul></ul><ul><ul><li>cache_dir: directorio donde se almacena la caché. </li></ul></ul><ul><ul><li>cache_access_log: log de accesos. </li></ul></ul>
  92. 92. SQUID <ul><li>/etc/squid/squid.conf </li></ul><ul><ul><li>cache_log: Log general </li></ul></ul><ul><ul><li>cache_store_log: información sobre las actividades del controlador de caché. </li></ul></ul><ul><ul><li>client_netmask: indica que parte de la IP de los clientes aparece en el log. </li></ul></ul>
  93. 93. SQUID <ul><li>Cache con aceleración. </li></ul><ul><li>Cuando un usuario hace petición hacia un objeto en Internet, este es almacenado en el cache de Squid. </li></ul><ul><li>Si otro usuario hace petición hacia el mismo objeto, y este no ha sufrido modificación alguna desde que lo accedió el usuario anterior, Squid mostrará el que ya se encuentra en el cache en lugar de volver a descargarlo desde Internet. </li></ul>
  94. 94. SQUID <ul><li>Esta función permite navegar rápidamente cuando los objetos ya están en el cache de Squid y además optimiza enormemente la utilización del ancho de banda. </li></ul><ul><li>En la sección HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parámetros: </li></ul><ul><ul><ul><li>httpd_accel_host virtual </li></ul></ul></ul><ul><ul><ul><li>httpd_accel_port 0 </li></ul></ul></ul><ul><ul><ul><li>httpd_accel_with_proxy on </li></ul></ul></ul>
  95. 95. SQUID <ul><li>/etc/squid/squid.conf: control de acceso </li></ul><ul><li>Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas maquinas en particular. </li></ul><ul><li>A cada lista se le asignará una Regla de Control de Acceso que permitirá o denegará el acceso a Squid. </li></ul><ul><li>Procedamos a entender como definir unas y otras. </li></ul>
  96. 96. SQUID <ul><li>/etc/squid/squid.conf: control de acceso </li></ul><ul><li>Regularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis: </li></ul><ul><li>acl [nombre de la lista] src [lo que compone a la lista] </li></ul>
  97. 97. SQUID <ul><li>Si uno desea establecer una lista de control de acceso que defina sin mayor trabajo adicional a toda la red local definiendo la IP que corresponde a la red y la máscara de la sub-red. </li></ul><ul><li>Por ejemplo, si se tienen una red donde las máquinas tienen direcciones IP 192.168.1.n con máscara de sub-red 255.255.255.0, podemos utilizar lo siguiente: </li></ul><ul><li>acl miredlocal src 192.168.1.0/255.255.255.0 </li></ul>
  98. 98. SQUID <ul><li>También puede definirse una Lista de Control de Acceso invocando un fichero localizado en cualquier parte del disco duro, y en el cual se en cuenta una lista de direcciones IP. Ejemplo: </li></ul><ul><ul><li>acl permitidos src &quot;/etc/squid/permitidos&quot; </li></ul></ul><ul><li>El fichero /etc/squid/permitidos contendría una lista de direcciones IP, con una por línea. </li></ul>
  99. 99. SQUID <ul><li>Reglas de Control de Acceso </li></ul><ul><li>Estas definen si se permite o no el acceso a Squid. </li></ul><ul><li>Se aplican a las Listas de Control de Acceso . </li></ul><ul><li>La sintaxis básica es la siguiente: </li></ul><ul><li>http_access [ deny o allow ] [lista de control de acceso] </li></ul>
  100. 100. SQUID <ul><li>Reglas de Control de Acceso </li></ul><ul><li>En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos : </li></ul><ul><li>http_access allow permitidos </li></ul>
  101. 101. SQUID <ul><li>También pueden definirse reglas valiéndose de la expresión ! , la cual significa excepción . Pueden definirse, por ejemplo, dos listas de control de acceso, una denominada lista1 y otra denominada lista2 , en la misma regla de control de acceso, en donde se asigna una expresión a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2 : </li></ul><ul><li>http_access allow lista1 !lista2 </li></ul>
  102. 102. SQUID <ul><li>Ejemplo: permitir solamente el uso de navegadores autorizados: </li></ul><ul><ul><li>acl OKBrowser browser ^Mozilla/5.0.* </li></ul></ul><ul><ul><li>acl OKBrowser browser ^Opera </li></ul></ul><ul><ul><li>deny_info err_bad_browser OKBrowser </li></ul></ul><ul><ul><li>http_access deny !OKBrowser </li></ul></ul>
  103. 103. SQUID <ul><li>Ejemplo: cortar la navegacion de ciertas paginas: </li></ul><ul><ul><li>acl filtro url_regex &quot;/etc/squid/paginas_cort&quot; </li></ul></ul><ul><ul><li>http_access deny filtro </li></ul></ul><ul><li>El archivo paginas_cort conterdrá una lista de urls a las que no queremos permitir el acceso. </li></ul>
  104. 104. SQUID <ul><li>¿Como se interrelaciona todo? ¿Como pasan los clientes por squid? </li></ul><ul><li>Cuando un cliente arranca, obtiene su dirección IP por medio del protocolo DHCP. Es el servidor el que le asigna esa dirección (el programa será dhcpd o dnsmasq, segun lo que tengamos instalado). </li></ul><ul><li>A la vez que la IP, se obtiene la ruta por defecto y el servidor DNS al que se debe preguntar. </li></ul><ul><li>Como ruta por defecto se fija la dirección del sevidor del centro. De este modo, todas las conexiones hacia Internet deben pasar por el servidor. </li></ul>
  105. 105. SQUID <ul><li>¿Como se interrelaciona todo? ¿Como pasan los clientes por squid? </li></ul><ul><li>El servidor actua de &quot;proxy transparente&quot;. Esto se llama asi porque no son los clientes los que deben indicar que quieren usar un proxy, sino que se hace automaticamente mediante redirección de puertos. </li></ul><ul><li>Cuando un paquete pasa por el servidor con puerto de destino 80, éste se intercepta y se redirige al puerto local del squid, para que sea procesado por éste. </li></ul>
  106. 106. SQUID <ul><li>¿Como se interrelaciona todo? ¿Como pasan los clientes por squid? </li></ul><ul><li>Esta redirección se hace en el fichero /etc/init.d/proxy, con esta regla: </li></ul><ul><ul><li>iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128 </li></ul></ul><ul><li>Indica que todos los paquetes con puerto destino TCP 80 sean redirigidos al puerto 3128. </li></ul>
  107. 107. SQUID <ul><li>/etc/init.d/proxy </li></ul><ul><ul><li>Este script hace la redireccion HTTP ya mencionada. </li></ul></ul><ul><ul><li>Antes, pone a 1 ip_forward (/proc/sys/net/ip_forward) para permitir el forwarding de paquetes (permitir que un paquete que no va dirigido a la máquina sea reenviado por otro interfaz) </li></ul></ul><ul><ul><li>También fuerza el uso de determinados servidores de correo. </li></ul></ul>
  108. 108. Systemimager <ul><li>Se trata de una herramienta que facilita la instalación y administración de toda una red local con máquinas Linux. </li></ul><ul><li>Podemos crear imágenes de todo un disco para posteriormente “pegarlas” en otro ordenador. </li></ul>
  109. 109. Systemimager <ul><li>Instalando systemimager-server: </li></ul><ul><li>Este paquete lo instalaremos, en principio, en un único equipo de nuestra red que actuará como servidor de imágenes y servirá para que otros equipos se actualicen o instalen desde él. </li></ul><ul><li>apt-get install systemimager-server </li></ul>
  110. 110. Systemimager <ul><li>Instalando systemimager-client en el golden-client </li></ul><ul><li>La documentación (y los comandos) del SystemImager se refieren al golden-client como a un equipo de nuestra red (que está perfectamente instalado y actualizado) que queremos utilizar como modelo para que los demás se sincronicen con él. </li></ul><ul><li>apt-get install systemimager-client </li></ul>
  111. 111. Systemimager <ul><li>En el golden-client ejecutaremos el comando: </li></ul><ul><ul><li>prepareclient --server ip_del_servidor </li></ul></ul><ul><li>Por ejemplo: </li></ul><ul><ul><li>prepareclient --server 192.168.0.78 </li></ul></ul><ul><li>La opción –server hace referencia al servidor de imágenes que vamos a usar. </li></ul>
  112. 112. Systemimager <ul><li>Si ejecutamos simplemente prepareclient se nos mostrará una ventana de ayuda recordándonos los otros parámetros. </li></ul><ul><li>Durante el proceso de creación de la imagen (que se almacena en el servidor) es recomendable no ejecutar ningún programa en el golden-client salvo prepareclient. </li></ul>
  113. 113. Systemimager <ul><li>En el servidor ejecutamos el comando </li></ul><ul><ul><li>getimage -golden-client ip_del_golden-client -image nombre_que_elijamos_de_la_imagen </li></ul></ul><ul><li>Por ejemplo: </li></ul><ul><ul><li>getimage -golden-client 192.168.0.13 -image linex2004 </li></ul></ul><ul><li>Si ejecutamos simplemente getimage se nos mostará una ventana de ayuda recordándonos los otros parámetros. </li></ul>
  114. 114. Systemimager <ul><li>Actualizando un equipo (cliente) de la red local. </li></ul><ul><li>Ahora queremos actualizar, usando la imagen del golden-client que hemos salvado en el servidor, otro equipo de la red local. </li></ul><ul><li>Para ello en primer lugar tendremos que instalar el paquete systemimager-client de la misma forma que lo hicimos en el golden-client. </li></ul>
  115. 115. Systemimager <ul><li>Una vez instalado el paquete, sólo necesitamos ejecutar el comando </li></ul><ul><ul><li>updateclient -server ip_del_servidor -image nombre_de_la_imagen </li></ul></ul><ul><li>Por ejemplo: </li></ul><ul><ul><li>updateclient -server 192.168.0.78 -image linex2004 </li></ul></ul>
  116. 116. Systemimager <ul><li>Es muy conveniente reiniciar el PC una vez haya sido actualizado, lo que se consigue automáticamente si ejecutamos: </li></ul><ul><ul><li>updateclient -server 192.268.0.78 -image linex2004;reboot </li></ul></ul><ul><li>Si ponemos halt en lugar de reboot, el equipo se apagará tras la actualización. </li></ul>
  117. 117. Systemimager <ul><li>Al actualizar un equipo de la red local desde la imagen de otro, por defecto se respeta (no se actualiza) el directorio /home y una serie de ficheros que contienen información específica de cada PC </li></ul><ul><li>Por ejemplo /etc/hostname, /etc/network/interfaces. </li></ul><ul><li>Estas opciones son configurables. Fichero: /etc/systemimager/updateclient.local.exclude </li></ul>
  118. 118. Systemimager <ul><li>Afinando el fichero updateclient.local.exclude </li></ul><ul><li>El fichero /etc/systemimager/updateclient.local.exclude contiene una lista de los ficheros y/o directorios que no se actualizarán al ejecutar updateclient . </li></ul><ul><li>Puede ser interesante ampliar esta lista (en el golden-client antes de salva la imagen): Además de los incluidos por defecto, podríamos plantearnos incluir: </li></ul><ul><ul><li>/etc/X11/XF86Config-4 si tenemos tarjetas gráficas o monitores diferentes en el aula </li></ul></ul><ul><ul><li>/etc/smb.conf si queremos compartir carpetas e impresoras con máquinas Windows </li></ul></ul><ul><ul><li>/etc/cups/* si queremos usar configuraciones de impresión diferente en cada máquina. </li></ul></ul>
  119. 119. Systemimager <ul><li>Actualizar un equipo sin updateclient: </li></ul><ul><ul><li>rsync -av --exclude=lost+found/ --numeric-ids 192.168.0.78::linex2004/ /mnt/hda2/ </li></ul></ul><ul><li>Una vez termine la transferencia de ficheros, ejecutamos chroot /mnt/hda2 para iniciar sesión en el sistema recien transferido. </li></ul><ul><li>Si hemos transferido el sistema a una partición diferente a la que usamos en el golden-client, tendremos que modificar los ficheros /etc/fstab y /boot/grub/menu.lst. </li></ul>
  120. 120. Systemimager <ul><li>CPIMAGE: </li></ul><ul><li>Realiza una copia de una imagen existente de systemimager. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>cpimage [-help] [-version] [-verbose] [-force] [-directory PATH] [-server HOSTNAME] [-ssh-user USERNAME] [SOURCE_IMAGE] [DESTINATION_IMAGE] </li></ul>
  121. 121. Systemimager <ul><li>CPIMAGE: </li></ul><ul><li>Realiza una copia de una imagen existente de systemimager. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>cpimage [-help] [-version] [-verbose] [-force] [-directory PATH] [-server HOSTNAME] [-ssh-user USERNAME] [SOURCE_IMAGE] [DESTINATION_IMAGE] </li></ul>
  122. 122. Systemimager <ul><li>LSIMAGE </li></ul><ul><li>Muestra una lista de imagenes contenidas en el servidor. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>lsimage [-help] [-version] [-server HOSTNAME] [-ssh-user USERNAME] </li></ul>
  123. 123. Systemimager <ul><li>MKAUTOINSTALLCD </li></ul><ul><li>Genera un cd autoarranque para poder realizar la actualizacion de un cliente. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>mkautoinstallcd [-help] [-version] [-arch ARCH] [-out-file PATH] [-flavor FLAVOR] [-kernel PATH] [-initrd PATH] [-append STRING] [-quiet] </li></ul>
  124. 124. Systemimager <ul><li>MKAUTOINSTALLDISKETTE </li></ul><ul><li>Crea un disco de autoarranque para actualizar los clientes. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>mkautoinstalldiskette [-help] [-version] [-quiet] [-floppy DEVICE] [-out-file PATH] [-flavor FLAVOR] [-kernel PATH] [-initrd PATH] [-append STRING] [-config PATH] [-ssh-key PATH] </li></ul>
  125. 125. Systemimager <ul><li>MVIMAGE </li></ul><ul><li>Mueve una imagen. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>mvimage [-help] [-version] [-verbose] [-force] [-directory PATH] [SOURCE_IMAGE] [DESTINATION_IMAGE] </li></ul>
  126. 126. Systemimager <ul><li>RMIMAGE </li></ul><ul><li>Borra una imagen. </li></ul><ul><li>Sintaxis: </li></ul><ul><li>rmimage [-help] [-version] [-verbose] [-force] [IMAGE] </li></ul>
  127. 127. Systemimager <ul><li>Instalando desde cero un equipo de la red (clonación con un disquete): </li></ul><ul><li>Queremos ahora instalar desde cero un PC de la red local, con hardware idéntico al equipo usado como golden-client, cuya imagen ha sido salvada en el servidor de imágenes. </li></ul><ul><li>Necesitamos configurar el servidor de imágenes para esta opción, ejecutando el comando: </li></ul><ul><ul><li>addclients </li></ul></ul>
  128. 128. Systemimager <ul><li>Tendremos que rellenar una serie de datos sobre los nombres y las IPs de los PC que vamos a generar por clonación. </li></ul><ul><ul><li>domain name: Nombre de dominio (domain name). Podemos usar cualquier nombre de dominio inexistente en Internet, como aula o el que nos haya indicado nuestro proveedor de Internet. </li></ul></ul><ul><ul><li>base host name: Prefijo por el que empiezan los nombres de nuestros PCs. Algo típico sería poner como prefijo pc </li></ul></ul><ul><ul><li>número inicial y número final . Si ponemos 12 y 27 respectivamente, el servidor esperará que se instalen los equipos llamados pc12, pc13, ... pc27 </li></ul></ul>
  129. 129. Systemimager <ul><li>Necesitamos también un diskette de 1.44 MB, que insertaremos en la disquetera del servidor de imágenes para ejecutar a continuación el comando: </li></ul><ul><li>mkautoinstalldiskette </li></ul><ul><li>Tenemos ahora un disquete de arranque que nos serviría tal como está si tenemos un servidor de DHCP. </li></ul>
  130. 130. Systemimager <ul><li>Si no tenemos un servidor DHCP existe un fichero llamado local.cfg el cual lo crearemos dentro del disco para que realice la clonación cuando arranque: </li></ul><ul><ul><li>HOSTNAME=pc23 </li></ul></ul><ul><ul><li>DOMAINNAME=aula </li></ul></ul><ul><ul><li>DEVICE=eth0 </li></ul></ul><ul><ul><li>IPADDR=192.168.0.23 </li></ul></ul><ul><ul><li>NETMASK=255.255.255.0 </li></ul></ul><ul><ul><li>NETWORK=192.168.0.0 </li></ul></ul><ul><ul><li>BROADCAST=192.168.0.255 </li></ul></ul><ul><ul><li>GATEWAY=192.168.0.1 </li></ul></ul><ul><ul><li>GATEWAYDEV=eth0 </li></ul></ul><ul><ul><li>IMAGESERVER=192.168.0.78 </li></ul></ul>

×