administration(sles10) 2[www informatica-practica es mw]

132
1 SuSE Linux Enterprise Server 10 Administración Temario 1.- Instalación de SLES 10 2.- Sistemas de ficheros 3.- Seguridad y usuarios 4.- Configuración manual de la red 5.- Procesos y servicios 6.- Monitorización 7.- Inicio del sistema 8.- Manejo de software 9.- Copias de seguridad 10.- Sistema de impresión 11.- Acceso remoto

Upload: anon-37745

Post on 06-Jun-2015

1.228 views

Category:

Documents


3 download

DESCRIPTION

Manual de administración de Suse Linux Enterprise Server 10

TRANSCRIPT

Page 1: Administration(SLES10) 2[www informatica-practica es mw]

1

SuSE Linux

Enterprise Server 10

Administración

Temario

1.- Instalación de SLES 10

2.- Sistemas de ficheros

3.- Seguridad y usuarios

4.- Configuración manual

de la red

5.- Procesos y servicios

6.- Monitorización

7.- Inicio del sistema

8.- Manejo de software

9.- Copias de seguridad

10.- Sistema de

impresión

11.- Acceso remoto

Page 2: Administration(SLES10) 2[www informatica-practica es mw]

2

TEMA 5

Administración de procesos

y de servicios

Objetivos

Ver y manejar procesos Automatización de tareas

Page 3: Administration(SLES10) 2[www informatica-practica es mw]

3

Procesos

Linux es un sistema multitarea que permite la ejecución de varios procesos “a la vez”, repartiendo el tiempo de procesador entre ellos.

Un proceso es la instancia de un comando o programa en ejecución .

Cada proceso tiene un identificador PID y un PPID (Proceso padre que creo el proceso).

Se pueden visualizar con ps y top . Un proceso reside en memoria y tiene una

prioridad .

Arbol de Procesos

Los procesos que corren en Linux están organizados en forma de árbol.

Demonio (4)Demonio (2)

Demonio (8) Demonio (7)

Demonio (3)

Login de usuario (10)

Shell Bash (12)

Procesos (13) Procesos (16)Procesos (15)

Init (1)

Page 4: Administration(SLES10) 2[www informatica-practica es mw]

4

‘foreground’ y ‘background’

Los comandos en una shell pueden ser ejecutados de 2 formas : foreground : no liberan la línea de comandos

hasta que finalizan. background : permiten manejar la linea de

comandos nada más ejecutarlos (se ejecutan segundo plano).

Se consigue añadiendo un '&' tras el comando :

# comando &�Con nohup desligamos el proceso del terminal desde donde es lanzado

# nohup comando &

Comandos bg, fg, jobs y <Ctrl><z> jobs : Visualiza todos los trabajos que han sido lanzados

por la shell y se ejecutan en background asignándoles un número.

<Ctrl><z> : Para un proceso que se esté ejecutando en foreground.

bg : Continua un programa parado en background. fg : Continua un programa parado en foreground o trae a

foreground un programa que se estaba ejecutando en background.NOTA: Los procesos no asignados a un terminal (ej.: los lanzados automáticamente en el momento del arranque) no pueden ser influenciados por estos comandos.

octopus2:~ # cat<Ctrl><Z>[1]+ Stopped catoctopus2:~ # jobs[1]+ Stopped catoctopus2:~ # bg 1[1]+ cat &octopus2:~ # fg 1cat

Page 5: Administration(SLES10) 2[www informatica-practica es mw]

5

Comando ps (1/3) ps : Process status. Visualiza los procesos de usuario y del sistema. Algunas opciones :

-a : Muestra los procesos de todos los usuarios. -u : Muestra el usuario. -x : Muestra procesos sin un terminal asociado. -l : Salida larga, proporciona más información. -w : No trunca líneas. f : Lista procesos en forma de árbol.

pstree : Muestra los procesos en forma de árbol.[octopus2:~ # ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT STARTTIME COMMANDroot 1 0.0 0.0 448 232 ? S 08:38 0:05 initroot 2 0.0 0.0 0 0 ? SW 08:38 0:00 [keventd]root 3 0.0 0.0 0 0 ? SW 08:38 0:00 [kapmd]root 4 0.0 0.0 0 0 ? SWN 08:38 0:00 [ksoftirqd_CPU0]root 5 0.0 0.0 0 0 ? SW 08:38 0:00 [kswapd]root 8 0.0 0.0 0 0 ? SW 08:38 0:00 [kinoded]root 9 0.0 0.0 0 0 ? SW 08:38 0:00 [mdrecoveryd]root 12 0.0 0.0 0 0 ? SW 08:38 0:00 [kreiserfsd]root 69 0.0 0.0 0 0 ? SW< 08:38 0:00 [lvm-mpd]root 384 0.0 0.2 1356 608 ? S 08:39 0:00 /sbin/syslogd -aroot 387 0.0 0.5 2276 1444 ? S 08:39 0:00 /sbin/klogd -c 1root 423 0.0 0.0 0 0 ? SW 08:39 0:00 [khubd]bin 485 0.0 0.1 1304 488 ? S 08:39 0:00 /sbin/portmap

Comando ps (2/3)

octopus2:~ # ps -axl

F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND

0 0 1 0 15 0 448 232 schedu S ? 0:05 init

0 0 2 1 15 0 0 0 contex SW ? 0:00 [keventd]

0 0 3 1 15 0 0 0 schedu SW ? 0 :00 [kapmd]

0 0 4 1 34 19 0 0 ksofti SWN ? 0 :0 [ksoftirqd_CP

0 0 5 1 25 0 0 0 kswapd SW ? 0:00 [k swapd]

0 0 9 1 25 0 0 0 md_thr SW ? 0:00 [mdrecoveryd]

0 0 12 1 15 0 0 0 schedu SW ? 0:00 [kreiserfsd]

0 0 69 1 0 -20 0 0 down_i SW< ? 0:00 [lvm-mpd]

0 0 384 1 15 0 1356 608 schedu S ? 0:00 /sbin/syslogd

0 0 387 1 15 0 2276 1444 syslog S ? 0:00 /sbin/klogd -

0 0 423 1 16 0 0 0 ? SW ? 0:00 [khubd

Page 6: Administration(SLES10) 2[www informatica-practica es mw]

6

Comando ps (3/3)

Algunos de los campos de información dados por ps : UID : Identificador de usuario. PID: Identificador de proceso. PPID: identificador del proceso padre. TTY: Terminal asignado (? si no tiene). PRI: Prioridad. NI: (nice) número que influye en el ajuste dinámico de la prioridad. SIZE: memoria utilizada por el proceso. STAT: status del proceso. Algunas posibilidades :

R: Runnable. El proceso se está ejecutando. S: Sleeping. Esperando por un evento externo. D: Uninterruptable sleep. Similar a S, pero el proceso no puede ser

terminado. T: Stopped. El proceso está parado. Z: Zombi. El proceso ha terminado pero no ha podido ser

eliminado. TIME: Tiempo de proceso utilizado. COMMAND: nombre del comando.

Prioridades La prioridad de un proceso es un número entre 0 (la

más alta ) y 39 (la más baja ), esto determinará la cantidad de tiempo de CPU que recibirá el proceso.

Con top ó ps axl podemos ver estos valores. Los procesos se ejecutan con una prioridad por

defecto que depende del sistema (15 en general). La prioridad de un proceso es variada

dinámicamente por el sistema basándose en diversos parámetros (ej.: cuánto tiempo de proceso ya han consumido, su status actual ...) que intentan garantizar la estabilidad del sistema .

A través del los comandos nice y renice podemos “influir” en la prioridad con la que se ejecuta un proceso. El valor final, no obstante, será calculado por el sistema.

Page 7: Administration(SLES10) 2[www informatica-practica es mw]

7

Comandos nice y renice

Prioridad

0 max.

39 min.

15 defecto nice/renice

-20 max.

19 min.

0 defecto

nice : permite lanzar un comando o programa alterando la prioridad con la que se ejecutará. Ej:

#nice --15 vi ---> -15

#nice -15 vi ---> +15 renice : Permite modificar la prioridad de un proceso que ya está siendo ejecutado :

#renice -10 -p 12455 ---> -10 Sólo root puede dar valores negativos a nice/renice => aumentar la prioridad.

Comando top Visualiza en tiempo real los procesos. Algunas ordenes que admite :

r (renice) : Asigna un nuevo valor nice a un proceso. k (kill) : Manda una señal de terminación a un proceso. N,P,M : Ordena procesos de acuerdo PID, CPU utilizada o memoria

(residente) consumida. R: orden inverso. F : Para ordenar por cualquier campo. f : Para añadir más campos. q: Salir.

Page 8: Administration(SLES10) 2[www informatica-practica es mw]

8

Comando kill

A un programa en ejecución se le pueden mandar señales. La sintaxis es kill - señal PID , Ej :

#kill -SIGTERM 12484 kill por defecto manda una señal de finalización

(SIGTERM 15). También podemos especificar el número correspondiente

en lugar del nombre de la señal. kill –l muestra todas las posibles señales. Algunas señales:

SIGHUP (1): Rearranca el proceso. SIGINT (2): Interrupción desde teclado <Ctrl><c> SIGKILL (9) : Finaliza el proceso inmediatamente. SIGTERM (15): Termina el proceso de forma controlada. SIGCONT (18): Continúa un proceso parado por STOP. STOP (19) : Para un proceso <Ctrl><z>

Comando killall

Mata un programa indicando el nombre del proceso.

La sintaxis es killall proceso , Ej : # killall xeyes

Page 9: Administration(SLES10) 2[www informatica-practica es mw]

9

Utilidad gnome-system-monitor Para monitorizar los procesos y la carga del sistema mediante una aplicación gráfica

Ordenador -> Más aplicaciones -> gnome-system-monitor

Daemons

Disk And Execution Monitor. Son procesos que se ejecutan en

background => Independientes del terminal (? en la columna TTY de un ps x )

Normalmente se arrancan a la vez que el sistema haciendo disponibles diferentes servicios.

Otras veces son arrancados por un Super-daemon como el inetd o xinetd .

Algunos son reconocibles como tales por que su nombre termina en d (syslogd , httpd ).

Page 10: Administration(SLES10) 2[www informatica-practica es mw]

10

Control de daemons Los demonios, normalmente, pueden ser controlados a

través de su script correspondientes bajo : /etc/init.d/

Suelen soportar una serie de parámetros estánda r a la hora de invocarlos : start, stop, restart, reload, status.. .

A menudo sus ficheros de configuración residen bajo : /etc/

Ej.;/etc/init.d/cron, /etc/crontab

/etc/init.d/httpd, /etc/httpd/httpd.conf

/etc/init.d/syslog/, /etc/syslog.conf

Podemos dividirlos en 2 tipos: Signal-controlled daemons: Tienden a estar siempre activos(ej.:cupsd )

Interval-controlled daemon: Activo a ciertos intervalos ( ej.:cron o atd )

Práctica

Ejercicio 5-1: Manejo de procesos Linux (pag 5-2 del manual de prácticas)

Page 11: Administration(SLES10) 2[www informatica-practica es mw]

11

Objetivos

Ver y manejar procesos Automatización de tareas

Automatización de tareas

cron : tareas periódicas. at : tareas puntuales.

Page 12: Administration(SLES10) 2[www informatica-practica es mw]

12

cron

Los trabajos realizados periódicamente por el sistema son realizados por el servicio cron .

Se ejecuta como un demonio y comprueba cada minuto si hay algo definido para ese momento.

Existen 2 tipos de crons : De usuario. De sistema.

Crons de usuario

Pueden ser creados por cualquier usuario, que no este deshabilitado para ello, con el comando crontab -e .

Este guión se almacena en /var/spool/cron/tabs/ con permisos para root.

Otras opciones para trabajar con el comando son : crontab -l : lista el contenido del guión del usuario

que lo ejecute ( añadiendo -u user , root puede ver el de cualquier usuario ).

crontab -r : borrar el guión existente del usuario que lo ejecute.

El guión tiene líneas con el siguiente formato :minutos(0-59) horas(0-23) Día_del_mes(1-31) mes(1-1 2) día_sem(0-7)* comando_a_ejecutar* = 0 y 7

=domingo

Page 13: Administration(SLES10) 2[www informatica-practica es mw]

13

Permisos Se definen los usuarios que no pueden

tener crons en : /var/spool/cron/deny (existe por

defecto) El resto podrán tenerlos a no ser que

exista un fichero : /var/spool/cron/allow En cuyo caso sólo los usuarios que figuren

aquí podrán hacerlo. Si ninguno de estos ficheros existe, sólo

root puede introducir trabajos.

Crons del sistema

Vienen con la distribución o son añadidos por root . Se pueden agregar con siguiente formato.1. Introduciendo una línea en el fichero /etc/crontab con

formato : minutos(0-59) horas(0-23) Día_del_mes(1-31) mes(1-12) día_sem(0-7) user comando_a_ejecutar

2. Poniendo ficheros con el formato anterior bajo /etc/cron.d/

3. Poniendo el script o comando directamente bajo alguno de los directorios :

/etc/cron.daily /etc/cron.hourly /etc/cron.monthly/etc/cron.weekly Con lo cual no es necesario ningún guión con el formato

crontab . Si se apaga el sistema, al reiniciarlo se ejecutarán las

tareas pendientes en estos 4 directorios.

Page 14: Administration(SLES10) 2[www informatica-practica es mw]

14

/etc/crontab

SHELL=/bin/sh

PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bi n

MAILTO=root

#

# check scripts in cron.hourly, cron.daily, cron.we ekly, and cron.monthly

#

-*/15 * * * * root test -x /usr/lib/cron/run-cro ns && /usr/lib/cron/run-crons >/dev/null 2>&1

59 * * * * root rm -f /var/spool/cron/lastrun /cron.hourly

14 0 * * * root rm -f /var/spool/cron/lastrun /cron.daily

29 0 * * 6 root rm -f /var/spool/cron/lastrun /cron.weekly

44 0 1 * * root rm -f /var/spool/cron/lastrun /cron.monthly

at

Permite lanzar trabajos a una hora determinada para que se ejecuten una sola vez.

El servicio atd debe estar arrancado. Controla los permisos de ejecución con

la pareja de ficheros. /etc/at.deny (existe por defecto). /etc/at.allow

Page 15: Administration(SLES10) 2[www informatica-practica es mw]

15

Introducción de trabajos con at Los comandos son introducidos linea por línea ejecutando at hora

# at 03:50

warning: commands will be executed using /bin/sh

at> /tmp/trabajo1

at> /tmp/trabajo2

at> <EOT>

job 1 at 2004-10-14 03:50

También : hora : now + N (minutes, houres, days, weeks). La ordenes a ejecutar pueden ser pasadas como un script por la

entrada estándar.# at now + 1 minute < /var/tmp/hola

warning: commands will be executed using /bin/sh

job 2 at 2004-10-14 09:48

atq : muestra los trabajos definidos actualmente.

atrm : permite borrar trabajo(por su número).

Práctica

Ejercicio 5-2: Programación de tareas con cron y at (pag 5-6 del manual de prácticas)

Page 16: Administration(SLES10) 2[www informatica-practica es mw]

16

TEMA 6

Monitorización

Objetivos

Monitorizar un SLES 10 Utilización de los servicios de log Monitorización del acceso al sistema

Page 17: Administration(SLES10) 2[www informatica-practica es mw]

17

Monitorizar un SLES 10

Vamos a ver las herramientas necesarias para responder a preguntas como: ¿Arrancó el sistema normalmente? ¿Cuál es la versión del kernel? ¿Qué servicios se están ejecutando? ¿Cuál es la carga del sistema?

Información sobre el arranque Los mensajes del sistema originados por el kernel y sus

módulos durante el arranque pueden dar pistas que permitan resolver problemas . Estos mensajes se mantienen dentro de un buffer circular que puede ser visto con el comando dmesg

Esta información junto a la salida los scripts ejecutados durante el arranque se almacenan en el fichero /var/log/boot.msg y pueden ser visualizados a través de YaST -> Miscelanea -> Ver el log de arranque

Page 18: Administration(SLES10) 2[www informatica-practica es mw]

18

Información sobre el hardware: /proc/ El directorio /proc te permite, entre muchas otras cosas,

ver información del hardware instalado. Este directorio esta almacenado en el espacio de memoria RAM reservado para el kernel.

Algunos de los ficheros disponibles son : /proc/cpuinfo : información del procesador. /proc/interrupts : IRQ's asignadas. /proc/dma : canales DMA utilizados. /proc/bus/pci/devices : dispositivos PCI. /proc/scsi/scsi : dispositivos SCSI. /proc/bus/usb/devices : dispositivos USB.

Información sobre el hardware: comandos (1/3)

hwinfo : informacion detallada del hardware del sistema hwinfo --short para obtener un resumen

hdparm : permite visualizar y modificar parámetros del disco duro.(no funciona con discos SCSI o SATA) hdparm -I /dev/hda : Muestra información proporcionada por el disco duro (sólo ATA/IDE)

hdparm /dev/hda :lista los el valor actual de los parámetros modificables

fdisk : particionador de discos. fdisk -l /dev/hda : Muestra la tabla de particiones actual

Page 19: Administration(SLES10) 2[www informatica-practica es mw]

19

Información sobre el hardware: comandos (2/3)

iostat : Muestra estadísticas sobre le uso de la CPU y de las transferencias de entrada/salida con los dispositivos. El paquete sysstat debe estar instalado.

iostat -c : Sólo información de la CPU

iostat -d : Sólo información de los dispositivos

iostat N : Da información a intervalos de N segundos. El primer informe es la media desde el arranque del sistema

En cuanto a los informes de consumo de CPU: %user : Procesos ejecutados a nivel de usuario

%nice : Procesos ejecutados a nivel de usuario con prioridad nice

%system : Procesos a nivel de sistema (kernel)

%iowait : Tiempo de espera de la CPU por operaciones de entrada/salida

%steal : Espara debida a que el hypervisor está atendiendo otro procesador virtual

%idle : Tiempo durante el cual la CPU está ociosa (tampoco esperando por E/S)

Información sobre el hardware: comandos (3/3)

lspci , lsusb , lsscsi : muestra información sobre los buses pci, USB y SCSI.

siga : System Information GAthering. Herramienta de SuSE que muestra información detallada del sistema. Por defecto invoca al navegador en texto w3m para mostrar el informe.

sitar : System InformaTion At Runtime. Muestra información del sistema utilizando Perl y leyendo el directorio /proc . Por defecto muestra su salida en varios formatos bajo un directorio en /tmp

Page 20: Administration(SLES10) 2[www informatica-practica es mw]

20

Información sobre procesos y sistema

uname : Nos muestra la versión del Kernel , el nombre de la máquina , el microprocesador para el que el kernel fue creado, la fecha del kernel, arquitectura , ...

# uname -a

Linux mabsLinux 2.6.11.4-20a-default #1 Wed Mar 23 21:52:37 UTC 2005 i686 i686 i386 GNU/Linux

uptime : Da información sobre : Tiempo que lleva arrancado Número de usuarios Carga del sistema : media de procesos esperando en

la cola en un momento determinado (últimos 1, 5 y 15 minutos)

# uptime

10:58AM funcionando 3 days 21:53, 3 users, carga promedio: 0,01, 0,03, 0,00

Información sobre procesos y sistema

netstat : Nos permite ver el estado de las conexiones, rutas e interfaces en un host.

Parámetros : n : Suprime la traducción de nombres. t : Sólo muestra conexiones TCP. u : Sólo muestra conexiones UDP. p : Muestra el pid/nombre del programa que ha abierto la conexión. a : Muestra todos los sockes, también los que no tienen conexiones

activas e: Amplia la información r : Muestra la tabla de rutas.# netstat -natpActive Internet connections (servers and establishe d)

Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name

tcp 0 0 0.0.0.0:111 0.0.0.0 :* LISTEN 4316/portmap

tcp 0 0 0.0.0.0:631 0.0.0.0 :* LISTEN 5091/cupsd

tcp 0 0 127.0.0.1:25 0.0.0.0 :* LISTEN 5223/master

tcp 0 0 127.0.0.1:1054 127.0.0 .1:427 TIME_WAIT -

tcp 0 0 :::22 :::* LISTEN 4596/sshd

...

Page 21: Administration(SLES10) 2[www informatica-practica es mw]

21

Información sobre procesos y sistema

xosview muestra el estado de varios parámetros del sistema (Utilización de CPU, carga media, utilización de memoria, utilización de swap, utilización de red, interrupciones)

Para lanzarlo ejecutar en un terminal del entorno gráfico xosview

Monitorización del espacio en disco El Monitor de Sistema Gnome proporciona a través de su pestaña Dispositivos información similar a la que nos proporciona el comando df y du

Ordenador -> Más aplicaciones -> Sistema -> Monitor del sistema Gnome

Page 22: Administration(SLES10) 2[www informatica-practica es mw]

22

Práctica

Ejercicio 6-1: Recolección de información sobre SLES 10 (pag 6-2 del manual de prácticas)

Objetivos

Monitorizar un SLES 10 Utilización de los servicios de log Monitorización del acceso al sistema

Page 23: Administration(SLES10) 2[www informatica-practica es mw]

23

syslog-ng New Generation Syslog Es un daemon utilizado por muchos servicios para registrar eventos. De esta forma el loggin de todos ellos puede ser configurado de forma centralizada

A diferecia de versiones pasadas de syslogd, syslog-ng permite filtrar mensajes en función del contenido de los mismos (no sólo por el servicio que lo generó y su prioridad)

Sus ficheros de configuración principales son: /etc/sysconfig/syslog /etc/syslog-ng/syslog-ng.conf.in /etc/syslog-ng/syslog-ng.conf

/etc/sysconfig/syslog

Contiene parámetros generales que pueden ser válidos tanto para syslog-ng como syslogd (caso de que se emplease)

Entre otra cosas contiene: Parámetros que se pasan durante el arranque al servicio

Si se genera automáticamente el fichero /etc/syslog-ng/syslog-ng.conf a partir de /etc/syslog-ng/syslog-ng.conf.in

Page 24: Administration(SLES10) 2[www informatica-practica es mw]

24

/etc/syslog-ng/syslog-ng.conf.in

Si está habilitado, SuSEconfig genera el fichero /etc/syslog-in/syslog-in.conf a partir de el.

Tiene la misma sintaxis que /etc/syslog-in/syslog-in.conf

Si se introducen cambios manuales deberán ser siempre en este fichero para que no sean machacados.

Después de introducir los cambios ejecutamos:SuSEconfig --module syslog-ng

/etc/syslog-ng/syslog-ng.conf:Facilities Hace referencia al subsistema que genera el mensaje

Categorías disponibles para el usuario.local0-local7

Sistema UUCP.uucp

Mensajes a nivel de usuario. Utilizado por login por ejemplo.user

Mensajes internos del propio syslog.syslog

Sistema de news.news

Sistema de correo.mail

demonio de impresión.lpr

Todos los mensajes del kernel.kern

demonios del sistema que no tienen su propia categoría.

daemon

cron y at.cron

Utilizado por PAM (Pluggable Authentication Modules).authpriv

Utilizado por ssh entre otros.auth

Page 25: Administration(SLES10) 2[www informatica-practica es mw]

25

/etc/syslog-ng/syslog-ng.conf:Priorities La prioridad da detalles sobre la urgencia del mensaje

genera la mayor cantidad de log. Debería ser utilizada con cuidado.debug

Mensajes puramente informativos.info

Mensajes que describen estados normales del sistema que deben ser tenidos en cuenta.notice

Mensajes que muestran desviaciones sobre el comportamiento normal.warning

Error.err

Condición crítica para el program que lo muestra.crit

El administrador del sistema es requerido inmediatamente.alert

El sistema no es usable (es demasiado tarde).emerg

/etc/syslog-ng/syslog-ng.conf.in: fileter, destination, log

...

filter f_local4debug { level(debug) and facility(lo cal4); };

filter f_local4info { level(info) and facility(loca l4); };

filter f_local4 {facility(local4) and match (“ERROR :”); };

destination local4debug { file("/var/log/local4.deb ug"); };

destination local4info { file("/var/log/local4.info "); };

destination local4 { file("/var/log/local4"); };

log { source(src) ; filter(f_local4debug) ; destination (local4debug); } ;

log { source(src) ; filter(f_local4info) ; destination (local4info) ; };

log { source(src) ; filter(f_local4 ); destination (local4) ; };

...

Page 26: Administration(SLES10) 2[www informatica-practica es mw]

26

/etc/syslog-ng/syslog-ng.conf.in: src

fsource src {

#

# include internal syslog-ng messages

# note: the internal() soure is required!

#

internal();

# the following line will be replaced by th e

# socket list generated by SuSEconfig using

# variables from /etc/sysconfig/syslog:

#

unix-dgram("/dev/log");

#

# uncomment to process log messages from ne twork:

#

#udp(ip("0.0.0.0") port(514));

};

Ficheros de log importantes (1/2)

/var/log/messages Es el log principal del sistema y donde se debería acudir a ver cuando algo no funcione correctamente (tail -f /var/log/messages )

/var/log/audit/audit.log Log de AppArmor

/var/log/cups/ Directorio que almacena los logs del sistema de impresión

/var/log/YaST2/ Log para YaST

/var/log/boot.msg Mensajes producidos durante el arranque

Page 27: Administration(SLES10) 2[www informatica-practica es mw]

27

Ficheros de log importantes (2/2) /var/log/mail

Mensajes producidos por el servicios de correo Debido a la cantidad de mensajes que se pueden originar estos se suelen dividir en los siguiente ficheros: / var/log/mail.err, /var/log/mail.inf , /var/log/mail.warn

/var/log/wtmp Fichero binario que contiene información de quien se ha logeado en el sistema, desde donde y durante cuanto tiempo. Su información puede ser consultada con el comando last

/var/log/lastlog Fichero binario que contiene información sobre cuando fue la última vez que se logearon los usuarios del sistema Puede ser consultado con lastlog

Rotación de logs Es importante asegurar que los logs no alcanzan tamaños

mayores de lo que podemos almacenar. Por esta razón el tamaño y edad de cada log puede ser

monitorizado automáticamente por el programa /usr/sbin/logrotate .

logrotate es ejecutado diariamente por el cron (/etc/cron.daily/logrotate ).

El programa comprueba los ficheros configurados en /etc/logrotate.conf .

Cada fichero puede tener aquí sus propios parámetros que indiquen, por ejemplo : Que el log debe ser comprimido o borrado a intervalos

regulares o cuando determinados tamaños son alcanzados.

Cuantas versiones de los ficheros comprimidos se deben conservar durante cuanto tiempo.

Page 28: Administration(SLES10) 2[www informatica-practica es mw]

28

/etc/logrotate.conf : Parámetros generales# Ejemplo de fichero. Mantiene parámetros globales o por defecto así como# definiciones exclusivas para alguna ficheros# see "man logrotate" for details# Los logs son rotados o reemplazados una vez por semanaweekly # Se conservan 4 versiones (=>4 semanas) de los ficheros viejosrotate 4# En ese caso el fichero antiguo es salvado con otro nombre creándose uno nuevo vacíocreate# La opción de compresión está desactivada#compress# Descomentar para comprimir con bzip2#compresscmd /usr/bin/bzip2#uncompresscmd /usr/bin/bunzip2# Los paquetes RPM pueden dejar aquí info. especifica de sobre sus necesidadesinclude /etc/logrotate.d# Opción para rotación log para last or wtmp#/var/log/wtmp {# monthly# create 0664 root utmp# rotate 1#}# Otros log específicos de sistema se podrían incluir aquí

/etc/logrotate.d/syslog# Ejemplo de fichero con parámetros específicos

/var/log/mail /var/log/warn /var/log/messages /var/ log/allmessages /var/log/localmessages /var/log/firewall {

compress

dateext # Para renombrar el fichero utiliza una fecha en lugar de un simple número

maxage 365 # log log rotados se borran en 365 días

rotate 99 # 99 versiones

missingok # Si el fichero no existe no da error

notifempty # si está vacío no se rota

size +4096k

create 644 root root # Permisos para los nuevos ficheros

sharedscripts

postrotate # ejecución de script post rotación

/etc/init.d/syslog reload

endscript

}

}

Page 29: Administration(SLES10) 2[www informatica-practica es mw]

29

Práctica

Ejercicio 6-2: Manejo de los logs del sistema (pag 6-4 del manual de prácticas)

Objetivos

Monitorizar un SLES 10 Utilización de los servicios de log Monitorización del acceso al sistema

Page 30: Administration(SLES10) 2[www informatica-practica es mw]

30

who

Los siguientes comandos nos ayudan a detectar actividades sospechosas en nuestro sistema

who Muestra que usuarios hay logeados actualmente en el sistema, indicando su hora de conexión y desde donde lo hacen - H: añade cabeceras

-r : da el nivel de ejecución actual

-a : Muestra toda la información# who -H

NOMBRE LÍNEA TIEMPO COMENTARIO

root :0 2007-04-19 07:51

root pts/0 2007-04-19 08:12 (192.168.3.1 39)

root pts/1 2007-04-19 08:49 (192.168.3.1 39)

geeko pts/2 2007-04-19 10:09 (dhcp15.afin a.es)

w

Muestra usuarios actualmente logeados y carga del sistema

# w

10:21:57 up 2:32, 4 users, load average: 0,00, 0 ,00, 0,00

USER TTY LOGIN@ IDLE JCPU PCPU WHAT

root :0 07:51 ?xdm? 1:34 2.44s /opt /gnome/bin/gnome-session

root pts/0 08:12 1:17m 0.65s 0.65s -bas h

root pts/1 08:49 0.00s 0.48s 0.03s w

geeko pts/2 10:09 12:19 0.23s 0.23s -bas h

LOGIN@: Tiempo que lleva durando el login

IDLE : Tiempo que la sesión lleva sin tener actividad

JCPU: Tiempo que han utilizado todos los procesos asignados al terminal (no incluye trabajos en background ya pasados)

PCPU:Tiempo utilizado por el proceso nombra en el campo WHAT

Page 31: Administration(SLES10) 2[www informatica-practica es mw]

31

finger

Muestra información sobre los usuarios locales: Login, nombre completo, terminal, tiempo sin actividad, tiempo logeado, desde donde

-l : Listado largo# finger

Login Name Tty Idle Login Time Where

geeko geeko pts/2 29 Thu 10:09 dhcp15.afina.es

root root *:0 - Thu 07:51

root root pts/0 1:34 Thu 08:12 192.168.3.139

root root pts/1 - Thu 08:49 192.168.3.139

last

Muestra la información en /var/log/wtmp con todos los logins realizados en el sistema así como los reinicios del mismo

Se puede especificar un nombre de usuario o terminal para restringir la información

# last

root pts/0 192.168.3.139 Thu Apr 19 0 8:12 still logged in

root :0 Thu Apr 19 0 7:51 still logged in

reboot system boot 2.6.16.21-0.8-de Thu Apr 19 0 5:59 (04:50)

root pts/0 192.168.3.139 Wed Apr 18 0 5:06 - 05:06 (00:00)

geeko :0 Wed Apr 18 0 5:02 - down (10:27)

...

Page 32: Administration(SLES10) 2[www informatica-practica es mw]

32

lastlog

Muestra la información en /var/log/lastlog con el último login realizado por cada usuario del sistema

-u login : Para limitar la información a un sólo usuario

# lastlog

Nombre Puerto Último

at **Nunca ha entrado **

bin **Nunca ha entrado **

...

root pts/1 jue abr 19 08:49:5 8 +0200 2007

...

geeko pts/2 jue abr 19 10:09:3 8 +0200 2007

faillog

Muestra la información en /var/log/faillog con los logins fallidos realizado por cada usuario (cuando se produce un éxito el contador se reinicia)

-u login : Para limitar la información a un sólo usuario

-m N : Establece un número de N intentos fallidos antes de bloquear la cuenta

Para su funcionamiento debemos configurar el uso del módulo pam_tally.so en cada fichero de configuración PAM de las aplicaciones que lo vayan a utilzar (bajo /etc/pam.d/ ): login , xdm, gdm ...

Page 33: Administration(SLES10) 2[www informatica-practica es mw]

33

TEMA 7

Inicio del sistema

Objetivos

Proceso de arranque. GRUB. Manejo de niveles de ejecución

Page 34: Administration(SLES10) 2[www informatica-practica es mw]

34

La BIOS y el MBR1. El procesador busca al final de la memoria del sistema , el programa contenido en la BIOS y lo ejecuta. La BIOS no solo controla el primer paso del proceso de arranque sino que también proporciona el interfaz de más bajo nivel con los periféricos . Por esta razón reside en una memoria de sólo lectura siempre disponible.

2. La BIOS procede a comprobar el sistema , buscando entre los dispositivos uno con un sistema de arranque . Una vez encontrado, carga cualquier programa que se encuentre en el pri mer sector del disco (Master Boot Record (MBR)) en memoria. El MBR tiene sólo 512 bytes y contiene, junto con la tabla de particiones, las instrucciones de código máquina necesarias para seguir el arranque. La BIOS, entonces, cede el control a este programa, que representa el primer paso de GRUB o LILO (gestores de arranque).

El gestor de arranque

3. El paso 1 o MBR localiza el paso 2 del gestor de arranque (GRUB o LILO) y carga su primera parte en memoria.4. Una vez cargado el paso 2 , éste muestra un menú gráfico con las opciones disponibles por el usuario.5. Tras seleccionar la opción (ejecutada por defecto o por el usuario), se localiza a través de ésta el kernel ( normalmente bajo el directorio /boot ).

Page 35: Administration(SLES10) 2[www informatica-practica es mw]

35

Initrd y kernel6. (Opcional) Si el kernel necesita cargar módulos adicionales para poder acceder a hardware involucrado en el arranque , se lanza la generación de un disco imagen en memoria RAM, denominado initrd (formato initramfs).

7. El filesystem root es montado y el gestor de arranque pasa el control al kernel, para que continue el proceso de arranque. En la llamada al kernel se le pueden pasar parámetros que determinarán su comportamiento y el de otros programas invocados por él (ej.: init ).

init

8. Con el acceso al filesystem root habilitado, el kernel ejecuta un script llamado init dentro del filesystem initrd. Este script se encarga de localizar y lanzar, desde la partición root recien montada, el primer programa (PID=1) /sbin/init .

/sbin/init controlará el resto del proceso de arranque y, cuando ocurra, la parada del sistema.

Page 36: Administration(SLES10) 2[www informatica-practica es mw]

36

Diagrama de arranque

BIOS Boot Manager (GRUB)

kernel

init(antes linuxrc)

Initrd(initramfs)

modulesInitrd(initramfs)

Initrd(initramfs)

/sbin/initSI no existe initrd, los drivers para montar el

sistema de ficheros raiz estan dentro del kernel.

Se carga en memoria

Se carga en memoria

Si existe initrd, continua la carga por

el.

Se cargan los módulosSe ejecuta...

Se descarga de memoria

Generación de initrd

El initrd es creado con los módulos necesarios para acceder al file system.

Estos módulos se determinan por la directiva INITRD_MODULES dentro del fichero /etc/sysconfig/kernel

Si fuese necesario el comando mkinitrd permite generar un nuevo initrd

Page 37: Administration(SLES10) 2[www informatica-practica es mw]

37

proceso init

El kernel después de cargarse ejecuta el programa ‘init’ y su PID será el 1.

USER PID TTY STAT TIME COMMAND

root 1 ? S 0:02 init [5]

Todos los procesos son hijos, nietos ... de init. Controla también la parada del sistema. La señal 9 (SIGKILL ) no tiene efecto sobre él. El fichero de configuración del proceso init es :

/etc/inittab init alcanzará el nivel de ejecución indicado en este

fichero, arrancando todos los procesos y servicios que sea necesario para ello.

Objetivos

Proceso de arranque. GRUB. Manejo de niveles de ejecución

Page 38: Administration(SLES10) 2[www informatica-practica es mw]

38

GRUB

GRand Unified Bootloader. Es el gestor de inicio más popular hoy en día. Tiene características más avanzadas que LILO :

Interfaz de comandos interactivo (no sólo un comando con argumentos).

Puede acceder directamente al disco duro, del cual carga su menú de un fichero de texto fácilmente editable.

Su fichero de configuración es :/etc/grub.conf

/boot/grub/menu.lst

gfxmenu (hd0,0)/boot/message # Gráfico splash inicial

color white/blue black/light-gray # Colores para menú de selección

default 0 #Entrada que se utilizará por defecto

timeout 8 #Tiempo de espera antes de utilizar la entrada por defecto

title linux #Título de la entrada ( lo que se ve en el menú) kernel (hd0,0)/boot/vmlinuz root=/dev/hda1 hdd= ide-scsi vga=788

# Localización del kernel más algunos parámetros initrd (hd0,0)/boot/initrd

# Localización del programa iniciador del Ram Disktitle windows

root (hd1,0)

makeactive

chainloader +1

title floppy

root (fd0)

chainloader +1

title failsafe

kernel (hd0,0)/boot/vmlinuz.shipped root=/dev/hda1 ide=nodma apm=off acpi=off vga=normal nosmp disableapic maxcpus=0 3

initrd (hd0,0)/boot/initrd.shipped

Page 39: Administration(SLES10) 2[www informatica-practica es mw]

39

Nomenclatura GRUB de discos y particiones GRUB designa los discos duros y particiones de distinta

manera que el sistema. (hdD,P)

D= Disco, a partir de 0 (arranque), según se vayan detectando.

P= Partición, a partir de 0. (0...3)=primarias o extendida, (4=>) lógicas.

Ej.: (hd 0) : primer disco del sistema (arranque)=> hda o sda , no

importa. (hd1) : Segundo disco detectado. (hd0,0):Primera partición del primer disco. (hd3,1):Segunda partición del cuarto disco. (hd0,4):Primera partición lógica del primer disco. (hd1,6): tercera partición lógica del segundo disco.

La shell de GRUB

Cuando el sistema no se puede iniciar debido a un error en el gestor de arranque, podemos usar la shell que incorpora GRUB para intentar arrancarlo manualmente.

Podemos acceder a esta shell: Durante la ejecución del sistema # grub

GRUB version 0.92 (640K lower / 3072K upper memor y)

[ Minimal BASH-like line editing is supported. Fo r the first word, TAB

lists possible command completions. Anywhere el se TAB lists the possible

completions of a device/filename. ]

grub> find /boot/vmlinuz

(hd0,1)

Durante el arranque En el menú gráfico de arranque pulsar <esc> y pulsar <c>

Page 40: Administration(SLES10) 2[www informatica-practica es mw]

40

Configurción de GRUB a través de YaST (1/2)

YaST->

Sistema-> Configuración del cargador de arranque

Configurción de GRUB a través de YaST (2/2)

Page 41: Administration(SLES10) 2[www informatica-practica es mw]

41

Es posible realizar operaciones de rescate pasándole al gestor de arranque un mensaje que varíe el primer programa que el kernel cargará

Ej.: init=/bin/bash en el campo de comandos del gestor de arranque GRUB arranca un sistema mínimo con una shell bash

El sistema de ficheros / se encontrará montado en sólo lectura, para solucionarlo podemos ejecutar:

mount -o remount,rw,sync /

y poder realizar ya sin problema operaciones como el cambio de la password root

Esta opción es MUY peligrosa y se debe bloquear mediante una contraseña en acceso a los comando GRUB

Para ello debemos editar el fichero /boot/grub/menu.lst y añadir al principio la línea :

password micontraseña

# gfxmenu (hd,0)/message /* Esta línea se debe comentar */

Para acceder a las opciones avanzadas deberemos pulsar la tecla “p”.

Arranque del sistema directamente desde una shell

Si deseamos utilizar una contraseña cifrada en el fichero /boot/grub/menu.lst debemos realizar lo siguiente :

mabsServer # grub

grub> md5crypt

Password: ******

Encrypted: $1$Gr/Oq0$NwuQYNJYNyFbtgSHDsPWf0

grub>

Podemos tambien utilizar el comando grub-md5-crypt .Y copiamos el resultado al fichero /boot/grub/menu.lst

password -- md5 $1$Gr/Oq0$NwuQYNJYNyFbtgSHDsPWf0

Para proteger con contraseña las opciones disponibles en el menú, debemos usar el comando lock .

title SUSE LINUX 9.2

lock

kernel (hd0,5)/boot/vmlinuz root=/dev/hda6 spl ash=silent resume=/dev/hda5

initrd (hd0,5)/boot/initrd

Protección de GRUB con contraseña cifrada

Page 42: Administration(SLES10) 2[www informatica-practica es mw]

42

Práctica

Ejercicio 7-1: Manejo del gestor de arranque (pag 7-2 del manual de prácticas)

Objetivos

Proceso de arranque. GRUB. Manejo de niveles de ejecución

Page 43: Administration(SLES10) 2[www informatica-practica es mw]

43

Runlevels (Niveles de ejecución)

Un sistema Linux puede encontrase en uno de los variosestados o niveles de ejecución conocidos como runlevels.

Cada nivel puede implicar el arranque o parada de una serie de servicios.

Existen niveles que implican un estado transitorio hacia el apagado o rearranque del sistema.

Para saber en qué nivel nos encontramos actualmente podemos ejecutar :

#runlevel N 5 Para cambiar de runlevel se utiliza el comando init ,

como root :#init 2

Runlevels

Multiusuario real con red y login gráfico.5

Reinicio del sistema.6

No definido.4

Multiusuario con servicios de red.3

Multiusuario sin servicios de red.2

Modo monousuario, utilizado para resolver problemas y mantenimiento

1

Apaga el sistema.0

UsoRunleve l

Page 44: Administration(SLES10) 2[www informatica-practica es mw]

44

/etc/inittab Todas las entradas tienen este formato general :

id:runlevels:action:processEn función del campo acción puede variar.

Ej.:id:5:initdefault:

#especifica el runlevel por defectosi::bootwait:/etc/init.d/boot

# El proceso se inicia durante el arranque del sistema y se espera a que termine

ca::ctrlaltdel:/sbin/shutdown -r -t 4 now

#qué hacer cuando se utiliza la combinación de teclas <ctr><alt><supr>l5:5:wait:/etc/init.d/rc 5

#especifica que tiene que ejecutar en el runlevel 53:2345:respawn:/sbin/mingetty tty3

#El terminal 3 está activo en el runlevel 2,3,4 y 5

Scripts de Inicio de servicios Casi todos los scripts de inicialización de servicios se

alojan en /etc/init.d/ Los scripts soportan varios parámetros estándar en su

invocación: start, stop, restart ... Ej.:

/etc/init.d # ./network restart

Shutting down network interfaces:

eth0 device: 3Com Corporation 3c905C-TX/TX-M [ Tornado] (rev 78)

eth0 configuration: eth-id-00:02:1b:f3:34 :55 done

Shutting down service network . . . . . . . . . . . . . done.

Hint: you may set mandatory devices in /etc/sysconf ig/network/config

Setting up network interfaces:

lo

lo IP address: 127.0.0.1/8 done

eth0 device: 3Com Corporation 3c905C-TX/ TX-M [Tornado] (rev 78)

eth0 configuration: eth-id-00:02:1b:f3:34: 55

eth0 IP address: 192.168.1.145/24 done

Setting up service network . . . . . . . . . . . . . . done.

Page 45: Administration(SLES10) 2[www informatica-practica es mw]

45

Llamada a los scripts de inicio durante el arranque del sistema

La llamada a estos scripts durante el arranque se produce desde enlaces simbólicos ubicados en /etc/init.d/rc X.d/ siendo X el runlevel.

Los enlaces empiezan por una S (Start) o una K (Kill), según se deban arrancar o parar en dicho nivel, más un número del 00 a 99 que indica el orden de ejecución.

Ej.:octopus2:/etc/init.d/rc3.d # ls -l *network

lrwxrwxrwx 1 root root 10 Apr 17 13:22 K18network -> ../network

lrwxrwxrwx 1 root root 10 Apr 17 13:22 S05network -> ../network

Para que no arranque/pare un servicio en un nivel determinado podemos borrar el enlace, renombrarlo.

Administración de scripts de arranque (1/2)

Los comandos insserv o chkconfig permiten administrar la inserción de servicios en el sistema de arranque de forma más cómoda.

Ej.:

# insserv nfsserver (añade servicio)

# insserv -r nfsserver (quita servicio) Para crear nuestro propio script administrable por insserv podemos

utilizar la plantilla /etc/init.d/skeleton . El bloque de inicio contiene directivas que determinan los niveles en

los que el script se insertará, posibles dependencias etc. (INIT INFO )# /etc/init.d/network

### BEGIN INIT INFO

# Provides: network

# Required-Start: $local_fs

# Should-Start: coldplug pcmcia

# Required-Stop:

# Should-Stop:

# Default-Start: 2 3 5

# Default-Stop:

# Description: Configure the network interfaces and set up routing

### END INIT INFO

Page 46: Administration(SLES10) 2[www informatica-practica es mw]

46

chkconfig , además de ofrecer listados de los servicios y su estado por defecto en cada nivel, permite funcionalidades similiares a insserv

Ej.:# chkconfig cron (estado por defecto en el nivel actual)

cron on

# chkconfig cron -l (listado de los estados por defecto en cada nivel)

cron 0:off 1:off 2:on 3:on 4:off 5:on 6:off

# chkconfig cron off (dedhabilitar servicio en todos los niveles)

# chkconfig cron -l

cron 0:off 1:off 2:off 3:of f 4:off 5:off 6:off

# chkconfig cron on (dedhabilitar servicio en todos los niveles)

# chkconfig cron -l

cron 0:off 1:off 2:on 3:on 4:off 5:on 6:off

# chkconfig -l (listado del estado por defecto de cada servicio en cada nivel)

Makefile 0:off 1:off 2:off 3:of f 4:off 5:off 6:off

SuSEfirewall2_init 0:off 1:off 2:off 3:of f 4:off 5:off 6:off

SuSEfirewall2_setup 0:off 1:off 2:off 3:of f 4:off 5:off 6:off

aaeventd 0:off 1:off 2:off 3:of f 4:off 5:off 6:off

acpid 0:off 1:off 2:on 3:on 4:off 5:on 6:off

...

Administración de scripts de arranque (2/2)

Administración de scripts de arranque por YaST (1/2)

Con yast-> Sistema -> Editor de niveles de ejecución o simplemente

yast runlevel .

Page 47: Administration(SLES10) 2[www informatica-practica es mw]

47

Administración de scripts de arranque por YaST (1/2)

Modo experto

Cambio de nivel de ejecución durante el arranque del sistema

Se puede introducir el número del nivel de ejecución al cual se desea ir dentro del campo para comandos que ofrece GRUB

O editando la línea (modo carácter ) y poniendo el nivel al final de la misma

Ej.:/boot/vmlinuz

root=/dev/hda2 vga=0x314 resume=/dev/hda1 splash=silent showopts 1

Page 48: Administration(SLES10) 2[www informatica-practica es mw]

48

Cambio de nivel de ejecución en la línea de comando

El comando init permite al usuario root pasar a un nivel determinado durante la ejecución del sistema

Ej.: init 3, init 0, init 1 halt y poweroff son equivalentes a init

0 y reboot a init 6

Parada del sistema: shutdown Apaga o rearranca el sistema a la hora especificada o tras el tiempo especificado

Informa a los demás usuarios de lo que va a suceder. Podemos personalizar el mensaje

Impide el login de nuevos usuarios La orden puede ser revocada Ej.:

#shutdown -r now

(rebota el sistema inmediatamente)#shutdown -r +5 El sistema se apagará en 5 minutos

(rebota el sistema en 5 minutos mandando el mensaje adjunto a los usuarios)

#shutdown -h 23:59

(Para el sistema (halt) a la hora indicada)#shutdown -c

(revoca la programación de shutdown actual)

Page 49: Administration(SLES10) 2[www informatica-practica es mw]

49

Cambio del nivel de ejecución Cuando el nivel de ejecución es cambiado mediante init se desencadenan varias acciones (ejemplo de nivel 3 a 5) init consulta en su inittab que scripts se debe ejecutar (/etc/init.d/rc 5 )

Se ejecutan todos los scripts de parada (K* ) del nivel 3 que no tengan un script correspondiente de arranque (S* ) en el nivel 5

Se ejecutan todos los scripts de arranque del nivel 5 que no tuviesen ya otro de arranque en el nivel 3

Para que los cambios en /etc/inittab tengan lugar sin cambiar el nivel de ejecución podemos ejecutar init q

Práctica

Ejercicio 7-2: Manejo de los niveles de ejecución (pag 7-4 del manual de prácticas)

Page 50: Administration(SLES10) 2[www informatica-practica es mw]

50

TEMA 8

Manejo de software

Objetivos

Manejo de paquetes RPM Verificación y actualización de librerias

Page 51: Administration(SLES10) 2[www informatica-practica es mw]

51

Distribución de Software

El software se puede distribuir de dos formas Código fuente (hay que compilarlo) Binarios (ya está compilado)

Para que sea más fácil su distribución se suele empaquetar en un único fichero. En formato tar (.tar) En formato RedHat (.rpm) En formato Debian (.deb)

Red Hat Package Manager (RPM)

La mayoría del software es distribuido actualmente ya compilado en forma de paquetes.

Los manejadores de paquetes controlan las versiones instaladas y dependencias con otros paquetes

El manejador de paquetes más popular actualmente es RPM (excepto en Slackware y Debian

http://www.rpmfind.net/linux/RPM/

Page 52: Administration(SLES10) 2[www informatica-practica es mw]

52

¿ Qué hay dentro de un paquete RPM ?

Dentro de un paquete encontraremos: Los ficheros de la aplicación comprimidos Nombre y versión del paquete Fecha de generación Descripción del mismo Información sobre quién lo construyó Código de integridad en MD5 Requerimientos de otros paquetes

(dependencias )

Componentes de RPM

Manejardor de paquetes: Utilidad que permite la instalación y desinstalación de los paquetes.

Base de datos: Contiene una lista con toda la información de los paquetes instalados

Paquetes: Es el software a instalar que puede ser en código fuente o binario

Etiqueta o nombre del paquete

Page 53: Administration(SLES10) 2[www informatica-practica es mw]

53

Nomenclatura de un paquete RPM

Ej: ethereal-0.8.9-1.i386.rpm Paquete - versión - patch . arquitectura .rpm

Paquete : Nombre de la aplicación versión Patch : Nivel de parche Arquitectura : La plataforma para la que se ha

realizado la compilación. Ej: i386(Intel) i586Pentium(Intel) i686 Pentium Pro (Intel) Sparc (Sun) Alpha (Digital/Compaq

La base de datos de RPM La información sobre cada paquete instalado es conservada en una base de datos bajo /var/lib/rpm/

Prácticamente cada vez que rpm es utilizado esta base de datos es accedida para cosas como:

Verificar paquetes ya instalados Comprobar ficheros que ya existan Verificar dependencias

� Teniendo un directorio /usr de 1 G aproximadamente la base de datos pude ocupar unos 30 MB. Si esta fuese mayor se puede, tras un backup de la misma, ejecutar rpm --rebuilddb

� Bajo /etc/cron.daily existe el script suse.de-backup-rpmdb que se encarga de ver diariamente si ha habido cambios en la base de datos y hacer un backup bajo /var/adm/backup/rpmdb/

Page 54: Administration(SLES10) 2[www informatica-practica es mw]

54

Ficheros de configuración de RPM

El fichero de configuración global de RPM es /usr/lib/rpm/rpmrc .

Dado que este fichero podría se sustituido por otro nuevo si actualizamos el manejador de paquetes propiamente dicho es mejor que apliquemos los cambios que necesitemos sobre el fichero /etc/rpmrc o particularmente para cada usuario en ~/.rpmrc

El comando rpm

Es utilizado para operaciones como : Instalar paquetes Actualizar paquetes Desinstalar paquetes Pedir información a la base de datos Verificar un paquete Verificar un fichero instalado Construir un paquete binario a partir del

código fuente

Page 55: Administration(SLES10) 2[www informatica-practica es mw]

55

Verificación de la autenticidad de un paquete Todos los paquetes RPM distribuidos por SuSE son firmados con la siguiente clave GnuPG:

sles3072:~ # gpg --list-keys -v --fingerprint "buil [email protected]"

gpg: usando PGP como modelo de confianza

pub 1024D/9C800ACA 2000-10-19 [caduca: 2008-06-21 ]

Huella de clave = 79C1 79B2 E1C8 20C1 890F 9 994 A84E DAE8 9C80 0ACA

uid SuSE Package Signing Key <buil [email protected]>

sub 2048g/8495160C 2000-10-19 [caduca: 2008-06-21 ]

Esta clave se encuentra almacenada bajo /root/.gnupg/ y /usr/lib/gnupg/

Para realizar la comprobación de un paquete:

rpm --checksig nombre_paquete .rpm

Ej.:# rpm --checksig wget-1.10.2-15.4.i586.rpm

wget-1.10.2-15.4.i586.rpm: sha1 md5 gpg OK

Instalación de Paquetes RPM Para instalar un programa podemos hacer por ej:

rpm -ivh paquete .rpm -i : instalar -v : Muestra el nombre del paquete que está siendo

instalado -h : Muestra marcas “#” según evoluciona la instalación del

paquete Se pueden utilizar ‘*’ en instalaciones y actualizaciones

pero no en eliminaciones rpm -ivh *.rpm

Se pueden instalar paquetes a partir de una url rpm -ivh http://rpmfind.net/redhat/libpcap-0.4.i386 .rpm

Podemos tener errores de dependencias que impedirán la instalación:

rpm -ivh ethereal-0.8.9-1.i386.rpmerror: failed dependencies:

libpcap >= 0.4 is needed by ethereal-0.8.9-1

Page 56: Administration(SLES10) 2[www informatica-practica es mw]

56

Opciones avanzadas de instalación Si se necesita instalar un paquete a pesar de los

errores que pueda dar rpm, tenemos algunas opciones que ignoran estos mensajes: --force : fuerza la sobreescritura de los

ficheros del paquete existente --nodeps : No comprueba las

dependencias , es útil si se han instalado por otros medios (como compilando código fuente)

--replacefiles : Sobreescribe ficheros que pertenecen a otros paquetes

ej: rpm -ivh --nodeps ethereal-0.8.9-1.i386.rpm

Actualización de Paquetes RPM

La opción -U actualiza de la siguiente forma : Guarda los ficheros config modificados con

extensión .rpmsave Puede generar posibles nuevos ficheros de

configuración con extensión .rpmnew Elimina el paquete antiguo Instala el nuevo paquete

Si el paquete no existe, -U procede igual que -i

Con la opción -F actualiza sólo si existe una versión más antigua de ese paquete.

Page 57: Administration(SLES10) 2[www informatica-practica es mw]

57

Borrado de paquetes RPM

Para borrar un paquete se utiliza la opción -e ó --uninstall y el nombre del paquete , no el del fichero (sin extensión ni versión ).

rpm -e libpcap

Si otros paquetes dependen de este rpm da un mensaje y no procede

Cuando un paquete es borrado se guardan los archivos de configuración modificados .

Es útil la opción ‘--nodeps ’ cuando se tiene un problema de dependencias que se desea ignorar

La opción '--test ' simula el procedimiento, retornando los posibles problemas que puedan surgir

Información sobre paquetes Para obtener información sobre un paquete:

-qi : Si ya instalado (sólo nombre paquete):# rpm -qi etherealName : ethereal Relocations: (not relocate able)Version : 0.9.6 Vendor: SuSE Linux AG, Nue rnberg, GermanyRelease : 59 Build Date: Mon Oct 14 23: 03:13 2002Install date: Thu May 6 18:00:28 2004 Build Host: ting.suse.deGroup : Productivity/Networking/Diagnostic Source RPM: ethereal-

0.9.6-59.src.rpmSize : 12033439 Lice nse: GPLPackager : http://www.suse.de/feedbackURL : http://ethereal.zing.org/Summary : A graphical network traffic analyserDescription :ethereal is a network traffic analyzer for Unix andUnix-like operating systems....

-qip : Si no está instalado todavía (nombre del fichero):# rpm -qip ethereal -0.10.3-10.i586.patch.rpm

Page 58: Administration(SLES10) 2[www informatica-practica es mw]

58

Información sobre paquetes -q : nos permite consultar la BBDD de paquetes instalados.

# rpm -q glibc (sólo nombre del paquete)glibc-2.2.5-213

-qa : listar todos los paquetes instalados# rpm -qafilesystem-2002.9.2-56gdb-5.3-57aide-0.9-32...

-qf : Nos dice a que paquete pertenece un fichero# rpm -qf /bin/cpfileutils-4.1.11-107

- qR: lista dependencias con otros paquetes

Para listar los ficheros que contiene un paquete-ql : Si ya está instalado :

#rpm -ql nombre_paquete-qlp :si no está instalado :

#rpm -qlp nombre_paquet-versión. rpm

Verificación de ficheros y paquetes (1/2)

-V paquete : Verifica todos los ficheros de un paquete ya instalado

-Va : Verifica todos los ficheros de todos los paquetes instalados

-Vp paquete.rpm : Verifica todos los ficheros de un paquete instalado con respecto a un paquete sin instalar

-Vf fichero : Verifica un fichero con respecto del original del paquete

El formato de la salida es una cadena de 8 caracteres. Cada uno denota el resultado de un tipo de comparación:

. : El test es satisfactorio

5 : Diferente checksum MD5

S : Diferente tamaño de fichero

L : El atributo de link simbólico ha cambiado

T : La fecha de última modificación del fichero ha cambiado

D : El major o minor number del dispositivo ha cambiado

U : El dueño del fichero ha cambiado

G : El grupo del fichero ha cambiado

M : Los permisos del fichero han cambiado

? : Resultado inesperado

Page 59: Administration(SLES10) 2[www informatica-practica es mw]

59

Verificación de ficheros y paquetes (2/2)

Un noveno carácter 'c' puede indicar si el fichero es de configuración

Las discrepancias preocupantes son, normalmente, las de los ficheros ejecutables

Ejemplo :# rpm -V apache

S.5....T c /etc/httpd/httpd.conf

S.5....T c /etc/httpd/suse_addmodule.conf

S.5....T c /etc/httpd/suse_define.conf

S.5....T c /etc/httpd/suse_include.conf

S.5....T c /etc/httpd/suse_loadmodule.conf

S.5....T c /etc/httpd/suse_text.conf

missing /var/log/httpd/ssl_engine_log

missing /var/log/httpd/ssl_request_log

.....U.. /var/log/httpd/ssl_scache.dir

.....U.. /var/log/httpd/ssl_scache.pag

missing /var/run/httpd.pid

Práctica

Ejercicio 8-1: Manejo de software con RPM (pag 8-2 del manual de prácticas)

Page 60: Administration(SLES10) 2[www informatica-practica es mw]

60

Objetivos

Manejo de paquetes RPM Verificación y actualización de librerias

Verificación de librerías

Además de comprobar las dependencias de paquetes podría ser necesario antes de instalar un software comprobar qué librerías dinámicas utiliza.

Esto debería ser resuelto por el programa de instalación pero a veces nos vemos obligados a hacerlo nosotros

Por ejemplo si una aplicación que estamos intentando arrancar falla podemos arrancarla desde la ventana de un terminal y ofrece algún mensaje de error indicando la falta de alguna librería. Entonces se podría necesitar verificar el acceso a las librerías dinámicas

Page 61: Administration(SLES10) 2[www informatica-practica es mw]

61

Gestión de librerías compartidas

Las librerías son un conjunto de funciones de uso común que los desarrolladores puede utilizar , evitando tener que programar su código.

Son invocadas desde los programas . Cuando se compila un programa se puede hacer

con las librerías dentro del ejecutable (compilación estática ) o fuera (compilación dinámica )

Rutas de algunas librerías compartidas / lib -> Librerías principales /usr/lib -> Librerías suplementarias /usr/X11R6/lib -> Librerías compartidas para X

window

Nomenclatura de librerías y comando ldd

Normalmente tienen un nombre así: nombre_librería-principal - secundaria - patch .so

La extensión ‘so’ es de ‘shared object’ Ej: libcrypt-2.3.2.so

versión principal: 2 versión secundaria: 3 versión de patch: 2

Para ver la librerías que utiliza un programa se utiliza ‘ldd ’ Ej.: # ldd /usr/bin/wget

libssl.so.4 => /lib/libssl.so.4 (0x40034000 ) libcrypto.so.4 => /lib/libcrypto.so.4 (0x40 069000)

Page 62: Administration(SLES10) 2[www informatica-practica es mw]

62

ld.so.cache y ldconfig Cuando un programa es ejecutado el sistema

comprueba que las librerías necesarias han sido encontradas y cargadas leyendo el fichero /etc/ld.so.cache (fichero binario)

Podemos ver el contenido de la cache con el comando/sbin/ldconfig -p

ldconfig nos permite actualizar esta caché en función de las librerías que encuentre en :

/lib/ /usr/lib Directorios referenciados en Fichero

/etc/ld.so.conf Otros path pasados directamente como opciones

comando ldconfig Los path referenciados en la variable de entorno

LD_LIBRARY_PATH ldconfig se ejecuta durante el arranque del sistema.

Práctica

Ejercicio 8-5: Manejo de librerías compartidas (pag 8-5 del manual de prácticas)

Page 63: Administration(SLES10) 2[www informatica-practica es mw]

63

TEMA 9

Copias de seguridad

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Page 64: Administration(SLES10) 2[www informatica-practica es mw]

64

Estrategias de backup (1/2)

Incremental: Se hacen copias de los cambios desde el último backup

Diferencial: Se hacen copias desde el último backup completo

Backup completolunesMartes

miércolesjuevesviernes

Backup completolunesMartes

miércolesjuevesviernes

Estrategias de backup (2/2)

Se debe alcanzar un compromiso entre: El tiempo necesario para recuperar una copia de seguridad

La cantidad de datos de los cuales hay que hacer copia

Page 65: Administration(SLES10) 2[www informatica-practica es mw]

65

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Backup de los datos del sistema con YaST (1/8)

Los datos no abarcan el sistema completo sino información de los paquetes que han cambiado y ficheros de configuración críticos

Para crear un backup: YaST->Sistema-> Copia de seguridad del sistema o ejecutar yast backup

Page 66: Administration(SLES10) 2[www informatica-practica es mw]

66

Backup de los datos del sistema con YaST (2/8)

Se utilizan los perfiles para nombrar a un grupo de diferentes configuraciones tales como nombres de archivos y cómo encontrarlos

Para crear un perfil en Gestión de perfiles->Añadir

Backup de los datos del sistema con YaST (3/8)

Nombre de archivo: Para el fichero que contendrá el backup (path completo)

Ubicación de la copia de seguridad Archivo local Red (NFS) : Servidor NFS

Page 67: Administration(SLES10) 2[www informatica-practica es mw]

67

Backup de los datos del sistema con YaST (4/8)

Tipo de archivo Crear archivo de

copia de seguridad : para hacer el backup propiamente dicho

Tipo de archivo tar o star (copia de ACL) comprimido con gzip o bzip2

Opciones: Para el particiona- miento en varios volúmenes

Crear sólo lista de ficheros encontrados

Backup de los datos del sistema con YaST (5/8)

Copia de seguridad de archivos que no pertenecen a ningún paquete

Mostrar lista de ficheros antes de crear el archivo : Para poderla editar manualmente antes de generar el bakcup

Comprobar suma MD5 en lugar de hora y tamaño: Se utiliza un hash MD5 en la comprobación (es más seguro pero necesita más tiempo)

Descripción del archivo: Literal opcional que puede describir algo al respecto del backup

Page 68: Administration(SLES10) 2[www informatica-practica es mw]

68

Backup de los datos del sistema con YaST (6/8)

Elementos excluidos de la búsqueda : Nos la oportunidad de evitar que ciertos directorios no entren en el backup o de introducir nuestras propias excepciones antes de lanzar la búsqueda de ficheros susceptibles de ser salvados

Backup de los datos del sistema con YaST (7/8)

Si hemos marcado Mostrar lista de ficheros antes de crear el archivo en el paso 5 tenemos la oportunidad descartar ficheros del backup

Page 69: Administration(SLES10) 2[www informatica-practica es mw]

69

Backup de los datos del sistema con YaST (8/8)

Datos resumen del backup

Recuperación de los datos del sistema con YaST (1/5)

Para recuperar el sistema YaST->Sistema-> Recuperar sistema o yast restore

El backup a recuperar puede estar en un Archivo local , accesible a través de la Red (NFS) o en un Dispositivo extraible

Page 70: Administration(SLES10) 2[www informatica-practica es mw]

70

Recuperación de los datos del sistema con YaST (2/5)

Descripción del archivo con la copia de backup

Recuperación de los datos del sistema con YaST (3/5)

Opciones Avanzadas

Activar configuración de cargador de arranque depués de restaurar (para LILO)

Ejecutar SuSeconfig después de restaurar

Directorio destino : Si vamos a recuperar en sobre una localización distinta de la original /

Page 71: Administration(SLES10) 2[www informatica-practica es mw]

71

Recuperación de los datos del sistema con YaST (4/5)

Selección de paquetes a restaurar Restaurar la

base de datos RPM (si se encuentra en los archivos de reserva)

Recuperación de los datos del sistema con YaST (5/5)

Resumen de la restauración

Page 72: Administration(SLES10) 2[www informatica-practica es mw]

72

Práctica

Ejercicio 9-1: Backup de ficheros con YaST (pag 9-2 del manual de prácticas)

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Page 73: Administration(SLES10) 2[www informatica-practica es mw]

73

tar

tar <opciones> fichero directorio Opciones:

cvf : Empaqueta (c) el contenido de directorio en el paquete (f) fichero, dando infomación adicional (v)

tvf : Lista el contenido del paquete fichero xvf : Extrae el contenido del paquete fichero X : Excluye ficheros (pasados en una lista) C: Para extraer en un directorio distinto del

actual r : incluye ficheros en archivo tar ya existente u: Sólo incluye ficheros en el archivo cuando

son más recientes que los que ya existen d: compara los ficheros en el archivo con los

del filesystem

tar : ejemplos

tar -cvf /back/etc.tar /etc

Empaqueta todo lo que encuentra bajo /etc (le quita la '/' antes) en el fichero /back/etc.tar

tar -cvf /dev/st0 /home

Pasa a cinta el contenido del directorio home tar -cvf /dev/st0 /home -X lista.txt

Pasa a cinta el contenido del directorio home menos los ficheros especificados en lista.txt

tar -xvf /dev/st0

Extrae contenido de cinta en directorio actual tar -xvf /test1/test.tar -C /test2 home/user1/.bash rc

Extrae el fichero home/user1/.bashrc contenido en /test1/test.tar sobre el directorio /test2

Page 74: Administration(SLES10) 2[www informatica-practica es mw]

74

Backups incrementales y diferenciales con tar (1/2) Snapshots:

Consiste en crear un fichero especial, a la vez que se hace la copia, que contiene información sobre desarrollo del proceso de backup. Para ello se necesita primero un backup total utilizando la opción -g nombre_del_fichero

Ej.:

tar -czf fich_backup_total -g fich_snapshot /home

En la siguiente backup salvarán sólo los ficheros que han cambiado utilizando una línea similar a la siguiente:

tar -czf fich_backup_incremetal - g fich_snapshot /home

Backups incrementales y diferenciales con tar (2/2) find + tar

Consiste en utilizar find para localizar los ficheros con las fechas adecuadas. Estos ficheros alimentan al tar que procede a simplemente empaquetarlos

Primero se realiza un backup completo. Ej.:

tar cvzf /backup/backup_completo.tar.gz /home

En los siguientes backups utilizamos find. Ej.:

find /home -type f -newer /backup/backup_completo.t ar.gz -print0 | tar –null -cvzf /backup/backup_lunes.tar. gz -T -

print0 y --null aseguran que los ficheros con espacios en el nombre sean también copiados

-T permite que los fichero pasados al tar por la entrada estandar sean incluidos en el paquete

Un problema de este método es que si el proceso es largo se puden producir modificaciones en los ficheros originales antes de que se cierre el fichero de backup (ya que esa fecha y hora será referencia posterior)

Page 75: Administration(SLES10) 2[www informatica-practica es mw]

75

Práctica

Ejercicio 9-2: Backups con tar (pag 9-3 del manual de prácticas)

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Page 76: Administration(SLES10) 2[www informatica-practica es mw]

76

Trabajo con cintas

Para trabajar con cintas utilizamos el comando mt

Los dispositivos de cinta en Linux son siempre SCSI y pueden ser accedidos a través de: /dev/st0 : primer unidad de cinta (con rebobinado)

/dev/nst0 : misma unidad sin rebobinado

Status de una cinta

#mt -f /dev/st0 status

Drive type = Gegeric SCSI-2 tape

Drive status = 620756992

Sense key error = 0

Residue count = 0

File number = 0 <--- Principio de la cinta

Block number = 0 <--

Tape block size o bytes. Density code 0x25 (unknown )

Soft error count since last status=0

General status bits on (410100000): BOT ONLINE IM_R EP_EN

Begin of tape -----------^

Page 77: Administration(SLES10) 2[www informatica-practica es mw]

77

Posicionamiento de la cinta

#mt -f /dev/nst0 fsf 1 <--- Siguiente fichero

#mt -f /dev/nst0 status

Drive type = Gegeric SCSI-2 tape

Drive status = 620756992

Sense key error = 0

Residue count = 0

File number = 1 <--- Principio de siguiente fichero

Block number = 0 <--

Tape block size o bytes. Density code 0x25 (unknown )

Soft error count since last status=0

General status bits on (81010000): EOF ONLINE IM_RE P_EN

End of file-----------^

Para volver un fichero para atrás : bsf

Tras una lectura

Después de leer el archivo ( con un tar -xvf /dev/nst0 por ejemplo) la cinta está al final del fichero

#mt -f /dev/nst0 status

Drive type = Gegeric SCSI-2 tape

Drive status = 620756992

Sense key error = 0

Residue count = 0

File number = 1

Block number = 18 <-- distinto de 0

Tape block size o bytes. Density code 0x25 (unknown )

Soft error count since last status=0

General status bits on (1010000):ONLINE IM_REP_EN

Page 78: Administration(SLES10) 2[www informatica-practica es mw]

78

Otras operaciones con cintas Para rebobinar:#mt -f /dev/nst0 rewind

Para expulsar la cinta#mt -f /dev/nst0 offline

Se recomienda trabajar con la compresión desactivada para favorecer recuperaciones frente a errores. Para comproba r en que modo se encuentra:

#mt -f /dev/st0 datacompression

Compression on

Para desactivar la compresión (activa por defecto)#mt -f /dev/st0 datacompression off

Algunas cintas, sobre todo DAT, pueden dar problemas al ser leídas en Unix debido a un tamaño diferente de bloque para solucionarlo:

#mt -f /dev/st0 setblk 512

(con tar se puede utilizar el parámetro -b )

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Page 79: Administration(SLES10) 2[www informatica-practica es mw]

79

dd

Lee de la entrada estándar y escribe en la salida estándar.

Con los parámetros adecuados se puede trabajar con ficheros : dd if=fichOrg of=fichCopia

Podemos especificar dispositivos : dd if=/dev/sda1 of=particion.arranque

(crea imagen de un filesystem en un fichero) La copia se hace con tamaño de bloque 512 bytes

que puede ser variado con el parámetro bs=

Podemos hacer una copia del MBR de un disco :dd if=/dev/sda of=/tmp/mbr_backup bs=512 count=1

Práctica

Ejercicio 9-3: Creación de imagenes con dd (pag 9-6 del manual de prácticas)

Page 80: Administration(SLES10) 2[www informatica-practica es mw]

80

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Copias locales con rsync (1/2) Podemos hacer una copia de un directorio sobre otro con el

comando:

rsync -a / dir_org / dir_espejo

Si sólo queremos copiar el contenido del directorio y no el propio directorio

rsync -a / dir_org / . / dir_espejo (nótese el . )

Si ejecutamos el mismo comando de nuevo sólo los ficheros que han cambiado o que son nuevos serán copiados

Las opción -a (archive mode) es un compendio de varias otras opciones que copian:

-l : enlaces simbólicos

-p : permisos de acceso

-o : dueños de los ficheros

-g : grupos de los ficheros

-t : fechas de los ficheros

-r : recursividad

Page 81: Administration(SLES10) 2[www informatica-practica es mw]

81

Copias locales con rsync (2/2) Algunas opciones útiles de rsync

-a : modo archivo

-x : no sigue links simbólicos a otros sistemas de ficheros

-v : da más información

-z : comprime los datos durante la sincronización

--delete : borra ficheros que ya no existen en los directorios originales

--exclude-from : no copia archivos referenciados en el fichero de exclusión

Ej.:rsync -a --exclude-from=/home/exclude

/home/. /shadow/home

Copias remotas con rsync

Es posible que rsync utilice a ssh para hacer copias sincronizadas de forma segura a través de la red.

Ej.:

rsync -ave ssh root@DA1:/home/tux /backup/home/

-e : Establece la shell remota a utilizar (ssh ) También funciona en dirección contraría:

rsync -ave ssh /backup/home/tux root@DA1:/home/

Page 82: Administration(SLES10) 2[www informatica-practica es mw]

82

Práctica

Ejercicio 9-4: Backups de un directorio home con rsync (pag 9-8 del manual de prácticas)

Objetivos Estrategias de backup Backup de ficheros con YaST Creación de Backups con tar Trabajo con cintas Copia de datos con dd Imagen de directorios con rsync Automatización de backups a través de cron

Page 83: Administration(SLES10) 2[www informatica-practica es mw]

83

Automatización de backups

Cron : De usuario : crontab -e De sistema:

/etc/crontab /etc/cron.d/

Ej.: 0 1 * * 6 root /root/bin/backup.sh

/etc/cron.daily , /etc/cron.weekly ...

TEMA 10

Sistema de impresión

Page 84: Administration(SLES10) 2[www informatica-practica es mw]

84

Objetivos

Configuración de impresoras locales Administración de colas y trabajos con comandos Funcionamiento de CUPS Configuración y administración de un servidor de impresión Utilización del interfaz web para administrar CUPS

¿Cuando configurar una impresora local?

Durante la instalación Sobre el cuadro de diálogo de

Configuración hardware . Las impresoras locales son detectadas automáticamente

Si la detección automática no funciona podemos seleccionar el link impresoras

Después de la instalación YaST->Hardware->Impresoras O yast2 printer desde un terminal

Page 85: Administration(SLES10) 2[www informatica-practica es mw]

85

Paquetes necesarios Los siguientes paquetes se instalan automáticamente si configuramos SLSE 10 como un servidor de impresión:

cups : Contiene el daemon de impresión cupsd

cups-client : proporciona las herramientas de impresión en línea de comandos

cups-libs : debería instalarse siempre ya que algunos programas como Samba enlazan con estas librerías

cups-drivers y cups-drivers-stp : Proporcionan los ficheros PPD para las colas de impresión

cups-SUSE-ppds-dat : contiene un fichero /etc/cups/ppds.dat pregenerado

Para arrancar o parar cups: # rccups start # rccups stop

Añadir impresoras locales con YaST (1/4)

Al arrancar YaST->hardware->impresora se procede a reconocer cualquier impresora conectada localmente

Para configurar una impresora reconocida pero que no tiene colas todavía la marcamos y pulsamos Editar

Page 86: Administration(SLES10) 2[www informatica-practica es mw]

86

Añadir impresoras locales con YaST (2/4)

Se muestran las características que por defecto se van a configurar sobre la cola

Podemos variar:

Su nombre

El modelo detectado

El archivo PPD asignado

El tipo de conexión

Añadir impresoras locales con YaST (3/4)

Ajustes de filtro: Tamaño y orientación del papel, número de páginas por hoja ...

Ajustes de restricciones: Usuarios que pueden o no utilizar la impresora

Ajustes de estado y portada:

Establecer si la cola está operativa o no

Especificar páginas de inicio y fin de trabajo

Page 87: Administration(SLES10) 2[www informatica-practica es mw]

87

Añadir impresoras locales con YaST (4/4)

Finaliza la configuración de la cola

Impresoras de red (1/11)

Cups soporta los siguientes protocolos para la impresión a través de la red: IPP (Internet Printing Protocol)

Basado en HTTP Comparado con otros protocolos permite transmitir más información relacionada con el trabajo

Utilizado por CUPS también para las transferencias internas de datos

Su puerto es el 631

URI=> ipp:// servidorcups / impresora / cola

LPD (Line Printer Daemon) Transmite algo de información relativa al trabajo como la cola de impresión (LPT, LPT1, LP1...)

El puerto es el 515

Ejemplo de URI=> lpd:// host / LPT1

Page 88: Administration(SLES10) 2[www informatica-practica es mw]

88

Impresoras de red (2/11)

SMB (Standard Message Block) CUPS también soporta la conexión a impresoras compartidas de Windows

Puertos: 137, 138 y 139 Ejemplos de URIs:

smb://usuario:password@workgroup/servidor/impresora smb://usuario:password@servidor/impresora smb://servidor/impresora

Socket Se utiliza para conectar a una impresora equipada con una conexión de red

Algunos de los puertos utilizados habitualmente son el 9100 y el 35

Ejemplo de URI:

socket:// servidor :9100/

Impresoras de red (3/11)

Al arrancar YaST->hardware->impresora

pulsamos Añadir

Page 89: Administration(SLES10) 2[www informatica-practica es mw]

89

Impresoras de red (4/11)

Seleccionamos Impresora de red

Impresoras de red (5/11)

Seleccionamos el protocolo de impresión

Veremos a continuación la configuración para CUPS y Socket o impresión directa

Page 90: Administration(SLES10) 2[www informatica-practica es mw]

90

Impresoras de red: CUPS (6/11)

Sólo cliente de CUPS: Permite acceder a las cola de impresión en un servidor en concreto

El servicio cupsd no se ejecuta localmete (no hay impresoras locales)

Es la mejor elección si sólo se tiene un servidor para toda la red

En el fichero /etc/cups/cliente.conf se añade una entrada:

ServerName IP

Impresoras de red: CUPS (7/11)

CUPS con broadcasting: Permite tanto impresoras locales como remotas

Se ejecuta localmente el servicio cupsd

Las impresoras que se anuncien en la red son mostradas automáticamente y puestas a disposición de los usuarios

Se puede limitar desde que direcciones se aceptan los anuncios de impresoras y reconfigurar el firewal local

Page 91: Administration(SLES10) 2[www informatica-practica es mw]

91

Impresoras de red: CUPS (8/11)

Cola IPP remota : Para acceder a una cola en concreto en un servidor determinado

Permite tanto impresoras locales como remotas

Se ejecuta localmente el servicio cupsd

Impresoras de red: Socket (9/11)

Para impresoras conectadas directamente a la red elegimos Imprimir directamente a una impresora de red

Page 92: Administration(SLES10) 2[www informatica-practica es mw]

92

Impresoras de red: Socket (10/11)

Impresoras en red como las HP DirectJet soportan la Impresión directa a través del puerto TCP

Impresoras de red: Socket (11/11)

Por último podemos:

Dar una serie de datos para la representación local de la cola

Compartir la cola marcando Impresora compartida

Usar filtro local . Con lo que se nos muestra el asistente para determinar el tipo de impresora remota y las características como tamaño y orientación de papel, restricciones de acceso...

Page 93: Administration(SLES10) 2[www informatica-practica es mw]

93

Configuración de una impresora a través de la línea de comandos (1/2)

La configuración de una impresora desde la línea de comandos se realiza a través del comando lpadmin .

lpadmin -p nombreImpresora [-E] [-v dispositivo][-p driver ]

Parámetros : p : nombre de la impresora. E : Activa la impresora v : dispositivo/protocolo de conexión. P : driver a utilizar (Localizados en

/usr/share/cups/model )

Ej :lpadmin -p hpLaserjet5 -v parallel:/dev/lp0 -P

/usr/share/cups/model/Postscript.ppd.gz -E

Configuración de una impresora a través de la línea de comandos (2/2) Algunos de los protocolos de conexión soportados son los

siguientes : parallel : conexión vía puerto paralelo. Ej :

lpadmin -p hpLaserjet5 -v parallel:/dev/lp0

usb : conexión vía puerto usb. Ej :lpadmin -p hpLaserjet5 -v usb:/dev/usb/lp0

socket : conexión a una impresora de red. Ej :lpadmin -p hpLaserjet5 -v socket://192.168.4.100:91 00

lpd : impresora ubicada en servidor LPD.lpadmin -p hpLaserjet5 -v lpd://impresora/lpt1

ipp : mediante protocolo IPP. Ej :lpadmin -p hpLaserjet5 -v ipp://impresora/hp

smb : impresoras compartidas en windows. Ej :lpadmin -p hpLaserjet5 -v smb://windowsxp/impresora

Page 94: Administration(SLES10) 2[www informatica-practica es mw]

94

Práctica

Ejercicio 10-1: Cambio de la configuración de impresión (pag 10-1 del manual de prácticas)

Objetivos

Configuración de impresoras locales Administración de colas y trabajos con comandos Funcionamiento de CUPS Configuración y administración de un servidor de impresión Utilización del interfaz web para administrar CUPS

Page 95: Administration(SLES10) 2[www informatica-practica es mw]

95

Documentación para los comandos

Bajo /usr/share/doc/packages/cups/ tenemos: Los manuales de usuario: sum.html y

sum.pdf Los manuales de administración:

sam.html y sam.pdf

Los comandos permiten utilizar dos convenciones distintas: Estilo Berkley Estilo System V

Mandar trabajos (1/2) Berkley:

lpr -P cola fichero

System V: lp -d cola fichero

Si no se especifica la cola será la de por defecto

En ambos casos podemos incluir opciones adicionales con -o : Berkley:

lpr -P cola -o opcion fichero System V:

lp -d cola -o opcion fichero

Page 96: Administration(SLES10) 2[www informatica-practica es mw]

96

Mandar trabajos (2/2)

Ej.:# lpr -P lp -o PageSize=A3 documento.ps

Para ver opcines: lpoptions -l Para mandar trabajos a impresoras remotas:

Berkley: lpr -P cola @servidor fichero

System V: lp -d cola -h servidor fichero

Ej.:# lp -d lp -h srv12.afina.es documento.ps

Mostrar trabajos en la cola Berkley:

lpq -P cola lpq -a muestra trabajos en todas las colas

System V: lpstat -o -p cola

Si no se especifica ninguna cola se muestran todas

Page 97: Administration(SLES10) 2[www informatica-practica es mw]

97

Cancelación de trabajos Berkley:

lprm -P cola nº_trabajo

System V: cancel cola-nº_trabajo

Administración de colas Para deshabilitar (parar) o activar una impresora utilizamos :

/usr/bin/disable cola

/usr/bin/enable cola

Ej.:#lpq

Lj4050 is ready

No entries

#/usr/bin/disable lj4050

#lpq

Lj4050 is not ready

No entries

Si la cola no va a estar disponible durante demasiado tiempo es posible que convenga rechazar nuevos trabajos con

/usr/sbin/reject cola

Para activarla de nuevo /usr/sbin/accept cola

Ej.:#/usr/bin/reject lj4050

#lpr /etc/fstab

lpr: unable to print file: sever-error-notaccepting -jobs

No entries

Page 98: Administration(SLES10) 2[www informatica-practica es mw]

98

Configuración de colas (1/3)

Las opciones específicas de cada impresora que afectan al aspecto de los trabajos se almacenan en un fichero, con el nombre de la cola y extensión ppd , bajo: /etc/cups/ppd /

PPD (PostScript Printer Description) que describe las propiedades y opciones de una impresora (como su resolución)

Durante las instalación de SLES 10 se crean los ficheros PPD que dan soporte a las distintas impresoras /usr/share/cups/model/

Para ver las opciones disponibles en una cola:

lpoptions -p cola -l

Configuración de colas (2/3)

La salida mostrada por el comando lpoptions tiene la estructura: opción / cadena : valor valor valor ...

Ej.:# lpoptions -l

HalftoningAlgorithm/Halftoning Algorithm: Accurate *Standard WTS

REt/REt Setting: Dark Light *Medium Off

TonerDensity/Toner Density: 1 2 *3 4 5

Manualfeed/Manual Feed of Paper: Off On

InputSlot/Media Source: *Default Tray1 Tray2 Tray3 Tray4 Envelope Manual Auto

Copies/Number of Copies: *1 2 3 4 5 6 7 8 9 10 11 1 2 13 ...

PageSize/Page Size: A4 *Letter 11x17 A3 A5 B5 Env10 EnvC5 EnvDL ...

PageRegion/PageRegion: A4 Letter 11x17 A3 A5 B5 Env 10 EnvC5 EnvDL EnvISOB5 ...

Resolution/Resolution: 75x75dpi 150x150dpi 300x300d pi *600x600dpi

Economode/Toner Saving: *Off On

El * significa la opción activa actualmente

Page 99: Administration(SLES10) 2[www informatica-practica es mw]

99

Configuración de colas (3/3)

Ejemplo de cambio de una opción:

# lpoptions -p cola -o PageSize=letter

Si el cambio lo realiza root se almacena en /etc/cups/lpoptions y afecta a todos los usuarios del host

Si lo hace un usuario cualquiera sólo le afecta a él, almacenándose el cambio en el fichero ~/.lpoptions

El fichero PPD de la cola nunca es modificado Para hacer que el cambio afecte incluso a usuarios a través de la red: lpadmin -p cola -o opción =valor

classes Podemos definir classes como la agrupación de un conjunto de colas de similares características

Cuando un trabajo sea enviado a una clase este será procesado por la primera cola que se encuentre libre

Para definir una clase le añadimos su primera cola: lpadmin -p cola -c clase

Para eliminar una cola de una impresora: lpadmin -p cola -r clase

Una clase sin ninguna cola es automáticamente borrada

Para ver que colas están asignadas a qué clases podemos consultar el fichero:

/etc/cups/classes.conf

Page 100: Administration(SLES10) 2[www informatica-practica es mw]

100

Práctica

Ejercicio 10-2: Manejo de impresoras desde la línea de comandos (pag 10-6 del manual de prácticas)

Objetivos

Configuración de impresoras locales Administración de colas y trabajos con comandos Funcionamiento de CUPS Configuración y administración de un servidor de impresión Utilización del interfaz web para administrar CUPS

Page 101: Administration(SLES10) 2[www informatica-practica es mw]

101

Secuencia de eventos

1. El trabajo es creado por un usuario o programa

2. El trabajo es almacenado en una cola (/var/spool/cups ) en forma de 2 ficheros: Los datos a imprimir Información adicional: (ej: quién lo mando, a qué

impresora)

3. El demonio cupsd , en su momento, toma el trabajo y determina el tipo de datos a imprimir, convirtiendo el fichero a un formato dependiente de la impresora

4. cupsd manda el trabajo a la impresora. Cuando éste finaliza de ser impreso lo borra de la cola ( y no antes)

Filtrado o conversión de datos a imprimir (1/5)

Los pasos que cups cubre son los siguientes:1.Conversión a PostScript2.Contabilidad3.Conversión al formato específico de la

impresora4.Salida hacia la impresora

Page 102: Administration(SLES10) 2[www informatica-practica es mw]

102

Filtrado o conversión de datos a imprimir (2/5)

Los pasos que cups cubre son los siguientes:1.Conversión a PostScript

A. El tipo de datos es determinado con la ayuda del fichero /etc/cups/mime.types

B. Los datos son convertidos a PostScript a través de la herranienta especificada en

/etc/cups/mime.convs

2.Contabilidad3.Conversión al formato específico de la

impresora4.Salida hacia la impresora

Filtrado o conversión de datos a imprimir (3/5)

Los pasos que cups cubre son los siguientes:1.Conversión a PostScript2.Contabilidad

Se determina el número de páginas con la herramienta /usr/lib/cups/filter/pstops registrándose en el fichero /var/log/cups/page_log

Si se necesita, pstops podrían realizar filtrados como seleccionar páginas específicas a imprimir o agregar varias páginas en la misma hoja

3.Conversión al formato específico de la impresora

4.Salida hacia la impresora

Page 103: Administration(SLES10) 2[www informatica-practica es mw]

103

Filtrado o conversión de datos a imprimir (4/5)

Los pasos que cups cubre son los siguientes:1.Conversión a PostScript2.Contabilidad3.Conversión al formato específico de la

impresora/etc/cups/ppd/ cola .ppd (PostScript Printer Description)

define como tiene que tener lugar la conversión: Impresoras no PostScrip t: Se ejecuta un filtro para

hacer la conversión al formato adecuado ( Ej.: /usr/lib/cups/filter/cupsomatic )

Impresora PostScript : Los datos no necesitan ser convertidos .

4.Salida hacia la impresora

Filtrado o conversión de datos a imprimir (5/5)

Los pasos que cups cubre son los siguientes:1.Conversión a PostScript2.Contabilidad3.Conversión al formato específico de la

impresora4.Salida hacia la impresora

Antes de enviar el trabajo a la impresora se ejecuta un filtro adicional (contenido en el directorio /usr/lib/cups/backend/ ) en función del tipo de conexión con la impresora :

canon, epson, http, ipp, lpd, parallel, serial usb ...

Page 104: Administration(SLES10) 2[www informatica-practica es mw]

104

Colas de impresión En lugar de mandar directamente los trabajos a las impresoras lo hacemos a las colas de impresión que a su vez se asocian con las impresoras correspondientes

Cada cola tiene sus características particulares

Una impresora puede tener más de una cola asociada. Cada una de estas colas podrá variar en la forma en la que los trabajos son tratados (calidad fotográfica, borrador, tamaño del papel ...)

Cada cola de impresión es descrita en el fichero : /etc/cups/printers.conf

Y como ya se ha dicho, cada cola tiene su propio fichero de opciones bajo /etc/cups/ppd/

En el lado del cliente algunas aplicaciones (OpenOffice por ej.) necesitan que las colas estén dadas de alta en el fichero /etc/printcap

/etc/cups/printers.conf

# Printer configuration file for CUPS v1.1.23

# Written by cupsd on Tue Apr 24 01:01:59 2007

<DefaultPrinter hplj4>

Info LaserJet 4 on sles3072

Location sles3072 computer

DeviceURI parallel:/dev/lp0

State Idle

Accepting Yes

JobSheets none none

QuotaPeriod 0

PageLimit 0

KLimit 0

</ Printer >

<Printer hplj4_1>

Info

Location

DeviceURI ipp://192.168.13.129/printers/hplj4

State Idle

Accepting Yes

JobSheets none none

QuotaPeriod 0

PageLimit 0

KLimit 0

</ Printer >

Page 105: Administration(SLES10) 2[www informatica-practica es mw]

105

Ficheros de log Bajo /var/log/cups/ tenemos :

access_log : lista cada acceso IPP (HTTP) al servidor

error_log : Los tipos de mensajes se denotan por las siguientes letras al principio de la línea:

E: error W: el servidor fue incapaz de ejecutar una acción I : información D: debugging

Se puede controlar el nivel de los mensajes registrados a través de la directiva logLevel en el fichero /etc/cups/cupsd.conf

page_log : Lista los trabajos enviados al sistema de impresión con información de su números de páginas, número de copias...

Objetivos

Configuración de impresoras locales Administración de colas y trabajos con comandos Funcionamiento de CUPS Configuración y administración de un servidor de impresión Utilización del interfaz web para administrar CUPS

Page 106: Administration(SLES10) 2[www informatica-practica es mw]

106

Difusión de la información de las impresoras

CUPS puede enviar a intervalos (30 segundos) información a toda la red con de cada impresora configurada en el sistema (unos 80 bytes)

Esto facilita el acceso de los clientes a las mismas

Para ello envía mensajes a direcciones de broadcast (ej.: 192.168.101.255)

Podemos configurar esta característica a través de YaST o directamente sobre el fichero /etc/cups/cups.conf

Configuración de un servidor de impresión a través de YaST (1/7)

Al arrancar YaST->hardware->impresora se procede a reconocer cualquier impresora conectada localmente

Para definir las condiciones de compartición de una impresora la marcamos y sobre el menu Otra seleccionamos Ajustes avanzados de Cups

Page 107: Administration(SLES10) 2[www informatica-practica es mw]

107

Configuración de un servidor de impresión a través de YaST (2/7)

Marcamos Ajustes del servidor cups

Configuración de un servidor de impresión a través de YaST (3/7)

Aunque la Navegación esta activada por defecto es necesario todavía indicar el rango de direcciones a las que se enviará la información pulsando Añadir

Ejemplos de valores admintidos:

192.168.101.255

10.255.255.255 @LOCAL

Page 108: Administration(SLES10) 2[www informatica-practica es mw]

108

Configuración de un servidor de impresión a través de YaST (4/7)

Los recursos disponibles son los siguientes:

/(root) : todos los recursos

/printers : todas las colas

/jobs : trabajos de impresión

/admin : configuración del servidor

Sobre ellos podemos ajustar los permisos correspondientes pulsando Cambiar permisos

Configuración de un servidor de impresión a través de YaST (5/7)

Denegar, permitir: Un cliente que no esté en la directiva Denegar , o lo esté en Permitir tendrá el acceso permitido. Por defecto se permite.

Permitir, Denegar: Un cliente que no esté en la directiva Allow , o que lo esté en Deny será rechazado. Por defecto se deniega el acceso

Page 109: Administration(SLES10) 2[www informatica-practica es mw]

109

Configuración de un servidor de impresión a través de YaST (6/7)

Es posible también limitar el acceso por usuario o grupo

Yast-> Hardware->Impresora , marcamos la impresora pulsamos Editar , marcamos Ajustes de restricciones

Para denotar grupos los hacemos con la @. Ejemplo: @users

Configuración de un servidor de impresión a través de YaST (7/7)

Para permitir el acceso de los usuarios con comando: lpadmin -p cola -u allow:user2,user2 lpadmin -p cola -u allow:@users

Para restringir el acceso: lpadmin -p cola -u deny:geeko,@guest

Para permtir imprimir a todos: lpadmin -p cola -u allow:all lpadamin -p cola -u deny:none

Page 110: Administration(SLES10) 2[www informatica-practica es mw]

110

Restricción de acceso al interfaz web

El fichero /etc/cups/cups.conf viene configurado para restringir el acceso al interfaz web de administración de CUPS

<Location /admin>

AuthType BasicDigest

AuthClass Group

AuthGroupName sys

Order Deny,Allow

Deny From All

Allow From 127.0.0.1

</Location>

El tipo de autenticación BasicDigest utiliza como base de datos de passwords el fichero /etc/cups/passwd.md5

Inicialmente no hay definido ningún usuario

Para generar este fichero y añadir el primer usuario al grupo sys:

lppasswd -a root -g sys

El nombre del usuario no tiene porque existir en en el sistema Linux

Práctica

Ejercicio 10-3: Restricción de acceso (pag 10-8 del manual de prácticas)

Page 111: Administration(SLES10) 2[www informatica-practica es mw]

111

Objetivos

Configuración de impresoras locales Administración de colas y trabajos con comandos Funcionamiento de CUPS Configuración y administración de un servidor de impresión Utilización del interfaz web para administrar CUPS

Pagina inicial

Como ya se ha visto CUPS proporciona un interfaz web administrativo sobre la URL:http://servidor:631

El acceso a este interfaz está puede estar restringido

Page 112: Administration(SLES10) 2[www informatica-practica es mw]

112

Tareas de administración

http://servidor:631/admin

Añadir clases Administrar

clases Administrar

trabajos Añadir impresoras Administrar

impresoras

Tareas de administración

El interfaz web ofrece una gran cantidad de documentos de ayuda tanto en formato HTML como pdf

Page 113: Administration(SLES10) 2[www informatica-practica es mw]

113

Práctica

Ejercicio 10-4: Utilización del interfaz web para manejar CUPS (pag 10-10 del manual de prácticas)

TEMA 11

Acceso remoto

Page 114: Administration(SLES10) 2[www informatica-practica es mw]

114

Objetivos

Acceso remoto seguro con OpenSSH Administración remota con YaST

Conceptos Básicos de Criptografía

La Criptografía utiliza técnicas para: Cifrar los datos Probar la autenticidad de los mismos

La información utilizada para cifrar y descifrar los datos se conoce como Clave

Existen dos tipos de cifrado Cifrado simétrico Cifrado asimétrico

Page 115: Administration(SLES10) 2[www informatica-practica es mw]

115

Algoritmos de clave pública (1/4)

K-2K-2K-1K-1

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

Hola Hola caracola caracola ......

K-1K-1 K-2K-2

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

????????????????????????????????????????????????

K-1K-1 K-1K-1

Page 116: Administration(SLES10) 2[www informatica-practica es mw]

116

Algoritmos de clave pública (2/4)

K-2K-2K-1K-1

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

Hola Hola caracola caracola ......

K-1K-1

K-2K-2

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

????????????????????????????????????????????????

K-2K-2

K-2K-2

Algoritmos de clave pública (3/4)

ClaveClavePúblicaPública

ClaveClavePrivadaPrivada

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

Hola Hola caracola caracola ......

ClaveClavePrivadaPrivada

ClaveClavePúblicaPública

Hola Hola caracola caracola ......

89sdiwew89sdiwewerwe4554 erwe4554 ......

Hola Hola caracola caracola ......

ClaveClavePrivadaPrivada

ClaveClavePúblicaPública

Page 117: Administration(SLES10) 2[www informatica-practica es mw]

117

Comparación de algoritmos de encriptación

DES 56 bits

3DES 168 bits

IDEA 128 bits (uso no comercial libre

BLOWFISH 488 bits (variable)

AES 128,192,256 bits

RSA/DSA 512, 1024, 2048 bits

Clave simétrica

Clave Pública

Page 118: Administration(SLES10) 2[www informatica-practica es mw]

118

Funciones Hash (1/4)

En las líneas de sintaxis, salvo que se indique lo contrario, el texto enminúscula representa parámetros reemplazables, mientras que el textoen mayúsculas debe escribirse tal como aparece...

affg#12!5g3U8…affg#12!5g3U8…

N. Cte. de caracteresN. Cte. de caracteres

affg#12!5g3U8…affg#12!5g3U8…

En las líneas de sintaxis, salvo que se indique lo contrario, el texto enminúscula representa parámetros reemplazables, mientras que el textoen mayúsculas debe escribirse tal como aparece...

Función Función hashhash

Page 119: Administration(SLES10) 2[www informatica-practica es mw]

119

Page 120: Administration(SLES10) 2[www informatica-practica es mw]

120

Funciones Hash (4/4)

MD5

SHA-1

•Message Digest 5

•Desarrollado por RSA

•128 bit

•Secure Hashing Algorithm

•Desarrollado por el National Institute of Standars and Technology

•160 bits

SSH

SSH hace posible la comunicación segura sobre redes no seguras y presenta una alternativa a: telnet, rlogin, rsh y rcp

Incluye no sólo funcionalidades de los comandos “r ” y telnet , también tiene funcionalidades de ftp

Permite proteger las comunicaciones X11 y cualquier otra comunicación TCP, encapsulándolos en un túnel seguro

Page 121: Administration(SLES10) 2[www informatica-practica es mw]

121

Funcionalidades Proporcionadas

Login en una máquina remota Ejecución interactiva o no de comandos en equipos remotos

Copiado de ficheros entre diferentes hosts Mecanismo de autenticación de alto rendimiento y comunicación criptográfica segura sobre redes no seguras

Completa sustitución de los comandos “r” Port Forwarding Tunneling

El Protocolo SSH versión 1

Conexión SSH

Cliente Servidor

2Envió de las Host Key& Server Key Públicas

4 Sólo el servidor es capazde descifrar el número aleatorio y sólo él tiene laclave secreta, conocida como clave de sesión

5

Genera un númeroaleatorio de 256 bits(clavesimétrica) y locifra usando las clavespública del servido r

1El cliente abre la conexión

3

Comprueba si la Host Key escorrecta en ~/.ssh/known_hosts

Puerto 22

•El servidor ssh mantiene 2 parejas de claves asimétricas :- host pair : De larga duración y almacenadas en

/etc/ssh/ssh_host_key.pub (pública)/etc/ssh/ssh_host_key (privada)

-Server pair : Cambia cada hora normalmente y no reside en el HD

Page 122: Administration(SLES10) 2[www informatica-practica es mw]

122

Protocolo SSH versión 2

El protocolo SSH versión 1 no tiene un mecanismo para asegurar la integridad de la conexión.

Cualquier atacante puede insertar paquetes con datos en la sesión existente

El protocolo SSH versión 2 contiene mecanismos, conocidos como HMAC (Keyed-Hash Message Authtentication Code), para evitar esto. Están definidos en el RFC-2104

Funcionamiento de SSH2Conexión SSH

Cliente Servidor

2Envió de la Host KeyPública (RSA ó DSA)

4

Como en SSH1, la comunicación se cifrasimétricamente5

Utilizan el algoritmo llamadoDiffie-Hellman por el cual seponen de acuerdo en la clavede sesión

1El cliente abre la conexión

3

Comprueba si la clave escorrecta en ~/.ssh/known_hosts

Puerto 22

La diferencia fundamental con ssh 1 es que aquí se utiliza HMAC paragarantizar la integridad de los mensajes y el empleo del mecanismo Diffie-Hellman para acordar la clave simétrica o de sesión Claves públicas del servidor en :

/etc/ssh/ssh_host_ rsa _key.pub/etc/ssh/ssh_host_ dsa _key.pub

Page 123: Administration(SLES10) 2[www informatica-practica es mw]

123

Configuración de las versiones

Conectando por telnet al puerto 22 podemos ver qué versiones son soportadas SSH-1.5-OpenSSH_3.0p1 – sólo SSH1 SSH-1.99-OpenSSH_3.0p1 – SSH1 y SSH2 SSH-2.0-OpenSSH_3.0p1 – sólo SSH2

El servidor SSH define las versiones soportadas en la instrucción Protocol del fichero /etc/ssh/ssh d_config

El cliente puede configurarlo en el fichero /etc/ssh/ssh_config o al invocar el comando usando ssh -1 ó ssh -2

Comandos del Cliente

ssh : cliente SSH, sustituye a rlogin , rsh y telnet . Nombre alternativo slogin

scp : copia ficheros en modo seguro. Sustituye a rcp

sftp : ofrece un interfaz similar a un cliente ftp en línea de comando (comandos ls, get, put)

ssh-agent : Puede manejar la claves RSA y responder a peticiones del servidor simplificando la autenticación

ssh-keygen : Genera claves RSA

ssh-add : Registra nuevas claves en el agente ssh (ssh-agent)

Page 124: Administration(SLES10) 2[www informatica-practica es mw]

124

El comando ssh

Login con un usuario distinto del local: ssh -l geeko brutus.example.com

o ssh geeko @brutus.example.com

Tunel para aplicaciones gráficas ssh -X brutus.example.com

Ejecución de comandos remotos ssh -l root 192.168.30.29 shutdown -h now

Copia de ficheros remotos scp /etc/passwd [email protected]:/tmp

Práctica

Ejercicio 11-1: Utilización de ssh (pag 11-2 del manual de prácticas)

Page 125: Administration(SLES10) 2[www informatica-practica es mw]

125

Comandos del Servidor

Recoge las claves públicas de host de los servidores SSH y las muestra en la salida estándar para poder compararlas (e incluirlas) con la clave en /etc/ssh/ssh_known_hosts

ssh-keyscan

Agente SSH. El script de inicio se llama /etc/init.d/sshd

sshdDescripciónComando

El servidor prueba su identidad implícitamente ya que sólo puede descifrar la clave de sesión generada por el cliente si tiene la clave privada.

Para que esto funcione el cliente debe asegurarse de que la clave pública que tiene realmente pertenece al servidor.

El cliente comprueba la autenticidad en

/etc/ssh/ssh_known_hosts

o ~/.ssh/known_hosts

La primera vez que conectamos con un servidor podemos importar su clave pública que se guardará en el fichero ~/.ssh/known_hosts

Mecanismos de Autentificación

Page 126: Administration(SLES10) 2[www informatica-practica es mw]

126

Autenticación en el Servidor (I) Hay 4 métodos que se definen en el fichero

/etc/ssh/sshd_config Autenticación basada en el Host

(sshd_config: HostbasedAuthentication )

Basada en los ficheros /etc/hosts.equiv , /etc/shosts.equiv,~/.rhosts o ~/.shosts

Es totalmente insegura y normalmente no soportada por el servidor

Autenticación RSA basada en el Host (sshd_config: RhostsRSAAuthentication )

Combinación de la anterior y RSA.

Sólo soportada en SSH versión 1

Las claves públicas de los clientes se almacenan en el servidor (/etc/ssh/ssh_known_hosts o ~/.ssh/known_hosts )

Ahora es el cliente el que tiene que probar que tiene la clave privada que está almacenada en /etc/ssh/ssh_host_key

Autenticación en el Servidor (II)

Autenticación con clave pública (RSA/DSA)

(sshd_config: RSAAuthentication ) en SSH1 (sshd_config: PubkeyAuthentication ) en SSH2 Es el método más seguro. El usuario prueba que conoce la clave privada mediante un procedimiento de pregunta-respuesta que puede ser llevado a cabo automáticamente por ssh-agent

Autenticación por Clave (sshd_config: PasswordAuthentication) Autenticación vía contraseña Unix. La transferencia de la clave está cifrada

Page 127: Administration(SLES10) 2[www informatica-practica es mw]

127

Autenticación RSA

1. Se pone la clave pública del usuario en el servidor (normalmente en el HOME del usuario)

2. La clave privada únicamente está en el cliente

3. El cliente informa al servidor de qué clave pública se usará para la autenticación

4. El servidor comprueba si tiene la clave

5. El servidor cifra un número aleatorio usando la clave pública y la pasa al cliente

6. Sólo el cliente es capaz de descifrar el número

7. El cliente envía un checksum MD5 del número

Generación de un par de claves Se utiliza el comando ssh-keygen El par es diferente en SSH1 y SSH2 Sin opciones se crea una clave SSH1 y se almacenan en ~/.ssh/identity (privada) y ~/.ssh/identity.pub (pública)

Con la opción -t dsa |rsa se genera una clave SSH2 Ej.:

#ssh-keygen -t rsa La clave privada DSA se almacena en

~/.ssh/id_ dsa y la pública en ~/.ssh/id_ dsa .pub

La clave privada RSA se almacena en ~/.ssh/id_ rsay la pública en ~/.ssh/id_ rsa .pub

Page 128: Administration(SLES10) 2[www informatica-practica es mw]

128

Configuración de la autenticación RSA/DSA

Copiar la clave pública al servidor Guardarla en

~/.ssh/authorized_keystux@earth > scp .ssh/id_dsa.pub sun:tux-pubkey

...

tux@sun > cat tux-pubkey >> .ssh/authorized_keys

Uso de ssh-agent y ssh-add

Cada vez que usamos ssh ó scp se nos pide la contraseña de nuestra clave pública

Para evitar esto se puede usar ssh-agent y ssh-add

Si queremos que funcione en el entorno gráfico hay que añadir dos variables en el fichero ~/ .xsession usessh=“yes” sshagent=“yes”tux@earth > ssh-agent bashtux@earth > ssh-add .ssh/id_rsa

Page 129: Administration(SLES10) 2[www informatica-practica es mw]

129

Práctica

Ejercicio 11-2: Utilización de ssh (pag 11-4 del manual de prácticas)

Objetivos

Acceso remoto seguro con OpenSSH Administración remota con YaST

Page 130: Administration(SLES10) 2[www informatica-practica es mw]

130

Administración Remota

Podemos realizar una administración remota del servidor X a través de VNC.

VNC (virtual network computing) es una solución cliente/servidor que permite controlar un servidor X remoto mediante un navegador WEB (Con soporte Java ), konqueror o un cliente nativo VNC por lo que los 2 sistemas no tienen por que ser del mismo tipo

YaST incluye un módulo para la activación de la administración remota.

Activación desde YaST

YaST -> Servicios de Red ->Administración remota

ó # yast2 remote

Page 131: Administration(SLES10) 2[www informatica-practica es mw]

131

Acceso remoto (1/2) Activamos el aceso remoto arrancando el servicio

xdm /etc/init.d/xdm restart

Podemos acceder de 3 maneras diferentes : Cliente VNC : hostname:5901 Konqueror : vnc://hostname:5901 Navegador WEB con soporte JAVA :

http://hostname:5801

Acceso remoto (2/2) http://hostname:5801

Page 132: Administration(SLES10) 2[www informatica-practica es mw]

132

Práctica

Ejercicio 11-3: Administración remota (pag 11-6 del manual de prácticas)