Sei sulla pagina 1di 84

Universidad Nacional De Ingeniera

CURSO Administracin de Servidores LINUX Con Red Hat Enterprice 5


Centro de Capacitacin COMPUFEC-UNI

UNI-COMPUFEC Linux

Administracion de Servidores

Derechos Reservados centro de capacitacin Compufec-UNI. Elaborado por: Ing Carlos Alberto Jarquin

INDICE HERRAMIENTAS BSICAS EN LINUX .............................................3


COMANDOS BSICOS DE LINUX.............................................................................3 GRUB DE LINUX.......................................................................................................5 GESTIN DE PAQUETES (TIPOS DE ARCHIVOS: TGZ, RPM, DEB)........................................................8 CONFIGURACIN DE X-WINDOWS......................................................................................12 ADMINISTRACIN DE USUARIOS..........................................................................13 SISTEMAS DE ARCHIVOS...............................................................................................20 PARTICIONANDO EL DD CON CFDISK..................................................................................22 FORMATEAR PARTICIONES (DESPUS DE PARTICIONAR CON CFDISK)....................................................26 PERMISOS Y PROPIEDADES EN ARCHIVOS Y DIRECTORIOS.............................................................27

CONFIGURACIN DE DE LOS PARMETROS DE RED ..................29


CONFIGURACION
DE LOS PARMETROS DE RED.........................................................................29

CONFIGURACION DE SERVIDORES DE RED EXTERNOS..............32


SERVIDOR DNS: BIND................................................................................................32 SERVIDOR WEB: APACHE2............................................................................................41 SERVIDOR FTP: VSFTPD..............................................................................................46 SERVIDOR DE CORREO: SENDMAIL.....................................................................................49

CONFIGURACIN DE SERVIDORES INTERNOS............................55


SERVIDOR DHCP: DHCPD............................................................................................55 SERVIDOR PROXY: SQUID..............................................................................................57 ASEGURAMIENTO CON IPTABLES......................................................................................75

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

Herramientas bsicas en Linux


COMANDOS BSICOS DE LINUX
Comandos Ls ls l ls la cd nom_directorio more nom_fichero ls -la | more mv [ruta1]fichero1 [ruta2]fichero2 rm archivo o directorio rm -R directorio cp archivo1 archivo2 tail nom_archivo tail -f nom_archivo head -numero nom_archivo mkdir nom_directorio rmdir nom_directorio chmod xxx nom_fichero chown usuario fichero/directorio chgrp grupo fichero/directorio ps aux kill -x(de 0 a 9) PID Mount mount /dev/fd0 /mnt/floppy mount /mnt/cdrom Umount Hostname Fsck init 0 init 6 compress/uncompress gunzip nom_archivo.gz tar xvf fichero.tar Top Descripcin Lista los ficheros de un directorio concreto Lista tambin las propiedades y atributos Lista ficheros incluidos los ocultos de sistema Cambia de directorio Muestra el contenido de un fichero de forma paginada Lista las ficheros de forma paginada Mueve y/o renombra un fichero. Elimina archivos o directorios Borra un directorio recursivamente Realiza una copia de un fichero Muestra las ltimas lneas de un archivo de forma esttica Muestra las ltimas lneas del fichero de manera dinmica Muestra las primeras (nmero) lneas de un fichero Crea un directorio Elimina un directorio Cambia los permisos de acceso de un fichero Cambia el propietario de un fichero o directorio Cambia el grupo (-R para realizar el cambio recursivo) Muestra una lista de los procesos activos Elimina un proceso via n PID que le identifica Vemos el listado de dispositivos montados Montaje de la disquetera Punto de montaje del CD-ROM Desmonta los puntos de montaje anteriores Visualiza el nombre de la mquina Escanea el disco Apaga la mquina de manera correcta Reinicia la mquina Comandos de compresin de archivos " .Z" Descompresin de archivos " .gz" Descomprime archivos " .tar" Lista procesos de CPU 3

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux find / -name nom print Pwd Grep 'cadena' archivo Date Cal Clear Who Whoami Finger Su su nom_usuari Fdisk Setup rpm -i nombre_paquete Startx Ctrl+Alt+F2 Alt+F'x' make config make xconfig ifconfig a dump/restore ./comando u: propietario; g:grupo; o: otros; a: todos +: conceder derechos -: denegar derechos

Administracion de Servidores

Encuentra ficheros segn patrn Visualiza el directorio actual Muestra las lneas del archivo que contienen la cadena Da la hora y la fecha del sistema Muestra el calendario del mes actual Borra la pantalla Informa de los usuarios conectados Ms informacin sobre nuestra mquina Informacin ms completa que who Entrar a la sesin como root (necesario passwd) Estando como root entramos como otro usuario Gestin de particiones ('m' = men de comandos) Configuracin grfica de dispositivos Instalacin de paquetes RedHat Arranca el entorno grfico Salir del entorno grfico a un terminal Conmutar entre terminales Configuracin del Kernel Entorno grfico de configuracin del Kernel Informacin de las propiedades de red, equivale a ifconfig /all en Windows Copias de seguridad y restauracin Ejecuta un comando si no tenemos el path del directorio

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

GRUB de Linux
Al igual que LILO, GRUB (Grand Unified Bootloader) est compuesto por dos etapas: la primera (stage1) es de 512 bytes y est guardada en el MBR o en el bloque de arranque de una particin de disco o disquete; la segunda etapa (stage2), ms grande, se carga a continuacin y contiene el el cdigo del programa. En GRUB, la nica funcin de la primera etapa es cargar la segunda etapa del cargador de arranque. Pero a partir de este punto, GRUB se diferencia de LILO, ya que stage2 puede acceder directamente al sistema de archivos. Actualmente, se soportan ext2, ext3, reiser FS, jfs, xfs, minix y el sistema DOS FAT FS utilizado por Windows. GRUB puede acceder a los sistemas de archivos en los dispositivos de disco BIOS soportados (disquetes o discos duros detectados por la BIOS) antes de arrancar, por lo que los cambios en el archivo de configuracin de GRUB no obligan a reinstalar el gestor de arranque. Al arrancar, GRUB vuelve a cargar los archivos de men incluyendo las rutas y particiones actuales hacia el kernel o el ramdisk de inicio (initrd) y encuentra estos archivos automticamente. GRUB presenta la enorme ventaja de que es posible cambiar todos los parmetros de arranque antes de arrancar. Por ejemplo, si se ha cometido un error al editar el archivo de mens, puede resolverse fcilmente de este modo. Adems se permite introducir los comandos de arranque de forma interactiva mediante una especie de cursor. GRUB le ofrece la posibilidad de comprobar el estado del kernel e initrd antes de arrancar. De esta forma puede arrancar sistemas operativos que todava no dispongan de una entrada propia en el men de arranque.

El men de arranque de GRUB


Tras la pantalla de bienvenida con el men de arranque se encuentra el archivo de configuracin de GRUB, /boot/grub/menu.lst. Este archivo contiene toda la informacin sobre todas las particiones o sistemas operativos que pueden ser arrancados con ayuda del men. En cada arranque del sistema, GRUB vuelve a leer el archivo de men del sistema de archivos. Por lo tanto, no hay ninguna necesidad de actualizar GRUB despus de modificar el archivo; sencillamente utilice YaST2 o su editor favorito para realizar los cambios. Este archivo de men contiene comandos de sintaxis es muy sencilla. Cada lnea incluye un comando seguido de los parmetros opcionales separados por espacios en blanco, al igual que en la shell. Por razones histricas, algunos comandos tienen un signo de igualdad como primer parmetro. Las lneas de comentarios comienzan con #. Para reconocer las entradas de men en la vista del men, debe dar un nombre o title a cada entrada. El texto que aparece tras la palabra clave title ser mostrado (incluyendo espacios en blanco) en el men como opcin para seleccionar. Despus de seleccionar una entrada determinada del men, se ejecutarn todos los comandos que se encuentren antes del siguiente title. El caso ms sencillo es la ramificacin al cargador de arranque de otro sistema operativo. El comando es chainloader y el argumento suele ser el bloque de arranque de otra particin en GRUB anotacin por bloque (block-notation), por ejemplo:
chainloader (hd0,3)+1

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux Convencin de nombres para discos duros y particiones

Administracion de Servidores

Para denominar a los discos duros y particiones, GRUB utiliza convenciones distintas a las ya habituales de los dispositivos Linux normales (por ejemplo /dev/hda1). El primer disco duro se denomina siempre hd0, la unidad de disquetes fd0. Numeracin de las particiones en GRUB La numeracin de las particiones en GRUB empieza por cero. (hd0,0) corresponde a la primera particin en el primer disco duro. En una estacin de trabajo ordinaria a la que est conectado un disco como Primary Master, el nombre de dispositivo es /dev/hda1. Las cuatro particiones primarias posibles ocupan los nmeros de particiones 0 a 3. Las particiones lgicas se designan con los nmeros a partir de 4:
(hd0,0) (hd0,1) (hd0,2) (hd0,3) (hd0,4) (hd0,5) ... primera particin primaria en el primer disco duro segunda particin primaria tercera particin primaria cuarta particin primaria (y normalmente particin extendida) primera particin lgica segunda particin lgica

IDE, SCSI o RAID GRUB no distingue entre dispositivos IDE, SCSI o RAID. Todos los discos duros detectados por la BIOS u otras controladoras se numeran segn el orden de arranque definido en la BIOS. Ejemplo De Configuracion. El siguiente es un ejemplo de archivo de configuracin de men de GRUB diseado para arrancar bien sea Red Hat Enterprise Linux o Microsoft Windows XP: default=0 timeout=10 splashimage=(hd0,0)/grub/splash.xpm.gz hiddenmenu title Red Hat Enterprise Linux AS (2.6.8-1.523) root (hd0,0) kernel /vmlinuz-2.6.8-1.523 ro root=LABEL=/ rhgb quiet initrd /initrd-2.6.8-1.523.img title Windows rootnoverify (hd0,0) chainloader +1

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

Este archivo indicar a GRUB que cree un men con Red Hat Enterprise Linux como el sistema operativo predeterminado y que establezca un arranque automtico despus de 10 segundos. Se proporcionan dos secciones, una para cada entrada de sistema, con comandos especificos para la tabla de particin del sistema. La imagen de fondo se encuentra en /dev/hda5 y se llama message default 0 Por defecto se arranca la primera entrada del men con title linux. timeout 8 Si transcurren 8 segundos sin que el usuario realice ninguna accin, GRUB arrancar automticamente. splashimage=(hd0,0)/grub/splash.xpm.gz La imagen de fondo. El segundo bloque (y tambin el ms grande) contiene una lista con los diversos sistemas operativos arrancables.
La primera entrada (title linux) se encarga del arranque de Red Hat Enterprise Linux. El kernel (vmlinuz) se encuentra en la primera particin lgica (aqu la particin de arranque) del primer disco duro.

Aqu se aaden los parmetros del kernel como la especificacin de la particin raz, el modo VGA, etc. La definicin de la particin raz se realiza de acuerdo con el esquema Linux , ya que esta informacin va dirigida al kernel y no tiene mucha relacin con GRUB. initrd se encuentra tambin en la primera particin lgica del primer disco duro. La segunda entrada se ocupa de cargar Windows. Este sistema operativo se inicia desde la primera particin del primer disco duro (hd0,0). La carga y ejecucin del primer sector de la particin especificada se controla por medio de chainloader +1.

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

Gestin de Paquetes (Tipos de archivos: tgz, rpm, deb)


Introduccin. Una vez que ya ha experimentado con algunos de los comandos bsicos, se encontrar ahora con una pregunta: Cmo actualizo, instalo o desinstalo software? Existen varios metdos que dependern del formato utilizado para enmpaquetar los programas. Este documento le porporcionar la descriopcin de los posibles mtodos y algunos ejemplos. Por favor siga el procedimiento al pie de la letra. La parte terica. Antes de continuar, es indispensable se conozca primero el uso y el porque de cada mtodo existente para el manejo del software. De esto se depender en adelante para mantener un saludable estado de cualquier sistema Linux. Indistintamente del mtodo, todos se deber de realizar desde la cuenta de root, as que proceda con cuidado. Manejo de paquetes a partir de archivos RPM El formato RPM es el ms utilizado en la actualidad. Tiene como ventaja principal el encargarse de verificar las posibles dependencias o requisitos para la instalacin o actualizacin de un paquete en particular, as como tambin el verificar si el paquete que se proceder a desinstalar es requerido por otros paquetes presentes en el sistema. Analizaremos entonces el uso del comando rpm. Existen dos aplicaciones en el entorno grfico que utilizan rpm en el trasfondo y que son de muy fcil utilizacin, son gnorpm y kpackage. Sin embargo es importante que el usuario novicio se familiarice con este comando para poder entender el funcionamiento de las mencionadas aplicaciones en el entorno grfico. Sintxis rpm -[opciones] paquete.rpm Nos limitaremos a abordar solo las opciones ms comnes que un nuevo usuario de Linux podra necesitar. Si desea ver una descripcin completa de las posibles opciones del comando rpm, consulte el manual escribiendo man rpm en cualquier terminal o consola. Instalacin binarios contenidos en paquetes con formato RPM. Los paquetes de este tipo son programas previamente compilados, almacenados y listos para ser instalados en el sistema. Estos paquetes pueden tener las extensiones .i386.rpm para PC compatible con al menos un microprocesador 80386, es decir, cualquier PC de arquitectura Intelo compatible, .i486.rpm para PC compatible un microprocesador 80486, .i586.rpm para PC compatible con microprocesador 80586, .i686.rpm para PC compatible con microprocesador 80686, .ppc.rpm para Machintosh PowerPC o .noarch.rpm que puede utilizarse en cualquier arquitectura. En la prctica, no se preocupe por encontrar paquetes i686 para su PC con microprocesador Intel Pentium III, puede instalar con total seguridad los paquetes para i386. Los paquetes noarchgeneralmente contiene archivos de texto -guiones para diversas funciones, archivos de configuracin o documentacin-, imagenes, sonidos, etc., es decir, archivos que trabajan indistintamente en uno u otro sistema. La sintxis que se sugiere utilizar en la mayora de los casos para instalar o actualizar paquetera es la siguiente: rpm -Uvh paquete.i386.rpm El utilizar la opcin U, que significa Update, a fin de conseguir un proceso limpio, hace que primero se consulte la base de datos de la paquetera instalada, procediendo a desinstalar a continuacin la versin anterior e instalando la nueva. Aunque tambin puede utilizarse la opcin i, que significainstall, esta no Elaborado por: Ing Carlos Alberto Jarquin 8

UNI-COMPUFEC Linux

Administracion de Servidores

continuar el proceso si existiese en el sistema una versin anterior de dicho paquete. Desinstalacin binarios contenidos en paquetes con formato RPM. rpm -e paquete No requiere especficar el nmero de versin ni la extensin ya que consulta directamente la base de datos de la paquetera instalada en le sistema y proceder a desinstalar el paquete que lleve dicho nombre. Instalacin a partir de cdigo fuente contenido en paquetes con formato RPM. Este procedimiento se aplica a los paquetes denominados SRPM, sobre los cuales seguramente ha ledo en los foros y grupos d discusin, y requiere que se encuentren instalados en el sistema los paquetes de desarrollo -los paquetes contenidos en el CDROM de instalacin que llevan -devel- en el nombre-, ya que el procedimiento implica que se realizar la compilacin de programas. La ventaja que tiene la construccin e instalacin paquetera a partir de archivos SRPM es que los paquetes resultantes quedan compilados de forma especial para el sistema Linux que tengamos instalado. Es de particular ayuda cuando se actualiza, por citar un ejemplo, de LinuxPPP 5.x a LinuxPPP 6.x y el usuario se topa con que alguna de sus aplicaciones favoritas simplemente ya no funcionan. Esto se debe a que la diferencia entre las versiones de las bibliotecas compartidas entre una y otra versin de LinuxPPP puede ser demasiada. Las distribuciones basadas sobre RedHat Linux 5.x utilizan, entre otras cosas, libc5, en tanto que las versiones basadas cobre 6.x hacen uso de Glibc, tambin conocido como libc6. Un tpico ejemplo de cuando es de utilidad este mtodo de manejo de la paquetera es conAbiword-0.7.x, que funciona correctamente en LinuxPPP 6.1, pero no as en LinuxPPP 6.2. La razn, en este caso, es debido a que LinuxPPP 6.1, entre otros componentes, utiliza Glibc 2.0, biblioteca con al que fue compilado el paquete RPM que se ofreca en el sitio de Abiword, y LinuxPPP 6.2 utiliza Glibc 2.1. Estos paquetes SRPM tienen la extensin .src.rpm y se procede sobre estos del siguiente modo: rpm rebuild clean paquete.src.rpm Esta ltima lnea de comando coloca un paquete comprimido, normalmeente un archivo con extencin .tar.gz o tar.bz2, en /usr/src/redhat/SOURCES y un archivo, conocido como spec, con las especificaciones del paquete en /usr/src/redhat/SPECS. A continuacin se descomprime el archivo .tar.gz o tar.bz2 y se inicia la compilacin y construccin del paquete RPM con las especificaciones del spec. Si al terminar el proceso en la ltima lnea se obtiene + exit 0, solo restar instalar o actualizar con el paquete RPM que ahora encontraremos, dependiendo de la arquitectura para la que se compil, en alguno de los subdirectorios de /usr/src/redhat/RPMS. rpm -Uvh /usr/src/redhat/RPMS/i386/paquete.i386.rpm Confirmacin de la existencia de paquetera en particular en el sistema. En ocasiones es posible que se encuentre en uns situacin como esta: usted encuentra en algn sitio de Internet un paquete RPM del cual se hablan maravillas en la descripcin, pero deconoce si ya lo tendr instalado, o si ya tiene una versin ms reciente; podra averiguarlo descargando dicho paquete, que quiz tenga varios Megabytes en tamao, utilizando una lenta conexin de modem y provando con la lnea de comando rpm -Uvh. Si result un paquete ms reciete que el que usted tena, habrn valido la pena los 10-15 minutos invertidos en descargar dicho paquete, pero si ya lo tena instalado o bien se trataba de una versin anterior, usted deseara haber sabido que poda utilizar la siguiente lnea de comando: rpm -q nombre_del_paquete_sin_nmero_de_versin La correspondiente salida de esto nos dir si el paquete se encuentra o no instalado y el nmero de versin. Si nos interesa examinar la informacin sobre algn paquete instalado en el sistema, utilizamos la siguiente lnea de comando: rpm -qi nombre_del_paquete_sin_nmero_de_versin Lo anterior devuelve los detalles informativos respecto al paquete instalado. Si queremos examinar dicha informacin pero en un paqeute no instalado en el sistema, solo hace flata aadir p, que implica que nos referiremos a un paquete, en las opciones del comando del modo siguiente: Elaborado por: Ing Carlos Alberto Jarquin 9

UNI-COMPUFEC Linux

Administracion de Servidores

rpm -qpi clean cualquier_paquete_que_haya_descargado.i386.rpm Verificacin de firmas de paquetes RPM. Por cuestiones de seguridad, si usted descarga un paquete RPM desde un sitio web o servidor FTP distinto al oficial de la distribucin o conjunto de paquetes que utilice, lo ms saludable ser verificar dicho paquete. JAMS descargue e instale paquetes de binarios desde sitios web dedicados a actividades ilegales o de dudosa reputacin. Por si acaso, utilice la siguiente lnea de comando para verificar las firmas includas en paquetes antes de proceder a instalarlos: rpm -Kv paquete.i386.rpm Esto debe darle la siguiente salida, donde las x corresponden a la firma PGP de la persona que construy el paquete: paquete.i386.rpm: MD5 sum OK: xxxxxxxxxxxxxxxxxxxxx Compare la firma PGP con la del empaquetador, misma que debe corresponder con la que este proporcione en el sitio web desde donde descargue dicho paquete. Instalacin de paquetes a partir de paquetes .tar.gz o .tar.bz2. Este el el mtodo universal para todas las distribuciones de Linux ya que funciona tando en distribuciones basadas sobre RedHat, como Debian, Stampede o Slackware. Debido a que no se guarda un registro sobre lo que se tiene instalado y lo que no, conviene, en le caso de distribuciones basadas sobre RedHat Linux, dejar las carpetas resultantes con el cdigo fuente en/usr/src/redhat/BUILD para tener una referencia y evitar romper las posibles dependencias entre los disitntos paquetes. La mayora de estos paquetes, denominados tarballs, vienen con extensin .tar.gz o tar.bz2. Lo primero ser coparlos en la carpeta /usr/src/redhat/SOURCES y lo siguiente consiste en decomprimir estos con la siguiente lnea de comando: tar -zxvf /usr/src/redhat/SOURCES/paquete.tar.gz /usr/src/redhat/BUILD/ Despus acceda al interior de la carpeta resultante: cd /usr/src/redhat/BUILD/paquete Es necesario que lea la documentacin que acompaa a dicho paquete y seguir las instrucciones proporcionadas por el autor. Por lo general son necesarios al menos tres pasos: ./configure prefix=/usr sysconfdir=/etc localstatedir=/var make make install make clean Algunos paquetes de binarios propietarios, como StarOffice, incluyen documentacin y un instructivo que detalla la instalacin. StarOffice requiere se ejecute el binario setup, con la opcin/net si va ser utilizado por varios usuarios, contenido en la subcarpeta bin. cd /usr/src/redhat/BUILD/so51inst/office51 ./setup /net En la mayora de los casos, como ocurre con los programas con licencia GPL que se distribuyen como cdigos fuentes, necesitar ejecutar algunos comandos como se muestra a continuacin: Compilacin desde cdigo fuente. ./configure Este prepara el Makefile y configura las opciones de compilacin, mismas que en algunos casos pueden resultar demasiado complejas para un usuario novicio. Adems de verifica si el sistema posee las bibliotecas Elaborado por: Ing Carlos Alberto Jarquin 10

UNI-COMPUFEC Linux

Administracion de Servidores

de desarrollo necesarias para la compilacin. make Este es el que realiza la compilacin del cdigo fuente. El procesos puede durar varios minutos. make install Este se encarga de realizar la instalacin del los binarios y mdulos compilados en los lugares correctos. make clean Opcionalmente podemos utilizar este comando para limpiar los remanentes que se originaron por la compilacin a fin de recuperar espacio en el disco duro. Si por alguna razn necesita desinstalar el programa resultante, puede utilizar make unistall. .deb es la extensin del formato de paquetes de software de Debian, y el nombre ms usado para dichos paquetes. archivs .deb Como usarlos? El programa predeterminado para manejar estos paquetes es dpkg, generalmente via el sistema APT. Los paquetes deb tambin pueden ser convertidos a otros formatos de paquetes usando la aplicacin Alien, asi como otros pueden ser convertidos a deb. Estructura Interna Estos paquetes contienen tres archivos: debian-binary - nmero de versin del formato debcontrol.tar.gz - toda la metainformacin del paquete data.tar.gz - los archivos que se instalan. Creo que eso es lo que deben saber.... ahora procederemos a instalarlo. Para instalar primero nos situamos en donde este la carpeta con el .deb, si fuese necesario usamos el comando "cd" para desplazarnos a dicha carpeta. Luego escribimos escribimos esto: Dpkg i nombre del paquete .deb Deben cambiar nombre del paquete por el nombre del archivo .deb Y es importante estar logeado como root para poder instalarlo. NOTA: Posiblemente deban usar comillas ("") en el nombre del paquete. Con eso ya debe ser suficiente, ahora podemos ejecutar el programa escribiendo su nombre en la consola o buscandolo junto a los otros programas. Y para desinstalar.... Dpkg r nombre del paquete:

Elaborado por: Ing Carlos Alberto Jarquin

11

UNI-COMPUFEC Linux

Administracion de Servidores

Configuracin de X-Windows
Para cambiar la resolucin de la pantalla desde la consola debemos utilizar el comando xrandr. Abrimos un terminal y tipeamos: $ xrandr Nos mostrar un listado de resoluciones y nos dir cual es la actual: Screen 0: minimum 320 x 175, current 1024 x 768, maximum 1024 x 768 default connected 1024x768+0+0 0mm x 0mm 1 1024x768 50.0* 55.0 56.0 57.0 58.0 2 832x624 51.0 3 800x600 52.0 60.0 61.0 62.0 63.0 64.0 4 720x400 53.0 5 640x480 54.0 68.0 69.0 70.0 71.0 6 840x525 59.0 7 800x512 65.0 8 720x450 66.0 9 640x512 67.0 10 640x400 72.0 73.0 11 640x384 74.0 12 640x350 75.0 13 576x432 76.0 14 576x384 77.0 15 512x384 78.0 79.0 80.0 81.0 82.0 16 416x312 83.0 17 400x300 84.0 85.0 86.0 87.0 88.0 18 360x200 89.0 18 320x240 90.0 91.0 92.0 93.0 19 320x200 94.0 20 320x175 95.0 Como pueden observar la resolucin actual es 1024x768, es decir el nmero 0. Para cambiarla debemos seleccionar el nmero correspondiente a la resolucin que queramos tener y tipeamos: xrandr -s N En donde "N" ser el nmero de resolucin. Por Ejemplo: xrandr -s 3 Con estos parametros mi resolucin cambiar a 800x600.

Elaborado por: Ing Carlos Alberto Jarquin

12

UNI-COMPUFEC Linux

Administracion de Servidores

ADMINISTRACIN DE USUARIOS
Tipos de usuarios Los usuarios en Unix/Linux se identifican por un nmero nico de usuario, User ID, UID. Y pertenecen a un grupo principal de usuario, identificado tambin por un nmero nico de grupo, Group ID, GID. El usuario puede pertenecer a ms grupos adems del principal. Aunque sujeto a cierta polmica, es posible identificar tres tipos de usuarios en Linux: Usuario root Tambin llamado superusuario o administrador. Su UID (User ID) es 0 (cero). Es la nica cuenta de usuario con privilegios sobre todo el sistema. Acceso total a todos los archivos y directorios con independencia de propietarios y permisos. Controla la administracin de cuentas de usuarios. Ejecuta tareas de mantenimiento del sistema. Puede detener el sistema. Instala software en el sistema. Puede modificar o reconfigurar el kernel, controladores, etc. Usuarios especiales Ejemplos: bin, daemon, adm, lp, sync, shutdown, mail, operator, squid, apache, etc. Se les llama tambin cuentas del sistema. No tiene todos los privilegios del usuario root, pero dependiendo de la cuenta asumen distintos privilegios de root. Lo anterior para proteger al sistema de posibles formas de vulnerar la seguridad. No tienen contraseas pues son cuentas que no estn diseadas para iniciar sesiones con ellas. Tambin se les conoce como cuentas de "no inicio de sesin" (nologin). Se crean (generalmente) automticamente al momento de la instalacin de Linux o de la aplicacin. Generalmente se les asigna un UID entre 1 y 100 (definifo en /etc/login.defs) Usuarios normales Se usan para usuarios individuales. Cada usuario dispone de un directorio de trabajo, ubicado generalmente en /home. Cada usuario puede personalizar su entorno de trabajo. Tienen solo privilegios completos en su directorio de trabajo o HOME. Por seguridad, es siempre mejor trabajar como un usuario normal en vez del usuario root, y cuando se requiera hacer uso de comandos solo de root, utilizar el comando su. En las distros actuales de Linux se les asigna generalmente un UID superior a 500. /etc/passwd Cualquiera que sea el tipo de usuario, todas las cuentas se encuentran definidas en el archivo de configuracin 'passwd', ubicado dentro del directorio /etc. Este archivo es de texto tipo ASCII, se crea al momento de la instalacin con el usuario root y las cuentas especiales, ms las cuentas de usuarios normales Elaborado por: Ing Carlos Alberto Jarquin 13

UNI-COMPUFEC Linux

Administracion de Servidores

que se hayan indicado al momento de la instalacin. El archivo /etc/passwd contiene una lnea para cada usuario, similar a las siguientes: root:x:0:0:root:/root:/bin/bash sergio:x:501:500:Sergio Gonzlez:/home/sergio:/bin/bash La informacin de cada usuario est dividida en 7 campos delimitados cada uno por ':' dos puntos. /etc/passwd Campo 1 Es el nombre del usuario, identificador de inicio de sesin (login). Tiene que ser nico. La 'x' indica la contrasea encriptada del usuario, adems tambin indica que se est haciendo Campo 2 uso del archivo /etc/shadow, si no se hace uso de este archivo, este campo se vera algo as como: 'ghy675gjuXCc12r5gt78uuu6R'. Nmero de identificacin del usuario (UID). Tiene que ser nico. 0 para root, generalmente las Campo 3 cuentas o usuarios especiales se numeran del 1 al 100 y las de usuario normal del 101 en delante, en las distribuciones mas recientes esta numeracin comienza a partir del 500. Numeracin de identificacin del grupo (GID). El que aparece es el nmero de grupo principal Campo 4 del usuario, pero puede pertenecer a otros, esto se configura en /etc/groups. Campo 5 Comentarios o el nombre completo del usuario. Campo 6 Directorio de trabajo (Home) donde se sita al usuario despus del inicio de sesin. Campo 7 Shell que va a utilizar el usuario de forma predeterminada. /etc/shadow Anteriormente (en sistemas Unix) las contraseas cifradas se almacenaban en el mismo /etc/passwd. El problema es que 'passwd' es un archivo que puede ser ledo por cualquier usuario del sistema, aunque solo puede ser modificado por root. Con cualquier computadora potente de hoy en da, un buen programa de descifrado de contraseas y paciencia es posible "crackear" contraseas dbiles (por eso la conveniencia de cambiar peridicamente la contrasea de root y de otras cuentas importantes). El archivo 'shadow', resuelve el problema ya que solo puede ser leido por root. Considrese a 'shadow' como una extensin de 'passwd' ya que no solo almacena la contrasea encriptada, sino que tiene otros campos de control de contraseas. El archivo /etc/shadow contiene una lnea para cada usuario, similar a las siguientes: root:ghy675gjuXCc12r5gt78uuu6R:10568:0:99999:7:7:-1:: sergio:rfgf886DG778sDFFDRRu78asd:10568:0:-1:9:-1:-1:: La informacin de cada usuario est dividida en 9 campos delimitados cada uno por ':' dos puntos. /etc/shadow Campo 1 Nombre de la cuenta del usuario. Campo 2 Contrasea cifrada o encriptada, un '*' indica cuenta de 'nologin'. Das transcurridos desde el 1/ene/1970 hasta la fecha en que la contrasea fue cambiada por Campo 3 ltima vez. Campo 4 Nmero de das que deben transcurrir hasta que la contrasea se pueda volver a cambiar. Nmero de das tras los cuales hay que cambiar la contrasea. (-1 significa nunca). A partir de Campo 5 este dato se obtiene la fecha de expiracin de la contrasea. Nmero de das antes de la expiracin de la contrasea en que se le avisar al usuario al inicio de Campo 6 la sesin. Elaborado por: Ing Carlos Alberto Jarquin 14

UNI-COMPUFEC Linux Campo 7 Campo 8 Campo 9

Administracion de Servidores

Das despus de la expiracin en que la contrasea se inhabilitara, si es que no se cambio. Fecha de caducidad de la cuenta. Se expresa en das transcurridos desde el 1/Enero/1970 (epoch). Reservado.

/etc/group Este archivo guarda la relacin de los grupos a los que pertenecen los usuarios del sistema, contiene una lnea para cada usuario con tres o cuatro campos por usuario: root:x:0:root ana:x:501: sergio:x:502:ventas,supervisores,produccion cristina:x:503:ventas,sergio El campo 1 indica el usuario. El campo 2 'x' indica la contrasea del grupo, que no existe, si hubiera se mostrara un 'hash' encriptado. El campo 3 es el Group ID (GID) o identificacin del grupo. El campo 4 es opcional e indica la lista de grupos a los que pertenece el usuario Actualmente al crear al usuario con useradd se crea tambin automticamente su grupo principal de trabajo GID, con el mismo nombre del usuario. Es decir, si se aade el usuario 'sergio' tambin se crea el /etc/group el grupo 'sergio'. Aun asi, existen comandos de administracin de grupos que se explicarn ms adelante.

/etc/login.defs En el archivo de configuracin /etc/login.defs estn definidas las variables que controlan los aspectos de la creacin de usuarios y de los campos de shadow usadas por defecto. Algunos de los aspectos que controlan estas variables son: Nmero mximo de das que una contrasea es vlida PASS_MAX_DAYS El nmero mnimo de caracteres en la contrasea PASS_MIN_LEN Valor mnimo para usuarios normales cuando se usa useradd UID_MIN El valor umask por defecto UMASK Si el comando useradd debe crear el directorio home por defecto CREATE_HOME Basta con leer este archivo para conocer el resto de las variables que son autodescriptivas y ajustarlas al gusto. Recerdese que se usaran principalmente al momento de crear o modificar usuarios con los comandos useradd y usermod que en breve se explicaran. Aadir usuarios con useradd useradd o adduser es el comando que permite aadir nuevos usuarios al sistema desde la lnea de comandos. Sus opciones ms comunes o importantes son las siguientes: -c aade un comentario al momento de crear al usuario, campo 5 de /etc/passwd -d directorio de trabajo o home del usuario, campo 6 de /etc/passwd -e fecha de expiracin de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow -g nmero de grupo principal del usuario (GID), campo 4 de /etc/passwd -G otros grupos a los que puede pertenecer el usuario, separados por comas. -r crea una cuenta del sistema o especial, su UID ser menor al definido en /etc/login.defs en la variable UID_MIN, adems no se crea el directorio de inicio. -s shell por defecto del usuario cuando ingrese al sistema. Si no se especifica, bash, es el que queda establecido. Elaborado por: Ing Carlos Alberto Jarquin 15

UNI-COMPUFEC Linux

Administracion de Servidores

-u UID del usuario, si no se indica esta opcin, automticamente se establece el siguiente nmero disponible a partir del ltimo usuario creado. Ahora bien, realmente no hay prcticamente necesidad de indicar ninguna opcin ya que si hacemos lo siguiente: #> /usr/sbin/useradd juan Se crear el usuario y su grupo, asi como las entradas correspondientes en /etc/passwd, /etc/shadow y /etc/group. Tambin se crear el directorio de inicio o de trabajo: /home/juan y los archivos de configuracin que van dentro de este directorio y que ms adelante se detallan. Las fechas de expiracin de contrasea, etc. Quedan lo ms amplias posibles asi que no hay problema que la cuenta caduque, asi que prcticamente lo nico que faltara sera aadir la contrasea del usuario y algn comentario o identificacin de la cuenta. Como aadir el password o contrasea se estudiara en un momento y viendo las opciones con '-c' es posible establecer el comentario, campo 5 de /etc/passwd: #> /usr/sbin/useradd -c "Juan Perez Hernandez" juan Siempre el nombre del usuario es el ltimo parmetro del comando. Asi por ejemplo, si queremos salirnos del default, podemos establecer algo como lo siguiente: #> /usr/sbin/useradd -d /usr/juan -s /bin/csh -u 800 -c "Juan Perez Hernandez" juan Con lo anterior estamos cambiando su directorio de inicio, su shell por defautl sera csh y su UID ser el 800 en vez de que el sistema tome el siguiente nmero disponible. Modificar usuarios con usermod Como su nombre lo indica, usermod permite modificar o actualizar un usuario o cuenta ya existente. Sus opciones ms comunes o importantes son las siguientes: -c aade o modifica el comentario, campo 5 de /etc/passwd -d modifica el directorio de trabajo o home del usuario, campo 6 de /etc/passwd -e cambia o establece la fecha de expiracin de la cuenta, formato AAAA-MM-DD, campo 8 de /etc/shadow -g cambia el nmero de grupo principal del usuario (GID), campo 4 de /etc/passwd -G establece otros grupos a los que puede pertenecer el usuario, separados por comas. -l cambia el login o nombre del usuario, campo 1 de /etc/passwd y de /etc/shadow -L bloque la cuenta del usuario, no permitiendol que ingrese al sistema. No borra ni cambia nada del usuario, solo lo deshabilita. -s cambia el shell por defecto del usuario cuando ingrese al sistema. -u cambia el UID del usuario. -U desbloquea una cuenta previamente bloqueada con la opcin -L. Si quiseramos cambiar el nombre de usuario de 'sergio' a 'sego': #> /usr/sbin/usermod -l sego sergio Casi seguro tambin cambiar el nombre del directorio de inicio o HOME en /home, pero si no fuera as, entonces: #> /usr/sbin/usermod -d /home/sego sego Otros cambios o modificaciones en la misma cuenta: #> /usr/sbin/usermod -c "supervisor de area" -s /bin/ksh -g 505 sego Lo anterior modifica el comentario de la cuenta, su shell por defecto que ahora sera Korn shell y su grupo principal de usuario qued establecido al GID 505 y todo esto se aplic al usuario 'sego' que como se observa debe ser el ltimo argumento del comando. El usuario 'sego' sali de vacaciones y nos aseguramos de que nadie use su cuenta: #> /usr/sbin/usermod -L sego Elaborado por: Ing Carlos Alberto Jarquin 16

UNI-COMPUFEC Linux

Administracion de Servidores

Eliminar usuarios con userdel Como su nombre lo indica, userdel elimina una cuenta del sistema, userdel puede ser invocado de tres maneras: #> /usr/sbin/userdel sergio Sin opciones elimina la cuenta del usuario de /etc/passwd y de /etc/shadow, pero no elimina su directorio de trabajo ni archivos contenidos en el mismo, esta es la mejor opcin, ya que elimina la cuenta pero no la informacin de la misma. #> /usr/sbin/userdel -r sergio Al igual que lo anterior elimina la cuenta totalmente, pero con la opcin -r adems elimina su directorio de trabajo y archivos y directorios contenidos en el mismo, asi como su buzn de correo, si es que estuvieran configuradas las opciones de correo. La cuenta no se podr eliminar si el usuario esta logueado o en el sistema al momento de ejecutar el comando. #> /usr/sbin/userdel -f sergio La opcin -f es igual que la opcin -r, elimina todo lo del usuario, cuenta, directorios y archivos del usuario, pero adems lo hace sin importar si el usuario esta actualmente en el sistema trabajando. Es una opcin muy radical, adems de que podra causar inestabilidad en el sistema, asi que hay que usarla solo en casos muy extremos. Cambiar contraseas con passwd Crear al usuario con useradd es el primer paso, el segundo es asignarle una contrasea a ese usuario. Esto se logra con el comando passwd que permitir ingresar la contrasea y su verificacin: #> passwd sergio Changing password for user prueba. New UNIX password: Retype new UNIX password: passwd: all authentication tokens updated successfully. #> El usuario root es el nico que puede indicar el cambio o asignacin de contraseas de cualquier usuario. Usuarios normales pueden cambiar su contraea en cualquier momento con tan solo invocar passwd sin argumentos, y podr de esta manera cambiar la contrasea cuantas veces lo requiera. passwd tiene integrado validacin de contraseas comunes, cortas, de diccionario, etc. asi que si por ejemplo intento como usuario normal cambiar mi contrasea a 'qwerty' el sistema me mostrar lo siguiente: $> passwd Changing password for user prueba. New UNIX password: BAD PASSWORD: it is based on a dictionary word Retype new UNIX password: passwd: all authentication tokens updated successfully. $> Ntese que al ingresar 'qwerty' como contrasea se detect que es una secuencia ya conocida como contrasea y me manda la advertencia: "BAD PASSWORD: it is based on a dictionary word", sin embargo me permite continuar, al ingresar la verificacin. Es decir, passwd avisa de malas o dbiles contraseas pero permite establecerlas si realmente se desea. Elaborado por: Ing Carlos Alberto Jarquin 17

UNI-COMPUFEC Linux

Administracion de Servidores

Resumiendo entonces, se podra decir que todo este tutorial se reduce a dos lneas de comandos para crear y dejar listo para trabajar a un usuario en Linux: #> /usr/sbin/useradd ana #> passwd ana Se crea el usuario 'ana', useradd hace todo el trabajo de establecer el shell, directorio de inicio, copiar archivos iniciales de configuracin de la cuenta, etc. y despus passwd establece la contrasea. Asi de simple. passwd tiene varias opciones que permiten bloquear la cuenta '-l', desbloquearla '-u', y varias opciones ms que controlan la vigencia de la contrasea, es decir, es otro modo de establecer los valores de la cuenta en/etc/shadow. Para ms informacin consulta las pginas del manual: $> man passwd Archivos de configuracin Los usuarios normales y root en sus directorios de inicio tienen varios archivos que comienzan con "." es decir estn ocultos. Varan mucho dependiendo de la distribucin de Linux que se tenga, pero seguramente se encontrarn los siguientes o similares: #> ls -la drwx------ 2 ana ana 4096 jul 9 09:54 . drwxr-xr-x 7 root root 4096 jul 9 09:54 .. -rw-r--r-- 1 ana ana 24 jul 9 09:54 .bash_logout -rw-r--r-- 1 ana ana 191 jul 9 09:54 .bash_profile -rw-r--r-- 1 ana ana 124 jul 9 09:54 .bashrc .bash_profile aqu podremos indicar alias, variables, configuracin del entorno, etc. que deseamos iniciar al principio de la sesin. .bash_logout aqu podremos indicar acciones, programas, scripts, etc., que deseemos ejecutar al salirnos de la sesin. .bashrc es igual que .bash_profile, se ejecuta al principio de la sesin, tradicionalmente en este archivo se indican los programas o scripts a ejecutar, a diferencia de .bash_profile que configura el entorno. Lo anterior aplica para terminales de texto 100%. Si deseamos configurar archivos de inicio o de salida de la sesin grfica entonces, en este caso, hay que buscar en el men del ambiente grfico algn programa grfico que permita manipular que programas se deben arrancar al iniciar la sesin en modo grfico. En la mayora de las distribuciones existe un programa llamado "sesiones" o "sessions", generalmente esta ubicado dentro del men de preferencias. En este programa es posible establecer programas o scripts que arranquen junto con el ambiente grfico, sera equivalente a manipular 'bashrc'. Adems Linux permite que el usuario decida que tipo de entorno Xwindow a utilizar, ya sea algn entorno de escritorio como KDE o Gnome o algn manejador de ventanas como Xfce o Twm. Dentro del Home del usuario, se crear un directorio o archivo escondido "." , por ejemplo '.gnome' o '.kde' donde vendr la configuracin personalizada del usuario para ese entorno. Dentro de este directorio suele haber varios directorios y archivos de configuracin. Estos son sumamente variados dependiendo de la distribucin y del entorno. No es recomendable modificar manualmente (aunque es perfectamente posible) estos archivos, es mucho mas sencillo modificar va las interfases grficas que permiten cambiar el fondo, protector de pantalla, estilos de ventanas, tamaos de letras, etc. Resumen de comandos y archivos de administracin de usuarios Existen varios comandos ms que se usan muy poco en la administracin de usuarios, que sin embargo permiten administrar aun ms a detalle a tus usuarios de Linux. Algunos de estos comandos permiten hacer lo mismo que los comandos previamente vistos, solo que de otra manera, y otros como 'chpasswd' y Elaborado por: Ing Carlos Alberto Jarquin 18

UNI-COMPUFEC Linux

Administracion de Servidores

'newusers' resultan muy tiles y prcticos cuando de dar de alta a mltiples usuarios se trata. A continuacin te presento un resumen de los comandos y archivos vistos en este tutorial ms otros que un poco de investigacin

Comandos de administracin y control de usuarios


Adduser Chage Chpasswd Id Gpasswd Groupadd Groupdel Groupmod Groups Newusers Useradd Userdel Usermod Ver useradd Permite cambiar o establecer parmetros de las fechas de control de la contrasea. Actualiza o establece contraseas en modo batch, mltiples usuarios a la vez. (se usa junto con newusers) Muestra la identidad del usuario (UID) y los grupos a los que pertence. Administra las contraseas de grupos (/etc/group y /etc/gshadow). Aade grupos al sistema (/etc/group). Elimina grupos del sistema. Modifica grupos del sistema. Muestra los grupos a los que pertence el usuario. Actualiza o crea usuarios en modo batch, mltiples usuarios a la vez. (se usa junto chpasswd) Aade usuarios al sistema (/etc/passwd). Elimina usuarios del sistema. Modifica usuarios.

Archivos de administracin y control de usuarios /etc/group Usuarios y sus grupos. /etc/gshadow Contraseas encriptadas de los grupos. /etc/login.defs Variables que controlan los aspectos de la creacin de usuarios. /etc/passwd Usuarios del sistema. /etc/shadow Contraseas encriptadas y control de fechas de usuarios del sistema.

Elaborado por: Ing Carlos Alberto Jarquin

19

UNI-COMPUFEC Linux

Administracion de Servidores

Sistemas de Archivos
Qu es una particin? La particin de un disco rgido se lleva a cabo una vez que el disco ha sido formateado en forma fsica pero antes de formatearlo en forma lgica. Implica la creacin de reas en el disco en las que los datos no se mezclarn. Por ejemplo, puede usarse para instalar diferentes sistemas operativos que no utilizan el mismo sistema de archivos. Por lo tanto habr, al menos, tantas particiones como sistemas operativos que usen diferentes sistemas de archivos. Si utiliza solamente un sistema operativo, es suficiente con tener una sola particin del tamao total del disco rgido, a menos que quiera crear varias particiones para tener, por ejemplo, varias unidades en las que los datos se mantengan separados. Existen tres tipos de particiones: particiones primarias, particiones extendidas y unidades lgicas. Un disco puede contener hasta cuatro particiones primarias (slo una de las cuales puede estar activa), o tres particiones primarias y una particin extendida. En la particin extendida, el usuario puede crear unidades lgicas (es decir, "simular" discos rgidos pequeos). Analicemos un ejemplo en el que el disco contiene una particin primaria y una particin extendida formada por tres unidades lgicas (ms adelante examinaremos particiones primarias mltiples): En el caso de los sistemas DO (DOS, Windows 9x), slo la particin primaria se puede arrancar. Por lo tanto, es la nica en la que se puede iniciar el sistema operativo. El particionamiento es el proceso de escribir los sectores que conformarn la tabla de particin (la cual contiene informacin acerca de la particin: tamao en sectores, posicin con respecto a la particin primaria, tipos de particin existentes, sistemas operativos instalados,...) Cuando se crea una particin, se le da un nombre de volumen que le permite ser identificada fcilmente. Master Boot Record (Registro Maestro de Arranque) El sector de arranque (denominado Master Boot Record [Registro Maestro de Arranque] o MBR) es el primer sector de un disco rgido (cilindro 0, cabezal 0, sector 1). ste contiene la tabla de la particin principal y el cdigo, llamadocargador de inicio, el cual, una vez cargado en la memoria, permitir que el sistema arranque. Una vez cargado en la memoria, este programa determinar desde qu particin del sistema se debe iniciar y ejecutar el programa (denominado bootstrap [arranque]) que iniciar el sistema operativo presente en la particin. Este sector del disco tambin contiene toda la informacin relacionada con el disco rgido (fabricante, nmero de serie, nmero de bytes por sector, nmero de sectores por clster, nmero de sectores,...). Por consiguiente, este sector es el ms importante del disco rgido. Tambin se usa en la instalacin del BIOS para reconocer al disco rgido. En otras palabras, sin l su disco rgido sera inservible y esto lo convierte en blanco favorito de los virus.

Elaborado por: Ing Carlos Alberto Jarquin

20

UNI-COMPUFEC Linux

Administracion de Servidores

Sistemas de archivos En esta seccin, es importante diferenciar entre el sistema de archivos FAT y la tabla de asignacin de archivos (FAT, por sus siglas en ingls). FAT es el nombre del sistema de archivos que utilizan los sistemas operativos DOS (DOS y Windows 95 as como Windows NT y OS/2, los cuales la admiten). Sistema operativo Sistema de archivos asociados DOS FAT16 Windows XP NTFS Windows 98 FAT32 Windows 95 FAT16 - FAT32 (para la versin OSR2) Windows NT NTFS OS/2 HPFS Linux Linux Ext2, Linux Ext3 Los sistemas de archivos FAT se caracterizan por utilizar una tabla de asignacin de archivos y utilizar clsters (o bloques). Los clsters son las unidades de almacenamiento ms pequeas en un sistema de archivos FAT. De hecho, un clster representa un nmero fijo de sectores en el disco. La FAT (File Allocation Table [Tabla de Asignacin de Archivos]) es el corazn del sistema de archivos. Se ubica en el sector 2 del cilindro 0, cabezal 1 (y se duplica en otro sector como precaucin en caso de accidente). Esta tabla registra los nmeros de los clsters que se utilizan, y en qu parte de los clsters se ubican los archivos. El sistema de archivos FAT admite discos o particiones de hasta un mximo de 2 GB, pero slo permite un mximo de 65536 clsters. Por eso, cualquiera sea el tamao de la particin o del disco, deben haber suficientes sectores por clster para que todo el espacio del disco pueda contenerse en 65525 clsters. Como resultado, cuanto ms grande sea el disco (o la particin), mayor ser el nmero de sectores por clster. El sistema de archivos FAT utiliza un directorio raz (representado en los sistemas operativos que utilizan este tipo de sistemas de archivos por el smbolo C:\), el cual debe ubicarse en un lugar especfico del disco rgido. Este directorio raz almacena informacin en los subdirectorios y los archivos que contiene. En el caso de un archivo, almacenar: el nombre del archivo el tamao del archivo la fecha y la hora en que el archivo se modific por ltima vez los atributos del archivo el nmero del clster con el que el archivo se ejecuta

Elaborado por: Ing Carlos Alberto Jarquin

21

UNI-COMPUFEC Linux

Administracion de Servidores

Particionando el DD con cfdisk


Para uso normal recomendamos el uso del sistema de archivos ext4, que es el sistema de archivos preseleccionado para aptosid y est bien mantenido. Abra una consola/xterm, entre como root (raz) y ejecute cfdisk: (si esta trabajando sobre una instalacin en DD, tiene que entrar la clave de root)
su cfdisk /dev/sda

La interfaz del usuario En la primer pantalla, cfdisk mostrar una tabla de las particiones corrientes con los nombres y datos sobre cada particin. Al fondo de la pantalla hay unos botones de comandos. Para cambiar entre particiones, use las flechas arriba y abajo. Para cambiar entre comandos, usa las flechas izquierda y derecha Borrar una particin

Para borrar una particin, resaltarlo con las flechas de arriba/abajo y seleccionar el comando Elaborado por: Ing Carlos Alberto Jarquin 22

UNI-COMPUFEC Linux
Borrar (Delete)

Administracion de Servidores

con las flechas izquierda/derecha, y oprimir


Entrar (Enter)

Crear una nueva particin

Para crear una nueva particin, use el comando


Nueva (New)

(seleccionarlo con las flechas izquierda/derecha, y oprimir Entrar). Tiene que decidir entre una particin primaria y una lgica. Si desea una particin lgica, el programa crear automticamente una particin extendida. Entonces tiene que escoger el tamao de la particin (en MB). Si no puede entrar un valor en MB, regrese a la pantalla principal con la tecla Esc, y seleccione MB con el comando
Unidades (Units).

Elaborado por: Ing Carlos Alberto Jarquin

23

UNI-COMPUFEC Linux Tipo de particin

Administracion de Servidores

Para fijar el tipo de una particin a Linux swap o Linux, resaltar la particin actual, y pulse sobre el comando:
Tipo (Type)

Le mostrar una lista de diferentes tipos. Oprima el Espacio, y le mostrar an ms. Ubique el tipo que necesite, y entre el nmero en el prompt. (Linux swap es Tipo 82; En sistemas de archivos Linux se usa el tipo 83)

Elaborado por: Ing Carlos Alberto Jarquin

24

UNI-COMPUFEC Linux

Administracion de Servidores

Haga una particin arrancable No hay necesidad de hacer una particin arrancable, pero algunos sistemas operativos necesitan eso. Resaltar la particin y seleccionar el comando. Nota: Cuando se instala en un disco duro externo, entonces al menos una particin debe ser arrancable:
Arrancable (Bootable)

Escriba el resultado en el disco. Cuando est listo, puede escribir los cambios usando el comando Escribir (Write). La tabla de particiones ser escrita en el disco (si recibe un error respecto al DOS, puede ignorarlo). En vista de que esta destruir todos los datos en las particiones que ha borrado o cambiado, debe estar *muy, pero muy seguro* que esto es lo que desea antes de oprimir la tecla:
Entrar (Enter/Return)

Elaborado por: Ing Carlos Alberto Jarquin

25

UNI-COMPUFEC Linux

Administracion de Servidores

Salir Para salir del programa, seleccione el comando Salir (Quit). Despus de salir de cfdisk y antes de empezar a formatear o empezar la instalacin, debe volver a arrancar el ordenador para que aptosid pueda leer la nueva tabla de particiones.

Formatear particiones (despus de particionar con cfdisk)


Bsico Una particin tiene que tener un sistema de archivos. Linux sabe cmo usar varios sistemas de archivos. Hay Ext4, Ext2, ReiserFs y para los ms experimentados, los sistemas XFS y JFS. Ext2 es til como un formato de almacenamiento en vista de que hay un intrprete disponible para Windows para intercambiar datos. [Linux puede leer y escribir en sistemas FAT.] Para uso normal recomendamos el sistema de archivos ext3, que es el sistema de archivos preseleccionado para aptosid, y que est bien mantenido. Formatear Despus de cerrar el cfdisk regresamos a la consola. Para formatear, tiene que ser raz (root). Para formatear la particin root "/" y/o home, en este ejemplo hdb1, entramos: (si esta en una instalacin sobre el DD tiene que entrar la clave de raz (root) aqu): Elaborado por: Ing Carlos Alberto Jarquin 26

UNI-COMPUFEC Linux
su mkfs -t ext4 /dev/hdb1

Administracion de Servidores

Le har una pregunta, que se contesta con "yes" si est seguro de que ha escogido la particin correcta. Cuando termine el comando le dar el aviso de que el formateo ext4 fue correctamente escrito en el disco. Si no ve eso, probablemente algo fue mal en el particionamiento con cfdisk, o hdb1 no es una particin de Linux. En este caso, puede chequear con:
fdisk -l /dev/hdb

Permisos y propiedades en archivos y directorios


En este corto articulo tratamos el tema de como cambiar los permisos de ficheros y directorios en nuestro sistema Linux. Todo los comandos y ejemplos que se citan deben ejecutarse desde la linea de comandos en una terminal. Tambien decir que existen programas en modo grafico donde se puede conseguir lo mismo que aqui se explica a golpe de raton. Lo primero que hay que decir es que para conseguir toda la informacin sobre los comandos involucrados en el tema de permisos podeis consultar los comandos man chmod, man chown y man chgrp. Informacin de un archivo/directorio Cuando obtienemos informacin sobre un archivo/directorio con el comando ls, existen diferentes campos que te dicen que clase de permisos el archivo/directorio tiene. Ejemplo: [user@localhost]# ls -l -rwxr-x--- 1 pepito depart1 4348 Nov 24 16:19 test

En la primera columna se pueden ver una serie de letras y guiones -rwxr-x---, estas letras nos dicen quien en Elaborado por: Ing Carlos Alberto Jarquin 27

UNI-COMPUFEC Linux

Administracion de Servidores

el sistema, y que clases de permisos tiene el archivo test. Estas letras estn agrupadas en tres grupos con tres posiciones cada uno, ms una primera posicin que nos dice de que clase de archivo se trata (los mas normales (d) directorios, o (-) archivos de datos). En nuestro ejemplo la primera posicin es (-) con lo cual el archivo test, es un archivo de datos (binario/ejecutable en este ejemplo). El primer grupo de tres (rwx en nuestro caso) nos dice que clase de permisos tiene el dueo del fichero (u) (user/owner) El segundo grupo de tres (r-x en nuestro caso) nos dice que clase de permisos tiene el grupo del fichero (g) (group). Y el ltimo grupo de tres (--- en nuestro caso) nos dice que clase de permisos tienen todos los dems usuarios del sistema sobre este fichero (o)(others). r :significa permiso para leer w :significa permiso para escribir x :significa permiso para ejecutar La segunda columna pepito, nos dice quien es el dueo del fichero,(pepito en este caso). La tercera columna depart1, nos dice cual es el grupo del fichero (depart1 en este caso). La cuarta columna 4348, nos dice el tamao del fichero. La quinta columna Nov 24 16:19, nos dice cual es la fecha y hora de la ltima modificacin. La sexta columna test, nos dice cual es el nombre del fichero/directorio. Asi pues, el fichero test de nuestro ejemplo tiene los siguientes permisos: pepito puede leer, escribir/modificar, y ejecutar el fichero test. Los usuarios pertenecientes al grupo depart1 puede leer, y ejecutar pero no escribir/modificar. Los dems usuarios no pueden hacer nada, ni leerlo, ni escribir/modificar, ni ejecutarlo. Como cambiar los permisos/dueo/grupo de un archivo/directorio? Para cambiar el dueo del fichero se utiliza el comando : chown usuario fichero Para cambiar el grupo del fichero se utiliza el comando: chgrp grupo fichero Para cambiar los permisos se utiliza el comando: chmod permisos fichero Los permisos se pueden especificar de diferentes maneras, una serie de ejemplos, es lo mejor para comprenderlo: chmod ugo+rwx test (da permisos rwx a todos, user,group,others) chmod ugo-x test (quita permiso x (ejecucion) a todos, user,group,others) chmod o-rwx test (quita permisos rwx a others) chmod u=rwx,g=rx test (da permisos rwx a user, rx a group y ninguno a others) Asi podriamos continuar con todas las posibles combinaciones de letras, es cuestin de usar la imaginacin ;-) Existe otro metodo que utiliza numeros, en vez de letras para asignar permisos, la siguiente tabla nos puede ayudar un poco a comprender esta manera: r w x VALOR DECIMAL Elaborado por: Ing Carlos Alberto Jarquin 28

UNI-COMPUFEC Linux 000 001 010 011 100 101 110 111 0 (000 binario es 0 en decimal) 1 ......... 2 ......... 3 ......... 4 (100 binario es 4 en decimal) 5 ......... 6 ......... 7 (111 binario es 7 en decimal)

Administracion de Servidores

1 significa activado y 0 desactivado, o sea 101, activa r y x, y desactiva w. Sabiendo esto solo tenemos que usar el valor decimal para dar solo permisos de lectura y ejecucion, un ejemplo aclarara esto. chmod 750 test da permisos rwx al usuario (7=111) da permisos r-x al grupo (5=101) da permisos --- a los demas (0=000) Esto es todo por hoy, espero que tengan un poco mas claro lo de los permisos de ficheros en Linux y que le vayan perdiendo el miedo a la linea de comandos.

Configuracin de de los parmetros de Red

Configuracion de los parmetros de red.


Introduccin Configurar los parmetros de red en una estacin de trabajo GNU/Linux o un servidor no es realmente complicado. Solamente requerir de algunos conocimientos bsicos sobre redes y cualquier editor de texto simple. Procedimientos Deteccin y configuracin del sustento fsico (hardware). La deteccin del sustento fsico (hardware) es realizada o bien por el programa de instalacin, o bien a travs de kudzu, un servicio que inicia con el sistema y que se encarga de detectar y configurar los dispositivos de sustento fsico (hardware) instalados. En trminos generales, no hace falta configurar parmetro alguno mientras los dispositivos de red sean compatibles y exista un controlador para la versin del ncleo (kernel) ejecutado. Elaborado por: Ing Carlos Alberto Jarquin 29

UNI-COMPUFEC Linux

Administracion de Servidores

Si acaso no fuese detectado el dispositivo de red debido a la ausencia de kudzu, es posible configurar todo manualmente. La marca de la tarjeta de red es lo que menos interesa, lo que es importante es que se determine con exactitud que circuito integrado auxiliar(chipset) utiliza la tarjeta de red. Esto puede determinarse examinando fsicamente la tarjeta de red o bien examinando a detalle la salida en pantalla que se obtiene al ejecutar el siguiente mandato: lspci | grep Ethernet Lo anterior devuelve una salida similar a la siguiente (en el caso de una tarjeta 3Com 905 C) Ethernet controller: 3Com Corporation 3c905C-TX [Fast Etherlink] (rev 120). Debe modificarse con un editor de textos el fichero /etc/modules.conf (ncleos de la serie 2.4) o /etc/modprobe.conf (ncleos de la serie 2.6). Debe verificarse que el mdulo correspondiente a la tarjeta de red realmente este especificado de forma correcta. Ejemplo: alias eth0 3c59x Si se realiz alguna edicin de este fichero, deber de ejecutarse el siguiente mandato, a fin de actualizar dependencias: depmod a Si utiliza un ncleo de la serie 2.4.x o 2.6, la lista de mdulos existentes en el sistema que se pueden utilizar para distintos circuitos integrados auxiliares (chipset) de distintos modelos de tarjetas de red se puede obtener listando el contenido del directorio/lib/modules/[versin del ncleo]/kernel/drivers/net/. Ejemplo: ls /lib/modules/2.6.9-42.0.2.EL/kernel/drivers/net/

Asignacin de parmetros de red. Antes de proseguir tenemos que detener el servicio NetworkManager de estar presente Para berificar si esta en ejecuccion: /sbin/service NetworkManager status Para detenerlos: /sbin/service NetworkManager status Para que no inicie con el sistema: chconfig NetworkManager off nombre del anfitrin (hostname) del sistema se definir dentro del fichero/etc/sysconfig/network del siguiente modo: NETWORKING=yes HOSTNAME=nombre.dominio Direccin IP, mscara de subred y puerta de enlace. Debe modificarse con cualquier editor de textos, y verificar que sus parmetros de red sean los correctos, el Elaborado por: Ing Carlos Alberto Jarquin 30

UNI-COMPUFEC Linux

Administracion de Servidores

fichero localizado en la ruta /etc/sysconfig/network-scripts/ifcfg-eth0. Ejemplo: DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.50 NETMASK=255.255.255.0 GATEWAY=192.168.1.254 Los parmetros anteriores son proporcionados por el administrador de la red local en donde se localice la mquina que est siendo configurada, o bien definidos de acuerdo a una planificacin previamente establecida. El administrador de la red deber proporcionar una direccin IP disponible (IPADDR) y una mscara de la subred (NETMASK). Para el cliente dns es necesario configurar correctamente el archivo /etc/resolv.conf para poder resolver los nombres de los servidores en Internet. Aqu se muestra un ejemplo de configuracin de este archivo: domain jerocu.net nameserver 194.179.50.2 nameserver 194.179.1.100 domain: dominio de Internet al que pertenece la mquina nameserver: direcci IP del servidor de nombres a usar. Si no se conoce este dato, se debe preguntar al proveedor. Es posible usar ms de un servidor de nombres, siendo habitual usar dos, uno como primario y otro como secundario.

Comprobaciones. Despus de hacer configurado todos los parmetros de red deseados, solo deber de ser reiniciado el servicio de red, ejecutando lo siguiente: service network restart Basta solamente comprobar si hay realmente conectividad. Puede ejecutarse el mandato ping hacia cualquier direccin de la red local para tal fin. ping 192.168.1.254 Las interfaces y la informacin de las mismas se puede examinar utilizando: Ifconfig

Alta de direcciones IP virtuales


El alta de direcciones IP es verdaderamente simple. Basta definir solamente la direccin IP, mscara de Elaborado por: Ing Carlos Alberto Jarquin 31

UNI-COMPUFEC Linux

Administracion de Servidores

subred y el nombre del dispositivo. El fichero se genera igualmente con el nombre del dispositivo con el prefijo ifcfg-. Ejemplo del contenido del fichero/etc/sysconfig/network-scripts/ifcfg-eth0:0 que corresponde al primer dispositivo virtual del primer dispositivo ethernet: DEVICE=eth0:0 IPADDR=192.168.2.254 NETMASK=255.255.255.0 La comprobacin, al ejecutar el mandatoifconfig, deber regresar algo como lo siguiente eth0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:192.168.1.254 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:264830 errors:0 dropped:0 overruns:0 frame:0 TX packets:255396 errors:0 dropped:0 overruns:0 carrier:0 collisions:348 txqueuelen:1000 RX bytes:42375618 (40.4 MiB) TX bytes:20306080 (19.3 MiB) Interrupt:11 Base address:0xd000 eth0:0 Link encap:Ethernet HWaddr 00:01:02:03:04:05 inet addr:192.168.2.254 Bcast:192.168.2.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 Interrupt:11 Base address:0xd000

lo

Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:2590 errors:0 dropped:0 overruns:0 frame:0 TX packets:2590 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:3327899 (3.1 MiB) TX bytes:3327899 (3.1 MiB)

Configuracion de Servidores de Red Externos


Servidor DNS: bind
En la mayora de las redes modernas, incluyendo la Internet, los usuarios localizan paginas web por su nombre de dominio (ej. www.google.com),esto permite al usuario acceder a las millones de paginas web de la Internet sin necesidad de recordar todas y cada una de las direcciones IP asociadas al nombre de la pagina que desea visitar. Una forma de solucionar este problema es mediante la complementacin de un mecanismo que al momento que un usuario pregunte por el nombre de una pagina web este servidor conozca que direccin IP le corresponde al sitio web por el cual pregunta el usuario. El mecanismo del cual hablamos es Elaborado por: Ing Carlos Alberto Jarquin 32

UNI-COMPUFEC Linux

Administracion de Servidores

un servidor de nombres mayormente conocido como servidor DNS (Domain Name Server) As mismo un servidor DNS tiene la funcin de almacenar la informacin asociada a los nombres de dominio existentes por los cuales el usuario pregunta, por ejemplo:
www.linuxparatodos.net www.gmail.com www.yahoo.com

Por lo tanto el servidor DNS es capaz de asociar distintos tipos de informacin a cada nombre, los usos ms comunes son la asignacin de nombres de dominio a direcciones IP y la localizacin de los servidores de correo electrnico de cada dominio. Cuando un equipo cliente solicita informacin desde un servidor de nombres, usualmente se conecta al puerto 53 Falsamente se asocia a un DNS con una base de datos, cosa que es totalmente falso,pues los principios fundamentales de las bases de datos especifican que no pueden contener datos redundantes es decir, los datos no pueden ser la misma informacin la cual es almacenada varias veces en la misma base de datos El mapeo de nombres a direcciones IP es ciertamente la funcin ms conocida de los servidores DNS. Por ejemplo, si la direccin IP del sitio www.linuxparatodos.net es 254.192.169.20, la mayora de la gente para acceder a ella teclea en un navegador web la direccin web www.linuxparatodos.net y no la direccin IP. La institucin encargada de asignar nombres de dominios en Internet es conocida como NIC (acrnimo de Network Information Center o Centro de Informacin sobre la Red) esta institucin es la encargada de asignar los nombres de dominio en Internet, ya sean nombres de dominio genricos o por pases, permitiendo personas o empresas montar sitios de Internet mediante a travs de un ISP mediante un DNS. Tcnicamente existe un NIC por cada pas en el mundo y cada uno de stos es responsable por todos los dominios con la terminacin correspondiente a su pas. Por ejemplo: NIC Mxico es la entidad encargada de gestionar todos los dominios con terminacin .mx, la cual es la terminacin correspondiente asignada a los dominios de Mxico. FQDN (acrnimo de Fully Qualified Domain Name o Nombre de Dominio Plenamente Calificado) es un Nombre de Dominio ambiguo que especifica la posicin absoluta del nodo en el rbol jerrquico del DNS. Se distingue de un nombre regular porque lleva un punto al final. Ejemplos:
www.hotmail.com www.google.com

Otros Conceptos NIC (Network Information Center). NIC (acrnimo de Network Information Center o Centro de Informacin sobre la Red) es una institucin encargada de asignar los nombres de dominio en Internet, ya sean nombres de dominio genricos o por pases, permitiendo personas o empresas montar sitios de Internet mediante a travs de un ISP mediante un DNS. Tcnicamente existe un NIC por cada pas en el mundo y cada uno de stos es responsable por todos los dominios con la terminacin correspondiente a su pas. Por ejemplo: NIC Mxico es la entidad encargada de gestionar todos los dominios con terminacin .mx, la cual es la terminacin correspondiente asignada a los dominios de Mxico. FQDN (Fully Qualified Domain Name). Elaborado por: Ing Carlos Alberto Jarquin 33

UNI-COMPUFEC Linux

Administracion de Servidores

FQDN (acrnimo de Fully Qualified Domain Name o Nombre de Dominio Plenamente Calificado) es un Nombre de Dominio ambiguo que especifica la posicin absoluta del nodo en el rbol jerrquico del DNS. Se distingue de un nombre regular porque lleva un punto al final.

Componentes de un DNS
Un DNS se compone de tres componentes bsicos, los cuales son:

Cliente DNS Servidor DNS Zonas de Autoridad

Cliente DNS
Cuando hablamos del cliente DNS nos referimos al host o usuario que hace la peticin; o sea, a la computadora del usuario la cual genera la peticin al DNS preguntando por el nombre de algn dominio existente en internet.

Servidor DNS
Existen 3 tipos de servidores bsicos de un DNS los cuales son:

Servidor Maestro Servidor Esclavo Servidor de Cache

Servidor Primario o Maestro Un servidor DNS maestro almacena los registros de las zonas originales y de autoridad. Ademas el servidor DNS maestro es el encargado de responder a las peticiones hechas por otros servidores DNS Servidor Secundario o Esclavo Un servidor DNS esclavo tambin tiene la capacidad de responder a las peticiones hechas por un Cliente DNS as como otro servidor de DNS, la diferencia radica en que los servidores esclavos obtienen la informacin acerca de los nombres de dominio desde los servidores maestros Servidor De Cache Este ofrece servicios de resolucin de nombres como respuesta a las peticiones hechas por los clientes de dns, dichos servicios de resolucin de nombres son guardados cierto espacio de tiempo para poder acceder a dicha informacin mas rpidamente. Este tipo de servidores no tiene ninguna autoridad sobre las zonas de autoridad. Los servidores DNS son los encargados de hacer las consultas producto de las peticiones solicitadas por los clientes DNS. Para ello el servidor DNS hace uso de 2 tipos de consultas:

Consultas Iterativas Consultas Recursivas

Consultas Recursiva Elaborado por: Ing Carlos Alberto Jarquin 34

UNI-COMPUFEC Linux

Administracion de Servidores

Una consulta iterativa funciona de la siguiente manera: Imagine que tenemos un cliente DNS el cual hace la peticin a nuestro servidor dns-1 sobre el dominio www.ejemplo.com, nuestro servidor dns-1 no sabe quien es www.ejemplo.com pero el conoce quien puede tener ese dominio por lo que ahora dns-1 le hace la peticin a dns-2, dns-2 le responde a dns-1 que no sabe quien es www.ejemplo.com pero el sabe quien puede tener ese dominio registrado, por lo que ahora dns-2 le hace la peticin a dns-3, dns-3 responde la peticin hecha por dns-2 contestando que el si conoce quien es www.ejemplo.com por lo que dns-3 envi la direccin IP asociada a www.ejemplo.com a dns-2, dns-2 le responde la peticin a dns1 y dns-1 a su vez le responde a el cliente DNS. Consultas Iterativas Una consulta recursiva funciona de la siguiente manera: Imagine que tenemos un cliente DNS el cual hace la peticin a nuestro servidor dns-1 sobre el dominio www.ejemplo.com, nuestro servidor dns-1 no sabe quien es www.ejemplo.com pero el conoce quien puede tener ese dominio por lo que dns-1 le responde al Cliente DNS que le pregunte al dns-2, dns-2 no sabe quien es www.ejemplo.com pero el conoce quien puede tener ese dominio por lo que dns-2 le responde al Cliente DNS que le pregunte al dns-3, dns-3 sabe quien es www.ejemplo.com por lo que dns-3 responde a la peticin hecha por el Cliente DNS devolviendo la IP que le corresponde a www.ejemplo.com. Diferencias entre las Consultas Iterativas contra las Consultas Recursivas Las diferencias entre las consultas iterativas contras las recursivas son: Cuando se hacen consultas iterativas quien asume toda la carga es nuestro cliente DNS (nuestra maquina) Cuando se hacen consultas recursivas quien asume toda la carga es el servidor DNS pues el es el encargado de proporcionar una respuesta completa a la peticin hecha por el Cliente dns Conociendo esta informacin se puede concluir que las consultas recursivas son mejores que las consultas iterativas, debido a que las consultas recursivas liberan a nuestro cliente DNS (nuestra maquina) de la tarea de responder las peticiones solicitadas por el mismo, haciendo que toda la carga la asuma el servidor DNS.

Zonas de Autoridad
Las zonas de autoridad contienen las caractersticas sobre las cuales nuestro dominio actuara, en ella se configuran los aspectos importantes as como las opciones especificas de cada zona, estas configuraciones hechas a las zonas son cargadas desde el servidor maestro. La informacin de cada Zona de Autoridad es almacenada de forma local en un fichero en el Servidor DNS. Este fichero puede incluir varios tipos de registros como pueden ser: CNAME A NS MX PTR Canonical Name (Nombre Cannico) Se usa para crear nombres de hosts adicionales, o alias, para los hosts de un dominio. Address (Direccin) Este registro se usa para traducir nombres de hosts a direcciones IP. Name Server (Servidor de Nombres) Define la asociacin que existe entre un nombre de dominio y los servidores de nombres que almacenan la informacin de dicho dominio. Cada dominio se puede asociar a una cantidad cualquiera de servidores de nombres. Mail Exchange (Intercambiador de Correo) Define el lugar donde se aloja el correo que recibe el dominio. Pointer (Indicador) Tambin conocido como 'registro inverso', funciona a la inversa del registro A, 35

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

traduciendo IPs en nombres de dominio. SOA Start of authority (Autoridad de la zona) Proporciona informacin sobre la zona. Host Information (Informacin del sistema informtico) Descripcin del host, permite que la gente HINFO conozca el tipo de mquina y sistema operativo al que corresponde un dominio. TXT Text - ( Informacin textual) Permite a los dominios identificarse de modos arbitrarios. LOC Localizacin - Permite indicar las coordenadas del dominio. Generalizacin del registro MX para indicar los servicios que ofrece el dominio. Obsoleto en favor WKS de SRV. SRV Servicios - Permite indicar los servicios que ofrece el dominio.

Sobre BIND (Berkeley Internet Name Server)


BIND es el servidor DNS mas comnmente implementado en Sistemas Operativos Linux, y actualmente el mas usando en Internet. Originalmente BIND naci a principios de los aos 80 bajo el patrocinio de DARPA (Agencia de Investigacin de Proyectos Avanzados de Defensa) agencia del Departamento de Defensa de los Estados Unidos, el cual fue desarrollado en la Universidad de California, Berkeley por cuatro estudiantes. A mediados de los aos 80 su desarrollo paso a manos de los empleados de DEC (Digital Equipment Corporation, compaa que mas tarde seria adquirida por Compaq y esta a su vez comprada por HP) Paul Vixie,empleado de DEC continu trabajando en BIND luego de desvincularse de DEC. Ms adelante ayudara a fundar la ISC (Internet Systems Consortium), la cual se convirti en la responsable del mantenimiento de BIND. El desarrollo de BIND 9 fue realizado con el auspicio conjunto del rea comercial y militar. La mayora de las funcionalidades de BIND 9 fueron impulsadas por proveedores de UNIX quienes queran asegurar que BIND se mantuviera competente con la oferta de Microsoft en el sector de soluciones DNS. La versin mas actual de BIND, en particular la versin 9.0 fue reescrita desde cero, esto con el fin de reparar algunas de sus funcionalidades arquitectnicas de la misma (problemas en la programacin de Bajo Nivel) que agrega caractersticas importantes como: TSIG, notificacin DNS, nsupdate, IPv6, rndc flush, vistas, procesamiento en paralelo, y una arquitectura mejorada en cuanto a portabilidad.

Proceso de instalacin del servidor DNS


La instalacin de un servidor DNS requiere de los siguientes paquetes
[BASH]# yum install -y bind bind-chroot bind-libs bind-utils caching-nameserver

Recuerde que este comando se debe ejecutar como root

Ficheros de configuracin del servidor DNS


La configuracin del servidor DNS depender en gran medida de los siguientes ficheros.
/var/named/chroot/etc

Elaborado por: Ing Carlos Alberto Jarquin

36

UNI-COMPUFEC Linux En esta ruta se deber crear el fichero


named.conf /var/named/chroot/var/named

Administracion de Servidores

En esta ruta se crearan los ficheros de zona que sern invocados por named.conf Creacin de los ficheros de zona Procederemos con la creacin de nuestras zonas de dominio, para ello teclearemos en terminal lo siguiente:
[BASH]# touch /var/named/chroot/var/named/tuDominio.com.zone [BASH]# touch /var/named/chroot/var/named/1.168.192.in-addr-arpa.zone

Lo que hicimos fue crear dos ficheros vacos a los cuales nombramos
tuDominio.com.zone

y
1.168.192.in-addr-arpa.zone

El siguiente paso ahora sera aadir las instrucciones para que puedan ser identificados como ficheros de zona y que a su vez puedan ser invocados por named.conf. Editando el fichero tuDominio.com.zone El siguiente paso sera editar el fichero tuDominio.com.zone al cual deberemos aadir el siguiente contenido.
[BASH]# nano /var/named/chroot/var/named/tuDominio.com.zone ---------------------------------------------------------------------$TTL 86400 @ IN SOA dns1.tuDominio.com.com. admin.tuDominio.com. ( 2008061001; Numero de Serie 28800; Tiempo de Refresco 7200; Tiempo de Reintentos 604800; Expiracion 86400; Tiempo Total de Vida ) @ IN NS dns1 @ IN MX 10 correo @ IN A 192.168.1.10 dns1 IN A 192.168.1.10 correo IN A 192.168.1.11

Los parmetros mas importantes del fichero anterior son descritos en la siguiente tabla: dns1 Admin tuDominio.com La palabra dns1 se refiere al nombre del equipo que fungir como servidor DNS, es este caso hacemos el supuesto que nuestro equipo tiene asignada la direccin IP 192.168.1.10 El nombre admin corresponde al usuario que administrara el servidor DNS. ste es nuestro dominio referencial con el que estamos trabajando,otros ejemplos de dominio son: * linuxparatodos.net 37

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

* gmail.com Recuerde no olvidar poner el punto al final de las sentencias: PUNTO AL FINAL dns1.tuDominio.com. <---------root.tuDominio.com. <---------Estamos haciendo el supuesto que ademas de un DNS contamos con un servidor de Correo correo electrnico al cual hemos asignado la direccin Ip 192.168.1.11 NS (Name Server) Asigna Nombre al DNS MX (Mail Registro de Mail Exchange, el cual indica a dnde debe ser dirigido el correo Exchanger) A (Address) Registro de direccin que especifica una direccin IP que se debe asignar a un nombre SOA (Start of Registro de recursos que declara informacin importante de autoridad relacionada con Authority) espacios de nombres al servidor de nombres Editando el fichero 1.168.192.in-addr.arpa.zone A este fichero deberemos aadir el siguiente contenido.
[BASH]# nano /var/named/chroot/var/named/ 1.168.192.in-addr.arpa.zone -----------------------------------------------------------------------$TTL 86400 @ IN SOA dns1.tuDominio.com. root.tuDominio.com. ( 2008061002; Numero de Serie 28800; Tiempo de Refresco 7200; Tiempo de Reintentos 604800; Expiracion 86400; Tiempo Total de Vida ) @ IN NS dns1.tuDominio.com. 10 IN PTR dns1.tuDominio.com.

El numero 10 hace referencia al ultimo octeto de la direccin IP asignada a nuestro DNS, nos referimos a la direccin IP 192.168.1.10. Por ejemplo si la direccin IP del servidor DNS fuera la 254.168.1.25, el numero que debiera ir colocado en la parte inferior de su izquierda debiera ser el numero [25]. Ejemplo:
25 IN PTR dns1.tuDominio.com.

Creacin y configuracin del fichero named.conf Abra una terminal y genere el fichero named.conf dentro de la ruta /var/named/chroot/etc/
[BASH]# touch /var/named/chroot/etc/named.conf

Una vez creado asegrese de agregarle los siguientes propietarios


[BASH]# chown root:named named.conf

Al terminar solo deber aadir al fichero el siguiente contenido


[BASH]# nano named.conf ---------------------------------------------------------------------options { directory "/var/named/";

Elaborado por: Ing Carlos Alberto Jarquin

38

UNI-COMPUFEC Linux
dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; allow-recursion { 127.0.0.1; 192.168.1.0/24; }; forwarders { 200.33.146.209; 200.33.146.217; }; forward first; }; zone "." { type hint; file "named.ca"; }; zone "localhost" { type master; file "localhost.zone"; allow-update { none; }; }; zone "tuDominio.com" { type master; file "tuDominio.com.zone"; allow-update { none; }; }; zone "1.168.192.in-addr.arpa" { type master; file "1.1.192.in-addr.arpa.zone"; allow-update { none; }; };

Administracion de Servidores

Los parmetros mas importantes del fichero anterior son descritos en la siguiente tabla Define las caractersticas de una zona, tal como la ubicacin de su archivo de configuracin y opciones especificas de la zona. "tuDominio.com" Aqu debe ir el nombre de nuestro dominio file "tuDominio.com.zone"; Contiene los ficheros de configuracin de tus zonas de tu dominio. allow-update{ none; }; Especifica los host que estn autorizados para actualizar dinamicamente la Zone Elaborado por: Ing Carlos Alberto Jarquin 39

UNI-COMPUFEC Linux

Administracion de Servidores

"1.168.192.in-addr.arpa" type master; file "1.168.192.inaddr.arpa.zone";

informacin en sus zonas. Por defecto, no se autoriza la actualizacin dinmica de la informacin. Esto se logra aadiendo la palabra none. IP de resolucin inversa. En este caso estamos usando nuestra IP referencial 192.168.1.10 Designa el servidor de nombres actual como el servidor autoritario para esa zona Contiene los ficheros de configuracin de tus zonas de tu dominio.

Iniciar , detener o reiniciar el servidor DNS


Para iniciar el servidor FTP por primera vez solo deber teclear en terminal el siguiente comando:
[root@ localhost ~]# /etc/init.d/named start

Igualmente existen opciones ya sea para reiniciar, detener, recargar o conocer el status en el que se encuentra el servidor DNS. Estas opciones pueden ser consultadas en la siguiente tabla: start Inicia el servicio stop Detiene el servicio Reinicia el servicio.-La diferencia con reload radica en que al ejecutar un restart este mata todos restart los procesos relacionado con el servicio y los vuelve a generar de nueva cuenta Recarga el servicio.-La diferencia con restart radica en que al ejecutar un reload este solamente carga las actualizaciones hechas al fichero de configuracin del servicio sin necesidad de matar reload los procesos relacionados con el mismo, por lo que podra entenderse que hace el cambio en caliente. condrestart Reinicio Condicional.- Solamente se inicia si el servicio se encuentra ejecutndose. status Da a conocer el estado en el que se encuentra el servicio Como alternativa tambin podemos ocupar el siguiente comando para iniciar el servidor FTP
[root@ localhost ~]# service named start

Y de igual manera podemos usar las opciones antes descritas en la tabla anterior. Recuerde que estos comandos se ejecutan como root. Para verificar que bind esta cargando las zonas, deberemos ejecutar el siguiente comando
[BASH]#tail -80 /var/log/messages | grep named

Etapa de Pruebas
Compruebe que el dominio resuelve correctamente ejecutando los siguientes comandos:
[BASH]# host tuDominio.com 192.168.1.10 [BASH]# dig @192.168.1.10 tuDominio.com [BASH]# dig @192.168.1.10 tuDominio.com MX

Al ejecutar el comando dig @192.168.1.10 tuDominio.com MX deberamos observar lo siguiente:


[BASH]# dig @192.168.1.10 tuDominio.com MX ; <<>> DiG 9.5.0rc1 <<>> @192.168.1.10 tuDominio MX

Elaborado por: Ing Carlos Alberto Jarquin

40

UNI-COMPUFEC Linux
; (1 server found) ;; global options: printcmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32324 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1 ;; QUESTION SECTION: ; tuDominio.com. IN ;; ANSWER SECTION: tuDominio.com. 86400 IN ;; AUTHORITY SECTION: tuDominio.com. 86400 IN ;; ADDITIONAL SECTION: tuDominio.com. 86400 IN A MX MX NS 10 mail. tuDominio.com. dns1.tuDominio.com.

Administracion de Servidores

192.168.1.10

;; Query time: 1 msec ;; SERVER: 192.168.1.117#53(192.168.1.10) ;; WHEN: Thu Jun 12 17:39:33 2008 ;; MSG SIZE rcvd: 99

Servidor Web: Apache2


Se recomienda desabilitar SE-linux prebiamente

Cmo desactivo SELinux


Aunque no es recomendado, puede desactivar SELinux de 3 maneras diferentes: Si desea desactivar SELinux _completamente_, debe iniciar el sistema con el parmetro del kernel SELINUX=0. Editar el archivo /etc/sysconfig/selinux y cambiar la Elaborado por: Ing Carlos Alberto Jarquin 41

UNI-COMPUFEC Linux

Administracion de Servidores

directiva SELINUX=enforcing por SELINUX=disabled, y la prxima vez que reinicie su sistema, SELinux habr sido desactivado _completamente_. Puede desactivar _temporalmente_ las polticas SELinux con el siguiente comando: $ setenforce 0 Introduccin. Acerca del protocolo HTTP. HTTP (Hypertext Transfer Protocol, o Protocolo de Trasferencia de Hipertext), es el mtodo utilizado para transferir o transportar informacin en la Red Mundial (WWW, World Wide Web). Su propsito original fue el proveer una forma depublicar y recupertar documentos HTML. El desarrollo del protocolo fue coordinado por World Wide Web Consortium y la IETF (Internet Engineering Task Force, o Fuerza de Trabajo en Ingeniera de Internet), culminando con la publicacin de variso RFC (Request For Comments), de entre los que destaca el RFC 2616, mismo que define la versin 1.1 del protocolo, que es el utilizado hoy en da. HTTP es un protocolo de solicitud y respuesta a travs de TCP, entre agentes de usuario (Navegadores, motores de ndice y otras herramientas) y servidores, regularmente utilizando el puerto 80. Entre la comunicacin entre stos puede intervenir como servidores Intermediarios (Proxies), puertas de enlace y tneles. URL: http://tools.ietf.org/html/rfc2616 Acerca de Apache. Apache es un servidor HTTP, de cdigo abierto y licenciamiento libre, que funciona en Linux, sistemas operativos derivados de Unix, Windows, Novell Netware y otras plataformas. Ha desempeado un papel muy importante en el crecimiento de la red mundial, y continua siendo el servidor HTTP ms utilizado, siendo adems el servidor de facto contra el cual se realizan las pruebas comparativas y de desempeo para otros productos competidores. Apache es desarrollado y mantenido por una comunidad de desarrolladores auspiciada por Apache Software Foundation. URL: http://www.apache.org/ Sustento lgico necesario. Instalacin a travs de yum. Si se utiliza de CentOS 4 o White Box Enterprise Linux 4, solo basta utilizar lo siguiente: yum -y install httpd Si se desea que Apache incluya soporte para PHP/MySQL, Perl, Python y SSL/TLS, solo bastar ejecutar: yum -y install php php-mysql mod_perl mod_python mod_ssl Instalacin a travs de Up2date Si se utiliza de Red Hat Enterprise Linux 4, solo basta utilizar lo siguiente: up2date -i httpd

Si se desea que Apache incluya soporte para PHP/MySQL, Perl, Python y SSL, solo bastar utilizar: up2date -i php php-mysql mod_perl mod_python mod_ssl Iniciar servicio y aadir el servicio al arranque del sistema. Apache es un servicio que por fortuna solo es necesario instalar e iniciar. No requiere modificaciones adicionales para su funcionamiento bsico. Para aadir el servicio a los servicios que inician junto con el sistema, solo basta ejecuta: Elaborado por: Ing Carlos Alberto Jarquin 42

UNI-COMPUFEC Linux

Administracion de Servidores

chkconfig httpd on Para iniciar el servicio por primera vez, solo basta utilizar: service httpd start Para reiniciar el servicio, considerando que se interrumpirn todas las conexiones establecidas en ese momento, solo basta utilizar: service httpd restart Si el servicio ya est trabajando, tambin puede utilizar reload a fin de que Apache vuelva a leer y cargar la configuracin sin interrumpir el servicio, y, por ende, las conexiones establecidas. service httpd reload Para detener el servicio, solo basta utilizar: service httpd stop

Directtivas de entorno global


ServerRoot: Indica el directorio en el que se monta la raz del servidor, es decir, los archivos para funcionamiento del servidor. Sintaxis: ServerRoot /usr/local/apache PidFile: Indica el archivo sobre el que el servidor debe registrar su identificacin de proceso cuando arranca. Sintaxis: PidFile run/httpd.pi TimeOut: Especifica el numero de segundos desde que se recibe la peticin y se enva la seal de time out. Sintaxis: TimeOut 120d StartServers: Indica el nmero de servidores que se iniciarn al arrancar. Sintaxis: StartServers 8 MaxClients: Indica el nmero mximo de solicitudes simultneas que el servidor puede atender. Sintaxis: MaxClients 256

Directivas para el servidor principal


Listen: Indica el puerto TCP de atencin del servidor, el puerto por defecto es 80, sin embargo puede Elaborado por: Ing Carlos Alberto Jarquin 43

UNI-COMPUFEC Linux funcionar en puertos mayores de 1023. Sintaxis: Listen 80

Administracion de Servidores

User / Group: Indican el nombre de usuario y grupo que pueden lanzar la ejecucin de httpd. Generalmente no se utiliza el user root. Sintaxis: User apache / Group apache ServerAdmin: Define la direccin de correo electrnico que se mostrara con algunos cdigos de error del servidor. Sintaxis: ServerAdmin root@localhost DocumentRoot: Define el contenedor principal de archivos del servidor. Sintaxis: DocumentRoot /var/www/html Contenedores Directory: Son aplicados a cada directorio que apache tiene acceso. Sintaxis: </Directory /> Options FollowSymLinks AllowOverride None </Directory> DirectoryIndex: Indica el nombre del archivo tomado como inicio por defecto, este es conocido como indice. Sintaxis: DirectoryIndex index.html index.htn index.php

Directorios virtuales.
Elaborado por: Ing Carlos Alberto Jarquin 44

UNI-COMPUFEC Linux

Administracion de Servidores

Si, por ejemplo, se quisiera aadir el alias para un directorio localizado en /var/ftp/pub/ y el cual queremos visualizar como el directorio /pub/ en Apache, solo bastara crear un fichero que denominaremos arbitrariamente como el fichero denominado/etc/httpd/conf.d/aliases.conf con el siguiente contenido: Alias /pub /var/ftp/pub Si trata de acceder hacia este nuevo directorio virtual con el navegador, notar que no est permitido el acceso. Para poder acceder deber haber un documento ndice en el interior (index.html, index.php, etc) o bien que dicho directorio sea configurado para mostrar el contenido del siguiente modo: Alias /pub /var/ftp/pub <Directory "/var/ftp/pub"> Options Indexes Includes FollowSymLinks AllowOverride all </Directory> El parmetro Indexes indica que se deber mostrar el contenido del directorio. El parmetro FollowSymLinks posibilita poder colocar enlaces simblicos dentro del directorio los cuales se seguirn. El parmetro Includes especifica que se permite la utilizacin de los SSI (Server Side Includes) que posibilitan utilizar funciones como autenticacin. El parmetro AllowOverrride all posibilita utilizar ficheros .htaccess. Reinicie o recargue Apache y acceda hacia http://127.0.0.1/pub/ con cualquier navegador de red y visualice el resultado.

Virtual Host
En una instalacin de Apache con un solo sitio se emplea el parmetro ServerName para indicar el sitio al cual se esta administrando informacin, sin embargo , cuando se requiere administrar varios sitios se utiliza el parmetro VirutalHost. NameVirtualHost , VirtualHost El primer paso para configurar "Virtual Hosting" es habilitar eel parmetro NameVirtualHost. NameVirtualHost 127.0.0.1 Posteriormente es necesario definir las respectivas secciones para cada VirtualHost <Virtual Host 127.0.0.1> ServerName www.compufec.org DocumentRoot /www/compufec/ ErrorLog /www/osmosislatina/log_errores </Virtual Host> <Virtual Host 127.0.0.1> ServerName www.fec.edu DocumentRoot /www/fec/ DirectoryIndex ayuda.htm, index.htm </Virtual Host>

Elaborado por: Ing Carlos Alberto Jarquin

45

UNI-COMPUFEC Linux

Administracion de Servidores

Servidor FTP: vsftpd

Instalacin del servidor FTP Para instalarte un servidor FTP en Linux normalmente no necesitas ningn programa adicional ya que el servidor FTP suele venir con el sistema. Para los ejemplos que vamos a citar a continuacin hemos utilizado el servidor FTP que viene con red hat 9.0 Para comenzar tendremos que instalarnos el paquete que contiene el servidor FTP que en este caso se llama Vsftpd 1.1.3-8, para lo cual ejecutaremos la siguiente instruccin: rpm -ivh vsftpd 1.1.3-8 Configuracion
Utilice un editor de texto, y modifique el archivo /etc/vsftpd/vsftpd.conf.
vim /etc/vsftpd/vsftpd.conf

A continuacin analizaremos los parmetros a modificar o aadir, segn se requiera para necesidades particulares.

Parmetro anonymous_enable.
Se utiliza para definir si se permitirn los accesos annimos al servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera.
anonymous_enable=YES

Parmetro local_enable.
Es particularmente interesante si se combina con la funcin de jaula (chroot). Establece si se van a permitir los accesos autenticados de los usuarios locales del sistema. Establezca como valor YES o NO de acuerdo a lo que se requiera.
local_enable=YES

Parmetro write_enable.
Establece si se permite el mandato write (escritura) en el servidor. Establezca como valor YES o NO de acuerdo a lo que se requiera. Elaborado por: Ing Carlos Alberto Jarquin 46

UNI-COMPUFEC Linux
write_enable=YES

Administracion de Servidores

Parmetro anon_upload_enable
Especfica si los usuarios annimos tendrn permitido subir contenido al servidor. Por lo general no es una funcin deseada, por lo que se acostubra desactivar sta.
anon_upload_enable=NO

Parmetro anon_mkdir_write_enable
Especfica si los usuarios annimos tendrn permitido crear directorios en el servidor. Al igual que la anterior, por lo general no es una funcin deseada, por lo que se acostumbra desactivar sta.
anon_mkdir_write_enable=NO

Parmetro ftpd_banner.
Este parmetro sirve para establecer el bandern de bienvenida que ser mostrado cada vez que un usuario acceda al servidor. Puede establecerse cualquier frase breve que considere conveniente.
ftpd_banner=Bienvenido al servidor FTP de nuestra empresa.

Estableciendo jaulas para los usuarios: parmetros chroot_local_user, y chroot_list_file.


De modo predeterminado los usuarios del sistema que se autentiquen tendrn acceso a otros directorios del sistema fuera de su directorio personal. Si se desea recluir a los usuarios a solo poder utilizar su propio directorio personal, puede hacerse fcilmente con el parmetro chroot_local_user que habilitar la funcin de chroot(), y los parmetros chroot_list_enable, y chroot_list_file, para establecer el archivo con la lista de usuarios que quedarn excluidos de la funcin chroot().
chroot_local_user=YES chroot_list_enable=YES chroot_list_file=/etc/vsftpd/chroot_list

Con lo anterior, cada vez que un usuario local se autentique en el servidor FTP, solo tendr acceso a su propio directorio personal, y lo que ste contenga. Por favor, recuerde crear el archivo /etc/vsftpd/chroot_list, ya que de otro modo ser imposible que funcione correctamente el servicio vsftpd.
touch /etc/vsftpd/chroot_list

Control del ancho de banda.


Parmetro anon_max_rate. Se utiliza para limitar la tasa de transferencia, en bytes por segundo, para los usuarios annimos, algo sumamente til en servidores FTP de acceso pblico. En el siguiente ejemplo se limita la tasa de transferencia a 50 Kb por segundo para los usuarios annimos:
anon_max_rate=51200

Elaborado por: Ing Carlos Alberto Jarquin

47

UNI-COMPUFEC Linux

Administracion de Servidores

Parmetro local_max_rate.
Hace lo mismo que anon_max_rate, pero aplica para usuarios locales del servidor. En el siguiente ejemplo se limita la tasa de transferencia a 100 Kb por segundo para los usuarios locales:
local_max_rate=102400

Parmetro max_clients.
Establece el nmero mximo de clientes que podrn acceder simultneamente hacia el servidor FTP. En el siguiente ejemplo se limitar el acceso a 10 clientes simultneos.
max_clients=10

Parmetro max_per_ip.
Establece el nmero mximo de conexiones que se pueden realizar desde una misma direccin IP. Tome en cuenta que algunas redes acceden a travs de un servidor intermediario (Proxy) o puerta de enlace, y debido a sto podran quedar bloqueados innecesariamente algunos accesos. En el siguiente ejemplo se limita el nmero de conexiones por IP simultneas a un mximo de 10.
max_per_ip=10

Elaborado por: Ing Carlos Alberto Jarquin

48

UNI-COMPUFEC Linux

Administracion de Servidores

Servidor de Correo: sendmail Introduccin.


Acerca de Sendmail. Es el ms popular agente de transporte de correo (MTA o Mail Transport Agent), responsable quiz de poco ms del 70% del correo electrnico del mundo. Aunque por largo tiempo se le ha criticado por muchos incidentes de de seguridad, lo cierto es que stos siempre han sido resueltos en pocas horas. Acerca de Dovecot. Dovecot es un servidor de POP3 e IMAP de fuente abierta que funciona en Linux y sistemas basados sobre Unix y diseado con la seguridad como principal objetivo.Dovecot puede utilizar tanto el formato mbox como maildir y es compatible con las implementaciones de los servidores UW-IMAP y Courier IMAP.

Protocolos utilizados.
SMTP (Simple Mail Transfer Protocol). Es un protocolo estndar de Internet del Nivel de Aplicacin utilizado para la transmisin de correo electrnico a travs de una conexin TCP/IP. Este es de hecho el nico protocolo utilizado para la transmisin de correo electrnico a travs de Internet. Es un protocolo basado sobre texto y relativamente simple donde se especifican uno ms destinatarios en un mensaje que es transferido. A lo largo de los aos han sido muchas las personas que han editado o contribuido a las especificaciones de SMTP, entre las cuales estn Jon Postel, Eric Allman, Dave Crocker, Ned Freed, Randall Gellens, John Klensin y Keith Moore. POP3 (Post Office Protocol version 3). Es un protocolo estndar de Internet del Nivel de Aplicacin que recupera el correo electrnico desde un servidor remoto a travs de una conexin TCP/IP desde un cliente local. El diseo de POP3 y sus predecesores es permitir a los usuarios recuperar el correo electrnico al estar conectados hacia una red y manipular los mensajes recuperados sin necesidad de permanecer conectados. A pesar de que muchos clientes de correo electrnico incluyen soporte para dejar el correo en el servidor, todos los clientes de POP3 recuperan todos los mensajes y los almacenan como mensajes nuevos en la computadora o anfitrin utilizado por el usuario, eliminan los mensajes en el servidor y terminan la conexin. Despus de establecerse una conexin entre el cliente y el servidor, se inicia una sesinPOP3.

Elaborado por: Ing Carlos Alberto Jarquin

49

UNI-COMPUFEC Linux

Administracion de Servidores

IMAP (Internet Message Access Protocol). Es un protocolo estndar de Internet del Nivel de Aplicacin utilizado para acceder hacia el correo electrnico en un servidor remoto a travs de una conexin TCP/IP desde un cliente local. Fue diseado por Mark Crispin en 1986 como una alternativa ms moderna que cubriera las deficiencias de POP3. Las caractersticas ms importantes de IMAP incluyen: Soporte para los modos de operacin conectado (connected) y desconectado (disconnected), permitiendo a los clientes de correo electrnico permanezcan conectados el tiempo que su interfaz permanezca activa, descargando los mensajes conforme se necesite. A diferencia de POP3, permite accesos simultneos desde mltiples clientes y proporciona los mecanismos necesarios para stos para que se detecten los cambios hechos por otro cliente de correo electrnico concurrentemente conectado en el mismo buzn de correo. Permite a los clientes obtener individualmente cualquier parte MIME(acrnimo de MultiPurpose Internet Mail Extensions o Extensiones de correo de Internet de propsitos mltiples), as como tambin obtener porciones de las partes individuales o bien los mensajes completos. A travs de banderas definidas en el protocolo, vigilar la informacin de estado de los mensajes de correo electrnico que se mantengan en el servidor. Por ejemplo si el estado del mensaje es ledo, no ledo,respondido o eliminado. Incluye soporte para soporte para mltiples buzones de correo electrnico que permite crear, renombrar o eliminar mensajes de correo electrnico presentados en el servidor dentro de carpetas, y mover stos mensajes entre distintas cuentas de correo electrnico. Esta caracterstica tambin permite al servidor proporcionar acceso hacia los carpetas pblicas y compartidas. Incluye soporte para realizar bsquedas del lado del servidor a travs de mecanismos que permiten obtener resultados de acuerdo a varios criterios, permitiendo evitar que los clientes de correo electrnico tengan que descargar todos los mensajes desde el servidor.

Instalacin a travs de yum.


Si se utiliza de CentOS 4 o White Box Enterprise Linux 4, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente: yum -y install sendmail sendmail-cf dovecot m4 make cyrus-sasl cyrus-sasl-md5 cyrus-saslplain Si se utiliza de CentOS 3 o White Box Enterprise Linux 3, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente: yum -y install sendmail sendmail-cf imap m4 make cyrus-sasl cyrus-sasl-md5 cyrus-saslplain

Elaborado por: Ing Carlos Alberto Jarquin

50

UNI-COMPUFEC Linux

Administracion de Servidores

Si acaso estuviese instalado, elimine el paquete cyrus-sasl-gssapi, ya que este utiliza el mtodo de autenticacin GSSAPI, mismo que requerira de la base de datos de cuentas de usuario de un servidor Kerberos: yum -y remove cyrus-sasl-gssapi Instalacin a travs de Up2date Si se utiliza de Red Hat Enterprise Linux 4, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente: up2date -i sendmail sendmail-cf dovecot m4 make cyrus-sasl cyrus-sasl-md5 cyrus-saslplain Si se utiliza de Red Hat Enterprise Linux 3, el paquete imap es reemplazado por el paquete dovecot. De tal modo que se ejecuta lo siguiente: up2date -i sendmail sendmail-cf imap m4 make cyrus-sasl cyrus-sasl-md5 cyrus-sasl-plain Si acaso estuviese instalado, elimine el paquete cyrus-sasl-gssapi, ya que este utiliza el mtodo de autenticacin GSSAPI, mismo que requerira de la base de datos de cuentas de usuario de un servidor Kerberos: rpm -e cyrus-sasl-gssapi

Configuracin
Configuracin del fichero /etc/mail/Access [SHELL]# gedit /etc/mail/Access En fichero se define el dominio y direccin IP que podra hacer uso del servidor decorreo. Debe modificarlo de la siguiente manera: Connect: 192.168.3.15 RELAY Connect: dominio.local RELAY Configuracin del fichero /etc/mail/local-host-names [SHELL]# gedit /etc/mail/local-host-names Se utilizar para definir el dominio y equipo del cual sendmail va a recibir nombreequipo.dominio.local dominio.local Creacin y configurarcin dell fichero /etc/mail/relay-domains [SHELL]# gedit /etc/mail/relay-domains En este fichero se agregar el dominio y nombre de equipo desde o hacia las quepodemos hacer transmisin dominio.local nombreequipo.dominio.local

Elaborado por: Ing Carlos Alberto Jarquin

51

UNI-COMPUFEC Linux

Administracion de Servidores

Configuracin del fichero /etc/mail/sendmail.mc


[SHELL]# gedit /etc/mail/sendmail.mc Este fichero contiene la configuracin completa del servidor de correo. Activando interface de red Por defecto sendmail est configurado para enviar correos desde la interfaz loopback 127.0.0.1, esto quiere decir que unicamente el servidor envia correos as mismo, para cambiar este comportamiento solo deberas ubicar la siguientelinea: dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA') dnl Cambiarla por DAEMON_OPTIONS(`Port=smtp, Name=MTA')dnl Enmascarar el dominio En esta linea definimos que todos los correos salientes desde el servidor con el nombre del dominio. MASQUERADE_AS(`mydomain.com')dnl Cambiarla por MASQUERADE_AS(`dominio.local')dnl Especificando que es un dominio local, agregando esta linea al final del archivo Cwdominio.local Sustituyendo los parametros del fichero /etc/mail/sendmail.cf con losagregados en el archivo /etc/mail/sendmail.mc [SHELL]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf Este comando toma un archivo input y sustituye las cadenas dentro de l con losparmetros transmitidos, lo cual es similar a sustituirlas por variables desde elarchivo sendmail.mc.

Elaborado por: Ing Carlos Alberto Jarquin

52

UNI-COMPUFEC Linux

Administracion de Servidores

Configuracin del fichero /etc/dovecot.conf


[SHELL]# gedit /etc/dovecot.conf Por defecto, el servidor dovecot estn deshabilitados los protocolos pop e imap los cuales son necesarios para la entrega de correo, busque la linea: #protocols = imap imaps pop3 pop3s y sustituyala por: protocols = imap pop3 Tambin debe habilitar el puerto que escuchar en el protocolo imap, para ellobusque las lineas: #protocol imap { #listen = *:10143 #ssl_listen = *:10943 #.. #} y sustituyalas por: protocol imap { listen = *:143 } Adems debe habilitar el puerto que escuchar en el protocolo pop3, para ellobusque las lineas: #protocol pop3 { #listen = *:10100 #.. #} y sustituyalas por: protocol pop3 { listen = *:110 } Asignando el direcotorio de entrega de mensajes #mail_location = mbox:~/mail:INBOX=/var/mail/%u Sustituyala por mail_location = mbox:~/mail:INBOX=/var/mail/%u Reiniciando el servicio sendmail e iniciando el servicio dovecot [SHELL]#service sendmail restart [SHELL]#service dovecot start

Elaborado por: Ing Carlos Alberto Jarquin

53

UNI-COMPUFEC Linux Otras variants [SHELL]#service sendmail [status | restart | start | stop | reload] [SHELL]#service dovecot [status | restart | start | stop | reload]

Administracion de Servidores

Agregar al inicio del sistema el servicio dovecot Para que cada vez que iniciemos nuestro servidor inicie automticamente elservicio dovecot, debemos ejecutar el siguiente comando [SHELL]#chkconfig dovecot on

Creando cuentas de usuario de correo


[SHELL]#useradd -s /sbin/nologin nombreusuario1 [SHELL]#passwd nombreusuario1 (Digitar la clave) Creamos otra cuenta para hacer pruebas de envo y recepcin de mensajes. [SHELL]#useradd -s /sbin/nologin nombreusuario2 [SHELL]#passwd nombreusuario2 (Digitar la clave) Probando nuestro servidor de correoHaciendo pruebas con el protocolo SMT [SHELL]#telnet 127.0.0.1 25 Luego digitar los siguientes comandos HELO dominio.local 250 dominio.local Hello your.host [127.0.0.1], pleased to meet you MAIL FROM: nombreusuario1@dominio.local 250 2.1.0 ... Sender ok RCPT TO: nombreusuario2@dominio.local 250 2.1.5 ... Recipient ok DATA Esta es una prueba desde telnet250 2.0.0 k2IM2RjA0053987 Message accepted for delivery QUIT 221 2.0.0 dominio.local closing connection Connection closed by foreign host. Haciendo pruebas con el protocolo POP3 (correo entrante) [SHELL]#telnet 127.0.0.1 110 Trying 127.0.0.1... Connected to dominio.local (127.0.0.1). Escape character is '^]'. +OK dovecot ready. USER nombreusuario2 Elaborado por: Ing Carlos Alberto Jarquin 54

UNI-COMPUFEC Linux +OK PASS claveasignada +OK Logged in. LIST +OK 1 messages: 1 128 RETR 1

Administracion de Servidores

Configuracin de Servidores Internos


Servidor DHCP: dhcpd
Introduccin. DHCP (acrnimo de Dynamic Host Configuration Protocol que se traduce Protocolo de configuracin dinmica de servidores) es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia informacin de configuracin de red (direccin IP; mscara de sub-red, puerta de enlace, etc.) a partir de un servidor DHCP. Su propsito principal es hacer ms fciles de administrar las redes grandes. DHCP existe desde 1993 como protocolo estndar y se describe a detalle en el RFC 2131. Sin la ayuda de un servidor DHCP, tendran que configurarse de forma manual cada direccin IP de cada anfitrin que pertenezca a una Red de rea Local. Si un anfitrin se traslada hacia otra ubicacin donde existe otra Red de rea Local, se tendr que configurar otra direccin IP diferente para poder unirse a esta nueva Red de rea Local. Un servidorDHCP entonces supervisa y distribuye las direcciones IP de una Red de rea Local asignando una direccin IP a cada anfitrin que se una a la Red de rea Local. Cuando, por mencionar un ejemplo, una computadora porttil se configura para utilizar DHCP, a sta le ser asignada una direccin IP y otros parmetros de red necesarios para unirse a cada Red de rea Local donde se localice. Existen tres mtodos de asignacin en el protocolo DHCP: Asignacin manual: La asignacin utiliza una tabla con direcciones MAC(acrnimo de Media Access Control Address, que se traduce como direccin de Control de Acceso al Medio). Slo los anfitriones con una direccin MAC definida en dicha tabla recibir el IP asignada en la misma tabla. sto se hace a travs de los parmetros hardware ethernet yfixed-address. Asignacin automtica: Una direccin de IP disponible dentro de un rango determinado se asigna permanentemente al anfitrin que la requiera. Asignacin dinmica: Se determina arbitrariamente un rango de direcciones IP y cada anfitrin conectado a la red est configurada para solicitar su direccin IP al servidor cuando se inicia el dispositivo de red,utilizando un intervalo de tiempo controlable (parmetros default-lease-time y max-lease-time) de modo que las direcciones IP no son permanentes y se reutilizan de forma dinmica. Sustento lgico necesario. Se requiere instalar el paquete dhcp el cual deber estar incluido en los discos de instalacin de la mayora de las distribuciones. Elaborado por: Ing Carlos Alberto Jarquin 55

UNI-COMPUFEC Linux

Administracion de Servidores

yum -y install dhcp Si se utiliza Red Hat Enterprise Linux, solo bastar realizar lo siguiente para instalar o actualizar la programtica necesaria: up2date -i dhcp Fichero de configuracin. Considerando como ejemplo que se tiene una red local con las siguientes caractersticas: Nmero de red 192.168.0.0 Mscara de sub-red: 255.255.255.0 Puerta de enlace: 192.168.0.1 Servidor de nombres: 192.168.0.1, 148.240.241.42 y 148.240.241.10 Servidor Wins: 192.168.0.1 Servidores de tiempo: 66.187.224.4 y 66.187.233.4 Rango de direcciones IP a asignar de modo dinmico: 192.168.0.11-192.168.0.199 NOTA: Es indispensable conocer y entender perfectamente todo lo anterior para poder continuar con este manual. Puede utilizar el siguiente contenido para crear desde cero el fichero /etc/dhcpd.conf. ddns-update-style interim; ignore client-updates; shared-network miredlocal { subnet 192.168.0.0 netmask 255.255.255.0 { option routers 192.168.0.1; option subnet-mask 255.255.255.0; option broadcast-address 192.168.0.255; option domain-name "redlocal.net"; option domain-name-servers 192.168.0.1, 148.240.241.42, 148.240.241.10; option netbios-name-servers 192.168.0.1; option ntp-servers 66.187.224.4, 66.187.233.4; range 192.168.0.11 192.168.0.199; default-lease-time 21600; max-lease-time 43200; } host m253 { option host-name "m253.redlocal.net"; hardware ethernet 00:50:BF:27:1C:1C; fixed-address 192.168.0.253; } host m254 { option host-name "m254.redlocal.net"; hardware ethernet 00:01:03:DC:67:23; fixed-address 192.168.0.254; } } Una buena medida de seguridad es hacer que el servicio de dhcpd solo funcione a travs de la interfaz de red Elaborado por: Ing Carlos Alberto Jarquin 56

UNI-COMPUFEC Linux

Administracion de Servidores

utilizada por la LAN, esto en el caso de tener mltiples dispositivos de red. Edite el fichero /etc/sysconfig/dhcpd y agregue como argumento del parmetroDHCPDARGS el valor eth0, eth1, eth2, etc., o lo que corresponda. Ejemplo, considerando que eth0 es la interfaz correspondiente a la LAN: # Command line options here DHCPDARGS=eth0 Para ejecutar por primera vez el servicio, ejecute: /sbin/service dhcpd start Para hacer que los cambios hechos a la configuracin surtan efecto, ejecute: /sbin/service dhcpd restart

Servidor proxy: squid


Introduccin. Qu es Servidor Intermediario (Proxy)? El trmino en ingles Proxy tiene un significado muy general y al mismo tiempo ambiguo, aunque invariablemente se considera un sinnimo del concepto de Intermediario. Se suele traducir, en el sentido estricto, como delegado o apoderado (el que tiene el que poder sobre otro). Un Servidor Intermediario (Proxy) se define como una computadora o dispositivo que ofrece un servicio de red que consiste en permitir a los clientes realizar conexiones de red indirectas hacia otros servicios de red. Durante el proceso ocurre lo siguiente:
Cliente se conecta hacia un Servidor Intermediario (Proxy). Cliente solicita una conexin, fichero u otro recurso disponible en un servidor distinto. Servidor Intermediario (Proxy) proporciona el recurso ya sea conectndose hacia el servidor especificado o sirviendo ste desde un cach. En algunos casos el Servidor Intermediario (Proxy) puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propsitos.

Los Servidores Intermediarios (Proxies) generalmente se hacen trabajar simultneamente como muro cortafuegos operando en el Nivel de Red, actuando como filtro de paquetes, como en el caso de iptables, o bien operando en el Nivel de Aplicacin, controlando diversos servicios, como es el caso de TCP Wrapper. Dependiendo del contexto, el muro cortafuegos tambin se conoce como BPD o Border Protection Device o simplemente filtro de paquetes. Una aplicacin comn de los Servidores Intermediarios (Proxies) es funcionar como cach de contenido de Red (principalmente HTTP), proporcionando en la proximidad de los clientes un cach de pginas y ficheros disponibles a travs de la Red en servidores HTTP remotos, permitiendo a los clientes de la red local acceder hacia stos de forma ms rpida y confiable. Cuando se recibe una peticin para un recurso de Red especificado en un URL (Uniform Resource Locator) el Servidor Intermediario busca el resultado del URL dentro del cach. Si ste es encontrado, el Servidor Intermediario responde al cliente proporcionado inmediatamente el contenido solicitado. Si el contenido solicitado no estuviera disponible en el cach, el Servidor Intermediario lo traer desde servidor remoto, entregndolo al cliente que lo solicit y guardando una copia en el cach. El contenido en el cach es eliminado luego a travs de un algoritmo de expiracin de acuerdo a la antigedad, tamao e historial de respuestas a solicitudes (hits) (ejemplos: LRU, LFUDA y GDSF). Elaborado por: Ing Carlos Alberto Jarquin 57

UNI-COMPUFEC Linux

Administracion de Servidores

Los Servidores Intermediarios para contenido de Red (Web Proxies) tambin pueden actuar como filtros del contenido servido, aplicando polticas de censura de acuerdo a criterios arbitrarios.

Acerca de Squid. Squid es un Servidor Intermediario (Proxy) de alto desempeo que se ha venido desarrollando desde hace varios aos y es hoy en da un muy popular y ampliamente utilizado entre los sistemas operativos como GNU/Linux y derivados de Unix. Es muy confiable, robusto y verstil y se distribuye bajo los trminos de la Licencia Pblica General GNU (GNU/GPL). Siendo sustento lgico libre, est disponible el cdigo fuente para quien as lo requiera. Entre otras cosas, Squid puede funcionar como Servidor Intermediario (Proxy) y cach de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cach transparente, WWCP, aceleracin HTTP, cach de consultas DNS y otras muchas ms como filtracin de contenido y control de acceso por IP y por usuario. Squid consiste de un programa principal como servidor, un programa para bsqueda en servidores DNS, programas opcionales para reescribir solicitudes y realizar autenticacin y algunas herramientas para administracin y y herramientas para clientes. Al iniciar Squid da origen a un nmero configurable (5, de modo predefinido a travs del parmetro dns_children) de procesos de bsqueda en servidores DNS, cada uno de los cuales realiza una bsqueda nica en servidores DNS, reduciendo la cantidad de tiempo de espera para las bsquedas en servidores DNS. NOTA ESPECIAL: Squid no debe ser utilizado como Servidor Intermediario (Proxy) para protocolos como SMTP, POP3, TELNET, SSH, IRC, etc. Si se requiere intermediar para cualquier protocolo distinto a HTTP, HTTPS, FTP, GOPHER y WAIS se requerir implementar obligatoriamente un enmascaramiento de IP o NAT (Network Address Translation) o bien hacer uso de un servidor SOCKS como Dante (http://www.inet.no/dante/). URL: http://www.squid-cache.org/ Algoritmos de cach utilizados por Squid. A travs de un parmetro (cache_replacement_policy) Squid incluye soporte para los siguientes algoritmos para el cach:

Elaborado por: Ing Carlos Alberto Jarquin

58

UNI-COMPUFEC Linux
LRU Acrnimo de Least Recently Used, que traduce como Menos Recientemente Utilizado. En este algoritmo los objetos que no han sido accedidos en mucho tiempo son eliminados primero, manteniendo siempre en el cach a los objetos ms recientemente solicitados. sta poltica es la utilizada por Squid de modo predefinido.

Administracion de Servidores

LFUDA Acrnimo de Least Frequently Used with Dynamic Aging, que se traduce como Menos Frecuentemente Utilizado con Envejecimiento Dinmico. En este algoritmo los objetos ms solicitados permanecen en el cach sin importar su tamao optimizando la eficiencia (hit rate) por octetos (Bytes) a expensas de la eficiencia misma, de modo que un objeto grande que se solicite con mayor frecuencia impedir que se pueda hacer cach de objetos pequeos que se soliciten con menor frecuencia. GDSF Acrnimo de GreedyDual Size Frequency, que se traduce como Frecuencia de tamao GreedyDual (codicioso dual), que es el algoritmo sobre el cual se basa GDSF. Optimiza la eficiencia (hit rate) por objeto manteniendo en el cach los objetos pequeos ms frecuentemente solicitados de modo que hay mejores posibilidades de lograr respuesta a una solicitud (hit). Tiene una eficiencia por octetos (Bytes) menor que el algoritmo LFUDA debido a que descarta del cach objetos grandes que sean solicitado con frecuencia.

Sustento lgico necesario. Para poder llevar al cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitar tener instalado al menos lo siguiente:
Al menos squid-2.5.STABLE6 httpd-2.0.x (Apache), como auxiliar de cach con aceleracin. Todos los parches de seguridad disponibles para la versin del sistema operativo que est utilizando. No es conveniente utilizar un sistema con posibles vulnerabilidades como Servidor Intermediario.

Debe tomarse en consideracin que, de ser posible, se debe utilizar siempre las versiones estables ms recientes de todo sustento lgico que vaya a ser instalado para realizar los procedimientos descritos en este manual, a fin de contar con los parches de seguridad necesarios. Ninguna versin de Squid anterior a la 2.5.STABLE6 se considera como apropiada debido a fallas de seguridad de gran importancia. Squid no se instala de manera predeterminada a menos que especifique lo contrario durante la instalacin del sistema operativo, sin embargo viene incluido en casi todas las distribuciones actuales. El procedimiento de instalacin es exactamente el mismo que con cualquier otro sustento lgico. Instalacin a travs de yum. Si cuenta con un sistema con CentOS o White Box Enterprise Linux 3 o versiones posteriores, utilice lo siguiente y se instalar todo lo necesario junto con sus dependencias:
yum -y install squid httpd

Instalacin a travs de up2date. Si cuenta con un sistema con Red Hat Enterprise Linux 3 o versiones posteriores, utilice lo siguiente y se instalar todo lo necesario junto con sus dependencias:
up2date -i squid httpd

Elaborado por: Ing Carlos Alberto Jarquin

59

UNI-COMPUFEC Linux

Administracion de Servidores

Otros componentes necesarios. El mandato iptables se utilizar para generar las reglas necesarias para el guin de Enmascaramiento de IP. Se instala de modo predefinido en todas las distribuciones actuales que utilicen ncleo (kernel) versiones 2.4 y 2.6. Es importante tener actualizado el ncleo del sistema operativo por diversas cuestiones de seguridad. No es recomendable utilizar versiones del kernel anteriores a la 2.4.21. Actualice el ncleo a la versin ms reciente disponible para su distribucin. Si cuenta con un sistema con CentOS o White Box Enterprise Linux 3 o versiones posteriores, utilice lo siguiente para actualizar el ncleo del sistema operativo e iptables, si acaso fuera necesario:
yum -y update kernel iptables

Si cuenta con un sistema con Red Hat Enterprise Linux 3 o versiones posteriores, utilice lo siguiente para actualizar el ncleo del sistema operativo, e iptables si acaso fuera necesario:
up2date -u kernel iptables

Antes de continuar. Tenga en cuenta que este manual ha sido comprobado varias veces y ha funcionado en todos los casos y si algo no funciona solo significa que usted no lo ley a detalle y no sigui correctamente las indicaciones. Evite dejar espacios vacos en lugares indebidos. El siguiente es un ejemplo de como no se debe habilitar un parmetro. Mal
# Opcin incorrectamente habilitada http_port 3128

El siguiente es un ejemplo de como si se debe habilitar un parmetro. Bien


# Opcin correctamente habilitada http_port 3128

Configuracin bsica. Squid utiliza el fichero de configuracin localizado en /etc/squid/squid.conf, y podr trabajar sobre este utilizando su editor de texto simple preferido. Existen un gran nmero de parmetros, de los cuales recomendamos configurar los siguientes: Parmetro http_port: Que
http_port cache_dir Al menos una Lista de Control de Acceso Al menos una Regla de Control de Acceso httpd_accel_host httpd_accel_port httpd_accel_with_proxy

puerto utilizar para Squid? De acuerdo a las asignaciones hechas por IANA y continuadas por la ICANN desde el 21 de marzo de 2001, los Puertos Registrados (rango desde 1024 hasta 49151) recomendados para Servidores Intermediarios (Proxies) pueden ser el 3128 y 8080 a travs de TCP. De modo predefinido Squid utilizar el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios puertos disponibles a la vez. En el caso de un Servidor Intermediario (Proxy) Transparente, regularmente se utilizar el puerto 80 o el 8000 y se valdr del re-direccionamiento de peticiones de modo tal que no habr necesidad alguna de Elaborado por: Ing Carlos Alberto Jarquin 60

UNI-COMPUFEC Linux

Administracion de Servidores

modificar la configuracin de los clientes HTTP para utilizar el Servidor Intermediario (Proxy). Bastar con utilizar como puerta de enlace al servidor. Es importante recordar que los Servidores HTTP, como Apache, tambin utilizan dicho puerto, por lo que ser necesario volver a configurar el servidor HTTP para utilizar otro puerto disponible, o bien desinstalar o desactivar el servidor HTTP. Hoy en da puede no ser del todo prctico el utilizar un Servidor Intermediario (Proxy) Transparente, a menos que se trate de un servicio de Caf Internet u oficina pequea, siendo que uno de los principales problemas con los que lidian los administradores es el mal uso y/o abuso del acceso a Internet por parte del personal. Es por esto que puede resultar ms conveniente configurar un Servidor Intermediario (Proxy) con restricciones por clave de acceso, lo cual no puede hacerse con un Servidor Intermediario (Proxy) Transparente, debido a que se requiere un dilogo de nombre de usuario y clave de acceso. Regularmente algunos programas utilizados comnmente por los usuarios suelen traer de modo predefinido el puerto 8080 (servicio de cacheo WWW) para utilizarse al configurar que Servidor Intermediario (Proxy) utilizar. Si queremos aprovechar esto en nuestro favor y ahorrarnos el tener que dar explicaciones innecesarias al usuario, podemos especificar que Squid escuche peticiones en dicho puerto tambin. Siendo as localice la seccin de definicin de http_port, y especifique:
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 3128 http_port 8080

Si desea incrementar la seguridad, puede vincularse el servicio a una IP que solo se pueda acceder desde la

red local. Considerando que el servidor utilizado posee una IP 192.168.1.254, puede hacerse lo siguiente:
# # You may specify multiple socket addresses on multiple lines. # # Default: http_port 3128 http_port 192.168.1.254:3128 http_port 192.168.1.254:8080

Parmetro cache_mem. El parmetro cache_mem establece la cantidad ideal de memoria para lo siguiente:
Objetos en trnsito. Objetos frecuentemente utilizados (Hot). Objetos negativamente almacenados en el cach.

Los datos de estos objetos se almacenan en bloques de 4 Kb. El parmetro cache_mem especifica un lmite mximo en el tamao total de bloques acomodados, donde los objetos en trnsito tienen mayor prioridad. Sin embargo los objetos Hot y aquellos negativamente almacenados en el cach podrn utilizar la memoria no utilizada hasta que esta sea requerida. De ser necesario, si un objeto en trnsito es mayor a la cantidad de Elaborado por: Ing Carlos Alberto Jarquin 61

UNI-COMPUFEC Linux

Administracion de Servidores

memoria especificada, Squid exceder lo que sea necesario para satisfacer la peticin.

De modo predefinido se establecen 8 MB. Puede especificarse una cantidad mayor si as se considera necesario, dependiendo esto de los hbitos de los usuarios o necesidades establecidas por el administrador. Si se posee un servidor con al menos 128 MB de RAM, establezca 16 MB como valor para este parmetro:
cache_mem 16 MB

Parmetro cache_dir: Cuanto desea almacenar de Internet en el disco duro? Este parmetro se utiliza para establecer que tamao se desea que tenga el cach en el disco duro para Squid. Para entender esto un poco mejor, responda a esta pregunta: Cuanto desea almacenar de Internet en el disco duro? De modo predefinido Squid utilizar un cach de 100 MB, de modo tal que encontrar la siguiente lnea:
cache_dir ufs /var/spool/squid 100 16 256

Se puede incrementar el tamao del cach hasta donde lo desee el administrador. Mientras ms grande sea el cach, ms objetos se almacenarn en ste y por lo tanto se utilizar menos el ancho de banda. La siguiente lnea establece un cach de 700 MB:
cache_dir ufs /var/spool/squid 700 16 256

Los nmeros 16 y 256 significan que el directorio del cach contendr 16 directorios subordinados con 256 niveles cada uno. No modifique esto nmeros, no hay necesidad de hacerlo. Es muy importante considerar que si se especifica un determinado tamao de cach y ste excede al espacio real disponible en el disco duro, Squid se bloquear inevitablemente. Sea cauteloso con el tamao de cach especificado. Parmetro ftp_user. Al acceder a un servidor FTP de manera annima, de modo predefinido Squid enviar como clave de acceso Squid@. Si se desea que el acceso annimo a los servidores FTP sea ms informativo, o bien si se desea acceder a servidores FTP que validan la autenticidad de la direccin de correo especificada como clave de acceso, puede especificarse la direccin de correo electrnico que uno considere pertinente.
ftp_user proxy@su-dominio.net

Controles de acceso. Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas mquinas en particular. A cada lista se le asignar una Regla de Control de Acceso que permitir o denegar el acceso a Squid. Procedamos a entender como definir unas y otras. Listas de control de acceso. Regularmente una lista de control de acceso se establece con la siguiente sintaxis:
acl [nombre de la lista] src [lo que compone a la lista]

Si se desea establecer una lista de control de acceso que abarque a toda la red local, basta definir la IP correspondiente a la red y la mscara de la sub-red. Por ejemplo, si se tiene una red donde las mquinas tienen direcciones IP 192.168.1.n con mscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:
acl miredlocal src 192.168.1.0/255.255.255.0

Elaborado por: Ing Carlos Alberto Jarquin

62

UNI-COMPUFEC Linux

Administracion de Servidores

Tambin puede definirse una Lista de Control de Acceso especificando un fichero localizado en cualquier parte del disco duro, y la cual contiene una lista de direcciones IP. Ejemplo:
acl permitidos src "/etc/squid/permitidos"

El fichero /etc/squid/permitidos contendra algo como siguiente:


192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.15 192.168.1.16 192.168.1.20 192.168.1.40

Lo anterior estara definiendo que la Lista de Control de Acceso denominada permitidos estara compuesta por las direcciones IP incluidas en el fichero /etc/squid/permitidos. Reglas de Control de Acceso. Estas definen si se permite o no el acceso hacia Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la seccin de reglas de control de acceso definidas por el administrador, es decir, a partir de donde se localiza la siguiente leyenda:
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS #

La sintaxis bsica es la siguiente:


http_access [deny o allow] [lista de control de acceso]

En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos:
http_access allow permitidos

Tambin pueden definirse reglas valindose de la expresin !, la cual significa no. Pueden definirse, por ejemplo, dos listas de control de acceso, una denominada lista1 y otra denominada lista2, en la misma regla de control de acceso, en donde se asigna una expresin a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:
http_access allow lista1 !lista2

Este tipo de reglas son tiles cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al que se debe denegar el acceso. Aplicando Listas y Reglas de control de acceso. Una vez comprendido el funcionamiento de la Listas y las Regla de Control de Acceso, procederemos a determinar cuales utilizar para nuestra configuracin.

Elaborado por: Ing Carlos Alberto Jarquin

63

UNI-COMPUFEC Linux

Administracion de Servidores

Caso 1. Considerando como ejemplo que se dispone de una red 192.168.1.0/255.255.255.0, si se desea definir toda la red local, utilizaremos la siguiente lnea en la seccin de Listas de Control de Acceso:
acl todalared src 192.168.1.0/255.255.255.0

Habiendo hecho lo anterior, la seccin de listas de control de acceso debe quedar ms o menos del siguiente modo: Listas de Control de Acceso: definicin de una red local completa
# # Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl todalared src 192.168.1.0/255.255.255.0

A continuacin procedemos a aplicar la regla de control de acceso:


http_access allow todalared

Habiendo hecho lo anterior, la zona de reglas de control de acceso debera quedar ms o menos de este modo: Reglas de control de acceso: Acceso a una Lista de Control de Acceso.
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow todalared http_access deny all

La regla http_access allow todalared permite el acceso a Squid a la Lista de Control de Acceso denominada todalared, la cual est conformada por 192.168.1.0/255.255.255.0. Esto significa que cualquier mquina desde 192.168.1.1 hasta 192.168.1.254 podr acceder a Squid. Caso 2. Si solo se desea permitir el acceso a Squid a ciertas direcciones IP de la red local, deberemos crear un fichero que contenga dicha lista. Genere el fichero /etc/squid/listas/redlocal, dentro del cual se incluirn solo aquellas direcciones IP que desea confirmen la Lista de Control de acceso. Ejemplo: Elaborado por: Ing Carlos Alberto Jarquin 64

UNI-COMPUFEC Linux
192.168.1.1 192.168.1.2 192.168.1.3 192.168.1.15 192.168.1.16 192.168.1.20 192.168.1.40

Administracion de Servidores

Denominaremos a esta lista de control de acceso como redlocal:


acl redlocal src "/etc/squid/listas/redlocal"

Habiendo hecho lo anterior, la seccin de listas de control de acceso debe quedar ms o menos del siguiente modo: Listas de Control de Acceso: definicin de una red local completa
# # Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src "/etc/squid/listas/redlocal"

A continuacin procedemos a aplicar la regla de control de acceso:


http_access allow redlocal

Habiendo hecho lo anterior, la zona de reglas de control de acceso debera quedar ms o menos de este modo: Reglas de control de acceso: Acceso a una Lista de Control de Acceso.
# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow redlocal http_access deny all

La regla http_access allow redlocal permite el acceso a Squid a la Lista de Control de Acceso denominada redlocal, la cual est conformada por las direcciones IP especificadas en el fichero /etc/squid/listas/redlocal. Esto significa que cualquier mquina no incluida en /etc/squid/listas/redlocal no tendr acceso a Squid. Parmetro chache_mgr. De modo predefinido, si algo ocurre con el cach, como por ejemplo que muera el procesos, se enviar un mensaje de aviso a la cuenta webmaster del servidor. Puede especificarse una distinta si acaso se considera conveniente.
cache_mgr joseperez@midominio.net

Parmetro cache_peer: caches padres y hermanos. El parmetro cache_peer se utiliza para especificar otros Servidores Intermediarios (Proxies) con cach en una jerarqua como padres o como hermanos. Es decir, definir si hay un Servidor Intermediario (Proxy) Elaborado por: Ing Carlos Alberto Jarquin 65

UNI-COMPUFEC Linux adelante o en paralelo. La sintaxis bsica es la siguiente:


cache_peer servidor tipo http_port icp_port opciones

Administracion de Servidores

Ejemplo: Si su cach va a estar trabajando detrs de otro servidor cache, es decir un cach padre, y considerando que el cach padre tiene una IP 192.168.1.1, escuchando peticiones HTTP en el puerto 8080 y peticiones ICP en puerto 3130 (puerto utilizado de modo predefinido por Squid) ,especificando que no se almacenen en cach los objetos que ya estn presentes en el cach del Servidor Intermediario (Proxy) padre, utilice la siguiente lnea:
cache_peer 192.168.1.1 parent 8080 3130 proxy-only

Cuando se trabaja en redes muy grandes donde existen varios Servidores Intermediarios (Proxy) haciendo cach de contenido de Internet, es una buena idea hacer trabajar todos los cach entre si. Configurar caches vecinos como sibling (hermanos) tiene como beneficio el que se consultarn estos caches localizados en la red local antes de acceder hacia Internet y consumir ancho de banda para acceder hacia un objeto que ya podra estar presente en otro cach vecino. Ejemplo: Si su cach va a estar trabajando en paralelo junto con otros caches, es decir caches hermanos, y considerando los caches tienen IP 10.1.0.1, 10.2.0.1 y 10.3.0.1, todos escuchando peticiones HTTP en el puerto 8080 y peticiones ICP en puerto 3130, especificando que no se almacenen en cach los objetos que ya estn presentes en los caches hermanos, utilice las siguientes lneas:
cache_peer 10.1.0.1 sibling 8080 3130 proxy-only cache_peer 10.2.0.1 sibling 8080 3130 proxy-only cache_peer 10.3.0.1 sibling 8080 3130 proxy-only

Pueden hacerse combinaciones que de manera tal que se podran tener caches padres y hermanos trabajando en conjunto en una red local. Ejemplo:
cache_peer cache_peer cache_peer cache_peer 10.0.0.1 10.1.0.1 10.2.0.1 10.3.0.1 parent 8080 3130 proxy-only sibling 8080 3130 proxy-only sibling 8080 3130 proxy-only sibling 8080 3130 proxy-only

Cach con aceleracin. Cuando un usuario hace peticin hacia un objeto en Internet, este es almacenado en el cach de Squid. Si otro usuario hace peticin hacia el mismo objeto, y este no ha sufrido modificacin alguna desde que lo accedi el usuario anterior, Squid mostrar el que ya se encuentra en el cach en lugar de volver a descargarlo desde Internet. Esta funcin permite navegar rpidamente cuando los objetos ya estn en el cach de Squid y adems optimiza enormemente la utilizacin del ancho de banda. La configuracin de Squid como Servidor Intermediario (Proxy) Transparente solo requiere complementarse utilizando una regla de iptables que se encargar de re-direccionar peticiones hacindolas pasar por el puerto 8080. La regla de iptables necesaria se describe ms adelante en este documento. Proxy Acelerado: Opciones para Servidor Intermediario (Proxy) en modo convencional. En la seccin HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parmetros: Elaborado por: Ing Carlos Alberto Jarquin 66

UNI-COMPUFEC Linux
httpd_accel_host virtual httpd_accel_port 0 httpd_accel_with_proxy on

Administracion de Servidores

Proxy Acelerado: Opciones para Servidor Intermediario (Proxy) Transparente. Si se trata de un Servidor Intermediario (Proxy) transparente, deben utilizarse las siguientes opciones, considerando que se har uso del cach de un servidor HTTP (Apache) como auxiliar:
# Debe especificarse la IP de cualquier servidor HTTP en la # red local o bien el valor virtual httpd_accel_host 192.168.1.254 httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on

Proxy Acelerado: Opciones para Servidor Intermediario (Proxy) Transparente para redes con Internet Exlorer 5.5 y versiones anteriores. Si va a utilizar Internet Explorer 5.5 y versiones anteriores con un Servidor Intermediario (Proxy) transparente, es importante recuerde que dichas versiones tiene un psimo soporte con los Servidores Intermediarios (Proxies) transparentes imposibilitando por completo la capacidad de refrescar contenido. Si se utiliza el parmetro ie_refresh con valor on puede hacer que se verifique en los servidores de origen para nuevo contenido para todas las peticiones IMS-REFRESH provenientes de Internet Explorer 5.5 y versiones anteriores.
# Debe especificarse la IP de cualquier servidor HTTP en la # red local httpd_accel_host 192.168.1.254 httpd_accel_port 80 httpd_accel_with_proxy on httpd_accel_uses_host_header on ie_refresh on

Lo ms conveniente es actualizar hacia Internet Explorer 6.x o definitivamente optar por otras alternativas. Mozilla es en un conjunto de aplicaciones para Internet, o bien Firefox, que es probablemente el mejor navegador que existe en el mercado. Firefox es un navegador muy ligero y que cumple con los estndares, y est disponible para Windows, Linux, Mac OS X y otros sistemas operativos. Estableciendo el idioma de los mensajes mostrados por de Squid hacia el usuario. Squid incluye traduccin a distintos idiomas de las distintas pginas de error e informativas que son desplegadas en un momento dado durante su operacin. Dichas traducciones se pueden encontrar en /usr/share/squid/errors/. Para poder hacer uso de las pginas de error traducidas al espaol, es necesario cambiar un enlace simblico localizado en /etc/squid/errors para que apunte hacia /usr/share/squid/errors/Spanish en lugar de hacerlo hacia /usr/share/squid/errors/English. Elimine primero el enlace simblico actual:
rm -f /etc/squid/errors

Coloque un nuevo enlace simblico apuntando hacia el directorio con los ficheros correspondientes a los Elaborado por: Ing Carlos Alberto Jarquin 67

UNI-COMPUFEC Linux errores traducidos al espaol.


ln -s /usr/share/squid/errors/Spanish /etc/squid/errors

Administracion de Servidores

Nota: Este enlace simblico debe verificarse, y regenerarse de ser necesario, cada vez que se actualizado Squid ya sea a travs de yum, up2date o manualmente con el mandato rpm. Iniciando, reiniciando y aadiendo el servicio al arranque del sistema. Una vez terminada la configuracin, ejecute el siguiente mandato para iniciar por primera vez Squid:
service squid start

Si necesita reiniciar para probar cambios hechos en la configuracin, utilice lo siguiente:


service squid restart

Si desea que Squid inicie de manera automtica la prxima vez que inicie el sistema, utilice lo siguiente:
chkconfig squid on

Lo anterior habilitar a Squid en todos los niveles de corrida.

Depuracin de errores Cualquier error al inicio de Squid solo significa que hubo errores de sintaxis, errores de dedo o bien se estn citando incorrectamente las rutas hacia los ficheros de las Listas de Control de Acceso. Puede realizar diagnstico de problemas indicndole a Squid que vuelva a leer configuracin, lo cual devolver los errores que existan en el fichero /etc/squid/squid.conf.
service squid reload

Cuando se trata de errores graves que no permiten iniciar el servicio, puede examinarse el contenido del fichero /var/log/squid/squid.out con el mandato less, more o cualquier otro visor de texto:
less /var/log/squid/squid.out

Ajustes para el muro corta-fuegos. Si se tiene poca experiencia con guiones de cortafuegos a travs de iptables, sugerimos utilizar Firestarter. ste permite configurar fcilmente tanto el enmascaramiento de IP como el muro corta-fuegos. Si se tiene un poco ms de experiencia, recomendamos utilizar Shorewall para el mismo fin puesto que se trata de una herramienta ms robusta y completa. Firestarter: http://www.fs-security.com/
Shorewall:

http://www.shorewall.net/

Proxy Transparente
En un momento dado se requerir tener salida transparente hacia Internet para ciertos servicios, pero al mismo tiempo se necesitar re-direccionar peticiones hacia servicio HTTP para pasar a travs del el puerto donde escucha peticiones Squid (8080), de modo que no haya salida alguna hacia alguna hacia servidores HTTP en el exterior sin que sta pase antes por Squid. No se puede hacer Servidor Intermediario (Proxy) Transparente para los protocolos HTTPS, FTP, GOPHER ni WAIS, por lo que dichos protocolos tendrn que ser filtrados a travs del NAT. El re-direccionamiento lo hacemos a travs de iptables. Considerando para este ejemplo que la red local se accede a travs de una interfaz eth0, el siguiente esquema ejemplifica un re-direccionamiento: Elaborado por: Ing Carlos Alberto Jarquin 68

UNI-COMPUFEC Linux
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080

Administracion de Servidores

Lo anterior, que requiere un guin de cortafuegos funcional en un sistema con dos interfaces de red, hace que cualquier peticin hacia el puerto 80 (servicio HTTP) hecha desde la red local hacia el exterior, se redireccionar hacia el puerto 8080 del servidor.

Denegar acceso a sitios especificos.


Denegar el acceso a ciertos Sitios de Red permite hacer un uso ms racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple, y consiste en denegar el acceso a nombres de dominio o direcciones Web que contengan patrones en comn. Definiendo patrones comunes. Lo primero ser generar una lista la cual contendr direcciones Web y palabras usualmente utilizadas en nombres de ciertos dominios. Ejemplos:
www.sitioporno.com www.otrositioporno.com sitioindeseable.com otrositioindeseable.com napster sex porn mp3 xxx adult warez celebri

Esta lista, la cual deber ser completada con todas las palabras (muchas de est son palabras obscenas en distintos idiomas) y direcciones Web que el administrador considere pertinentes, la guardaremos como /etc/squid/sitiosdenegados. Parmetros en /etc/squid/squid.conf Debemos definir una Lista de Control de Acceso que a su vez defina al fichero /etc/squid/sitiosdenegados. Esta lista la denominaremos como "sitiosdenegados". De modo tal, la lnea correspondiente quedara del Elaborado por: Ing Carlos Alberto Jarquin 69

UNI-COMPUFEC Linux siguiente modo:


acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

Administracion de Servidores

Habiendo hecho lo anterior, deberemos tener en la seccin de Listas de Control de Acceso algo como lo siguiente:
# # Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src 192.168.1.0/255.255.255.0 acl password proxy_auth REQUIRED acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"

A continuacin especificaremos modificaremos una Regla de Control de Acceso existente agregando con un smbolo de ! que se denegar el acceso a la Lista de Control de Acceso denominada sitiosdenegados:
http_access allow redlocal !sitiosdenegados

La regla anterior permite el acceso a la Lista de Control de Acceso denominada redlocal, pero le niega el acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada sitiosdenegados. Reglas de control de acceso: denegacin de sitios.
# # INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow redlocal password !sitiosdenegados http_access deny all

Permitiendo acceso a sitios inocentes incidentalmente bloqueados.


Si por ejemplo el incluir una palabra en particular afecta el acceso a un sitio Web, tambin puede generarse una lista de dominios o palabras que contengan un patrn pero que consideraremos como apropiados. Como ejemplo: vamos a suponer que dentro de la Lista de Control de Acceso de sitios denegados est la palabra sex. esta denegara el acceso a cualquier nombre de dominio que incluya dicha cadena de caracteres, como extremesex.com. Sin embargo tambin estara bloqueando a sitios como sexualidadjovel.cl, el cual no tiene que ver en lo absoluto con pornografa, sino orientacin sexual para la juventud. Podemos aadir este nombre de dominio en un ficheros que denominaremos /etc/squid/sitios-inocentes. Este fichero ser definido en una Lista de Control de Acceso del mismo modo en que se hizo anteriormente con el fichero que contiene dominios y palabras denegadas.
acl inocentes url_regex "/etc/squid/sitios-inocentes"

Para hacer uso de el fichero, solo bastar utilizar la expresin ! en la misma lnea utilizada para la Regla de Control de Acceso establecida para denegar el mismo.
http_access allow all inocentes

Elaborado por: Ing Carlos Alberto Jarquin

70

UNI-COMPUFEC Linux

Administracion de Servidores

La regla anterior especifica que se denegar el acceso a todo lo que comprenda la Lista de Control de Acceso denominada denegados excepto lo que comprenda la Lista de Control de Acceso denominada inocentes. es decir, se podr acceder sin dificultad a www.sexualidadjoven.cl manteniendo la restriccin para la cadena de caracteres sex.

Finalizando procedimiento.
Finalmente, solo bastar reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.
service squid restart

Cmo configurar Squid: Restriccin de acceso ha contenido por extensin.


Introduccin. Denegar el acceso a ciertos tipos de extensiones de fichero permite hacer un uso ms racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple, y consiste en denegar el acceso a ciertos tipos de extensiones que coincidan con lo establecido en una Lista de Control de Acceso. Software requerido. Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitar tener instalado al menos squid-2.5STABLE1. Definiendo elementos de la Lista de Control de Acceso. Lo primero ser generar una lista la cual contendr direcciones Web y palabras usualmente utilizadas en nombres de ciertos dominios. Ejemplos:
\.avi$ \.mp4$ \.mp3$ \.mp4$ \.mpg$ \.mpeg$ \.mov$ \.ra$ \.ram$ \.rm$ \.rpm$ \.vob$ \.wma$ \.wmv$ \.wav$

Elaborado por: Ing Carlos Alberto Jarquin

71

UNI-COMPUFEC Linux
\.doc$ \.xls$ \.mbd$ \.ppt$ \.pps$ \.ace$ \.bat$ \.exe$ \.lnk$ \.pif$ \.scr$ \.sys$ \.zip$ \.rar$

Administracion de Servidores

Esta lista, la cual deber ser completada con todas las extensiones de fichero que el administrador considere pertinentes, la guardaremos como /etc/squid/listaextensiones.

Parmetros en /etc/squid/squid.conf Debemos definir una Lista de Control de Acceso que a su vez defina al fichero /etc/squid/listaextensiones. Esta lista la denominaremos como "listaextensiones". De modo tal, la lnea correspondiente quedara del siguiente modo:
acl listaextensiones urlpath_regex "/etc/squid/listaextensiones"

Habiendo hecho lo anterior, deberemos tener en la seccin de Listas de Control de Acceso algo como lo siguiente:
# # Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src 192.168.1.0/255.255.255.0 acl password proxy_auth REQUIRED acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados" acl listaextensiones urlpath_regex "/etc/squid/listaextensiones"

A continuacin especificaremos modificaremos una Regla de Control de Acceso existente agregando con un smbolo de ! que se denegar el acceso a la Lista de Control de Acceso denominada listaextensiones:
http_access allow redlocal !listaextensiones

La regla anterior permite el acceso a la Lista de Control de Acceso denominada redlocal, pero le niega el acceso a todo lo que coincida con lo especificado en la Lista de Control de Acceso denominada listaextensiones. Elaborado por: Ing Carlos Alberto Jarquin 72

UNI-COMPUFEC Linux

Administracion de Servidores

Reglas de control de acceso: denegacin de extensiones.


# # INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR CLIENTS # http_access allow localhost http_access allow redlocal password !sitiosdenegados !listaextensiones http_access deny all

Finalizando procedimiento. Finalmente, solo bastar reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.
service squid restart

Cmo configurar Squid: Restriccin de acceso por horarios


Introduccin. Denegar el acceso a ciertos en ciertos horarios permite hacer un uso ms racional del ancho de banda con el que se dispone. El funcionamiento es verdaderamente simple, y consiste en denegar el acceso en horarios y das de la semana. Software requerido. Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitar tener instalado al menos squid-2.5STABLE1. Procedimientos La sintaxis para crear Listas de control de acceso que definan horarios es la siguiente:
acl [nombre del horario] time [das de la semana] hh:mm-hh:mm

Los das de la semana se definen con letras, las cuales corresponden a la primera letra del nombre en ingls, de modo que se utilizarn del siguiente modo:

S - Domingo M - Lunes T - Mastes W - Miercoles H - Jueves F - Viernes 73

Elaborado por: Ing Carlos Alberto Jarquin

UNI-COMPUFEC Linux

Administracion de Servidores

A - Sbado

Ejemplo:
acl semana time MTWHF 09:00-21:00

Esta regla define a la lista semana, la cual comprende un horario de 09:00 a 21:00 horas desde el Lunes hasta el Viernes. Este tipo de listas se aplican en las Reglas de Control de Acceso con una mecnica similar a la siguiente: se permite o deniega el acceso en el horario definido en la Lista de Control de Acceso denominada X para las entidades definidas en la Lista de Control de Acceso denominada Y. Lo anterior expresado en una Regla de Control de Acceso, quedas del siguiente modo:
http_access [allow | deny] [nombre del horario] [lista de entidades]

Ejemplo: Se quiere establecer que los miembros de la Lista de Control de Acceso denominada clasematutina tengan permitido acceder hacia Internet en un horario que denominaremos como matutino, y que comprende de lunes a viernes de 09:00 a 15:00 horas. La defincin para le horario correspondera a:
acl clasematutina src 192.168.1.0/255.255.255.0 acl matutino time MTWHF 09:00-15:00

La definicin de la Regla de Control de Acceso sera:


http_access allow matutino clasematutina

Lo anterior, en resumen, significa que quienes conformen clasematutina podrn acceder a Internet de Lunes a Viernes de 09:00-15:00 horas.

Ms ejemplos.
Restringiendo el tipo de contenido. Como se explica en el documento "Cmo configurar Squid: Restriccin de acceso a contenido por extensin", es posible denegar acceso a cierto tipo de contenido de acuerdo a su extensin. Igual que con otras funciones, se requiere una Lista de Control de Acceso y una Regla de Control de Acceso Si se necesita una lista denominada musica que defina a todos los ficheros con extensin .mp3, utilizaramos lo siguiente:
acl clasematutina src 192.168.1.0/255.255.255.0 acl musica urlpath_regex \.mp3$

Si queremos denegar el acceso al todo contenido con extensin .mp3, la regla quedara del siguiente modo:
http_access allow clasematutina !musica

Combinando reglas de tiempo y contenido. Si por ejemplo queremos restringir parcialmente el acceso a cierto tipo de contenido a ciertos horarios, pueden combinarse distintos tipos de reglas. Elaborado por: Ing Carlos Alberto Jarquin 74

UNI-COMPUFEC Linux
acl clasematutina src 192.168.1.0/255.255.255.0 acl matutino time MTWHF 09:00-15:00 acl musica urlpath_regex \.mp3$ http_access allow matutino clasematutina !musica

Administracion de Servidores

La Regla de Control de Acceso anterior especifica acceso permitido a en el horario definido como matutino a quienes integran la Lista de Control de Acceso denominada clasematutina a todo contenido [por omisin] excepto a los contenidos que coincidan con los definidos en la Lista de Control de Acceso denominada musica.

Finalizando procedimiento.
Finalmente, solo bastar reiniciar Squid para que tomen efecto los cambios y podamos hacer pruebas.
service squid restart

Aseguramiento con IPTables


Red Hat Enterprise Linux contiene herramientas avanzadas para el filtrado de paquetes de red el proceso de controlar los paquetes de red al entrar, mientras se mueven y cuando salen de la red dentro del kernel. Los kernels anteriores al 2.4 dependan en ipchains para el filtrado de paquetes y usaban listas de reglas aplicadas a los paquetes en cada paso del proceso de filtra-do. La introduccin de kernel 2.4 trajo consigo iptables (tambin llamado netfilter); aunque es similar a ipchains, expande enormemente el mbito y el control disponible para el filtrado de paquetes de red. El mecanismo predeterminado de cortafuegos en la versin 2.4 y posterior del ker-nel es iptables, pero ste no se puede usar si ya se est ejecutando ipchains. Si ipchains est presente durante el arranque, el kernel emitir un error y no podrarrancar iptables. Estos errores no afectan la funcionalidad del comando ipchains. Filtrado de paquetes El kernel de Linux utiliza Netfilter para filtrar paquetes, permitiendo aceptar algunos de ellos en el sistema mientras que intercepta y detiene otros. Esta utilidad es interna en el kernel de Linux e incorpora las siguientes tres tablas o listas de reglas: filter La tabla por defecto para el manejo de paquetes de red. nat Usada para alterar paquetes que crean una nueva conexin y utilizada para la Tra-duccin de direcciones de red (Network Address Translation, NAT). mangle Usada por tipos especficos de alteracin de paquetes. Cada una de estas tablas tiene un grupo de cadenas incorporadas que corresponden a las ac-ciones llevadas a cabo en el paquete por netfilter. Las cadenas internas para la tabla filtro son las siguientes: INPUT Aplica a los paquetes recibidos a travs de una interfaz de red. Elaborado por: Ing Carlos Alberto Jarquin 75

UNI-COMPUFEC Linux

Administracion de Servidores

OUTPUT Esta cadena sirve para paquetes enviados por medio de la misma interfaz de red que recibi los paquetes. FORWARD Esta cadena sirve para paquetes recibidos en una interfaz de red y enviados en otra. Las cadenas internas para la tabla nat son las siguientes: PREROUTING Altera los paquetes de red cuando estos llegan. POSTROUTING Esta cadena altera paquetes antes de que sean enviados por medio de una interfaz de red.

POSTROUTING Altera los paquetes de red cuando estos son enviados. PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red cuando llegan. OUTPUT Esta cadena altera paquetes generados localmente antes de que sean dirigi-dos por medio de una interfaz de red. POSTROUTING Esta cadena altera paquetes antes de que sean enviados por medio de una interfaz de red. Las cadenas internas para la tabla mangle son las siguientes: PREROUTING Esta cadena altera paquetes recibidos por medio de una interfaz de red antes de que sean dirigidos. POSTROUTING Altera los paquetes de red cuando estos son enviados. Cada paquete de red recibido o enviado desde un sistema Linux est sujeto a al menos una ta-bla. Sin embargo, un paquete puede estar sometido a mltiples reglas dentro de cada tabla an-tes de emerger al final de la cadena. La estructura y propsito de estas reglas puede variar, pe-ro normalmente buscan identificar un paquete que viene de o se dirige hacia una direcccin IP en particular, o un conjunto de direcciones, cuando utiliza un determinado protocolo y servicio de red. Nota Por defecto. Las reglas del cortafuegos son guardadas en los archivos /etc/sysconfig/iptables o /etc/sysconfig/ip6tables. El servicio iptables es iniciado antes que el resto de servicios relacionados con DNS cuando un sistema Linux es iniciado. Esto significa que las reglas del corta-fuegos solo pueden ser referenciadas a travs de las direcciones IP (por ejemplo 192.168.0.1). Los nombres de dominios (por ejemplo, host.example.com) en di-chas reglas producen errores. Independientemente de su destino, cuando un paquete cumple una regla en particular en una de las tablas, se les aplica un objetivo (target) o accin. Si la regla especifica un objetivo ACCEPT para un paquete que Elaborado por: Ing Carlos Alberto Jarquin 76

UNI-COMPUFEC Linux

Administracion de Servidores

coincida, el paquete salta el resto de las verificaciones de la regla y se le permite continuar hacia su destino. Si una regla especifica un objetivo DROP, al paquete se le niega el acceso al sistema y no se enva nada de vuelta al servidor que envi el paquete. Si una regla especifica un objetivo QUEUE, el paquete pasa al espacio del usuario. Si una regla es-pecifica el objetivo opcional REJECT, el paquete es descartado, pero se enva un paquete de error al que envi el paquete. Cada cadena tiene una poltica por defecto de ACCEPT, DROP, REJECT, o QUEUE. Si ninguna de es-tas reglas en la cadena se aplican al paquete, entonces el paquete es tratado de acuerdo a la poltica por defecto. El comando iptables configura estas tablas, as como tambin configura nuevas tablas si es necesario.

Diferencias entre IPTables y IPChains Tanto ipchains como iptables usan cadenas de reglas que operan dentro del kernel de Linux para decidir qu hacer con los paquetes que cumplen determinadas reglas. Sin embargo, ipta-bles proporciona un mtodo de filtrado de paquetes que puede ser extendido ms fcilmente, brindando al administrador un nivel de control mucho ms refinado sin tener que aumentar la complejidad del sistema entero. Tenga en cuenta las siguientes diferencias entre iptables y ipchains: Si se utiliza iptables, cada paquete filtrado se procesa utilizando reglas de una cadena y no de mltiples cadenas. Por ejemplo, un paquete FORWARD que llega a un sistema usando ipchains tendr que pasar por las cadenas INPUT, FORWARD, y OUTPUT para llegar a su destino. Sin embar-go, iptables slo enva paquetes a la cadena INPUT si su destino es el sistema local y tan slo los enva a la cadena OUTPUT si el sistema local es quien genera los paquetes. Por esta razn, es importante que coloque la regla designada para capturar un paquete particu-lar dentro de la regla que en verdad maneja el paquete. El objetivo DENY ha sido cambiado a DROP. En ipchains, los paquetes que coincidan con una regla en una cadena podran ser dirigidos al objetivo DENY. Este objetivo debe ser cambiado a DROP bajo iptables. El orden de las opciones en una regla es importante. En ipchains, el orden de las opciones de la regla no importa. El comando iptables usa una sintaxis ms estricta. En comandos iptables, el protocolo (ICMP, TCP o UDP) debe ser especificado antes del puerto fuente o destino. Las interfaces de red deben ser asociadas con la cadena correcta en las reglas del cortafue-gos. Por ejemplo, las interfaces de entrada (opcin -i) slo pueden ser usadas en cadenas IN-PUT o FORWARD. Elaborado por: Ing Carlos Alberto Jarquin 77

UNI-COMPUFEC Linux

Administracion de Servidores

Asimismo, interfaces de salida (opcin -o) slo pueden ser usadas en cadenas FORWARD o OUTPUT. En otras palabras, las cadenas INPUT y las interfaces de entrada trabajan juntas; las cade-nas OUTPUT y las interfaces de salida trabajan juntas. Las cadenas FORWARD trabajan tanto con las interfaces de entrada como con las interfaces de salida. Las cadenas OUTPUT ya no se utilizan en interfaces de entrada; asimismo los paquetesque van a las interfaces de salida no ven las cadenas INPUT. Esta no es una lista completa de los cambios. Consulte la Seccin 7.7, Recursos adicionales para obtener mayor informacin. Las reglas para el filtrado de paquetes se crean con el comando iptables. Las siguientes ca-ractersticas del paquete son con frecuencia utilizadas como criterio: Tipo de paquete Dicta qu tipo de paquetes filtra el comando. Fuente/Destino del paquete Especifica cules paquetes filtra el comando basndose en el origen o destino del paquete. Objetivo Indica qu accin es tomada en paquetes que cumplen los criterios menciona-dos anteriormente. Consulte la Seccin 7.3.4, Opciones de coincidencia para IPTables y la Seccin 7.3.5, Opciones del objetivo para obtener mayor informacin sobre las opciones especficas que conciernen estos aspectos de un paquete. Las opciones usadas con las reglas iptables dadas deben estar agrupadas lgicamente, ba-sndose en el propsito y en las condiciones de la regla general, para que la regla sea vlida. El resto de esta seccin explica las opciones ms usadas para el comando iptables. Estructura de las opciones del comando para IPTables Muchos comandos iptables tienen la siguiente estructura:
iptables [-t <table-name>] <command><chain-name> \ <parameter-1><option-1> \ <parameter-n><option-n>

<table-name> Especifica la tabla sobre la cual la tabla es aplicada. Si se omite, se utiliza la tabla filter. <command> Especifica la accin a ejecutar,tal como la adicin o borrado de reglas. <chain-name> Especifica la cadena a editar, crear o borrar. <parameter>-<option> pareja los parmetros y las opciones asociadas que especifican cmo procesar un paquete que coincide con la regla. El largo y complejidad de un comando iptables puede cambiar significativamente segn su propsito. Por ejemplo, un comando para remover una regla de una cadena puede ser muy corto: iptables -D <chain-name> <line-number> En contraste, un comando que aade una regla que filtra paquetes desde una subnet particular utilizando una variedad de parmetros y opciones especficos puede ser bastante largo. Al construir comandos iptables, es importante recordar que algunos parmetros y opciones re-quieren parmetros y opciones adicionales para construir una regla vlida. Esto puede producir una reaccin en cadena, si el parmetro adicional requiere ms parmetros. Hasta que no se satisfagan todos los parmetros y opciones, la regla no es vlida. Escriba iptables -h para ver una lista detallada de la estructura del comando iptables. Elaborado por: Ing Carlos Alberto Jarquin 78

UNI-COMPUFEC Linux

Administracion de Servidores

Opciones de comandos Las opciones de comandos le dicen a iptables que realice una accin especfica. Solo se per-mite una opcin de comando por cada comando iptables. Excepto el comando de ayuda, to-dos los comandos se escriben en maysculas. Los comandos de iptables son los siguientes: -A Aade la regla al final de la cadena especificada. A diferencia de la opcin -I descrita a continuacin, no requiere un entero como argumento. Siempre aade una regla al final de la cadena especificada. -C Verifica una regla en particular antes de aadirla en la cadena especificada por el usuario. Este comando puede ser de ayuda para construir reglas iptables complejas pidin-dole que introduzca parmetros y opciones adicionales. -D <integer> | <rule> Borra una regla de una cadena en particular segn su nmero (5 para la quinta regla de una cadena). Puede tambin teclear la regla entera y iptables borra-r la regla en la cadena que corresponda. -E Renombra una cadena definida por el usuario. Una cadena definida por el usuario es cualquier cadena diferente a las cadenas predeterminadas. (Consulte la opcin -N, para ob-tener mayor informacin sobre cmo crear cadenas definidas por el usuario.) Este es un cambio superficial que no afecta la estructura de la tabla. Nota Si usted intenta renombrar una de las cadenas predeterminadas, el sistema re-portar el error Match not found (No se encontr una coincidencia). No se pue-den renombrar las cadenas predeterminadas. -F Libera la cadena seleccionada, borrando cada una de las reglas de la cadena. Si nose especifica ninguna cadena, este comando libera cada regla de cada cadena. -h Proporciona una lista de estructuras de comandos, as como tambin un resmen r-pido de parmetros de comandos y opciones. -I [<integer>] Inserta una regla en una cadena en un punto especificado por un valor entero definido por el usuario. Si no se especifica ningn nmero, la regla ser ubicada en la parte superior de la cadena. Atencin Como se mencion anteriormente, el orden de reglas en una cadena determi-na cules reglas se deben aplicar a cules paquetes. Esto es importante de re-cordar cuando se aaden reglas con la opcin -A o -I. Este factor es importante al aadir reglas utilizando -I con un entero. Si usted especifica un nmero existente al aadir una regla a una cadena, iptables aade una nueva regla antes (o despus) de la regla existente. -L Lista todas las reglas de la cadena especificada tras el comando. Para ver una lista de todas las reglas en todas las cadenas en la tabla por defecto filter, no especifique ninguna cadena o tabla. De lo contrario, la sintaxis siguiente deber utilizarse para listar las reglas en una cadena especfica en una tabla en particular: iptables -L <chain-name> -t <table-name> Elaborado por: Ing Carlos Alberto Jarquin 79

UNI-COMPUFEC Linux

Administracion de Servidores

-N Crea una nueva cadena con un nombre especificado por el usuario. El nombre de la cadena debe ser nico, de lo contrario un mensaje de error ser reportado. -P Configura la poltica por defecto para una cadena en particular, de tal forma que, cuando los paquetes atraviesen la cadena completa sin cumplir ninguna regla, sern envia-dos a un objetivo en particular, como puedan ser ACCEPT o DROP. -R Reemplaza una regla en una cadena particular. El nmero de la regla debe ser espe-cificado despus del nombre de la cadena. La primera regla en una cadena corresponde a la regla nmero uno. -X Borra una cadena especificada por el usuario. No se permite borrar ninguna de las ca-denas predefinidas. -Z Pone ceros en los contadores de byte y de paquete en todas las cadenas de una tabla en particular. Una vez que se especifiquen ciertos comandos iptables, incluyendo aquellos para aadir, ane-xar, eliminar, insertar o reemplazar reglas dentro de una cadena, se requieren parmetros para construir una regla de filtrado de paquetes. -c Resetea los contadores de una regla en particular. Este parmetro acepta las opcio-nes PKTS y BYTES para especificar qu contador hay que resetear. -d Configura el nombre de la mquina destino, direccin IP o red de un paquete que coincide con la regla. Cuando se coincida una red, se soportan los siguientes formatos de direcciones IP o mscaras de red: N.N.N.N/M.M.M.M Donde N.N.N.N es el rango de direcciones IP y M.M.M.M es la mscara de la red. N.N.N.N/M Donde N.N.N.N es el rango de direcciones IP y M es la mscara de bit. -f Aplica esta regla slo a los paquetes fragmentados. Usando la opcin! despus de este parmetro, nicamente se harn coincidir los paquetes no fragmentados. Nota La distincin entre paquetes fragmentados y sin fragmentar es conveniente, sin importar que los paquetes fragmentados son parte del estndar del protocolo IP. Originalmente diseado para permitir que los paquetes IP viajen sobre redescon diferentes tamaos de marco, la fragmentacin es comnmente utilizada para generar ataques DoS (negacin de servicio) con paquetes mal formados. -i Configura la interfaz de red entrante, tal como eth0 o ppp0. Con iptables, este par-metro opcional puede ser usado solamente con las cadenas INPUT y FORWARD cuando es usado con la tabla filter y la cadena PREROUTING con las tablas nat y mangle. Este parmetro tambin soporta las siguientes opciones especiales: El carcter de exclamacin ! Invierte la directriz, es decir, se excluye de esta regla cualquier interfaz especificada. El carter de suma + Un caracter tipo comodn utilizado para coincidir todas las inter-faces con una cadena de caracteres especificada. Por ejemplo, el parmetro -i eth+ aplicar esta regla a cualquier interfaz Ethernet pero excluir cualquier otra interfaz, tal como, ppp0. Si el parmetro -i se utiliza sin especificar ninguna interfaz, todas las interfaces estarn afectadas por la Elaborado por: Ing Carlos Alberto Jarquin 80

UNI-COMPUFEC Linux

Administracion de Servidores

regla. -j Salta al objetivo especificado cuando un paquete coincide con una regla particular. Los objetivos estndar son ACCEPT, DROP, QUEUE y RETURN. Las opciones extendidas tambin estn disponibles a travs de los mdulos cargados por defecto con el RPM de iptables en Red Hat Enterprise Linux. Entre los objetivos vlidos de estos mdulos estn LOG, MARK y REJECT, entre otros. Consulte la pgina man de iptables pa-ra ms informacin sobre esto y otros objetivos. Esta opcin puede ser usada para dirigir un paquete que coincide con una regla particular a una cadena definida por el usuario que se encuentra fuera de la cadena actual. De esta for-ma, otras reglas pueden ser aplicadas al paquete. Si no especifica ningn objetivo, el paquete pasa la regla sin llevar a cabo ninguna accin. A pesar de todo, el contador para esta regla se sigue incrementando en uno. -o Configura la interfaz de red de salida para una regla. Esta opcin es vlida nicamen-te con las cadenas OUTPUT y FORWARD en la tabla de filter y la cadena POSTROU-TING en las tablas nat y mangle. Estos parmetros aceptan las mismas opciones que aque-llos de la interfaz de entrada (-i). -p Configura el protocolo IP afectado por la regla. Puede ser icmp, tcp, udp, o all; puede ser un valor numrico que representa uno de estos protocolos o uno diferente. Puede usar cualquier protocolo listado en /etc/protocols. El protocolo "all" significa que la regla es aplicable a todos los protocolos conocidos. Si no hay protocolos listados con esta regla, el valor predeterminado es "all". -s Configura la fuente para un paquete particular usando la misma sintaxis que el par-metro (-d). Diferentes protocolos de red proporcionan opciones especializadas de coincidencia que pue-den ser configuradas para coincidir con un paquete particular usando ese protocolo. Sin embar-go, primero se debe especificar el protocolo con el comando iptables. Por ejemplo, -p <protocolo> activa las opciones para el protocolo especificado. Tenga en cuenta que usted puede utilizar el ID del protocolo en vez del nombre. Revise los siguientes ejemplos, cada uno de stos tiene el mismo efecto: iptables -A INPUT -p icmp --icmp-type any -j ACCEPT iptables -A INPUT -p 5813 --icmp-type any -j ACCEPT La definicin de servicios se proporciona en el archivo /etc/services. Para facilitar la lectura, se recomienda utilizar el nombre del servicio y no el nmero de puerto. Importante Asegure el archivo /etc/services para evitar que sea editado sin autorizacin. Si este archivo puede ser editado, crackers pueden utilizarlo para abrir puertos en su mquina que usted ha cerrado. Para asegurar este archivo, escriba el comando si-guiente como root: [root@myServer ~]# chown root.root /etc/services [root@myServer ~]# chmod 0644 /etc/services [ Esto previene que el archivo sea renombrado, borrado o que se creen enlaces a ste. Estas opciones de identificacin estn disponibles en el protocolo TCP (opcin -p tcp): Elaborado por: Ing Carlos Alberto Jarquin 81

UNI-COMPUFEC Linux

Administracion de Servidores

--dport Establece el puerto de destino para el paquete. Para configurar esta opcin utilice el nombre del servicio (tal como www o smtp), un nmero de puerto o un rango de nmeros de puertos.

Para especificar un rango de nmeros de puertos, separe los dos nmeros con dos puntos (:), tal como -p tcp --dport 3000:3200. El rango ms grande aceptable es 0:65535. Use un carcter de exclamacin (!) despus de la opcin --dport para que los paquetes que no utilizan el servicio de red o puerto coincidan. Para ver los nombres y aliases de los servicios de red y nmeros de puertos que utilizan, re-vise el archivo /etc/services. La opcin de coincidencia --destination-port es igual a --dport. --sport Configura el puerto fuente del paquete usando las mismas opciones que --dport. La opcin --source-port es sinnimo con --sport. --syn Se aplica a todos los paquetes TCP designados a iniciar la comunicacin, comn-mente llamados paquetes SYN. Cualquier paquete que est llevando un payload de datos no ser tocado. Utilice el carcter de exclamacin (!) despus de --syn para coincidir los paquetes que nos sean SYN. --tcp-flags <tested flag list> <set flag list> Permite a los paquetes TCP con bits o banderas especficas, ser coincididos con una regla. La opcin --tcp-flags acepta dos parmetros. El primer parmetro es la mscara, una lista de banderas a ser examinadas en el paquete. El segundo parmetro es una lista de bande-ras separadas por comas que se deben establecer para que la regla coincida. Las banderas posibles son: ACK FIN PSH RST SYN URG ALL NONE Por ejemplo, una regla iptables que contenga la siguiente especificacin solo coincidir con paquetes TCP que tengan la bandera SYN activa y las banderas ACK y FIN sin activar. --tcp-flags ACK,FIN,SYN SYN Usando el caracter de exclamacin (!) despus de --tcp-flags reversa el efecto de la op-cin de coincidencia. --tcp-option Intenta seleccionar con opciones especficas de TCP que pueden estar ac-tivas en un paquete en particular. Esta opcin se puede revertir con el punto de exclama-cin (!). Estas opciones de seleccin estn disponibles para el protocolo UDP (-p udp): --dport Especifica el puerto destino del paquete UDP, usando el nombre del servicio, n-mero de puerto, o rango de nmeros de puertos. La opcin de coincidencia --destination-port es sinnimo con --dport. --sport Configura el puerto fuente del paquete UDP, usando el nombre de puerto, nme-ro de puerto o rango de nmeros de puertos. La opcin --source-port es sinnimo con --sport. Elaborado por: Ing Carlos Alberto Jarquin 82

UNI-COMPUFEC Linux

Administracion de Servidores

Para especificar un rango de nmeros de puertos para las opciones --dport y --sport, separe los dos nmeros con dos puntos (:). Por ejemplo, -p tcp --dport 3000:3200. El rango ms grande aceptable es 0:65535. Protocolo ICMP Las siguientes opciones de coincidencia estn disponibles para el Protocolo de mensajes de In-ternet (ICMP) (-p icmp): --icmp-type Selecciona el nombre o el nmero del tipo ICMP que concuerde con la regla. Se puede obtener una lista de nombres vlidos ICMP escribiendo el comando iptables p icmp -h. Opciones del objetivo Una vez que un paquete ha coincidido con una regla, la regla puede dirigir el paquete a un n-mero de objetivos diferentes que determinan la accin apropiada. Cada cadena tiene un objeti-vo por defecto, el cual es usado si ninguna de las reglas en esa cadena coinciden con un pa-quete o si ninguna de las reglas que coinciden con el paquete especifica un objetivo. Los siguientes son los objetivos estndar: <user-defined-chain> Una cadena definida por el usuario dentro de una tabla. Los nom-bres de cadenas definidas por el usuario deben ser nicos. Este objetivo pasa el paquete a la cadena especificada. ACCEPT Permite que el paquete se mueva hacia su destino o hacia otra cadena. DROP Deja caer el paquete sin responder al solicitante. El sistema que envia el paquete no es notificado de esta falla. QUEUE El paquete se pone en una cola para ser manejado por una aplicacin en el espa-cio de usuario. RETURN Detiene la verificacin del paquete contra las reglas de la cadena actual. Si el pa-quete con un destino RETURN cumple una regla de una cadena llamada desde otra cadena, el paquete es devuelto a la primera cadena para retomar la verificacin de la regla all donde se dej. Si la regla RETURN se utiliza en una cadena predefinida y el paquete no puede mo-verse hacia la cadena anterior, el objetivo por defecto de la cadena actual es utilizado. Adems, hay otras extensiones que permiten especificar otros objetivos. Estas extensiones son llamadas mdulos de objetivos o mdulos de opciones de coincidencia. La mayora slo se aplican a tablas y situaciones especificas REJECT Envia un paquete de error de vuelta al sistema remoto y deja caer el paquete. El objetivo REJECT acepta --reject-with <tipo> (donde <tipo> es el tipo de rechazo) el cual permite devolver informacin ms detallada con el paquete de error. El mensaje port-unreachable es el tipo de error por defecto dado si no se usa otra opcin. Para una lista completa de las opciones <tipo>, consulte la pgina man de iptables.

Guardando reglas IPTables


Elaborado por: Ing Carlos Alberto Jarquin 83

UNI-COMPUFEC Linux

Administracion de Servidores

Las reglas creadas con el comando iptables son almacenadas en memoria. Si el sistema es reiniciado antes de guardar el conjunto de reglas iptables, se perdern todas las reglas. Para que las reglas de filtrado de red persistan luego de un reinicio del sistema, stas necesitan ser guardadas. Para hacerlo, escriba el siguiente comando como root: /sbin/service iptables save Esto ejecuta el script de inicio iptables, el cual ejecuta el programa /sbin/iptables-save y es-cribe la configuracin actual de iptables a /etc/sysconfig/iptables. El archivo /etc/sysconfig/iptables existente es guardado como /etc/sysconfig/iptables.save. La prxima vez que se inicie el sistema, el script de inicio de iptables volver a aplicar las re-glas guardadas en /etc/sysconfig/iptables usando el comando /sbin/iptables-restore. An cuando siempre es una buena idea probar una regla de iptables antes de confirmar los cambios al archivo /etc/sysconfig/iptables, es posible copiar reglas iptables en este archivo desde otra versin del sistema de este archivo. Esto proporciona una forma rpida de distribuir conjuntos de reglas iptables a muchas mquinas. Es posible guardar las reglas iptables en un archivo separado para ser distribuido, como copia de seguridad o bajo algn otro propsito. Para guardar sus reglas iptables, escriba el siguiente comando como root: [root@myserver ~]# iptables-save > <archivo> en donde <archivo> es un nombre definido por el usuario para ese juego de reglas. Nota Note la diferencia entre el comandoiptables (/sbin/iptables), el cual es utilizado para manipular las tablas y las cadenas que constituyen la funcionalidad de ipta-bles, y el servicioiptables (/sbin/iptables service), utilizado para activar o de-sactivar el servicio iptables.

Elaborado por: Ing Carlos Alberto Jarquin

84

Potrebbero piacerti anche