You are on page 1of 18

Cap tulo 15

Servicio de administracin por Web: o WebMin


Para acceder a la conguracin de Webmin, si no hemos cambiado los puertos por defecto: o http://127.0.0.1:10000, o http://localhost:10000 , https si usamos SSL Webmin est dividido en diversos mdulos. Cada uno de estos se encarga de la administracin de una a o o parte concreta del sistema operativo y de los diferentes servicios que tengamos instalados. Crea una conguracin para cada uno de los mdulos basndose en la estructura de cheros y cono o a guracin predeterminada para la versin y distribucin de Linux seleccionadas. o o o Los mdulos incluidos por defecto en Debian nos permiten administrar entre otros servicios Apache, o Squid, Bind, Exim, Fetchmail, Samba, MySql, etc. Nota: Un problema que puede producirse en determinadas circunstancias es que una vez nalizada la instalacin algunos de los mdulos que componen Webmin no funcionen correctamente. Esto suele ser o o debido a que alguna parte del software se ha instalado en directorios que no son estndar en Linux. a

15.1.

Usuarios de Webmin

El usuario por defecto es el root, una vez que entramos en Webmin podemos crearnos uno o varios usuarios de administracin Webmin. o En el caso de que se nos olvide la contrasea de acceso y tengamos acceso como root al ordenador, se n puede crear una nueva utilizando el comando: /usr/share/webmin/.changepass.pl /etc/webmin usuario nuevo_password En el mdulo usuarios de Webmin se encuentran las diferentes opciones disponibles para denir y o congurar los usuarios que tendrn acceso a Webmin. Permite al administrador del sistema crear diferentes a usuarios para determinadas tareas. Por ejemplo, si el ordenador se utiliza como servidor de correo, podemos crear un usuario que tan slo tenga acceso al mdulo de administracin de Exim, o si se emplea como o o o servidor de impresin crear o amos un usuario que pudiera administrar las colas de impresin. o De esta forma es posible crear diferentes usuarios en funcin de los mdulos a los que tendrn acceso, o o a delegando fcilmente la administracin de determinados servicios del ordenador a diferentes usuarios y a o siendo posible incluso determinar que aspectos de un determinado servicio podr administrar. a

15.2.

Secciones Webmin

La seccin Webmin nos da acceso a las diferentes opciones de conguracin de Webmin, as como a o o los logs de actuaciones, el ndice de servidores Webmin y los usuarios Webmin.

280

Servidor Linux para conexiones seguras de una LAN a Internet

Desde el mdulo de conguracin de Webmin podemos cambiar los aspectos ms importantes del o o a propio Webmin como instalar nuevos mdulos, actualizar Webmin, cambiar el idioma, aadir, eliminar o o n modicar usuarios de Webmin, cambiar el puerto utilizado, etc.

Figura 15.1: Webmin pantalla de conguracin o

Control de acceso a IP
Ya que Webmin tienen su propio servidor web (miniserv.pl) desde esta opcin podemos seleccionar o qu direcciones de red (como 192.168.100.0), direcciones de host (como 192.168.100.7) o nombres de hosts e (linux.upc.es) es posible acceder a Webmin. Es aconsejable limitar el acceso a Webmin al m nimo de ordenadores que sea posible para evitar de esta forma intentos de acceso no autorizados.

Puerto y direcciones
En esta opcin estableceremos el puerto utilizado para acceder a Webmin, por defecto 10000. En el caso o de que nuestro ordenador tenga asignada ms de una direccin IP tambin podremos establecer qu dia o e e reccin IP deber atender el servidor web de Webmin, ya que por defecto el servidor aceptar peticiones o a a realizadas a cualquiera de las direcciones IP asignadas al sistema.

Diario
Desde aqu conguraremos la forma en que Webmin guardar un registro de las acciones realizadas. a De esta forma podremos monitorizar fcilmente las actuaciones realizadas por los diferentes usuarios a los a que proporcionemos acceso a Webmin. Webmin nos permite guardar en el historial las acciones realizadas en funcin del mdulo utilizado o o o del usuario. Se permite programar cuando se limpiar el historial para evitar que el tamao del mismo a n crezca en exceso.

Servidores Proxy
Webmin dispone de diferentes herramientas que necesitan disponer de acceso a Internet para funcionar correctamente, como es el caso de la herramienta de actualizacin de Webmin. Desde esta opcin cono o guraremos el acceso a Internet de Webmin en el caso de que estemos utilizando un servidor proxy o un cortafuegos para acceder a Internet

Interfaz de usuario
El interfaz de usuario de Webmin puede ser modicado de diferentes formas para ajustarse a las preferencias de cada uno de los usuarios.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 15. Servicio de administracin por Web: WebMin o

281

Desde esta opcin se modican los colores y tipos de letras utilizados para visualizar las pginas de o a Webmin.

Mdulos de Webmin o
Webmin est formado por diversos mdulos. cada uno de estos mdulos se encargan de realizar una a o o tarea determinada interrelacionada con el servidor web de Webmin (miniserv.pl). Desde esta opcin, aadiresmo, actualizaremos o eliminaremos los mdulos utilizados por Webmin. o n o Est se encuentra dividida en tres secciones: a Instalar mdulo o Clonar mdulo o Borrar mdulos o Instalar mdulo La seccin Instalar mdulo permite instalar un nuevo mdulo de Webmin, ya sea o o o o desde un archivo que se encuentre en el ordenador o desde un archivo que tenga que descargarse de Internet. Estos mdulos Webmin son archivos de extensin .wbm o o Clonar un mdulo Esta opcin permite al administrador del sistema duplicar un mdulo para permio o o tir a determinados usuarios administrar ciertos servicios. As por ejemplo, si tenemos dos conguraciones , diferentes de Apache ejecutndose en el ordenador, con esta opcin duplicaremos el mdulo de administraa o o cin de Apache para permitir a diferentes usuarios acceder de forma independiente a la versin de Apache o o que sea necesario. Eliminar mdulos Desde esta ultima seccin, seleccionaremos y borraremos aquellos mdulos que no o o o nos sean de inters o no se vayan a utilizar. As por ejemplo, si no tenemos instalado en nuestro ordenador e , PostgreSQL podemos eliminar el mdulo utilizando para su administracin. o o

Sistema operativo
Desde esta opcin podremos especicar cual es nuestro sistema operativo. Este proceso deber realizarse o a si, por ejemplo, hemos actualizado el sistema operativo instalando una versin nueva, la cual modica la o estructura de directorios en los que se guardaba la conguracin de los diferentes servicios del sistema. o

Lenguaje
Se emplea para seleccionar el idioma utilizado para visualizar los textos en los mdulos. o

Opciones de pgina a ndice


En esta opcin seleccionaremos el formato de la pgina inicial de Webmin y de las diferentes pginas o a a ndice de cada una de las categor existentes, indicando el nmero de iconos a visualizar en cada la. as u Tambin podemos indicar si queremos agrupar los mdulos en funcin de la categor a la cual pertee o o a necen.

Mejorar Webmin
Desde esta pgina es posible actualizar Webmin a la ultima versin disponible de forma automtica o a o a desde un archivo que hayamos descargado de Internet. Utiliza un gestor de paquetes para realizar la tarea, en nuestro caso apt.
Jose Antonio Escart Vigo, Junio 2005. n

282

Servidor Linux para conexiones seguras de una LAN a Internet

Autenticacin o
Webmin proporciona algunas caracter sticas orientadas a prevenir ataques como puede ser el intentar averiguar la contrasea de administracin a base de probar diferentes contraseas de forma automtica n o n a hasta encontrar la correcta. En el caso de que nuestro ordenador y Webmin sean accesibles desde Internet es recomendable utilizar las caracter sticas de autenticacin proporcionadas por Webmin para proteger nuestro sistema de posibles o ataques. La primera opcin que encontramos en la cha es Tiempo mximo de clave de acceso. Si activamos o a esta opcin, se bloquear el acceso al ordenador si se producen una serie de fallos en unos segundos o a determinados, esto indicar que alguien est ejecutando una aplicacin automtica para descubrir a a o a nuestra contrasea. n La Autenticacin de sesin nos proporciona un mtodo para desconectar un usuario de Webmin si o o e transcurre un determinado tiempo sin que ste realice alguna operacin. e o Tambin podemos especicar si permitimos el acceso a Webmin empleando las cuentas de usuario e del sistema en lugar de emplear las cuentas de usuario denidas desde Webmin. Hay que tener mucho cuidado con esta opcin, cualquier usuario que tenga acceso al sistema, sea administrador o o no, podr trabajar con Webmin. a

Reasignando mdulos o
Como ya se ha comentado Webmin agrupa los mdulos instalados en diferentes categor o as. Estas categor estn denidas en funcin de la tarea que realiza el mdulo. Desde estas opcin Webmin nos as a o o o permite asignar un mdulo a una nueva categor en el caso de que no estemos de acuerdo con la categor o a a asignada por defecto. Algunos mdulos desarrollados antes de que se crearan las categor en Webmin se asignan por defecto o as a la categor Otros. a

Editar categor as
Utilizaremos esta opcin para crear nuevas categor o editar las existentes. o as

Temas de Webmin
En estas seccin se puede modicar el aspecto y los colores de Webmin, utilizando temas. o Los temas de Webmin son muy exibles, permitiendo al desarrollador modicar prcticamente cualquier a aspecto de la apariencia y distribucin de los elementos de Webmin. o

Referenciadores de conanza
Al estar basado en archivos web y accederse a l desde un navegador web, uno de los peligros con los e que podemos encontrarnos es el hecho de que la informacin de autenticacin se guarda en el navegador o o y puede ser reenviada de forma automtica desde l. Esto puede causar que otro usuario que emplee el a e mismo navegador tenga acceso a nuestro sistema sin conocer tan si quiera la contrasea o nombre de n usuario de Webmin. En esta seccin podremos indicar que hosts tienen acceso a Webmin, limitando de esta forma desde o qu ordenadores se podr utilizar. e a

Acceso annimo a mdulo o o


Esta seccin permite garantizar acceso a mdulos selectos de Webmin y a trayectorias sin necesidad o o de que los clientes hagan login.
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 15. Servicio de administracin por Web: WebMin o

283

Bloqueo de archivo
Permite bloquear un archivo para que no sea modicado por varios usuarios al mismo tiempo y esto pueda producir incoherencias en el sistema.

Encriptacin SSL o
Si tenemos instaladas en nuestro ordenador las librer OpenSSL y el mdulo de Perl Net::SSLeay as o podremos emplear conexiones encriptadas con SSL para acceder a Webmin. Para acceder a Webmin utilizaremos una conexin segura, de la forma: o https://127.0.0.1:10000, https://localhost:10000 o As incrementaremos la seguridad de Webmin, ya que la informacin, como por ejemplo el nombre de o usuario y contrasea, se enviar de forma encriptada. n a Aunque se instala OpenSSL por defecto en la mayor de distribuciones de Linux actuales, es posible a que no tenga instalado Net::SSLeay. Para instalar OpenSSL y Net::SSLeay deberemos instalar los siguientes paquetes: #apt-get install openssl #apt-get install libnet-ssleay-perl

Autoridad de certicado
Esta opcin se emplea para congurar un certicado SSL para el sistema. De esta forma es posible o congurar Webmin para que no sea necesario proporcionar un usuario y contrasea para utilizarlo. Los n usuarios pueden solicitar un certicado personal en el mdulo de usuarios de Webmin y agregarlo al o navegador, de esta forma el navegador podr autenticarse de forma automtica y segura. a a El problema que puede surgir al utilizar este mtodo de autenticacin es que cualquier usuario con e o acceso a un navegador que contenga un certicado vlido para acceder a Webmin podr utilizar las a a herramientas de administracin. Este mtodo tambin invlida pol o e e a ticas de seguridad como la desconexin o del usuario despus de un determinado periodo de inactividad, ya que simplemente volviendo a abrir el e navegador podr amos acceder.

15.3.

Mdulos de Webmin o

Existen diversos mdulos, que podemos instalar con apt y que permiten congurar de forma rpida o a y grca muchas partes del sistema. En la tabla 15.1 podemos observar algunos, solo he colocado los a mdulos ms utiles. La mayor de ellos han sido utilizados durante la elaboracin del proyecto. o a a o Podemos buscar ms mdulos Webmin dentro del sistema Debian con apt-cache: a o #apt-cache search webmin Otra fuente de mdulos para Webmin la encontraremos en la pgina: o a http://webadminmodules.sourceforge.net/ Aqu hallaremos una gran cantidad de mdulos agrupados por categor o as.

Para instalar los mdulos, simplemente realizaremos un apt: o #apt-get install <m\odulo>

Jose Antonio Escart Vigo, Junio 2005. n

284

Servidor Linux para conexiones seguras de una LAN a Internet En la siguiente tabla se muestran la mayoria de los mdulos disponibles en nuestro sistema Debian: o

Cuadro 15.1: Mdulos Debian para Webmin o Tipo de operacin o Gestin del servidor o Mdulo o webmin-virtual-server webmin-lilo webmin-grub webmin-status webmin-fsdump webmin-inetd webmin-lemanager webmin-software webmin-pserver webmin-core webmin-adsl webmin-bandwidth webmin-dhcp webmin-bind webmin-nis webmin-exports webmin-samba webmin-proftpd webmin-updown webmin-telnet webmin-ldap-user-simple webmin-ldap-netgroups webmin-mysql webmin-usermin webmin-quota webmin-lpadmin webmin-apache webmin-webalizer webmin-exim webmin-fechmail webmin-procmail webmin-spamassassin webmin-jabber webmin-sshd webmin-rewall webmin-squid webmin-snort webmin-portsentry webmin-logrotate Funcin o Administracin remota o Gestor de arranque Lilo Gestor de arranque Grub Estado del servidor Copias de seguridad Superservidor Archivos Paquetes instalados Versiones concurrentes Mdulos core o Cliente PPPoE Monitor de red DHCP BIND DNS NIS NFS Samba ProFTPD FTP Telnet LDAP usuario LDAP redes MySql Usuarios Cuotas de disco Cuotas de impresin o Apache Estad sticas web Correo corporativo Exim Correo externo Fechmail Procesador de correo Procmail Filtro SpamAssassin Mensajer Jabber a SSH IPTables Squid IDS Snort IDS puertos IDS logs

Gestin de paquetes o

Gestin de la red o

Servicios de red

Gestin de usuarios o

Servicios de usuario

Gestin de seguridad o

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 15. Servicio de administracin por Web: WebMin o

285

Una vez instalados todos los mdulos necesarios para el proyecto pasemos a ver gracamente las seco ciones de nuestro servidor.

Figura 15.2: Pantallas de la interfaz Webmin (I)

Jose Antonio Escart Vigo, Junio 2005. n

286

Servidor Linux para conexiones seguras de una LAN a Internet

Figura 15.3: Pantallas de la interfaz Webmin (II)

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 16

Servicios de monitorizacin del o sistema


Para tener bajo control el sistema, es muy importante tener informacin esencial de su rendimiento: o procesos en ejecucin, cantidad de memoria disponible, n.o de particiones, etc. o

16.1.

Monitor del sistema: Top

Proporciona una visin continuada de la actividad del procesador en tiempo real, muestra las tareas o que ms uso hacen de la CPU, y tiene una interfaz interactiva para manipular procesos. a Las cinco primeras l neas muestran informacin general del sistema: o Las estad sticas del comando uptime Estad sticas sobre los procesos del sistema (nmero de procesos, procesos durmiendo, procesos ejeu cutndose, procesos zombies y procesos parados). a El estado actual de la CPU (porcentaje en uso por usuarios, por el sistema, por procesos con valor nice positivo, por procesos esperando E/S, tratando interrupciones hardware y software o desocupada). La memoria (memoria total disponible, usada, libre, compartida, usada como buer de E/S y en cach, cantidad total de buer o memoria cach de pgina, en kilobytes, que est en uso activo, e e a a cantidad total de buer pginas de la cach que podr quedar libres, cantidad total de buer o a e an pginas de la cach que estn libres y disponibles.) a e a El espacio de swap (swap total disponible, usada y libre). El resto es similar al del ps, con los procesos ordenados decrecientemente por el uso de la CPU. La lista es actualizada de forma interactiva, y adems se permite realizar una serie de tareas sobre los a procesos, como por ejemplo: Cambiar la prioridad de alguno utilizando el comando r. Matar o enviar una seal con el comando k. n Ordenarlos segn diferentes criterios (por PID con N, uso de CPU con P, tiempo con A, etc.). u Con n se cambia el nmero de procesos que se muestran. u Para salir se utiliza la letra q.

288

Servidor Linux para conexiones seguras de una LAN a Internet

Resulta muy recomendable siempre tener top funcionando en uno de los terminales, para poder ver de forma rpida si hay cargas excesivas en el sistema. a En el siguiente ejemplo podemos observar lo que se ver habitualmente: a
$top top - 15:52:23 up 3:39, 4 users, load average: 0.46, 0.22, 0.29 Tasks: 96 total, 1 running, 95 sleeping, 0 stopped, 0 zombie Cpu(s): 13.9% us, 2.6% sy, 0.0% ni, 83.5% id, 0.0% wa, 0.0% hi, 0.0% si Mem: 511948k total, 491884k used, 20064k free, 63432k buffers Swap: 979924k total, 0k used, 979924k free, 250764k cached PID 4359 4479 4501 4918 10072 4642 4475 4503 4512 1 2 3 4 9 18 111 125 246 247 249 248 256 257 258 259 260 261 262 881 1104 1114 1117 ... USER root josan josan josan josan josan josan josan josan root root root root root root root root root root root root root root root root root root root root root root root PR NI VIRT RES SHR S %CPU %MEM 6 -10 107m 39m 5672 S 9.9 7.9 15 0 22700 13m 9656 S 1.3 2.7 15 0 18992 9.9m 7920 S 1.3 2.0 15 0 30828 12m 8624 S 1.3 2.6 16 0 2132 1064 832 R 1.0 0.2 15 0 56140 33m 19m S 0.7 6.6 16 0 12556 7396 6176 S 0.3 1.4 15 0 17160 8376 6884 S 0.3 1.6 15 0 18568 8576 7012 S 0.3 1.7 16 0 1584 512 452 S 0.0 0.1 34 19 0 0 0 S 0.0 0.0 10 -5 0 0 0 S 0.0 0.0 10 -5 0 0 0 S 0.0 0.0 10 -5 0 0 0 S 0.0 0.0 10 -5 0 0 0 S 0.0 0.0 10 -5 0 0 0 S 0.0 0.0 16 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 17 -5 0 0 0 S 0.0 0.0 25 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 25 0 0 0 0 S 0.0 0.0 25 0 0 0 0 S 0.0 0.0 25 0 0 0 0 S 0.0 0.0 17 -5 0 0 0 S 0.0 0.0 17 -5 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 17 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 15 0 0 0 0 S 0.0 0.0 TIME+ 11:00.41 0:06.16 0:08.43 0:20.18 0:00.16 8:53.77 0:08.92 0:10.62 0:33.27 0:01.07 0:00.00 0:00.85 0:00.00 0:00.00 0:01.90 0:00.04 0:00.24 0:00.55 0:02.41 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 0:00.00 COMMAND XFree86 gnome-panel wnck-applet gnome-terminal top kile metacity multiload-apple clock-applet init ksoftirqd/0 events/0 khelper kthread kacpid kblockd/0 khubd pdflush pdflush aio/0 kswapd0 cifsoplockd jfsIO jfsCommit jfsSync xfslogd/0 xfsdatad/0 xfsbufd kseriod khpsbpkt knodemgrd_0 pccardd

16.2.

Rendimiento del sistema

Al determinar el rendimiento del sistema se debe: 1. Denir el problema con todo el detalle que sea posible. 2. Determinar la causa o causas del problema. 3. Formular expl citamente los objetivos para mejorar el rendimiento del sistema. 4. Disear e implementar las modicaciones al sistema y/o programas de aplicacin diseados para n o n llevar a cabo esos. 5. Monitorizar el sistema para determinar si los cambios realizados han sido efectivos. 6. Ir de nuevo al primer paso y volver a empezar, habr un nuevo problema a resolver. a

16.2.1.

CPU, dispositivos y particiones de E/S: iostat

Para instalarlo hay que ejecutar el siguiente comando: # apt-get install sysstat Presenta estad sticas sobre la CPU y los dispositivos y particiones de E/S. Para ejecutarlo: $iostat

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 16. Servicios de monitorizacin del sistema o Y un ejemplo del comando ser a: # iostat Linux 2.6.11 (debian) cpu-med: %user 12,55 %nice 0,10 tps 2,12 0,01 26/05/05 %sys %iowait 1,85 1,82 Blq_leid/s 35,58 0,08 %idle 83,68 Blq_leid 581224 1384 Blq_escr 231256 0

289

Device: hda hdc

Blq_escr/s 14,16 0,00

Donde el signicado de las columnas es el siguiente: tps: n.o de transferencias por segundo Blq leid/s: n.o de bloques le dos por segundo Blq escr/s: n.o de bloques escritos por segundo Blq leid: n.o total de bloques le dos Blq escr: n.o total de bloques escritos

16.2.2.

Memoria: free

Se utiliza para obtener informacin sobre el estado de la memoria, (el signicado de los campos es o mismo que en top). Este podr ser un ejemplo de su uso: a # free total Mem: 511948 -/+ buffers/cache: Swap: 979924 used 472644 178392 0 free 39304 333556 979924 shared 0 buffers 63548 cached 230704

16.2.3.

Memoria virtual: vmstat

Si queremos obtener informacin sobre la memoria virtual utilizaremos este comando. o Esto podr ser una salida t a pica: # vmstat procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---r b swpd free buff cache si so bi bo in cs us sy id wa 0 0 0 38528 63620 230752 0 0 17 7 1063 255 12 2 84 2 En la siguiente tabla muestro el signicado de las columnas: r: nmero de procesos esperando su tiempo de ejecucin. u o b: nmero de procesos en espera u w: nmero de procesos en espacio de intercambio u us: tiempo de usuario como porcentaje del tiempo total
Jose Antonio Escart Vigo, Junio 2005. n

290

Servidor Linux para conexiones seguras de una LAN a Internet sy: tiempo de sistema como porcentaje del tiempo total id: tiempo de inactividad como porcentaje de tiempo total Si ejecutamos con la opcin: $vmstat 2, refresca cada segundo. o

16.2.4.

Disco: df, du

Para poder observar estad sticas del disco utilizaremos estos comandos: df: por cada sistema de cheros informa de su capacidad, del espacio libre, del espacio usado y del punto de montaje du: cantidad de espacio utilizado por un directorio, y todos los subdirectorios que hayan en l. e Esto es la salida de mi sistema para el comando df: # df S.ficheros /dev/hda4 tmpfs /dev/hda5 /dev/hda7 /dev/hda8 /dev/hda9 /dev/hda10 /dev/hda11 none Bloques de 1K Usado 1921188 127236 255972 8 1921156 22344 1921156 324 964500 505948 3842376 3656336 2284880 150528 31246392 29145696 5120 3216 Dispon Uso% Montado en 1696360 7% / 255964 1% /dev/shm 1801220 2% /boot 1823240 1% /tmp 409556 56% /var 0 100% /usr 2018284 7% /home 2100696 94% /mnt/ntfs 1904 63% /dev

Se puede ver que el disco tiene un grave problema en /usr, ya que est en uso al 100 %. Hay que liberar a espacio para que el sistema funcione correctamente. Con el comando #du -sh, se muestra el espacio usado por los archivos y directorios del directorio actual.

16.2.5.

Usuarios y sus procesos: w

Sirve para determinar que usuarios estn conectados y qu estn haciendo. a e a El siguiente ejemplo ilustra el comando: # w 17:07:08 USER josan josan up 4:54, 2 users, TTY FROM :0 pts/4 :0.0 load average: 0,31, 0,22, 0,26 LOGIN@ IDLE JCPU PCPU WHAT 12:18 ?xdm? 36:34 1.54s x-session-manag 15:53 1.00s 0.11s 25.63s gnome-terminal

Las columnas que aparecen signican lo siguiente: JCPU: tiempo usado por todos los procesos asociados a ese terminal (incluye los procesos en segundo plano actuales, pero no los pasados) PCPU: tiempo de CPU usado por el proceso actual

16.3.

Gestionar procesos

Para poder observar y modicar el funcionamiento de nuestros procesos disponemos de las siguientes herramientas:
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 16. Servicios de monitorizacin del sistema o

291

16.3.1.

Visualizar procesos: ps

El comando ps, abreviatura de proceso, nos ensea todos los procesos que se estn ejecutando en un n a sistema, algo que puede ser muy util para determinar si existe algn proceso ejecutndose en segundo u a plano que no deber estar ejecutndose. a a En la tabla 16.1 podemos observar una lista de las opciones del comando: Cuadro 16.1: Opciones del comando ps Opcin o A a u x -u<user> Descripcin o Muestra los procesos de todos los usuarios Muestra los procesos de los usuarios para todos los procesos con tty (terminal) Muestra el nombre del usuario del proceso Muestra los procesos con control de tty Muestra los procesos del usuario

A continuacin muestro las opciones mas comunes: o $ps $ps aux $ps al $ps -u<user> La informacin se encuentra subdividida en las siguientes columnas: o USER: usuario que lanz el programa o PID: Identicador del proceso PPID: Identicador del proceso padre %CPU: Porcentaje entre el tiempo usado realmente y el tiempo que lleva en ejecucin. o %MEM: Fraccin de memoria consumida (es un porcentaje estimado) o SIZE: Tamao virtual del proceso: cdigo + datos + pila n o RSS: Memoria real usada STAT: Estado del proceso R: en ejecucin o S: durmiendo I: esperando T: parado D: esperando una E/S W: no tiene pginas residentes a N: prioridad > <: prioridad < 0 Si se observa algn servicio misterioso ejecutndose, hay que investigar un poco ms. u a a

Jose Antonio Escart Vigo, Junio 2005. n

292 Un ejemplo de esto ser a:


$ ps aux USER root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root root message hal root root root root root root root root josan root root root root root root root root root root root root josan josan josan josan josan josan josan root josan josan josan josan josan josan josan josan josan josan josan josan PID %CPU %MEM VSZ RSS TTY 1 0.0 0.0 1584 472 ? 2 0.0 0.0 0 0 ? 3 0.0 0.0 0 0 ? 4 0.0 0.0 0 0 ? 9 0.0 0.0 0 0 ? 18 0.0 0.0 0 0 ? 111 0.0 0.0 0 0 ? 125 0.0 0.0 0 0 ? 277 0.0 0.0 0 0 ? 276 0.0 0.0 0 0 ? 284 0.0 0.0 0 0 ? 285 0.0 0.0 0 0 ? 286 0.0 0.0 0 0 ? 287 0.0 0.0 0 0 ? 288 0.0 0.0 0 0 ? 289 0.0 0.0 0 0 ? 290 0.0 0.0 0 0 ? 352 0.0 0.0 0 0 ? 951 0.0 0.0 0 0 ? 1175 0.0 0.0 0 0 ? 1185 0.0 0.0 0 0 ? 1188 0.0 0.0 0 0 ? 1241 0.0 0.0 0 0 ? 1259 0.0 0.0 0 0 ? 1343 0.0 0.0 1572 392 ? 2990 0.0 0.0 0 0 ? 2991 0.0 0.0 0 0 ? 2992 0.0 0.0 0 0 ? 3924 0.0 0.1 2876 520 ? 4189 0.0 0.1 2328 656 ? 4192 0.0 0.0 3128 488 ? 4221 0.0 0.1 1580 612 ? 4250 0.0 0.1 2160 880 ? 4255 0.1 0.6 8136 3236 ? 4265 0.0 0.0 2316 508 ? 4386 0.0 0.0 1600 484 ? 4390 0.0 0.0 1572 456 ? 4399 0.0 0.1 3544 660 ? 4423 0.0 0.2 4820 1148 ? 4532 0.0 0.2 2816 1028 ? 4533 0.0 0.2 2816 1028 ? 4534 0.0 0.1 11788 536 ? 4553 0.0 0.3 3440 1908 ? 4567 0.0 0.1 2448 608 ? 4677 0.0 0.3 9184 1684 ? 4694 0.0 0.1 1820 744 ? 4699 0.0 0.3 9476 1772 ? 4701 0.0 0.4 10032 2164 ? 4749 0.0 0.0 1580 416 tty1 4750 0.0 0.0 1580 416 tty2 4751 0.0 0.0 1580 416 tty3 4752 0.0 0.0 1580 416 tty4 4753 0.0 0.0 1580 416 tty5 4754 0.0 0.0 1580 416 tty6 4819 7.5 43.4 238624 222152 ? 5133 0.0 0.0 3072 428 ? 5135 0.0 1.1 10068 5812 ? 5140 0.0 0.1 2328 772 ? 5142 0.0 0.4 5620 2240 ? 5169 0.0 0.4 9060 2196 ? 5182 0.0 1.1 16628 6052 ? 5206 0.0 1.9 18972 9720 ? 8911 0.0 0.0 0 0 ? 10637 0.0 1.8 22600 9304 ? 10640 0.0 1.7 22296 8796 ? 10642 0.0 1.9 24068 9896 ? 10644 0.0 2.5 26808 13056 ? 10738 0.0 2.9 31816 14972 ? 13198 0.0 2.6 26084 13540 ? 14623 1.9 13.4 83728 68852 ? 14624 0.0 0.3 3280 1640 pts/0 17531 0.0 1.9 24276 10036 ? 20028 0.0 0.1 2276 664 ? 20029 0.0 0.3 3284 1644 pts/1 20042 0.0 0.1 2564 844 pts/1 STAT S SN S< S< S< S< S< S S< S S S S S S< S< S S S S S S S< S S<s S S S Ss Ss Ss Ss Ss Ss Ss Ss SNs Ss Ss S S S Ss Ss Ss Ss Ss S Ss+ Ss+ Ss+ Ss+ Ss+ Ss+ S< Ss S S Ss Ss Ss S S Ss S S S S S S Ss+ S S Ss R+ START 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:50 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 11:51 12:01 12:01 12:01 12:01 12:01 12:01 12:01 14:20 15:07 15:07 15:07 15:07 15:07 16:43 17:33 17:33 19:23 21:03 21:03 21:04 TIME 0:01 0:00 0:01 0:00 0:00 0:06 0:00 0:00 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:03 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:34 0:00 0:00 0:02 0:00 0:00 0:00 0:00 0:00 0:30 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 0:00 41:44 0:00 0:01 0:00 0:00 0:04 0:01 0:16 0:03 0:00 0:00 0:00 0:01 0:08 0:02 4:05 0:00 0:00 0:00 0:00 0:00

Servidor Linux para conexiones seguras de una LAN a Internet

COMMAND init [2] [ksoftirqd/0] [events/0] [khelper] [kthread] [kacpid] [kblockd/0] [khubd] [aio/0] [kswapd0] [cifsoplockd] [jfsIO] [jfsCommit] [jfsSync] [xfslogd/0] [xfsdatad/0] [xfsbufd] [shpchpd_event] [kseriod] [khpsbpkt] [knodemgrd_0] [pccardd] [exec-osm/0] [pktgen/0] udevd [kjournald] [kjournald] [kjournald] dhclient3 -pf /var/run/dhclient.eth0.pid -lf /var/run/dhdaemon /sbin/syslogd /sbin/klogd /usr/sbin/acpid -c /etc/acpi/events -s /var/run/acpid.soroot /usr/bin/dbus-daemon-1 --system /usr/sbin/hald --drop-privileges /usr/sbin/inetd /sbin/cardmgr /usr/sbin/powernowd -q /usr/sbin/sshd /usr/bin/X11/xfs -daemon /bin/bash /etc/rc2.d/S20xprint start /bin/bash /etc/rc2.d/S20xprint start /usr/bin/Xprt -ac -pn -nolisten tcp -audit 4 -fp /usr/X1root /usr/sbin/famd -T 0 /sbin/rpc.statd /usr/bin/perl /usr/share/webmin/miniserv.pl /etc/webmin/daemon /usr/sbin/cron /usr/bin/gdm /usr/bin/gdm /sbin/getty 38400 tty1 /sbin/getty 38400 tty2 /sbin/getty 38400 tty3 /sbin/getty 38400 tty4 /sbin/getty 38400 tty5 /sbin/getty 38400 tty6 /usr/X11R6/bin/X :0 -audit 0 -auth /var/lib/gdm/:0.Xauthjosan /usr/bin/ssh-agent x-session-manager /usr/lib/gconf2/gconfd-2 5 /usr/bin/gnome-keyring-daemon /usr/lib/bonobo-activation/bonobo-activation-server --acjosan gnome-smproxy --sm-config-prefix /.gnome-smproxy-ghqj5S/josan gnome-volume-manager --sm-config-prefix /gnome-volume-majosan /usr/lib/gnome-panel/wnck-applet --oaf-activate-iid=OAFIjosan [pdflush] kdeinit Running... dcopserver [kdeinit] dcopserver --nosid --suicide klauncher [kdeinit] klauncher kded [kdeinit] kded knotify [kdeinit] knotify kio_uiserver [kdeinit] kio_uiserver /usr/bin/kile /bin/bash kio_file [kdeinit] kio_file file /tmp/ksocket-josanGrQ9Wjosan gnome-pty-helper bash ps aux

16.3.2.

Enviar signals a procesos: kill

En ocasiones es necesario enviar seales a los procesos: pararlos (SIGSTOP -19), eliminarlos, que conn tinen (SIGCONT -18), etc. u kill [-signal] pids: #kill [-signal] pid, . . . env una seal al proceso identicado por pid. a n #kill pid, . . . se el dice al proceso que termine, de forma controlada, el estado en que termino puede ser capturado. Esta instruccin le env un SIGTERM (signal 15). o a La seal SIGKILL (signal 9), no puede ser capturada y fuerza al proceso a nalizar. n #kill [-signal] orden, . . . env la seal a todos los procesos orden (ejemplo: #killall -9 bash). a n

Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 16. Servicios de monitorizacin del sistema o Hay procesos que no mueren a pesar de recibir la seal KILL: n Procesos zombies Procesos que esperan un recurso v NFS que no est disponible a a Procesos que esperan una peticin de E/S realizada a un dispositivo o

293

16.3.3.

Modicar prioridades: nice

El nmero nice marca la prioridad del proceso. u Linux realiza una planicacin por prioridades dinmicas o a Al lanzar un proceso se le asigna un valor de prioridad (nmero nice), por defecto la hereda del u proceso padre. La prioridad dinmica del proceso se calcula en funcin del nmero nice, junto con el consumo de a o u CPU realizado Valores bajos (negativos), implica ms prioridad a Valores altos (positivos), menos prioridad Rango de prioridad: -20(mxima) a 20 (m a nima) Valor especial: -19, slo se le da la CPU cuando nadie ms la quiere o a Asignar un valor negativo o que disminuya (mejore) la prioridad del proceso slo puede hacerlo el o root, aumentar (disminuir prioridad) tambin lo puede hacer el usuario que lo ejecuto e nice -incremento orden a ejecutar renice nueva prioridad pid

16.4.

Terminal de root con prioridad mxima a

Para establecer un programa de mxima prioridad solamente es necesario subir la prioridad a uno de a nuestros terminales. Para no confundirnos es recomendable utilizar siempre el mismo terminal. El ejemplo se muestra con el terminal 5. Hacemos un ps: #ps -uroot Identicamos el nmero de proceso (PID) que tiene el tty5 u Aumentamos la prioridad de ese terminal: #renice -20 [pid_tty5] Si el sistema se ralentiza pasamos al terminal 5, CTRL+ALT+F5 y desde ah podemos comprobar que esta pasando y solucionar el problema.

16.5.

Programacin de tareas o

Una posibilidad deseable en cualquier sistema operativo es la de poder ejecutar algunos procesos de forma peridica o en un momento determinado del d la semana o el mes. En Linux hay mltiples y o a, u variadas formas tanto para los usuarios como para el sistema de crear tareas a ejecutarse en el futuro o de forma peridica. Las tareas o trabajos no son ms que uno o varios comandos que se ejecutan utilizando o a un shell como intrprete. e
Jose Antonio Escart Vigo, Junio 2005. n

294

Servidor Linux para conexiones seguras de una LAN a Internet

16.5.1.

At

Para un usuario denir una tarea o trabajo a ejecutarse en un momento determinado puede utilizar el comando at. Este ofrece numerosas posibilidades. Los comandos que componen el trabajo por defecto se toman de la entrada estndar una vez invocado a el comando, o de un chero utilizando la opcin -f, el camino a este chero debe estar especicado a partir o del directorio home del usuario. Se pueden utilizar varias colas para colocar las tareas. Estas se nombran con todas las letras del alfabeto y tienen prioridad mayor los trabajos en las colas con letras mayores. Para ver todas las tareas de tipo at se utiliza el comando atq y para cancelar alguna, atrm. La salida estndar y de errores de estas tareas se env a travs del correo local al usuario correspona a e diente a menos que este las redireccione utilizando los operadores correspondientes. El administrador del sistema puede especicar cuales usuarios pueden o no utilizar at en los cheros /etc/at.allow y /etc/at.deny. A continuacin vemos unos ejemplos del uso de at: o $ at 4:45pm # crea una tarea para ejecutarse a las 4:45 PM que imprime at> echo "hora de irse" # mensaje en la salida estndar, se enviar por correo Ctrl-d #sale del modo insertar tareas $at -f save_all.sh 5:00PM tomorrow # ejecutara save_all.sh, 5:00PM

$at -q Z -f script.sh 3:00am + 5 days # trabajo en la cola Z y ejecutado 3AM en 5 dias $at -f bin/my_job -m midnight Sep 24 #atq 1 2 5 # lanza medianoche, 24 de sep, manda correo

2000-11-24 10:35 b pepe 2000-11-23 00:00 c pepe 2000-11-26 01:00 Z root # muestra el contenido de tarea 2

#at -c 2

Tambin existe el comando batch que es similar a at solo que los trabajos batch se ejecutan cuando e la carga del procesador lo permita, o sea tenga un valor inferior a 0.8 por defecto. Este valor puede modicarse cuando se levanta el servicio atd que es el que se encarga de manipular estas tareas.

16.5.2.

Cron

Existe otro tipo de tareas que se pueden ejecutar peridicamente conocidas como crons. Para denirlas o se emplea un chero por usuario cuyo formato se explica a continuacin. o Bsicamente para cada tarea peridica se escribe una l a o nea donde se especican los momentos en que se ejecutar y el comando correspondiente. Tambin se pueden realizar asignaciones a variables de entorno a e que sern vlidas slo para los procesos indicados en lo sucesivo mientras no aparezcan nuevas asignaciones. a o Las fechas se especican utilizando cinco indicadores separados por espacios: 1. Minutos: Oscila entre 0 y 59 2. Horas: Oscila entre 0 y 23 3. D del mes: Oscila entre 1 y 31 as 4. Meses: Oscila entre 1 y 12 (se pueden poner tambin las tres primeras letras del nombre del mes en e ingls) e 5. D de la semana: Oscila entre 0 y 7 (0 y 7 corresponden al domingo, tambin se pueden usar las as e tres primeras letras del nombre del d en ingls) a e
Jose Antonio Escart Vigo, Junio 2005. n

Cap tulo 16. Servicios de monitorizacin del sistema o

295

Si no se coloca alguno de los cinco indicadores se pone el carcter * en su lugar. Para separar india cadores de un mismo tipo se utiliza la coma; para indicar rangos, el signo -; y para variar el incremento del rango a n se puede colocar /n despus del rango. e A continuacin muestro ejemplos de este sistema: o PATH = /bin:/usr/bin:/sbin/:/usr/sbin:~/programas/bin 10 4 * * 0 backup every_thing 0 5 1,5,10,15,20,25,30 * * backup part_one FILE = ~/docs/partners.txt INFORM = ~/docs/inform.ps 0 7 * 1-6,9-12 mon sendmails TARGET = ~/especial/target.img 0 8 31 12 * sendmother MAILTO = josan 0 8-16/2 4,19 * * echo "cobraste josan?" Los cheros de tareas peridicas o crons de los usuarios se guardan en el directorio del sistema o /var/spool/cron/ cada uno con el login del usuario correspondiente como nombre. Para evitar algunos errores en la sintaxis de estos cheros no se editan directamente por los usuarios, sino que se utiliza el comando crontab. Este permite editar, listar y borrar los crons. Opciones del crontab: -e: permite editar el chero de crons. La variable de entorno EDITOR indicar el editor con que se a modicar el chero de crons a -l: lista todos los crons del usuario -r: borra todos los crons A continuacin, podemos observar algunos ejemplos del uso de crontab: o $ $ $ $ export EDITOR=vim; crontab -e # editor por defecto vim export VISUAL=kwrite; crontab -e # editor visual kwrite crontab -l crontab -r El siguiente cdigo presenta el contenido del archivo /etc/crontab de mi servidor: o # cat /etc/crontab # # # # /etc/crontab: system-wide crontab Unlike any other crontab you dont have to run the crontab command to install the new version when you edit this file. This file also has a username field, that none of the other crontabs do.

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon 17 * * * * 25 6 * * * 47 6 * * 7 52 6 1 * * dow user command root run-parts --report /etc/cron.hourly root test -x /usr/sbin/anacron || run-parts --report /etc/cron.daily root test -x /usr/sbin/anacron || run-parts --report /etc/cron.weekly root test -x /usr/sbin/anacron || run-parts --report /etc/cron.monthly

El demonio que se encarga de que se ejecuten las instrucciones es crond.

Jose Antonio Escart Vigo, Junio 2005. n

296

Servidor Linux para conexiones seguras de una LAN a Internet

16.5.3.

Tareas peridicas o

Un sistema Linux trae algunas tareas peridicas denidas por defecto y es posible a su vez crear otras. o En este caso se emplea un chero con formato similar al de los usuarios, que se almacena en /etc/crontab, con la diferencia de que este s se edita directamente adems de que se puede especicar el usuario con a cuyos privilegios se ejecuta el proceso. Las tareas del sistema se organizan en cuatro grupos: tareas que se ejecutan cada una hora, tareas diarias, tareas semanales y tareas mensuales. A cada uno de estos grupos le corresponde un directorio: /etc/cron.hourly/, /etc/cron.daily/, /etc/cron.weekly/ y /etc/cron.monthly/ respectivamente. En cada directorio se colocan los programas o comandos a ejecutarse peridicamente de acuerdo al o per odo correspondiente. Algunas de las tareas que se hacen de forma peridica por el sistema, son la actualizacin de las bases o o de datos sobre las que trabajan los comandos locate y whatis, as como la rotacin de las trazas del sistema. o Esto puede utilizarse, por ejemplo, para descargar las bases de datos de los antivirus para Windows y que nuestros clientes las obtengan de un directorio local. Al igual que para las tareas que se crean con at, tanto la salida de errores como la estndar de todas a las tareas peridicas, se trasmiten al usuario correspondiente utilizando la mensajer local del sistema. o a Para el caso de las tareas del sistema, se env al usuario root a menos que se dena lo contrario. an

16.5.4.

Anacron

Una tarea tipo cron es muy util pero su ejecucin depende de que la mquina se encuentre encendida o a en el momento exacto para el que se program. Es por ello que existe otro tipo de tareas peridicas: o o las anacrons. Estas se ejecutan cada cierto tiempo especicado en d En caso de que la mquina se as. a apague durante un tiempo mayor que el especicado, entonces una vez encendida y activado el servicio que manipula los trabajos anacron todos aquellos que se encuentren atrasados se ejecutarn tan pronto a transcurra la espera especicada. O sea, para cada trabajo anacron se indica un tiempo en d y una as espera (delay). Los trabajos anacron se almacenan en el chero del sistema /etc/anacrontab. Adems de indicar el a intervalo de d el delay y el comando se especica un nombre para el trabajo. Este se emplea para las as, trazas y para nombrar un chero que emplea el servicio de anacron para saber cuando fue la ultima vez que ejecut este trabajo (timestamp le). Este chero se almacena en /var/spool/anacron/ y slo contiene o una fecha. Si no se encuentra instalado, es necesario hacer un apt: #apt-get install anacron El chero /etc/anacrontab tiene la forma: SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 1 5 cron.daily run-parts /etc/cron.daily 7 10 cron.weekly run-parts /etc/cron.weekly 30 15 cron.monthly run-parts /etc/cron.monthly Podr pensarse que puede ocurrir que un mismo programa se ejecute por la v cron y por la anacron, a a pero esto no sucede pues existe una tarea cron para cada per odo que actualiza los cheros en los cuales se basa el servicio anacron para saber que es lo que debe ejecutar; o sea, cuando el servicio cron logra ejecutar las tareas correspondientes a un per odo, actualiza el chero de ese per odo, y cuando llega anacron (que se demora ms) ya no tiene que ejecutar las tareas. a

Jose Antonio Escart Vigo, Junio 2005. n

You might also like