gnuLinex en los centros educativosIsmael Campos SurezAntonio Durn Terrs
Linex en los centros educativos
Configuracin de red: dnsmasq
Uso de permisos, usuarios y grupos
Archivos de autenticacin
Conceptos generales de PAM
Autenticacin con LDAP
Apt-cacher
Squid
Scripts de configuracin
Systemimager: conacin
dnsmasq
Realiza dos funciones principales:
Servidor de nombres DNS.
Servidor DHCP (Asignacin automtica de ip).
El servidor dnsmasq sustituye a el servidor de nombres bind y al servidor dhcp.
Se utiliza por la facilidad de instalacin, configuracin y por su simplicidad de uso.
dnsmasq
Fichero de configuracin:
/etc/dnsmasq.conf
Dnsmasq almacena la base de datos de todas las maquinas a las que ha asignado una direccin: IP,MAC y nombre DNS, aadiendo el tiempo que durar el prstamo de la direccin.
/var/lib/misc/dnsmasq.leases
dnsmasq
Opciones de configuracin en dnsmasq.conf:
domain-needed: No hace consultas de nombres locales a servidores DNS externos.
bogus-priv: No deja pasar consultas de direcciones que no pertenecen al espacio de direccionamiento.
expand-hosts: Aade automticamente el dominio a las entradas de un ficheros hosts.
dnsmasq
Opciones de configuracin en dnsmasq.conf:
domain: Indica tres cosas:
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.
Pone la opcin domain de DHCP.
Proporciona el dominio para la opcin expand-hosts.
Ejemplo:
domain=elbrocense.ex
dnsmasq
Opciones de configuracin en dnsmasq.conf:
dhcp-range: Rango de direcciones disponibles para arrendar, junto a un tiempo de arrendamiento opcional.
Ejemplo:
dhcp-range=172.19.232.31,172.19.235.254,255.255.252.0,infinite
Tenemos disponibles desde 172.19.232.31 hasta 172.19.235.254 (4 rangos) y el tiempo de arerndamiento es infinito.
dnsmasq
Opciones de configuracin en dnsmasq.conf:
dhcp-host: Asignaciones fijas de IP.
Ejempo:
dhcp-host= 00:10:DC:9C:E0:8E,ddprogramador-1,172.19.232.10
Asigna la direccion 172.19.232.10 al equipo con MAC 00:10:DC:9C:E0:8E, aadiendolo a la BD DNS con nombre ddporgramador-1.
dnsmasq
Opciones de configuracin en dnsmasq.conf:
dhcp-lease-max: Indica el nmero mximo de prstamos concurrentes.
dhcp-option: Especifica varios parmetros que el servidor DHCP entrega a los clientes. El formato general es:
dhcp-option=numero_opcion, direccion
Ejemplo. Asignar como ruta por defecto al servidor:
dhcp-option=3,172.21.232.2
dnsmasq
Opciones de configuracin en dnsmasq.conf:
dhcp-option: Especifica varios parmetros que el servidor DHCP entrega a los clientes.
Ejemplo. Asignar como servidor DNS al servidor:
dhcp-option=6,172.21.232.2
Tambin se pueden asignar otros parmetros menos comunes.
dnsmasq
Introduccin el la BD DNS de datos sobre mquinas que no obtienen su direccin por medio de dhcp.
Por ejemplo, queremos asignar un alias al servidor, para poder referirnos a l como www.
Editamos el fichero /etc/hosts del servidor y aadimos la entrada correspondiente:
172.21.232.2 www.elbrocense.ex www
Luego reiniciamos dnsmasq.
dnsmasq
Dignostico
El servidor dnsmasq atiende peticiones DNS y DHCP, por lo que realiza dos servicios muy difrenciados, usando puertos separados para cada uno de ellos.
# netstat --inet -nlp|grep dnsmasq
tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 303/dnsmasq
udp 0 0 0.0.0.0:32768 0.0.0.0:* 303/dnsmasq
udp 0 0 0.0.0.0:53 0.0.0.0:* 303/dnsmasq
udp 0 0 0.0.0.0:67 0.0.0.0:* 303/dnsmasq
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 303/dnsmasq
dnsmasq
Dignostico
Cuando un equipo arranca, debe obtner su IP por DHCP. Para comprobar que lo ha hecho correctamente:
#ifconfig
El servidor DHCP asigna al servidor del centro como servidor DNS por defecto. Para comprobar que funciona correctamente:
#host nombre_maquina
Permisos, usuarios y grupos
Cada archivo pertenece a un usuario.
Cada archivo pertenece a un grupo.
Cada archivo tiene asignados permisos, que definen el acceso al mismo para el dueo, los miembros del grupo y el resto de los usuarios del sistema.
Para cada rol, se usan tres bits para codificar los permisos. Cuando el bit est a uno, el permiso est concedido.
Permisos, usuarios y grupos
# ls -al list
-rw-r--r-- 1 root root 324 2005-11-08 22:40 list
Para cada uno de los roles (propietario, miembros del grupo, resto de usuarios) se definen tres permisos:
r: lectura
w: escritura
x: ejecucin
Permisos, usuarios y grupos
El permiso de ejecucin 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.
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.
Permisos, usuarios y grupos
Cambio de propietario de un archivo: chown
#chown usuario[:grupo] archivo
Asigna propietario [y grupo] a archivo.
#chown aduran:profesor list
Para cambiar el propietario de un directorio recursivamente y de sus contenidos:
#chown -R aduran directorio/
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
#chmod modo fichero
chmod cambia los permisos de cada fichero dado segn modo, que puede ser o bien una representacin simbolica de los cambios a realizar, o bien un nmero octal que representa el patrn de bits de los nuevos permisos.
Ejemplos:
#chmod u=rwx list
#chmod 700 list
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo simblico:
[ugoa][+-=][rwxXst]
Dividido en tres partes:
[ugoa] Indica a que permisos se aplica el cambio:
u: user
g: grupo
o: otros
a: todos (all)
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo simblico:
[ugoa][+-=][rwxXst]
Dividido en tres partes:
[+-=] Indica como es el cambiop a aplicar en los permisos:
+ : Indica que se aaden permisos
- : Indica que se quitan permisos
= : Indica que se asignan esos permisos, eliminandose los no indicados.
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo simblico:
[ugoa][+-=][rwxXst]
Dividido en tres partes:
[rwxXst] Representa el tipo de permiso aplicado.
r: lectura
w: escritura
x: ejecucin
X: ejecucin solamente si el fichero es un directorio o ya tiene permiso de ejecucin para algn usuario
s: activar el bit SUID o SGID para ejecucin
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo simblico:
[ugoa][+-=][rwxXst]
Dividido en tres partes:
[rwxXst] Representa el tipo de permiso aplicado.
s: activar el bit SUID o SGID para ejecucin
Este permiso sustituye al de ejecucin:
$ls -al /usr/bin/passwd
-rwsr-xr-x 1 root root 26616 2004-11-26 07:30 /usr/bin/passwd
Indica que el programa se ejecutar con los permisos del propietario/grupo del archivo.
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo simblico:
[ugoa][+-=][rwxXst]
Dividido en tres partes:
[rwxXst] Representa el tipo de permiso aplicado.
t: sticky (pegajoso). Originalmente se usaba para que el texto del programa se mantuviese en la swap. Hoy en da, 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 comn.
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo nmerico:
Formado por entre 1 y 4 dgitos octales formados mediante la adiccin de los bits de valores 4, 2 y 1. Los dgitos que faltan se toman como ceros inicales.
El primer dgito selecciona los bits SUID (4), SGID (2) y Sticky (1).
Los tres restantes seleccionan permisos de lectura (4), escritura (2) y ejecucin (1) para usuario, grupo y resto de usuarios.
Muy rpido una vez conocido.
Permisos, usuarios y grupos
Cambio de permisos de un archivo: chmod
modo nmerico:
Cada bit representa un permiso:
r w x
1 0 0: Permiso de lectura: 4
0 1 0: Permiso de escritura: 2
0 0 1: Permiso de ejecucin: 1
Asignar todos los permisos al propietario y ninguno a los dems:
#chmod 700 archivo
Archivos de autenticacin
/etc/passwd
Fichero de texto que contiene una lista de las cuentas del sistema, proporcionando para cada una cieta informacin til como el identificador de usuario y de grupo, el directorio personal del usuario, etc.
Antes tambin contena las claves cifradas de los usuarios.
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.
Archivos de autenticacin
/etc/passwd
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 contraseas almacenadas.
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.
Archivos de autenticacin
/etc/passwd
Hay una entrada por cada lnea, cada una con el siguiente aspecto:
cuenta:contrasea:UID:GID:GECOS:directorio:intrprete
cuenta: nombre de usuario
contrasea: un * si usamos shadow passwords.
UID: Nmero ID del usuario.
GID: Nmero ID del grupo primario para este usuario.
GECOS: Usualmente nombre completo del usuario.
Archivos de autenticacin
/etc/passwd
Hay una entrada por cada lnea, cada una con el siguiente aspecto:
cuenta:contrasea:UID:GID:GECOS:directorio:intrprete
directorio: directorio base del usuario ($HOME)
programa que debe ejecutarse cuando el usuario ingresa.
Archivos de autenticacin
/etc/shadow
Contiene las contraseas cifradas de los usuarios, y opcionalemente, informacin sobre el envejecimiento de las cuentas.
Contiene:
Nombre de usuario
Clave cifrada
Informacin sobre cuadno se cambi la contrasea por ltima vez o cuando debe ser cambiada para que no se desactive la cuenta.
Archivos de autenticacin
/etc/group
Fichero de grupos de usuarios
Es un fichero de texto que define los grupos a los cules pertenecen los usuarios del sistema. Hay una entrada por linea, con el siguiente formato:
nombre_grupo:contrasea:GID:lista_usuarios
nombre_grupo: nombre del grupo
contrasea: Si est vaca, no se usa contrasea.
GID: Nmero ID del grupo.
lista_usuarios: los nombres de usuarios de los miembros, separados por comas.
Archivos de autenticacin
Comprobacin de ficheros
pwck
Verifica la integridad de los ficheros passwd y shadow.
Cada entrada se comprueba para ver que tiene todos los campos requeridos en el formato correcto.
Se pregunta al usuario si desea eliminar las entradas que tienen errores incorregibles.
Debemos usarlo si tenemos problemas para cambiar una contrasea.
Archivos de autenticacin
Comprobacin de ficheros
grpck
Verifica la integridad de los ficheros grupo y gshadow.
Cada entrada se comprueba para ver que tiene todos los campos requeridos en el formato correcto.
Se pregunta al usuario si desea eliminar las entradas que tienen errores incorregibles.
Debemos usarlo si tenemos poblemas al ejecutar useradd, usermod y comandos relacionados, ya que normalmente el error suele ser un nombre de grupo repetido.
PAM
PAM = Pluggable Authentication Modules
Coleccin de libreras que permiten al administrador elegir como se autenticarn los usuarios.
Permite cambiar la autenticacin que usan las aplicaciones PAM sin necesidad de recompilarlas.
PAM
Objetivo: separar el SW dedicado a otorgar privilegios del SW dedicado a desarrollar sistemas de autenticacin seguros y apropiados.
Configuracin:
/etc/pam.conf
/etc/pam.d/
Mdulos: /lib/security
PAM
PAM trata con cuatro tipos de tareas:
Gestin de autenticacin
Gestin de cuentas
Gestin de sesines
Gestin de contraseas
PAM
Configuracin
Una entrada por lnea en /etc/pam.conf
nombre_servicio tipo_modulo flag_control path_modulo args
nombre_servicio
El nombre del servicio asociado a la entrada. Suele ser el nombre del programa.
Puede ser 'other' para indicar una opcin por omisin para los programas que no tienen entrada especfica.
PAM
Configuracin
tipo_modulo
Uno de los 4 tipos de mdulos actuales:
auth
account
session
password
PAM
Tipos de mdulo
auth
Proporciona dos aspectos de la autenticacin de usuarios. Primero establece que el usuario es quien dice ser. Segundo, puede otorgar mebresas de grupo independientemente del fichero /etc/groups, u otros privilegios.
PAM
Tipos de mdulo
account. Se encarga de la gestin de cuentas no relacionada con la autenticacin. Suele usarse para permitir/denegar accesos basandose en la hora/da, recursos del sistema disponibles o la localizacin del usuario (por ej: root slo puede hacer login en la consola)
PAM
Tipos de mdulo
session. Principalmente este mdulo se encarga de las cosas que se deben hacer por el usuario antes/despus de que se le conceda el servicio. Estas actividades se refieren, por ejemplo, a la escritura de informacin de registro sobre la apetura/cierre de sesiones, el montaje de directorios, etc.
PAM
Tipos de mdulo
password. Es necesario para actualizar los tokens utilizados para la autenticacin. Normalmente hay uno para cada mdulo del tipo auth.
PAM
Configuracin
bandera de control
Se utiliza para indicar como reaccionar la librera PAM al tener xito o fracaso el mdulo al que est asociada.
Como los mdulos pueden ser apilados, la bandera de control representa la importancia relativa de cada mdulo.
La aplicacin no recibe el resultado de mdulos individuales, sino slo un resultado de la librera.
PAM
Configuracin
bandera de control
2 formas de especificar la bandera de control. Vemos slo la simple (la que usamos en los IES).
Representamos la bandera de control con una sola palabra que indica la severidad de un acierto o fracaso en el mdulo. Las cuatro opciones son:
required, requisite, sufficient, optional e include.
PAM
Configuracin
bandera de control
required: Indica que es necesario el xito de este mdulo.
requisite: como required, sin embargo si falla no se siguen ejecutando ms modulos.
suffcient: El xito de ste mdulo se considera como suficiente para conceder el permiso.
optional: No es crtico para el xito o fracaso de la aplicacin.
PAM
Configuracin
bandera de control
include: Indica al sistema PAM que incluya los contenidos del fichero indicado.
path_modulo
Ruta hacia el mdulo.
args
Argumentos que se pasan al mdulo.
PAM
Configuracin basada en directorios
Ms flexible
Usa los ficheros de /etc/pam.d
Cada fichero tiene el nombre de un servicio, que corresponde con la configuracin para ese servicio.
Formato de las lneas de cada fichero:
tipo_modulo bandera_control path_modulo args
PAM
Configuracin basada en directorios. Ventajas:
Menos propensa al error.
Ms facil de mantener.
Permite enlazar ficheros.
Ms rpido.
Mejor gestin de permisos.
Facilita la administracin de paquetes.
PAM
Configuracin basada en directorios.
Ficheros comunes:
common-account
common-auth
common-password
common-session
PAM
Configuracin
Argumentos opcionales generales:
debug: informacin de debug en los logs.
no_warn: no dar mensajes de aviso a la aplicacin.
use_first_pass: El mdulo no debe pedir una contrasea al usuario. En cambio, debe usar la contrasea introducida anteriormente en el primer mdulo de tipo auth. Si no funciona, el acceso ser denegado.
PAM
Configuracin
Argumentos opcionales generales:
try_first_pass: El mdulo debe intentar la autentiaccin con la contrasea introducida anteriormente. Si no funciona, se pide otra contrasea al usuario.
expose_account: da mas informacin al usuario sobre las cuentas.
PAM
Ejemplos de common-auth
Versin 1:
auth sufficient pam_unix.so
auth sufficient pam_ldap.so user_first_pass
Versin 2:
auth sufficient pam_unix.so
auth required pam_ldap.so user_first_pass
PAM
Ejemplos
Versin 3:
auth required pam_nologin.so
auth required pam_env.so
auth required pam_unix_auth.so
PAM
Descripcin de los mdulos
pam_unix: Mdulo de autenticacin estandar. Ficheros passwd y shadow.
pam_ldap: Autentiacin contra directorios LDAP.
pam_nologin: Encargdo de la funcionalidad Unix nologin.
pam_env: Para asignar valores a variables de entorno.
pam_unix_auth: Mdulo de autenticacin estandar.
Autenticacin con LDAP
LDAP: Lightweight Directory Access Protocol.
LDAP es un protocol de acceso a un servicio de directorio.
Basicamente es como una base de datos, pero organizado jerrquicamente y basado en atributos.
Al usar autenticacin 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.
Autenticacin con LDAP
El servicio de directorio LDAP se basa en un modelo cliente-servidor.
Uno o ms servidores LDAP contienen los datos que conforman el rbol del directorio LDAP o base de datos troncal.
El cliente ldap se conecta con el servidor LDAP y le hace una consulta.
El servidor contesta con la respuesta correspondiente, o bien con una indicacin de dnde puede el cliente hallar ms informacin (normalmente otro servidor LDAP).
Autenticacin con LDAP
El modelo de informacin de LDAP est basado en entradas. Una entrada es una coleccin de atributos que tienen un nico y global Nombre Distinguido (DN).
El DN se utiliza para referirse a una entrada sin ambigedades. Cada atributo de una entrada posee un tipo y uno o ms valores.
Los tipos son normalmente palabras nemotcnicas, como cn para common name, o mail para una direccin de correo.
La sintaxis de los atributos depende del tipo de atributo. Por ejemplo, un atributo cn puede contener el valor Sergio Gonzlez.
Autenticacin con LDAP
En LDAP, las entradas estn organizadas en una estructura jerrquica en rbol.
Tradicionalmente, esta estructura reejaba los lmites geogrcos y organizacionales.
Las entradas que representan pases aparecen en la parte superior del rbol.
Debajo de ellos, estn las entradas que representan los estados y las organizaciones nacionales.
Autenticacin con LDAP
Debajo de ests, pueden estar las entradas que representan las unidades organizacionales, empleados, impresoras, documentos o todo aquello que pueda imaginarse.
Autenticacin con LDAP
Autenticacin con LDAP
Programa servidor: slapd
Configuracin: /etc/ldap/slapd.conf
Para conocer todas las opciones:
$man 5 slapd.conf
Opciones importantes:
replogfile: Fichero de logs del servidor.
loglevel: Nivel de detalle en los logs.
database: estilo de BD. Usamos ldbm.
Autenticacin con LDAP
Programa servidor: slapd
Configuracin: /etc/ldap/slapd.conf
Opciones importantes:
sufix: La base del directorio.
directory: donde se almacena fisicamente la BD.
access: indican permisos para diferentes acciones y usuarios.
Autenticacin con LDAP
Control de acceso. Indica:
Atributos a los que se concede acceso.
A que usuarios ser permite cada acceso.
El tipo de acceso concedido.
Vemos ejemplos en los ficheros de configuracin proporcionados.
Autenticacin con LDAP
Para importar y exportar informacin 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 "LDAP interchange format", formato de intercambio de LDAP).
Un fichero LDIF almacena informacin en jerarquas de entradas orientadas a objeto.
Autenticacin con LDAP
Fragmento de fichero ldif:
dn: uid=root,ou=People,dc=elbrocense,dc=ex
uid: root
cn::cm9vdA==
objectClass: account
objectClass: posixAccount
objectClass: top
objectClass: shadowAccount
userPassword: {crypt}$1$btERS/EE$l6bMnEg3Yiyt4g0D7u6Yq.
shadowLastChange: 12809
shadowMax: 99999
Autenticacin con LDAP
Actualizacin del directorio en los I.E.S.
Actualizacin por phpldapadmin
Los cambios slo se aplican al directorio LDAP.
Acceso por web
Actualizacin de la BD local de usuarios y grupos del servidor, y posterior migracin de los datos al directorio LDAP.
Los cambios se hacen en LDAP y en la BD local del servidor.
Acceso por consola: migrar
Autenticacin con LDAP
Actualizacin del directorio en los I.E.S.
/usr/bin/migrar
Script encargado de realizar la migracin de datos de la BD local del servidor al directorio LDAP.
Pasos:
Construir ficheros ldif a partir de la BD de usuarios y grupos del servidor:
migrate_passwd.pl y migrate_group.pl
Hacer el trasvase de informacin al directorio LDAP:
ldapadd, ldapmodify
Autenticacin con LDAP
Actualizacin del directorio en los I.E.S.
/usr/bin/migrar
Aade los nuevos usuarios creados.
Aade los nuevos grupos creados.
NO modifica los atributos de usuarios o grupos que ya estn creados.
/usr/bin/migrar2
Cambio de ldapadd por ldapmodify en la migracin de grupos, para aplicar los cambios. No en los usuarios.
Autenticacin con LDAP
Configuracin en los clientes
Instalacin del software necesario. Antes de poder autenticar a los usuarios a travs de un servidor LDAP, es necesario instalar algunas utilidades en el cliente, como pam_ldap y nss_ldap.
pam_ldap permite hacer uso de un servidor LDAP para la autenticacin de usuarios (comprobacin de claves) a aquellas aplicaciones que utilicen PAM.
Autenticacin con LDAP
Configuracin en los clientes
Instalacin del software necesario.
nss-ldap permite a un servidor LDAP actuar como un servidor de nombres. Esto significa que provee la informacin de las cuentas de usuario, los IDs de los grupos, la informacin de la mquina, los alias, los grupos de red y bsicamente cualquier cosa que normalmente se obtiene desde los archivos almacenados bajo /etc o desde un servidor NIS.
Autenticacin con LDAP
Configuracin en los clientes
/etc/nsswitch.conf
nsswitch.conf es el fichero de configuracin de las Bases de Datos del Sistema y del sistema de Conmutacin de los Servicios de Nombres (Name Service Switch).
En otras palabras, es un archivo que indica el orden y el procedimiento a seguir para la bsqueda de la informacin requerida, por ejemplo, para hacer bsquedas de hosts o usuarios.
Autenticacin con LDAP
Configuracin en los clientes
/etc/nsswitch.conf
La forma de configurar este archivo es muy simple:
Primero se especifica la base de datos sujeta a la bsqueda(primera columna) seguida del procedimiento que se va a emplear para realizar una bsqueda sobre la misma(columnas siguientes).
De esta forma, basta con configurar el procedimiento de bsqueda para que haga uso de LDAP en algn momento.
Autenticacin con LDAP
Configuracin en los clientes
/etc/libnss-ldap.conf
Configuracin del servidor LDAP al que el cliente conectar. Opciones:
host: Indica la direccin del servidor LDAP.
base: Nombre distinguido de la base de bsqueda.
ldap_version: Nmero de versin LDAP a usar.
binddn: Nombre distinguido con el que hacer bind al servidor.
Autenticacin con LDAP
Configuracin en los clientes
/etc/libnss-ldap.conf
Configuracin del servidor LDAP al que el cliente conectar. Opciones:
bindpw: Las credenciales con las que hacer bind.
/etc/pam-ldap.conf
Mismo contenido que libnss-ldap.conf
Nueva opcin: pam_password. Indica el cifrado a realizar por el cliente antes de enviar la contrasea.
Autenticacin con LDAP
Funcionamiento del protocolo LDAP
Cliente -> ServidorBIND REQUEST
Servidor -> Cliente BIND RESULT
Cliente -> ServidorSEARCH REQUEST
Servidor -> ClienteSEARCH ENTRY
Servidor -> Cliente SEARCH RESULT
Mas informacin: RFC 2251
Autenticacin con LDAP
Funcionamiento del protocolo LDAP
Operacin BIND.
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.
Si el par usuario/contrasea suministrada al servidor no coincide con las credenciales definidas para hacer bind (en slapd.conf), no se permitir el acceso.
Autenticacin con LDAP
Funcionamiento del protocolo LDAP
Operacin SEARCH REQUEST
El cliente pide informacin al servidor
Operacin SEARCH ENTRY
El servidor entrega informacin al cliente
Operacin SEARCH RESULT
El servidor indica al cliente el resultado de la operacin de bsqueda.
APT-CACHER
Apt-cacher responde a la pregunta de cmo hacer una cache de los paquetes de Debian del apt-get para varios ordenadores en la misma red y as minimizar el trfico de la lnea a Internet y al mismo tiempo acelerar las actualizaciones.
La respuesta (una de ellas) es usar el apt-cacher.
APT-CACHER
El principio de funcionamiento es muy sencillo.
El apt-cacher es un script en Perl que se ejecuta como CGI en el Apache, con el URL http://servidor_cache/apt-cacher/.
Luego hay que cambiar los URLs del sources.list de los clientes en la misma red para que apunten al URL anterior.
APT-CACHER
El servidor de paquetes "original" se enva como "argumento" del URL, por ejemplo:
http://SERVIDOR/apt-cacher/ftp.us.debian.org/debian/
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 enva directamente al cliente.
Como los paquetes Debian de distintas versiones tienen nombres diferentes, no hay posibilidades de conflictos.
APT-CACHER
Para instalar basta con un apt-get install apt-cacher.
Este paquete tiene dependencias con apache, perl y wget, por lo que los instalar si no lo tenis.
Una vez instalado, lo nico que hay que hacer es ajustar los parmetros por defecto del script, eso se hace en el fichero /etc/apt-cacher/apt-cacher.conf.
APT-CACHER
Para verificar que funciona, podis acceder desde cualquier navegador a vuestro servidor al url http://SERVIDOR/apt-cacher/ y tenis que ver una pgina donde se os muestra la configuracin.
APT-CACHER
Configuracin del servidor
Ficheros en /etc/apt-cacher
apache.conf: valores de configuracin que Apache debe usar al tratar con el directorio de apt-cacher. Es un fichero .htaccess normal y corriente.
apt-cacher.conf: Configuracin de apt-cacher.
APT-CACHER
apt-cacher.conf
cache_dir: directorio donde almacenar los paquetes.
allowed_hosts: rango de direcciones a las que se permite usar apt-cacher.
generate_reports: Generar informes cada 24 horas. Se pueden consultar en http://SERVIDOR/apt-cacher/report
APT-CACHER
apt-cacher.conf
clean_cache: limpiar la cache cada 24 horas. No nos interesa.
logdir: Directorio de logs.
expire_hours: horas que se mantiene una lista de paquetes sin refrescarla.
limit: Limitacin del ancho de banda usado.
APT-CACHER
Configuracin de los clientes
Ahora lo nico que hay que hacer es modificar los sources.list de los clientes para que pasen a travs del servidor.
Hay que aadir a cada lnea del sources.list, el servidor donde tenemos instalado apt-cacher y adems tener cuidado que todos hagan referencia a los mismos servidores, sino el cache no tendr efecto.
APT-CACHER
Configuracin de los clientes
Originales:
deb http://www.linex.org/sources/linex/debian sarge linex main contrib non-free
Modificados:
deb http://SERVIDOR/apt-cacher/www.linex.org/sources/linex/debian sarge linex main contrib non-free
SQUID
Squid se usa como proxy-cache en los I.E.S. para dar salida a internet a todos los puestos.
Entre otras cosas, Squid puede hacer Proxy y cache con los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cache transparente, WWCP, aceleracin HTTP, cache de consultas DNS y otras muchas ms como filtracin de contenido y control de acceso por IP y por usuario.
SQUID
Para instalar squid:
apt-get -y install squid
Fichero de configuracion:
/etc/squid/squid.conf
SQUID
/etc/squid/squid.conf
http_port: Puerto en el que escucha squid.
cache_mem: cantidad de memoria que Squid puede usar para ciertas funciones internas.
cache_swap_low y cache_swap_high: controlan el reemplazo de objetos en cache, cuando se va llenando.
SQUID
/etc/squid/squid.conf
maximum_object_size: los objetos de tamao mayor que ste, no sern almacenados en la cach.
cache_dir: directorio donde se almacena la cach.
cache_access_log: log de accesos.
SQUID
/etc/squid/squid.conf
cache_log: Log general
cache_store_log: informacin sobre las actividades del controlador de cach.
client_netmask: indica que parte de la IP de los clientes aparece en el log.
SQUID
Cache con aceleracin.
Cuando un usuario hace peticin hacia un objeto en Internet, este es almacenado en el cache de Squid.
Si otro usuario hace peticin hacia el mismo objeto, y este no ha sufrido modificacin 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.
SQUID
Esta funcin permite navegar rpidamente cuando los objetos ya estn en el cache de Squid y adems optimiza enormemente la utilizacin del ancho de banda.
En la seccin HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parmetros:
httpd_accel_host virtual
httpd_accel_port 0
httpd_accel_with_proxy on
SQUID
/etc/squid/squid.conf: control de acceso
Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas maquinas en particular.
A cada lista se le asignar una Regla de Control de Acceso que permitir o denegar el acceso a Squid.
Procedamos a entender como definir unas y otras.
SQUID
/etc/squid/squid.conf: control de acceso
Regularmente una lista de control de acceso se establece siguiendo la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista]
SQUID
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 mscara de la sub-red.
Por ejemplo, si se tienen una red donde las mquinas tienen direcciones IP 192.168.1.n con mscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:
acl miredlocal src 192.168.1.0/255.255.255.0
SQUID
Tambin 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:
acl permitidos src "/etc/squid/permitidos"
El fichero /etc/squid/permitidos contendra una lista de direcciones IP, con una por lnea.
SQUID
Reglas de Control de Acceso
Estas definen si se permite o no el acceso a Squid.
Se aplican a las Listas de Control de Acceso.
La sintaxis bsica es la siguiente:
http_access [deny o allow] [lista de control de acceso]
SQUID
Reglas de Control de Acceso
En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos:
http_access allow permitidos
SQUID
Tambin pueden definirse reglas valindose de la expresin !, la cual significa excepcin. 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 expresin a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:
http_access allow lista1 !lista2
SQUID
Ejemplo: permitir solamente el uso de navegadores autorizados:
acl OKBrowser browser ^Mozilla/5\.0.*
acl OKBrowser browser ^Opera
deny_info err_bad_browser OKBrowser
http_access deny !OKBrowser
SQUID
Ejemplo: cortar la navegacion de ciertas paginas:
acl filtro url_regex "/etc/squid/paginas_cort"
http_access deny filtro
El archivo paginas_cort conterdr una lista de urls a las que no queremos permitir el acceso.
SQUID
Como se interrelaciona todo? Como pasan los clientes por squid?
Cuando un cliente arranca, obtiene su direccin IP por medio del protocolo DHCP. Es el servidor el que le asigna esa direccin (el programa ser dhcpd o dnsmasq, segun lo que tengamos instalado).
A la vez que la IP, se obtiene la ruta por defecto y el servidor DNS al que se debe preguntar.
Como ruta por defecto se fija la direccin del sevidor del centro. De este modo, todas las conexiones hacia Internet deben pasar por el servidor.
SQUID
Como se interrelaciona todo? Como pasan los clientes por squid?
El servidor actua de "proxy transparente". Esto se llama asi porque no son los clientes los que deben indicar que quieren usar un proxy, sino que se hace automaticamente mediante redireccin de puertos.
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.
SQUID
Como se interrelaciona todo? Como pasan los clientes por squid?
Esta redireccin se hace en el fichero /etc/init.d/proxy, con esta regla:
iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3128
Indica que todos los paquetes con puerto destino TCP 80 sean redirigidos al puerto 3128.
SQUID
/etc/init.d/proxy
Este script hace la redireccion HTTP ya mencionada.
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 mquina sea reenviado por otro interfaz)
Tambin fuerza el uso de determinados servidores de correo.
Systemimager
Se trata de una herramienta que facilita la instalacin y administracin de toda una red local con mquinas Linux.
Podemos crear imgenes de todo un disco para posteriormente pegarlas en otro ordenador.
Systemimager
Instalando systemimager-server:
Este paquete lo instalaremos, en principio, en un nico equipo de nuestra red que actuar como servidor de imgenes y servir para que otros equipos se actualicen o instalen desde l.
apt-get install systemimager-server
Systemimager
Instalando systemimager-client en el golden-client
La documentacin (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 dems se sincronicen con l.
apt-get install systemimager-client
Systemimager
En el golden-client ejecutaremos el comando:
prepareclient --server ip_del_servidor
Por ejemplo:
prepareclient --server 192.168.0.78
La opcin server hace referencia al servidor de imgenes que vamos a usar.
Systemimager
Si ejecutamos simplemente prepareclient se nos mostrar una ventana de ayuda recordndonos los otros parmetros.
Durante el proceso de creacin de la imagen (que se almacena en el servidor) es recomendable no ejecutar ningn programa en el golden-client salvo prepareclient.
Systemimager
En el servidor ejecutamos el comando
getimage -golden-client ip_del_golden-client -image nombre_que_elijamos_de_la_imagen
Por ejemplo:
getimage -golden-client 192.168.0.13 -image linex2004
Si ejecutamos simplemente getimage se nos mostar una ventana de ayuda recordndonos los otros parmetros.
Systemimager
Actualizando un equipo (cliente) de la red local.
Ahora queremos actualizar, usando la imagen del golden-client que hemos salvado en el servidor, otro equipo de la red local.
Para ello en primer lugar tendremos que instalar el paquete systemimager-client de la misma forma que lo hicimos en el golden-client.
Systemimager
Una vez instalado el paquete, slo necesitamos ejecutar el comando
updateclient -server ip_del_servidor -image nombre_de_la_imagen
Por ejemplo:
updateclient -server 192.168.0.78 -image linex2004
Systemimager
Es muy conveniente reiniciar el PC una vez haya sido actualizado, lo que se consigue automticamente si ejecutamos:
updateclient -server 192.268.0.78 -image linex2004;reboot
Si ponemos halt en lugar de reboot, el equipo se apagar tras la actualizacin.
Systemimager
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 informacin especfica de cada PC
Por ejemplo /etc/hostname, /etc/network/interfaces.
Estas opciones son configurables. Fichero: /etc/systemimager/updateclient.local.exclude
Systemimager
Afinando el fichero updateclient.local.exclude
El fichero /etc/systemimager/updateclient.local.exclude contiene una lista de los ficheros y/o directorios que no se actualizarn al ejecutar updateclient.
Puede ser interesante ampliar esta lista (en el golden-client antes de salva la imagen): Adems de los incluidos por defecto, podramos plantearnos incluir:
/etc/X11/XF86Config-4 si tenemos tarjetas grficas o monitores diferentes en el aula
/etc/smb.conf si queremos compartir carpetas e impresoras con mquinas Windows
/etc/cups/* si queremos usar configuraciones de impresin diferente en cada mquina.
Systemimager
Actualizar un equipo sin updateclient:
rsync -av --exclude=lost+found/ --numeric-ids 192.168.0.78::linex2004/ /mnt/hda2/
Una vez termine la transferencia de ficheros, ejecutamos chroot /mnt/hda2 para iniciar sesin en el sistema recien transferido.
Si hemos transferido el sistema a una particin diferente a la que usamos en el golden-client, tendremos que modificar los ficheros /etc/fstab y /boot/grub/menu.lst.
Systemimager
CPIMAGE:
Realiza una copia de una imagen existente de systemimager.
Sintaxis:
cpimage [-help] [-version] [-verbose] [-force] [-directory PATH] [-server HOSTNAME] [-ssh-user USERNAME] [SOURCE_IMAGE] [DESTINATION_IMAGE]
Systemimager
CPIMAGE:
Realiza una copia de una imagen existente de systemimager.
Sintaxis:
cpimage [-help] [-version] [-verbose] [-force] [-directory PATH] [-server HOSTNAME] [-ssh-user USERNAME] [SOURCE_IMAGE] [DESTINATION_IMAGE]
Systemimager
LSIMAGE
Muestra una lista de imagenes contenidas en el servidor.
Sintaxis:
lsimage [-help] [-version] [-server HOSTNAME] [-ssh-user USERNAME]
Systemimager
MKAUTOINSTALLCD
Genera un cd autoarranque para poder realizar la actualizacion de un cliente.
Sintaxis:
mkautoinstallcd [-help] [-version] [-arch ARCH] [-out-file PATH] [-flavor FLAVOR] [-kernel PATH] [-initrd PATH] [-append STRING] [-quiet]
Systemimager
MKAUTOINSTALLDISKETTE
Crea un disco de autoarranque para actualizar los clientes.
Sintaxis:
mkautoinstalldiskette [-help] [-version] [-quiet] [-floppy DEVICE] [-out-file PATH] [-flavor FLAVOR] [-kernel PATH] [-initrd PATH] [-append STRING] [-config PATH] [-ssh-key PATH]
Systemimager
MVIMAGE
Mueve una imagen.
Sintaxis:
mvimage [-help] [-version] [-verbose] [-force] [-directory PATH] [SOURCE_IMAGE] [DESTINATION_IMAGE]
Systemimager
RMIMAGE
Borra una imagen.
Sintaxis:
rmimage [-help] [-version] [-verbose] [-force] [IMAGE]
Systemimager
Instalando desde cero un equipo de la red (clonacin con un disquete):
Queremos ahora instalar desde cero un PC de la red local, con hardware idntico al equipo usado como golden-client, cuya imagen ha sido salvada en el servidor de imgenes.
Necesitamos configurar el servidor de imgenes para esta opcin, ejecutando el comando:
addclients
Systemimager
Tendremos que rellenar una serie de datos sobre los nombres y las IPs de los PC que vamos a generar por clonacin.
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.
base host name: Prefijo por el que empiezan los nombres de nuestros PCs. Algo tpico sera poner como prefijo pc
nmero inicial y nmero final. Si ponemos 12 y 27 respectivamente, el servidor esperar que se instalen los equipos llamados pc12, pc13, ... pc27
Systemimager
Necesitamos tambin un diskette de 1.44 MB, que insertaremos en la disquetera del servidor de imgenes para ejecutar a continuacin el comando:
mkautoinstalldiskette
Tenemos ahora un disquete de arranque que nos servira tal como est si tenemos un servidor de DHCP.
Systemimager
Si no tenemos un servidor DHCP existe un fichero llamado local.cfg el cual lo crearemos dentro del disco para que realice la clonacin cuando arranque:
HOSTNAME=pc23
DOMAINNAME=aula
DEVICE=eth0
IPADDR=192.168.0.23
NETMASK=255.255.255.0
NETWORK=192.168.0.0
BROADCAST=192.168.0.255
GATEWAY=192.168.0.1
GATEWAYDEV=eth0
IMAGESERVER=192.168.0.78