01 - admin is trac ion y seguridad de redes gnu linux

Upload: carlos-daniel-iser-diaz

Post on 05-Jul-2015

24 views

Category:

Documents


0 download

TRANSCRIPT

Administracin y seguridad de redes GNU/Linux

CURSO 4-PARTE 1: Administracin y seguridad de redes GNU/LINUX

Objetivo General del curso: Al finalizar este curso, el participante ser capaz de administrar redes basadas en el sistema GNU/LINUX tanto en el aspecto de procesos, servicios, y seguridad a travs de firewalls. Objetivos Especficos del curso: Definir los procesos, la seguridad del sistema de archivos, Instalar y administrar servicios Definir tecnologas de firewalls en sus diferentes niveles Monitorear sistemas

INICTEL

1

Mdulo 1

Administracin y seguridad de redes GNU/Linux

Mdulo 1: Procesos

Objetivo General Al finalizar este mdulo, el participante ser capaz de comprender como funcionan los procesos en el sistema GNU/Linux. Objetivos Especficos Definir los procesos, e identificar los diferentes tipos de procesos usados en un sistema GNU/Linux. Identificar los atributos de los procesos bsicos y sus roles en el control de acceso. Describir como los nuevos procesos son creados, y determinar las relaciones familiares de los procesos.

INICTEL

2

Mdulo 1

Administracin y seguridad de redes GNU/Linux

IntroduccinComprender el funcionamiento interno del sistema operativo es fundamental para poder realizar una gestin adecuada de los servicios que podran ejecutarse en nuestro sistema GNU/Linux. Tener estos servicios bien configurados es una de las responsabilidades del administrador por lo tanto el contar con herramientas que puedan ayudarlo en este cometido es muy importante, en nuestro sistema GNU/Linux contamos con varias de estas herramientas como por ejemplo: ps, jobs, top, etc.

INICTEL

3

Mdulo 1

Administracin y seguridad de redes GNU/Linux

Sumario:1.1. Procesos GNU/Linux. 1.1.1. Procesos interactivos 1.1.2. Demonios Nacimiento, vida y muerte de los procesos 1.2.1. Fork(), Exec() y Wait() Estado de los procesos Informacin de los procesos 1.4.1. Comando ps 1.4.2. Comando pstree 1.4.3. Comando top Primer plano y segundo plano 1.5.1. Envi a segundo plano 1.5.2. Informacin de los procesos 1.5.3. Suspensin y relanzamiento de procesos 1.5.3.1. Comando bg 1.5.3.2. Comando fg Eliminacin de procesos 1.6.1. Comando kill 1.6.2. Comando killall Arranque del sistema operativo 1.7.1. Inicio del sistema. El proceso init 1.7.2. Archivo /etc/inittab 1.7.3. Directorios importantes 1.7.4. Comando init Actividades del mdulo 1.8.1. Autoevaluacin 1.8.2. Laboratorio Bibliografa y enlaces recomendados 5-9

1.2. 1.3. 1.4.

1.5.

11 - 14

1.6.

15

1.7.

16 - 22

1.8.

23 - 24

1.9.

26

INICTEL

4

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.1.

Procesos GNU/Linux

Muchos comandos GNU/Linux toman su entrada de algo conocido como entrada estndar y envan su salida a la salida estndar, cada vez que usted ejecuta un programa, usted lanza lo que se conoce como proceso, que es simplemente el nombre que se le da a un programa cuando se esta ejecutando. Algunos estn ocultos en segundo plano (background), llevando a cabo la infraestructura de los servicios tales como las colas de impresin. Otros, tales como los programas shell, interactan con las personas. Aun as otros son iniciados y parados por comandos de usuario, y realizan tareas especificas para servir a los usuarios. Como GNU/Linux es multitarea, un programa determinado puede ser ejecutado mas de una vez simultneamente. Cada invocacin del programa da subida a un nuevo proceso, incluso aunque todos estos procesos vienen desde el mismo archivo.

1.1.1. Procesos interactivosEstos procesos toman una entrada y generan una salida en respuesta directa la interaccin humana. Posiblemente el tipo de procesos interactivo ms import ante es un programa shell. Cada vez que un usuario se registra en el sistema, el proceso login inicia un nuevo proceso shell de entrada (login shell) para el usuario. Cuando el proceso shell de entrada termina, el usuario esta cerrando sesin. En general, los procesos interactivos estn asociados con un dispositivo terminal con el cual ellos pueden visualizar sus salidas y recoger sus entradas.

1.1.2. DemoniosPero muchos que se ejecutan escondidos en sistemas GNU/Linux en segundo plano, no estn conectados a ninguna terminal y no generan entradas y salidas visibles. Estos procesos son llamados demonios (daemons). Por ejemplo, proceso demonio ejecutando la cola de impresin, un servidor Web, etc. En GNU/Linux, son programas que se encargan de gestionar y administrar el sistema. Son varios y permiten la automatizacin de GNU/Linux hasta lmites insospechados. Estos programas se llaman as porque se ejecutan (o corren) en segundo plano, y una vez configurados no requieren solicitar permisos al usuario para hacer tal y cual operacin, con el incremento de velocidad que esto supone. Algunos de los ms conocidos son el crond, el atd y el pppd. Curiosamente, los archivos terminados en -d suelen ser demonios. Su uso suele estar bastante bien documentado. Manteniendo configurados correctamente los demonios y ejecutarlos apropiadamente es un importante elemento de administracin de sistemas GNU/Linux.

1.2.

Nacimiento, vida y muerte de los procesos.

Todos los procesos en un sistema GNU/Linux, exceptuando al primer proceso, siguen el mismo curso: ellos son clonados desde un proceso que ya esta ejecutndose. Por ejemplo, supongamos que un usuarios digita el siguiente comandos: date

INICTEL

5

Mdulo 1

Administracin y seguridad de redes GNU/Linux En este punto, el shell necesita iniciar un nuevo proceso date, espera hasta que finaliza, entonces genera una nueva salida del indicador de comandos y espera por el siguiente comando. El mecanismo por el cual esto ocurre es llamado forking (bifurcacin).

1.2.1. Fork(), Exec() y Wait()Muchos aspectos del comportamiento de los procesos son consec uencia de cmo los procesos nacen. Ver figura 1.

Figura 1. Genealoga de los procesos

Por detrs de las escenas, el procedimiento se parece a lo siguiente: 1) El shell procede a ejecutar una llamada al sistema llamado fork(). Esta llamada al sistema pregunta al sistema operativo para clonar cualquier proceso llamado. 2) Como un resultado de la llamada fork(), el sistema sustituye el proceso shell con dos nuevos procesos. Estos procesos son idnticos cada uno respectivamente, excepto que uno es etiquetado como padre y el otro como hijo. El proceso padre, el cual es idntico al shell original, entonces espera por el proceso hijo para terminar. 3) El proceso hijo, el cual es una copia del shell original, ahora hace una segunda llamada al sistema, llamado exec(). Mientras fork() clona un proceso, exec() inicia un nuevo proceso que reemplaza cualquier proceso llamado. En este instante, el shell hijo llama a exec() para el nuevo proceso date, y el shell hijo desaparece, reemplazado por date. 4) El proceso date termina, y el shell padre, el cual estaba esperando por este evento, despierta y genera un nuevo shell de entrada. Cada proceso en el sistema es numerado, iniciando desde 1. Este numero es llamado Identificador del Proceso (PID). El progenitor de todos los procesos en el sistema es el proceso init, el cual es INICTEL 6 Mdulo 1

Administracin y seguridad de redes GNU/Linux iniciado al momento de iniciar y le es automticamente dado el PID 1. Todos los procesos en el sistema son derivados de init por el procedimiento fork y exec, Pero cada proceso resulta de un fork(), cada proceso tiene un proceso padre el proceso que lo creo llamando a fork() . Pero todos los procesos derivan finalmente de init.

1.3.

Estado de los procesos

Un proceso corriendo puede existir en varios estados en el equipo ( Ver tabla 1): Estado Runnable Descripcin El proceso esta en la cola del CPU, o esta ejecutndose. Sleeping (dormido) El proceso esta inactivo (usualmente por un periodo breve). Idle (inactivo) El proceso esta inactivo por un periodo prolongado. Swapped (intercambiado) El proceso esta siendo intercambiado entre el disco y la memoria libre. Tal que el proceso necesita un periodo largo de tiempo para reinicializarse. Blocked (bloqueado) El proceso esta esperando por una Entrada/Salida para finalizar, o por otra operacin del sistema ininterrumpida para tomar una ubicacin. Traced (rastreado) El proceso esta siendo suspendido o esta siendo rastreado. Zombie Un proceso zombie es uno que ha terminado, pero esta bloqueado por el proceso padre para reconocer la terminacin. Nice Un proceso es nice si su prioridad esta siendo definido menor que el predeterminado. Tabla 1. Estado delos procesos

1.4.

Informacin de los procesos

Existen varios comandos para orbetner informacin de los procesos que se estan ejecutando: estado, prioridad, PID, PPID, etc.

1.4.1. Comando psEl comando ps visualiza la lista de procesos que se estn ejecutando actualmente. Ver tabla 2. Sintaxis: ps [opciones]

INICTEL

7

Mdulo 1

Administracin y seguridad de redes GNU/Linux

l u j s v m f a x S c e h r n txx

Formato grande De usuario, con nombre y hora de comienzo De trabajos De seal De memoria Virtual De informacin acerca de la Memoria De rbol familiar Procesos de otros usuarios Procesos sin terminal de control cpu hijo y posibles fallo de la pgina Muestra el nombre del comando segn la tarea Muestra el entorno No muestra cabeceras Muestra procesos activos Muestra salida numrica para USER Procesos controlados por el terminal xx Tabla 2. Opciones del comando ps

Ejemplo1 ( Ver Figura 2):

Figura 2. Comando ps Donde ( Ver tabla 3): PID TTY STAT TIME COMMAND

Nmero del identificador del proceso. Terminal en la que se est ejecutando el proceso. Estado del proceso. Tiempo del CPU consumido por el proceso. Comando que se est ejecutando. Tabla 3.

INICTEL

8

Mdulo 1

Administracin y seguridad de redes GNU/Linux Ejemplo2 ( Ver figura 3):

Figura 3. Comando ps Donde ( Ver tabla 4): F UID PPID NI VSZ RSS WCHAN Ejemplo3 ( Ver figura 4):

Flags asociados con el proceso. Identificador del usuario que es propietario del proceso. PID del proceso padre. Nmero nice. Los valores negativos tienen menor prioridad. Tamao del proceso. Se muestra aqu la cantidad total de memoria fsica utilizada por la tarea. Evento por el que est esperando el proceso. Tabla 4.

Figura 4. Comando ps INICTEL 9 Mdulo 1

Administracin y seguridad de redes GNU/Linux Donde ( Ver tabla 5): USER %CPU

%MEM

Nombre del usuario propietario de la tarea. La porcin del tiempo de CPU consumido por la tarea desde la ltima actualizacin de la pantalla, expresada como un porcentaje del tiempo de CPU total. La porcin de la memoria fsica ocupada por la tarea Tabla 5.

1.4.2. Comando pstreeEste comando nos da informacin sobre los procesos que se estn ejecutando y la visualizacin es tipo rbol. Ver figura 5.

Figura 5. Comando pstree

INICTEL

10

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.4.3. Comando topEste comando proporciona informacin continua sobre la actividad del procesador en tiempo real, muestra un listado con las tareas del sistema que ms uso hacen del CPU y de la memoria RAM. Ver figura 6.

Figura 6. Comando top Donde ( Ver tabla 6): up

processes

CPU states Mem Swap

Es el tiempo que lleva encendido el equipo y las cargas promedios del sistema. Las cargas medias muestran el nmero promedio de los procesos listos para ejecutarse durante los ltimos 1, 5 y 15 minutos. El nmero total de procesos en ejecucin en el momento de la ltima actualizacin. Tambin esta dividida en el nmero de tareas en ejecucin, dormidas, detenidas o zombies. El porcentaje de tiempo de CPU en modo: usuario, sistema, nice y en espera. Estadsticas de utilizacin de la memoria. Estadsticas del espacio de intercambio. Tabla 6.

1.5.

Primer Plano y Segundo Plano

Un proceso puede estar en Primer plano (foreground) o en Segundo plano (background). Solo puede haber un proceso en primer plano al mismo tiempo, el proceso que esta en primer plano, es el que INICTEL 11 Mdulo 1

Administracin y seguridad de redes GNU/Linux interacta con usted recibiendo las entradas del teclado, y enva las salidas a la pantalla (excepto, por supuesto, que haya redirigido la entrada o la salida). El proceso en segundo plano, no recibe ninguna seal desde el teclado por lo general, se ejecutan en silencio sin necesidad de interaccin. Los procesos pueden ser suspendidos. Un proceso suspendido es aquel que no se esta ejecutando actualmente, sino que esta temporalmente parado. Despus de suspender una tarea, puede indicar a la misma que contine, en primer plano o en segundo, segn necesite. Retomar una tarea suspendida no cambia en nada el estado de la misma la tarea continuara ejecutndose justo donde se dejo. Tenga en cuenta que suspender un trabajo no es lo mismo que interrumpirlo. Cuando usted interrumpe un proceso (generalmente con la pulsacin de ), el proceso muere, y deja de estar en memoria y utilizar recursos del computador. Una vez eliminado, el proceso no puede continuar ejecutndose, y deber ser lanzado otra vez para volver a realizar sus tareas. Tambin se puede dar el caso de que algunos programas capturan la interrupcin, de modo que pulsando no se para inmediatamente. Esto se hace para permitir al programa realizar operaciones necesarias de limpieza antes de terminar. De hecho, algunos programas simplemente no se dejan matar por ninguna interrupcin.

1.5.1. Envo a Segundo PlanoUna forma de mandar procesos a segundo plano es aadiendo el carcter & al final de cada comando. Ver cuadro 1. soft-libre:~# yes > /dev/null & [1] 566 soft-libre:~# updatedb & [2] 578 soft-libre:~# Cuadro 1. Segundo plano Donde ( Ver tabla 7): [1]

566

Representa el nmero de tarea del proceso yes. El shell asigna un numero a cada tarea que s este ejecutando Es el nmero de identificacin del proceso, o PID, que es el nmero que el sistema le asigna al proceso yes. Tabla 7.

NOTA:

Ambos nmeros pueden usarse para referirse a la tarea como veremos despus.

INICTEL

12

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.5.2. Informacin de los procesos de segundo planoPara chequear el estado de los procesos que se estn ejecutando en segundo plano, utilice el comando jobs ( Ver cuadro 2): soft-libre:~# jobs [1]Running [2]+ Running soft-libre:~#

yes > /dev/null & updatedb &

Cuadro 2. Comando jobs

1.5.3. Suspensin y relanzamiento de procesosHay otra manera de poner un proceso en segundo plano. Usted puede lanzarlo como un proceso normal (en primer plano), pararlo, y despus relanzarlo en segundo plano. Primero, lance el proceso yes en primer plano como lo hara normalmente ( Ver cuadro 3): soft-libre:~# yes > /dev/null Cuadro 3. Proceso en primer plano

Dado que yes se esta ejecutando en primer plano, no debe retornar el indicador de comandos del shell. Ahora, en vez de interrumpir la tarea con , suspenderemos la tarea. El suspender una tarea no la mata: solamente la detiene temporalmente hasta que Ud. la retoma. Para hacer esto usted debe pulsar la tecla de suspender, que suele ser . Ver cuadro 4. soft-libre:~# yes > /dev/null Presionar [CTRL] + [Z] [1]+ Stopped soft-libre:~# yes > /dev/null

Cuadro 4. Suspendiendo un proceso

Mientras el proceso esta suspendido, simplemente no se esta ejecutando. No gasta tiempo de CPU en la tarea. Sin embargo, usted puede retomar el proceso de nuevo como si nada hubiera pasado. Continuara ejecutndose donde se dejo. Para relanzar la tarea en primer plano use el comando fg (foreground) y para relanzarlo en segundo plano use el comando bg (background).

INICTEL

13

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.5.3.1.

Comando bg

Este comando se usa para pasar procesos a segundo plano, es muy til cuando hemos parado la ejecucin de un proceso con . Este comando pasa a segundo plano a quellos procesos que se le indiquen utilizando % seguido del nmero de tarea. Ver cuadro 5.

soft-libre:~# yes > /dev/null [1]+ Stopped yes > /dev/null soft-libre:~# bg %1 [1]+ yes > /dev/null & soft-libre:~# Cuadro 5. Comando bg

1.5.3.2.

Comando fg

Este comando se utiliza para pasar a primer plano procesos que estn detenidos o en segundo plano. Ver cuadro 6 y cuadro 7.

soft-libre:~# jobs [1]+ Running yes > /dev/null soft-libre:~# soft-libre:~# fg %1 yes > /dev/null Cuadro 6. Comando fg Proceso en segundo plano

soft-libre:~# updatedb Presionar [CTRL] + [Z] [2]+ Stopped updatedb soft-libre:~# soft-libre:~# fg %2 updatedb Cuadro 7. Comando fg Proceso detenido

NOTA:

Normalmente, los comandos fg y bg actan sobre el ltimo proceso parado (indicado por un + junto al numero de tarea cuando usa el comando jobs). Si usted tiene varios procesos corriendo a la vez, podr mandar a primer o segundo plano una tarea especifica indicando el nmero de la tarea como argumento de fg o bg.

INICTEL

14

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.6.

Eliminacin de procesos

Hay veces que un proceso no funciona correctamente y hay que terminar su ejecucin. Existen comandos para forzar a un proceso a que termine su ejecucin.

1.6.1. Comando killEste comando toma como argumento un numero de tarea o el PID. Ver cuadro 8. soft-libre:~# jobs [1]Running [2]+ Running soft-libre:~# soft-libre:~# kill %1 soft-libre:~# soft-libre:~# jobs [1]Terminated [2]+ Running

yes > /dev/null & updatedb &

yes > /dev/null updatedb & Cuadro 8. Comando kill

NOTA:

Cuando se identifica la tarea con el nmero de tarea, se debe preceder el numero con el carcter de porcentaje % .

Tambin podr matar la tarea usando el nmero de ID de proceso (PID), el cual se muestra conjuntamente con el ID de tarea cuando arranca la misma. Ver cuadro 9.

soft-libre:~# yes > /dev/null & [1] 566 soft-libre:~# updatedb & [2] 578 soft-libre:~# soft-libre:~# kill 566 soft-libre:~# soft-libre:~# jobs [1]Terminated yes > /dev/null [2]+ Running updatedb & Cuadro 9. Comando kill

NOTA:

Muerte incondicional kill 9 PID

1.6.2. Comando killallEste comando funciona de forma muy parecida a kill pero tiene la ventaja de que no es necesario suministrar el nmero de tarea PID, basta con especificar el nombre del proceso y matara a todos los procesos que correspondan con el nombre suministrado, y que sean de la misma prioridad. Ver figura 7.

INICTEL

15

Mdulo 1

Administracin y seguridad de redes GNU/Linux

Figura 7. Comando killall

1.7.

Arranque del Sistema Operativo

Otra tarea de la que se hace cargo el administrador es arrancar y detener el sistema, controlando los servicios que se inician. GNU/Linux utiliza el proceso de arranque init de Sys V; init es el primer proceso que se ejecuta en el sistema, es el ms importante, del que dependen el resto de los procesos del sistema.

1.7.1. Inicio del sistema. El proceso Init.El ncleo ejecuta init al arrancar. Este programa, ahora como proceso, cargar los subprocesos necesarios para la puesta en marcha del sistema. Cuando init ha terminado de cargarse vaca el subdirectorio /tmp y lanza getty que se encarga de permitir hacer login en el sistema a los usuarios. Los niveles de ejecucin (runlevel) determinan los servicios que tendremos disponibles en cada uno de ellos. Es una forma de tener diferentes modos de trabajo, cada uno de ellos con caractersticas bien definidas, en funcin del tipo de tarea a que estn orientados. Los niveles de ejecucin que manejaremos y una descripcin de para qu estn definidos se puede ver en la Tabla 8: Nivel de ejecucin 0 1 2 3 4 5 6 Modo Detener el sistema Mono usuario, sin soporte de red Multiusuario, sin soporte de red Modo multiusuario completo Sin uso. Recomendado para pruebas Multiusuario completo en entorno grfico Reiniciar el sistema Tabla 8. Niveles de ejecucin El proceso init necesita un archivo de configuracin para saber exactamente lo que tiene que hacer.

INICTEL

16

Mdulo 1

Administracin y seguridad de redes GNU/Linux Este archivo es /etc/inittab y contiene informacin sobre el nivel a ejecutar por defecto, previsin sobre que hacer ante determinadas situaciones, describe qu procesos se inician en la carga y durante la operacin normal. Las entradas del archivo /etc/inittab tienen el siguiente formato ( Ver tabla 9): id:niveles_ejecucin:accin:proceso id Una secuencia nica de 1 a 4 caracteres que identifican la ent rada de inittab. Lista de niveles de ejecucin para los que se llevarn a cabo las acciones definidas a continuacin en la lnea. La accin se llevar a cabo. El proceso a ejecutar. Tabla 9.

niveles_ejecucin

accin proceso

Para que una lnea sirva para varios niveles de ejecucin, el campo niveles_ejecucin tiene que incluirlos, por ejemplo, 135 indica que el proceso se iniciar en los niveles 1, 3 y 5. Cuando se cambia de un nivel de ejecucin a otro, los procesos en ejecucin que no estn definidos en el nuevo nivel se matan. Ver tabla 10. Las acciones que podemos definir, en el campo accin son: Accin initdefault Respawn once wait boot bootwait Descripcin Especifica el nivel de ejecucin por defecto al arrancar el sistema. El campo proceso se ignora. El proceso se reiniciar cuando termine. El proceso se ejecutar una sola vez cuando se entre en el nivel de ejecucin especificado. El proceso se iniciar una vez cuando se entre en el nivel de ejecucin e init esperar a su terminacin. El proceso se ejecutar durante el arranque del sistema. El campo niveles_ejecucin se ignora. El proceso se ejecutar durante el arranque del sistema, mientras init espera su terminacin. El campo niveles_ejeccin se ignora. El proceso se ejecutar durante el arranque del sistema, antes que cualquier entrada boot o bootwait. El campo niveles_ejecucin se ignora. El proceso se ejecutar si init recibe una seal SIGPWR, que indica algn problema con la alimentacin elctrica. Init esperar que el proceso termine. Como powerwait, excepto que init no espera a que termine el proceso. El proceso se ejecutar si init recibe la seal SIGPWR, con la condicin de que haya un archivo llamado /etc/powerstatus que contenga la palabra OK. Esto significa que se ha restablecido la alimentacin elctrica. Especifica qu proceso se ejecutar al pulsar la combinacin de teclas [Ctrl+Alt+Supr]. Normalmente, reiniciar la mquina. Tabla 10. 17 Mdulo 1

sysinit

powerwait

powerfail powerokwait

ctrlaltdel

INICTEL

Administracin y seguridad de redes GNU/Linux

1.7.2. Archivo /etc/inittabEl archivo /etc/inittab tiene la siguiente estructura ( Ver cuadro 10): # # inittab This file describes how the INIT process should set up # the system in a certain run-level. # # Author: Miquel van Smoorenburg, # Modified for RHS Linux by Marc Ewing and Donnie Barnes # # Default runlevel. The runlevels used by RHS are: # 0 - halt (Do NOT set initdefault to this) # 1 - Single user mode # 2 - Multiuser, without NFS (The same as 3, if you do not have networking) # 3 - Full multiuser mode # 4 - unused # 5 - X11 # 6 - reboot (Do NOT set initdefault to this) # id:5:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc l1:1:wait:/etc/rc.d/rc l2:2:wait:/etc/rc.d/rc l3:3:wait:/etc/rc.d/rc l4:4:wait:/etc/rc.d/rc l5:5:wait:/etc/rc.d/rc l6:6:wait:/etc/rc.d/rc 0 1 2 3 4 5 6

# Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now # When our UPS tells us power has failed, assume we have a few minutes # of power left. Schedule a shutdown for 2 minutes from now. # This does, of course, assume you have powerd installed and your # UPS connected and working correctly. pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" # If power was restored before the shutdown kicked in, cancel it. pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" # Run gettys in standard runlevels 1:2345:respawn:/sbin/mingetty tty1 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 # Run xdm in runlevel 5 x:5:respawn:/etc/X11/prefdm -nodaemon Cuadro 10. Archivo /etc/inittab

INICTEL

18

Mdulo 1

Administracin y seguridad de redes GNU/Linux Uno de los scripts ms importantes en el arranque del sistema es /etc/rc.d/rc.sysinit. Es el primer script que init encuentra y ejecuta. En l estn definidas funciones como: Inicio y activacin del espacio de intercambio. (swap) Configuracin de la red. Especificacin de variables del sistema. Comprobacin y montaje de los sistemas de archivos. Inicializacin de puertos serie. Carga los mdulos del kernel. Establecimiento de cuotas de usuarios. Ajuste del reloj del sistema.

El ltimo script en ejecutarse es /etc/rc.d/rc.local. En este fichero podremos poner inicializaciones especificas del sistema, aunque su propsito inicial es controlar los servicios de red.

1.7.3. Directorios importantesEl directorio /etc/init.d contiene los scripts que iniciarn o detendrn los servicios que tengamos disponibles en nuestro equipo. Normalmente es suficiente invocar al servicio por su nombre y pasarle uno de los siguientes argumentos: start, stop, status, restart o reload. Ver figura 8

Figura 8. Directorio /etc/init.d

Si tenemos alguna distribucin basada en RedHat tendremos el directorio /etc/rc.d (ver Figura 9) que es de vital importancia para el arranque del sistema. Tiene una estructura bien definida ya que existe un directorio para cada nivel de ejecucin, identificado con el mismo nmero que el nivel, y en cada uno de estos directorios se indican qu servicios se iniciarn o detendrn al entrar en ese nivel de ejecucin. En cambio si tenemos alguna distribucin basada en Debian, los directorios identificados para cada nivel de ejecucin se encuentran en el directorio /etc. (Ver Figura 9 - 10)

INICTEL

19

Mdulo 1

Administracin y seguridad de redes GNU/Linux

Figura 9. Directorio /etc/rc.d

Figura 10. Directorios identificados para cada nivel de ejecucin

Los directorios numerados para cada nivel de ejecucin contienen enlaces simblicos que apuntan a los scripts del directorio init.d. Ver figuras 11-12

INICTEL

20

Mdulo 1

Administracin y seguridad de redes GNU/Linux

Figura 11. Directorio /etc/rc3.d - Debian

Figura 12. Directorio /etc/rc.d/rc3.d - RedHat

Observemos con atencin como se llaman los enlaces, cada uno de ellos tiene el nombre del script al que estn asociados. Los que empiezan con una S (S de start) define si el servicio se inicia, y otros con una K define si el servicio se detiene (K de kill). El nmero que lucen es simplemente una facilidad para ordenar y que no tiene mayor relevancia. INICTEL 21 Mdulo 1

Administracin y seguridad de redes GNU/Linux

Lo realmente ventajoso de este sistema es que, en primer lugar, no se repiten los scripts en cada directorio de nivel de ejecucin, si no que permanecen en un nico lugar bien definido, el directorio init.d, y en segundo lugar, la modificacin a realizar si lanzamos un servicio o no, en un nivel de ejecucin determinado, es tan sencilla como cambiar el nombre del enlace al del servicio en cuestin. Si queremos que se inicie bastar con asegurarse de que su nombre empieza por una S y en caso contrario, sea que en ese nivel de ejecucin no se ofrezca el servicio, pondremos el nombre empezando por una K . Otra ventaja es el control que tenemos sobre los servicios del sistema. Independiente del estado en el que estn, los podemos lanzar, detener, reiniciar, etc. sobre la marcha, sin necesidad de reiniciar la mquina.

1.7.4. Comando initControla la inicializacin de los procesos ( Ver tabla 11) Sintaxis: init [opciones] Opciones Descripcin 0, 1, 2, 3, 4, 5, 6 Para cambiar al nivel de ejecucin especificado. Q, q Si queremos que init relea el fichero /etc/inittab. S, s Entra en modo monousuario. U, u Reejecuta init respetando el estado actual. No se relee el fichero /etc/inittab. Tabla 11. Opciones del comando init

INICTEL

22

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.8.

Actividades del mdulo

1.8.1. Autoevaluacin

1.

Qu es un proceso? (a) Un archivo (b) Un shell (c) Un programa en ejecucin (d) Un usuario Qu es el PPID? (a) Es un proceso hijo (b) Es el identificador del proceso (c) Es un programa en ejecucin (d) Es el identificador del proceso padre Al ejecutar el comando init 0 . Cul de las siguientes alternativas es verdadera? (a) Reiniciar el equipo (b) Apagar el equipo (c) Ingresar en modo linux single (d) Cerrar la sesin actual Qu comando muestra los estados de procesos en el equipo? (a) ps (b) jobs (c) top (d) kill

2.

3.

4.

INICTEL

23

Mdulo 1

Administracin y seguridad de redes GNU/Linux

1.8.2. LaboratorioDuracin: 60 minutos

Objetivos: Monitorear los procesos del equipo. Detener y enviar procesos a segundo plano. Eliminar procesos.

Recursos a utilizar: Un computador con GNU/Linux en modo texto (consolas virtuales) Un nombre de usuario y su contrasea respectiva (sper-usuario = root)

Procedimiento de ejecucin: 1. Ejecute el comando top. a. Estado de los procesos: ___ R ___ S ___ D ___ T ___ Z Tamao total de los procesos en KB.

b.

c.

Cul de los procesos consume ms tiempo del procesador?

d.

Cul consume ms memoria fsica?

2.

Inicie un proceso en segundo plano, por ejemplo bash & a. Cul es el PID del proceso?

b.

Mate el proceso

INICTEL

24

Mdulo 1

Administracin y seguridad de redes GNU/Linux 3. Qu comando permite matar el proceso tail que se est ejecutando en la 3ra. consola virtual? PID TTY 18778 tty1 18799 tty2 18816 tty3 8624 tty4 30704 tty5 30705 tty3 24235 pts/0 TIME CMD 00:00:00 bash 00:00:00 updatedb 00:00:00 bash 00:00:00 top 00:00:00 tail 00:00:00 tail 00:00:00 ps

INICTEL

25

Mdulo 1

Administracin y seguridad de redes GNU/Linux Bibliografa y enlaces recomendados v Teach Yourself UNIX in 24 hours-Dave Taylor and James C. Amstrong Jr.-1997 v Linux: Rute users tutorial and exposition- Paul Sheer-2001

INICTEL

26

Mdulo 1