Professional Documents
Culture Documents
Enterprise Server 10
Administración
Temario
1.- Instalación de SLES 10 7.- Inicio del sistema
6.- Monitorización
1
TEMA 5
Administración de procesos
y de servicios
Objetivos
Ver y manejar procesos
Automatización de tareas
2
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
3
‘foreground’ y ‘background’
comando :
# comando &
4
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.
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 [kswapd]
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
5
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.
6
Comandos nice y renice
nice : permite lanzar un comando o programa alterando la
aumentar la prioridad.
0 max. -20 max.
39 min. 19 min.
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.
7
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
Comando killall
8
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
9
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ándar 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
10
Objetivos
Ver y manejar procesos
Automatización de tareas
Automatización de tareas
11
cron
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-12) día_sem(0-7)* comando_a_ejecutar* = 0 y 7
=domingo
12
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.
crontab.
Si se apaga el sistema, al reiniciarlo se ejecutarán las
13
/etc/crontab
SHELL=/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin:/bin:/usr/lib/news/bin
MAILTO=root
#
# check scripts in cron.hourly, cron.daily, cron.weekly, and
cron.monthly
#
-*/15 * * * * root test -x /usr/lib/cron/run-crons &&
/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
14
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
15
TEMA 6
Monitorización
Objetivos
Monitorizar un SLES 10
Utilización de los servicios de log
Monitorización del acceso al sistema
16
Monitorizar un SLES 10
17
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.
18
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)
19
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
20
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
21
Práctica
Objetivos
Monitorizar un SLES 10
Utilización de los servicios de log
Monitorización del acceso al sistema
22
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
23
/etc/syslog-ng/syslog-ng.conf.in
/etc/syslog-ng/syslog-ng.conf:
Facilities
Hace referencia al subsistema que genera el
mensaje
auth Utilizado por ssh entre otros.
24
/etc/syslog-ng/syslog-ng.conf:
Priorities
La prioridad da detalles sobre la urgencia del
mensaje
emerg El sistema no es usable (es demasiado tarde).
err Error.
notice Mensajes que describen estados normales del sistema que deben ser tenidos en cuenta.
debug genera la mayor cantidad de log. Debería ser utilizada con cuidado.
/etc/syslog-ng/syslog-ng.conf.in
: fileter, destination, log
...
filter f_local4debug { level(debug) and facility(local4); };
filter f_local4info { level(info) and facility(local4); };
filter f_local4 {facility(local4) and match (“ERROR:”); };
25
/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 the
# socket list generated by SuSEconfig using
# variables from /etc/sysconfig/syslog:
#
unix-dgram("/dev/log");
#
# uncomment to process log messages from network:
#
#udp(ip("0.0.0.0") port(514));
};
/var/log/boot.msg
Mensajes producidos durante el arranque
26
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
27
/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 semana
weekly
# Se conservan 4 versiones (=>4 semanas) de los ficheros viejos
rotate 4
# En ese caso el fichero antiguo es salvado con otro nombre creándose uno nuevo vacío
create
# 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 necesidades
include /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
28
Práctica
Objetivos
Monitorizar un SLES 10
Utilización de los servicios de log
Monitorización del acceso al sistema
29
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.139)
root pts/1 2007-04-19 08:49 (192.168.3.139)
geeko pts/2 2007-04-19 10:09 (dhcp15.afina.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 -bash
root pts/1 08:49 0.00s 0.48s 0.03s w
geeko pts/2 10:09 12:19 0.23s 0.23s -bash
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
30
finger
last
31
lastlog
faillog
32
TEMA 7
Objetivos
Proceso de arranque.
GRUB.
Manejo de niveles de ejecución
33
La BIOS y el MBR
1. 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 primer 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
34
Initrd y kernel
6. (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
35
Diagrama de arranque
Se ejecuta... Se cargan los módulos
Se carga en memoria Initrd Initrd init modules
(initramfs) (initramfs) (antes linuxrc)
kernel /sbin/init
Se carga en memoria SI no existe initrd, los
drivers para montar el
sistema de ficheros raiz
estan dentro del kernel.
Generación de initrd
36
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
37
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
/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
38
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
39
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)
40
Arranque del sistema directamente
desde
una
Es posible shell
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 */
41
Práctica
Objetivos
Proceso de arranque.
GRUB.
Manejo de niveles de ejecución
42
Runlevels (Niveles de ejecución)
Un sistema Linux puede encontrase en uno de los varios
estados 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
Runlevel Uso
0 Apaga el sistema.
1 Modo monousuario, utilizado para resolver
problemas y mantenimiento
43
/etc/inittab
Todas las entradas tienen este formato general :
id:runlevels:action:process
En función del campo acción puede variar.
Ej.:
id:5:initdefault:
#especifica el runlevel por defecto
si::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 5
3:2345:respawn:/sbin/mingetty tty3
#El terminal 3 está activo en el runlevel 2,3,4 y 5
44
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/rcX.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.
45
Administración de scripts de arranque (2/2)
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:off 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:off 4:off 5:off 6:off
SuSEfirewall2_init 0:off 1:off 2:off 3:off 4:off 5:off 6:off
SuSEfirewall2_setup 0:off 1:off 2:off 3:off 4:off 5:off 6:off
aaeventd 0:off 1:off 2:off 3:off 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 por YaST (1/2)
Con yast-> Sistema
-> Editor de niveles
de ejecución o
simplemente
yast runlevel.
46
Administración de scripts de
arranque por YaST (1/2)
Modo experto
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
47
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
48
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
49
TEMA 8
Manejo de software
Objetivos
50
Distribución de Software
51
¿ 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
52
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
53
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
54
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 "build@suse.de"
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 9994 A84E DAE8 9C80 0ACA
uid SuSE Package Signing Key <build@suse.de>
sub 2048g/8495160C 2000-10-19 [caduca: 2008-06-21]
55
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
56
Borrado de paquetes RPM
57
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 -qa
filesystem-2002.9.2-56
gdb-5.3-57
aide-0.9-32
...
-qf: Nos dice a que paquete pertenece un fichero
# rpm -qf /bin/cp
fileutils-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
58
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
59
Objetivos
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
60
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
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
61
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
/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
62
TEMA 9
Copias de seguridad
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
cron
63
Estrategias de backup (1/2)
64
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
Trabajo con cintas
cron
65
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
66
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
67
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
68
Backup de los datos del
sistema con YaST (8/8)
Datos resumen del
backup
69
Recuperación de los datos del
sistema con YaST (2/5)
Descripción del
archivo con la copia
de backup
70
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)
71
Práctica
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
cron
72
tar
tar <opciones> fichero directorio
Opciones:
cvf: Empaqueta (c) el contenido de directorio
actual
r: incluye ficheros en archivo tar ya existente
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/.bashrc
Extrae el fichero home/user1/.bashrc contenido en /test1/test.tar sobre el
directorio /test2
73
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.tar.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)
74
Práctica
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
cron
75
Trabajo con cintas
76
Posicionamiento de la cinta
77
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 comprobar 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
cron
78
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
79
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
Trabajo con cintas
cron
80
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
81
Práctica
Objetivos
Estrategias de backup
Backup de ficheros con YaST
Creación de Backups con tar
cron
82
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
83
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
84
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
85
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
86
Añadir impresoras locales con
YaST (4/4)
Finaliza la
configuración
de la cola
87
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/
Al arrancar YaST-
>hardware-
>impresora
pulsamos Añadir
88
Impresoras de red (4/11)
Seleccionamos
Impresora de
red
Seleccionamos
el protocolo de
impresión
Veremos a
continuación la
configuración
para CUPS y
Socket o
impresión directa
89
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.c
onf se añade una
entrada:
ServerName IP
90
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
91
Impresoras de red: Socket
(10/11)
Impresoras en red
como las HP DirectJet
soportan la Impresión
directa a través del
puerto TCP
92
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
93
Práctica
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
94
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
System V:
lp -d cola -o opcion fichero
95
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
96
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
97
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
98
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
99
Práctica
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
100
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)
101
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.Contabilidad
3.Conversión al formato específico de la
impresora
4.Salida hacia la impresora
102
Filtrado o conversión de datos a
imprimir (4/5)
Los pasos que cups cubre son los siguientes:
1.Conversión a PostScript
2.Contabilidad
3.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 PostScript: 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
103
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
104
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
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
105
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
106
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.25
5
10.255.255.255
@LOCAL
107
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
108
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
109
Restricción de acceso al
interfaz web
El fichero El tipo de autenticación
/etc/cups/cups.conf BasicDigest utiliza como
viene configurado para base de datos de
restringir el acceso al passwords el fichero
interfaz web de /etc/cups/passwd.md5
administración de Inicialmente no hay definido
CUPS ningún usuario
<Location /admin> Para generar este fichero y
AuthType BasicDigest
AuthClass Group
añadir el primer usuario
AuthGroupName sys al grupo sys:
Order Deny,Allow lppasswd -a root -g sys
Deny From All
Allow From 127.0.0.1
El nombre del usuario no
</Location> tiene porque existir en
en el sistema Linux
Práctica
110
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
111
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
112
Práctica
TEMA 11
Acceso remoto
113
Objetivos
114
Algoritmos de clave pública (1/4)
K-1 K-2
K-1 K-2
K-1 K-1
115
Algoritmos de clave pública (2/4)
K-1 K-2
K-2 K-1
K-2 K-2
Clave Clave
Privada Pública
Clave Clave
Privada Pública
Clave Clave
Pública Privada
116
Comparación de algoritmos de
encriptación
DES 56 bits
3DES 168 bits
Clave
simétrica IDEA 128 bits (uso no comercial libre
Clave
Pública
RSA/DSA 512, 1024, 2048
bits
117
Funciones Hash (1/4)
Función
hash
En las líneas de sintaxis, salvo que se
indique lo contrario, el texto en
minúscula representa parámetros
reemplazables, mientras que el texto
en mayúsculas debe escribirse tal affg#12!5g3U8…
como aparece...
N. Cte. de caracteres
118
119
Funciones Hash (4/4)
MD5
•Message Digest 5
•Desarrollado por RSA
•128 bit
SHA-1
•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
120
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
Cliente Servidor
Genera un número
4 Sólo el servidor es capaz
aleatorio de 256 bits(clave
simétrica) y lo de descifrar el número
cifra usando las claves aleatorio y sólo él tiene la
5
pública del servidor clave secreta, conocida
como clave de sesión
121
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 SSH2
Conexión SSH
Cliente Servidor
/etc/ssh/ssh_host_rsa_key.pub
/etc/ssh/ssh_host_dsa_key.pub
122
Configuración de las versiones
123
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 geeko@brutus.exa.com:/tmp
Práctica
124
Comandos del Servidor
Comando Descripción
sshd Agente SSH. El script de inicio se llama
/etc/init.d/sshd
ssh-keyscan 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
Mecanismos de Autentificación
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
125
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
126
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
#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_rsa
y la pública en ~/.ssh/id_rsa.pub
127
Configuración de la
autenticación RSA/DSA
Copiar la clave pública al servidor
Guardarla en
tux@earth > scp .ssh/id_dsa.pub sun:tux-
~/.ssh/authorized_keys
pubkey
...
128
Práctica
Objetivos
129
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.
130
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
http://hostname:5801
131
Práctica
132