Sie sind auf Seite 1von 94

Gua de estudio para

Administrador de Redes en GNU/LINUX


Material de trabajo para LPI 102
liberado bajo la licencia GFDL

Asesores & Soporte Linux SAC Tabla de Contenidos

Soportelinux.com

El Kernel Linux......................................................................................................................................... 1. Conceptos del Kernel ........................................................................................................................ 2. El Kernel Modular.............................................................................................................................. 3. Rutina de recompilacin de un kernel................................................................................................ 4. Ejercicios............................................................................................................................................ Arrancando Linux..................................................................................................................................... 1. Entendiendo los niveles de arranque.................................................................................................. 2. El archivo inittab................................................................................................................................. 3. LILO el gestor de arranque................................................................................................................. 4. Del arranque a la shell bash............................................................................................................... 5. Ejercicios............................................................................................................................................ Administrando Grupos y Usuarios.......................................................................................................... 1. Creando nuevos usuarios................................................................................................................... 2. Trabajando con grupos...................................................................................................................... 3. Archivos de configuracin.................................................................................................................. 4. Opciones de comandos...................................................................................................................... 5. Modificando cuentas y configuraciones por defecto........................................................................... 6. Ejercicios............................................................................................................................................ Configuracin de red................................................................................................................................ 1. La interfaz de red................................................................................................................................ 2. Informacin de host............................................................................................................................ 3. Detener e iniciar la red....................................................................................................................... 4. Enrutado............................................................................................................................................. 5. Herramientas comunes de red........................................................................................................... 6. Ejercicios............................................................................................................................................ Redes TCP/IP............................................................................................................................................ 1. Nmeros binarios............................................................................................................................... 2. Direcciones de red, broadcast y mscara de red............................................................................... 3. Clases de red..................................................................................................................................... 4. Subredes............................................................................................................................................ 5. La pila TCP/IP.................................................................................................................................... 6. Puertos y servicios TCP/IP................................................................................................................. 7. Ejercicios............................................................................................................................................ Servicios de red........................................................................................................................................ 1. El demonio inetd (antiguo).................................................................................................................. 2. El demonio xinetd............................................................................................................................... 3. TCP wrappers.................................................................................................................................... 4. Configurando NFS.............................................................................................................................. 5. SMB y NMB........................................................................................................................................ 6. Servicios DNS.................................................................................................................................... 7. Configuracin de Sendmail................................................................................................................ 8. El servidor Apache............................................................................................................................. 9. Ejercicios............................................................................................................................................ Bash Scripting.......................................................................................................................................... 1. El entorno bash.................................................................................................................................. 2. Principios de Scripting........................................................................................................................ 3. Evaluaciones Lgicas......................................................................................................................... 4. Cucles................................................................................................................................................ 5. Esperando entrada del usuario........................................................................................................... 6. Trabajando con nmeros................................................................................................................... 7. Ejercicios............................................................................................................................................

11 11 12 13 18 20 20 22 23 24 26 27 27 28 30 31 32 34 35 35 36 37 38 40 42 43 43 43 45 46 47 49 50 51 51 52 53 53 54 56 60 60 62 64 64 65 66 67 69 69 70

Asesores & Soporte Linux SAC

Soportelinux.com

Seguridad bsica...................................................................................................................................... 1. Seguridad local................................................................................................................................... 2. Seguridad de red................................................................................................................................ 3. La shell segura SSH........................................................................................................................... 4. Configuracin de la hora.................................................................................................................... 5. Seguridad del Kernel.......................................................................................................................... Administracin del Sistema Linux System............................................................................................. 1. Archivos de registro y configuracin................................................................................................... 2. Utilidades de registro.......................................................................................................................... 3. Tareas automatizadas........................................................................................................................ 4. Compresin y backups....................................................................................................................... 5. Documentacin.................................................................................................................................. 5. Ejercicios............................................................................................................................................ Configurando PPP.................................................................................................................................... 1. Mdems seriales................................................................................................................................ 2. Configuracin Dialup.......................................................................................................................... 3. Chat y pppd........................................................................................................................................ 4. Peers PPPD ...................................................................................................................................... 5. Wvdial................................................................................................................................................

71 71 73 76 77 78 81 81 83 84 86 87 90 91 91 92 92 93 94

Impresin.................................................................................................................................................. 95 1. Filtros y gs.......................................................................................................................................... 95 2. Impresoras y colas de impresin........................................................................................................ 95 3. Herramientas de impresin................................................................................................................ 96 4. Los archivos de configuracin............................................................................................................ 97 5. Ejercicios.......................................................................................................................................... 100 Objeticos LPI 102.................................................................................................................................... 101 ndice....................................................................................................................................................... 106

Asesores & Soporte Linux SAC El Kernel Linux

Soportelinux.com

El Kernel Linux
1. Conceptos del Kernel
Los dos tipos de kernel Linux son:

A:

Monoltico Un kernel monoltico es uno que tiene todo el soporte para hardware, red y sistemas de archivos compilado en un nico archivo imagen.

B:

Modular
Un kernel modular es uno que tiene algunos drivers compilados como ficheros objeto, los mismos que el kernel puede cargar y eliminar en demanda. Los mdulos cargables son almacenados en /lib/modules.

La ventaja de un kernel modular es que no siempre necesita ser recompilado cuando nuevo hardware es agregado o reemplazado en el sistema. Los kernels monolticos arrancan ligeramente ms rpido que los modulares pero superan a estos ltimos.

Av. Del Parque Sur 699 Of. 206 San Borja

11

Asesores & Soporte Linux SAC El Kernel Linux 2. El Kernel Modular

Soportelinux.com

Muchos componentes del kernel Linux pueden ser compilados como mdulos que el kernel puede cargar dinmicamente y eliminarlos segn sea requerido. Los mdulos para un kernel particular son almacenados en /lib/modules/<kernel-version>. Los componentes que mejor convienen ser modularizados son aquellos no requeridos en el momento del arranque, por ejemplo soporte para dispositivos perifricos y sistemas de archivos suplementarios. Los mdulos del Kernel modules son controlados por el paquete modutils que contiene las siguientes herramientas:

lsmod rmmod insmod modprobe modinfo

Muchos mdulos dependen de la presencia de otros. Un archivo que contiene las dependencias de todos estos mdulos es /lib/modules/<kernel-version>/modules.dep el cual es generado por el comando depmod. Este comando es ejecutado por el script rc.sysinit cuando se arranca el sistema. -- modprobe cargar cualquier mdulo y sus dependencias listados en modules.dep -- /etc/modules.conf es consultado para saber los parmetros de algunos mdulos (IRQ y puertos IO) pero la mayora de veces este archivo contiene una serie de alias. Estos alias permiten que las aplicaciones se puedan referir a los dispositivos por un nombre comn. Por ejemplo la primera interfaz de red siempre es referida como eth0 y no por el nombr del driver especfico.

Fig1: Ejemplo del archivo /etc/modules.conf: alias alias alias alias alias eth0 e100 usb-core usb-uhc sound-slot-0 i810_audio char-major-108 ppp_generic ppp-compress-18 ppp_mppe

# 100Mbps full duplex options eth0 e100_speed_duplex=4

Av. Del Parque Sur 699 Of. 206 San Borja

12

Asesores & Soporte Linux SAC El Kernel Linux 3. Rutina de recompilacin de un kernel
3.1 Extraccin de las fuentes

Soportelinux.com

Las fuentes del kernel estn almacenadas en el rbol de directorios bajo /usr/src/linux, el cual es un enlace simblico al directorio /usr/src/(kernel-version). Cuando se extraen nuevas fuentes del kernel es recomendable:

Eliminar el enlace simblico antiguo que apuntaba a la versin antigua de las fuentes del kernel:

rm linux Las fuentes del kernel instaladas generalmente como un paquete RPM a menudo crean un enlace simblico llamado linux-2-4

Extraer las nuevas fuentes del kernel (Ejm. linux-2.4.29.tar.bz2)

tar xjf linux-2.4.29.tar.bz2 Nota: Las fuentes de la rama 2.2.x del kernel crean un directorio llamado linux en lugar de crear uno de nombre linux-version. Este es el por qu es tan importante el primer paso, de otro modo se puede sobreescribir una versin antigua de las fuentes del kernel con una nueva. Desde la rama 2.4.x del kernel el directorio creado se llama linux-version.

Crear un enlace simblico llamado linux apuntando al directorio nuevo creado:

ln -s linux-2.4.29 linux

El kernel est ahora casi listo para ser configurado, pero primero necesitamos asegurarnos que todos los archivos binarios antiguos son limpiados del directorio de las fuentes, y esto es realizado con el comando make mrproper.

3.2 Configuracin del kernel


Primero editemos el archivo Makefile y asegurmonos que la variable EXTRAVERSION es diferente de la versin actual existente: VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 20 EXTRAVERSION = -test El kernel ahora est listo para ser configurado. Esto esencialmente significa crear un archivo de configuracin llamado .config. Esto es realizado desde el directorio de las fuentes del kernel (/usr/src/linux) con cualquiera de los siguientes comandos: make menuconfig make xconfig make config

Av. Del Parque Sur 699 Of. 206 San Borja

13

Asesores & Soporte Linux SAC El Kernel Linux

Soportelinux.com

Todos estos mtodos crearn el archivo de configuracin /usr/src/linux/.config A menudo es ms sencillo configurar un nuevo kernel usando un archivo .config antiguo usando el comando make oldconfig. Esto realizar consultas al usuario solamente acerca de nuevas caractersticas en el kernel (si el kernel es nuevo o ha sido parchado) Aviso: Algunas distribuciones como RedHat tienen un subdirectorio configs con algunos archivos de configuraciones predeterminadas listos para ser usados como archivos .config en la compilacin. Para habilitar ciertas caractersticas del kernel (con make menuconfig) entraremos en la categora del nivel superior desplazndonos con las tecla hacia arriba y presionando Enter para entrar a la categora deseada. Una vez dentro de la categora escogida, presionando la barra espaciadora nos permitir cambiar el soporte en el kernel para una caracterstica o driver determinado. Los posibles modos de soportar una caracterstica son:

Soportado (compilado estticamente) [*] Modular (compilado dinmicamente) [M] No soportado [ ]

Las mismas alternativas estn disponibles con otros comandos como make config y make xconfig

Fig 2: El men principal de make xconfig:

3.3 Compilacin del Kernel


make dep Una vez que la configuracin del kernel se ha completado, es necesario reflejar dichos cambios en todos los subdirectorios del directorio de las fuentes del kernel. Esto es posible con el comando make dep. Los archivos de nombre .depend que contengan rutas a archivos encabezados (.h) presentes en el directorio del kernel (/usr/src/linux/include) son generados con el destino dep. make clean

Av. Del Parque Sur 699 Of. 206 San Borja

14

Asesores & Soporte Linux SAC El Kernel Linux

Soportelinux.com

El comando make obtiene instrucciones desde un Makefile y compilar as lo que sea necesario. Si algunos archivos estn ya presentes entonces make los usar tal como estn, en particular los archivos de extensin .o. Para asegurarnos que todas las opciones de configuracin en el archivo .config son usados para recompilar los archivos necesarios uno debe ejecutar el comando make clean (esto elimina todos los archivos *.o). Aviso: No se necesita ejecutar make clean en esta etapa si ya se ha preparado el directorio de las fuentes con make mrproper El kernel en s es compilado con una de los siguientes comandos: make zImage make bzImage Cuando el comando termina sin errores, se crear un archivo llamado vmlinux dentro de /usr/src/linux/. Este es el kernel descomprimido. Los otros dos comandos escribirn unos archivos adicionales llamados zImage y bzImage dentro de /usr/src/linux/arch/i386/boot called zImage and bzImage. Estos son kernels comprimidos usando gzip y bzip2. Ver la siguiente seccin Instalando un nuevo kernel para saber cmo proceder con estos archivos. make modules Los mdulos del kernel son compilados con el comando make modules. make modules_install Una vez que los mdulos son compilados stos necesitan ser copiados en los subdirectorios correspondientes dentro de /lib/modules. El comando make modules_install hace justamente eso. La secuencia de comandos est descrita en Fig 3. Fig 3: Comandos de compilacin del kernel: make make make make make dep clean bzImage modules modules_install

3.4 Instalando un nuevo kernel


El nuevo kernel puede ser encontrado en /usr/src/linux/arch/i386/boot/bzImage, dependiendo de la arquitectura de nuestro sistema. Este archivo debe ser copiado en el directorio /boot, y renombrado a vmlinuz-<versin-completa-del-kernel>

/usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-<full-kernel-version>

Av. Del Parque Sur 699 Of. 206 San Borja

15

Asesores & Soporte Linux SAC El Kernel Linux

Soportelinux.com

Luego el archivo /etc/lilo.conf o /boot/grub/grub.conf necesita ser editado para agregar una entrada correspondiente al nuevo kernel recin compilado. Copiar la seccin image del kernel actual y agregar una nueva seccin imagen al final del archivo como se muestra a continuacin: Editando el archivo /etc/lilo.conf: prompt timeout=50 message=/boot/message image=/boot/vmlinuz label=linux root=/dev/hda6 read-only

Seccin existente

image=/boot/vmlinuz-<version-completa-del-kernel> label=linux-new Seccin agregada root=/dev/hda6 read-only ----------snip-------------------------------

La tabla de smbolos para varios de los procesos del kernel puede ser copiado al directorio /boot:

cp /usr/src/linux/System.map /boot/System.map-<version-completa-del-kernel>

3.5 La versin completa del kernel


En un sistema, la versin del kernel en ejecucin puede ser obtenida con: uname -r Esta versin de kernel es tambin mostrada en las terminales virtuales si la opcin \k est presente en el archivo /etc/issue.

3.5 Initial Ramdisks


Si cualquier mdulo compilado dinmicamente es requerido en el momento del arranque (por ejm. un driver para SCSI, o el soporte para el sistema de archivos raz) ellos sern cargados usando una imagen inicial conocida como initial ramdisk. El initial ramdisk es creado con el comando mkinitrd que solamente requiere dos parmetros: el nombre del archivo y el nmero de la versin del kernel. Si usamos un initial ramdisk entonces ser necesario agregar una lnea initrd= en el archivo /etc/lilo.conf Ejemplo:

Av. Del Parque Sur 699 Of. 206 San Borja

16

Asesores & Soporte Linux SAC El Kernel Linux


mkinitrd /boot/initrd-$(uname -r).img $(uname -r)

Soportelinux.com

3.6 Opcional
Es recomendable copiar el archivo /usr/src/linux/.config a /boot/config-<version-completa-del-kernel>, solamente para mantener un registro de las capacidades de las diferentes versiones de kernel compiladas.

3.7 Reinstalar LILO


Finalmente LILO necesita ser ejecutado nuevamente para poder actualizar el gestor de arranque. Primero lilo puede ser ejecutado en modo de pruebas para ver si hay algn error en el archivo de configuracin: AVISO El gestor de arranque LILO necesita ser actualizado usando lilo cada vez que un cambio es realizado en /etc/lilo.conf

Av. Del Parque Sur 699 Of. 206 San Borja

17

Asesores & Soporte Linux SAC El Kernel Linux 4. Ejercicios

Soportelinux.com

Antes de empezar con los ejercicios asegurmonos que no tenemos ningn directorio de fuentes del kernel bajo /usr/src/. Si es as, prestar atencin al enlace simblico /usr/src/linux. 1. Manualmente recompilar el kernel siguiendo los siguientes pasos de compilacin: - Obtener el paquete kernel-version.src.rpm desde rpmfind o un CD. Instalando este paquete tambin obtendremos una lista de dependencias tales como el compilador gcc o el paquete binutils si an no han sido instalados. - Instalar el paquete con -i (esto colocar las fuentes en /usr/src/) - Ir al directorio /usr/src/linux-version y analizar el directorio configs - Copiar la configuracin del kernel que coincida con nuestra arquitectura en el directorio actual y renombrarlo a .config - Ejecutar make oldconfig en la lnea de comandos para retomar la configuracin del nuevo archivo .config. - Editar el archivo Makefile y asegurarse que la versin no sea la misma que el kernel actual. Podemos obtener informacin del kernel actual en ejecucin con el comando uname a. - Ejecutar: make menuconfig (o xconfig) y eliminar el soporte ISDN (RDSI) del kernel. - Cuando salimos del programa el archivo .config es modificado pero los cambios an no se reflejarn en el resto del cdigo fuente. A continuacin debemos ejecutar: make dep - Finalmente para forzar a que los archivos objeto (.o) sean compilados segn los ltimos cambios realizados debemos eliminarlos con: make clean - Ahora podemos compilar el kernel, sus mdulos e instalar estos ltimos: make bzImage modules modules_install - Los mdulos estn ahora instalados en el directorio /lib/modules/version. El kernel es llamado ahora bzImage y est en el directorio: /usr/src/linux/arch/i386/boot/ Necesitamos instalar manualmente el kernel (2 pasos): (i) cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-<version-completa-delkernel>

Av. Del Parque Sur 699 Of. 206 San Borja

18

Asesores & Soporte Linux SAC El Kernel Linux

Soportelinux.com

(ii) Ahora editar el archivo /etc/lilo.conf y agregar una directiva image que le dir a LILO dnde encontrar este kernel en el sistema de archivos. - Ejecutar /sbin/lilo y reiniciar. 2. Dado que instalamos el paquete kernel-version.src.rpm podemos ahora usar este paquete y recompilar un kernel preconfigurado para RedHat. Ntese que aunque no se requiere intervencin del usuario no ser posible modificar el menu .config. - Primero reconstruir los binarios compilados con: rpm --rebuild kernel-version.src.rpm - Esto eventualmente generar el paquete kernel-version.i368.rpm /usr/src/redhat/RPMS/i386/. - Luego, actualizar el kernel con RPM usando la opcinU en el directorio

Av. Del Parque Sur 699 Of. 206 San Borja

19

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux

Arrancando Linux
Descripcin
Dar una mirada ms cercana al proceso de arranque ayuda a poder comprender mejor cualquier problema o inconveniente que pueda darse tanto con el hardware as como con funciones administrativas. Primero nos enfocaremos en el rol del programa init y su configuracin asociada en el archivo /etc/inittab. El rol de LILO en el momento del arranque es estudiado en mayor profundidad. Finalmente pasaremos a resumir el proceso de arranque. El documento From Power to Bash Prompt escrito por Greg O'Keefe as como las pginas man de boot(7) son buenas referencias para este mdulo.

1. Entendiendo los niveles de arranque (runlevel)


A diferencia de la mayora de sistemas operativos no-UNIX que solamente tienen dos modos funcionales (ON y OFF), los sistemas UNIX incluido Linux tienen diferentes niveles de arranque tales como el nivel de mantenimiento o multiusuario, etc. Los niveles de arranque son numerados del 0 al 6. Lista 1: Niveles de arranque (runlevel) Runlevel 0 apaga el sistema de manera segura, el nivel de arranque 6 reinicia el sistema de forma segura Runlevel 1 es modo monousuario (single- user mode) Runlevel 2 es modo multiusuario (multi-user mode) sin soporte NFS Runlevel 3 es modo multiusuario (full multi-user mode) completo Runlevel 4 generalmente no est definido y est en desuso Runlevel 5 es como el nivel 3 pero ejecuta un gestor de pantalla (Display Manager) tambin Tanto init como telinit son usados para cambiar de un nivel a otro. Recordar que init es el primer programa ejecutado luego de que el kernel ha sido inicializado en el arranque. El PID para el proceso init siempre es 1. Lista 2: The PID para init siempre es 1 [root@nasaspc /proc]# ps uax |grep init USER PID %CPU %MEM VSZ RSS TTY COMMAND root 1 0.2 0.0 S 20:17 0:04 init [3]

STAT START 1368 52 ?

TIME

En cada nivel de arranque el sistema arrancar o detendr una serie de servicios. Estos programas son guardados en /etc/rc.d/init.d. Este directorio contiene todos los servicios que el sistema puede requerir. Una vez que estos programas son ejecutados ellos permanecern activos hasta que un nuevo nivel de arranque sea invocado. Los siguientes servicios son tambin llamados demonios.

Lista 3: Lista de servicios tpicos (o demonios) en /etc/rc.d/init.d/

Av. Del Parque Sur 699 Of. 206 San Borja

20

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux
ls /etc/rc.d/init.d/ anacron cups identd kadmin krb5kdc apmd dhcpd innd kdcrotate kudzu arpwatch functions ipchains keytable ldap atd gpm iptables killall linuxconf autofs halt irda kprop lpd crond httpd isdn krb524 marsrv mcserv named netfs network nfs nfslock nscd ntpd pcmcia portmp pgsql pppoe random rawdevices rhnsd rwhod sendmail single smb snmpd squid sshd syslog tux xfs xinetd

Nota: Es posible detener o iniciar manualmente un demonio determinado en /etc/rc.d/init.d pasndole el argumento apropiado. Por ejemplo si se desea reiniciar el servicio apache se tipeara:

/etc/rc.d/init.d/httpd restart Cuando trabajamos con niveles de arranque se ha de instruir a una serie de programas iniciarse y a otros tantos detenerse. Digamos que deseamos pasar al runlevel 2 tipearamos lo siguiente:

/sbin/init 2

Esto forzara a init a leer su archivo de configuracin /etc/inittab para saber qu sucedera en este nivel. En particular (asumiento que estamos cambindonos al runlevel 2) la siguiente lnea en inittab es ejecutada: l2:wait:/etc/rc.d/rc 2 Si miramos en el archivo /etc/inittab la lnea del comando /etc/rc.d/rcn N inicia todos los servicios en el directorio /etc/rc.d/rcN.d que empiecen con una letra S y detendr aquellos servicios que empiecen con una letra K. Estos servicios son enlaces simblicos apuntando a los rc-scrips en el directorio /etc/rc.d/init.d. Si deseamos que un proceso no corra en un runlevel N determinado podemos eliminar el enlace simblico correspondientes en /etc/rc.d/rN.d empezando con una K.

2. El archivo inittab
Tal como fue prometido, dmos una mirada al archivo /etc/inttab. El archivo tiene la siguiente estructura:

Av. Del Parque Sur 699 Of. 206 San Borja

21

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux
id : runlevel : accion : comando Figura 3: El archivo /etc/inittab: id:3:initdefault: # System initialization. si::sysinit:/etc/rc.d/rc.sysinit l0:0:wait:/etc/rc.d/rc 0 l1:1:wait:/etc/rc.d/rc 1 l2:2:wait:/etc/rc.d/rc 2 l3:3:wait:/etc/rc.d/rc 3 l4:4:wait:/etc/rc.d/rc 4 l5:5:wait:/etc/rc.d/rc 5 l6:6:wait:/etc/rc.d/rc 6 -----------------------snip---------------------------------# Trap CTRL-ALT-DELETE ca::ctrlaltdel:/sbin/shutdown -t3 -r now -----------------------snip---------------------------------# 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 El campo id puede ser cualquier cosa. Si un runlevel es especificado entonces el comando y la accion requerida sern ejecutadas solamente en un runlevel especfico. Si ningn nmero es especificado entoncs la lnea es ejecutada en cualquier runlevel. Funcionalidades a recalcar en el archivo /etc/inittab: El runlevel por defecto: esto es configurado al inicio del archivo con el identificador id y la accin initdefault. Ntese que ningn comando es especificado. Esta lnea simplemente le dice a init cul es el runlevel por defecto. Primer programa invocado por init: /etc/rc.d/rc.sysinit. Este script configura los valores por defecto del sistema tales como la variable de entorno PATH, determina si se activar el soporte de red, el nombre del host, etc. Servicios del runlevel por defecto: Si el runlevel por defecto es 3 entonces solamente la lnea l3 ser ejecutada. La accin es wait, ningn otro programa es ejecutado hasta que todos los servicios en el runlevel 3 estn ya en ejecucin. Las terminales getty: Las lneas con identificadores (id) del 1 al 6 inicializan las terminales virtuales. Es aqu donde se pueden alterar el nmero de terminales. Runlevel 5: La lnea final en inittab ejecuta el gestor de pantalla (Display Manager) si el runlevel 5 es alcanzado. Observaciones: 1. Podemos configurar un mdem para la escucha de conexiones en inittab. Si el mdem est enlazado a /dev/ttyS1 entonces la siguiente lnea permitir conexin de datos (no fax) luego de dos marcados:

Av. Del Parque Sur 699 Of. 206 San Borja

22

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux
S1:12345:respawn:/sbin/mgetty -D -x 2 /dev/ttyS1 2. Cuando realizemos cambios a /etc/inittab necesitaremos forzar a que init relea su fichero de configuracin. Esto es posible de la siguiente forma:

/sbin/init q

3. LILO el gestor de arranque


La informacin necesitada por el gestor es actualizada por /sbin/lilo (el instalador del gestor de arranque) que lee su fichero de configuracin /etc/lilo.conf. Durante el arranque LILO necesita conocer informacin esencial tal como dnde se encuentra el kernel (usualmente en /boot) y dnde se aloja la particin raz. LILO no entiende la estructura de un sistema de archivos o dnde se encuentran los archivos. Solamente entiende ubicaciones o zonas de un disco fsico. Si estamos instalando una segunda distribucin de Linux B que no est en ejecucin mientras configuramos lilo.conf, entonces necesitaremos montar la particin que contenga el directorio /boot de dicha distribucin B. Tambin debemos mantener un registro de la ubicacin de la particin B.

Parmetros de init: Asmismo, LILO puede pasar los parmetros del runlevel a init. Una vez que el kernel ha sido cargado, init toma el control del proceso de arranque. Si ningn parmetro se le ha pasado entonces init iniciar con el runlevel por defecto especificado en /etc/inittab. Pasando instrucciones del runlevel a init en el prompt de LILO Boot: linux s

Pasando parmetros del Kernel:

Av. Del Parque Sur 699 Of. 206 San Borja

23

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux

Los parmetros para el kernel pueden ser pasados a travs del prompt de LILO o especificados en /etc/lilo.conf con la directiva append. Ejemplos append= "pci=bisoirq" append=ram=16M append=/dev/hdc=ide-scsi

(for CD writers)

Los parmetros pasados al kernel en el momento del arranque son destinados generalmente para los mdulos compilados y que a menudo facilitan la deteccin de hardware. Durante el arranque todos los mensajes del kernel son guardados en /var/log/dmesg por defecto. Este archivo puede ser leido o impreso en la salida estndar con el comando dmesg

4. Del arranque a la shell bash


Ahora podemos intentar ir a travs de los pasos que sigue Linux durante su proceso de arranque. Si un initial ramdisk es especificado es cargado aqu. Los mdulos son insertados del initial ramdisk. El kernel es cargado desde el medio de almacenamiento, especificado en la configuracin de LILO. Mientras se carga el kernel ste es descomprimido. El kernel entonces monta el sistema de archivos raz (/) de acuerdo con la configuracin que recibe de LILO (usualmente read-only). Por lo tanto programas esenciales en /bin y /sbin ya se encuentran disponibles. El kernel entonces carga init, el primer proceso en espacio de usuario. init lee el archivo /etc/inittab y sigue sus instrucciones. En particular rc.sysinit es ejecutado. Un chequeo (fsck) es realizado a los sistemas de archivos de acuerdo a las configuraciones respectivas en /etc/fstab. Luego init va al runlevel por defecto, los procesos getty se inicial y el proceso de arranque culmina.

Av. Del Parque Sur 699 Of. 206 San Borja

24

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux

El prompt para el login es ahora controlado por los procesos getty en las respectivas ttys. Luego que el usuario ha tipeado su nombre de inicio de sesin y presione Enter entonces se inicia /bin/login. Luego /bin/login le pide al usuario que ingrese su contrasea; el usuario la tipea y presiona Enter. La contrasea ingresada es comparada con la clave encontrada en /etc/passwd o /etc/shadow.

Av. Del Parque Sur 699 Of. 206 San Borja

25

Asesores & Soporte Linux SAC

Soportelinux.com

Arrancando Linux
5. Ejercicios
Dar una mirada a la pgina man boot(7), cubre la mayora de lo descrito en este mdulo. 1. Cambiar el runlevel actual por defecto de 3 a 5. - Cmo conocemos el runlevel actual? 2. Habilitar Ctrl+Alt+Del solamente para el runlevel 3. 3. Agregar un nuevo prompt de login en tty7. - Cmo puede forzarse a init para que relea su archivo de configuracin? 4. Use dmesg para conocer el chipset de la tarjeta de red. 5. Investigar diferencias entre shutdown, halt y reboot. - Qu opcin pasada a shutdown le obligar a realizar un chequeo con fsck en el prximo arranque? 6. Use las herramientas chkconfig o ntsysv para deshabilitar el demonio sshd en los runlevels 2, 3, 4, y 5. Verificar que los enlaces simblicos en los directorios rc2.d, rc3.d, rc4.d y rc5.d hayan cambiado. 7. Reiniciar el sistema. En el prompt de arranque pasar el parmetro apropiado init= para saltar /sbin/init e iniciar solamente una sesin de bash.

Av. Del Parque Sur 699 Of. 206 San Borja

26

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios

Administrando Grupos y Usuarios


1. Creando nuevos usuarios
Paso 1: Crear una cuenta El comando useradd agrega nuevos usuarios al sistema y generalmente el enlace simblico useradd apunta a l. Sintaxis: useradd [opciones] nombre-de-login Ejemplo: agregar un nuevo usuario con nombre de login rufus

useradd rufus Los valores por defecto sern usados cuando ninguna opcin es especificada. Podemos ver estos valores por defecto con useradd D. Opciones por defecto listadas con useradd D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel Ntese que esta informacin est tambin disponible en /etc/default/useradd Paso 2: Activar la cuenta con una nueva clave Para permitir al usuario acceder a su cuenta el administrador debe asignarle una contrasea al usuario usando la herramienta passwd. Sintaxis: passwd login-name Estos pasos crean un nuevo usuario. Esto tambin ha definido el entorno del usuario tal como el directorio personal y la shell por defecto. Al usuario tambin se le ha asignado un grupo, su grupo primario.

2. Trabajando con grupos


Cada nuevo usuario creado es asignado a un grupo inicial (o primario). Dos convenciones existen. Tradicionalmente este grupo primario es el mismo para todos los usuarios y es llamado users con un ID de grupo (GID) de 100. Muchas distribuciones de Linux se adhieren a esta convencin. Av. Del Parque Sur 699 Of. 206 San Borja

27

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


El esquema de Grupo de Usuario Privado (UPG, User Private Group) fue introducido por Redhat y cambia esta convencin sin cambiar la manera en que los grupos UNIX trabajan. Con UPG cada nuevo usuario pertenece a su propio grupo primario. El grupo tiene el mismo nombre que el nombre de login (por defecto), y el GID est en el rango de 500 a 60000 (igual que los UIDs). Como una consecuencia, cuando se usa el esquema tradicional para los grupos el umask (ver LPI 101) es asignado a 022, mientras que en el esquema UPG el umask es asignado a 002.

Pertenencia a grupos: Un usuario puede pertenecer a cualquier cantidad de grupos. Sin embargo en un instante determinado (cuando se crea un archivo por ejemplo) solamente un grupo es el grupo efectivo. La lista de todos los grupos a los que un usuario pertenece es obtenida con los comandos groups o id. Ejemplo para el usuario root: Listar todos los IDs:

id

uid=0(root) gid=0(root) groups=0(root), 1(bin), 2(daemon), 3(sys), 4(adm), 6(disk), 10(wheel), 600(sales)

Listar todos los grupos:

groups

root bin daemon sys adm disk wheel sales

Unindose a un grupo: Unirse a un grupo cambia el grupo efectivo de un usuario e inicia una nueva sesin desde la cual el usuario puede cerrar sesin. Esto es realizado con el comando newgrp. Ejemplo: Unindose al grupo sales newgrp sales

Si el comando groups es ejecutado, el primer grupo en la lista ya no sera root sino sales.

Av. Del Parque Sur 699 Of. 206 San Borja

28

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


Creando un nuevo grupo: La herramienta groupadd es usada para administrar grupos. Esto agregar una entrada en el archivo /etc/group. Ejemplo: Crear el grupo devel

groupadd devel

Agregando un usuario a un grupo: Las tareas administrativas sobre grupos puede realizada con la herramienta gpasswd. Uno puede agregar (-a) o eliminar (-d) usuarios de un grupo y asignarle un administrador (-A). Esta herramienta fue originalmente diseada para asignar nicamente una contrasea a un grupo, permitiendo que los miembros del mismo grupo puedan iniciar sesin con la misma contrasea. Por razones de seguridad esta caracterstica ya no trabaja ms. Ejemplo: Agregar rufus al grupo devel

gpasswd -a rufus devel

3. Archivos de configuracin
Los archivos /etc/passwd y /etc/shadow:
Los nombres de todos los usuarios son almacenados en /etc/passwd. Este archivo tiene la siguiente estructura: 1. 2. 3. 4. 5. 6. 7. Nombre de inicio de sesin (login name) Password (o x si se usa un archivo shadow) El UID El GID Texto descriptivo para el usuario (gecos) El directorio personal del usuario (home directory) La shell del usuario

Estos 7 campos estn separados por dos puntos (:), tal como el ejemplo de abajo:

Av. Del Parque Sur 699 Of. 206 San Borja

29

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


Archivo /etc/passwd con contrasea encriptada: george:$1$K05gMbOv$b7ryoKGTd2hDrW2sT.h:Dr G Micheal:/home/georges:/bin/bash Para poder esconder la contrasea encriptada de los usuarios ordinarios, debera usarse un archivo shadow. El archivo /etc/shadow contiene los nombres de usuario y las contraseas encriptadas siendo leble este archivo solamente por el usuario root. Si no se posee un archivo shadow en /etc entonces debera ejecutarse el siguiente comando:

/usr/sbin/pwconv

(passwd -> shadow)

Esto colocar una 'x' en el segundo campo del archivo /etc/passwd y crear el archivo /etc/shadow. Si ya no deseamos usar contraseas shadow entonces podemos usar el siguiente comando:

/usr/sbin/pwunconv

(shadow -> passwd)

Advertencia: Cuando se usen contraseas shadow el archivo /etc/passwd puede ser leble por todos (644) y el archivo /etc/shadow debe ser ms estricto (600 o incluso 400). Sin embargo cuando se usa pwunconv asegurarse de cambiar los permisos segn lo recomendado.

Los archivos /etc/group y /etc/gshadow: De la misma manera, la informacin sobre los grupos es almacenada en /etc/group. Este archivo contiene 4 campos separados por dos puntos (:). 1. 2. 3. 4. Nombre de grupo El password de grupo (o x si gshadow existe) El GID Lista de miembros separada por comas (,)

Ejemplo de una entrada de /etc/group: java:x:550:jade, eric, rufus Tal como para los usuarios existe un archivo /etc/gshadow que es creado cuando se usan contraseas shadow para los grupos. Las herramientas usadas para cambiar entre archivos de contraseas shadow y no-shadow para los grupos son las que siguen:

/usr/sbin/grpconv

Crea el archivo /etc/gshadow

/usr/sbin/grpunconv

Elimina el archivo gshadow

Av. Del Parque Sur 699 Of. 206 San Borja

30

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


El archivo /etc/login.defs y /etc/skel/: El archivo /etc/login.defs contiene la siguiente informacin:

El directorio de mail: MAIL_DIR Control de expiracin de passwords: PASS_MAX_DAYS, PASS_MIN_DAYS, PASS_MAX_LEN, PASS_WARN_AGE Valores max/min para seleccin automtica de UID en useradd: UID_MIN, UID_MAX Valores max/min para seleccin automtica de GID en groupadd: GID_MIN, GID_MAX Automticamente crea el directorio personal del usuario con useradd: CREATE_HOME

El directorio /etc/skel contiene archivos por defecto que sern copiados al directorio personal de los usuarios recin creados: .bashrc, .bash_profiles, ...

4. Opciones de comandos
useradd (opciones) -c -d -g -G -u -s -p -e -k Comentario (Nombre completo) Ruta al directorio personal Grupo inicial (GID). El GID debe ya existir Lista de grupos suplementarios separados por comas UID de usuario Shell por defecto del usuario Password (Encriptacin md5) Fecha de expiracin de la cuenta El directorio skel

groupadd (opciones) -g Asigna un GID

5. Modificando cuentas y opciones por defecto


Todas las opciones disponibles mientras se crean usuarios o grupos pueden ser modificadas. La herramienta usermod tiene las siguientes opciones: usermod (opciones) -d -g -l -u -s El directorio personal del usuario El GID inicial del usuario El nombre de inicio de sesin del usuario El UID del usuario La shell por defecto

Av. Del Parque Sur 699 Of. 206 San Borja

31

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


Ntese que estas opciones son las mismas para useradd Asmismo, podemos cambiar detalles sobre un grupo con groupmod. Existen principalmente dos opciones: groupmod (opciones) -g -n El GID El nombre de grupo

Bloqueando una cuenta

Una cuenta de usuario puede ser bloqueada colocando un signo de exclamacin (!) como prefijo a la contrasea del usuario. Esto puede ser realizado tambin con las siguientes opciones de comando: Desbloquear passwd -u usermod -U

Bloquear passwd -l usermod -L


Cuando se usen contraseas shadow, reemplazar x con un * Una opcin menos prctica es remover la contrasea por completo con passwd -d Finalmente, uno puede asignar /bin/false como la shell por defecto del usuario en /etc/passwd

Cambiando la fecha de expiracin de la contrasea: Por defecto una contrasea de usuario es vlida por 99999 das, esto es equivalente a 2739 aos (el valor por defecto de PASS_MAX_DAYS). El usuario recibe una advertencia 7 das antes que su contrasea ha de expirar (el valor por defecto de PASS_WARN_AGE) con un mensaje como el siguiente cuando inicia sesin: Warning: your password will expire in 6 days Existe otro nmero de polticas de expiracin llamado PASS_MIN_DAYS. Este es el mnimo nmero de das que un usuario debe esperar antes que pueda cambiar su contrasea, es asignado a cero por defecto. La herramienta chage permite a un administrador cambiar todas estas opciones. Uso: chage [ -l ] [ -m min_days ] [ -M max_days ] [ -W warn ] [ -I inactive ] [ -E expire ] [ -d last_day ] user La primera opcin -l lista las polticas de expiracin actuales para el usuario. Solamente discutiremos la opcin -E. Esto bloquea una cuenta en una fecha determinada. La fecha es asignada en das UNIX o en el formato YYYY/MM/DD. Ntese que todos estos valores son almacenados en /etc/shadow, y pueden ser editados directamente. Eliminando una cuenta: Una cuenta de usuario puede ser removida con el comando userdel. Para asegurarse que el directorio personal del usuario es tambin eliminado debe agregarse la opcin -r al comando.

userdel -r jade

Av. Del Parque Sur 699 Of. 206 San Borja

32

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


6. Ejercicios
1. Creando usuarios Usar adduser para crear un usuario llamado tux con un UID de 600 y un GID de 550. Usar usermod para cambiar su directorio personal. Necesita ser creado el nuevo directorio? El contenido de /etc/skel es copiado al nuevo directorio? An pueden ser accedidos por tux los contenidos del antiguo directorio personal? Usar usermod para agregar tux al grupo wheel. 2. Trabajando con grupos Crear un grupo llamado sales usando groupadd. Agregar tux a este grupo usando gpasswd. Iniciar sesin como tux y unirse al grupo sales usando newgrp. 3. Archivos de configuracin Agregar un usuario al sistema editando /etc/passwd y /etc/group Crear un grupo llamado share y agregar tux a este grupo editando manualmente /etc/group 4. Modificando una cuenta Cambiar la fecha de expiracin de la cuenta tux usando usermod. Bloquear la cuenta del usuario tux (Usar herramientas o editar /etc/shadow) Evitar que el usuario inicie sesin cambiando la shell por defecto a /bin/false Cambiar el valor de PASS_MAX_DAYS para el usuario tux a 1 en /etc/shadow

Av. Del Parque Sur 699 Of. 206 San Borja

33

Asesores & Soporte Linux SAC

Soportelinux.com

Administrando Grupos y Usuarios


5. Cambiando configuraciones por defecto Usar useradd -D para cambiar las configuraciones por defecto del sistema de modo tal que a cada nuevo usuario creado se le asignar /bin/sh en lugar de /bin/bash como shell por defecto. Editar /etc/login.defs y cambiar el valor de PASS_MAX_DAYS de modo tal que los nuevos usuarios creados necesiten cambiar su contrasea cada 5 das.

Av. Del Parque Sur 699 Of. 206 San Borja

34

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red

Configuracin de red
1. La interfaz de red
La tarjeta interfaz de red (NIC, Network Interface Card) debe ser soportada por el kernel. Para determinar qu tarjeta estamos usando se puede obtener informacin desde dmesg, /proc/interrupts, lsmod o /etc/modules.conf Ejemplo: dmesg Linux Tulip driver version 0.9.14 (February 20, 2001) PCI: Enabling device 00:0f.0 (0004 -> 0007) PCI: Found IRQ 10 for device 00:0f.0 eth0: Lite-On 82c168 PNIC rev 32 at 0xf800, 00:A0:CC:D3:6E:0F, IRQ 10. eth0: MII transceiver #1 config 3000 status 7829 advertising 01e1.

cat /proc/interrupts 0: 1: 2: 7: 8: 10: 11: 14: 15: 8729602 4 0 0 1 622417 0 143040 180 XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC XT-PIC timer keyboard cascade parport0 rtc eth0 usb-uhci ide0 ide1

/sbin/lsmod Module tulip Size 37360 Used by 1 (autoclean)

Del ejemplo de arriba vemos que el chipset de la tarjeta de red es Tulip, la direccin I/O es 0xf800 y la IRQ es 10. Esta informacin puede ser usada si el mdulo incorrecto es cargado o si los recursos (I/O o IRQ) no estn disponibles. Esta informacin puede ser usada para insertar un mdulo con una diferente direccin I/O (usando modprobe o insmod) o puede ser guardado en /etc/modules.conf (esto guardar los cambios para la prxima vez que se reinicie el sistema).

Av. Del Parque Sur 699 Of. 206 San Borja

35

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
2. Informacin de host
Los siguientes archivos son usados para almacenar informacin de red.

/etc/resolv.conf contiene una lista de los servidores DNS

nameserver 192.168.1.108 nameserver 192.168.1.1 search soportelinux.com.pe

/etc/HOSTNAME es usado para asignar un nombre a la PC Uno puede tambier asociar un nombre a una interfaz de red. Esto es realizado de modo diferente entre las distribuciones. /etc/hosts contiene nuestra direccin IP as como tambin la de otros hosts

# Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 # other hosts 192.168.254.201 192.168.254.202 pclab2 pclab2.soportelinux.com.pe pclab3 localhost localhost.localdomain

/etc/sysconfig/network define si la red debe ser iniciada o no. (puede tambin contener la variable the HOSTNAME) NETWORKING=yes HOSTNAME=pclab2.soportelinux.com.pe GATEWAY=192.168.254.1 GATEWAYDEV=

/etc/sysconfig/network-scripts/ifcfg-eth0 Los parmetros de configuracin para eth0 DEVICE=eth0 BOOTPROTO=none BROADCAST=192.168.254.255 IPADDR=192.168.254.201 NETWORK=192.168.254.0 ONBOOT=yes USERCTL=no

3. Detener e iniciar la red


Desde la lnea de comandos:

Av. Del Parque Sur 699 Of. 206 San Borja

36

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
La herramienta principal usada para levantar una interfaz de red es ifconfig. Una vez inicializada el mdulo del kernel que posea un alias a eth0 en /etc/modules.conf (Ejm. tulip.o) es cargado y se le asigna una direccin IP y mscara de red. Como resultado la interfaz de red puede ser encendida o apagada sin perder esta informacin mientras el mdulo del kernel siga cargado. Ejemplos: Usando ifconfig. /sbin/ifconfig eth0 192.168.10.1 netmask 255.255.128.0 /sbin/ifconfig eth0 down /sbin/ifconfig eth0 up Otra herramienta es ifup. Esta herramienta lee la configuracin del sistema en /etc/sysconfig y asigna los valores almacenados para una interfaz determinada. El script para eth0 es llamado ifcfg-eth0 y ha de ser configurado. Si un protocolo de arranque tal como DHCP es definido entonces ifup iniciar la negociacin de dicho protocolo. Ejemplos: Usando ifup. /sbin/ifup eth0 /sbin/ifup ppp0 /sbin/ifdown eth0 Usando el script de red: En el momento del arranque la interfaz de red Ethernet es inicializada con el script /etc/rc.d/init.d/network. Todos los archivos de configuracin de red relevantes son almacenados en el directorio /etc/sysconfig. Adems el script tambin lee opciones de sysctl en /etc/sysctl.conf, es aqu donde puede configurarse el sistema como un router (permitir el reenvo IP o IP Forwarding en el kernel). Por ejemplo la lnea: net.ipv4.ip_forward = 1 habilitar el reenvo IP (IP Forwarding) y el archivo /proc/sys/net/ipv4/ip_forward contendr un 1 como valor. El script network es iniciado con el siguiente comando: /etc/rc.d/init.d/network restart Renovando un prstamo DHCP: Las siguientes herramientas pueden solicitar una nueva direccin IP a un servidor DHCP: pump dhcpclient Un demonio cliente existe y es llamado dhcpcd (no confundir con el demonio del servidor DHCP llamado dhcpd)

4. Enrutado

Av. Del Parque Sur 699 Of. 206 San Borja

37

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
Una diferencia notable cuando usamos ifup es la tabla de enrutamiento del sistema. Esto es debido a que el archivo /etc/sysconfig/network es ledo, donde un default gateway (puerta de enlace por defecto) es almacenado, o el servidor DHCP ha enviado esta informacin junto con el nmero IP. Las tablas de enrutamiento son configuradas, consultadas y cambiadas con el comando route. Ejemplos de enrutamiento: Agregar una ruta esttica a la red 10.0.0.0 a travs del dispositivo eth1 y usar 192.168.1.108 como el gateway para dicha red: /sbin/route add -net 10.0.0.0 gw 192.168.1.108 dev eth1 Agregar un default gateway: /sbin/route add default gw 192.168.1.1 eth0 Consultar la tabla de enrutamiento del kernel: /sbin/route -n Kernel IP routing table Destination 192.168.1.0 10.1.8.0 127.0.0.0 0.0.0.0 Gateway 0.0.0.0 192.168.1.108 0.0.0.0 192.168.1.1 Genmask 255.255.255.0 255.0.0.0 255.0.0.0 0.0.0.0 Iface eth0 eth1 lo eth0

Default Gateway: En el ejemplo anterior, el campo Destination contiene una lista de redes. En particular, 0.0.0.0 significa 'a donde sea'. Con esto en mente, existen dos direcciones IP en el campo Gateway. Cul de los dos es el default gateway? Para evitar tener que ingresar rutas estticas a mano los demonios especiales gated o routed son ejecutados para actualizar dinmicamente las tablas de enrutamiento a travs de una red. Si pertenecemos a la red 192.168.10.0 y agregamos una ruta a la red 192.168.1.0 podemos notar que las mquinas en esta ltima red no responden. Esto es porque ninguna ruta ha sido asignada desde la red 192.168.1.0 hacia nuestro host. Este problema es resuelto con enrutamiento dinmico. Rutas estticas permanentes Si tenemos varias redes con ms de un gateway podemos usar /etc/sysconfig/static-routes (en lugar de demonios de enrutamiento). Estas rutas sern agregadas en el momento del arranque por el script network. Un escenario de enrutamiento:

Av. Del Parque Sur 699 Of. 206 San Borja

38

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red

5. Herramientas comunes de red


Aqu hay una lista corta de herramientas tiles cuando se presenten inconvenientes con las conexiones de red. ping host: Esta herramienta envia un datagrama ICMP ECHO_REQUEST a un host y espera un datagrama ICMP ECHO_RESPONSE. Opciones para ping: -b -c N -q ping a una direccin de broadcast Enva N paquetes Modo silencioso: Muestra solamente los mensajes de inicio y fin

netstat: Podemos obtener informacin de las conexiones de red actuales, la tabla de enrutamiento o estadsticas de la interfaz de red dependiendo de las opciones usadas. Opciones para netstat: -r -I -n Igual que /sbin/route Muestra una lista de interfaces de red No resuelve direcciones IP

Av. Del Parque Sur 699 Of. 206 San Borja

39

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
-p -v -c Retorna el PID y nombre de los programas (solamente para root) Verboso Actualizacin continua

Ejemplo: Salida de netstat -inet n:

Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address tcp 0 0 192.168.1.10:139 192.168.1.153:1992 tcp 0 0 192.168.1.10:22 192.168.1.138:1114 tcp 0 0 192.168.1.10:80 192.168.1.71:18858

State ESTABLISHED ESTABLISHED TIME_WAIT

En la lista de arriba podemos ver que el host local ha establecido conexiones en los puertos 139, 22 y 80. arp: Muestra la cach de la resolucin de direcciones del kernel Ejemplo: arp Address 192.168.1.71 traceroute: Muestra la ruta tomada desde el host local hacia el host destino. traceroute fuerza a que las enrutadores intermedios enven de regreso mensajes de error (ICMP TIME_EXCEEDED) de manera deliberada asignando el valor TTL (time to live) bastante bajo. Luego de la notificacin TIME_EXCEEDED traceroute incrementa el valor TTL forzando al siguiente paquete a llegar ms lejos hasta que alcance su destino. Ejemplo: CMD: /usr/sbin/traceroute -n www.redhat.com traceroute: Warning: www.redhat.com has multiple addresses; using 216.148.218.197 traceroute to www.redhat.com (216.148.218.197), 30 hops max, 38 byte packets 1 192.168.1.1 0.440 ms 0.347 ms 0.341 ms ---- snip --14 12.122.2.145 112.116 ms 110.908 ms 112.002 ms 15 12.122.2.74 156.629 ms 157.028 ms 156.857 ms 16 12.122.255.222 156.867 ms 156.641 ms 156.623 ms 17 216.148.209.66 159.982 ms 157.462 ms 158.537 ms 18 216.148.218.197 157.395 ms 156.789 ms 156.080 ms Opcions para traceroute: -f ttl -n -v -w sec cambia el TTL inicial a ttl en lugar de 1 No resuelve direcciones IP Verboso Asigna el tiempo de espera en paquetes de retorno a sec HWtype ether HWaddress 00:04:C1:D7:CA:2D Iface eth0

Av. Del Parque Sur 699 Of. 206 San Borja

40

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
6. Ejercicios
1. En la seccin escenario de enrutamiento de este captulo mostrar la tabla de enrutamiento para el gateway de la LAN. 2. Iniciar la interfaz de red manualmente ifconfig eth0 192.168.0.x Listar los mdulos del kernel. Asegurarse que el mdulo de eth0 sea cargado (chequar /etc/modules.conf). 3. Detener la interfaz de red con: (i) ifconfig eth0 down Verificar que podemos iniciar nuevamente la interfaz de red sin ingresar informacin nueva: (ii) ifconfig eth0 up 4. Detener la interfaz de red y descargar el mdulo del kernel (rmmod module). Qu sucede si repetimos el paso 3(ii)?

Av. Del Parque Sur 699 Of. 206 San Borja

41

Asesores & Soporte Linux SAC

Soportelinux.com

Configuracin de red
5. Dividir la clase en dos redes A (192.168.1.0) y B (10.0.0.0).

Tratar de acceder a hosts a travs de la red Elegir una mquina existente como gateway (en cualquiera de las redes) Solamente en la mquina asignada como gateway! Hacer lo siguiente: -- Habilitar IP forwarding: echo 1 > /proc/sys/net/ipv4/ip_forward -- Iniciar un alias de interfaz de red (esto trabajar como una segunda interfaz). Si estamos en la red 192.168.1.0 entonces hacer lo siguiente: ifup eth0:1 10.0.0.x (donde x es una direccin IP disponible). Agregar una ruta a la nueva red forzndola a usar el dispositivo eth0:1

-- Agregar una ruta a la otra red usando la mquina gateway (necsitaremos conocer la configuracin de eth0 o eth0:1 de este gateway dependiendo en qu red nos encontremos)

Av. Del Parque Sur 699 Of. 206 San Borja

42

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Redes TCP/IP 1. Nmeros binarios
Nmeros binarios 10 = 21 100 = 22 101 = 22 + 1 111 = 100 + 010 + 001

Esto significa que un nmero binario puede ser fcilmente convertido a notacin decimal como sigue: 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001 La direccin IP: La direccin IP asignada a una interfaz de red consta de 4 bytes (4 veces 8 bits) separados por puntos; esto para el caso de IPv4. Decimal 192.168.1.1 Binario 11000000.10101000.00000001.00000001 = = = = = = = = 27 26 25 24 23 22 21 20 = = = = = = = = 128 64 32 16 8 4 2 1

2. Direcciones de red, broadcast y mscara de red


Un nmero IP contiene informacin sobre la direccin del host (o interfaz) y la direccin de red. La mscara de red: Una mscara de red es usada para definir qu parte de la direccin IP es usada para la red, es tambin llamada mscara de subred. Una mscara de 16 bits y 17 bits: 255.255.0.0 16-bit 255.255.128.0 17-bit 11111111.11111111.00000000.0 11111111.11111111.10000000.0

La direccin de broadcast es usualmente dada en notacin decimal.

Ejemplo: Con una mscara de red de 16-bit las siguientes direcciones IP estn en la misma red:

00100000 00100000

. .

10000000 10000000

. .

0000000 1 0000000 0

. .

00000001 00000011

Av. Del Parque Sur 699 Of. 206 San Borja

43

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Esto significa que cualquier bit que sea cambiado dentro de la caja (8+8=16 bits) cambiar la direccin de red y las interfaces necesitarn un gateway para conectarse una a la otra. De la misma manera, cualquier bit que sea cambiado fuera de la caja cambiar la direccin de la interfaz de red sin cambiarse de red. Por ejemplo con una mscara de 24-bit las dos direcciones de IP de abajo estaran en diferentes redes:

00100000 00100000

. .

10000000 10000000

. .

00000001 00000000

. .

00000001 00000011

La direccin de red: Cada red tiene un nmero que es necesitado cuando configuramos el enrutamiento del sistema. El nmero de red es una porcin de la direccin IP. La porcin de la direccin del host es reemplazado con ceros. Tpica direccin de red: 192.168.1.0 Direccin de broadcast: La direccin de broadcast de una mquina es un rango de hosts/interfaces que pueden ser accedidos en la misma red. Por ejemplo un host con una direccin de broadcast 10.1.255.255 podr acceder a cualquier mquina con una direccin IP de la forma 10.1.x.x. Tpica direccin de broadcast: 192.168.1.255 Operaciones lgicas simples pueden ser aplicadas a los nmeros de broadcast, red y mscara. Para obtener la direccin de red a partir de una direccin IP simplemente aplicar la operacin AND entre la IP y la mscara. Network Address = IP AND Netmask

Similarmente la direccin de broadcast se obtiene aplicando la operacin OR entre la direccin de red y la negacin de la mscara. Broadcast Address = Network OR not[Netmask]

Aqu AND y OR son operaciones lgicas en la forma binaria de estas direcciones. Ejemplo: Tomemos la IP 192.168.3.5 con una mscara 255.255.255.0. Podemos realizar las siguientes operaciones: Direccin de red AND = IP AND (192.168.3.5) MASK

11000000. 10101000.00000011.00000101

11111111.11111111.11111111.00000000 (255.255.255.000) _____________________________________________ 11000000.10101000.00000011.00000000 (192.168.3.0)

Av. Del Parque Sur 699 Of. 206 San Borja

44

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Direccin de broadcast OR = IP OR (192.168.3.5) NOT-MASK

11000000. 10101000.00000011.00000101

00000000.00000000.00000000.11111111 (000.000.000.255) _____________________________________________ 11000000.10101000.00000011.11111111 (192.168.3.255)

Est claro del ejemplo de arriba que la direccin IP junto con la mscara de red es suficiente para obtener todo el resto de informacin relativo a la red y el host.

3. Clases de red
Direcciones IP reservadas Para redes privadas un cierto nmero de direcciones IP son designadas las cuales jams son usadas en Internet. Estas direcciones IP son tpicamente usadas para redes LAN. La siguiente tabla muestra los tipos de clases de red privados/reservados. Tabla1: Direcciones reservadas Clase A 1 Clase B 16 Clase C 255 Clases de IP Class A: Direccin de red de 8-bit y direccin de host de 24-bit. El primer byte del nmero IP est reservado para las direcciones de red. De este modo la mscara por defecto sera 255.0.0.0. Los 3 bytes restantes estn disponibles para designar a una direccin de host. Dado que 255.255.255 y 0.0.0 son direcciones invlidas de hosts existe una combinacin de 224 2 = 16 777 214 hosts posibles. Los nmeros IP tienen el primer byte que vara en un rango de 1 a 127. Esto corresponde a un rango binario de 00000001 a 01111111. Los dos primeros bits de direcciones de clase A pueden ser asignados a 00 or 01. Class B: Direccin de red de 16-bit y direccin de host de 16-bit. Los dos primeros bytes del nmero IP son reservados para las direcciones de red. De este modo la mscara por defecto sera 255.255.0.0. Existen 216 2 = 65 534 hosts posibles. El primer byte vara en un rango de 128 a 191. Ntese que el rango binario del primer byte es desde 10000000 a 10111111. Esto implica que los dos primeros bits de una direccin de clase B son siempre 10. Class C: Direccin de red de 24-bit y direccin de host de 8-bit Los tres primeros bytes son reservados para las direcciones de red. La mscara por defecto es 255.255.255.0. Existen 28 2 = 254 hosts posibles. El primer byte vara en un rango de 192 a 223. Esto corresponde a un rango binario de 11000000 a 11011111. De esto podemos concluir que los dos primeros bits de una direccin de clase C son siempre 11.

10.x.x.x 172.16.x.x -- 172.31.x.x 192.168.0.x

Av. Del Parque Sur 699 Of. 206 San Borja

45

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
4. Subredes
El subnetting ocurre cuando los bits reservados para hosts son usados para la red. Esto es determinado por la mscara y resulta en una segmentacin de redes. Por ejemplo una mscara regular de clase A 255.0.0.0 puede ser alterada para permitir que el 1er. bit del segundo byte sea parte de la red. Esto resulta en una direccin de red de 9-bit y nmero IP de host de 23-bit. La mscara binaria lucira como sigue: 11111111.10000000.00000000.00000000 or 255.128.0.0 Otra forma para indicar que una direccin de red de 9-bit est en uso es mostrar el nmero IP 10.1.8.1 como 10.1.8.1/9 Tomaremos el ejemplo de una direccin de clase C 192.168.1.0. Investigamos una red de 25-bit y luego una de 26-bit.

Red de 25-bit Mscara: 11111111.11111111.11111111.10000000 or 255.255.255.128 Dado que Red = IP AND Mscara,notamos a partir de la mscara que dos direcciones de red pueden ser formadas dependiendo del rango de hosts: 1. Las direcciones de hosts en el rango 192.168.1.0xxxxxxx resultan en una red 192.168.1.0. Decimos que el nmero de red es 0. 2. Las direcciones de hosts en el rango 192.168.1.1xxxxxxx resultan en una red 192.168.1.128. Decimos que el nmero de red es 128. Tabla2: En ambos casos la sustitucin de x por ceros o unos tienen un significado especial Direccin de red 0 128 Sustitucin con 1s Broadcast: 127 Broadcast: 255 Sustitucin con 0s Red: 0 Red: 128

Dado que la direccin de host es de una longitud de 7-bit y excluimos 2 valores (todos 1 y todos cero) entonces tenemos 27 2 = 126 hosts en cada red con un total de 252 hosts. Ntese ue si la mscara de subred por defecto 255.255.255.0 es usada tenemos 254 direcciones de host disponibles. En el ejemplo de arriba 192.168.1.127 y 192.168.1.128 tienen un significado especial y ese es el por qu solamente 252 direcciones de host pueden ser usadas. Red de 26-bit Mscara: 11111111.11111111.11111111.11000000 or 255.255.255.192 Aqu de nuevo dependiendo de la direccin de host 4 direcciones de red diferentes pueden ser determinadas con la regla AND. 1. Direcciones de host en el rango 192.168.1.00xxxxxx resultan en una red 192.168.1.0 2. Direcciones de host en el rango 192.168.1.01xxxxxx resultan en una red 192.168.1.64 3. Direcciones de host en el rango 192.168.1.10xxxxxx resultan en una red 192.168.1.128 4. Direcciones de host en el rango 192.168.1.11xxxxxx resultan en una red 192.168.1.192 Sustituyendo las x con 1s en los nmeros de arriba nos da la direccin de broadcast correspondiente:

Av. Del Parque Sur 699 Of. 206 San Borja

46

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
192.168.1.63, 192.168.1.127, 192.168.1.191, 192.168.1.255 Cada subred tiene 26 2 = 62 hosts posibles y un total de 248.

5. La Pila TCP/IP
TCP/IP es una pila de protocolos usados en Internet. Se dice que el nombre describe varios protocolos que son necesitados para poder transportar datos a travs de la red. Los dos principales protocolos son TCP Transmission Control Protocol e IP Internet Protocol. Para simplificar, IP se encarga del manejo de paquetes o datagramas nicamente (direccin de destino, tamao, ...) mientras que TCP se ocupa de la conexin entre dos hosts. La idea es que los protocolos se fen unos de otros, cada uno especializndose en sus tareas. En este contexto uno se refiere simplemente a la pila TCP/IP. Los protocolos intervienen por lo tanto en varias capas del proceso de la comunicacin en red. Tabla1: El modelo TCP/IP de 4 capas: Aplicacin Transporte Internet Acceso a la red Nivel de aplicacin (FTP, SMTP, SNMP) Maneja hosts (TCP, UDP) Enrutamiento (IP, ICMP, IGMP, ARP) Interfaces de red, Ejm. Ethernet, Token Ring

Descripcin de protocolos
IP Internet Protocol; el protocolo IP es el transporte para datos TCP, UDP, y ICMP. IP provee un servicio no orientado a conexin poco fiable, permitiendo que toda la integridad sea controlada por uno de los protocolos de capas superiores, Ejm. TCP, o algunos dispositivos especficos de aplicacin. No se garantiza que un datagrama alcance el host destino usando solamente protocolo IP. El protocolo IP maneja el direccionamiento y enrutamiento entre redes. IP es el servicio de entrega de datagramas.

Av. Del Parque Sur 699 Of. 206 San Borja

47

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
TCP Transmission Control Protocol; el protocolo TCP provee un servicio orientado a conexin confiable a las aplicaciones que lo usan. TCP est orientado a la conexin y chequea en cada host el orden en que los paquetes se envan/reciben y tambin verifica que todos los paquetes son transmitidos. Aplicaciones tales como telnet o ftp usan el protocolo TCP y no necesitan preocuparse sobre prdida de datos, etc ... User Datagram Protocol; provee acceso directo al protocolo IP para programas de aplicacin pero a diferencia de TCP no est orientado a la conexin y no es fiable. Esto provee menos sobrecarga para aplicaciones concentradas en la velocidad. Si se requiere algn tipo de numeracin de paquetes esto debe ser provisto por la aplicacin. Internet Control Message Protocol; es usado por enrutadores y hosts para reportar el estado de la red. Usa datagramas IP y no est orientado a la conexin. Point to Point Protocol; establece una conexin TCP/IP sobre lneas telefnicas. Puede tambin ser usado dentro de conexiones encriptadas tales como pptp.

UDP

ICMP PPP

6. Servicios y Puertos TCP/IP


La lista de servicios conocidos y sus puertos asignados se encuentra generalmente en /etc/services. La lista oficial de servicios y puertos asociados es manejado por IANA (Internet Assigned Numbers Authority). Dado que el campo del numero de puerto es un digito de 16-bit, existen 65535 numeros disponibles. Numeros desde 1 hasta 1023 son puertos privilegiados y son reservados para servicios que se ejecuten por el usuario root. La mayoria de aplicaciones conocidas utilizan algunos de estos puertos. Veremos la salida de un escaneo de puertos (portscans). Tener cuidado de que escaneo de puertos no autorizados es ilegal a pesar de ello muchas personal lo utilizan. Aqui una salida de un escaneo de puertos: Port 21/tcp 22/tcp 23/tcp 25/tcp 70/tcp 79/tcp 80/tcp State open open open open open open open Service ftp ssh telnet smtp gopher finger http

Esto muestra los puertos abiertos, estos puertos estan siendo usados por alguna aplicacion.

Av. Del Parque Sur 699 Of. 206 San Borja

48

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Los puertos principales de /etc/services : ftp-data ftp telnet smtp domain domain http www pop-2 pop-3 sunrpc sftp uucp-path nntp ntp netbios-ns netbios-ns netbios-dgm netbios-dgm netbios-ssn imap NeWS snmp snmp-trap 20/tcp 21/tcp 23/tcp 25/tcp 53/tcp 53/udp 80/tcp 80/tcp 109/tcp 110/tcp 111/tcp 115/tcp 117/tcp 119/tcp 123/tcp 137/tcp 137/udp 138/tcp 138/udp 139/tcp 143/tcp 144/tcp 161/udp 162/udp

mail # www is used by some # progs, http is more # PostOffice # PostOffice broken correct V.2 V.3

usenet nbns nbns nbdgm nbdgm nbssn news

# Network News Transfer # Network Time Protocol

# imap network mail protocol # Window System

7. Ejercicios
Registrando un servicio con xinetd 1. Escribe un script en bash que muestre con el comando echo Welcome a la salida stdout. Grabarlo en /usr/sbin/hi 2. En /etc/xinetd.d crear un nuevo archivo llamdo fudge con lo siguiente: service fudge { socket_type = stream server =/usr/sbin/hi user = root wait = no disable = no } 3. Agregar un servicio llamado fudge en /etc/services que use el puerto 60000. 4. Reiniciar xinetd y ejecutar el comando telnet al puerto 60000 5. Te han asignado un rango de Ips en la red 83.10.11.0/27. Cuantas redes tienen los mismos 4 primeros bytes que tu? Cuantos hosts existen en tu red? Cual es la direccion broadcast para esta primera red?

Av. Del Parque Sur 699 Of. 206 San Borja

49

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP

Servicios de Red
Servicios de red pueden ser ejecutados como aplicaciones separadas(standalone), las cuales atienden conexiones y manejan clientes directamente o pueden depender de un demonio de red inetd (antiguo) o xinetd.

1. El demonio inetd (antiguo)


El demonio es iniciado en el momento del arranque y atiende a conexiones en puertos especificos. Esto permite al servidor ejecutar un demonio de red especifico solo cuando es necesitado. Por ejemplo, el servicio telnet tiene un demonio /usr/sbin/in.telnetd el cual maneja las sesiones telnet . En vez de ejecutar este demonio todo el tiempo inetd es instruido a escuchar en el puerto 23. Estas instrucciones estan fijadas en /etc/inetd.conf.

Fig1: El demonio inetd Los campos de /etc/inetd.conf contienen lo siguiente: service-name socket type protocol flag user/group program argument Ejemplo: pop-3 stream tcp nowait root /usr/sbin/tcpd ipop3d Aviso: El archivo /etc/services es usado para crear la correspondencia entre el nombre del servicio y el numero de puertos del socket. Los campos en el archivo services son los siguientes: service-name port/protocol [aliases] nombre valido de /etc/services stream para TCP y dgram para UDP protocolo valido para /etc/protocols nowait si es multihilo y wait si no lo es ejecutar aplicaciones como user o group. usualmente tcpd el nombre del programa a ejecutarse para este servicio

Av. Del Parque Sur 699 Of. 206 San Borja

50

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
2. El Demonio xinetd
Esta es la version mas reciente de inetd. El demonio tcpd ya no se encuentra usado, en vez de este ultimo el demonio xinetd lo hace todo. La configuracion es realizada a traves del archivo /etc/xinetd.conf o editando los archivos individuales en /etc/xinetd.d/ que corresponden a los servicios que estan siendo monitoreados por xinetd. Es posible migrar desde el antiguo archivo de configuracion inetd a los archivos de configuracion del moderno xinetd. Estructura de un archivo de servicio en xinetd.d Service-name { socket_type = stream para TCP y dgram para UDP protocol = protocolo valido de /etc/protocols wait = <si o no> user= el usuario con que la aplicacion se ejecuta group= el grupo con que la aplicacion se ejecuta server= el nombre del programa que ejecutara este servicio }

3. TCP wrappers
Si los programas han sido compilados con libwrap entonces estos pueden ser listados en /etc/hosts.allow y /etc/hosts.deny. La libreria libwrap verificara estas lineas para buscar coincidencias con los hosts. Formato por defecto para /etc/hosts.{allow,deny} : DAEMON : hosts [EXCEPT hosts ] [: spawn command]

Se puede utilizar estos archivos para reportar servicios no autorizados. Esto puede ayudar como un sistema de alerta en primera instancia. Aqui algunos ejemplos. Obteniendo informacion acerca de un host: /etc/hosts.allow in.telnetd: LOCAL, .my.domain

/etc/hosts.deny in.telnetd: ALL : spawn (/usr/sbin/safe_finger l @%h | mail root) &

Redireccionar a un servicio falso o honey pot : /etc/hosts.allow in.telnetd: ALL : twist

/dtk/Telnetd.pl

El ultimo ejemplo viene de dtk (Deception Tool Kit) que puede ser descargado desde http://all.net/dtk/download.html

Av. Del Parque Sur 699 Of. 206 San Borja

51

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
4. Configurando un NFS

Configuracion de cliente

Para un cliente linux para montar sistema de archivos remoto 1. el archivo nfs debe ser soportado por el kernel 2. el demonio portmapper debe estarse ejecutando. El portmapper es inicializado por el script /etc/rc.d/init.d/portmap. La utilidad mount montara el sistema de archivos. Una entrada tipica en /etc/fstab podria ser: nfs-server:/shared/dir /mnt/nfs nfs defaults 0 0

Configuracion del servidor

Un servidor NFS necesita portmap para que se ejecute antes de empezar el servidor nfs. El servidor nfs deberia ser inicializado o parado con el script /etc/rc.d/init.d/nfs. El archivo de configuracion principal es /etc/exports. Archivo de ejemplo /etc/exports: /usr/local/docs *.local.org(rw, no_root_squash) *(ro) El directorio /usr/local/docs es exportado a todos los hosts como directorio de solo lectura, y lectura-escritura a todos los hosts en el dominio .local.org La opcion por defecto root_squash la cual evita que el usuario root (uid = 0) en el cliente tenga acceso al recurso compartido en el servidor puede ser cambiado con la opcion no_root_squash . En el archivo /etc/exports hace referencia a los hosts que coincidan con *.machine.com donde el archivo /etc/hosts.allow deniega los hosts que coincidan con .machine.com 01111000 Si el archivo /etc/exports ha sido cambios entonces la utilidad exportfs debe ser ejecutada. Si los directorios existentes en /etc/exportfs son modificados entonces es necesario que desmontemos todos los recursos compartidos por nfs antes de remontar todo. Directorios individuales pueden ser montados o desmontados con exportfs. Importa y exportar todos los directorios en /etc/exports:

exportfs -ua ; exportfs -a

5. SMB y NMB
Maquinas con Linux pueden pueden acceder y proveer recursos compartidos de Windows (directorios e impresoras). El protocolo usado para esto es el MS Windows Server Message Block SMB. Samba es la herramienta mas comun de linux que provee software cliente y servidor.

Av. Del Parque Sur 699 Of. 206 San Borja

52

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Desde la linea de comandos La utilidad smbclient es usada para listar recursos compartidos. Directorios remotos son tipicamente montados con smbmount, a traves de mount t smbfs puede tambien hacer lo mismo. Ejemplos: Enviar un mensaje pop up a una computadora win98desk smbclient -M win98desk

Montar el directorio compartido de la computadora winserv smbmount //winserver/shared /mnt/winserver/shared

El servidor Samba esta configurado con el archivo /etc/smb.conf. El servidor es parado y empezado con el script /etc/rc.d/init.d/smb. Notar que smb tambien inicia el servicio NMB. Este es el NetBIOS Message Block el cual habilita la resolucion de nombres en entornos Windows. Figura1: Navegacion por los recursos SMB a traves del Nautilus:

Entradas principales en /etc/smb.conf:


[global] workgroup = LINUXIT os level = 2 kernel oplocks = No

Av. Del Parque Sur 699 Of. 206 San Borja

53

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
security = user encrypt passwords = Yes guest account = nobody map to guest = Bad User [homes] comment = Home Directories read only = No create mask = 0640 directory mask = 0750 browseable = No [printers] comment = All Printers path = /var/tmp create mask = 0600 printable = Yes browseable = No

Configuracion a traves de SWAT y Webmin Si instalas el paquete swat entonces podras administrar el servidor samba via web conectandose por http al puerto 901. Otra herramienta de administracion popular es webmin. Esta puede se descargada desde www.webmin.com AVISO La configuracion /etc/samba/smb.conf es una buena fuente de documentacion. Todas las opciones son explicadas y pueden ser activadas borrando el caracter de comentario `;` Tambien leer la pagina man smb.conf(5)

6. Servicios DNS
Los Clientes Cuando un programa necesita que se resuelva el nombre de un host este usa un mecanismo llamado resolvedor (resolver). El resolvedor primero consulta el archivo /etc/nsswitch (antes /etc/host.conf) y determina cual metodo deberia ser usado para resolver los nombres de host (archivos locales, servidor de nombres, NIS o servidor LDAP) El archivo /etc/host.conf (o /etc/nsswitch.conf) Estos archivos son escaneados por el resolver. Estos indican cuales archivos, servidores dns, base de datos ldap o servidores nis deben ser consultados. Ejemplo (/etc/nsswitch): hosts: networks: files dns nis files

La primera linea indica los archivos (aqui /etc/hosts) que deberian ser consultados primero y luego el servidor DNS si este falla. La segunda linea indica usar el archivo /etc/network para informacion de la red. Con un numero pequeo de computadoras en red es posible convertir numeros IP decimales en nombres usando el archivo /etc/hosts. Los campos son los siguientes: Av. Del Parque Sur 699 Of. 206 San Borja

54

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
IP machine machine.domain alias

Ejemplo del archivo /etc/hosts : 192.168.1.233 61.20.187.42 io callisto io.my.domain callisto.physics.edu

El archivo /etc/resolv.conf Si el resolvedor necesita usar un servidor de nombres de dominio (DNS) entonces este consultara el archivo /etc/resolv.conf para una lista de servidores disponibles para hacer consultas. Estructura jerarquicaHierarchical structure Servidores de nombre tienen una estructura jerarquica. Dependiendo en el lugar donde se encuentre en el fully qualified domain name (FQDM) un dominio es llamado de primer nivel (top-level), segundo nivel o tercer nivel. Ejemplo de dominio de primer nivel com edu gov mil net org uk Organizaciones comerciales Instituciones educativas de los Estados Unidos Instituciones gubernamentales de los Estados Unidos Instituciones militares de los Estados Unidos Gateways y proveedores de redes Sites no comerciales Sites de UK

Tipos de Servidores DNS Los dominios pueden ser divididos en subdominios. Esto limita la cantidad de informacion necesitada para administrar un dominio. Las Zonas tienen un servidor de nombres de dominio maestro (tambien llamado DNS primario) y uno o varios servidores de nombres de dominio esclavo (tambien llamado secundario). La administracion de un servidor de nombres consiste en actualizar la informacion acerca de una zona en particular. Los servidores maestros (master) se les llama autoritarios. Archivos de configuracion para DNS En antiguas versiones de BIND (antes de la version 8) el archivo de configuracion era /etc/named.boot. Con la version 8 de BIND el archivo /etc/named.conf lo reemplazo. Una puede usar la utilidad namedbootconf.pl para convertir antiguos archivos de configuracion. El archivo de configuracion /etc/named.boot : directory cache primary primary primary /var/named . named.ca myco.org named.myco 0.0.127.in-addr.arp named.local 1.168.192.in-addr.arp named.rev

Av. Del Parque Sur 699 Of. 206 San Borja

55

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Las primeras lineas define el directorio base a usarse. El archivo name.ca contiene una lista de direcciones IP de DNS para consulta de direcciones externas. La tercera linea es opcional y contiene anotaciones para la red local . Las siguientes entradas son para resoluciones inversas. En /etc/named.conf: cache secondary primary is replaced by hint is replaced by slave is replaced by master.

Aplicando estos cambios a los archivos de configuracion de BIND4 generaremos los mismo para BIND8 y BIND9 como esta a continuacion. El archivo de configuracion /etc/named.conf : options }; zone }; . { directory /var/named; { type hint; file named.ca;

zone myco.org { type master; file named.myco; }; zone 1.168.192.in-addr.arp { type master; file named.rev; }; zone 0.0.127.in-addr.arpa { type master; file named.local; }; Archivos de zona DNS En este ejemplo el servidor esta configurado como un servidor caching-only. Ejemplo de archivo de zona named.local : @ IN SOA localhost. root.localhost. ( 2001022700 ; Serial 28800 ; Refresh 14400 ; Retry 3600000 ; Expire 86400 ) ; Minimum localhost. localhost.

IN IN

NS PTR

Este es un archivo de zona muy simple pero nos da la suficiente informacion para entender el mecanismo basico de un servidor de nombres. La entrada @ significa que el archivo resolvera a la zona declarada en /etc/named.conf. Esto permite cualquier archivo de zona ser usado como plantilla de zonas creadas posteriormente (ver los ejercicios).

Av. Del Parque Sur 699 Of. 206 San Borja

56

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Tabla1: Tipos de registros mas comunes: NS PTR MX A CNAME Especifica el servidor de nombres de zonas primarias Mapeo inverso de numeros IP a nombres de hosts Registro de intercambio de correos Asocia una direccion IP a un nombre de hosts Asocia un alias al nombre principal de host

Table2: Zone parameters @ serial refresh retry expire minimum IN SOA Inicio de autoridad (Start Of Authority). Identifica la zona seguida por las opciones encerradas por parecentesis. Es manualmente incrementado cuando la data es cambiada. Servidores secundarios consultan al numero serial del servidor maestro. Si esta ha cambiadom la zona entera es descargada Tiempo en segundos antes de que el servidor secundario deberia hacer una consulta en el registro SOA del dominio primario. Este deberia realizarse una vez al dia. Intervalo de tiempo en segundos antes de intentar una transferencia de una nueva zona si la descarga anterior ha fallado. Tiempo despues del cual un servidor secundario desecha toda la data de la zona si contacta al servidor primario. Deberia ser una vez a la semana como minimo El tiempo minimo de la data en memoria. Por defecto es un dia (86400 segundos) pero deberia ser mas largo en redes estables.

Av. Del Parque Sur 699 Of. 206 San Borja

57

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
7. Configuracion principal de Sendmail
Sendmail es el mas popular mail transfer agent (MTA) en la Internet. Este utiliza el protocolo Simple Mail Transfer Protocol (SMTP) y corre un demonio escuchando conexiones por el puerto 25. El script sendmail el cual inicia y para el demonio sendmail esta usualmente localizado en el directorio /etc/rc.d/init.d/. El archivo de configuracion principal es /etc/mail/sendmail.cf (o /etc/sendmail.cf). Aca se puede especificar el nombre del servidor asi como tambien los nombres de los hosts los cual el mail relay sera permitido. El archivo /etc/aliases contiene los dos siguientes campos: alias: user Cuando se realizan cambios en el archivo /etc/aliases el comando newaliases debe ejecutarse para reconstruir la base de datos /etc/aliases.db. Cuando el correo es aceptado por el servidor este es concatenado en un archivo simple con el nombre de usuario. Estos archivos son almacenados en /var/spool/mail/. Dependiendo del MTA, un usuario puede almacenar tambien estos mensajes en su directorio home o descargarlo en otra maquina. Si es el servidor esta haciendo relay, o si la red es lenta y muchos mensajes estan siendo enviandos, el correo es almacenado en la cola de correo /var/spool/mqueue. Se puede consultar la cola con la utilidad mailq o sendmail bp. Un administrador puede refrescar la cola del servidor con sendmail q. Finalmente para registrar un nombre de dominio como un direccion de correo valida, un registro MX se necesita para ser agregado a la base de datos del DNS. Por ejemplo si mail.company.com es un servidor de correo, entonces para que pueda aceptar correos como joe@company.com se deberia hacer la siguiente configuracion: 1. Add company.com to /etc/mail/local-host-names 2. company.com MX 10 mail.company.com in a DNS zone file

8. El servidor Apache
Archivos de configuracion El archivo /etc/httpd/conf/httpd.conf contiene todas las configuraciones por hacer. Versiones antiguas de apache tienen dos archivos extras, uno llamado access.conf donde los directorios restringidos son declarados, y otro archivo llamado srm.conf especificando el directorio raiz del servidor.

Configuraciones mas importantes: ServerType ServerRoot standalone/inetd /etc/httpd

Av. Del Parque Sur 699 Of. 206 San Borja

58

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
DocumentRoot /var/www/html <Directory /var/www/cgi-bin> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <VirtualHost 122.234.32.12> DocumentRoot /www/docs/server1 ServerName virtual.mydomain.org </VirtualHost>

Ejecucion de Apache Para iniciar y parar el servicio se usa el script /etc/rc.d/init.d/httpd. En un servidor en produccion es preferible usar apachectl principalmente con la opcion graceful el cual reinicia el servicio solo cuando las conexiones hayan sido correctamente procesadas. Los archivos de reporte principales estan en /var/log/httpd/. Es bastante util por razones de seguridad revisar constantemente los archivos error_log y access_log.

Av. Del Parque Sur 699 Of. 206 San Borja

59

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
9. Ejercicios
Configurando un servidor DNS maestro Como ejercicio instalaremos el paquete de BIND9 bind9-9.1.3-252.i386.rpm y configuraremos un dominio llamado gogo.com. 1. Realizar las siguientes alteraciones en /etc/named.conf: Copiar/Pegar el siguiente parrafo y alterar como se encuentra a continuacion: zone "localhost" in { type master; file "localhost.zone"; } se vuelve zone "gogo.com" in { type master; file "gogo.zone"; }

zone "0.0.127.in-addr.arpa" in { type master; file "127.0.0.zone"; }; 2. En /var/named:

se vuelve

zone "2.168.192.in-addr.arpa" in { type master; file "192.168.2.zone"; };

cp 127.0.0.zone 192.168.2.zone cp local.zone gogo.zone 3. Cambiar apropiadamente los cambios en el nuevo archivo de zona. Agregar el host llamado harissa. 4. Agregar la linea nameserver 127.0.0.1 en /etc/resolv.conf. 5. Usar host para resolver harissa.gogo.com Administracion de Apache Configuraciones Basicas en /etc/httpd/conf/httpd.conf 1. Cambiar la directiva de puerto Port de 80 a 8080. 2. Verificar si apache esta respondiendo con telnet localhost 8080. Deberias obtener: Trying 127.0.0.1... Connected to localhost.linuxit.org. Escape character is '^]'. Luego tipear GET / para descargar el archivo index. 3. Fijar StartServer a 15. Reiniciar el httpd y revisar que 15 procesos hayan empezado (en vez de los 8 por defecto ) servidor virtual basado en IP

Av. Del Parque Sur 699 Of. 206 San Borja

60

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Tu tarjeta de red debe estar con un alias (otra IP mas) ifconfig eth0:0 new-IP Agregar el siguiente parrafo a /etc/httpd/conf/httpd.conf: <VirtualHost new-IP> DocumentRoot /var/www/html/virtual ServerName www1 </VirtualHost> Configurando un directorio SMB compartido En la mayoria de casos no se necesitara agregar usuarios smb al sistema para hacer esto. Simplemente editar smb.conf y agregar lo siguiente: [public] comment = Example Shared Directory path = /home/samba guest ok = yes writeable = yes

Configurando un impresora compartida: [global] --- snip --printcap name = /etc/printcap load printers = yes [printers] comment = All Printers path = /var/spool/samba browseable = no # Set public = yes to allow user 'guest account' to print guest ok = yes writable = no printable = yes

Av. Del Parque Sur 699 Of. 206 San Borja

61

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP

Bash Scripting
1. El entorno bash
Variables Cuando tipeas un comando en la consola el shell bash usara la variable PATH para encontrar cual ejecutable en el sistema quieres ejecutar. Puedes revisar el valor de la variable usando el comando echo: echo $PATH /usr/bin:/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/sbin/:/usr/local/sbin/ De hecho muchas variables son necesitadas por el shell para ser acomodadas por cada entorno de usuario. Por ejemplo PWD, HOME, TERM y DISPLAY son algunas variables. Para inicializar y declarar una variable la sintaxis es la siguiente: VARIABLE=VALUE Recuerda no poner ningun espacio alrededor del signo =. Una vez que una variable es declarada e inicializada esta puede ser referenciada usando el simbolo de dolar al frente como se ve a continuacion: echo $VARIABLE Cuando una sesion de shell es empezada un numero de archivos de configuracion son leidos y la mayoria de variables son fijadas. Para liberar una variable de su valor actual usar unset. Archivos de configuracion Se puede distinguir entre archivos de configuracion los cuales se cargan al momento del logueo y aquellos los cuales se cargan con cada sesion nueva de bash.

Aarchivos de configuracion de logueo: Aarchivos que se cargan en el momento del logueo son /etc/profile y ~/.bash_profile (el bash revisa archivos alternativos tambien como ~/.profile). El siguiente bash carga los archivos de control de ejecucion (runtime) ~/.bashrc y (si este existe) /etc/bashrc.

Los archivos bashrc:

Av. Del Parque Sur 699 Of. 206 San Borja

62

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Estos archivos son cargados cada vez que una sesion de shell es lanzada (como un nuevo xterm). Los archivos son /etc/bashrc y ~/.bashrc. Alias y funciones son grabados es ~/.bashrc Sintaxis de funciones: function-name () { command1; command2; } Se puede testear cuales archivos estan siendo cargados agregando una linea echo Profile en /etc/profile, y luego tipear: bash bash -login Ningun profile es cargado, no deberias ver nada Esto fuerza al bash a actuar como un bash de logueo, la palabra Profile deberia mostrarlos.

Los siguientes comandos controlan la manera en que el bash se inicia: bash -norc bash -noprofile Notar que cualquier sesion de bash puede heredar las variables globales del bash anterior definidas en /etc/profile y ~/.bash_profile.

2. Principios del Scripting


El archivo script Un script de shell es una lista de instrucciones grabadas en un archivo plano. Solo 2 cosas son necesarias. 1. La primera linea del script debe ser #!/bin/bash (para un script de bash) 2. El archivo debe ser de lectura y ejecucion (con permisos 755 por ejemplo) Si estas lineas no estan presentes es posible ejecutar el script tipeando bash program-name Pasando variables al script Variable insertadas desde la linea de comandos son referenciadas dentro del script como $1 para el primer argumento, $2 para el segundo , etc

Script de ejemplo, mycat: #!/bin/bash cat $1 Este script esta esperando un argumento, un archivo, y mostrara el contenido del archivo usando cat. Para ejecutar este script en el archivo lilo.conf file, deberias ejecutar: ./mycat /etc/lilo.conf Av. Del Parque Sur 699 Of. 206 San Borja

63

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Otra manera de pasar valores al script es dejar que el script te pidar interactivamente ingresar los datos. Esto se logra usando el comando read. El nombre por default de la variable read es REPLY. Aqui se encuentra el script modificado: Ingreso interactivo de varibles: #!/bin/bash echo -n "Which file shall I display ?" read cat $REPLY o read -p File to display: FILENAME cat $FILENAME Variables Especiales Variables especiales pueden ser solo referenciadas y son automaticamente fijadas por el bash. Estas son las variables especiales mas comunes que puedes encontrar: $* $# $0 $! $$ $? Lista todas las variables ingresadas en la linea de comandos Numero de argumentos ingresados desde la linea de comandos El nombre del script PID del comando en segundo plano mas reciente PID del actual shelll Codigo de salida de ultimo comando

Para parametros posicionales $1, $2 etc existe un operador shift el cual renombra cada parametro de manera ciclica como esta a continuacion. $2 se vuelve $1 $3 se vuelve $2 etc Esto puede ser resumido como $(n+1) $n

3. Evaluaciones Logicas
Las declaraciones logicas son evaluadas con el comando test o los corchetes [ ]. En ambos casos el resultado es almacenado en la variable $? como se ve en: Si la declaracion es verdadera entonces $? is 0 Si la declaracion es falsa entonces $? is not 0 Aqui algunos ejemplos para ilustrar: usando test test f /bin/bash test -x /etc/passwd usando [ ] [ -f /bin/bash ] [ -x /bin/passwd ] significado test if /bin/bash is a file test if /etc/passwd is executable

Uno puede evaluar mas de una declaracion a la vez usando los operadores logicos || (OR) y && (AND) desde la linea de comandos. Por ejemplo podrias testear si /bin/bash es un ejecutable y si /etc/inittab existe: test -x /bin/bash && test /etc/inittab [ -e /bin/kbash ] || [ -f /etc/passwd ] Este es el mismo uso que si usaramos las opciones -o y -a sin el operador test por ejemplo

Av. Del Parque Sur 699 Of. 206 San Borja

64

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
test -x /bin/bash -a -f /etc/inittab [ -e /bin/kbash -o -f /etc/passwd ]

4. Bucles
loop si entonces Sintaxis: if CONDITION ; then command1 command2 fi

#!/bin/bash if [ -x /bin/bash ] ; then echo The file /bin/bash is executable

fi loop si entonces sino Sintaxis: if CONDITION ; then command1 command2 else command3 fi

loop mientras Sintaxis: while CONDITION is true; do command done

Ejemplo: Alinear 10 hashes (#) y luego salir #!/bin/bash COUNTER=0 while [ $COUNTER -lt 100 ]; do echo -n "#" sleep 1 let COUNTER=COUNTER+1 done

loop hasta que Sintaxis: Av. Del Parque Sur 699 Of. 206 San Borja

65

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
until CONDITION is false; do command done Ejemplo: El mismo del anterior, notar el estilo C incrementa el CONTADOR #!/bin/bash COUNTER=20 until [ $COUNTER -lt 10 ]; do echo -n "#" sleep 1 let COUNTER-=1 done

loop para (for) Sintaxis: for VARIABLE in SET; do command done Ejemplo: Por ejemplo la configuracion 'SET' pueden ser lineas de un archivo #!/bin/bash for line in `cat /etc/lilo.conf`; do IMAGE=$(echo $line | grep image) if [ $IMAGE != ]; then echo Kernel configured to boot: $line fi done

5. Esperando salida del usuario


Asumimos que el script esta esperando por una salida del usuario, dependiendo en la respuesta, el resto del programa ejecutar algo acorde. Existen dos maneras posibles de lograr esto: select y case. Usando case Sintaxis: case $VARIABLE in CHOICE command ;; CHOICE command ;; esac Usando select Sintaxis: select VARIABLE in SET; do if [ $VARIABLE = CHOICE ]; then command fi if [ $VARIABLE = CHOICE ]; then command fi Av. Del Parque Sur 699 Of. 206 San Borja

66

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
done

6. Trabajando con Numeros


Mientras los scripts de shell manejan cadenas de caracteres, un pequeo esfuerzo es necesitado para ejecutar operaciones aritmeticas muy basicas. Operaciones binarias Agregando o multiplicando numeros juntos puede ser alcanzado usando el comando expr o el constructor $(( )) construct. Ejemplo: expr 7 + 3; expr 2 \* 10; expr 40 / 4; expr 30 11 $((7+3)); $((2*10)); $((40/4)); $((30-11))

Comparando valoresComparing values Operadores de testeo: Numeros -lt -gt -le -ge -eq -ne

Cadenas < > <= >= = !=

7. Ejercicios
1. En la linea de comandos exportar la variable TEST export TEST=old 2. Escribir el script #!/bin/bash echo old variable: $TEST export $TEST=new echo exported variable: $TEST 3. Cual es el valor de $TEST una vez que el script se ha ejecutado? 4. El siguiente script llamado test_shell mostrara el PID del shell que esta interpretando test_shell #!/bin/bash if [ -n $(echo $0 |grep test) ]; then echo The PID of the interpreter is: $$ else

Av. Del Parque Sur 699 Of. 206 San Borja

67

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
echo The PID of the interpreter is: $$ fi 5) Fijar los permisos a 755 y probar los siguientes comandos test_shell ./test_shell bash test_shell . test_shell source test_shell exec ./test_shell

Seguridad Basica
1. Seguridad Local
La BIOS Si alguno tiene acceso a discos de rescate o un disco linux que arranque desde un disquet o un CDROM es extremadamente facil el ganar acceso a cualquier archivo en el sistema. Para prevenir esto deberia fijarse una contrasea para la BIOS. LILO A LILO se le puede dar opciones al momento del arranque. En particular algunas distribuciones de Linux no preguntan alguna contrasea cuando arranca el sistema en modo monousuario o runlevel 1. Existen 2 opciones que deberian ser agregadas al /etc/lilo.conf: la opcion restricted hace que el sistema solicite una contrasea la opcion password="" , fija la contrasea Restricted significa que LILO no puede dar ningun parametro sin el "password" especificado en lilo.conf. boot=/dev/hda install=/boot/boot.b prompt timeout=50 password="password" restricted Permisos de archivo Para prevenir atacantes es recomendable tomar las siguientes recomendaciones. 1) Hacer las herramientas de sistemas vitales inmutables, y archivos de log en modo solo-agregar: chattr +i /bin/login chattr +i /bin/ps chattr +a /var/log/messages 2) Crear directorios /tmp y /home nosuid o noexec:

Av. Del Parque Sur 699 Of. 206 San Borja

68

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Lines to be changed in /etc/fstab /tmp /tmp ext2 /home /home ext2 nosuid noexec 12 12

3) Encontrar todos los archivo en un sistema que no pertenezca a un usuario o a un grupo: find / -nouser o nogroup find / -perm +4000

Archivos Log
Los archivo logs principales son /var/log/messages : contiene informacion reportada por el demonio syslogd /var/log/secure. : contiene informacion de autenticaciones fallidas, insercion de usuarios, etc. La herramienta last lista todos los logues satisfactorios y reinicios del sistema. La informacion es leida desde el archivo /var/log/wtmp . Las herramientas who y w listan todos los usuarios actualmente logueados en el sistema usando el archivo /var/run/utmp.

Limites de usuario
Cuando el archivo /etc/nologin esta presente (puede estar vacio) este puede prevenir a todos los usuario de loguearse en el sistema (a excepcion de usuario root). Si el archivo nologin contiene un mensaje este se mostrara despues de una autenticacion satisfactoria. En el directorio /etc/security/ existe una coleccion de archivos que permiten a los administradores limitar el uso del tiempo de CPU por usuario, maximo tamao de archivos, maximo numero de conexiones, etc /etc/security/access.conf : deshabilita logueos para grupos de usuarios desde ubicaciones especificas. /etc/security/limits.conf El formato de este archivo es <domain> <type> <item> <value>

domain type item

un nombre de usuario, un nombre de grupo (con @group) fuerte o suave core - limita el tamao de archivo principal (KB) data - maximo tamao de data (KB) fsize - maximo tamao de archivo (KB) memlock - maximo espacio de direccion bloqueado en memoria (KB) nofile - maximo numero de archivos abiertos cpu - maximo tiempo de CPU (MIN) proc - maximo numero de procesos as - limite de espacio de direcciones maxlogins - maximo numero de logueos simultaneos para un usuario priority - la prioridad en que se debe ejecutar un proceso locks - maximo numero de archivos bloqueados que el usuario puede retener

Av. Del Parque Sur 699 Of. 206 San Borja

69

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP

2. Seguridad de la Red
Seguridad de la Red puede ser separada en 2 categorias principales: Seguridad Basada en Host Accesos a recursos puede ser garantisado basado en el host que solicita un servicio. Esto es manejado por tcp_wrappers. La libreria libwrap tambien conocida como tcp_wrappers provee listas de acceso basada en hosts para una variedad de que servicios de red. Muchos servicios como xinetd, sshd, y portmap, son compilados contra la libreria libwrap de tal modo que se habilita el soporte tcp_wrapper para estos servicios. Cuando un cliente se conecta a un servicio con soporte tcp_wrapper, los archivos /etc/hosts.allow y /etc/hosts.deny son analizados para verificar al host solicitando el servicio. Basado en el resultado el servicio puede ser concedido o denegado. Los archivos hosts_access files tienen 2 hasta 3 campos separados por dos puntos. El primer campo es el nombre del proceso, el segundo es el The first field is the name of the process, the second is the fully qualified nombre de host o el nombre del cominio con un punto principal, direccion IP o una subred con un punto arrastrado. Wildcards como ALL y EXCEPT tambien son aceptadas. La sintaxis para el archivo /etc/hosts.{allow | deny} es como a continuacion: service : Ejemplo: /etc/hosts.deny ALL: ALL EXCEPT .example.com hosts [EXCEPT] hosts

/etc/hosts.allow ALL: LOCAL 192.168.0. in.ftpd: ALL sshd: .example.com Tcp_wrappers pueden ejecutar comandos localmente sobre un host que esta en el archivo host_access files. Esto es realizado como comando spawn. Con el uso del caracter % character, las substituciones puede hacerse para los nombres de host y servicio. Ejemplo: /etc/hosts.deny ALL: ALL : spawn (/bin/echo `date` from %c for %d >> /var/log/tcpwrap.log)

Para mas informacion en el uso de substituciones % ver la pagina man host_access (5) .

Av. Del Parque Sur 699 Of. 206 San Borja

70

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Securidad Basada en Puertos Con la funcionalidad de filtrado de paquetes en el kernel de Linux, es posible limitar el acceso a los recursos creando grupos de reglas con utilidades como ipchains e iptables, las cuales te permiten evaluar la entrada de paquetes por cualquiera de sus interfaces de red, y determinar que es lo que ocurre con cada paquete. Existen 3 cadenas en ipchains e iptables, estas son input, forward and output for ipchains INPUT, FORWARD, and OUTPUT for iptables. Por ejemplo, cuando se usa ipchains todos los paquetes que ingresan por una interfaz de red atravesaran la cadena input. Todos los paquetes no destinados para este host atravesaran la cadena forward. Todos los paquetes generados dentro del host y paquetes que son remitidos atravesaran la cadena output. Una regla ipchains e iptables puede especificar la fuente (s), destino (d), protocolo (p), y puerto. Ejemplo: Todos los paquetes que vienen de 192.168.0.254 seran denegados ipchains -A input -s 192.168.0.254 -j DENY

Las reglas de Ipchains e iptables pueden ser manipuladas con las siguientes opciones -A -D -P -I -F -N -X -L Agregar Borrar Cambiar la politica por defecto para una cadena Insertar Limpiar la o las reglas de una cadena Crear una cadena definida por un usuario Borrar una cadena definida por un usuairo Listar

Ejemplo: La politica por defecto para un iptable puede ser cambiada de ACCEPT a DENY como se ve a continuacion: iptables -P INPUT REJECT iptables -P FORWARD REJECT iptables -P OUTPUT REJECT Con el desarrollo del kernel de Linux 2.4 vino el desarrollo del proyecto Netfilter, el cual usa la utilidad iptables para manejar las reglas del firewall. La mayor diferencia entre iptables e ipchains es de que iptables tiene soporte para evaluar los paquetes basados en su estado en terminos de otros paquetes que pasan a traves del kernel. Esta es la evaluacion de paquetes basado en estados (stateful) que hace a iptables basa packet evaluation that makes iptables far superior. Abajo hay un ejemplo de como de como un firewall basado en estados puede ser usado, es una forma de shell script ya que existe un numero de comandos a ser tipeados de manera que se obtiene el resultado final.

Ejemplo:

Av. Del Parque Sur 699 Of. 206 San Borja

71

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Un script basico trabajara bien para el usuario final, o cualquiera que no requiera ninguna conexion de internet, pero igual sigue trabajando como gateway para la red local y permite conexiones de la red LAN a TODOS los servicios. Aviso: La adicion de la linea resaltada permitira solo conexiones al puerto 80. #!/bin/sh # Variables IPTABLES="/sbin/iptables" LAN_IFACE="eth0" INET_IFACE="eth1" INET_IP="1.2.3.4" LOCALHOST_IP="127.0.0.1/32" LAN_IP="192.168.0.1/32" LAN_BCAST="192.168.0.0/24" # Setup IP Masquerading echo "1" > /proc/sys/net/ipv4/ip_forward $IPTABLES -t nat -A POSTROUTING -o $INET_IFACE -j MASQUERADE # Specify the default policy for the built in chains $IPTABLES -P INPUT DROP $IPTABLES -P FORWARD DROP $IPTABLES -P OUTPUT DROP # Specify INPUT Rules $IPTABLES -A INPUT -i !$INET_IFACE -j ACCEPT $IPTABLES -A INPUT -p TCP -i $INET_IFACE -m state --state NEW --dport http -j ACCEPT $IPTABLES -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # Specify FORWARD Rules $IPTABLES -A FORWARD -i $LAN_IFACE -j ACCEPT $IPTABLES -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT # Specify OUTPUT RULES $IPTABLES -A OUTPUT -p ALL -s $LOCALHOST_IP -j ACCEPT $IPTABLES -A OUTPUT -p ALL -s $LAN_IP -j ACCEPT

Av. Del Parque Sur 699 Of. 206 San Borja

72

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
3. La Shell Segura SSH

Autenticacion de Host

Con ssh se autentica tanto el host como el usuario. La autenticacion por host es hecha por intercambio de llaves. Las llaves publicas y privadas de los hosts son generalmente guardadas en /etc/ssh si se esta usando OpenSSH. Dependiendo del protocolo usado la llave dl host puede ser llamado ssh_host_key para el Protocolo 1 y ssh_host_rsa_key or ssh_host_dsa_key para el protocolo 2. Cada una de estas llaves tiene sus llaves publicas correspondientes, por ejemplo ssh_host_key.pub. Cuando un cliente se conecta a un servidor, el servidor da al host una llave publica en esta etapa el usuario se le mandara una pantalla como la siguiente:
The authenticity of host 'neptune (10.0.0.8)' can't be established. RSA key fingerprint is 8f:29:c2:b8:b5:b2:e3:e7:ec:89:80:b3:db:42:07:f4. Are you sure you want to continue connecting (yes/no)?

Si tu aceptas continuar la conexion la llave publica del servidor sera adicionada al archivo local $HOME/.ssh/known_hosts.

Autenticacion de Usuarios (usando contraseas)

Cuando se le pide al usuario contrasea para su cuenta en el servidor remoto y se loguea.

Autenticacion de Usuarios (usando llaves)

La autenticacion de usuarios puede involucrar intercambio de llaves. Para esto el usuario necesitara generar un par de llaves publicas/privadas. Por ejemplo: ssh-keygen -t dsa -b 1024 esto generara una llave DSA de 1024. Por defecto estas llaves seran guardadas en $HOME/.ssh y en este ejemplo son llamadas id_dsa y id_dsa.pub. Si asumimos que tenemos la id_dsa.pub podemos colocar esta llave en una cuenta remota y evitar tipear contraseas para conexiones futuras. Para hacer esto se necesita copiar el contenido del archivo id_dsa.pub en un archivo llamado authorized_keys2 guardarlo en el directorio remoto $HOME/.ssh .

ALERTA Todas las llaves privadas es /etc/ssh y ~/.ssh deberian tener permisos 600

archivos de configuracion sshd Ejemplos de archivo /etc/ssh/sshd_config :

Av. Del Parque Sur 699 Of. 206 San Borja

73

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
#Port 22 #Protocol 2,1 #ListenAddress 0.0.0.0 #ListenAddress :: # HostKey for protocol version 1 #HostKey /etc/ssh/ssh_host_key # HostKeys for protocol version 2 #HostKey /etc/ssh/ssh_host_rsa_key #HostKey /etc/ssh/ssh_host_dsa_key

archivos de configuracion ssh Ejemplo del archivo /etc/ssh/ssh_config o $HOME/.ssh/config :


# Host * # ForwardX11 no # RhostsAuthentication no # RhostsRSAAuthentication no # RSAAuthentication yes # PasswordAuthentication yes # HostbasedAuthentication no # CheckHostIP yes # IdentityFile ~/.ssh/identity # IdentityFile ~/.ssh/id_rsa # IdentityFile ~/.ssh/id_dsa # Port 22 # Protocol 2,1 # Cipher 3des

4. Configuracion del Tiempo


La fecha del sistema La fecha del sistema puede ser cambiado con el comando date. La sintaxis es : date MMDDhhmmCCYY[.ss] El Reloj del Hadware El reloj del hardware puede ser directamente cambiado con la utilidad hwclock. Las opciones principales son: -r or -show muestra el tiempo actual -w or -systohc configura el reloj de hardware a un tiempo del sistema actual -s or -hctosys configura el tiempo del sistema al tiempo del reloj del hardware actual

Usando NTP El Tiempo Universal Coordinado (UTC) es un estandar usado para almacenar usado para tener el tiempo basado e la rotacion de la tierra. A pesar de esto debido a pequeas irregularidades en la rotacion de la tierra los segundos necesitan ser insertados en la escala UTC usando relojes atomicos. Ya que las computadoras no estan equipadas con relojes atomicos la idea es usar un protocolo para sincronizar los relojes de las computadores a traves de Internet. NTP se refiere a Network Time Protocol y es uno de estos protocolos. Av. Del Parque Sur 699 Of. 206 San Borja

74

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Las computadoras que estan directamente actualizados por un reloj atomico son llamados servidores de tiempo primario y se usan para actualizar un numero largo de servidores de tiempo secundarios. Esto forma una estructura de arbol similar a la estructura DNS. Los servidores root son el primer nivel o estrato, el servidor secundario en el segundo y asi sucesivamente. Configurando un cliente para hacer una consulta a un servidor NTP: El demonio NTP llamado ntpd es usado para consultas regulares a un servidor de tiempo remoto. Todo lo necesario es una entrada en el archivo /etc/ntp.conf apuntado a servidor NTP publico o corporativo. Servidores NTP publicos pueden ser encontrados en internet disponibles para todo. El protocolo NTP puede estimar la frecuencia de errores del relojs de hardware de una secuencia de consultas, esta estimacion es escrita en un archivo referenciado con la etiqueta driftfile. Archivo minimo /etc/ntp.conf server ntp2.somewhere.com driftfile /var/lib/ntp/drift Una vez que el ntpd ha sido inicializado este sera un servidor NTP dando servicios por el puerto 123 usando UDP. One off queries: The ntp package also provides the ntpdate tool which can be use to set the time on the command line: ntpdate ntp2.somewhere.com

5. Seguridad del kernel


Existen opciones de seguridad disponibles en el kernel de Linux. Estos incluyen principalmente el mecanismo syn_cookie. El desbordamiento de pila es manejado por un parche de seguridad llamado openwall o OWL. tcp_syncookies Para habilitar esta opcion simplemente hacer lo siguiente : [root@nasaspc /proc]#echo "1" > /proc/sys/net/ipv4/tcp_syncookies Esto instruira al kernel para enviar un cookie al cliente en su respuesta SYN+ACK. En este modo el servidor cierra el socket y espera el ACK del cliente con el cookie apropiado. Si el archivo tcp_syncookies no esta presente en el directorio /proc entonces se necesitara recompilar el kernel con el soporte syncookies.

Aviso: Por default, aun si syncookies es soportado por el kernel, se necesitara activar el soporte agregando un 1 al /proc/sys/net/ipv4/tcp_syncookies. Esto usualmente esta hecho en /etc/rc.d/rc.local. A pesar de todo una solucion mas eficiente podria ser agregar una entrada en /etc/sysctl.conf El parche de seguridad owl (esta seccion no es un objetivo LPI) Este parche es mas relacionado a temas de la pila y va mas alla de los objetivos de este curso.

Av. Del Parque Sur 699 Of. 206 San Borja

75

Asesores & Soporte Linux SAC

Soportelinux.com

Redes TCP/IP
Resources for the owl patch and the Linux kernel:

http://www.openwall.com http://www.kernel.org/pub/linux/kernel/v2.2/
Solo existe soporte para el kernel 2.2-19 hasta ahora. Despues de descargar linux-2.2.19.tar.gz y linux-2.2.19-ow1.tar.gz en el directorio /usr/src/, asegurarse de que se ha borrado el enlace simbolico linux. [root@nasaspc src]#pwd /usr/src/ [root@nasaspc src]#rm -rf linux Luego: [root@nasaspc src]#tar xvzf linux-2.2.19.tar.gz [root@nasaspc src]#tar xvzf linux-2.2.19-owl.tar.gz Para probar tu sistema anda el directorio linux-2.2-19-owl. Aca hay un directorio llamado opcional que contiene un archivo llamado stacktest.c. [root@nasaspc optional]#pwd /usr/src/linux-2.2.19-ow1/optional [root@nasaspc optional]#gcc stacktest.c -o stacktest Si ejecutas stacktest obtendras una lista de opciones. Ejecutar emulacion de desborde. Un ataque de desbordamiento de buffer satisfactorio: [root@nasaspc optional]#stacktest Usage: ./stacktest OPTION Non-executable user stack area tests -t call a GCC trampoline -e simulate a buffer overflow exploit -b simulate an exploit after a trampoline call [root@nasaspc optional]#stacktest -e Attempting to simulate a buffer overflow exploit... Succeeded. Para aplicar el parche se necesita ir al directorio linux. Aqui algunos comandos. Aplicando el parche openwall : [root@nasaspc linux]#pwd /usr/src/linux [root@nasaspc linux]#patch -p1 < /usr/src/linux-2.2-19-owl/linux-2.2.19-ow1.diff

Ahora si ejecutas make menuconfig deberias ver una nueva entrada llamada Security options. Las selecciones por defecto estan bien. Desde aqui proceder con la compilacion e instalacion del kernel como siempre.

Av. Del Parque Sur 699 Of. 206 San Borja

76

LinuxIT Technical Education Centre

Administracion del Sistema Linux

Administracion del Sistema Linux


Descripcion
Nos concentraremos en las tareas principales del sistema de administracion como el monitoreo de los archivos log, la programacion de trabajos usando at y cron. Esto tambien incluye una descripcion de la documentacion disponible (manpages y recursos en linea) asi como tambien algunos conceptos de backupeo de informacion.

1. Archivos de registro (Logfiles) y configuracion


El directorio /var/log/ Este es el directorio donde la mayoria de archivos de registro se encuentran guardadost. Algunas aplicaciones generan sus propios archivos de registro (como el squid o el samba). La mayoria de registros del sistema son manejados por el demonio syslogd. Archivos del sistema mas comunes son : cron mail messages secure mantiene el rastro de los mensajes generados cuando el cron se ejecuta mensajes relacionados a mail registra todos los mensajes excepto la autenticacion privada authpriv, cron, mail y news registra todas las autenticaciones fallidas, usuarios agregados/borrados etc

El registro mas importante es messages donde la mayoria de actividades son registradas. El archivo /etc/syslog.conf Cuando el syslogd es inicializado este lee el archivo de configuracion por defecto /etc/syslog.conf. Tambien se puede inicializar syslogd con -f y la ruta de algun archivo de configuracion alternativo. Este archivo debe contener una lista de items seguido por una prioridad, seguido por la ruta del archivo de registro: item1.priority1 ; item2.priority2 /path-to-log-file

Items Validos son : auth y authpriv cron kern mail news user uucp

autenticacion de usuario general y privado mensajes del demonio cron mensajes del kernel procesos del usuario

Prioridades validas son: (desde el mas alto al mas bajo) emerg

_____________________________________________________________________
70

LinuxIT Technical Education Centre

Administracion del Sistema Linux


alert crit err warning notice info debug * none Las prioridades son minimas! Todas las prioridades altas seran registradas tambien. Para forzar una prioridad para ser solo info se necesita usar un simbolo '=' como en: user.=info /var/log/user_activity Listado de /etc/syslog.conf # Log all kernel messages to the console. # Logging much else clutters up the screen. #kern.* /dev/console # Log anything (except mail) of level info or higher. # Don't log private authentication messages! *.info;mail.none;news.none;authpriv.none # The authpriv file has restricted access. authpriv.* /var/log/secure # Log all the mail messages in one place. mail.* /var/log/maillog # Log cron stuff cron.* /var/log/cron

/var/log/messages

# Everybody gets emergency messages, plus log them on another # machine. *.emerg * *.emerg @10.1.1.254 # Save boot messages also to boot.log local7.* /var/log/boot.log # news.=crit /var/log/news/news.crit news.=err /var/log/news/news.err news.notice /var/log/news/news.notice

2. Utilidades de Registro
El comando logger La primera utilidad logger convenientemente registra los mensajes al archivo /var/log/messages :

_____________________________________________________________________
71

LinuxIT Technical Education Centre

Administracion del Sistema Linux


Si tipeas el siguiente comando:

logger

program myscipt ERR

En el final de /var/log/messages deberia ahora tener un mensaje similar a esto: Jul 17 19:31:00 localhost penguin: program myscript ERR configuraciones locales La utilidad logger registra los mensajes en /var/log/messages por defecto. Hay items locales definidos que pueden ayudar a crear tus propios archivos de registro como a continuacion. local0 a local7 estan disponibles para uso de administracion. La disponibilidad depende en el sistema (RedHat local7 reporta informacion del momento de arranque en /var/log/boot.log). Agrega la siguiente linea a /etc/syslog.conf: local4.* /dev/tty9

Reiniciar el syslogd

killall -HUP syslogd El siguiente comando sera registrado en /dev/tty9

logger -p local4.notice

"This script is writing to /dev/tty9"

Un dispositivo interesante es /dev/speech este es instalado con las herramientas Festival. logrotate Los archivos de registro son actualizados usando logrotate. Usualmente logrotate se ejecuta diariamente como un trabajo de cron. El archivo de configuracion /etc/logrotate.conf contiene los comandos para crear o comprimir archivos.

Listado de archivo logrotate.conf # rotate log files weekly weekly # keep 4 weeks worth of backlogs

_____________________________________________________________________
72

LinuxIT Technical Education Centre

Administracion del Sistema Linux


rotate 4 # send errors to root errors root # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed compress # RPM packages drop log rotation information into this directory include /etc/logrotate.d # no packages own lastlog or wtmp -- we'll rotate them here /var/log/wtmp { monthly create 0664 root utmp rotate 1 }

3. Tareas Automatizadas
Usando cron El programa responsable de ejecutar los crons es llamado crond. Cada minuto el crond leera los archivos especificos conteniendo los comandos a ejecutarse. Estos archivos son llamados crontabs. Los usuarios de crontab se encuentran en /var/spool/cron/<username>. Estos archivos pueden no ser directamente editados por usuarios no-root y necesitan ser editados usando la herramienta crontab (ver abajo). El sistema cronta es /etc/crontab. Este archivo ejecuta periodicamente todos los scripts en /etc/cron.* esto incluye cualquier enlace simbolico apuntando a los scripts o binarios del sistema. Para manipular entradas cron se usa la utilidad crontab. Tareas programadas son vistas con la opcion -l como se ve abajo: crontab -l

# DO NOT EDIT THIS FILE - edit the master and reinstall # (/tmp/crontab.1391 installed on Tue Jul 17 17:56:48 2001) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) 0 * * 07 2 /usr/bin/find /home/penguin -name core -exec rm {} \;

El usuario root tiene algunas tareas programadas? Similarmente la opcion -e abrira tu editor por defecto y te dejara entrar una entrada de cron. El usuario root puede usar la opcion -u para ver y cambiar cualquier entrada cron de los usuarios. Para borrar el archivo crontab usar crontab -r. Este es el formato para crontabs : Minutes(0-59) Hours(0-23) Day of Month(1-31) Month(1-12) Day of Week(0-6) command

_____________________________________________________________________
73

LinuxIT Technical Education Centre

Administracion del Sistema Linux


Permisos: Por defecto cualquier usuario puede usar crontab. Pero puedes controlar la accesibilidad con /etc/cron.deny y /etc/cron.allow.

Calendarizacion con at Los trabajos at son ejecutados por el demonio atd. Los trabajos son guardados en /var/spool/at/ El comando at es usado para calendarizar una tarea con la sintaxisis used to schedule a one off task with the syntax at [time] Cuando el tiempo puede ser expresado como: now 3am + 2days midnight 10:15 Apr 12 teatime Para una lista completa de formatos de tiempo validos ver /usr/share/doc/at-xxx/timespec. Se puede obtener una lista de comandos que son calendarizados con atq o at -l. Los trabajos at jobs son grabados en /var/spool/at/: ls /var/spool/at/

a0000100fd244d

spool

Cuando se usa atq se deberia tener una lista de trabajos procedido por un numero. Se puede usar este numero para desencolarlo: atq

2001-07-17 18:21 a root

Desde el listado de atq vemos que el numero de trabajo es 1, por eso podemos remover el trabajo del directorio spool. at -d 1 Permisos: Por defecto at esta restringido al usuario root. Para invalidar esto se debe tener un archivo vacio /etc/at.deny o tener un /etc/at.allow con los nombres apropiados.

4. Compresion y Backups
Estrategias de backupeo

_____________________________________________________________________
74

LinuxIT Technical Education Centre

Administracion del Sistema Linux


Hay tres estrategias principales para backupear un sistema: Completa: copiar todos los archivos Incremental: La primera incremental copia todos los archivos agregados o cambiados desde el ultimo backup completo, y subsecuentemente copia todos los archivos agregados o cambiados desde el ultimo backup incremental. Diferencial: Copia todos los archivos agregados o cambiandos desde el ultimo backup completo. Ejemplo: Si tu haces un backup completo y 3 backups diferenciales antes de un colapso, cuantas cintas necesitarias para la restauracion ? Creando archivos con tar La opcion principal para crear un archivo con tar es -c. Tambien puedes especificar el nombre del archivo como el primer argumento si se usa la opcion -f. tar -cf home.tar /home/

Si no se especifica el archivo como un argumento tar -c simplemente mandara el archivo como una salida estandar: tar -c /home/ > home.tar

Extrayendo archivos con tar La extraccion es directa. Reemplazar la opcion -c por una -x. Esto causara que se creen directorios si es necesario y se copien los archivos en tu directorio actual. Para redireccionar la salida de los archivos extraidos en el directorio /usr/share/doc, por ejemplo, puedes hacer: tar xf backeddocs.tar -C /usr/share/doc Compresiones Todos los archivos pueden ser comprimidos usando diferentes utilidades de compresion. Estas opciones estan disponibles cuando se crea, prueba o se extrae un archivo: Opcion tar Z z j La utilidad cpio La utilidad cpio es usada para empaquetar varios archivos. La lista de archivos debe pasarse a cpio a traves de una tuberia (como cuando se usa con find) o via una redireccion como a continuacion; - Extrae un archivo en una cinta: cpio -i < /dev/tape - Crea un archivo del directorio /etc : tipo de compresion compress gzip bzip2.

_____________________________________________________________________
75

LinuxIT Technical Education Centre

Administracion del Sistema Linux


find /etc | cpio -o > etc.cpio

5. Documentacion
Paginas Man y la base de datos whatis Las paginas man estan organizadas en secciones NAME El nombre del item seguido por una linea corta de descripcion. SYNOPSYS La sintaxis del comandos DESCRIPTION Una descripcion mas larga OPTIONS Una revision de todas las opciones posibles y sus funciones FILES Archivo que estan relacionados a item actual (archivos de configuracion, etc) SEE ALSO Otras paginas man relacionadas al tema actual Estas son las secciones principales que generalmente se encuentra en las paginas man. La base de datos whatis almacena la seccion NAME de todas las paginas man en el sistema. Esto se hace diariamente a traves de un cron diario. La base de datos whatis tiene las siguiente 2 entradas: name(key) one line description

La sintaxis para whatis es: whatis <string> La salida de las seccion NAME completa de las paginas man donde string coincidie con named(key) Tambien se puede usar el comando man para consultar la base de datos whatis. La sintaxis es man -k <string> A diferencia de whatis es que esta consulta tanto las entradas name y la one line description de la base de datos. Si la cadena coincide con una palabra en cualquiera de estos campos la consulta retornara la seccion NAME completa.

Ejemplo: (la cadena coincidente tiene que ser resaltada) whatis lilo lilo lilo.conf [lilo] man -k grubby lilo lilo.conf [lilo] lilo (8) (8) (5) - command line tool for configuring grub, lilo, and elilo - install boot loader - configuration file for lilo (8) (5) - install boot loader - configuration file for lilo

_____________________________________________________________________
76

LinuxIT Technical Education Centre

Administracion del Sistema Linux


La FHS recomienda las paginas man a ser guardadas en /usr/share/man Manpage Sections Section 1 Section 2 Section 3 Section 4 Section 5 Section 6 Section 7 Section 8 Section 9 Information on executables System calls, e.g mkdir(2) Library calls, e.g stdio(3) Devices (files in /dev) Configuration files and formats Games Macro packages Administration commands Kernel routines

Para acceder a la seccion N se tiene que ingresar: man N command

Ejemplos: man mkdir man 2 mkdir

man crontab man 5 crontab

Paginas info La FHS recomienda que las paginas info sean guardadas en /usr/share/info. Estas paginas son archivos comprimidos que se pueden leer con la herramienta info . Las herramientas GNU originales usan las paginas info mas que las paginas man. Ya que la mayoria de paginas info han sido reescritas como paginas man. A pesar de esto la informacion acerca de los proyectos GNU como gcc o glibc es mas extensa en las paginas info comparado con las paginas man. Documentos en linea Los proyectos GNU incluyen documentos como FAQ, README, CHANGELOG y algunas veces guias de usuario/administracion . Los formatos pueden ser tambien ASCII text, HTML, LateX o postscript. Estos documentos son almacenados en el directorio /usr/share/doc/ . HOWTOs y el Proyecto de Documentacion de Linux

_____________________________________________________________________
77

LinuxIT Technical Education Centre

Administracion del Sistema Linux


El proyecto de documentacion de linux provee muchas documentos detallados de temas especificos. Estos son guias estructuradas explicando conceptos e implementaciones. La URL del website es www.tldp.org. Los documentos DP son libremente redistribuibles y se puede contribuir con ellos tambien usando el tipo de licencia GPL . Grupos de Noticias Usenet Los grupos de noticias para Linux son los grupos comp.os.linux.* (ejem. comp.os.linux.networking, comp.os.linux.security ...). Una vez que se tOnce you have setup a news reader to connect to a news server (usually available through an ISP or a University campus) one downloads a list of all existing discussion groups and subscribes/unsubscribes to a given group. There are many experienced as well as new users which rely on the newsgroups to get information on specific tasks or projects. Take the time to answer some of these questions if you feel you have the relevant experience. NOTICE The man -k option queries both fields in the whatis database. This will find everything about a given item. There is a tool called apropos (meaning about) which will do the same thing as man -k.

5. Ejercicios
Reportes

1. Cambiar /etc/syslog.conf para que salgan algunos logs por (reiniciar syslogd para que la salida este
realmente redireccionada) 2. Agregar un item local5 item con prioridad critica a /ect/syslog.conf y direccionar la salida a /dev/tty10. Reiniciar syslogd y usar logger para escribir informacion via local5. 3. Leer el script /etc/rc.d/init.d/syslog y cambiar /etc/sysconfig/syslog para permitir hosts remotos para enviar reportes a las salidas. Calendarizacion 4.Crear una entrada del cron que empieza el reloj cada 2 minutos. Recuerda que cron is unaware of system variables such as PATH and DISPLAY. 5. Usar at. para empezar xclock en los proximos 5 minutos. Manejo de archivos 6. Usar find para listar todos los arcivos que han sido modificados durante las 24 horas pasadas. (tip: Redireccionar la salida de find -mtime 1 a un archivo) 7.Usar cpio para crear un archivo llamado Incremental.cpio. (ans: Usar el archivo creado arriba y hacer cat FILE | cpio ov > Incremental.cpio) 8 Usar xargs y tar crear un archivo de todos los archivos accesados o cambiados 5 minutos atras.

_____________________________________________________________________
78

LinuxIT Technical Education Centre

Administracion del Sistema Linux


9. Do the same using the exec option to find. Note that the files listed by find can be referenced by the {} symbol. 10. Extraer el archivo que acabas de crear.

Configurando PPP
1. Modems Seriales
Linux asume generalmente que los modems seriales son conectados a un puerto serial (uno de los dispositivos /dev/ttySN ). Por eso primero necesitas encontrar a cual puerto serial esta conectado. El comando setserial g hara las consultas a los puertos seriales. Si el recurso no esta disponible el valor del UART sera desconocido. Ejemplo de la salida para setserial: setserial -g /dev/ttyS[0-3] /dev/ttyS0, UART: 16550A, Port: 0x03f8, IRQ: 4 /dev/ttyS1, UART: 16550A, Port: 0x02f8, IRQ: 3 /dev/ttyS2, UART: unknown, Port: 0x03e8, IRQ: 4 /dev/ttyS3, UART: unknown, Port: 0x02e8, IRQ: 3 Para modems no-seriales es posible obtener informacion acerca de los recursos disponibles en /proc/pci. Aca las configuraciones de i/o y IRQ pueden ser aplicadas a un dispositivo libre /dev/ttyS?. Esto se logra con las siguientes dos lineas: setserial /dev/ttyS2 port 0x2000 irq 3 setserial /dev/ttyS2 autoconfig La ultima lina solo trata de aplicar las configuraciones apropiadas para UART. Estas configuraciones se perderan la proxima vez que reinicie la maquina y pueden grabarse en /etc/rc.serial. Este script es uno de los scripts ejecutados por rc.sysinit en el momento de inicio del sistema.

_____________________________________________________________________
79

LinuxIT Technical Education Centre

Administracion del Sistema Linux


El script rc.serial : #!/bin/bash TTY=/dev/ttyS2 PORT=0x2000 IRQ=3 echo "Setting up Serial Card ..." /bin/setserial $TTY port $PORT irq $IRQ 2>/dev/null /bin/setserial $TTY autoconfig 2>/dev/null

2. Configuracion Dialup
Una vez que se sabe que el modem se conectara a un dispositivo serial, es posible enviar al modem una instruccion como ATZ o ATDT. La herramienta que actuara como interfaz terminal es minicom. pantalla de minicom

Otra herramienta muy comun es wvdialconf. Estas herramienta automaticamente escaneara modems en las ttySs y creara un archivo de configuracion. Este archivo es usado para manejar la autenticacion por contrasea y inicializara el demonio pppd una vez que la conexion se haya establecido.

3. pppd y chat
Primero que nada el script chat es usado para comunicarse con el modem del host remoto. Es una seria de cadenas espera/envio. El formato es :

consulta esperada respuesta

Las consultas esperadas del modem son: OK CONNECT login password TIMEOUT >

El script es leido secuencialmente y empieza con la consulta vacia la cual se hace coincidir con el comando ATZ. Una vez que el modem se ha inicializado este devuelve la consulta OK. Para esto el script respondera con un comando de marcacion ATDT . Esta conversacion sucede hasta que el prompt > es obtenido en la etapa en la cual uno puede ejecutar pppd.

_____________________________________________________________________
80

LinuxIT Technical Education Centre

Administracion del Sistema Linux


Ejemplo del script chat: 'ABORT' 'BUSY' 'ABORT' 'ERROR' 'ABORT' 'NO CARRIER' 'ABORT' 'NO DIALTONE' 'ABORT' 'Invalid Login' 'ABORT' 'Login incorrect' '' 'ATZ' 'OK' 'ATDT01172341212' 'CONNECT' '' 'ogin:' 'adrian' 'ord:' 'adrianpasswd' 'TIMEOUT' '5' '>' pppd

Esta es sola una manera de lograr esto. Tambien se puede empezar el pppd manualmente y luego invocar el script chat como se ve a continuacion: pppd /dev/ttyS2 115200 \ nodetach \ lock \ debug \ crtscts \ asyncmap 0000000 \ connect "/usr/sbin/chat -f /etc/sysconfig/network-scripts/chat-ppp0" Las lineas debajo de los comandos pppd pueden ser grabados /etc/ppp/options. Este archivo contiene la mayoria de caracteristicas las cuales hacen la fortaleza y flexibilidad del pppd. Por ejemplo require-chap usara el /etc/ppp/chap-secrets para la autenticacion.

4. PPPD peers
Aca hay un directorio llamado peers en /etc/ppp/. En este directorio se puede crear un archivo que contenga todas las opciones de linea de comandos necesarias para pppd. De esta manera las conexiones peer pueden ser inicializadas por todos los usuarios. Abajo vemos un ejemplo de un archivo peer PPP: # This optionfile was generated by pppconfig 2.0.10. hide-password noauth connect "/usr/sbin/chat -f /etc/sysconfig/network-scripts/chat-ppp0" /dev/ttyS0 115200 defaultroute noipdefault user uk2 El anterior archivo peer (llamado uk2) puede ser usado como a continuacion: # pppd call uk2 Esto marcara el numero especificada en el script chat y se autenticara como el usuario uk2. Tener en cuenta de que esto requiere la entrada correspondiente en /etc/ppp/chap-secrets, y /etc/ppp/papsecrets. El formato para pap y chap secrets es la siguiente: # Secrets for authentication using CHAP # client server secret IP addresses

_____________________________________________________________________
81

LinuxIT Technical Education Centre

Administracion del Sistema Linux


uk2 * "uk2"

Este formato permite que se usen diferentes contraseas si te conectas a diferentes servidores. Tambien te permite especificar un direccion IP. Esto probablemente no va a funcionar cuadno se conecte a un ISP, pero cuando se hace conexiones privadas, se puede especificar una direccion IP si se necesita. Un ejemplo podria ser cuando necesitas auditar la actividad de tu red, y quieres especificar cuales usuario tiene cierta direccion IP.

5. Wvdial
Este el metodo por defecto usado por Red Hat para conectarse a una red dial up. Para configurar wvdial, es nas facil usar una de las herramientas de configuracion proveidas de Gnome o KDE. Estas configuran el archivo /etc/wvdial.conf. Debajo vemos un ejemplo del archivo wvdial.conf: [Modem0] Modem = /dev/ttyS0 Baud = 115200 Dial Command = ATDT Init1 = ATZ FlowControl = Hardware (CRTSCTS) [Dialer UK2] Username = uk2 Password = uk2 Phone = 08456091370 Inherits = Modem0 Para usar wvdial desde la linea de comandos, se deberia ejecutar con la siguiente sintaxis: # wvdial <dialer-name> En el archivo de configuracion ejemplo el siguiente comando deberia marcar la conexion llamada uk2 # wvdial uk2

_____________________________________________________________________
82

LinuxIT Technical Education Centre

Administracion del Sistema Linux

Impresin
Los dos objetivos de este capitulo es en primer lugar una introduccion a las herramientas de impresion GNU disponibles en las maquinas Linux y en segundo lugar entender los archivos de condfiguracion para un servidor de impresion.

1. Filtros y gs
Para formatos no-texto los sistemas Linux y UNIX generalmente usan filtros. Estos filtros transforman los formatos JPEG o troff en formato tipo postscript. Esto puede ser directamente enviado a una impresora postscript, pero desde que ya no todas las impresoras genericas pueden manejar postscript, una impresora virtual postscript intermedia usualmente llamado gs (ghostscript), finalmente transforma el postscript en PCL. La version comercial de ghostscript es Aladdin Ghostscript y la version GNU es una version mas antigua. La utilidad gs tiene una base de datos de drivers de impresora que puede manejar (esta lista es usualmente actualizada, por ejemplo muchas impresoras USB son soportadas) y convierten el postscript directly en PCL para estos modeos conocidos. La utilidad gs juega un papel central en la impresion para sistemas Linux.

2. Impresoras y colas de impresion


Como se vio arriba la impresion de texto simple ascii no esta manejada de la misma manera como las imagenes o los archivos postscript.. Si solo se tiene una impresora y se quiere imprimir un mail por ejemplo, puede no ser necesario usar un filtro. Se podria definir una cola sin filtros, la cual imprimiria el correo de manera mas rapida. Se podria tambien definir una cola en la misma impresora, la cual solo manejaria archivos postscript. Todas las colas e impresoras son definidas en /etc/printcap. Aqui esta la configuracion completa de una impresora remota 192.168.1.20 usando una cola remota llamada lp: lp:\ :sd=/var/spool/lpd/lp:\ :mx#0:\ :sh:\ :rm=192.168.1.20:\ :rp=lp:

Las opciones escenciales son rm el host remoto, sd el directorio spool y rp el nombre de una cola remota. Tener en cuenta que no se ha especificado algun filtro (podria usarse if para la entrada del filtro). Todo el filtrado esta hecho en el host remoto.

_____________________________________________________________________
83

LinuxIT Technical Education Centre

Administracion del Sistema Linux


3. Herramientas de Impresion
lpr: La utilidad lpr es usada para agregar trabajos a la impresora. Esta es una version moderna de lp (linea de impresion). Desde el punto de vista del usuario es util entender que una impresora puede asociada con mas de una cola. Aqui ves dos ejemplos para imprimir un archivo llamado LETTER. Enviar un trabajo a la impresora por defecto: lpr LETTER Enviar un trabajo a la cola ljet : lpr -Pljet LETTER Table1: Main Options for lpr -#num -Ppq -s Imprimir num copias Especificar la cola de impresion pq Crea un enlace simbolico en el directorio spool Make a symbolic link in the spool directory en vez de copiar el archivo

lpq: Un usuario puede monitorear el estado de las colas de impresion con la utilidad lpq. Aqui vemos algunos ejemplos. Muestra trabajos en la cola por defecto: lpq Muestra trabajos para todas las colas en el sistema: lpq -a Muestra trabajos en la cola remota: lpq -Premote lprm: Dependiendo de las opciones en /etc/lpd.perms los usuarios pueden estar permitidos para borrar colas de trabajos usando lprm. Remueve el ultimo trabajo agregado: lprm Remueve trabajos agregados por el usuario dhill: lprm dhill

Remueve todos los trabajos agregados: lprm -a (or simply lprm -)

_____________________________________________________________________
84

LinuxIT Technical Education Centre

Administracion del Sistema Linux


lpc:

Es posible remover un trabajo encolado especifico referenciandolo por su numero de trabajo; este numero es dado por lpq.

La utilidad de Control de Linea de Impresion es usada para controlar las colas de impresion y las impresoras. Las colas de impresion pueden ser deshabilitadas o habilitadas. Tener en cuenta que lprm por otro lado puede remover trabajos de una cola pero no puede parar la cola. Se puede usar lpc interactivamente (lpc tiene su propio prompt), o desde la linea de comandos. Aqui hay una salida de lpc help: CMD: /usr/sbin/lpc help Los comandos pueden ser abreviados. abort clean enable exit disable help down quit Los comandos son: topq up ?

restart status start stop

Las opciones enable/disable/topq/up son relacionadas a las colas Las opciones start/stop/down son relacionadas a las impresoras

4. Los archivos de configuracion


/etc/printcap Como se vio anteriormente en este capitulo, el archivo define a todas las impresoras y colas que el sistema puede usar (remota y local). La impresora por defecto puede ser especificada con cualquiera de las variables LPDEST o PRINTER: PRINTER=lp Si no hay variables de entorno configuradas, la impresora por defecto es la primera impresora definida en /etc/printcap. Las principales definiciones son: lp nombre de dispositivos, usualmente /dev/lp0 se usa para el puerto paralelo mx maximo tamao de archivo (zero=nolimit) sd directorio spool (/var/spool/lpd/<queuename>/) if filtro de entrada rm direccion del host remoto o IP rp nombre de la cola remota si este archivo es modificado necesitaras reiniciar el demonio lpd. /etc/lpd.conf Este es un archivo muy largo y por defecto todas las opciones estan comentadas. Este archivo es usado si un administrador deseara tener mas controll (i.e autenticacion para acceso remoto, permisos de usuario ) sobre la impresion. /etc/lpd.perms Este archivo controla los permisos para las utilidades lpc, lpq y lprm. En particular se puede conceder derechos a usuarios para sacar de la cola el trabajo actual (usando la herramienta lprm) con la linea : ACCEPT SERVICE=M SAMEHOST SAMEUSER

_____________________________________________________________________
85

LinuxIT Technical Education Centre

Administracion del Sistema Linux


LPRng usa un sistema de llaves para acortar las entradas en lpd.perms. Esto a pesar de todo no es muy entendible. Por ejemplo el servicio M corresponde a lprm en la linea de arriba. Ejemplo del archivo /etc/lpd.perms :
## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## Permissions are checked by the use of 'keys' and matches. For each of the following LPR activities, the following keys have a value. Key Match Connect Job Spool SERVICE S 'X' 'R' USER S JUSR HOST S RH JH GROUP S JUSR IP IP RIP JIP PORT N PORT PORT REMOTEUSER S JUSR REMOTEHOST S RH RH REMOTEGROUP S JUSR REMOTEIP IP RIP RIP CONTROLLINE S CL PRINTER S PR FORWARD V SA SAMEHOST V SA SAMEUSER V SERVER V SV LPC S AUTH V AU AUTHTYPE S AU AUTHUSER S AU AUTHFROM S AU AUTHSAMEUSER S AU Job Print 'P' JUSR JH JUSR JIP JUSR JH JUSR JIP CL PR AU AU AU AU AU LPQ 'Q' JUSR JH JUSR RIP PORT JUSR RH JUSR RIP CL PR SA SU SV AU AU AU AU AU LPRM 'M' JUSR JH JUSR JIP PORT CUSR RH CUSR RIP CL PR SA SA SU SV AU AU AU AU AU LPC 'C' JUSR JH JUSR JIP PORT CUSR RH CUSR RIP CL PR SA SA SU SV LPC AU AU AU AU AU

KEY: JH = HOST host in control file RH = REMOTEHOST connecting host name JUSR = USER user in control file AUTH will match (true) if authenticated transfer AUTHTYPE will match authentication type AUTHUSER will match client authentication type AUTHFROM will match server authentication type and is NULL if not from server AUTHSAMEUSER will match client authentication to save authentication in job Example Permissions # All operations allowed except those specifically forbidden DEFAULT ACCEPT #Reject connections from hosts not on subnet 130.191.0.0 # or Engineering pc's REJECT SERVICE=X NOT REMOTEIP=130.191.0.0/255.255.0.0 REJECT SERVICE=X NOT REMOTEHOST=engpc* #Do not allow anybody but root or papowell on #astart1.astart.com or the server to use control #facilities. ACCEPT SERVICE=C SERVER REMOTEUSER=root ACCEPT SERVICE=C REMOTEHOST=astart1.astart.com REMOTEUSER=papowell #Allow root on talker.astart.com to control printer hpjet ACCEPT SERVICE=C HOST=talker.astart.com PRINTER=hpjet REMOTEUSER=root #Reject all others REJECT SERVICE=C #Do not allow forwarded jobs or requests REJECT SERVICE=R,C,M FORWARD

_____________________________________________________________________
86

LinuxIT Technical Education Centre

Administracion del Sistema Linux

## # # allow root on server to control jobs ACCEPT SERVICE=C SERVER REMOTEUSER=root # allow anybody to get server, status, and printcap ACCEPT SERVICE=C LPC=lpd,status,printcap # reject all others REJECT SERVICE=C # # allow same user on originating host to remove a job ACCEPT SERVICE=M SAMEHOST SAMEUSER # allow root on server to remove a job ACCEPT SERVICE=M SERVER REMOTEUSER=root REJECT SERVICE=M # all other operations allowed DEFAULT ACCEPT

/etc/hosts.{lpd,equiv} Estos archivos fueron usados la suite de impresion LPR printing suite y presentaba un riesgo de seguridad. Cuando se ejecuta un servidor de impresion se necesita especificar cuales hosts puede acceder a la impresora en /etc/hosts.lpd. Tambien se puede agregar los hosts a /etc/hosts.equiv. Estos archivos ahora han sido reemplzados en LPRng por el archivo /etc/lpd.perms

_____________________________________________________________________
87

LinuxIT Technical Education Centre

Administracion del Sistema Linux


5. Ejercicios
1. 2. Iniciar printtool y crear una nueva cola local llamada lp. Personalizar el dispositivo /dev/tty10 como el dispositivo de impresion (recuerda hacer chmod 666 /dev/tty10 para permitir la impresion en este dispositivo). Ahora tienes una impresora virtual en tu sistema! Enviar los trabajos a la cola de impresion usando lpr y pr (herramienta de preformateado) Con la herramienta de impresion de tu sistema, define las colas remotas: - una cola UNIX - una cola SMB Si eres un servidor, asegurarse de tener debidamente configurada las reglas en /etc/lpd.perms En cada caso - revisar el archivo /etc/printcap. Cual filtro es usado? Como esta definido el host remoto? - revisar el directorio /var/spool/lpd/ . 5. 6. 7. Parar varias colas de impresion e impresoras con lpc. Revisar el contendio de cada cola con lpq Desencolar los trabajos seleccionados con lprm

3. 4.

_____________________________________________________________________
88

LinuxIT Technical Education Centre

Appendix
__________________________________________________________________________

LPI 102 Objectives


1. Kernel Manage/Query kernel and kernel modules at runtime Manage a kernel and kernel loadable modules. Use command-line utilities to get information about the kernel modules and the running kernel. Load modules with correct parameters and unload them. Load modules using aliases. Keywords: /lib/modules/kernel-version/modules.dep, /etc/modules.conf, /etc/conf.modules depmod, insmod, lsmod, rmmod, modinfo, modprobe, uname Reconfigure, build, and install a custom kernel and kernel modules Customise, build, and install a kernel and kernel loadable modules from source Customise the current kernel. Build a new kernel or new kernel modules as needed. Install the new kernel and reconfigure the boot loader. Keywords: /usr/src/linux/*, /usr/src/linux/.config, /lib/modules/kernel-version/*, /boot/* make, config, menuconfig, xconfig, oldconfig, modules, install, modules_install, depmod 2. Boot, Initialisation, Shutdown and Runlevels Boot the system Follow the system through the booting process. Parse parameters to the boot loader (runlevel and kernel options). Check events in the log files. Keywords: dmesg, /var/log/messages, /etc/modules.conf, LILO, GRUB Change runlevels and shutdown or reboot system Manage the systems runlevels. The default runlevel. The single user mode. Shutdown and reboot. Alert users before switching runlevel. Keywords: shutdown, init, /etc/inittab 3. Printing Manage printers and print queues Manage print queues and print jobs. Monitor print server and user print queues. Troubleshoot general printing problems. Keywords: lpc, lpq, lprm, lpr, /etc/printcap Print files Manage print queues and manipulate print jobs. Add and remove jobs from printer queues. Convert text files to postscript for printing. Keywords: lpr, lpq, mpage Install and configure local and remote printers Install a printer daemon. Install and configure a print filter (e.g.: apsfilter, magicfilter). Make local and remote printers accessible for a Linux system. SMB shared printers. Keywords: lpd, /etc/printcap, /etc/apsfilter/*, /var/lib/apsfilter/*, /etc/magicfilter/*, /var/spool/lpd/*

_________________________________________________________________________
All original materials are 2002 LinuxIT. All Rights Reserved. Kleesh Consultants Ltd T/A LinuxIT registered in England No:04470427. Visit www.linuxit.com for more information. 89

LinuxIT Technical Education Centre

Appendix
__________________________________________________________________________
4. Documentation Use and manage local system documentation Use and administer the manpages and the material in /usr/share/doc. Find relevant man pages. Search man page sections. Find a command and all the documentation related to it. Configure access to man sources and the man system. Keywords: man, apropos, whatis, MANPATH Find Linux documentation on the Internet Find and use Linux documentation. Use Linux documentation from sources such as the Linux Documentation Project (LDP), vendors and third-party websites. Linux specific newsgroups. Newsgroup archives. Mailing lists. Notify users on system-related issues Notify users about current issues related to the system. Logon messages. Keywords: /etc/issue, /etc/issue.net, /etc/motd

5. Shells, Scripting, Programming and Compiling Customise and use the shell environment Customise shell environments to meet users' needs. Set environment variables at login, or when spawning a new shell. Write bash functions for frequently used sequences of commands. Keywords: ~/.bash_profile, ~/.bash_login, ~/.profile, ~/.bashrc, ~/.bash_logout, ~/.inputrc function, export, env, set, unset Customise or write simple scripts Customise existing scripts. Write simple new shell scripts. Use standard sh syntax (loops, tests). Use command substitution. Test command return-values and file status. Conditionally mailing the superuser. The she-bang (#!) sign. Manage location, ownership, execution and suid rights of scripts. Keywords: while, for, test, chmod 6. Administrative Tasks Manage users and group accounts and related system files Add, remove, suspend and change user accounts. Manage groups. Change user/group info in passwd/group databases. Create special purpose and limited accounts. Keywords: chage, gpasswd, groupadd, groupdel, groupmod, grpconv, grpunconv, passwd, pwconv, pwunconv, useradd, userdel, usermod /etc/passwd, /etc/shadow, /etc/group, /etc/gshadow Tune the user environment and system environment variables Modify global and user profiles. Set up environment variables. Maintain the skel directory. Set command search path. Keywords: env, export, set, unset, /etc/profile, /etc/skel

_________________________________________________________________________
All original materials are 2002 LinuxIT. All Rights Reserved. Kleesh Consultants Ltd T/A LinuxIT registered in England No:04470427. Visit www.linuxit.com for more information. 90

LinuxIT Technical Education Centre

Appendix
__________________________________________________________________________
Configure and use system log files to meet administrative and security needs Configure system logs. Manage type and level of information logged. Manually scan log files for notable activity. Monitoring log files: automatic rotation and archiving. Track down problems noted in logs. Keywords: logrotate, tail f, /etc/syslog.conf, /var/log/* Automate system administration tasks by scheduling jobs to run in the future Use cron or anacron to run jobs at regular intervals. Use at to run jobs once. Manage cron and at jobs. Configure user access to cron and at services. Keywords: at, atq, atrm, crontab /etc/anacrontab, /etc/at.deny, /etc/at.allow, /etc/crontab, /etc/cron.allow, /etc/cron.deny, /var/spool/cron/* Maintain an effective data backup strategy Plan a backup strategy. Automatically backup filesystems to various media. Dump a raw device to a file and vice versa. Perform partial and manual backups. Verify the integrity of backup files. Partially or fully restor backups. Keywords: cpio, dd, dump, restore, tar Maintain system time Maintain the system time and synchronize the clock over NTP. Set the system date and time. Set the BIOS clock to the correct time in UTC, configuring the correct timezone for the system and configuring the system to correct clock drift to match NTP clock. Keywords: date, hwclock, ntpd, ntpdate /usr/share/zoneinfo, /etc/timezone, /etc/localtime, /etc/ntp.conf, /etc/ntp.drift 7. Networking Fundamentals Fundamentals of TCP/IP Understand IP-addresses, network masks and broadcast address. Determine the network address, broadcast address and netmask when given an IP-address and the number of bits. Network classes and classless subnets (CIDR) and the reserved addresses for private network use. It includes the understanding of the function and application of a default route. It also includes the understanding of basic internet protocols (IP, ICMP, TCP, UDP) and the more common TCP and UDP ports (20, 21, 23, 25, 53, 80, 110, 119, 139, 143, 161). Keywords: /etc/services, ftp, telnet, host, ping, dig, traceroute, whois

TCP/IP configuration and troubleshooting View, change and verify configuration settings for various network interfaces. Manual and onboot configuration for interfaces and routing tables. Configure and correct routing tables. Configure Linux as a DHCP client. Keywords: /etc/HOSTNAME or /etc/hostname, /etc/hosts, /etc/networks, /etc/host.conf, /etc/resolv.conf, /etc/nsswitch.conf ifconfig, route, dhcpcd, dhcpclient, pump, host, hostname (domainname, dnsdomainname), netstat, ping, traceroute, tcpdump Configure Linux as a PPP client Understand the basics of the PPP protocol. Configure PPP for outbound connections. Define the chat sequence when connecting. Initialisation and termination of a PPP connection with a modem, ISDN or ADSL. Set up PPP to automatically reconnect if disconnected.

_________________________________________________________________________
All original materials are 2002 LinuxIT. All Rights Reserved. Kleesh Consultants Ltd T/A LinuxIT registered in England No:04470427. Visit www.linuxit.com for more information. 91

LinuxIT Technical Education Centre

Appendix
__________________________________________________________________________
Keywords: /etc/ppp/options.*, /etc/ppp/peers/*, /etc/wvdial.conf /etc/ppp/ip-up, /etc/ppp/ip-down, wvdial, pppd

8. Networking Services Configure and manage inetd, xinetd, and related services Configure services available through inetd. Use tcpwrappers. Start, stop, and restart internet services. Configure basic network services including telnet and ftp. Set a service to run as another user instead of the default in inetd.conf. Keywords: /etc/inetd.conf, /etc/hosts.allow, /etc/hosts.deny, /etc/services, /etc/xinetd.conf, /etc/xinetd.log Operate and perform basic configuration of sendmail Modify simple parameters in sendmail configuration files. Create mail aliases. Manage the mail queue. Start and stop sendmail. Configure mail forwarding and perform basic troubleshooting of sendmail. The objective includes checking for and closing open relay on the mailserver. It does not include advanced custom configuration of Sendmail. Keywords: /etc/sendmail.cf, /etc/aliases, /etc/mail/*, ~/.forward mailq, sendmail, newaliases

Operate and perform basic configuration of Apache Modify simple parameters in Apache configuration files. Start, stop, and restart httpd. Does not include advanced custom configuration of Apache. Keywords: apachectl, httpd, httpd.conf Properly manage the NFS, smb, and nmb daemons Mount remote filesystems using NFS. Configure NFS for exporting local filesystems. Start, stop, and restart the NFS services. Install and configure Samba using GUI tools or direct edit of the /etc/smb.conf file. Sharing of home directories and printers, as well as correctly setting the nmbd as a WINS client. Keywords: /etc/exports, /etc/fstab, /etc/smb.conf, mount, umount

Setup and configure basic DNS services Configure hostname lookups and troubleshoot problems with local caching-only name server. Understand the domain registration and DNS translation process. Differences between bind 4 and bind 8 configuration files. Keywords: /etc/hosts, /etc/resolv.conf, /etc/nsswitch.conf, /etc/named.boot (v.4) or /etc/named.conf (v.8), named Set up secure shell (OpenSSH) Obtain and configure OpenSSH. Basic OpenSSH installation and troubleshooting. Configure sshd to start at system boot. Keywords: /etc/hosts.allow, /etc/hosts.deny, /etc/nologin, /etc/ssh/sshd_config, /etc/ssh_known_hosts, /etc/sshrc sshd, ssh-keygen

_________________________________________________________________________
All original materials are 2002 LinuxIT. All Rights Reserved. Kleesh Consultants Ltd T/A LinuxIT registered in England No:04470427. Visit www.linuxit.com for more information. 92

LinuxIT Technical Education Centre

Appendix
__________________________________________________________________________
9. Security Perform security administration tasks Ensure local security policies. Configure TCP wrappers. Find files with SUID/SGID bit set. Verify packages. Set or change user passwords and password aging information. Update binaries as recommended by CERT, BUGTRAQ or distribution's security alerts. Basic knowledge of ipchains and iptables. Keywords: /proc/net/ip_fwchains, /proc/net/ip_fwnames, /proc/net/ip_masquerade, find, ipchains, passwd, socket, iptables Setup host security Set up a basic level of host security. Configure syslog , shadowed passwords. Set up a mail alias for root. Turn off unused network services. Keywords: /etc/inetd.conf or /etc/inet.d/*, /etc/nologin, /etc/passwd, /etc/shadow, /ets/syslog.conf Setup user level security Configure user level security. Limits on user logins, processes, and memory usage. Keywords: quota, usermod

_________________________________________________________________________
All original materials are 2002 LinuxIT. All Rights Reserved. Kleesh Consultants Ltd T/A LinuxIT registered in England No:04470427. Visit www.linuxit.com for more information. 93

LinuxIT Technical Education Centre

Index
__________________________________________________________________________

Index
/etc/shadow 29 chage32 cron79, 81 date93 depmod 12 gpasswd28 groupadd30, 31 groupadd 28 groups 27 id 27 init19, 20, 21, 22 insmod12 LILO17, 22, 23 logrotate81 lpd94 lsmod12 make bzImage 15 make clean15 make config13 make dep14 make menuconfig13 make modules 15 make modules_install15 make oldconfig14 make xconfig13 make zImage 15 man72 modinfo12 modprobe 12 modules.conf12 modules.dep12 passwd26 peers91 rmmod12, 41 route37 sendmail59 shutdown21 socket51 syslog.conf79 tar84 test77 useradd26, 30, 31 usermod31

Das könnte Ihnen auch gefallen