instalacion configuracion centos
-
Author
vasquezader05 -
Category
Education
-
view
445 -
download
1
Embed Size (px)
Transcript of instalacion configuracion centos

FACULTAD DE INGENIERIA, ARQUITECTURA Y URBANISMO
ESCUELA DE INGENIERÍA DE SISTEMAS
CURSO : Redes de Computadoras II
LinuxDOCENTE : Ing. Carlos Rojas Ortiz.
ALUMNOS:
- Guerrero Clavo Jairo.
- Monteza León Anyela.
- Quintana Jaramillo, Silvia.
- Sánchez Tejada, Mayra.
- Vásquez Villalobos Joel.
CICLO : VII
SEMESTRE : 2009-II
Chiclayo, Noviembre de 2009.

GRUPO LINUX REDES II
INTRODUCCIÓN
En la actualidad existen una gran cantidad de sistemas operativos
dependiendo del tipo de computadora en el que se va a ejecutar. Por ejemplo uno
de los sistemas operativos más difundidos es Microsoft Windows en sus distintas
98, 2000, XP,Vista, sin embargo cabe resaltar que existen otros posibles sistemas
operativos para diversos tipos de computadoras como son Solaris, OS/2, BeOS,
y uno de los sistemas operativos más poderosos y en rápida expansión para PC,
LINUX.
La mejor alternativa de siglo XXI para los usuarios que no solo desean
libertad, sino que también un sistema operativo estable, robusto y confiable, es
LINUX/GNU, ya que es un sistema operativo apto para utilizar en redes, como es
el caso de servidores, estaciones de trabajo y también para computadoras
personales.
Linux fue creado por Linus Torvalds a principios de los 90s, a partir de
Minix, un sistema operativo Unix pequeño para procesadores Intel, siendo el
impulso para reescribir el código desde cero con la ayuda de programadores de
todas partes del mundo. En 1992, el núcleo Linux fue combinado con el sistema
GNU. El Sistema Operativo formado por esta combinación se conoce como
GNU/Linux.
El futuro del Linux no depende de una sola persona, sino más bien de un
grupo abierto de desarrolladores a nivel mundial.
Una de las distribuciones para servidor actualmente empleadas es el
Centos 5.3, que por su puesto se puede conseguir de manera gratuita bajo la
licencia GNU FLP, se configurará distintas aplicaciones servicios: Servidor de
archivos, Servidor Web, Servidor DNS, Servidor DHCP, Servidor de correo, FTP,
etc.
Página 1

GRUPO LINUX REDES II
CAPITULO IGENERALIDADES
DE LINUX
1. ¿QUÉ ES GNU/LINUX?
GNU/Linux es el primer sistema operativo
basado en UNIX que es 100% Software Libre. Si bien
anteriormente había otros sistemas operativos de
Página 2

GRUPO LINUX REDES II
libre distribución (como MINIX), éstos no eran totalmente Software Libre, ya
que eran regidos por licencias más restrictivas.
GNU/Linux es un proyecto que lleva ya 20 años en desarrollo, y lo
estará por muchos más, ya que se asienta sobre una base de cientos de
programadores de todas partes del mundo. No existe una persona “que hace
Linux”. GNU/Linux es un conjunto de componentes desarrollados por muchas
personas que trabajan en muchos proyectos. No es un único paquete. Es
prácticamente imposible parar un proyecto de estas magnitudes.
Hablando técnicamente, GNU/Linux es un sistema operativo de
software libre basado en UNIX, que cumple las normas POSIX. Su base es un
núcleo monolítico llamado simplemente Linux, desarrollado originalmente por
Linus B. Torvalds a principios de la década de los noventa. Su estructura
general es la típica de cualquier sistema UNIX (núcleo – intérprete de
comandos – aplicaciones), aunque actualmente debe de ser el más
desarrollado de ellos. Cuenta con una interfaz gráfica llamada Xfree86
(versión libre del sistema de ventanas Xwindow original del MIT) y con
muchas aplicaciones para realizar las más diversas tareas, desde
procesamiento de textos hasta montaje de servidores de red, pasando por
aplicaciones multimedia y juegos.
Linux, en general, no es tan sencillo de emplear como otros sistemas
operativos, aunque, se están realizando grandes esfuerzos para facilitar su
uso. Pese a todo, la enorme flexibilidad, su gran estabilidad y el bajo costo
han hecho de este sistema operativo una opción adecuada por aquellos
usuarios que se dediquen a trabajar a través de redes, naveguen por Internet,
o se dediquen a la programación.
Además el futuro de Linux es brillante y cada vez más y más gente y
empresas como IBM, Intel, Corel, están apoyando este proyecto, con lo que
el sistema será cada vez más sencillo de emplear y los programas serán cada
vez mejores.
2. HISTORIA DE GNU/LINUX
Página 3

GRUPO LINUX REDES II
A principios de la década del ‘80, un científico del área de inteligencia
artificial del Instituto de Tecnología de Massachussets (MIT), llamado Richard
Stallman, decidió comenzar a desarrollar un sistema operativo libre, ya que en
esa época la única opción que tenían los usuarios de computadoras era
adquirir un software propietario. El nombre de este sistema es GNU, acrónimo
de las palabras “¡GNU No es Unix!”. La idea principal era que el sistema
mantuviera un grado de similitud con el ya conocido UNIX sin compartir una
sola línea de código fuente. Idea que, obviamente, fue hecha realidad en
algunos años.
Para finales de los ‘80, el sistema estaba prácticamente completo.
Disponía de editores de texto, de intérpretes de comandos, de compiladores,
de debuggers, etc. Sólo faltaba un componente: el núcleo (kernel).
Casualmente, en el otro lado del mundo (Finlandia), un estudiante
llamado Linus B. Torvalds desarrolló un núcleo compatible con UNIX, sin
saber que iba a formar parte del sistema operativo más revolucionario del
mundo de la informática. Así fue como apareció Linux, el núcleo del sistema
GNU. Y es así como hoy tenemos un sistema completo a nuestra disposición,
el sistema GNU/Linux.
Paralelamente con el desarrollo de este sistema operativo, surgió la
Fundación del Software Libre, la cual fomenta, entre otras cosas, la utilización
de herramientas de Software Libre en las computadoras de todo el mundo.
GNU es uno de los proyectos más grandes de Software Libre. En él
participan miles de personas de todo el mundo colaborando con el desarrollo
de aplicaciones para el sistema, documentación, mantenimiento del servidor
web y muchísimo más.
Cuando hablamos de Libertad, en el mundo del Software Libre lo
hacemos en el sentido más filosófico de la palabra. Hablamos de la libertad
de tener un programa completo (incluido su código fuente), de la libertad de
usarlo, copiarlo, modificarlo, venderlo, de la libertad de compartirlo con los
otros. Ése es el espíritu del sistema GNU/Linux.
El software libre presenta una innumerable cantidad de ventajas para el
desarrollador frente a otros sistemas desarrollados bajo modelos cerrados. La
Página 4

GRUPO LINUX REDES II
primera y principal ventaja es que el desarrollador obtendrá ayuda de parte de
personas que quizá ni siquiera conoce, gracias a la gran Red de redes.
Recordemos que los proyectos de Software Libre generalmente se
basan en la participación de miles de personas de alrededor del mundo que
poseen una sola cosa en común: el espíritu de colaboración. Después de este
nivel, casi no hay estructura jerárquica.
Existen muchas organizaciones con grandes estructuras que
comenzaron como pequeños proyectos de Software Libre. Ejemplos de ellas
son GNOME, KDE, Samba, etc.
Cuando el proyecto se inicia, la necesidad de invertir capital en él es
prácticamente nula. Los proyectos de Software Libre comienzan como un
pasatiempo para un desarrollador y, si van por el buen camino, terminan
convirtiéndose en proyectos masivos que mueven grandes cantidades de
capital.
Pero ¿de dónde proviene el capital si la gente no pagará por el
programa? Ésa es la pregunta que mucha gente se hace sin conocer a fondo
el sistema del Software Libre.
Como mencionamos al principio, el Software Libre nos da la libertad de
comprarlo y venderlo. ¡Vender un software es parte de la libertad! Ahora bien,
cuando se vende un producto de Software Libre, no se debe limitar al cliente
dándole un binario ejecutable y un contrato que le impida copiarlo a sus
amigos. Si es Software Libre, debe ir provisto del código fuente y se le debe
dar la posibilidad al cliente de copiarlo sin problemas, haciendo uso de alguna
de las licencias de software que hoy disponemos (GPL es una de ellas).
Otra forma de obtener capital para invertir en un proyecto de Software
Libre es distribuyendo el software en un medio físico y otorgando servicios
extra para los que lo adquieran. Un buen ejemplo de esto son las
distribuciones de GNU/Linux que actualmente existen en el mercado. Si aún
no tienen en claro qué es una distribución, podemos hacer una analogía con
una empresa productora de automóviles. Un auto está compuesto por muchas
partes; las empresas automotrices seleccionan los mejores componentes y
los ensamblan. Entonces, cuando uno compra un auto, confía en la empresa
Página 5

GRUPO LINUX REDES II
automotriz que mejor haya ensamblado esos componentes. Con las
distribuciones ocurre exactamente lo mismo: el sistema operativo GNU/Linux
está compuesto por muchos componentes (programas, librerías y
documentación). Cuando uno compra una distribución, adquiere un paquete
armado por una empresa que se ha tomado el trabajo de seleccionar los
mejores paquetes para un requerimiento dado.
Otra modalidad de conseguir capital para solventar un proyecto de
Software Libre son las inversiones de las grandes empresas. Existen
compañías como IBM, Hewlett-Packard y Sun Systems que apoyan muy
fuertemente los desarrollos de Software Libre realizando inversiones
millonarias en los proyectos. ¿Por qué hacen esto? Porque saben que las
herramientas son realmente de buena calidad.
3. DEFINICIÓN DE SOFTWARE LIBRE
El “Software Libre” es un asunto de libertad, no de precio. Para
entender el concepto, debes pensar en “libre” como en “libertad de expresión”,
no como en “barra libre”
“Software Libre” se refiere a la libertad de los usuarios para ejecutar,
copiar, distribuir, estudiar, cambiar y mejorar el software. De modo más
preciso, se refiere a cuatro libertades de los usuarios del software:
- La libertad de usar el programa, con cualquier propósito (libertad 0).
- La libertad de estudiar cómo funciona el programa, y adaptarlo a tus
necesidades (libertad 1). El acceso al código fuente es una condición
previa para esto.
- La libertad de distribuir copias, con lo que puedes ayudar a tu vecino
(libertad 2).
- La libertad de mejorar el programa y hacer públicas las mejoras a los
demás, de modo que toda la comunidad se beneficie (libertad 3). El
acceso al código fuente es un requisito previo para esto.
Página 6

GRUPO LINUX REDES II
Un programa es Software Libre si los usuarios tienen todas estas
libertades. Así, pues, deberías tener la libertad de distribuir copias, sea con
modificaciones o sin ellas, sea gratis o cobrando una cantidad por la
distribución, a cualquiera y en cualquier lugar. El hecho de ser libre de hacer
esto significa (entre otras cosas) que no tienes que pedir o pagar permisos.
También deberías tener la libertad de hacer modificaciones y utilizarlas
de manera privada en tu trabajo u ocio, sin siquiera tener que anunciar que
dichas modificaciones existen. Si publicas tus cambios, no tienes por qué
avisar a nadie en particular, ni de ninguna manera en particular.
4. CARACTERÍSTICAS DE LINUX
Linux contiene todas las características de un sistema operativo
moderno, como:
- Multitarea.
- Multiusuario.
- Multi-Arquitectura disponible para Intel y compatibles, PowerPC,
Macintosh, Amiga, Atari, DEC Alpha, Sun Sparc, ARM, etc..
- Memoria Virtual.
- TCP/IP nativo.
- Librerías compartidas.
- Kernel modulable, funciona en modo protegido.
- Soporte para multiprocesamiento simétrico.
- Soporte para hardware de 32 y 64 bits.
- Estable meses (inclusive años) de funcionamiento ininterrumpido.
- Seguro prácticamente sin virus, un proceso no puede acceder a áreas
de memoria ajenas, etc.
Página 7

GRUPO LINUX REDES II
- Compatible cumple el estándar POSIX como otros muchos UNIX, lo que
facilita la migración entre plataformas.
- Rápido maneja eficientemente los recursos: memoria, disco duro, CPU,
etc.
- Capacidad en red excepcional; fue desarrollado desde un principio para
la conexión en red.
- Elegante es un modelo de programación: pequeño, extensible, modular.
5. JERARQUÍA DE SISTEMA DE FICHEROS DE LINUX
El estándar de jerarquía de ficheros (FHS o Filesystem Hierarchy
Standard) define los principales directorios y sus contenidos en GNU/Linux y
otros sistemas operativos similares a Unix.
El FHS es mantenido por Free Standards Group, una organización sin
fines de lucro constituida por compañías que manufacturan equipamiento
físico (Hardware) y lógico (Software) como Hewlett Packard, Dell, IBM y Red
Hat. La mayoría de las distribuciones de Linux, inclusive las que forman parte
de Free Software Standards, no aplican de forma estricta el estándar. La
versión actual del FHS es la 2.3, anunciada en 29 de Enero de 2004.
En GNU/Linux, los datos se ordenan en archivos y directorios (como en
tantos otros sistemas operativos). La diferencia especial radica en que
(generalmente) los programas no son almacenados cada uno en su propio
directorio, sino que sus diferentes componentes.
Página 8

GRUPO LINUX REDES II
Estructura de directorios.
Todos los ficheros y directorios aparecen debajo del directorio
raíz “/”, aún si están almacenados en dispositivos físicamente
diferentes. El sistema de archivos se organiza en una estructura única
de tipo árbol.
Directorio Descripción
/bin/ Mandatos binarios esenciales (cp, mv, ls, rm, etc.),
/boot/ Ficheros utilizados durante el arranque del sistema (núcleo ydiscos RAM),
/dev/ Dispositivos esenciales,
/etc/ Ficheros de configuración utilizados en todo el sistema y que son específicos del anfitrión.
/etc/opt/ Ficheros de configuración utilizados por programas alojados dentro de /opt/
/etc/X11/ (opcional)
Ficheros de configuración para el sistema X Window.
/etc/sgml/ (opcional)
Ficheros de configuración para SGML.
/etc/xml/ (opcional)
Ficheros de configuración para XML.
/home/ (opcional)
Directorios de inicios de los usuarios.
/lib/ Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
Página 9

GRUPO LINUX REDES II
el núcleo del sistema./mnt/ Sistemas de ficheros montados temporalmente.
/media/ Puntos de montaje para dispositivos de medios como unidades lectoras de discos compactos.
/opt/ Paquetes de aplicaciones estáticas.
/proc/ Sistema de ficheros virtual que documenta sucesos y estados del núcleo. Contiene principalmente ficheros de texto.
/root/ (opcional)
Directorio de inicio del usuario root (super-usuario).
/sbin/ Binarios de administración de sistema.
/tmp/ Ficheros temporales
/srv/ Datos específicos de sitio servidos por el sistema.
/usr/ Jerarquía secundaria para datos compartidos de solo lectura (Unix system resources). Este directorio debe poder ser compartido para múltiples anfitriones y no debe contener datos específicos del anfitrión que los comparte.
/usr/bin/ Mandatos binarios.
/usr/include/ Ficheros de inclusión estándar (cabeceras de cabecera utilizados para desarrollo).
/usr/lib/ Bibliotecas compartidas.
/usr/share/ Datos compartidos independientes de la arquitectura del sistema.Imágenes, ficheros de texto, etc.
/usr/src/ (opcional)
Códigos fuente.
/usr/X11R6/ (opcional)
Sistema X Window, versión 11, lanzamiento 6.
/usr/local/ Jerarquía terciaria para datos compartidos de solo lectura específicos del anfitrión.
/var/ Ficheros variables, como son bitácoras, bases de datos, directorio raíz de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.
/var/account/ (opcional)
Procesa bitácoras de cuentas de usuarios.
/var/cache/ Cache da datos de aplicaciones.
/var/crash/ (opcional)
Depósito de información referente a estrellamientos del de sistema.
/var/games/ (opional)
Datos variables de aplicaciones para juegos.
/var/lib/ Información de estado variable. Algunos servidores como MySQL yPostgreSQL almacenan sus bases de datos en directorios subordinados de éste.
/var/lock/ Ficheros de bloqueo.
Página 10

GRUPO LINUX REDES II
/var/log/ Ficheros y directorios de bitácoras.
/var/mail/ (opcional)
Buzones de correo de usuarios.
/var/opt/ Datos variables de /opt/.
/var/spool/ Colas y carretes de datos de aplicaciones.
/var/tmp/ Ficheros temporales preservados entre reinicios.
Particiones recomendadas para instalar GNU/Linux.Como mínimo se requieren tres particiones:
Directorio Descripción
/boot Requiere al menos 75 MB. Asignar más espacio puede considerarse desperdicio.
/ Requiere de 512 a 1024 MB.
Swap Debe asignarse el doble del tamaño del RAM físico, esta será siempre la última partición del disco duro y no se le asigna punto de montaje.
Otras particiones que se recomienda asignar, son:
/usr Requiere al menos 1.5 GB en instalaciones básicas. Debe
considerarse el equipamiento lógico a utilizar a futuro. Para uso
general, se recomiendan no menos de 5 GB y, de ser posible,
considere un tamaño óptimo de hasta 8 GB en instalaciones
promedio.
/tmp Requiere al menos 350 MB y puede asignarse hasta 2 GB o más
dependiendo de la carga de trabajo y tipo de aplicaciones. Si por
Página 11

GRUPO LINUX REDES II
ejemplo el sistema cuenta con un grabador de DVD, será necesario
asignar a /tmp el espacio suficiente para almacenar una imagen de
disco DVD, es decir, al menos 4.2 GB.
/var Requiere al menos 512 MB en estaciones de trabajo sin servicios. En
servidores regularmente se le asigna al menos la mitad del disco
duro.
/home En estaciones de trabajo se asigna al menos la mitad del disco duro
a esta partición.
6. PARTICIÓN DE DISCO
Una partición de disco, es el nombre genérico que recibe cada
división presente en una sola unidad física de almacenamiento de datos. Toda
partición tiene su propio sistema de archivos (formato); generalmente, casi
cualquier sistema operativo interpreta, utiliza y manipula cada partición como
un disco físico independiente, a pesar de que dichas particiones estén en un
solo disco físico.
Vale aclarar entonces que cuando hablamos de formatear un disco
estamos hablando de crear una partición que ocupe todo el espacio
disponible de una unidad física de almacenamiento.
Las particiones pueden ser utilizadas para permitir a un equipo en
particular tener instalado varios sistemas operativos en un mismo disco físico;
vale añadir algunos sistemas operativos necesitan más de una partición para
funcionar, o bien, para aprovechar el rendimiento del equipo. Una partición
también puede ser útil para proporcionar al usuario un espacio para
almacenar copias de seguridad de tal manera que los archivos puedan quedar
protegidos de un sistema de archivos roto e irrecuperable o de un formateo
accidental hecho a la partición donde está el archivo original.
A algún tipo de partición se le da formato mediante algún sistema de
archivos como FAT, NTFS, ext3, ext2, FAT32, ReiserFS, Reiser4 u otro. En
Página 12

GRUPO LINUX REDES II
Windows, las particiones reconocidas son identificadas con una letra seguida
por un signo de doble punto (p.e C:\). En sistemas basados en linux, se le
asigna un archivo especial en la carpeta /dev a cada partición (p.e. hda1,
sda2, etc.); el archivo recibe un nombre compuesto de tres letras seguidas de
un número. Estos archivos especiales representan la partición, y gracias a
estos archivos, una partición puede montarse en cualquier carpeta del
sistema.
Un único disco físico puede contener hasta cuatro particiones
primarias; prácticamente todo tipo de discos magnéticos y memorias flash
(como pendrives) pueden particionarse. Sin embargo, para tener la posibilidad
de más particiones en un solo disco, se utilizan las particiones extendidas, las
cuales pueden contener un número ilimitado de particiones lógicas en su
interior. Para este último tipo de particiones, no es recomendado su uso para
instalar ciertos sistemas operativos, sino que son más útiles para guardar
documentos o ejecutables no indispensables para el sistema. Los discos
ópticos (DVD, CD) no soportan particiones.
Hay que tener en cuenta que solo las particiones primarias y lógicas
pueden contener un sistema de archivos propio. Las particiones extendidas
solo sirven para albergar particiones lógicas. Las particiones extendidas son
un tipo de partición primaria, pero a diferencia de otras particiones primarias,
en éstas solo puede haber una partición extendida en todo el disco.
Representación gráfica de un disco particionado. Cada recuadro
blanco representa algún sistema de archivos vacío. Los espacios en gris representan los espacios sin particionar del disco. Las particiones rodeadas
Página 13

GRUPO LINUX REDES II
por líneas moradas o violetas representan las particiones primarias. Las
particiones rodeadas por bordes rojos representan la partición extendida
(que es un tipo de partición primaria); y en su interior, se encuentran las
particiones lógicas, rodeadas por los bordes de color verde.
Es común que los sistemas basados o similares a UNIX generalmente
se usen hasta con 3 particiones: la principal, montada en el directorio raíz (/); a veces hay también una segunda que se usa para montar el directorio
/home, el cual contiene las configuraciones de los usuarios, y finalmente, una
tercera llamada swap, que se usa para la memoria virtual temporal. Sin
embargo, 2 particiones (/, y swap); es el mínimo suficiente en estos sistemas
operativos. Cabe decir además que las particiones de intercambio (swap)
pueden instalarse sin problemas dentro de una partición lógica. Las
particiones de intercambio, al igual que a la memoria RAM, no se les asigna
un directorio; este tipo de particiones se usa para guardar ciertas réplicas de
la memoria RAM, para que de esta forma la RAM tenga más espacio para las
tareas en primer plano, guardando las tareas en segundo plano dentro de la
partición de intercambio. Algunos sistemas tipo UNIX están diseñados para
funcionar con una sola partición, sin embargo, estos diseños no son muy
comunes.
6.1. Tipos de particiones
El formato o sistema de archivos de las particiones (p. ej. NTFS)
no debe ser confundido con el tipo de partición (p. ej. partición
primaria), ya que en realidad no tienen directamente mucho que ver.
Independientemente del sistema de archivos de una partición (FAT,
ext3, NTFS, etc.), existen 3 tipos diferentes de particiones:
Partición primaria: Son las divisiones crudas o primarias del disco,
solo puede haber 4 de éstas o 3 primarias y una extendida.
Depende de una tabla de particiones. Un disco físico
completamente formateado consiste, en realidad, de una partición
primaria que ocupa todo el espacio del disco y posee un sistema de
Página 14

GRUPO LINUX REDES II
archivos. A este tipo de particiones, prácticamente cualquier
sistema operativo puede detectarlas y asignarles una unidad,
siempre y cuando el sistema operativo reconozca su formato
(sistema de archivos).
Partición extendida: Es otro tipo de partición que actúa como una
partición primaria; sirve para contener infinidad de unidades lógicas
en su interior. Fue ideada para romper la limitación de 4 particiones
primarias en un solo disco físico. Solo puede existir una partición
de este tipo por disco, y solo sirve para contener particiones
lógicas. Por lo tanto, es el único tipo de partición que no soporta un
sistema de archivos directamente.
Partición lógica: Ocupa una porción de la partición extendida o la
totalidad de la misma, la cual se ha formateado con un tipo
específico de sistema de archivos (FAT32, NTFS, ext2,...) y se le
ha asignado una unidad, asi el sistema operativo reconoce las
particiones lógicas o su sistema de archivos. Puede haber un
máximo de 32 particiones lógicas en una partición extendida.
Particiones primarias
En los equipos PC, originales de IBM, estas particiones
tradicionalmente usan una estructura llamada Tabla de particiones, que
apunta al final del registro de arranque maestro (MBR, Master Boot
Record). Esta tabla, que no puede contener más de 4 registros de
particiones (también llamados partition descriptors), especifica para cada
una su principio, final y tamaño en los diferentes modos de
direccionamiento, así también como un solo número, llamado partition
type, y un marcador que indica si la partición está activa o no (sólo
puede haber una partición activa a la vez). El marcador se usa durante el
arranque; después de que el BIOS cargue el registro de arranque
maestro en la memoria y lo ejecute, el MBR de DOS comprueba la tabla
de partición a su final y localiza la partición activa. Entonces carga el
sector de arranque de esta partición en memoria y la ejecuta. A
Página 15

GRUPO LINUX REDES II
diferencia del registro de arranque maestro, generalmente independiente
del sistema operativo, el sector de arranque está instalado junto con el
sistema operativo y sabe cómo cargar el sistema ubicado en ese disco
en particular.
Notar que mientras la presencia de un marcador activo se
estandariza, éste normalmente no lo utiliza cualquier programa, aunque
sí el gestor de arranque para que no esté obligado a cargar la partición
que se marcó como activa. Algunos gestores usan esto para arrancar
sistemas operativos desde particiones no activas. Por ejemplo, los
gestores LILO, GRUB (muy comunes en el sistema Linux) y XOSL no
buscan por encima de la tabla de partición en total; simplemente carga
una segunda etapa (que puede ser contenida en el resto del cilindro 0 ó
en el sistema de archivos). Después de cargar la segunda etapa se
puede usar para cargar el sector de arranque desde cualquiera de las
particiones del disco (así habilitando al usuario cargar el sistema desde
éste), o si el gestor conoce cómo localizar el kernel (núcleo) del sistema
operativo en una de las particiones y cargarlo (para propósitos de
recuperación, puede permitir al usuario especificar opciones de kernel
adicionales).
Particiones extendidas y lógicas
Cualquier versión del DOS puede leer sólo una partición FAT
primaria en el disco duro. Esto unido al deterioro de la FAT con el uso y
al aumento de tamaño de los discos movió a Microsoft a crear un
esquema mejorado relativamente simple: una de las entradas de la
tabla de partición principal pasó a llamarse partición extendida y recibió
un número de tipo de partición especial (0x05). El campo inicio de
partición tiene la ubicación del primer descriptor de la partición
extendida, que a su vez tiene un campo similar con la ubicación de la
siguiente; así se crea una lista enlazada de descriptores de partición.
Los demás campos de una partición extendida son indefinidos, no
Página 16

GRUPO LINUX REDES II
tienen espacio asignado y no pueden usarse para almacenar datos.
Las particiones iniciales de los elementos de la lista enlazada son las
llamadas unidades lógicas; son espacios asignados y pueden
almacenar datos. Los sistemas operativos antiguos ignoraban las
particiones extendidas con número de tipo 0x05, y la contabilidad se
mantenía. Este esquema reemplaza al antiguo ya que todas las
particiones de un disco duro se pueden poner dentro de una sola
partición extendida. Por alguna razón, Microsoft no actualizó su sistema
operativo DOS para arrancar desde una partición extendida, debido a
que la necesidad para particiones primarias se preservaron. Por
encima de éstas todavía se habría permitido una partición FAT primaria
por unidad, significando todas las otras particiones FAT primarias
deben tener sus números de tipo de partición prior cambiando al
arranque DOS, para que ésta sea capaz de proceder. Esta técnica,
usada por varios administradores de arranque populares, se llama
ocultación de la partición. Sin embargo hay que tener en cuenta una
quinta partición que se puede comprimir pero no es muy recomendable
Razones para el uso de particiones
Algunos sistemas de archivos (p.e. versiones antiguas de
sistemas FAT de Microsoft) tienen tamaños máximos más
pequeños que los que el tamaño que proporciona un disco,
siendo necesaria una partición de tamaño pequeño, para que
sea posible el adecuado funcionamiento de este antiguo sistema
de archivos.
Se puede guardar una copia de seguridad de los datos del
usuario en otra partición del mismo disco, para evitar la pérdida
de información importante. Ésto es similar a un RAID, excepto
en que está en el mismo disco.
En algunos sistemas operativos aconsejan más de una partición
para funcionar, como por ejemplo, la partición de intercambio
(swap) en los sistemas operativos basados en Linux.
Página 17

GRUPO LINUX REDES II
A menudo, dos sistemas operativos no pueden coexistir en la
misma partición, o usar diferentes formatos de disco “nativo”. La
unidad se particiona para diferentes sistemas operativos.
Uno de los principales usos que se le suele dar a las particiones
(principalmente a la extendida) es la de almacenar toda la
información del usuario (entiéndase musica, fotos, vídeos,
documentos), para que al momento de reinstalar algún sistema
operativo se formatee únicamente la unidad que lo contiene sin
perder el resto de la información del usuario.
A lo largo de los años han aparecido numerosos sistemas de
particionamiento, para casi todas las arquitecturas de ordenadores
existentes. Muchos son relativamente transparentes y permiten la
manipulación conveniente de las particiones de disco; algunos, sin
embargo, son obsoletos.
Este esquema se considera obsoleto, porque sólo admite discos
duros de más de 8 gigabytes de espacio. Como la arquitectura IBM PC
es muy común, las tablas de partición probablemente subsistirán cierto
tiempo. Sin embargo, un proyecto reciente de Intel y Microsoft llamado
Extensible Firmware Initiative (EFI) tiene un componente llamado GUID
Partition Table.
Las ventajas del uso de particiones primarias
Las particiones extendidas se inventaron para superar el límite
de 4 particiones máximas por cada disco duro y poder crear un número
ilimitado de unidades lógicas, cada una con un sistema de archivos
diferente de la otra. Todos los sistemas modernos (Linux, cualquier
Windows basado en NT e incluso OS/2) son capaces de arrancar
desde una unidad lógica. Sin embargo, el MBR por defecto utilizado por
Windows y DOS sólo es capaz de continuar el proceso de arranque
con una partición primaria. Cuando se utiliza este MBR, es necesario
Página 18

GRUPO LINUX REDES II
que exista por lo menos una partición primaria que contenga un
cargador de arranque (comunmente el NTLDR de Windows). Otros
cargadores de arranque que reemplazan el MBR, como por ejemplo
GRUB, no sufren de esta limitación.
Aplicaciones para la edición de particiones
GParted es el editor de particiones de GNOME. Esta aplicación
es usada para crear, destruir, redimensionar, inspeccionar y copiar
particiones, como también sistemas de archivos. Esto es útil para crear
espacio para nuevos sistemas operativos, para reorganizar el uso del
disco y para crear imágenes de un disco en una partición. QtParted, es
la contraparte de GParted pero para entornos de escritorios KDE.
Gparted se encuentra disponible en un LiveCD, basado en
Slackware y construido sobre la última rama estable núcleo Linux (2.6).
El LiveCD es actualizado con cada lanzamiento de GParted. El LiveCD
de Ubuntu incluye esta aplicación entre sus utilidades. También se
encuentra disponible en una versión LiveUSB
Página 19

GRUPO LINUX REDES II
6.2. PARTICIONES EN CALIENTE6.2.1. Raid
Puede haber muchas buenas razones para usar RAID. Unas pocas son: la
posibilidad de combinar varios discos físicos en un único dispositivo virtual más
grande, o mejoras en el rendimiento y redundancia.
6.2.2. Detalles técnicos
El RAID de Linux puede funcionar sobre la mayoría de los dispositivos de
bloque. No importa si usa dispositivos IDE, SCSI o una mezcla de ambos. Incluso
algunas personas han usado dispositivo de bloque en red (Network Block Device,
NBD) con diferentes grados de éxito.
Asegúrese de que el bus (o buses) de los discos son lo suficientemente
rápidos. No debería tener 14 discos UW-SCSI en un único bus UW, si cada disco
puede dar 10MB/s y el bus sólo puede sostener 40MB/s. Además, sólo debería
tener un dispositivo por bus IDE. El uso de discos como maestro/esclavo es
funesto para el rendimiento. IDE es realmente ineficiente accediendo a más de un
disco por bus. Naturalmente, todas las placas madre modernas tienen dos buses
IDE, por lo que puede configurar dos discos en RAID sin comprar más tarjetas
controladoras.
La capa RAID no tiene absolutamente nada que ver con la capa del
sistema de ficheros. Puede poner cualquier sistema de ficheros sobre un
dispositivo RAID, tal y como haría con cualquier otro dispositivo de bloques.
6.2.3. Niveles RAID
Oficialmente los sistemas RAID se implementan en 7 configuraciones o
niveles: RAID 0 a RAID 6. También existen combinaciones de niveles de RAID,
las combinaciones más comunes son RAID 10 y RAID 0+1.
Modo Lineal (Linear mode) o Dos o más discos se combinan en un único dispositivo físico. Los discos
se adjuntan unos a otros de tal manera que las escrituras en el dispositivo
Página 20

GRUPO LINUX REDES II
RAID primero llenarán el disco 0, a continuación el disco 1 y así
sucesivamente. Los discos no tienen porqué ser del mismo tamaño. De
hecho, los tamaños no importan para nada aquí.
o No existe redundancia en este nivel. Si un disco falla perderá toda su
información con toda probabilidad. Sin embargo, puede tener suerte y
recuperar algunos datos, ya que el sistema de ficheros simplemente habrá
perdido un gran puñado de datos consecutivos.
o El rendimiento de las lecturas y las escrituras no se incrementará para
lecturas/escrituras individuales. Pero si varios usuarios usan el dispositivo,
puede tener la suerte de que un usuario use efectivamente el primer disco
y el otro usuario acceda a ficheros que por casualidad residan en el
segundo disco. Si esto ocurre, verá un aumento en el rendimiento.
RAID-0
o También llamado modo striping o de distribución por bandas. Como el
modo lineal salvo que las lecturas y escrituras se realizan en paralelo en
los dispositivos. Éstos deben tener aproximadamente el mismo tamaño.
Puesto que todos los accesos se realizan en paralelo, los discos se llenan
por igual. Si un dispositivo es mucho mayor que los otros demás, el
espacio extra se utilizará en el dispositivo RAID durante las escrituras en el
extremo superior, aunque sólo se accederá a este disco más grande.
Naturalmente, esto perjudica el rendimiento.
o Como en el modo lineal, tampoco hay redundancia en este nivel. A
diferencia del modo lineal, no será capaz de recuperar ningún dato si un
disco falla. Si elimina un disco de un grupo RAID-0, el dispositivo RAID no
perderá simplemente un bloque consecutivo de datos, sino que se llenará
con pequeños agujeros por todo el dispositivo. Probablemente, e2fsck no
sea capaz de recuperar gran cosa.
o El rendimiento de las lecturas y las escrituras se incrementará, ya que las
lecturas y las escrituras se realizan en paralelo sobre los dispositivos.
Página 21

GRUPO LINUX REDES II
Normalmente, ésta es la razón principal para usar RAID-0. Si los buses a
los discos son suficientemente rápidos, puede obtener casi N*P MB/seg.
RAID-1 o Este es el primer modo que realmente tiene redundancia. RAID-1 se
puede usar en dos o más discos con cero o más discos de reserva. Este
modo mantiene en un disco un duplicado exacto de la información del
otro(s) disco(s). Por supuesto, los discos deben ser del mismo tamaño. Si
un disco es mayor que otro, su dispositivo RAID será del tamaño del disco
más pequeño.
o Si se eliminan (o fallan) hasta N-1 discos, los datos permanecerán
intactos. Si existen discos de reserva disponibles y el sistema (es decir, las
controladoras SCSI o los chipsets IDE, etc.) sobreviven al desastre,
comenzará inmediatamente la reconstrucción de un duplicado en uno de
los discos de reserva, después de la detección del fallo del disco.
o Normalmente, el rendimiento de las lecturas aumenta hasta casi N*P,
mientras que el rendimiento de las escrituras es el mismo que el de un
único dispositivo o, tal vez, incluso menos. Las lecturas se pueden hacer
en paralelo pero, cuando se escribe, la CPU debe transferir N veces la
cantidad de datos que normalmente transferiría (recuerde, se deben enviar
N copias idénticas de todos los datos a los discos).
RAID-4 o Este nivel de RAID no se usa con mucha frecuencia. Se puede usar sobre
3 o más discos. En lugar de duplicar completamente la información, guarda
información de paridad en un único disco y escribe datos a los otros discos
de forma parecida a un RAID-0. Ya que uno de los discos se reserva para
información de paridad, el tamaño del array será (N-1)*S, donde S es el
tamaño del disco más pequeño del array. Como en un RAID-1, los discos
deben ser del mismo tamaño, o de lo contrario tendrá que aceptar que el
valor de S en la fórmula (N-1)*S anterior será el tamaño del disco más
pequeño del array.
Página 22

GRUPO LINUX REDES II
o Si un disco falla, y no es el de paridad, se puede usar la información de
paridad para reconstruir todos los datos. Si dos discos fallan, se perderá
toda la información.
o La razón por la que este nivel no se usa con mucha frecuencia es que la
información de paridad se guarda en un único disco. Esta información se
debe actualizar cada vez que se escribe en uno de los otros discos. Por
eso, el disco de paridad se convertirá en un cuello de botella si no es
mucho más rápido que los otros discos. Sin embargo, si por pura
casualidad tuviera muchos discos lentos y un disco muy rápido, este nivel
de RAID podría resultarle muy útil.
RAID-5
o Este es quizás el modo RAID más útil cuando uno desea combinar un
mayor número de discos físicos y todavía conservar alguna redundancia.
RAID-5 se puede usar sobre 3 o más discos, con cero o más discos de
reserva. El tamaño del dispositivo RAID-5 resultante será (N-1)*S, tal y
como sucede con RAID-4. La gran diferencia entre RAID-5 y RAID-4 es
que la información de paridad se distribuye uniformemente entre los discos
participantes, evitando el problema del cuello de botella del RAID-4.
o Si uno de los discos falla, todos los datos permanecerán intactos, gracias a
la información de paridad. Si existen discos de reserva disponibles, la
reconstrucción comenzará inmediatamente después del fallo del
dispositivo. Si dos discos fallan simultáneamente, todos los datos se
perderán. RAID-5 puede sobrevivir a un fallo de disco, pero no a dos o
más.
o Normalmente, el rendimiento de las lecturas y las escrituras se
incrementará, pero es difícil predecir en qué medida.
RAID-6. Este tipo es similar al RAID-5, pero incluye un segundo esquema
de paridad distribuido por los distintos discos y por tanto ofrece tolerancia
extremadamente alta a los fallos y las caídas de disco. Hay pocos
ejemplos comerciales en la actualidad.
Página 23

GRUPO LINUX REDES II
RAID-7. Este tipo incluye un sistema operativo incrustado de tiempo real
como controlador, haciendo las operaciones de caché a través de un bus
de alta velocidad y otras características de un ordenador sencillo. Un
vendedor ofrece este sistema.
RAID-10. Este tipo ofrece un conjunto de bandas en el que cada banda es
un grupo de discos RAID-1. Esto proporciona mejor rendimiento que el
RAID-1, pero a un costo mucho mayor.
RAID-53. Este tipo ofrece un conjunto de bandas en el cual cada banda es un
conjunto de discos RAID-3. Esto proporciona mejor rendimiento que el RAID-3,
pero a un costo mucho mayor.
6.2.4. Discos de reserva
Los discos de reserva son discos que no forman parte del grupo RAID
hasta que uno de los discos activos falla. Cuando se detecta un fallo de disco, el
dispositivo se marca como defectuoso y la reconstrucción se inicia
inmediatamente sobre el primer disco de reserva disponible.
De esta manera, los discos de reserva proporcionan una buena seguridad
extra, especialmente a sistemas RAID-5 que tal vez, sean difíciles de lograr
(físicamente). Se puede permitir que el sistema funcione durante algún tiempo con
un dispositivo defectuoso, ya que se conserva toda la redundancia mediante los
discos de reserva.
No puede estar seguro de que su sistema sobrevivirá a una caída de disco.
La capa RAID puede que maneje los fallos de dispositivos verdaderamente bien,
pero las controladoras SCSI podrían fallar durante el manejo del error o el chipset
IDE podría bloquearse, o muchas otras cosas.
Página 24

GRUPO LINUX REDES II
6.2.5. Espacio de intercambio (swap) sobre RAID
No hay ninguna razón para usar RAID a fin de aumentar el rendimiento del
sistema de paginación de memoria (swap). El propio núcleo puede balancear el
intercambio entre varios dispositivos si simplemente les da la misma prioridad en
el fichero /etc/fstab.
Un buen fstab se parece a éste:
/dev/sda2 swap swap defaults,pri=1 0 0/dev/sdb2 swap swap defaults,pri=1 0 0/dev/sdc2 swap swap defaults,pri=1 0 0/dev/sdd2 swap swap defaults,pri=1 0 0/dev/sde2 swap swap defaults,pri=1 0 0/dev/sdf2 swap swap defaults,pri=1 0 0/dev/sdg2 swap swap defaults,pri=1 0 0
Esta configuración permite a la máquina paginar en paralelo sobre siete
dispositivos SCSI. No necesita RAID, ya que esa ha sido una característica del
núcleo desde hace mucho tiempo.
Otra razón por la que podría interesar usar RAID para swap es la alta
disponibilidad. Si configura un sistema para arrancar desde, por ejemplo, un
dispositivo RAID-1, el sistema podría ser capaz de sobrevivir a un fallo de disco.
Pero si el sistema ha estado paginando sobre el ahora dispositivo defectuoso,
puede estar seguro de que se vendrá abajo. El intercambio sobre un dispositivo
RAID-1 solucionaría este problema.
Sin embargo, el intercambio sobre RAID-{1,4,5} NO está soportado. Puede
configurarlo, pero fracasará. La razón es que la capa RAID algunas veces reserva
memoria antes de realizar una escritura. Esto produce un bloqueo, quedando en
un punto muerto, ya que el núcleo tendrá que reservar memoria antes de que
pueda intercambiar, e intercambiar antes de que pueda reservar memoria.
Página 25

GRUPO LINUX REDES II
6.2.6. Asuntos hardware
Esta sección mencionará algunos de los asuntos hardware involucrados en
el funcionamiento de un RAID software.
Configuración IDE
En efecto, es posible hacer funcionar un RAID sobre discos IDE. También
se puede obtener un rendimiento excelente. De hecho, el precio actual de los
discos y las controladoras IDE hacen de IDE algo a tener en cuenta cuando se
montan nuevos sistemas RAID.
o Estabilidad física: tradicionalmente, los discos IDE han sido de peor
calidad mecánica que los discos SCSI. Incluso hoy en día, la garantía de
los discos IDE es típicamente de un año, mientras que, a menudo, es de 3
a 5 años en los discos SCSI. Aunque no es justo decir que los discos IDE
son por definición de menor calidad, uno debería ser consciente de que los
discos IDE de algunas marcas pueden fallar con más frecuencia que los
discos SCSI similares. Sin embargo, otras marcas usan exactamente la
misma estructura mecánica tanto para los discos SCSI como para los
discos IDE. Todo se reduce a: todos los discos fallan, tarde o temprano, y
uno debería estar preparado para ello.
o Integridad de los datos: al principio, IDE no tenía forma de asegurar que
los datos enviados a través del bus IDE eran los mismos que los datos
escritos realmente en el disco. Esto se debió a la falta total de paridad,
sumas de verificación (checksums), etc. Ahora, con el estándar UltraDMA,
los dispositivos IDE realizan una suma de verificación sobre los datos que
reciben y por eso es altamente improbable que los datos se corrompan.
o Rendimiento: no voy a escribir aquí sobre el rendimiento de IDE de forma
detallada. Una historia realmente breve sería:
Los dispositivos IDE son rápidos (12 MB/s y más)
Página 26

GRUPO LINUX REDES II
IDE tiene una mayor sobrecarga de CPU que SCSI (pero, ¿a quién le preocupa?)
Sólo usa un disco IDE por bus, los discos esclavos deterioran el rendimiento.
o Resistencia a los fallos: la controladora IDE normalmente sobrevive a un
dispositivo IDE que ha fallado. La capa RAID marcará el disco como
defectuoso y, si está trabajando con un RAID de nivel 1 o superior, la
máquina debería trabajar igual de bien hasta que la desconecte para su
mantenimiento.
Es muy importante que sólo use un disco IDE por bus IDE. Dos discos no
sólo arruinarían el rendimiento sino que, también, el fallo de un disco a menudo
garantiza el fallo del bus y, por tanto, el fallo de todos los discos de ese bus. En
una configuración RAID tolerante a fallos (RAID de niveles 1, 4, 5) el fallo de un
disco se puede manejar, pero el fallo de dos discos (los dos discos del bus que ha
fallado debido a uno de ellos) dejará el array inutilizable. También, el dispositivo
esclavo o la controladora IDE de un bus pueden confundirse de manera horrible
cuando el dispositivo maestro del bus falla. Un bus, un disco, esa es la regla.
Existen controladoras IDE PCI baratas. A menudo puede obtener 2 o 4
buses por unos 80 dólares. Considerando el precio mucho más bajo de los discos
IDE respecto a los discos SCSI, diría que un array de discos IDE podría ser una
solución realmente buena si uno puede vivir con los relativamente pocos discos
(unos 8 probablemente) que se pueden conectar a un sistema típico (a menos
que, naturalmente, tenga muchas ranuras PCI para dichas controladoras IDE).
6.2.7. Cambio de discos en caliente (Hot-Swap)
Éste ha sido un tema de actualidad en la lista linux-kernel durante algún
tiempo. Aunque el intercambio en caliente de los dispositivos está soportado hasta
cierto punto, todavía no es algo que se pueda hacer fácilmente.
Página 27

GRUPO LINUX REDES II
6.2.8. Intercambio en caliente de dispositivos IDE
IDE no soporta en modo alguno el intercambio en caliente. Seguro, puede
funcionar para usted si compila el soporte IDE como módulo (sólo posible en la
serie 2.2.x del núcleo) y lo vuelve a cargar después de que haya reemplazado el
dispositivo. Pero también puede terminar perfectamente con una controladora IDE
frita y observará que el período de dicho sistema fuera de servicio será mucho
mayor que habiendo reemplazado el dispositivo con el sistema apagado.
El principal problema, aparte de los aspectos eléctricos que pueden
destruir su hardware, es que se debe reexplorar el bus IDE después de que se
hayan intercambiado los discos. El manejador IDE actual no puede hacer eso. Si
el nuevo disco es 100% idéntico al antiguo (geometría, etc.) puede que funcione
incluso sin volver a explorar el bus pero, créame, aquí está caminando por el filo
de la navaja.
6.2.9. Intercambio en caliente (Hot-Swap) de dispositivos SCSI
El hardware SCSI normal tampoco es capaz de soportar intercambios en
caliente. Sin embargo, puede que funcione. Si su manejador SCSI soporta la
reexploración del bus y la conexión y desconexión de dispositivos, puede ser
capaz de intercambiar dispositivos en caliente. Sin embargo, en un bus SCSI
normal probablemente no debería desenchufar dispositivos mientras su sistema
esté todavía encendido. Pero, le repito, puede que funcione simplemente (y
también puede terminar con su hardware frito).
La capa SCSI debería sobrevivir si un disco muere, pero no todos los
manejadores SCSI soportan esto todavía. Si su manejador SCSI muere cuando
un disco cae, su sistema caerá con él y la conexión en caliente no será
verdaderamente interesante entonces.
Página 28

GRUPO LINUX REDES II
1.1.1. Intercambio en caliente con SCA
Con SCA debería ser posible conectar dispositivos en caliente. Sin
embargo, no poseo el hardware para probar esto y no he oído de nadie que lo
haya probado, por lo que verdaderamente no puedo dar ninguna receta de cómo
hacer esto.
De todos modos, si quiere jugar con esto, debería conocer los aspectos
internos de SCSI y de RAID. Por tanto, no voy a escribir aquí nada que no pueda
comprobar que funciona. En cambio, sí puedo proporcionarle algunas pistas:
Busque la cadena remove-single-device en linux/drivers/scsi/scsi.c
Eche un vistazo a raidhotremove y raidhotadd
No todos los manejadores SCSI soportan la conexión y desconexión de
dispositivos. En la serie 2.2 del núcleo, al menos los manejadores de la
controladoras Adaptec 2940 y Symbios NCR53c8xx parecen soportarlo.
7. SISTEMAS DE ARCHIVOS
El sistema de archivos especifica la forma física según la cual se
grabarán los datos en el Disco Duro. Para utilizar un Disco Duro, éste se
divide en particiones (que son como discos menores virtuales). Cada partición
puede formatearse con un sistema de archivos diferente. Linux maneja varios
sistemas de archivos:
El estándar se denomina Ext.
Ext2 (second extended filesystem o “segundo sistema de archivos
extendido”). Fue diseñado originalmente por Rémy Card. La principal
desventaja de ext2 es que no implementa el registro por diario o
Página 29

GRUPO LINUX REDES II
bitácora (en inglés Journaling) que sí implementa su sucesor ext3, el
cual es totalmente compatible. ext2 fue el sistema de ficheros por
defecto de las distribuciones de Linux Red Hat Linux, Fedora Core y
Debian hasta ser reemplazado por ext3.
La razón de algunos límites en el sistema de archivos ext2 son el
formato de archivo de los datos y el kernel del sistema operativo.
Mayormente estos factores se determinará una vez que cuando el
sistema de archivos es creado. El tamaño de bloque de 8 KB sólo son
posibles en arquitectura alfa por defecto.
El journaling (registro por diario) es un mecanismo por el cual
un sistema informático puede implementar transacciones. Se
basa en llevar un journal o registro de diario en el que se
almacena la información necesaria para restablecer los datos
afectados por la transacción en caso de que ésta falle. Las
aplicaciones más frecuentes de los sistemas de journaling se
usan para implementar transacciones de sistemas de bases
de datos y, más recientemente, para evitar la corrupción de
las estructuras de datos en las que se basan los sistemas de
archivos modernos.
Ext3 (third extended filesystem o “tercer sistema de archivos
extendido”) es un sistema de archivos con registro por diario
(journaling). Es el sistema de archivo más usado en distribuciones
Linux. La principal diferencia con ext2 es el registro por diario. Un
sistema de archivos ext3 puede ser montado y usado como un sistema
de archivos ext2. Tiene la ventaja de permitir actualizar de ext2 a ext3
sin perder los datos almacenados ni tener que formatear el disco. Tiene
un menor consumo de CPU y está considerado más seguro que otros
sistemas de ficheros en Linux dada su relativa sencillez y su mayor
Página 30

GRUPO LINUX REDES II
tiempo de prueba. El sistema de archivo ext3 agrega a ext2 lo
siguiente:
- Registro por diario.
- Índices en árbol para directorios que ocupan múltiples
bloques.
- Crecimiento en línea.
Ext4 (fourth extended filesystem o "cuarto sistema de archivos
extendido") es un sistema de archivos con registro por diario,
anunciado el 10 de octubre de 2006 por Andrew Morton, como una
mejora compatible de EXT3. Las principales mejoras son:
- Soporte de volúmenes de hasta 1024 PiB (250 bytes).
- Soporte añadido de extent.
- Menor uso del CPU.
- Mejoras en la velocidad de lectura y escritura.
- El sistema de archivos ext4 es capaz de trabajar con volúmenes de
hasta 1 exbibyte (EiB = 260 bytes)http://es.wikipedia.org/wiki/Ext4 -
cite_note-0 y ficheros de tamaño de hasta 16 TiB
Compatibilidad con Windows: Entre los sistemas de archivos que
GNU Linux es capaz de manejar se encuentra FAT (todas las
versiones). FAT es el sistema de archivos de MS-DOS y Windows
(hasta su versión 98), por tanto se puede leer y escribir de particiones
Windows sin problema. También maneja NTFS (sólo en modo lectura);
este sistema es el que utilizan Windows NT, XP, 2000, etc. por defecto.
Es decir, que podremos leer (no se recomienda ni asegura la escritura,
que además es limitada) este tipo de particiones de Windows.
SWAP: Linux, para asegurarse que nunca se queda sin memoria
virtual, aconseja crear una partición con este sistema de archivos para
memoria de intercambio. La swap del mismo tamaño que la RAM para
equipos con menos de 1GB. La swap de la mitad de RAM para equipos
Página 31

GRUPO LINUX REDES II
de entre 2GB y 4GB. La swap de 2GB para equipos con más de 4GB
de RAM.
Otras particiones: hay más sistemas propios de Linux como XFS (es
un sistema de archivos de 64 bits con journaling de alto rendimiento)
para su implementación de UNIX llamada IRIX) y ReiserFS (sistema
de archivos de propósito general). También es capaz de utilizar
sistemas de archivos de otras arquitecturas.
Soporta todos los sistemas de archivos de CDs y DVDs utilizados por
Windows y algunos más.
8. FUNCIONAMIENTO INTERNO DE LINUX
Linux es un núcleo de sistema operativo libre tipo Unix. Es utilizado por
la familia de sistemas operativos GNU/Linux. Lanzado bajo lalicencia pública
general de GNU y desarrollado gracias a contribuciones provenientes de todo
el mundo.
8.1.TIPOS DE NÚCLEOS
Hay cuatro grandes tipos de núcleos:
Página 32

GRUPO LINUX REDES II
- Los núcleos monolíticos facilitan abstracciones del hardware
subyacente realmente potentes y variadas.
- Los micronúcleos (en inglés microkernel) proporcionan un
pequeño conjunto de abstracciones simples del hardware, y usan las
aplicaciones llamadas servidores para ofrecer mayor funcionalidad.
- Los núcleos híbridos (micronúcleos modificados) son muy
parecidos a los micronúcleos puros, excepto porque incluyen código
adicional en el espacio de núcleo para que se ejecute más
rápidamente.
- Los exonúcleos no facilitan ninguna abstracción, pero permiten el
uso de bibliotecas que proporcionan mayor funcionalidad gracias al
acceso directo o casi directo al hardware.
8.2.ARQUITECTURA DEL KERNEL
Actualmente Linux es un núcleo monolítico híbrido.
Los controladores de dispositivos y las extensiones del núcleo
normalmente se ejecutan en un espacio privilegiado conocido como anillo
0 (ring 0), con acceso irrestricto al hardware, aunque algunos se ejecutan
en espacio de usuario. A diferencia de los núcleos monolíticos
tradicionales, los controladores de dispositivos y las extensiones al núcleo
se pueden cargar y descargar fácilmente como módulos, mientras el
sistema continúa funcionando sin interrupciones. También, a diferencia de
los núcleos monolíticos tradicionales, los controladores pueden ser
prevolcados (detenidos momentáneamente por actividades más
importantes) bajo ciertas condiciones. Esta habilidad fue agregada para
gestionar correctamente interrupciones de hardware, y para mejorar el
soporte de Multiprocesamiento Simétrico.
El hecho de que Linux no fuera desarrollado siguiendo el diseño de
un micronúcleo (diseño que, en aquella época, era considerado el más
apropiado para un núcleo por muchos teóricos informáticos) fue asunto de
Página 33

GRUPO LINUX REDES II
una famosa y acalorada discusión entre Linus Torvalds y Andy
Tanenbaum.
A diferencia de los núcleos monolíticos tradicionales, los
controladores de dispositivos son fácilmente configurables como módulos
del núcleo cargables, y se pueden cargar o descargar mientras se está
ejecutando el sistema.
8.3.VERSIONES
Más allá de haber desarrollado su propio código y de integrar los
cambios realizados por otros programas, Linus Torvalds continua lanzando
nuevas versiones del núcleo Linux. Estos son llamados núcleos “vanilla”, lo
que significa que no han sido modificados por nadie. Muchos desarrolladores
de distribuciones GNU/Linux modifican dicho núcleo en sus productos,
principalmente para agregarle soporte a dispositivos o herramientas que no
fueron oficialmente lanzadas como estables, mientras que algunas
distribuciones, como Slackware, mantienen el núcleo vanilla.
Numeración
La versión del núcleo Linux actualmente consta de cuatro números. Por
ejemplo, asumamos que el número de la versión está compuesta de esta
forma: A.B.C[.D] (ej.: 2.2.1, 2.4.13 ó 2.6.12.3).
El número A denota la versión del núcleo. Es el que cambia con menor
frecuencia y solo lo hace cuando se produce un gran cambio en el código o
en el concepto del núcleo. Históricamente sólo ha sido modificado dos
veces: en 1994 (versión 1.0) y en 1996 (versión 2.0).
El número B denota la subversión del núcleo.
Página 34

GRUPO LINUX REDES II
- Antes de la serie de Linux 2.6.x, los números pares indicaban la
versión “estable” lanzada. Por ejemplo una para uso de fabricación,
como el 1.2, 2.4 ó 2.6. Los números impares, en cambio, como la
serie 2.5.x, son versiones de desarrollo, es decir que no son
consideradas de producción.
- Comenzando con la serie Linux 2.6.x, no hay gran diferencia entre
los números pares o impares con respecto a las nuevas
herramientas desarrolladas en la misma serie del núcleo. Linus
Torvalds dictaminó que este será el modelo en el futuro.
El número C indica una revisión mayor en el núcleo. En la forma anterior de
versiones con tres números, esto fue cambiado cuando se implementaron
en el núcleo los parches de seguridad, bugfixes, nuevas características o
drivers. Con la nueva política, solo es cambiado cuando se introducen
nuevos drivers o características; cambios menores se reflejan en el
número D.
El número D se produjo cuando un grave error, que requiere de un arreglo
inmediato, se encontró en el código NFS de la versión 2.6.8. Sin embargo,
no habían otros cambios como para lanzar una nueva revisión (la cual
hubiera sido 2.6.9). Entonces se lanzó la versión 2.6.8.1, con el error
arreglado como único cambio. Con 2.6.11, esto fue adoptado como la
nueva política de versiones. Bug-fixes y parches de seguridad son
actualmente manejados por el cuarto número dejando los cambios
mayores para el número C.
También, algunas veces luego de las versiones puede haber algunas
letras como “rc1” o “mm2”. El “rc” se refiere a release candidate e indica un
lanzamiento no oficial. Otras letras usualmente (pero no siempre) hacen
referencia a las iniciales de la persona. Esto indica una bifurcación en el
desarrollo del núcleo realizado por esa persona, por ejemplo ck se refiere
aCon Kolivas, ac a Alan Cox, mientras que mm se refiere a Andrew Morton.
Página 35

GRUPO LINUX REDES II
El modelo de desarrollo para Linux 2.6 fue un cambio significativo
desde el modelo de desarrollo de Linux 2.5. Previamente existía una rama
estable (2.4) donde se habían producido cambios menores y seguros, y una
rama inestable (2.5) donde estaban permitidos cambios mayores. Esto
significó que los usuarios siempre tenían una versión 2.4 a prueba de fallos y
con lo último en seguridad y casi libre de errores, aunque tuvieran que
esperar por las características de la rama 2.5. La rama 2.5 fue eventualmente
declarada estable y renombrada como 2.6. Pero en vez de abrir una rama 2.7
inestable, los desarrolladores de núcleos eligieron continuar agregando los
cambios en la rama “estable” 2.6. De esta forma no había que seguir
manteniendo una rama vieja pero estable y se podía hacer que las nuevas
características estuvieran rápidamente disponibles y se pudieran realizar más
test con el último código.
Sin embargo, el modelo de desarrollo del nuevo 2.6 también significó
que no había una rama estable para aquellos que esperaban seguridad y bug
fixes sin necesitar las últimas características. Los arreglos solo estaban en la
última versión, así que si un usuario quería una versión con todos los bug
fixed conocidos también tendría las últimas características, las cuales no
habían sido bien testeadas. Una solución parcial para esto fue la versión ya
mencionada de cuatro números (y en 2.6.x.y), la cual significaba lanzamientos
puntuales creados por el equipo estable (Greg Kroah-Hartman, Chris Wright, y
quizás otros). El equipo estable solo lanzaba actualizaciones para el núcleo
más reciente, sin embargo esto no solucionó el problema del faltante de una
serie estable de núcleo. Distribuidores de GNU/Linux, como Red
Hat y Debian, mantienen los núcleos que salen con sus lanzamientos, de
forma que una solución para algunas personas es seguir el núcleo de una
distribución.
Como respuesta a la falta de un núcleo estable y de gente que
coordinara la colección de corrección de errores, en diciembre de 2005 Adrian
Bunk anunció que continuaría lanzando núcleos 2.6.16 aun cuando el equipo
Página 36

GRUPO LINUX REDES II
estable lanzara 2.6.17. Además pensó en incluir actualizaciones de
controladores, haciendo que el mantenimiento de la serie 2.6.16 sea muy
parecido a las viejas reglas de mantenimiento para las serie estables como
2.4. El núcleo 2.6.16 será reemplazado próximamente por el 2.6.27 como
núcleo estable en mantenimiento durante varios años.
Línea de tiempo del Linux
Página 37

GRUPO LINUX REDES II
8.4.FUNCIONES GENERALMENTE DEL NÚCLEO
Los núcleos tienen como funciones básicas garantizar la carga y la
ejecución de los procesos, las entradas/salidas y proponer un interfaz entre el
espacio núcleo y los programas del espacio del usuario.
Aparte de las funcionalidades básicas, el conjunto de las funciones de
los puntos siguientes (incluidos los pilotos materiales, las funciones de redes y
sistemas de ficheros o los servicios) necesariamente no son proporcionados
por un núcleo de sistema de explotación. Pueden establecerse estas
funciones del sistema de explotación tanto en el espacio usuario como en el
propio núcleo. Su implantación en el núcleo se hace en el único objetivo de
mejorar los resultados. En efecto, según la concepción del núcleo, la misma
función llamada desde el espacio usuario o el espacio núcleo tiene un coste
temporal obviamente diferente. Si esta llamada de función es frecuente,
puede resultar útil integrar estas funciones al núcleo para mejorar los
resultados.
9. REPOSITORIO
Un repositorio, depósito o archivo es un sitio centralizado donde se
almacena y mantiene información digital, habitualmente bases de
datos o archivos informáticos.
Estos programas están almacenados en archivos de software
(“repositorios”) y están disponibles para ser instalados a través de internet.
Esto hace que sea muy fácil instalar nuevos programas. Es también muy
Página 38

GRUPO LINUX REDES II
seguro, ya que cada programa que instalas está probado a fondo y creado
específicamente para Ubuntu.
Los repositorios de software de Ubuntu se organizan en cuatro "componentes", en base al nivel de soporte que Ubuntu puede ofrecer de
ellos, y en base a si cumplen o no la Filosofía de Software Libre de Ubuntu.
Los componentes son llamados Main (software soportado
oficialmente), Restricted (software soportado que no está disponible bajo una
licencia completamente libre), Universe (mantenido por la comunidad, p.e.
software no soportado oficialmente) y Multiverse (software que “no es libre”).
Puedes encontrar más información sobre los repositorios de Ubuntu
en componentes de los repositorios.
9.1.RPM
RPM Package Manager, anteriormente conocido como Red Hat
Package Manager y que es más conocido por su nombre abreviado RPM, es
un poderoso administrador de paquetes, que puede ser utilizado para
construir, instalar, consulta, verificar, actualizar y borrar paquetes de software
individuales. RPM viene instalado de modo predeterminado en Red Hat Enterprise Linux, Fedora, CentOS,White Box Enterprise Linux, SuSE Linux, OpenSuSE, Mandriva y distribuciones derivadas de estas.
Para instalar el programa rpm en unbuntu:
Sudo apt-get install rpm
9.1.1. INSTRUCCIONES DE INSTALACIÓN PARA .RPM
- Haga clic en el enlace de descarga de .rpm. Aparecerá un cuadro de
diálogo en el que se solicita la ubicación en la que desea guardar el
archivo.
- Guarde el archivo .rpm en el escritorio y espere a que el archivo se
descargue por completo.Página 39

GRUPO LINUX REDES II
- En el terminal, navegue hasta el escritorio e introduzca # rpm -Uvh <rpm_package_file>. Haga clic en Intro. (Nota: Esto debe llevarse a cabo
como usuario origen). El programa de instalación solicitará que se cierre el
explorador.
- Cuando la instalación finalice, el plug-in se habrá instalado en el explorador
Mozilla. Para realizar una comprobación, inicie Mozilla y consulte la
información relativa a plug-ins en el menú Ayuda del explorador.
9.1.2. CONSULTA DE PAQUETERÍA INSTALADA EN EL SISTEMA
Si se desea conocer si está instalado un paquete en particular, se
utiliza el mandato rpm con la opción -q, que realiza una consulta (query)
en la base de datos por un nombre de paquete en particular. En el
siguiente mandato, donde como ejemplo se preguntara a RPM si está
instalado el paquete traceroute:
rpm -q tracerouteLo anterior debe devolver una salida similar a la siguiente:
traceroute-2.0.1-2.el5
Si se desea conocer que informacion incluye el paquete
traceroute, se utiliza el mandato rpm con las opciones -qi, para hacer la
consulta y solicitar informacion del paquete(query info). En el siguiente
ejemplo se consulta al mandato rpm por la informacion del paquete
traceroute:
rpm -qi traceroute
Lo anterior debe devolver una salida similar a la siguiente:
Name : traceroute Relocations: (not relocatable)Version : 2.0.1 Vendor: CentOS
Página 40

GRUPO LINUX REDES II
Release : 2.el5 Build Date: sab 06 ene 2007 04:02:13 CSTInstall Date: mie 30 abr 2008 11:46:09 CDT Build Host: builder5.centos.orgGroup : Applications/Internet Source RPM: traceroute-2.0.1-2.el5.src.rpmSize : 59726 License: GPLSignature : DSA/SHA1, mar 03 abr 2007 19:28:12 CDT, Key ID a8a447dce8562897URL : http://dmitry.butskoy.name/tracerouteSummary : Traces the route taken by packets over an IPv4/IPv6 networkDescription : The traceroute utility displays the route used by IP packets on their way to a specified network (or Internet) host. Traceroute displaysthe IP number and host name (if possible) of the machines along the route taken by the packets. Traceroute is used as a network debugging tool. If you're having network connectivity problems, traceroute will show you where the trouble is coming from along the route. Install traceroute if you need a tool for diagnosing network connectivity problems.
opciones -ql, donde se realiza una consulta listando los
componentes que lo integran (query list).Si se desea conocer que
componentes instalo el paquete traceroute, utilice el siguiente mandato:
rpm -ql traceroute
Lo anterior debe devolver una salida similar a la siguiente:
/bin/traceroute/bin/traceroute/bin/traceroute6/bin/tracert/usr/share/doc/traceroute-2.0.1/usr/share/doc/traceroute-2.0.1/COPYING/usr/share/doc/traceroute-2.0.1/CREDITS/usr/share/doc/traceroute-2.0.1/README/usr/share/doc/traceroute-2.0.1/TODO/usr/share/man/man8/traceroute.8.gz
Mandato rpm con las opciones -qf, que realizan una consulta por un
fichero en el sistema de archivos (query file). En el siguiente ejemplo se
consultara a la mandato rpm a que paquete pertenece el fichero
/etc/crontab:
rpm -qf /etc/crontab
Lo anterior debe devolver una salida similar a la siguiente:
Página 41

GRUPO LINUX REDES II
crontabs-1.10-8
Si desea consultar la lista completa de paquetes instalados en el
sistema, utilice el siguientemandato, donde -qa significa consultar todo
(query all):
rpm –qa
Debido a que lo anterior devuelve una lista demasiado grande para
poderla visualizar con comodidad, puede utilizarse less o more como
subrutina:
rpm -qa |less
Si se quiere localizar un paquete o paquetes en particular, se puede
utilizar el mandato rpm con las opciones -qa y utilizar grep como
subrutina. En el siguiente ejemplo se hace una consulta donde se quiere
conocer que paquetes estan instalado en el sistema y que incluyan la
cadena php en el nombre.
rpm -qa |grep php
Lo anterior pudiera devolver una salida similar a la siguiente:
php-5.1.6-15.el5php-mbstring-5.1.6-15.el5php-pear-1.4.9-4php-ldap-5.1.6-15.el5php-cli-5.1.6-15.el5php-mysql-5.1.6-15.el5php-odbc-5.1.6-15.el5php-common-5.1.6-15.el5php-pdo-5.1.6-15.el5
Si se quiere revisar en orden cronologico, de mas nuevos a mas
antiguos, que paquetes están instalados, se puede agregar a -qa la
opcion --last, y less o more como subrutina para visualizar con
comodidad la salida.
rpm -qa --last|less
Página 42

GRUPO LINUX REDES II
Lo anterior devuelve una salida extensa dentro con less como
visor. Pulse la teclas de arriba (↑) y abajo (↓) o Av. Pág. y Reg. Pág. para
desplazarse en la lista. Pulse la tecla q para salir.
Si se quiere verificar si los componentes instalados por un
paquete RPM han sido modificados o alterados o eliminados, se puede
utilizar el mandato rpm con la opcion -V, la cual realiza unaverificacion
de la integridad de los componentes de acuerdo a las firmas digitales de
cada componente (MD5SUM o suma MD5). En el siguiente ejemplo se
verificara si el paquete crontabs ha sido alterado:
rpm -V crontabs
Si algun componente fue modificado, puede devolverse una salida
similar a la siguiente, donde el fichero /etc/crontab fue modificado tras su
instalacion:
S.5....T c /etc/crontab
Si se desea realizar una verificacion de todos los componentes
del sistema, se puede utilizar el mandato rpm con las opciones -Va, que
hace una consulta, especifica todos los paquetes, y solicita se verifique
si hubo cambios (query all Verify).
rpm –Va
Lo anterior puede devolver una salida muy extensa, pero sin duda
alguna mostrara todos los componentes que fueron modificados o
alterados o eliminados tras la instalacion del paquete al que pertenecen.
Un ejemplo de una salida comun seria:
.......T c /etc/pki/nssdb/cert8.db
.......T c /etc/pki/nssdb/key3.db
..5....T c /etc/pki/nssdb/secmod.dbS.5....T c /etc/crontab.......T c /etc/inittabS.5....T c /etc/rc.d/rc.localS.5....T c /etc/mail/accessS.5....T c /etc/mail/local-host-namesS.5....T c /etc/mail/sendmail.cfS.5....T c /etc/mail/sendmail.mc
Página 43

GRUPO LINUX REDES II
9.1.3. INSTALACION DE PAQUETES MEDIANTE RPM
La mayoria de los distribuidores serios de equipamiento logico
en formato RPM siempre utilizan una firma digital PG/GnuPG para
garantizar que estos son confiables y como un metodo de evitar que
paquetes alterados pasen por el usuario administrador del sistema y
sistemas de gestion de paquetes como yum, up2date, Yast, Pup, etc.,
sin ser detectados. Las firmas digitales de los responsables de la
distribucion siempre incluyen firmas digitales en el disco de instalacion
o bien en alguna parte del sistema de archivos. En el caso de CentOS
y Red Hat Enterprise, las firmas digitales estan en /usr/share/doc/rpm-*/
o bien /usr/share/rhn/. Algunos distribuidores pueden tener estas firmas
en algun servidor HTTP o FTP. Para importar una firma digital, se
utiliza el mandato rpm con la opcion --import. Para ejemplificar, realice
el siguiente procedimiento:
rpm --import http://www.alcancelibre.org/al/AL-RPM-KEY
Lo anterior importa la firma digital de Alcance Libre y permitira
detectar si un paquete de Alcance Libre fue alterado o esta corrupto o
si fue danado. Si se utiliza yum para gestionar la paqueteria, este de
modo predeterminado impide instalar paquetes que si estos carecen de
una firma digital que este instalada en la base de datos de RPM.
Cuando se desee instalar un paquete con extension *.rpm,
siempre es conveniente revisar dicho paquete. Hay varias formas de
verificar su contenido antes de proceder a instalado. Para fines
demostrativos ingrese hacia http://www.alcancelibre.org/al/webapps/ y
descarge el paquete tnef.
Una vez descargado el paquete tnef, se puede verificar la
informacion de dicho paquete utilizando el mandato rpm con las
opciones -qp, para realizar la consulta especificando que se trata de un
paquete RPM (query package), y la opcion -i, para solicitar informacion.
Página 44

GRUPO LINUX REDES II
rpm -qpi tnef-1.2.3.1-1.1.el5.al.i386.rpm
Lo anterior debe devolver una salida similar a la siguiente:
Name : tnef Relocations: /usr
Version : 1.2.3.1 Vendor: Alcance Libre, Inc.
Release : 1.1.el5.al Build Date: mie 02 may 2007 14:06:59 CDT
Install Date: (not installed) Build Host: localhost.localdomain
Group : Mail/Encoders Source RPM: tnef-1.2.3.1-
1.1.el5.al.src.rpm
Size : 134695 License: GPL
Signature : DSA/SHA1, mie 02 may 2007 14:07:00 CDT, Key ID 91004df87c080b33
Packager : Joel Barrios <http://joel-barrios.blogspot.com/>
URL : http://tnef.sourceforge.net
Summary : Decodes MS-TNEF attachments.
Description : TNEF is a program for unpacking MIME attachments of type
"application/ms-tnef". This is a Microsoft only attachment.
Due to the proliferation of Microsoft Outlook and Exchange mail servers, more and
more mail is encapsulated into this format.
The TNEF program allows one to unpack the attachments which were encapsulated
into the TNEF attachment. Thus alleviating the need to use Microsoft Outlook to view
the attachment.
Si se desea conocer que componentes va a instalar un paquete
RPM en particular, se puede utilizar el mandato rpm con las opciones -qpl, para realizar la consulta, especificar que se trata de un paquete RPM y
para solicitar la lista de componentes (query package list). En el siguiente
ejemplo se realiza esta consulta contra el paquete tnef-1.2.3.1-1.1.el5.al.i386.rpm:
rpm -qpl tnef-1.2.3.1-1.1.el5.al.i386.rpm
Lo anterior debe devolver una salida similar a la siguiente:
/usr/bin/tnef
Página 45

GRUPO LINUX REDES II
/usr/man/man1/tnef.1.gz
/usr/share/doc/tnef-1.2.3.1
/usr/share/doc/tnef-1.2.3.1/AUTHORS
/usr/share/doc/tnef-1.2.3.1/BUGS
/usr/share/doc/tnef-1.2.3.1/COPYING
/usr/share/doc/tnef-1.2.3.1/ChangeLog
/usr/share/doc/tnef-1.2.3.1/NEWS
/usr/share/doc/tnef-1.2.3.1/README
/usr/share/doc/tnef-1.2.3.1/TODO
Para verificar si las firmas digitales de un paquete RPM son las mismas
y el paquete no ha sido alterado, se puede utilizar el mandato rpm con las
opcion -K, que solicita verificar firmas digitales de un paquete RPM (Keys):
rpm -K tnef-1.2.3.1-1.1.el5.al.i386.rpm
Si el paquete esta integro, debe devolver una salida similar a la
siguiente:
tnef-1.2.3.1-1.1.el5.al.i386.rpm: (sha1) dsa sha1 md5 gpg OK
Si el paquete RPM fue danado, alterado o esta corrupto, puede
devolver una salida similar a la siguiente:
tnef-1.2.3.1-1.1.el5.al.i386.rpm: (sha1) dsa sha1 MD5 GPG NOT OK
Para instalar un paquete, se utiliza el mandato rpm con las
opciones -ivh, que significa instalar,devolver una salida descriptiva y mostrar
una barra de progreso (install verbose hash). Si el paquete no hace conflicto
con otro y/o no sobreescribe componentes de otro paquete, se procedera a
instalar el mismo. En el siguiente ejemplo se instalara el paquete tnef-1.2.3.1- 1.1.el5.al.i386.rpm:
rpm -ivh tnef-1.2.3.1-1.1.el5.al.i386.rpm
Página 46

GRUPO LINUX REDES II
Lo anterior debe devolver una salida similar a la siguiente:
Preparing... ############################### [100%]1:tnef #################################### [100%]
Si hubiera una version de este paquete instalada en el sistema, rpm -ivh no realizara la instalacion y devolvera un mensaje respecto a que la esta
instalado dicho paquete. Repita el siguiente mandato:
rpm -ivh tnef-1.2.3.1-1.1.el5.al.i386.rpm
Al ya haber sido instalado el paquete tnef, el sistema debera devolver
una salida similar a la siguiente:
Preparing... ################################## [100%]
package tnef-1.2.3.1-1.1.el5.al is already installed
Hay circunstancias y escenarios donde se requiere reinstalar de nuevo
el paquete. Para lograr esto se agrega la opcion --force para forzar la
reinstalacion de un paquete. En el siguiente ejemplo se solicita al mandato
rpm forzar la reinstalacion de el paquete tnef-1.2.3.1-1.1.el5.al.i386.rpm:
rpm -ivh --force tnef-1.2.3.1-1.1.el5.al.i386.rpm
Lo anterior debe devolver una salida similar a la siguiente:
Preparing... ########################### [100%]
1:tnef ################################ [100%]
Para verificar las dependencias de un paquete descargado, se utiliza el
mandato rpm con las opciones -qp y --requires, la cual consulta las
dependencias del paquete. En el siguiente ejemplo, se ha descargado el
paquete joomla-1.0.15-2.9.el5.al.noarch.rpm desde
Página 47

GRUPO LINUX REDES II
http://www.alcancelibre.org/al/webapps/, y se procede a consultar sus
dependencias:
rpm -qp --requires joomla-1.0.15-2.9.el5.al.noarch.rpm
Lo anterior debe devolver una salida similar a la siguiente:
config(joomla) = 1.0.15-2.9.el5.alhttpdphp >= 5php-mysqlphp-xmlrpmlib(CompressedFileNames) <= 3.0.4-1rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Pueden hacerse consultas a la inversa de lo anterior, es decir,
consultar al mandato rpm que paquete provee alguna dependencia en
particular. En el siguiente ejemplo se solicitara al mandato rpm que paquete
provee la dependencia php.rpm -q --whatprovides php
Lo anterior debe devolver una salida similar a la siguiente:
php-5.1.6-15.el5
Tambien puede consultarse que requiere de un paquete o componente
en particular. En el siguiente ejemplo se consulta al mandato rpm que
paquetes requieren al paquete httpd. rpm -q --whatrequires httpd Lo anterior
puede devolver una salida similar a la siguiente:
system-config-httpd-1.3.3.1-1.el5
squirrelmail-1.4.8-4.0.1.el5.centos.2
squirrelmail-1.4.8-4.0.1.el5.centos.2
gnome-user-share-0.10-6.el5
De ser necesario, se puede incluso hacer consultas respecto a ficheros
(como bibliotecas compartidas) para conocer que paquetes dependen de
estos. En el siguiente ejemplo se consulta la mandato rpm que paquetes
requieren a la biblioteca libbz2.so.1:
Página 48

GRUPO LINUX REDES II
rpm -q --whatrequires libbz2.so.1
Lo anterior debe devolver una salida similar a la siguiente, y que
consiste en una lista de paquetes RPM instalados en el sistema:
bzip2-libs-1.0.3-3
bzip2-1.0.3-3
python-2.4.3-19.el5
gnupg-1.4.5-13
elinks-0.11.1-5.1.0.1.el5
rpm-4.4.2-47.el5
rpm-libs-4.4.2-47.el5
rpm-python-4.4.2-47.el5
gnome-vfs2-2.16.2-4.el5
libgsf-1.14.1-6.1
php-cli-5.1.6-15.el5
php-5.1.6-15.el5
kdelibs-3.5.4-13.el5.centos
ImageMagick-6.2.8.0-4.el5_1.1
Para instalar o actualizar un paquete, se utiliza el mandato rpm con las
opciones -Uvh, que significa instalar o actualizar, devolver una salida
descriptiva y mostrar una barra de progreso (update verbose hash), y se
procede a instalar y/o actualizar el mismo:
rpm -Uvh joomla-1.0.15-2.9.el5.al.noarch.rpm
Si falta alguna de las dependencias, el sistema devolvera una salida
similar a la siguiente:
error: Failed dependencies: php-xml is needed by joomla-1.0.15-2.9.el5.al.noarch
Evidentemente se debe instalar el paquete php-xml para poder instalar
el paquete joomla-1.0.15-2.9.el5.al.noarch.rpm. Este puede estar incluido en
el disco de instalacion o bien estarincluido entre las actualizaciones del
sistema.
Página 49

GRUPO LINUX REDES II
Si el paquete php-xml hubiera estado instalado (yum -y install php-xml), la salida hubiera sido
similar a la siguiente:
Preparing... ########################### [100%]
1:joomla ############################## [100%]
Antes de la aparicion de yum, este era el talón de Aquiles de RPM.
Actualmente estos problemas se pueden resolver utilizando yum en los
sistemas que lo incluyen. La forma mas practica de instalar paqueteria RPM resolviendo dependencias automaticamente es a traves de yum. En el
siguiente ejemplo se realiza el procedimiento de instalacion del paquete
joomla-1.0.15- 2.9.el5.al.noarch.rpm utilizando yum:
yum -y localinstall joomla-1.0.15-2.9.el5.al.noarch.rpm
Lo anterior debe devolver una salida similar a la siguiente:
Loading "fastestmirror" plugin
Loading "skip-broken" plugin
Loading "installonlyn" plugin
Setting up Local Package Process
Examining joomla-1.0.15-2.9.el5.al.noarch.rpm: joomla - 1.0.15-
2.9.el5.al.noarch
Marking joomla-1.0.15-2.9.el5.al.noarch.rpm to be installed
Setting up repositories
Loading mirror speeds from cached hostfile
Reading repository metadata in from local files
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Package joomla.noarch 0:1.0.15-2.9.el5.al set to be updated
--> Running transaction check
--> Processing Dependency: php-xml for package: joomla
--> Restarting Dependency Resolution with new changes.
--> Populating transaction set with selected packages. Please wait.
---> Package php-xml.i386 0:5.1.6-15.el5 set to be updated
--> Running transaction check
Dependencies Resolved
Página 50

GRUPO LINUX REDES II
Package Arch Version Repository Size
=======================
Installing:
joomla noarch 1.0.15-2.9.el5.al joomla-1.0.15-
2.9.el5.al.noarch.rpm 6.3 M
Installing for dependencies:
php-xml i386 5.1.6-15.el5 base 93 k
Transaction Summary
=======================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 6.4 M
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Installing: php-xml ######################### [1/2]
Installing: joomla ######################### [2/2]
Installed: joomla.noarch 0:1.0.15-2.9.el5.al
Dependency Installed: php-xml.i386 0:5.1.6-15.el5
Complete!
Algunos paquetes incluyen guiones que ejecutan procesos que pueden
ser requeridos previo o posterior a la instalacion. Si no se desea que se
ejecuten estos guiones, se anade a rpm -ivh o rpm -Uvh la opcion --noscripts. En el siguiente ejemplo, se instalara el paquete joomla-1.0.15- 2.9.el5.al.noarch.rpm sin la ejecucion de los guiones que pudieran estar
definidos en el paquete RPM:
rpm -Uvh --noscripts joomla-1.0.15-2.9.el5.al.noarch.rpm
9.1.4. RECUPERACIÓN DE PERMISOS ORIGINALES A PARTIR DE RPM
Página 51

GRUPO LINUX REDES II
En circunstancias en las cuales ser realizaron cambios en los permisos
en el sistema de archivos, es posible volver a dejarlos de acuerdo a los
especificados en el paquete RPM original utilizando el mandato rpm con la
opcion --setperms del siguiente modo:
rpm --setperms paquete
Vea el permiso de /usr/bin/passwd del siguiente modo:
ls -l /usr/bin/passwd
Lo anterior puede devolver una salida similar a la siguiente:
-rwsr-xr-x 1 root root 22984 ene 6 2007 /usr/bin/passwd
Cambie el permiso del siguiente modo:
chmod 700 /usr/bin/passwd
Vuelva a ver el permiso de /usr/bin/passwd del siguiente modo:
ls -l /usr/bin/passwd
Lo anterior debe devolver una salida similar a la siguiente:
-rwx------ 1 root root 22984 ene 6 2007 /usr/bin/passwd
El fichero /usr/bin/passwd pertence al paquete passwd, confirmelo del
siguiente modo:
rpm -qf /usr/bin/passwd
Lo anterior debe devolver una salida similar a la siguiente:
passwd-0.73-1
Para recuperar de nuevo el permiso original de /usr/bin/passwd, utilice
lo siguiente:
rpm --setperms passwd
Página 52

GRUPO LINUX REDES II
Vuelva a ver el permiso de /usr/bin/passwd del siguiente modo:
ls -l /usr/bin/passwd
Lo anterior debe devolver una salida similar a la siguiente y que
corresponde al permiso original del fichero /usr/bin/passwd:
-rwsr-xr-x 1 root root 22984 ene 6 2007 /usr/bin/passwd
9.1.5. DESISTANLACION DE PAQUETES
Para desinstalar paqueteria, se utiliza el mandato rpm con la opcion -e,
que se utiliza para eliminar, seguida del nombre del paquete. En el siguiente
ejemplo, se solicita al mandato rpm desinstalar los paquetes joomla y php-xml:
rpm -e joomla php-xml
Si no hay dependencias que lo impidan, el sistema solo devolvera el
simbolo de sistema. Si el paquete o alguno de sus componentes fuera
dependencia de otro u otros paquetes, el sistema informara que no es posible
desinstalar y devolvera la lista de paquetes que lo requieren. En el siguiente
ejemplo se tratara de desinstalar el paquete crontabs:
rpm -q crontabs
Como el paquete crontabs es requerido por anacron, el sistema
devolvera una salida similar a la siguiente:
error: Failed dependencies:crontabs is needed by (installed) anacron-2.3-45.el5.centos.i386
Si se desea des instalar cualquier paquete sin importar que otros
dependan de este, se puede utilizar agregar la opcion --nodeps. Esto es
contraindicado, y solo debe ser utilizado es situaciones muy particulares o
escenarios donde asi se requiere. Evite siempre desinstalar paquetes que
Página 53

GRUPO LINUX REDES II
sean dependencia de otros en el sistema a menos que vaya a reinstalar
inmediatamente un paquete que los sustituya.
9.2.DEPOSITOS YUM
Yum es una herramienta sumamente útil para el manejo de
paquetería RPM. Aprender a crear en el disco duro las bases de datos para
los depósitos yum resulta práctico puesto que no habrá necesidad de
recurrir hacia los depósitos localizados en servidores en Internet y consumir
innecesariamente ancho de banda en el proceso.
Uso de yum para instalar y desinstalar paquetería y actualizar sistema
Actualizar sistemaActualización del sistema con todas las dependencias que sean
necesarias:
yum update
BúsquedasRealizar una búsqueda de algún paquete o término en la base de datos en
alguno de los depósitos yum configurados en el sistema:
yum search cualquier-paquete
Ejemplo:
yum search httpd
Consulta de informaciónConsultar la información contenida en un paquete en particular:
yum info cualquier-paquete
Ejemplo:
yum info httpd
Instalación de paquetes
Página 54

GRUPO LINUX REDES II
Instalación de paquetería con resolución automática de dependencias:
yum install cualquier-paquete
Ejemplo:
yum install httpd
Desinstalación de paquetesDesinstalación de paquetes junto con todo aquello que dependa de los
mismos:
yum remove cualquier-paquete
Ejemplo:
yum remove httpd
10. DISTRIBUCIONES LINUX
Una distribución no es otra cosa que el núcleo Linux con un conjunto
de programas seleccionados, con herramientas específicas de configuración,
empaquetamiento, documentación, etc. Algunas son comerciales, mientras
que otras son totalmente gratuitas o de muy bajo costo. Hay muchísimas
distribuciones alrededor del mundo, pero sólo unas pocas son usadas
ampliamente.
Una distribución es una variante del sistema GNU/Linux que se enfoca
a satisfacer las necesidades de un grupo especifico de usuarios. De este
modo hay distribuciones para hogares, empresas y servidores. Algunas
distribuciones son completamente libres, pero muchas no lo son.
Las distribuciones son ensambladas por individuos, empresas u otros
organismos. Cada distribución puede incluir cualquier número
de software adicional, incluyendo software que facilite la instalación del
sistema. La base del software incluido con cada distribución incluye el
Página 55

GRUPO LINUX REDES II
núcleo Linux y las herramientas GNU, al que suelen añadirse también
varios paquetes de software.
Las herramientas que suelen incluirse en la distribución de
este sistema operativo se obtienen de diversas fuentes, y en especial de
proyectos de software libre, como: GNU , BSD, GNOME y KDE. También se
incluyen utilidades de otros proyectos como Mozilla, Perl, Ruby, Python,
PostgreSQL, MySQL, Xorg, casi todas con licencia GPL o compatibles con
ésta (LGPL, MPL).
A continuación podeis encontrar informacion sobre las distribuciones
más importantes de Linux (aunque no las únicas).
UBUNTU
Distribución basada en Debian, con lo que esto conlleva y centrada en el usuario final y facilidad de uso. Muy popular y con mucho soporte en la comunidad. El entorno de escritorio por defecto es GNOME.
REDHAT ENTERPRISE
Esta es una distribución que tiene muy buena calidad, contenidos y soporte a los usuarios por parte de la empresa que la distribuye. Es necesario el pago de una licencia de soporte. Enfocada a empresas.
FEDORA
Esta es una distribución patrocinada por RedHat y soportada por la comunidad. Facil de instalar y buena calidad.
Página 56

GRUPO LINUX REDES II
DEBIAN
Otra distribución con muy buena calidad. El proceso de instalacion es quizas un poco mas complicado, pero sin mayores problemas. Gran estabilidad antes que últimos avances.
OpenSuSE
Otra de las grandes. Facil de instalar. Version libre de la distribucion comercial SuSE.
SuSE LINUX ENTERPRISE
Otra de las grandes. Muy buena calidad, contenidos y soporte a los usuarios por parte de la empresa que la distribuye, Novell. Es necesario el pago de una licencia de soporte. Enfocada a empresas.
SLACKWARE
Esta distribución es de las primeras que existio. Tuvo un periodo en el cual no se actualizo muy a menudo, pero eso es historia. Es raro encontrar usuarios de los que empezaron en el mundo linux hace tiempo, que no hayan tenido esta distribucion instalada en su ordenador en algun momento.
GENTOO
Esta distribución es una de las unicas que incorporaron un concepto totalmente nuevo en Linux. Es una sistema inspirado en BSD-ports. Podeis compilar/optimizar vuestro sistema completamente desde cero. No es recomendable adentrarse en esta distribucion sin una buena conexion a internet, un ordenador medianamente potente (si quereis terminar de
Página 57

GRUPO LINUX REDES II
compilar en un tiempo prudencial) y cierta experiencia en sistemas Unix.
KUBUNTU
Distribución basada en Ubuntu, con lo que esto conlleva y centrada en el usuario final y facilidad de uso. La gran diferencia con Ubuntu es que el entorno de escritorio por defecto es KDE.
MANDRIVA
Esta distribución fue creada en 1998 con el objetivo de acercar el uso de Linux a todos los usuarios, en un principio se llamo Mandrake Linux. Facilidad de uso para todos los usuarios.
11. VENTAJAS Y DESVENTAJAS DE GNU/LINUX
Cada sistema operativo, sea GNU/Linux u otro, posee características
que lo hacen específico para un sector del mercado. Describiremos aquí
algunas ventajas y desventajas de las distribuciones GNU/Linux en relación
con el mercado y la ofimática.
VENTAJAS
Adaptación del sistema: Cada usuario puede cambiar el sistema de
acuerdo con sus necesidades.
Independencia del proveedor: Muchas son las empresas o universidades
que ofrecen distribuciones de GNU/Linux.
Página 58

GRUPO LINUX REDES II
Costes: Muchas distribuciones son gratuitas. Es posible bajarlas de internet
o copiarlas libremente.
Documentación: Cada distribución posee un conjunto de manuales que
viene con el CD de instalación. Además de eso, hay otros dos grupos
importante en la documentación de aplicaciones Linux, que son The Linux
Documentation Project y Free Software Foundation.
Mantenimiento: Por tratarse de un sistema con muchos desarrolladores de
todo el mundo, los programas son masivamente probados y
consecuentemente su reparación es más rápida.
Impulso de la economía local: Cualquier empresa puede ofrecer servicios o
aplicaciones utilizando tecnología GNU/Linux. Esa posibilidad fomenta la
creación de software para las empresas de la región como es el caso de
las distribuciones autonómicas, como Lliurex (C. Valenciana),Guadalinux
(Andalucía), Linex (Extremadura),Molinux (Castilla la Mancha), Max
(Madrid) y Augustux(Aragón),
DESVENTAJAS
• Necesidad de un cambio de mentalidad: Con el uso masivo de
aplicaciones ya consolidadas en el mercado, el cambio a nuevas
aplicaciones tiende a ser más difícil, por razones comunes como el coste
en formación de personal cualificado o el bajo rendimiento en los primeros
meses de utilización de nuevas herramientas, entre otras.
• Uso poco extendido en ofimática: El temor al cambio hace que esa
tecnología tarde más tiempo en llegar al mercado dificultando la adopción
de las herramientas por parte de los usuarios.
• Aplicaciones poco intuitivas: Muchas de las aplicaciones distribuidas en las
distribuciones no poseen una interfaz intuitiva y amigable, lo cual dificulta
su utilización.
Página 59

GRUPO LINUX REDES II
• Al no existir una empresa fuente en el mercado detrás de GNU/Linux, este
sistema no inspira la suficiente confianza a algunas empresas para
moverlas a trabajar en ese sentido, ya que el futuro parece incierto para
aquellos que no conocen ese trabajo.
12. LICENCIAMIENTO EN LINUX
El software que se publica debería ser software libre. Para que sea
libre tiene que publicarlo con una licencia de software libre. Generalmente
utilizamos la Licencia Pública General de GNU (GPL de GNU, por sus
siglas en inglés), pero eventualmente también utilizamos otras licencias de
software libre. Para el software de GNU únicamente usamos otras licencias
si son compatibles con la GPL de GNU.
La documentación del software libre debería ser documentación
libre, para que se pueda redistribuir y mejorar al igual que el software al
cual describe. Para que sea libre la documentación, tiene que publicarla
con una licencia de documentación libre. Generalmente utilizamos la
licencia de documentación libre de GNU (FDL de GNU, por sus siglas en
inglés), aunque en ocasiones también usamos otras licencias de
documentación libre.
El texto de la licencia pública general de Affero de GNU está en los
siguientes formatos: HTML, texto plano, Dobbook, Texinfo y LaTeX. Estos
documentos no están maquetados para publicarlos por sí solos, sino que
están pensados para incluirse en otro documento.
a) Licencia Pública General (GPL) de GNU
Página 60

GRUPO LINUX REDES II
La Licencia Pública General de GNU, llamada comúnmente GPL de
GNU, la usan la mayoría de los programas de GNU y más de la mitad de
los paquetes de software libre. La última versión es la 3.
Versiones: GPLv3 , GPLv2, GPLv1
b) Licencia Pública General Reducida (LGPL) de GNU
Versión 2.1, febrero de 1999
Se permite la copia y distribución de copias literales
de este documento, pero cambiando, no está permitido.
Esta licencia, la Licencia Pública General se aplica a algunos paquetes
de software especialmente designado - típicamente las bibliotecas - de
la Free Software Foundation y otros autores que deciden usarla.
0. Este Acuerdo de Licencia se aplica a cualquier biblioteca de
software o programa que contenga una nota colocada por el
tenedor del copyright o de otra parte autorizada diciendo que
puede ser distribuido bajo los términos de esta Licencia Pública
General. Cada concesionario se dirige como "usted".
Una "biblioteca" significa un conjunto de funciones de software y /
o datos preparados para ser convenientemente vinculados con los
programas de aplicación (que usan algunas de estas funciones y
datos) para formar ejecutables.
La "Biblioteca", a continuación, se refiere a cualquier biblioteca de
software o trabajo que ha sido distribuido bajo estos términos. Un
"trabajo basado en la Biblioteca" se entiende la Biblioteca o
cualquier trabajo derivado bajo la ley del copyright: es decir, un
trabajo que contiene la Biblioteca o una parte de ella, de forma
Página 61

GRUPO LINUX REDES II
literal o con modificaciones y / o traducido a otro idioma sin
rodeos. (En lo sucesivo, la traducción está incluida sin limitaciones
en el término "modificación".)
"Código fuente" para un trabajo significa la forma preferida del
trabajo para hacer modificaciones a la misma. Para una biblioteca,
el código fuente completo significa todo el código fuente de todos
los módulos que contiene, más cualquier fichero asociado de
definición de interfaces, más los guiones utilizados para controlar
la compilación e instalación de la biblioteca.
Actividades distintas de la copia, distribución y modificación no
están cubiertas por esta licencia y están fuera de su ámbito de
aplicación. El acto de ejecutar un programa utilizando la Biblioteca
no está restringido, y la producción de ese programa están
cubiertos únicamente si sus contenidos constituyen un trabajo
basado en la Biblioteca (independiente de la utilización de la
Biblioteca en una herramienta para escribirlo). Si eso es verdad
depende de lo que la Biblioteca hace y lo que el programa que
utiliza la Biblioteca hace.
1. Usted puede copiar y distribuir copias literales del código fuente
completo de la biblioteca como lo has recibido, en cualquier
medio, siempre que adecuada y bien visible publique en cada
copia un anuncio de copyright adecuado y un repudio de garantía,
mantenga intactos todos los avisos que se refieren a este Licencia
ya la ausencia de cualquier garantía, y distribuir una copia de esta
licencia junto con la Biblioteca.
Página 62

GRUPO LINUX REDES II
Usted puede cobrar una cuota por el acto físico de transferir una
copia, y puede a su albedrío, ofrecer garantía a cambio de una
cuota.
2. Puede modificar su copia o copias de la Biblioteca o cualquier
porción de él, formando de esta manera un trabajo basado en la
Biblioteca, y copiar y distribuir esa modificación o trabajo bajo los
términos de la Sección 1, antedicho, supuesto que además
cumpla las siguientes condiciones :
a) El trabajo modificado debe ser ella misma una biblioteca de
software.
b) Debe hacer que los ficheros modificados lleven anuncios
prominentes indicando que usted cambió los archivos y la
fecha de cualquier cambio.
Versión 3, 29 de junio 2007
Esta versión de la GNU Lesser General Public License incorpora los
términos y condiciones de la versión 3 de la GNU General Public
License, complementado por los permisos adicionales que figuran a
continuación.
0. Definiciones adicionales.
Como se usa aquí, "esta licencia" se refiere a la versión 3 de la GNU
Lesser General Public License, y la "GNU GPL" se refiere a la versión 3
de la GNU General Public License.
"La Biblioteca" se refiere a una obra amparada regulada por la presente
licencia, que no sea una aplicación o un trabajo combinado tal como se
definen a continuación.
Una "solicitud" es cualquier trabajo que hace uso de una interfaz que
proporciona la Biblioteca, pero que no esté basado en la Biblioteca. La
definición de una subclase de una clase definida por la Biblioteca se Página 63

GRUPO LINUX REDES II
considera un modo de uso de una interfaz que proporciona la Biblioteca.
Un "combinado el trabajo" es un trabajo producido por la combinación o
vinculación de una aplicación con la Biblioteca. La versión particular de
la Biblioteca con la que se hizo el trabajo conjunto también se llama el
"Linked versión".
El "mínimo correspondiente fuente" para un trabajo conjunto: la fuente
correspondiente para el trabajo conjunto, con exclusión de cualquier
código fuente de las porciones del trabajo conjunto que, considerados
aisladamente, se basan en la demanda, y no en la versión vinculada.
El "correspondiente código de aplicación" para un trabajo conjunto
significa que el código objeto y / o el código fuente de la aplicación,
incluidos los datos y programas utilitarios necesarios para la
reproducción de la obra combinada de la aplicación, pero con exclusión
de las bibliotecas del sistema del trabajo combinado.
c) Licencia Pública General de Affero (AGPL) de GNU
La licencia pública general de Affero esta basada en GPL de GNU,
pero añade una clausula adicional para permitir a los usuarios que
interactúan con el programa licenciado a través de una red, recibir el código
fuente de ese programa. Recomendamos que se considere utilizar la
licencia AGPL de GNU para cualquier programa que vaya a utilizarse a
través de una red. La última versión es la 3.
Versiones: AGPLv3 de GNU (La primera versión de la Affero General
Public License no es una licencia de GNU, pero se diseñó con una finalidad
muy similar a la licencia AGPL de GNU).
Página 64

GRUPO LINUX REDES II
d) Licencia de Documentación Libre (FDL) de GNU
Versión 1.3, 3 de noviembre 2008
El propósito de esta licencia es hacer un libro de texto manual, o
documento funcional y útil "libre" en el sentido de la libertad: asegurar a
todos la libertad efectiva de copiarlo y redistribuirlo, con o sin
modificaciones, ya sea comercial o no . En segundo lugar, esta licencia
preserva para el autor y el editor una manera de obtener crédito por su
trabajo, aunque no se considera responsable de las modificaciones hechas
por otros.
La Licencia de Documentación Libre de GNU es una forma de
copyleft para ser usada en un manual, libro de texto u otro documento que
asegure que todo elmundo tiene la libertad de copiarlo y redistribuirlo, con o
sin modificaciones, de modo comercial o no comercial. La última versión es
la 1.3.
e) ¿Qué es el Copyleft?
Copyleft es la forma general de hacer un programa software libre y
requerir que todas las modificaciones y versiones extendidas del programa
sean también software libre.
El modo más sencillo de hacer un programa libre es ponerlo en el
dominio público, es decir, sin copyright. Esto permitirá que la gente
comparta el programa y sus mejoras, si así lo desean. Pero también
permitirá que gente que no quiera cooperar pueda convertirlo en software
privativo. Pueden hacer cambios, tantos como deseen, y distribuir el
resultado como un producto privativo. Los que reciban el programa en su
forma modificada no poseerán libertad que el autor original les dio debido a
que el intermediario se la ha retirado.
Página 65

GRUPO LINUX REDES II
En el Proyecto GNU, nuestra intención es dar a todos los usuarios la
libertad de redistribuir y cambiar software de GNU. Si el intermediario
pudiera coartar la libertad, podríamos tener muchos usuarios, pero esos
usuarios no tendrían libertad. Así, en vez de poner software de GNU bajo
dominio público, lo hacemos «copyleft». Copyleft significa que cualquiera
que redistribuya el software, con o sin cambios, no podrá restringir a nadie
la libertad de copiarlo, redistribuirlo o modificarlo. Copyleft garantiza que el
usuario mantenga su libertad.
El copyleft también proporciona un incentivo a otros programadores
a unirse al software libre. Software libre importante como el compilador C++
de GNU existe sólo gracias a esto.
El copyleft también ayuda a los programadores que deseen
contribuir con mejoras al software libre a obtener permiso para hacerlo.
Estos programadores habitualmente trabajan para empresas o
universidades que casi harían cualquier cosa para obtener más dinero. Un
programador podría contribuir con sus cambios a la comunidad, pero su
superior puede querer hacer de esos cambios un producto de software
privativo.
Cuando nosotros le explicamos a ese superior que es ilegal distribuir
la versión mejorada del producto salvo como software libre, el empresario
normalmente decide liberarlo como software libre en lugar de tirarlo a la
basura.
Para hacer un programa copyleft, lo primero que hacemos proclamar
que está bajo los derechos de autor. Luego añadimos las cláusulas de
distribución, que son un instrumento legal que le da a cualquiera el derecho
de usar, modificar y redistribuir el código fuente del programa o de
cualquier programa derivado de éste; pero sólo si los términos de
distribución no se cambian. De este modo, el código y las libertades se
vuelven legalmente inseparables.
Página 66

GRUPO LINUX REDES II
Los desarrolladores de software privativo emplean el copyright para
quitar la libertad a los usuarios; nosotros empleamos ese copyright para
garantizar su libertad. Por esto cambiamos el nombre «copyright» por
«copyleft» [se trata de un juego de palabras en inglés. «copyright» puede
traducirse literalmente como «derecho de copia», mientras que «copyleft»
como «izquierdo de copia»].
Copyleft es un concepto general; hay muchos detalles distintos que
se pueden especificar. En el Proyecto GNU, las cláusulas específicas de
distribución que empleamos están contenidas en la Licencia Pública
General de GNU, la Licencia Pública General Reducida de GNU y la
Licencia de Documentación Libre de GNU.
La licencia apropiada está incluida en muchos manuales y en cada
distribución de código fuente GNU.
La GPL de GNU se diseñó para que pueda aplicarla fácilmente a sus
programas si es el titular de los derechos de autor. Para hacerlo no tiene
que modificar la GPL de GNU, sólo poner anuncios en su programa que
hagan la referencia apropiada a la GPL de GNU. Por favor, tenga en
cuenta que si usa la GPL de GNU debe conservar el texto íntegro de la
licencia. Es un todo en conjunto; las copias parciales no están permitidas
(de igual modo para la LGPL, la AGPL y la FDL).
Emplear los mismos términos de distribución para los diferentes
programas hace fácil compartir el código entre ellos. Como todos poseen
los mismos términos de distribución, no hay necesidad de pensar si los
términos son compatibles. La GPL reducida incluye una cláusula que le
permite alterar los términos de distribución de su programa adaptándolos a
la GPL, para así poder copiar código en otros programas que estén
cubiertos por la GPL.
f) Pronunciamiento PLUG - Acerca del Proyecto de Ley de Software Libre
Página 67

GRUPO LINUX REDES II
Software de Código Abierto y de Código Cerrado
El Software de Código Abierto es aquel programa (o grupo de
programas) que es entregado con su código fuente bajo los términos de su
licencia original. El código fuente puede ser incluido con el programa o ser
accesible remotamente por Internet, pero de ninguna manera puede ser
malintencionadamente modificado. Se usa mecanismos de seguridad para
la verificación de su integridad y autenticidad.
Existe libertad para su uso, copia, modificación, mejora y distribución
bajo los términos de su licencia original. La licencia no requiere un pago por
los derechos adquiridos y puede usarse el mismo programa en tantas
computadoras como se desee.
El Software de Código Cerrado es aquel programa (o grupo de
programas) que es entregado en formato binario o ejecutable. No se
entrega el código fuente original, por tanto no es posible su modificación o
mejora. Su copia y distribución está limitada por la licencia del fabricante,
que usualmente tiene un costo monetario. El único derecho disponible para
el usuario final es el de uso o ejecución del programa.
El Software de Código Abierto puede ser referenciado como "Software
Libre" y el Software de Código Cerrado, como "Software Comercial".
Software Libre: Free Software u OpenSource
En el mundo del Software Libre existen, por decirlo de alguna manera,
dos "políticas" o corrientes sobre cuyas definiciones de licenciamiento
están englobadas la mayoría de aplicaciones de Código Abierto. Estas dos
corrientes son: Free Software Foundation con la licencia GNU/GPL y la
Open Source Initiative con la licencia OpenSource.
En esencia los criterios de ambas posiciones son muy similares en lo
que respecta a la posesión del código fuente, la libertad de uso, copia,
modificación y distribución. Sin embargo es bueno conocer que la licencia
Página 68

GRUPO LINUX REDES II
de OpenSource incorpora definiciones que la hacen más aceptable para la
incorporación de empresas al desarrollo de Software Libre.
Este concepto es importante por el hecho de que la Ley de Uso de
Software Libre debe definir qué tipo de Software debe ser usado en la
administración pública, cuidando el no uso de las ambigüedades que luego
se presten a distintas interpretaciones. Asimismo es imprescindible hacer
uso del mejor Software Libre en el mercado por lo que las limitaciones no
deben ser por tipos de licencias.
g) Beneficios de uso del Software Libre en la Administración Pública.
Para un fácil entendimiento de los beneficios y consecuencias del uso del
Software Libre, se nos ocurrió relatar la analogía respecto al desarrollo de
la computación desde la aparición de la computadora personal PC.
¿Recuerdan cómo era la computación antes de la aparición de la
computadora personal PC?
Antes de la aparición de la computadora personal PC, el mundo de
la computación estaba dominado por una empresa y, por tanto, por su
tecnología: IBM.
En los años 80 cuando IBM desarrolla la PC y abre su tecnología
para que cualquiera la estudie y replique (no sabemos si intencionalmente
o no) marca el inicio de un espectacular cambio: La revolución de la
Computación que luego fue originó la revolución de la Información para
llegar a lo que ahora conocemos como la revolución Internet.
Aunque la PC no fue desarrollada siguiendo la filosofía de
OpenSource, el simple hecho de hacer la tecnología pública hizo que
aparezcan otras empresas que en principio clonaban la tecnología para
luego mejorarla y venderla con mejores características y a cada vez
menores precios. Este es ejemplo del desarrollo tecnológico al que se
puede llegar cuando se adquiere el conocimiento de manera irrestricta.
Página 69

GRUPO LINUX REDES II
El espíritu del Software Libre permite adquirir conocimiento
avanzado hoy, no es necesario crearlo desde cero. Es la primera vez que
se entrega todas las herramientas necesarias en forma democrática para
que la inventiva, creatividad y capacidad de las personas puedan mejorar la
tecnología e incluso superarla. Y hay muchos ejemplos que demuestran
que los peruanos tenemos justamente la inventiva y creatividad necesaria.
Sin embargo, es bueno sintetizar los beneficios propuestos en los
proyectos de ley:
Independencia Tecnológica , a partir de no depender de proveedores
únicos con los cuales casi siempre se tiene un poder de negociación
bajo a lo largo del tiempo. El Estado puede fijar sus propios
estándares de operación, tanto a nivel de aplicaciones como de
comunicación, así como contratar a distintos proveedores de
servicios ya sea nacionales o internacionales.
Fomento al desarrollo tecnológico nacional . El acceso al código
fuente alienta al conocimiento y a la innovación en el desarrollo de
software. Se pasa de ser simples usuarios de programas
prefabricados a posibles desarrolladores de programas adecuados a
nuestra aplicación y realidad particular.
Perennidad de la Información , al hacer uso de estándares abiertos y
la no dependencia de formatos propietarios. La información de los
ciudadanos no depende del desarrollo comercial de una empresa en
particular.
Seguridad Nacional y de los datos de los ciudadanos . Este es un
punto importante, puesto que la mayoría de datos confidenciales de
los ciudadanos está ahora en formato digital, lo que quiere decir que
depende de la fiabilidad de los programas comerciales. No es
posible saber si esos programas; ya sea por intereses comerciales,
de naciones, o simplemente por intereses particulares de un
empleado del proveedor de software, puedan ser manipulados
Página 70

GRUPO LINUX REDES II
ilegalmente. El Software Libre es transparente pues entrega el
código fuente que puede ser revisado exhaustivamente para
encontrar algún problema de seguridad o código malicioso. En este
sentido, el Software Libre es más seguro.
Ahorro en costes. Evidentemente la libertad de uso y copia de un
mismo programa cuantas veces se desee, trae un ahorro de costes
considerable. Una vez que los costes de cambio se han realizado,
los costes de mantenimiento y de mejora son bastante menores en
relación a un software comercial.
Entorno de Colaboración. Al existir la posibilidad de desarrollo propio
en todas las entidades del Estado, es posible que las mejoras de los
programas provengan de cualquiera de estos puntos y sean
aplicables rápidamente a otros sitios. Se crea un entorno de
desarrollo abierto que está demostrado funciona mejor que un
entorno de desarrollo cerrado.
h) ¿Cuáles son los costos del cambio?
Debe quedar bien en claro que hablar de Software Libre no implica
costo cero. Aún cuando es posible conseguir la mayoría de software a
través de Internet, existe un costo asociado al pasar de un esquema de
Software Comercial a uno de Software Libre.
Este costo es inicialmente alto, debido al proceso de aprendizaje,
cuya curva es relativamente plana, es decir puede ser necesario más
tiempo para dominar el Software Libre que un Software Comercial conocido
por versiones anteriores. Esto se refleja en la capacitación de las personas
encargadas de administrar los sistemas y de los instructores de usuarios
finales.
En lo que respecta al costo de aprendizaje de los usuarios finales,
este no es tan alto, al usar interfaces gráficas de fácil uso y configuración.
Página 71

GRUPO LINUX REDES II
Existe también un costo que podríamos llamar un coste hundido
respecto al software comercial actual sobre la cual ya se tiene licencias
compradas. Va a ser necesario un cambio paulatino hacia el Software Libre
para no causar dificultades financieras en las entidades que ya tengan un
contrato o licencia de Software Comercial.
Finalmente, si hablamos de costos, debemos considerar el Costo
Total de Propiedad, donde se analiza no sólo los costos iniciales de
implementación, sino también los costos de ejecución, mantenimiento,
conservación de equipos, y los llamados costos “ocultos” como los costos
administrativos, costos de actualización, costos de soporte técnico, etc. Ha
sido demostrado que el uso de Software Libre tiene un menor Costo Total
de Propiedad a lo largo del tiempo, respecto al Costo de otras plataformas.
i) ¿Por qué es necesario una ley para su uso en el Estado Peruano?
Algunos dudan sobre la necesidad de la Ley bajo el argumento de
que no es necesario una norma legal para que se use o no el Software
Libre. Si bien esta afirmación tiene sustento en lo que se refiere a la
potestad de elegir libremente entre varias opciones, en la práctica esta
potestad se ve limitada por la dificultad o la poca probabilidad de tener
acceso a todas las opciones, ya sea por cuestiones de presupuesto o por
falta de información. El ejemplo concreto es el uso de Software Comercial
de manera ilegal en muchas entidades del Estado, sobre todo en los
gobiernos locales y regionales.
El Estado tiene el deber de cumplir con su labor de fomento del
desarrollo tecnológico del País, así como, por derecho, definir sus propios
estándares de aplicación por ejemplo en el caso del Software y de permitir
que las mejores aplicaciones puedan llegar democráticamente a todas sus
instancias y hacer uso de estas de manera correcta y legal. Todo esto a
bajo coste.
Página 72

GRUPO LINUX REDES II
En la actualidad, la tecnología juega un papel preponderante en la
prestación de servicios del Estado a los ciudadanos. De allí la importancia
de que ésta cumpla con requisitos básicos como de independencia
tecnológica, seguridad, privacidad, perennidad, actualidad, y desarrollo
constante.
¿Qué debería contener una ley o que debería priorizar el Estado?
La Ley para el Uso de Software Libre debería contener los siguientes
puntos:
Definición de los requisitos por los cuales un software o programa es
considerado Software Libre. Los criterios centrales son: código fuente,
copia y uso irrestricto, modificación y redistribución libre. Es preferible
cumplir con los criterios centrales que con un tipo específico de licencia.
Una entidad técnica que fije los lineamientos generales para el uso
de software libre en el Estado, incluyendo la selección del software que
mejor se acomode a las aplicaciones administrativas, tecnológicas, y de
desarrollo e investigación. Además, que fije los estándares abiertos de
aplicación, comunicación y protocolos necesarios para la total
interoperatividad entre todas las entidades del Estado.
Una definición clara de las excepciones en las que, a falta de un
programa de Software Libre que cumpla con los requisitos para una
aplicación particular, sea necesario usar Software Comercial o Propietario.
En cualquier caso se debe elegir o priorizar al software que cumpla con los
estándares establecidos.
Definir el papel de las universidades respecto al desarrollo del
Software Libre en el Estado, estableciendo un compromiso mutuo entre la
administración pública y las universidades.
Definir que todos los proyectos de investigación del Estado, ya sea en
las universidades como en los institutos de investigación científica usen
Página 73

GRUPO LINUX REDES II
Software Libre con la finalidad de crear una red de colaboración mutua en
la cual los desarrollos o mejoras realizadas en un punto sean transferibles
rápidamente a los demás puntos.
j) Experiencias en otros países.
El Proyecto de Ley presentado en el Perú no es un caso aislado, se
enmarca dentro de una corriente a nivel mundial. Actualmente el Software
Libre es considerado como una tendencia del mercado, no se trata sólo de
un asunto de expertos o informáticos, es algo totalmente viable.
Como ejemplo podemos citar los proyectos en los países de la región
como Argentina, y Brasil, donde un gran número de Estados está haciendo
ya uso del Software Libre en la Administración Pública.
En México existe un proyecto similar, inclusive dentro del sector
Educación.
En Europa, la Comunidad Europea ha recomendado a sus países
integrantes el estudio e implementación de proyectos de Software Libre
dentro de la Administración Pública, dentro de la iniciativa “Europe An
information Society for all”
Países como Alemania, Francia, Dinamarca, Italia, España están
discutiendo la implementación del Software Libre en sus propios
congresos.
En conclusión:
- El Software Libre otorga mayores derechos a los usuarios que el
Software Comercial. Los beneficios del uso del Software Libre van más
allá del ahorro de costes, sobre todo en el tema de la independencia
tecnológica, seguridad de la información y el fomento al desarrollo
tecnológico nacional a nivel de software.
- El Costo Total de Propiedad es menor usando Software Libre.
Página 74

GRUPO LINUX REDES II
- El Estado debe asumir su rol de promotor del desarrollo tecnológico del
País.
- Es importante tener una entidad técnica que normalice el uso de
Software Libre, así como defina la reglamentación de la ley y defina los
estándares de aplicación y comunicación en el uso de Software en el
Estado.
- El uso de Software Libre en la Administración Pública es una tendencia
mundial, no se trata de un caso aislado en Perú.
13. COMPARACIÓN DE LINUX Y WINDOWS
Más sobre ventajas y desventajas de GNU/Linux y Windows
EULA o End User License Agreement, es una licencia
por la cual el uso de un producto sólo está permitido para
un único usuario (el comprador).
GNU GPL, (Licencia Pública General) es una licencia
creada por la Free Software Foundation a mediados de los 80, y está
orientada principalmente a proteger la libre distribución, modificación y uso de
software. Su propósito es declarar que el software cubierto por esta licencia
es software libre y protegerlo de intentos de apropiación que restrinjan esas
libertades a los usuarios.
En meses pasados se llevó a cabo un estudio para determinar las
diferencias entre la licencia utilizada por el sistema operativo Microsoft
Windows XP (EULA) y la licencia utilizada por el software de código abierto,
entre los que se incluyen Linux (GNU GPL)
El estudio fue llevado por Cybercurse, empresa líder en Australia que
provee servicios TI enfocados en Unix, Linux, TCP/IP y Windows.
Página 75

GRUPO LINUX REDES II
Entre los aspectos más destacados de este estudio podemos citar que se
reveló que mientras que la licencia EULA, pretende proteger a la empresa
Microsoft, la licencia GNU GPL se enfoca más hacia los derechos del usuario.
La licencia de Microsoft (EULA) tiene por objetivo limitar al usuario a tomar
acciones, elecciones u opciones sobre el software, entre tanto que la GNU
GPL se dedica a salvaguardar los derechos de los desarrolladores originales
para mantener la continuidad y la accesibilidad del código fuente para el
software.
Cabe hacer notar que la licencia utilizada para este estudio fue la EULA,
por que es representante del más nuevo sistema operativo que Microsoft tiene
al público para el usuario promedio.
De la conclusión del estudio se pueden citar los siguientes puntos de
interés para el debate:
La licencia EULA
Se prohíbe la copia.
Puede ser empleado en un único ordenador con un máximo de 2
procesadores.
No puede ser empleado como Web Server o File Server.
Registro necesario a los 30 días.
Puede dejar de funcionar si se efectúan cambios en el hardware.
Las actualizaciones del sistema pueden modificar la licencia, si la
compañía lo desea. *Sólo puede ser transferida una vez a otro usuario.
Impone limitación sobre la ingeniería inversa.
Página 76

GRUPO LINUX REDES II
Da a Microsoft derecho para en cualquier momento recoger
información del sistema y su uso, y también para entregar dicha
información a terceros.
La garantía es por los primeros 90 días.
Actualizaciones y parches sin garantía.
La licencia GPL
Permite la copia, modificación y redistribución del software.
Proporciona garantía de los derechos del usuario a la copia,
modificación y redistribución del software.
Como no tiene costo, tampoco ofrece garantías.
Puede ser vendido y se puede cobrar por los servicios sobre el
software.
Cualquier patente sobre el mismo debe ser licenciada para el beneficio
de todos.
El software modificado no debe tener costo por la licencia.
Tiene que incluir el código fuente.
Los cambios en la licencia deben mantener ciertos términos generales.
Página 77

GRUPO LINUX REDES II
14. DIFERENCIA WINDOWS Y LINUX:
Windows:
Es un grupo de sistemas operativos conocidos mundialmente fabricado por la empresa Microsoft, teniendo como fundadores a Bill Gates y Paul Allen.
Es el sistema operativo comercial más usado en el mundo, a pesar de que la mayoría de las distribuciones sean copias ilegales. Windows 7 es la última versión lanzada, destinada a computadoras de escritorio.
El sistema operativo más utilizado de la familia Windows es el Windows XP SP2 o SP3. Sin embargo hay algunos que lo rechazan.
Windows, tanto XP como los demás, están muy expuestos a recibir ataques de hackers, debidos a poseer programas vulnerables y ni hablar de la gran cantidad de virus que fueron creados para este sistema. Esto obliga al usuario a utilizar programas protectores, como firewalls, anti-virus, anti-spywares, anti-troyanos, etc.
Podemos decir que Windows es el Sistema Operativo más usado en lo mundo debido a la su aceptada interfaz y la gran cantidad de programas y juegos que son creados para su plataforma.
Linux:
Linux es cualquier sistema operativo que use el núcleo Linux. Fue desarrollado por el finlandés Linus Torvalds, inspirado en el sistema operativo Minix. Su código fuente está disponible bajo licencia GPL.
Actualmente el Ubuntu (la distribución Linux más usada en el mercado) cuenta con un arranque muy rápido y una interfaz muy amigable.
Se puede decir que su mayor contra es la falta de aplicaciones desarrolladas para la plataforma.
En términos de seguridad, estabilidad, rapidez e interfaz, Linux es por lejos, la mejor opción.
Actualmente hay espacio para ambos productos en el mercado, pero los que tenemos que estar conformes y satisfechos somos los
Página 78

GRUPO LINUX REDES II
usuarios. El crecimiento del software libre ayudó a que Microsoft invierta más en seguridad y en facilidad de uso.
DIFERENCIA ENTRE LA ESTABILIDAD DE LINUX Y WINDOWS:
1. Completo acceso VS el no acceso: Tener acceso al código fuente es
probablemente la diferencia mas significativa entre Linux y Window. El
hecho de que Linux posee una licencia pública GNU asegura que el
usuario de cualquier manera puede acceder y alterar el código, incluso
el kernel que le pertenece a la fundación del sistema operativo Linux.
¿Quieres hechar un vistazo al código fuente de Windows? Buena
suerte. A menos que seas mienbro de un selecto (elite) grupo, tus ojos
nunca verán una pieza del código fuente de Windows.
2. Libertad de licencias VS restricciones de licencias: El tener acceso
es la diferencia entre las licencias. Estoy seguro que cualquier experto
en tecnología e internet puede entender este rollo de licencias de
computadoras. Pero veamos lo que es la clave en el aspecto de las
licencias (sin inmiscuirnos en el ámbito legal). Con un Linux que este
con licencia GPL, tu eres libre de modificar el software, distribuirlo y
venderlo. Tambien con la licencia GPL tu eres libre de descargar una
copia de Linux e instalaro en cuantas máquinas desees. Con las
licencias de Microsoft no puedes hacer nada de lo ya mencionado. Tu
límite esta en cuantas licencias compres. Así que si compraste 10
licencias, legalmente puedes instalar ese sistema operativo en solo 10
máquinas.
Página 79

GRUPO LINUX REDES II
3. Soportes de conexiones en linea VS Soporte de escritorio bajo
tarifa: Este es un problema por el cual muchas empresas le dan la
espalda a Linux. Con Linux tú tienes soporte de una gran comunidad
en foros, busquedas en linea y muchas páginas webs. Por supuesto, si
sientes necesidad puedes adquirir contratos de soporte de algunas
grandes empresas que manejan Linux (RedHat o Novell por ejemplo).
Si tienes algún problema, exponlo en algun servicio de ayuda y en
pocos minutos estaras recibiendo ayuda y sugerencias. La mayoría de
los problemas en Linux son documentados asi que es probable que
encuentres una solución a tu problema. Por el otro lado de la manera
con Microsoft por supuesto que puedes tener este tipo de ayuda con
Windows dependiendo de que tantas fuentes tengas, al igual que Linux
existen miles de páginas/foros/listas que tienen soporte para Windows.
Puedes comprar soporte del Microsoft mismo. La mayoría de las
empresas que contratan soporte de Microsoft se han quejado de la
seguridad que esta carece, asi que puedes comprar soporte de Linux y
Windows. No he conocido a nadie que me diga que quede
completamente satisfecho con un tipo de soporte de este tipo. Asi que
si ninguno queda completamente satisfecho ¿por qué decir que el
soporte para Windows es mucho mejor que el de Linux?.
4. Completo VS soporte de hardware en solo una parte: Un problema
que se esta convirtiendo en un problema que poco a poco va
desapareciendo es el del hardware. Años atras si tu querías instalar
algun tipo de distribución de Linux tenías que estar completamente
seguro que tu hardware ajustara perfectamente a la distribución para
que trabajara al 100 porciento. Este no es el caso de ahora, hoy
puedes tomar cualquier pc o laptop y tener varias distribuciones Linux
para instalar y casi siempre funcionara al 100% . Claro existen algunas
Página 80

GRUPO LINUX REDES II
excepciones por ejemplo el hibernar/suspender algunas veces es un
problema en las laptops. Con Windows tu sabes que cada pieza
siempre funcionará con ese sistema operativo. Sin embargo existen
tambien casos en los que puedas encontrar algunos contratiempos.
5. La linea de comandos VS No linea de comandos: No importa lo lejos
que el sistema operativo Linux haya llegado o lo bonito que luzca, la
herramienta de linea de comandos siempre sera una invaluable
herramienta de administración para Linux. Puedes utilizar Linux por
años y no utilizar la linea de comandos al igual que con Windows pero
no tan crítico como lo es con Linux. Algunos usuarios de Windows ni
siquiera saben que el cmd existe.
6. La instalación de aplicaciones centralizadas VS las centralizadas:
El título de este punto tal vez no sea muy entendible. Con Linux tu
tienes (en casi todas las distribuciones) un punto centralizado donde
puedes buscar, agregar, borrar programas. Estoy hablando de un
paquete de gestión de programas como lo es Synaptic. Con Synaptic
puedes abrirlo buscar una aplicación instalarla y todo eso, sin hacer
ningun tipo de busqueda. Windows no tiene nada comparado con esto,
con Windows tu tienes que buscar el software/programa que quieras
utilizar o insertar el cd/dvd de el en el equipo y correr el setup.exe o
install.exe. Hasta ahora en Linux la instalación de programas es simple,
centralizada y sin dolores de jaquecas:p.
Página 81

GRUPO LINUX REDES II
7. Rigidez VS Flexibilidad: Siempre comparo a Linux y a Windows con
un cuarto donde el piso y el techo donde son movibles o no. Con Linux,
tienes un cuarto donde el techo y el piso pueden ser movidos tan altos
como tu quieras, tan altos o bajos como tu quieras. Con Windows, ese
piso y ese techo son inmovibles, no puedes ir mas allá de donde
Microsoft haya dicho que puedas ir. Por ejemplo los escritorios con
Linux puedes hacerlos lucir tal como tu quieras que luzcan existe la
experiencia Compiz, con Microsoft tu tienes que manejar el escritorio
que ellos han decidido que sea tu escritorio perfecto.
8. Fanaticos VS corporativos: Quiero agregar este punto por que creo
que Linux ha alcanzado el punto que ha llegado a ser mas allá que solo
proyectos escolares. Microsoft posee a administradores certificados
que tambien son fanaticos, al igual que con Linux ellos tambien son
fanaticos. De una u otra manera lo son.
9. Automatizado VS Contenido removible no automatizado: Recuerdo
los dias en que tu tenías que montar un floppy para usarlo y sacarlo
para dejarlo de usar, esos dias estan llegando a su fin de alguna
manera, pero no tanto. Un problema que altera a los nuevos usuarios
de Linux es como se utilizan los contenidos que son removibles. La
idea de montar un cd cada vez que lo vayamos a usar no queda muy
claro para esos usuarios que son nuevos en Linux. Sin embargo lo
pueden realizar igual que Windows, pero que cualquiera pueda
modificar o borrar la información que acabas de agregar a tus
contenidos es una idea que nos deja algo de inquietud.
Página 82

GRUPO LINUX REDES II
10.Correr a nivel multiple VS correr en una solo nivel: No pude
encontrar el nombre perfecto para este punto, asi que tratare de
explicarlo. En Linux nos da la posibilidad de detenernos a distintos
niveles. Con esto tu puedes trabajar desde la linea de comando (nivel
3) o desde la interfaz gráfica (nivel 5). Esto en realidad te puede salvar
cuando tienes X problema y no sabes que es. En Windows serás
afortunado si puedes trabajar en la linea de comandos en Modo a
pruebad e fallos, despues puede o puede que no tengas las
herramientas para arreglar el problema. En Linux aún en linea de
comandos a nivel 3, puedes instalar utilidades (apt-get install
NOMBRE). Trabajar en diferentes niveles es de alguna manera
benefico digamos que estas en un servidor donde necesitas la mayor
cantidad de memoria posible, trabajar en la linea de comandos puede
ayudar en esos casos un montón. Con Windows estas atorado siempre
con la interfaz gráfica a menos que tengas un grave problema.
Ventajas y desventajas entre Microsoft Windows y GNU Linux, mitos y realidades:
Los servidores de red con Software Libre dominan el 65% del mercado
mundial, mientras que Windows posee actualmente un 25%.
Según una encuesta realizada recientemente por IBM, el 83% de las
empresas planean realizar trabajos basados en GNU/Linux durante 2007,
mientras que sólo el 23% está planificando lo mismo en base a Windows.
Andrew Kutz es un experto en virtualización (técnica que permite correr un
sistema operativo dentro de otro, para aprovechar recursos de hardware), y
es además Microsoft Certified Solutions Developer (MCSD) y Certified
Página 83

GRUPO LINUX REDES II
Windows Security Administrator (CWSA) por SANS/GIAC, es decir, un
experto en desarrollos de Microsoft y en administración de seguridad en
Windows.
Kutz conoce muy bien el mundo del Software Libre y GNU/Linux, y declara lo
siguiente: "Lo cierto es que manejo tanto servidores Windows como Linux y
tengo que instalar muchos más parches en los servidores Windows que en
sus hermanos Linux.
Tal y como "sale de la caja", Linux da una paliza a Windows en lo que se
refiere a seguridad pre-configurada. Eso no equivale a decir que Windows no
puede ser hecho seguro. De hecho, un servidor Windows bien configurado es
mucho más fácil de manejar que un servidor Linux, pero eso no anula el
hecho de que si se instala un servidor con Windows y el de al lado con Linux,
se ponen ambos en la red y se abandona la habitación, el servidor Windows
va a ser el que resulte secuestrado."
Kutz reponde a la pregunta ¿Por qué si GNU/Linux es considerado por la gran mayoría de expertos en seguridad el sistema más seguro, el uso masivo entre los usuarios de PCs de escritorio aún no llega?
Respueta: Quizá porque la seguridad no es prioritaria en las computadoras de
uso doméstico o en las oficinas de los diversos tipos de instituciones, sean
estatales o privadas.
Las migraciones de los últimos tiempos (Ej.: 14.000 computadoras estatales
en Munich, Alemania) nos muestran que cuanto más profesional y seria es
una institución, más propensa es a usar GNU/Linux.
Se ha demostrado, además, que se valoran otros beneficios que brinda este
sistema. Por ejemplo: la independencia tecnológica, el bajo costo, las
libertades para adaptarlo a las necesidades de cada caso y, muchas veces, la
Página 84

GRUPO LINUX REDES II
posibilidad de contribuir con mejoras al software y así ayudar a otras personas
e instituciones.
Si me hablan de seguridad informática, debo decir que en mi sistema
operativo GNU/Linux no tuve ningún caso de vulnerabilidad (virus, spyware,
rootkits, troyanos, gusanos) en casi 3 años que lo llevo usando, para lo cual
no he tomado ninguna precaución.
En el Internet, los alojamiento de sitio Web, correo POP3, IMAP, y SMTP, el
78% se encuentran bajo la plataforma de GNU Linux, ya que este posee una
variedades de motores para servidores de correos y páginas Web, sin costo y
con una estabilidad confiable, por lo que no es tanto por lo Gratis sino por su
robustez y confiabilidad de este. en tanto Microsoft posee la combinación de
IIS (Internet Information Services), SQL Server, Exchange Server, los cuales
poseen un porcentaje mayor de vulnerabilidad a los ataque de hackers o
crackers, además de que deben ser pagados a Microsoft por cada usuario en
el servidor, a pesar de ser más vulnerable a los ataques.
Se dice que esto se debe a que es el sistema operativo más usado y
conocido, por consecuencia, al que más atacan, esto puede tener mucho de
cierto, pero no es tan real, en lo referente al más usado.
En realidad existe una estadística por zona donde en el Occidente y
Latinoamérica, el más utilizado es Microsoft Windows XP, Vista, y sus
aplicaciones; contrario al Oriente y Europa, donde se concentran la mayor
cantidad de Computadores personales con GNU Linux, esto
independientemente de la cantidad de servidor en la Mega Red (Internet).
En el enlace de más abajo podrá ver otra de la tantas ventajas entre Microsoft
y GNU Linux, teniendo en cuanta, que todo lo que esta debajo de la columna
Página 85

GRUPO LINUX REDES II
Windows, representa un costo por cada aplicación, lo contrario de la columna
de Linux (Open Source).
.Alternativas de Software Privativo y Software Libre
Categoria del Programa
Aplicaciones Privativas Aplicaciones Libres
Navegadores MS Internet Explorer, Opera, Avant Browse
Mozilla Firefox, Konqueror, Mozilla Suite, Epiphany, Galeon, Dillo
Clientes de Correo Electrónico
MS Outlook, Outlook Express, Eudora
Mozilla Thunderbird, Kmail, Evolution
Gestor de Descargas Flashget, Golzilla, Download Accelerator Plus, Getright
Prozilla, Downloader for X, Kget, wget
Cliente IRC mIRC, Xircon, Pircon Xchat, irssi, BitchX
Clientes de Mensajeria Instantánea
MSN Messenger, Yahoo Meneenger, ICQ, AIM
aMSN, Kopete, Gaim, Centericq, Everybuddy
Descargador de Sitios Web
Teleport Pro Httrack, wget, Downloader for X
Compartir archivos en la red P2P
Kazaa, Ares, Napter, WinMX
aMule, Limeware, GtK-Gnutella, xMule
Analizador de Red EtherPeek, MS Network Monitor, Iris
tcpdump, ethereal, ethertape
Videoconferencia Netmeeting Gnomemeeting, vlc
Editor de Texto Notepad, Wordpad, TextPad
Kedit, Gedit, vim, ed, nano, Emacs
Compresores de Archivos
Winzip, Winrar Gnozip, Ark, Gnochive, gzipm gzip2, tar, zip
Visor de PDFs Adobe Acrobar Reader xpdf, kpdf, kghostview, gv
Antivirus McAfee, Kaspersky, Norton, Panda
ClamAV, OpenAntivirus
Página 86

GRUPO LINUX REDES II
Configuracion del sistema
Mscofing Webmin, Linuxconf, Yast, sysinstall
Gestores de Arranque MS NTLDR, System Commander, Power Quest Boot Magic
GRUB, LILO, LOADLIN, SYSLINUX
Particionamiento de disco
Power Quest Partition Magic
parted, Gparted, fdisk, QTParted, fips, cfdisk
Reproductor de musica
Winamp, windoze media player
XMMS, amarok, noatun, moc
Grabadores de CD Nero Express, Roxio Easy Creator
K3B, XCDRoast, KonCD, GnomeBaker
Reproductores de CD Windoze CD player KsCD, Grip
Ripiadores de CD Nero, Virtual Drive, Virtual CD
Grip, Audacity, KaudioCreator, cdparanoia
Editores simples de graficos
MS Paint Kpaint, TuxPaint, Xpaint, Gpaint
Editores potentes de graficos
Adobe Photoshop, Paint Shop Pro
Gimp, Krita, ImageMagick
Editores de graficos vectoriales
Adobe Illustrator, Corel Draw, Freehand
Sodipodi, xfig, Karbon14, inkscape, Xara LX
Editores de Iconos Microangelo Gnome-iconedit, kiconedit
Creación de Peliculas Flash
Macromedia Flash DrawSWF, Ming, F4L, KToon
Suite Ofimática MS Office, StartOffice OpenOffice.org, koffice, Gnome Office
15. CERTIFICACIONES LINUX
¿POR QUE CERTIFICARSE EN LPI?
Página 87

GRUPO LINUX REDES II
Avance profesional. Las personas que obtienen una certificación gozan
de mayor credibilidad y reconocimiento por sus conocimientos y
experiencia en Linux.
Mejores expectativas laborales. La certificación comprueba a los clientes
y empleadores tus habilidades en el manejo y administración de Linux, lo
que te permitirá acceder a mejores oportunidades de trabajo y desarrollo
profesional.
Mayor confianza. Al participar en el proceso de certificación tendrás la
seguridad de contar con los conocimientos y habilidades necesarias para
realizar tu trabajo de manera eficiente y efectiva.
Actualización. El mercado de TI cambia rápidamente, asegúrate de estar
actualizado para satisfacer la demanda del exigente mercado laboral de
hoy.
Crecimiento de Linux. Compañías de todos tipos y tamaños por todo el
mundo están migrando a Linux. Estas empresas requieren de personal
capacitado. La certificación te permitirá aprovechar esas oportunidades
laborales.
Diferenciación. Distínguete de tus competidores. El mercado laboral de
hoy se vuelve cada vez más competitivo por lo que no basta solo con tu
experiencia. La certificación Linux te permita destacar como profesional
serio y capacitado.
15.1. Certificación LPI
Las certificaciones LPIC (LPI Certificación) han sido diseñadas para
certificar las competencias de los profesionales de TI que usan el
Sistema Operativo Linux y herramientas asociadas.
Página 88

GRUPO LINUX REDES II
LPIC han sido diseñadas para ser independiente de la distribución y
siguiendo el Linux
Standard Base (LSB) en conjunto con otros estándares
relacionados.
El programa LPI se basa en realización de encuestas para
establecer un nivel de certificación basado en el trabajo a
desempeñar utilizando para ello procesos de Psicometría para
garantizar la relevancia y calidad de la certificación.
Las preguntas de los exámenes cubren objetivos públicamente
conocidos y de uso masivo.
Niveles de lpic
LPIC-1”Profesional Junior en Linux” - LPIC 101 y LPIC 102
LPIC-2”Profesional Avanzado en Linux” - LPIC 201 y LPIC 202
LPIC-3”Professional Senior en Linux” - LPIC 301Core y LPIC 302
Mixed Environments
a)
Certificación Lpic-1
Objetivos
Ser capaz de trabajar en la línea de comandos
Realizar tareas sencillas de mantenimiento como ayudar a
usuarios, mantenimiento de usuarios, realización de copias
de seguridad y restauraciones, inicio y arranque de sistemas
Instalación y configuración de un equipo de trabajo y su
conectividad a la red.
Página 89

GRUPO LINUX REDES II
Tópicos
Hardware y arquitectura de sistemas
Instalación de Linux y gestión de paquetes
Comandos Unix
Dispositivos, Sistemas de ficheros, y la jerarquía de ficheros
estandard
Gestión/consulta de opciones del Kernel y módulos de Kernel
Servicios de Impresión
Documentación
Shells, Scripting, Programación y Compilación
El sistema X-Windows
Tareas administrativas (Gestión de Usuarios, Grupos,
Archivos, Syslog, etc)
Networking sobre Linux (Configuración, Optimización,
Resolución Problemas, PPP)
Seguridad básica (Tareas de administración de seguridad,
Seguridad del sistema, Seguridad a nivel de usuario)
b) Certificación Lpic - 2Objetivos
Administración de un site pequeño o mediano
Planificación, mantenimiento, securización de una red mixta
(Microsoft/Linux) incluyendo Servidor de red Samba,
Firewall, Proxy, Correo, News, Web y FTP.
Gestión y toma de decisiones en un departamento de TI con
Linux
Página 90

GRUPO LINUX REDES II
Tópicos
Kernel (Componentes, Compilación, Parches, Modificaciones
al Kernel)
Bootloader (Configuración del arranque de sistema y de
procesos de arranque, Recuperación del sistema)
Sistemas de Archivos/Filesystems (Gestión, Mantenimiento,
Opciones de uso de filesystems)
Hardware (Configuración de RAID, Añadir nuevo Hardware,
Gestión de Discos y LVM, PCMCIA)
Sistemas de Archivos en Red (Configuración Samba y
servidores NFS)
Mantenimiento del Sistema (Syslog, Gestión de paquetes,
Copias de seguridad)
Configuración de sistema y automatización de procesos
(Shell script avanzado)
Configuración avanzada de Red (iproute2, Enrutamiento
Avanzado, Resolución de problemas)
Servicios de Internet (Configuración Avanzada de Postfix,
Sendmail, Mailman, Apache 1 y 2, Proxy Squid, SSH)
DHCP (Configuración Avanzada)
Gestión Avanzada de Sistemas de Autenticación (PAM,
LDAP, NIS/NIS+)
c) Certificación Lpic - 3Objetivos
Gestión Avanzada de cualquier tipo de implementación de
servidores Linux
Integración de Linux en entornos heterogéneos
Exámenes Asociados
LPIC 302 Entornos mixtos (Integración)
Página 91

GRUPO LINUX REDES II
LPIC 303 Seguridad (Tópicos Avanzados de Seguridad:
Netfilter, ebfilter, Snort, tshark, entre otros)
LPIC 304 Alta disponibilidad y Virtualización (Linux-HA,
DRBD, Clusterización de Servicios, Xen)
LPIC 305 Web e Intranet (Configuración Avanzada de
Apache, Uso de módulos de Apache, LVS, ipvs entre otros)
LPIC 306 Correo y mensajería (Configuración Avanzada de
Sendmail/Postfix, Integración con LDAP entre otros)
Ventajas de lpic
Para Empleadores/Encargados de Áreas de TI
Certifica las competencias de cada profesional de TI Linux (”If
you don't know the subjects you won't pass”)
Permite saber cuál es el nivel exacto de los profesionales y así
orientar su trabajo según sus competencias
Obliga a los profesionales a mantenerse en continuo
aprendizaje ya que la certificación debe ser renovada
Los programas de certificación están desarrollados según las
necesidades actuales de la industria
Los programas de certificación están respaldados por grandes
empresas (IBM, Novell, SGI Linux Journal)
La certificación está desarrollada por profesionales para
profesionales
Es la certificación #1 a nivel mundial (más de 180.000
profesionales certificados)
Ventajas de lpic
Para Profesionales TI
Página 92

GRUPO LINUX REDES II
Es reconocida mundialmente, por lo tanto se puede trabajar
en cualquier lugar del mundo
Permite demostrar de manera formal que se poseen las
competencias técnicas necesarias
Gracias a su neutralidad, permite trabajar con cualquier
distribución Linux
Aumenta el valor profesional
Entrega las competencias necesarias para enfrentar problemas
reales en entornos reales
Está desarrollada por profesionales y validada por grandes
empresas según las necesidades de la industria
Existe una completa comunidad de apoyo
15.2. Diferencias de LPIC
Versus rhce
Programa LPIC
Enfocada a certificar las competencias reales
Neutral a cualquier distribución Linux
Basada en herramientas disponibles en cualquier
distribución Linux
Independiente deVendors de Software y Hardware
Sirve como base para cualquier otra certificación Linux
Programarhce
Orientada a la resolución de problemas
Desarrollada para administrar sistemas basados en Red
Hat
Página 93

GRUPO LINUX REDES II
Basada en herramientas de administración y software
existente en sistemas Red Hat
Basada en Vendors y soluciones de asociados a Red Hat Inc.
Aplicable sólo a certificaciones RedHat
(RHCE/RHCT/RHCA)
15.3. CERTIFICACIÓN DE RED HAT
Programa de Certificación de Red Hat
El Programa de certificación de Red Hat es un programa de
certificación profesional de Red Hat para habilidades tales como
administración de sistemas en Red Hat Linux y Red Hat Enterprise
Linux.
Las pruebas son completamente prácticas e involucran la
resolución de problemas, instalación y administración del sistema. No
hay preguntas de opción múltiple y todo se hace en un sistema en
vivo. Por lo general hay más de una manera de configurar un servicio
ó resolver un problema, el examen está enfocado en los resultados
finales, no en el proceso que se llevó a cabo para lograr el resultado.
La certificación más conocida y común es la de Red Hat Certified
Engineer.
Red Hat Certified Technician
La certificación de inicio. La certificación Red Hat Certified
Technician (RHCT) se enfoca en la administración de un solo sistema.
Red Hat Certified Engineer
Página 94

GRUPO LINUX REDES II
El programa de Red Hat Certified Engineer (RHCE) extiende el
RHCT, enfocándose en los servicios y seguridad informática.
Red Hat Certified Architect
El Red Hat Certified Architect (RHCA) requiere de cinco endosos
adicionales al RHCE los cuales se enfocan a un nivel empresarial.
Desde clusters hasta el despliegue de sistemas, los cinco exámenes
se aseguran de que el estudiante pueda desplegar los sistemas a un
nivel empresarial. Red Hat ofrece cuatro días de clase por cada curso;
incluyendo un examen en el quinto día.
Red Hat Certified Security Specialist
Red Hat Certified Security Specialist (RHCSS). Esta certificación
incluye dos endosos al RHCA y el examen SELinux.
15.4. CERTIFICACION UBUNTU
Ubuntu Certified Professional, Nueva Curriculum & Objetivos
del examen, 1 de mayo 2009
El Ubuntu Certified Professional (UCP) es una certificación de
capacitación basados en el nivel 1 de certificación LPI. Para ganar la
UCP, los candidatos están obligados a pasar la LPI 101, LPI 102 y los
199 exámenes de Ubuntu.
15.5. VENTAJAS DE UN PROGRAMA DE CERTIFICACIÓN EN NOVELL.
a) Beneficios para una universidad
Seminarios dicatados en la universidad por ingenieros
certificados.
Eventos de divulgación en conjunto
Página 95

GRUPO LINUX REDES II
Creación de un banco de empleo de Linux center, exclusivo para
alumnos de la universidad
Divulgación de casos de éxito de la universidad
Certificación más prestigiosa de Linux para los alumnos,
otorgándole un valor agregado a la universidad.
b) Beneficios para los alumnos
La posibilidad de obtener las Certificaciones CLP 10, la más
prestigiosa del mundo Linux, con importantes descuentos.
Articulación con carreras de grado de la universidad. Los
alumnos que seleccionen la plataforma Novell para realizar
sus trabajos de campo, investigaciones y tesis, recibirán:
Certificado de reconocimiento de Linux Center y novell.
Adquisición de conocimiento de más alto nivel de la industria.
Apertura del horizonte profesional y laboral.
16. SOLARIS
Dentro del sistema operativo UNIX se crearon otros sistemas operativos
como lo son Solaris, Linux, SCO, BSD, etc.
Dentro del contexto del siguiente trabajo se hablará sobre el ambiente
operativo de Solaris, el cual nos proporciona muchas razones para emigrar al
ambiente del sistema operativo Solaris debido a que provee Portabilidad,
Escalabilidad, Interoperabilidad y Compatibilidad. Además de esto también posee
una gran funcionalidad en áreas con simetría de multiprocesos con multithreads,
funcionalidad de tiempo real, mayor seguridad, y un Sistema de Administración
mejorado.
También se hablará sobre el kernel, algunos comandos, entre otras
especificaciones técnicas del mismo.
Página 96

GRUPO LINUX REDES II
16.1. CARACTERÍSTICAS
Entre las características de Solaris tenemos:
PORTABILIDAD.- El software conformado por una ABI aplicación
de interfaces binaria (Application Binary Interface) ejecuta con un
Shrinkwrapped (Contracción envuelta) el software en todos los
sistemas vendidos con la misma arquitectura del microprocesador. Esto
obliga a los desarrolladores de aplicaciones a reducir el costo del
desarrollo del software y traer productos al mercado rápidamente, y
obliga a los usuarios a actualizar el hardware mientras retienen sus
aplicaciones de software y minimizan sus costos de conversión.
ESCALABILIDAD: Las aplicaciones se usan con más frecuencia
en el sobre tiempo, y requiere sistemas más poderosos para
soportarlos. Para operar en un ambiente creciente, el software debe ser
capaz de ejecutar en un rango de ancho poderoso y debe ser capaz de
tomar ventajas del poder adicional que se está procesando.
INTEROPERATIBIDAD: La computación del ambiente heterogéneo
es una realidad hoy. Los usuarios compran de muchos vendedores
para implementar la solución que necesitan. La estandarización y una
clara interface son criterios para un ambiente heterogéneo, permitiendo
a los usuarios desarrollar estrategias para comunicarse por medio de
su red. El sistema operativo de Solaris puede interoperar con unos
sistemas muy populares hoy en el mercado, y aplicaciones que se
ejecutan en UNIX se pueden comunicar fácilmente.
COMPATIBILIDAD: La tecnología de la computación continúa ha
avanzando rápidamente, pero necesita permanecer en el ámbito
competitivo para minimizar sus costos y maximizar sus ingresos.
16.2. CARACTERISTICAS PARA LOS USUARIOS
Página 97

GRUPO LINUX REDES II
ESPACIO DE TRABAJO PARA EL ADMINISTRADOR (A
workspace manager).- cuenta con una ventana de manejo de servicios
rápidos (open, close, more, etc.), así como herramientas el cual le
permite al usuario entallar su espacio de trabajo a sus necesidades
personales.
INTEGRACION DE SERVICIOS DESKTOP (Desktop Integration
Services).- incluyen ToolTalk, Drag and Drop (arrastrar y soltar), y cut
and paste (cortar y pegar), proporcionando la base para que las
aplicaciones puedan integrarse unos con otros.
BIBLIOTECAS GRAFICAS (Graphics Libraries).- incluye XGL, Xlib,
PEX, y XIL, proporcionando soporte para aplicaciones de 2D y 3D.
ADMINISTRADOR DE CALENDARIO (Calendar Manager).- posee
una aplicación de administrador de tiempo que despliega citas y todos
los compromisos del día, semana, o un mes en una ojeada. También
contiene un Multibrowse que hace un programa de reuniones entre un
grupo de usuarios más fácil. Varios calendarios pueden ser cubiertos
simultáneamente para determinar la conveniencia de la hora de una
reunión en una ojeada.
HERRAMIENTA DE IMAGEN (Image Tool): permite cargar, ver y
salvar imágenes en 40 diferentes formatos incluyendo PICT, PostScript
(TM), TIFF, GIF, JFIF, y muchas más. Otras herramientas incluyen una
herramienta de impresión, audio, shell, reloj, y editor de texto.
16.3. CARACTERISTICAS PARA EL ADMINISTRADOR DEL SISTEMA
El Sistema Solaris ofrece una variedad de herramientas nuevas para
el administrador como lo son:
Dispositivo de Información: los administradores pueden usar
estos accesorios opcionales para obtener información sobre
dispositivos instalados incluyendo nombres, atributos, y accesibilidad.
Página 98

GRUPO LINUX REDES II
Sistema de Administración de Archivo: estos accesorios
permiten a los administradores crear, copiar, amontonar, depurar,
reparar y desmontar sistemas de archivos, crear y remover cadenas de
archivos y nombrar tuberías o pipes, y manejar volúmenes.
Manejo del Proceso: este controla la agenda de control del
sistema. Usando estos accesorios, administradores pueden generar
reportes sobre el desempeño, entrada de identificación, ubicación del
acceso a discos, y buscar la manera de afinar el desempeño del
sistema.
Usuarios y el manejo del grupo: con estos accesorios, un
administrador puede crear y eliminar entradas en grupos y entradas de
identificación del sistema, y asignar grupos y IDs de usuario.
Seguridad: El ASET (Automated Security Enhancement Tool)
es un accesorio que incrementa la seguridad porque permite a
los administradores de sistemas revisar archivos del sistema
incluyendo permisos, pertenencia, y contenido del archivo. El
ASET alerta a los usuarios acerca de problemas de seguridad
potencial y donde es apropiado colocar el sistema de archivos
automáticamente de acuerdo a los niveles de seguridad
especificados.
16.4. PAQUETES DE SOFTWARE Y CLUSTERS
El software del sistema de Solaris es entregado en unidades conocidos
como paquetes. Un paquete es una colección de archivos y directorios requeridos
para el producto de un software. Un cluster (racimo) es una colección de
paquetes.
Hay 4 tipos de clusters:
Página 99

GRUPO LINUX REDES II
Núcleo del Soporte del Sistema (Core System Support): es el software de
configuración mínima; contiene solo el software necesario para iniciar el
funcionamiento del computador y ejecutar el ambiente operativo de Solaris.
Sistema de Soporte para Usuarios Finales (End User System Support):
contiene el Núcleo del Soporte del Sistema más el Sistema de soporte para
usuarios finales, como lo es el Open Windows sistema de ventanas y
aplicaciones dearchivos DeskSet relacionados; este cluster incluye el
software comendado para un usuario final.
Soporte de Sistemas Desarrollados (Developer System Support):
contiene soporte de usuario final del sistema más librerías, incluye archivos
y herramientas que se necesitan para desarrollar el software en el sistema
de Solaris.
Distribución Entera (Entire Distribution): contiene todo el ambiente de
Solaris.
16.5. ADMINISTRACION DEL PAQUETE
El manejo de paquetes de software simplifica la instalación y actualización
del software. La administración es simplificada porque el método de manejo del
software del sistema y aplicaciones de terceros son ahora consistentes.
Las herramientas para crear paquetes de software están en un paquete de
aplicaciones de herramientas de biblioteca.
Hay 2 herramientas que se pueden utilizar para instalar y remover
paquetes:
Programa de Interface Gráfica (A graphical user interface program): se
puede instalar un software en un sistema local o en un sistema remoto con
Admintol (comenzando con el comando Admintol). Se utiliza Admintol para:
Ver el software instalado en un sistema local.
Página 100

GRUPO LINUX REDES II
Instalar o remover un software en un sistema local. El comando de
línea de accesorios (The command-line utilities): se utiliza para instalar,
remover, y revisar la instalación del paquete de software.
SERVICE ACCESS FACILITY (SAF) El SAF es una herramienta usada
para administrar terminales, modems, y otros dispositivos de red. En
particular, el SAF permite:
Añadir y administrar ttymon and listen monitores en puertos (usando el
comando sacadm)
Añadir y administrar ttymon servicios de monitores en puertos (usando
los comandos pmadm y ttyadm)
Añadir y administrar listen servicios de monitores en puerto (usando los
comandos pmadm y nlsadmin)
Administrar y troubleshoot de dispositivos TTY.
Administrar y troubleshoot entradas de requisitos de red para servicios
de impresión.
Administrar y troubleshoot el controlador de acceso al servicio (Service
Access Controller) usando el comando sacadm.
17. UNIX
Unix se trata de un sistema operativo de los mas utilizados y con
mas futuro debido a que son muchos organismos oficiales y particulares los
que defienden su utilización, así como muchas firmas de fabricación y
comercialización de computadoras que lo incorporan en sus productos.
Podemos citar el ejemplo de la Comunidad Económica Europea, que
impone el sistema operativo UNIX en todas las aplicaciones que se
desarrollan bajo sus auspicios.
Unix es un sistema operativo de tiempo compartido, controla los
recursos de una computadora y los asigna entre los usuarios. Permite a los
usuarios correr sus programas. Controla los dispositivos de periféricos
Página 101

GRUPO LINUX REDES II
conectados a la máquina. Además es un sistema multiusuario, en el que
existe la portabilidad para la implementación de distintas computadoras.
17.1. Características Generales
Es un sistema operativo de tiempo compartido, controla los
recursos de una computadora y los asigna entre los usuarios. Permite a los
usuarios correr sus programas. Controla los dispositivos de periféricos
conectados a la máquina.
Posee las siguientes características:
Es un sistema operativo multiusuario, con capacidad de simular
multiprocesamiento y procesamiento no interactivo.
Está escrito en un lenguaje de alto nivel: C.
Dispone de un lenguaje de control programable llamado SHELL.
Ofrece facilidades para la creación de programas y sistemas y el
ambiente adecuado para las tareas de diseños de software.
Emplea manejo dinámico de memoria por intercambio o paginación.
Tiene capacidad de interconexión de procesos.
Permite comunicación entre procesos.
Emplea un sistema jerárquico de archivos, con facilidades de protección
de archivos, cuentas y procesos.
Tiene facilidad para redireccionamiento de Entradas/Salidas.
Garantiza un alto grado de portabilidad.
El sistema se basa en un Núcleo llamado Kernel, que reside
permanentemente en la memoria, y que atiende a todas las llamadas del
sistema, administra el acceso a los archivos y el inicio o la suspensión de
las tareas de los usuarios.
La comunicación con el sistema UNIX se da mediante un programa
de control llamado SHELL. Este es un lenguaje de control, un intérprete, y
Página 102

GRUPO LINUX REDES II
un lenguaje de programación, cuyas características lo hacen sumamente
flexible para las tareas de un centro de cómputo.
Como lenguaje de programación abarca los siguientes aspectos:
Ofrece las estructuras de control normales: secuenciación, iteración
condicional, selección y otras.
Paso de parámetros.
Sustitución textual de variables y Cadenas.
Comunicación bidireccional entre órdenes de shell.
El shell permite modificar en forma dinámica las características con que
se ejecutan los programas en UNIX:
Las entradas y salidas pueden ser redireccionadas o redirigidas hacia
archivos, procesos y dispositivos;
Es posible interconectar procesos entre sí.
17.2. Estandarización de UNIX
Debido a las múltiples versiones en el mercado de UNIX, se
comenzaron a publicar estándares para que todas las s versiones fuesen
'compatibles'. La primera de ellas la lanzó AT&T llamada SVID (System V
Interface Definition) que definiría cómo deberían ser las llamadas al
sistema, el formato de los archivos y muchas cosas más, pero la otra
versión importante, la de Bekeley (Berkeley Software Distribution o BSD)
simplemente la ignoró.
Después la IEEE usó un algoritmo consistente en revisar las
llamadas al sistema de ambas versiones (System V y BSD) y aquellas que
eran iguales las definió como estándares surgiendo así la definición
'Portable Operating System for UNIX' o POSIX, que tuvo buen éxito y que
varios fabricantes adoptaron rápidamente.
El estándar de POSIX se llama 1003.1 Posteriormente los institutos
ANSI e ISO se interesaron en estandarizar el lenguaje 'C' y conjuntamente
se publicaron definiciones estándares para otras áreas del sistema
Página 103

GRUPO LINUX REDES II
operativo como la interconectividad, el intérprete de comandos y otras. En
la tabla 8.1 se muestran las definiciones de POSIX.
17.3. Filosofía de UNIX
Las ideas principales de UNIX fueron derivadas del proyecto
MULTICS (Multiplexed Information and Computing Service) del MIT y de
General Electric. Estas ideas son:
Todo se maneja como cadena de bytes: Los dispositivos periféricos, los
archivos y los comandos pueden verse como secuencias de bytes o
como entes que las producen. Por ejemplo, para usar una terminal en
UNIX se hace a través de un archivo (generalmente en el directorio /dev
y con nombre ttyX).
Manejo de tres descriptores estándares: Todo comando posee tres
descriptores por omisión llamados 'stdin', 'stdout' y 'stderr', los cuales
son los lugares de donde se leen los datos de trabajo, donde se envían
los resultados y en donde se envían los errores, respectivamente. El
'stdin' es el teclado, el 'stdout' y el 'stderr' son la pantalla por omisión
(default).
Capacidades de 'entubar' y 'redireccionar': El 'stdin', 'stdout' y el 'stderr'
pueden usarse para cambiar el lugar de donde se leen los datos, donde
se envían los resultados y donde se envían los errores,
respectivamente. A nivel comandos, el símbolo de 'mayor que' (>) sirve
para enviar los resultados de un comando a un archivo. Por ejemplo, en
UNIX el comando 'ls' lista los archivos del directorio actual (es lo mismo
que 'dir' en DOS). Si en vez de ver los nombres de archivos en la
pantalla se quieren guardar en el archivo 'listado', el redireccionamiento
es útil y el comando para hacer la tarea anterior es 'ls > listado'. Si lo
que se desea es enviar a imprimir esos nombres, el 'entubamiento' es
útil y el comando sería 'ls | lpr', donde el símbolo "|" ( pipe) es el
entubamiento y 'lpr' es el comando para imprimir en UNIX BSD.
Página 104

GRUPO LINUX REDES II
Crear sistemas grandes a partir de módulos: Cada instrucción en UNIX
está diseñada para poderse usar con 'pipes' o 'redireccionamiento', de
manera que se pueden crear sistemas complejos a través del uso de
comandos simples y elegantes. Un ejemplo sencillo de esto es el
siguiente. Suponga que se tienen cuatro comandos separados A,B,C y
D cuyas funcionalidades son:
o A: lee matrices checando tipos de datos y formato.
o B: recibe matrices, las invierte y arroja el resultado en forma
matricial.
o C: recibe una matriz y le pone encabezados 'bonitos'
o D: manda a la impresora una matriz cuidando el salto de página, etc.
Como se ve, cada módulo hace una actividad específica, si lo que se
quiere es un pequeño sistema que lea un sistema de ecuaciones y como
resultado se tenga un listado 'bonito', simplemente se usa el entubamiento
para leer con el módulo A la matriz, que su resultado lo reciba el B para
obtener la solución, luego esa solución la reciba el módulo C para que le
ponga los encabezados 'bonitos' y finalmente eso lo tome el módulo D y lo
imprima, el comando completo sería ' A | B | C | D '.
17.4. Sistema de Archivos en UNIX
El sistema de archivos de UNIX, desde el punto de vista del usuario,
tiene una organización jerárquica o de árbol invertido que parte de una raíz
conocida como "/" (diagonal).
Página 105

GRUPO LINUX REDES II
Es una diagonal al revés que la usada en DOS. Internamente se usa
un sistema de direccionamiento de archivos de varios niveles, cuya
estructura más primitiva se le llama 'information node' (i-node) cuya
explicación va más allá de este trabajo.
El sistema de archivos de UNIX ofreceun poderoso conjunto de
comandos y llamadas al sistema. En la tabla 8.2 se muestran los comandos
más útiles para el manejo de archivos en UNIX vs. VMS.
17.5. Manejo de Archivos en UNIX y VMS
La protección de archivos en UNIX se maneja por medio de una
cadena de permisos de nueve caracteres. Los nueve caracteres se dividen
en tres grupos de tres caracteres cada uno.
El primer grupo (1) especifica los permisos del dueño del archivo. El
segundo grupo especifica los permisos para aquellos usuarios que
pertenecen al mismo grupo de trabajo que el dueño y finalmente el tercer
grupo indica los permisos para el resto del mundo.
En cada grupo de tres caracteres pueden aparecer las letras RWX
en ese orden indicando permiso de leer (READ), escribir (WRITE) y
ejecutar (EXECUTE). Por ejemplo, la cadena completa RWXR-XR-- indica
que el dueño tiene los tres permisos (READ,,WRITE,EXECUTE), los
miembros de su grupo de trabajo tienen permisos de leer y ejecutar
(READ,EXECUTE) y el resto del mundo sólo tienen permiso de leer
(READ).
Página 106

GRUPO LINUX REDES II
Las llamadas al sistema más útiles en UNIX son 'open', 'close' e
'ioctl'. Sirven para abrir, cerrar archivos; y establecer las características de
trabajo.
Por ejemplo, ya que en UNIX las terminales se accesan a través de
archivos especiales, el 'ioctl' (input output control) sirve para establecer la
velocidad, paridad, etc; de la terminal.
17.6. El núcleo de UNIX
El núcleo de UNIX (kernel) se clasifica como de tipo monolítico, pero
en él se pueden encontrar dos partes principales [Tan92] el núcleo
dependiente de la máquina y el núcleo independiente.
El núcleo dependiente se encarga de las interrupciones, los
manejadores de dispositivos de bajo nivel (lower half) y parte del manejo de
la memoria.
El núcleo independiente es igual en todas las plataformas e incluye
el manejo de llamadas del sistema, la planificación de procesos, el
entubamiento, el manejo de centinelas, la paginación e intercambio, el
manejo de discos y del sistema de archivos.
17.7. Los procesos en UNIX
El manejo de procesos en UNIX es por prioridad y round robin. En
algunas versiones se maneja también un ajuste dinámico de la prioridad de
acuerdo al tiempo que los procesos han esperado y al tiempo que ya han
usado el CPU.
El sistema provee facilidades para crear 'pipes' entre procesos,
contabilizar el uso de CPU por proceso y una pila común para todos los
procesos cuando necesitan estarse ejecutando en modo privilegiado
(cuando hicieron una llamada al sistema). UNIX permite que un proceso
haga una copia de sí mismo por medio de la llamada 'fork', lo cual es muy
Página 107

GRUPO LINUX REDES II
útil cuando se realizan trabajos paralelos o concurrentes; también se
proveen facilidades para el envío de mensajes entre procesos.
Recientemente Sun Microsystems, AT&T, IBM, Hewlett Packard y
otros fabricantes de computadoras llegaron a un acuerdo para usar un
paquete llamado ToolTalk para crear aplicaciones que usen un mismo
método de intercambio de mensajes.
17.8. El manejo de memoria en UNIX
Los primeros sistema con UNIX nacieron en máquinas cuyo espacio
de direcciones era muy pequeño (por ejemplo 64 kilobytes) y tenían un
manejo de memoria real algo complejo. Actualmente todos los sistemas
UNIX utilizan el manejo de memoria virtual siendo el esquema más usado
la paginación por demanda y combinación de segmentos paginados, en
ambos casos con páginas de tamaño fijo.
En todos los sistemas UNIX se usa una partición de disco duro para
el área de intercambio. Esa área se reserva al tiempo de instalación del
sistema operativo. Una regla muy difundida entre administradores de
sistemas es asignar una partición de disco duro que sea al menos el doble
de la cantidad de memoria real de la computadora.
Con esta regla se permite que se puedan intercambiar flexiblemente
todos los procesos que estén en memoria RAM en un momento dado por
otros que estén en el disco. Todos los procesos que forman parte del
kernel no pueden ser intercambiados a disco. Algunos sistemas operativos
(como SunOS) permiten incrementar el espacio de intercambio incluso
mientras el sistema está en uso (en el caso de SunOS con el comando
'swapon').
También es muy importante que al momento de decidirse por un
sistema operativo se pregunte por esa facilidad de incrementar el espacio
de intercambio, así como la facilidad de añadir módulos de memoria RAM a
la computadora sin necesidad de reconfigurar el núcleo.
Página 108

GRUPO LINUX REDES II
17.9. El manejo de entrada/salida en UNIX
Derivado de la filosofía de manejar todo como flujo de bytes, los
dispositivos son considerados como archivos que se accesan mediante
descriptores de archivos cuyos nombres se encuentran generalmente en el
directorio '/dev'. Cada proceso en UNIX mantiene una tabla de archivos
abiertos (donde el archivo puede ser cualquier dispositivo de
entrada/salida).
Esa tabla tiene entradas que corresponden a los descriptores, los
cuales son números enteros [Deitel93] obtenidos por medio de la llamada a
la llamada del sistema 'open'.
17.10. Llamadas al sistema de entrada/salida
En UNIX es posible ejecutar llamadas al sistema de entrada/salida
de dos formas: sincronía y asíncrona. El modo síncrono es el modo normal
de trabajo y consiste en hacer peticiones de lectura o escritura que hacen
que el originador tenga que esperar a que el sistema le responda, es decir,
que le de los datos deseados.
A veces se requiere que un mismo proceso sea capaz de supervisar
el estado de varios dispositivos y tomar ciertas decisiones dependiendo de
si existen datos o no. En este caso se requiere una forma de trabajo
asíncrona. Para este tipo de situaciones existen las llamadas a las rutinas
'select' y 'poll' que permiten saber el estado de un conjunto de descriptores.
17.11. Conclusión
Unix es un sistema operativo apropiado para muchas aplicaciones,
ya que ofrece muchas facilidades para proceso de textos (en un marco
atractivo para programadores) y facilidades de comunicación entre usuarios
y máquinas.
Página 109

GRUPO LINUX REDES II
Unix es popular debido a que:
Es portátil, y por lo tanto, todo el software desarrollado en él es portátil
también.
Se puede cambiar de máquina sin cambiar de sistema operativo ni de
aplicaciones.
Es fácil de adaptar según los requerimientos del usuario.
Es muy fiable.
Es fácil de usar.
Tiene una amplia gama de utilidades.
Desde el punto de vista técnico, UNIX se refiere a una familia de
sistemas operativos que comparten unos criterios de diseño e
interoperabilidad en común. Esta familia incluye más de 100 sistemas
operativos desarrollados a lo largo de 20 años. No obstante, es importante
señalar que esta definición no implica necesariamente que dichos sistemas
operativos compartan código o cualquier propiedad intelectual.
18. PROTOCOLO LDAP
18.1. Cómo configurar OpenLDAP como servidor de autenticación
LDAP (Lightweight Directory Access Protocol) es un protocolo para
consulta y modificación de servicios de directorio que se desempeñan
sobre TCP/IP. LDAP utiliza el modelo X.500 para su estructura, es decir, se
estructura árbol de entradas, cada una de las cuales consiste de un
conjunto de atributos con nombre y que a su vez almacenan valores.
18.2. Equipamiento lógico necesario.
• openldap-2.2.13
• openldap-clients-2.2.13
Página 110

GRUPO LINUX REDES II
• openldap-servers-2.2.
• authconfig-4.6.10
• authconfig-gtk-4.6.10 (opcional)
Instalación a través de yum.Si utiliza CentOS 5, Red Hat Enterprise Linux 5 o White Box
Enterprise Linux 5, solo se necesita realizar lo siguiente para instalar
o actualizar el equipamiento lógico necesario:
yum -y install openldap openldap-clients openldap-servers authconfig authconfig-gtk
SELinux y el servicio ldap.Para que SELinux permita al servicio ldap funcionar normalmente,
haciendo que se pierda toda la protección que brinda esta implementación,
utilice el siguiente mandato:
setsebool -P slapd_disable_trans 1
Creación de directorios.Con fines de organización se creará un directorio específico para
este directorio y se configurará con permisos de acceso exclusivamente al
usuario y grupo ldap.
mkdir /var/lib/ldap/autenticar
chmod 700 /var/lib/ldap/autenticar
chown ldap:ldap /var/lib/ldap/autenticar
Página 111

GRUPO LINUX REDES II
Se requiere además copiar el fichero
/etc/openldap/DB_CONFIG.example dentro de /var/lib/ldap/addressbook/
como el fichero DB_CONFIG:
cp /etc/openldap/DB_CONFIG.example
/var/lib/ldap/autenticar/DB_CONFIG
Generación de claves de acceso para LDAP.Crear la clave de acceso que se asignará en LDAP para el usuario
administrador del directorio. Basta ejecutar desde una terminal:
Slappasswd
Lo anterior debe dar como salida un criptograma como lo mostrado a
continuación:
{SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Copie y respalde este criptograma. El texto de la salida será utilizado
más delante en el fichero /etc/openldap/slapd.conf y se definirá como
clave de acceso para el usuario dministrador, quien tendrá todos los
privilegios sobre el directorio.
Fichero de configuración /etc/openldap/slapd.conf.Se edita el fichero /etc/openldap/slapd.conf y se verifica que los
ficheros de esquema mínimos requeridos estén presentes. De tal modo, al
inicio del fichero debe haber algo similar a lo siguiente:
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
Página 112

GRUPO LINUX REDES II
include /etc/openldap/schema/nis.schema
# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2
Se añade al fichero /etc/openldap/slapd.conf lo siguiente con el fin
de definir el nuevo directorio que en adelante se utilizará para autenticar a
toda al red local:
database bdb
suffix "dc=su-dominio,dc=com"
rootdn "cn=Administrador,dc=su-dominio,dc=com"
rootpw {SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
directory /var/lib/ldap/autenticar
# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
Inicio del servicio ldap.Inicie el servicio de LDAP y añada éste al resto de los servicios que
arrancan junto con el sistema:
service ldap start
chkconfig ldap on
Migración de cuentas existentes en el sistema.Edite el fichero /usr/share/openldap/migration/migrate_common.ph y
modifique los los valores de las variables $DEFAULT_MAIL_DOMAIN y
$DEFAULT_BASE a fin de que queden del
Página 113

GRUPO LINUX REDES II
siguiente modo:
# Default DNS domain
$DEFAULT_MAIL_DOMAIN = "su-dominio.com";
# Default base
$DEFAULT_BASE = "dc=su-dominio,dc=com";
A continuación hay que crear el objeto que a su vez contendrá el
resto de los datos en el directorio. Genere un fichero base.ldif del siguiente
modo:
/usr/share/openldap/migration/migrate_base.pl > base.ldif
Se utilizará ldapadd para insertar los datos necesarios. Las opciones
utilizadas con este mandato son las siguientes:
-x autenticación simple
-W solicitar clave de acceso
-D binddn Nombre Distinguido (dn) a utilizar
-h anfitrión Servidor LDAP a acceder
-f fichero fichero a utilizar
Una vez entendido lo anterior, se procede a insertar la información
generada en el directorio utilizando lo siguiente:
ldapadd -x -W -D 'cn=Administrador, dc=su-dominio, dc=com' -h 127.0.0.1 -f base.ldif
Una vez hecho lo anterior, se podrá comenzar a poblar el directorio
con datos. Lo primero será importar los grupos y usuarios existentes en el
sistema. Realice la importación de usuarios utilizando los guiones
correspondientes del siguiente modo:
/usr/share/openldap/migration/migrate_group.pl /etc/group group.ldif
Página 114

GRUPO LINUX REDES II
/usr/share/openldap/migration/migrate_passwd.pl /etc/passwd passwd.ldif
Lo anterior creará los ficheros group.ldif y passwd.ldif, los cuales
incluirán la información de los grupos y cuentas en el sistema, incluyendo
las claves de acceso. Los datos se podrán insertar en el directorio LDAP
utilizando lo siguiente:
ldapadd -x -W -D 'cn=Administrador, dc=su-dominio, dc=com' -h 127.0.0.1 -f group.ldif
ldapadd -x -W -D 'cn=Administrador, dc=su-dominio, dc=com' -h 127.0.0.1 –f passwd.ldif
18.3. Comprobaciones.
Antes de configurar el sistema para utilizar LDAP para autenticar, es
conveniente verificar que todo funciona correctamente.
El siguiente mandato verifica que directorios disponibles existen en
el servidor 127.0.0.1.
ldapsearch -h 127.0.0.1 -x -b '' -s base '(objectclass=*)' namingContexts
Lo anterior debe devolver una salida similar a lo siguiente:
# extended LDIF
# LDAPv3
# base <> with scope base
# filter: (objectclass=*)
# requesting: namingContexts
dn:
namingContexts: dc=su-dominio,dc=com
# search result
search: 2
result: 0 Success
Página 115

GRUPO LINUX REDES II
# numResponses: 2
# numEntries: 1
El siguiente mandato debe devolver toda la información de todo el
directorio solicitado (dc=sudominio,dc=com).
ldapsearch -x -b 'dc=su-dominio,dc=com' '(objectclass=*)'
18.4. Configuración de clientes.
Defina los valores para los parámetros host y base a fin de
establecer hacia que servidor y a que irectorio conectarse en el fichero
/etc/ldap.conf. Para fines prácticos, el valor del parámetro ost corresponde
a la dirección IP del servidor LDAP y el valor del parámetro base debe ser
el ismo que se especificó en el fichero /etc/openldap/slapd.conf para el
parámetro suffix.
Considerando que el servidor LDAP tiene la dirección IP
192.168.0.1, se puede definir lo siguiente n el fichero
/etc/openldap/slapd.conf:
# Your LDAP server. Must be resolvable without using LDAP.
# Multiple hosts may be specified, each separated by a
# space. How long nss_ldap takes to failover depends on
# whether your LDAP client library supports configurable
# network or connect timeouts (see bind_timelimit).
host 192.168.0.1
# The distinguished name of the search base.
base dc=su-dominio,dc=com
Página 116

GRUPO LINUX REDES II
Lo que sigue es utilizar ya sea authconfig, authconfig-tui o
authconfig-gtk para configurar elsistema a fin de que se utilice el servidor
LDAP para autenticar.
authconfig (modo-texto)Suponiendo que el servidor LDAP tiene la dirección IP 192.168.0.1,
utilice el siguiente mandato ara configurar al cliente remoto a fin de que
autentique en el directorio LDAP.
authconfig --useshadow --enablemd5 --nostart \
--enableldap --enableldapauth --ldapserver=ldap://192.168.0.1/ \
--ldapbasedn=dc=su-dominio,dc=com –update
authconfig-tui (modo texto)Habilite las casillas Utilizar LDAP y Utilizar Autenticación LDAP y
pulse la tecla Tab hasta iguiente y pulse la tecla Enter yverifique que los
datos del servidor y el directorio a utilizar sean los correctos.
authconfig-gtk (modo gráfico)Si se utiliza authconfig-gtk se deben habilitar las casillas de Soporte
LDAP. Antes de cerrar la ventana en la pestañas de Información del
usuario y Autenticación. Antes de dar clic en Aceptar, haga clic en
Configurar LDAP y verifique que los datos del servidor y el directorio a
utilizar sean los correctos.
18.5. Administración.
Hay una gran cantidad de programas para acceder y administrar
servidores LDAP, pero la mayoría solo sirven para administrar usuarios y
grupos del sistema como diradmin y el módulo de LDAP de Webmin. La
Página 117

GRUPO LINUX REDES II
mejor herramienta de administración de directorios LDAP que podemos
recomendar es PHP LDAP Admin.
18.6. Respaldo de datos.
Debe detenerse el servicio de LDAP antes de proceder con el
respaldo de datos.
service ldap stop
A continuación, se utiliza la herramienta slapcat, utilizando el fichero
de configuración
/etc/openldap/slapd.conf.
slapcat -v -f /etc/openldap/slapd.conf -l respaldo-$(date +%Y%m%d).ldif
Concluido el proceso de respaldo de datos, puede iniciarse de nuevo
el servicio de ldap.
service ldap start
18.7. Restauración de datos.
El procedimiento requiere detener el servicio.
service ldap stop
Debe eliminarse los datos del directorio a restaurar.
rm -f /var/lib/ldap/autenticar/*
A continuación, se utiliza la herramienta slapadd para cargar los
datos desde un fichero *.ldif de respaldo.
slapadd -v -c -l respaldo-20061003.ldif -f /etc/openldap/slapd.conf
Página 118

GRUPO LINUX REDES II
Se debe ejecutar la herramienta slapindex, que se utiliza para
regenerar los índices LDAP.
slapindex
Concluido el proceso de restauración de datos, puede iniciarse de
nuevo el servicio de ldap.
service ldap start
18.8. Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuego con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir el puerto 389 por TCP (LDAP).
Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw tcp 389
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO
NOT REMOVE
18.9. Cómo configurar OpenLDAP como libreta de direcciones.18.9.1. Equipamiento lógico necesario.
• openldap-2.2.13
• openldap-clients-2.2.13
• openldap-servers-2.2.13
• evolution-data-server-1.x (o bien simplemente del fichero.
evolutionperson.schema que incluye dicho paquete)
Instalación a través de yum.
Página 119

GRUPO LINUX REDES II
Si utiliza CentOS 5, Red Hat Enterprise Linux 5 o White Box
Enterprise Linux 5, solo se necesita realizar lo siguiente para instalar o
actualizar el equipamiento lógico necesario:
yum -y install openldap openldap-clients openldap-servers evolution-data-server
18.9.2. Procedimientos. SELinux y el servicio ldap.Para que SELinux permita al servicio ldap funcionar normalmente,
haciendo que se pierda toda la protección que brinda esta implementación,
utilice el siguiente mandato:
setsebool -P slapd_disable_trans 1
Creación de directorios.Con fines de organización se creará un directorio específico para
este directorio y se configurará con permisos de acceso exclusivamente al
usuario y grupo ldap.
mkdir /var/lib/ldap/addressbook
chmod 700 /var/lib/ldap/addressbook
chown ldap:ldap /var/lib/ldap/addressbook
Se requiere además copiar el fichero
/etc/openldap/DB_CONFIG.example dentro de /var/lib/ldap/addressbook/
como el fichero DB_CONFIG:
cp/etc/openldap/DB_CONFIG.example/var/lib/ldap/addressbook/DB_CONFIG
Generación de claves de acceso para LDAP.Crear la clave de acceso que se asignará en LDAP para el usuario
administrador del directorio. Basta ejecutar desde una terminal:
Página 120

GRUPO LINUX REDES II
slappasswd
Lo anterior debe dar como salida un criptograma como lo mostrado a
continuación:
{SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Copie y respalde este criptograma. El texto de la salida será utilizado
más adelante en el fichero
/etc/openldap/slapd.conf y se definirá como clave de acceso para el
usuario Administrador, quien tendrá todos los privilegios sobre el directorio.
Fichero de esquemas.El texto de la salida será utilizado más adelante en el fichero
/etc/openldap/slapd.conf y se definirá al usuario Administrador para como el
utilizado para acceder con todos los privilegios al directorio.
Se copia el fichero de esquema de evolution-data-server dentro del
directorio
/etc/openldap/schema/:
cp /usr/share/evolution-data-server-*/evolutionperson.schema
/etc/openldap/schema/
Fichero de configuración /etc/openldap/slapd.conf.Edite el fichero /etc/openldap/slapd.conf y agregue entre las
primeras líneas del fichero el esquema de datos instalado con el paquete
evolution-data-server:
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
Página 121

GRUPO LINUX REDES II
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
include /etc/openldap/schema/evolutionperson.schema
# Allow LDAPv2 client connections. This is NOT the default.
allow bind_v2
Independientemente de lo que ya se tenga configurado, y que no
será tocado, se añade al final del fichero /etc/openldap/slapd.conf lo
siguiente con el fin de definir el nuevo directorio que en adelante se utilizará
como libreta de direcciones, donde dc=su-dominio,dc=net corresponde al
nombre único y exclusivo para el nuevo directorio. Jamás utilice el mismo
nombre de otro directorio existente.
database bdb
suffix "dc=su-dominio,dc=net"
rootdn "cn=Administrador,dc=su-dominio,dc=net"
rootpw {SSHA}XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
directory /var/lib/ldap/addressbook
# Indices to maintain for this database
index objectClass eq,pres
index ou,cn,mail,surname,givenname eq,pres,sub
index uidNumber,gidNumber,loginShell eq,pres
index uid,memberUid eq,pres,sub
index nisMapName,nisMapEntry eq,pres,sub
Inicio del servicio ldap.Inicie el servicio de LDAP y añada éste al resto de los servicios que
arrancan junto con el sistema:
service ldap start
chkconfig ldap on
Página 122

GRUPO LINUX REDES II
Añadir datos al directorio.A continuación hay que crear el objeto que a su vez contendrá el
resto de los datos en el directorio. Genere un fichero addressbook.ldif al
cual agregará el siguiente contenido, del cual solo reemplace la cadena de
texto su-dominio por el dominio deseado:
dn: dc=su-dominio, dc=net
objectclass: top
objectclass: dcObject
objectclass: organization
o: Nombre completo de su compañia
dc: su-dominio
dn: ou=Addressbook, dc=su-dominio, dc=net
ou: Addressbook
objectClass: top
objectClass: organizationalUnit
Es importante señalar que si se omite el renglón vacío entre dc: su-
dominio y dn: ou=Addressbook, dc=su-dominio, dc=net, ocurrirá un
irremediable error de sintaxis cuando se intente cargar los datos en el
directorio. Respete los espacios, signos de puntuación, las mayúsculas y
las minúsculas.
Se utilizará ldapadd para insertar los datos necesarios. Las opciones
utilizadas con este mandato son las siguientes:
-x autenticación simple
-W solicitar clave de acceso
-D binddn Nombre Distinguido (dn) a utilizar
-h anfitrión Servidor LDAP a acceder
-f fichero fichero a utilizar
Página 123

GRUPO LINUX REDES II
Una vez entendido lo anterior, se procede a insertar la información
generada en el directorio utilizando lo siguiente:
ldapadd -x -W -D 'cn=Administrador, dc=su-dominio, dc=net' -h 127.0.0.1 -faddressbook.ldif
Una vez hecho lo anterior, se podrá comenzar a poblar el directorio
con datos. Genere el fichero su-usuario.ldif con los siguientes datos, donde
reemplazará los valores por reales. Elimine los campos que queden vacíos
o sean de poca utilidad, porque de otra manera LDAP impedirá insertar
éstos. Es importante destacar que deben estar incluidas las clases
top,person, organizationalPerson, inetOrgPerson y evolutionPerson, ya que
de otro modo no será posible utilizar los campos de información necesarios
para que el directorio funcione como libreta de direcciones.
dn: cn=Nombre Completo, ou=Addressbook, dc=su-dominio, dc=net
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
objectClass: evolutionPerson
cn: Nombre Completo
givenName: Nombre
sn: Apellidos
displayName: Apodo
title: Sr.
mail: su-cuenta-de-correo@ su-dominio .com
initials: I.N.I.C.I.A.L.E.S.
o: Nombre Completo de su compañía.
ou: Departamento o Sección a la que pertenece
businessRole: Puesto que desempeña en su empresa
homePostalAddress: Domicilio de su hogar.
Página 124

GRUPO LINUX REDES II
postalAddress: Domicilio de su empresa.
l: Ciudad
st: Estado
# Código postal
postalCode: 12345
# Telefono empresa
telephoneNumber: 55-5555-5555
# Teléfono principal
primaryPhone: 55-5555-5555
# Teléfono móvil
mobile: 55-5555-5555
# Telefono hogar
homePhone: 55-5555-5555
# Otro teléfono
otherPhone: 55-5555-5555
labeledURI: http://www.alcancelibre.org/
# Su fecha de nacimiento
birthDate: 1970-02-20
fileAs: Apellidos, Nombre
category: Cualquier-categoría-que-queira-crear
managerName: Nombre de su jefe, si lo tiene
assistantName: Nombre de su asistente, si lo tiene.
# Telefono de su asistente, si lo tiene
assistantPhone: 55-5555-5555
spouseName: Nombre de su esposa(o), si lo tiene.
# fecha en que celebra su aniversario de bodas, si aplica
anniversary: 2000-01-01
Los datos se podrán insertar utilizando lo siguiente:
Página 125

GRUPO LINUX REDES II
ldapadd -x -W -D 'cn=Administrador, dc=su-dominio, dc=net' -h 127.0.0.1 -f uusuario.ldif
18.9.3. Configuración de clientes.
Acceda hacia el directorio con cualquier cliente que tenga soporte
para acceder hacia directorios LDAP.
Novell Evolution.Hacer clic en Archivo . Nuevo. Libreta de direcciones.
Si en lugar de autenticar de manera anónima (modo de solo lectura)
lo hace con cn=Administrador, dc=su-dominio, dc=net (modo de lectura y
escritura), podrá realizar modificaciones y añadir fácilmente nuevos
registros en la libreta de direcciones.
Mozilla Thunderbird.Hacer clic en Archivo . Nuevo . Directorio LDAP
Al igual que con Novell Evolution, si en lugar de autenticar de
manera anónima (modo de solo lectura) lo hace con cn=Administrador,
dc=su-dominio, dc=net (modo de lectura y escritura), podrá realizar
modificaciones y añadir fácilmente nuevos registros en la libreta de
direcciones.
Squirrelmail.
Hay que editar el fichero /etc/squirrelmail/config.php y añadir/editar:
$ldap_server[0] = array(
'host' => '127.0.0.1',
'base' => 'ou=Addressbook,dc=su-dominio,dc=net',
Página 126

GRUPO LINUX REDES II
'name' >= 'Addressbook'
);
18.9.4. Administración.
Hay una gran cantidad de programas para acceder y administrar
servidores LDAP, pero la mayoría solo sirven para administrar usuarios y
grupos del sistema como diradmin y el módulo de LDAP de Webmin. La
mejor herramienta de administración de directorios LDAP que podemos
recomendar es PHP LDAP Admin.
18.9.5. Respaldo de datos.
Debe detenerse el servicio de LDAP antes de proceder con el
respaldo de datos.
service ldap stop
A continuación, se utiliza la herramienta slapcat, utilizando el fichero
de configuración /etc/openldap/slapd.conf.
18.9.6. Cómo configurar OpenLDAP con soporte SSL/TLS.
a) Acerca de LDAP en modo SSL/TLS.
El inicio de la operación StartTLS en un servidor LDAP,
establece la comunicación TLS (Transport Layer Security, o
Página 127

GRUPO LINUX REDES II
Seguridad para Nivel de Transporte) a través del mismo puerto 389
por TCP.
Provee confidencialidad en el transporte de datos e protección
de la integridad de datos. Durante la negociación, el servidor envía su
certificado con estructura X.509 para verificar su identidad.
Opcionalmente puede establecerse la comunicación. La conexión a
través del puerto 389 y 636 difiere en lo siguiente:
Al realizar la conexión por puerto 636, tanto el cliente como el
servidor establecen TLS antes de que se transfiera cualquier otro
dato, sin utilizar la operación StatTLS.
La conexión a través de puerto 636 debe cerrarse al terminar
TLS.
Acerca de RSA.RSA, acrónimo de los apellidos de sus autores, Ron Rivest,
Adi Shamir y Len Adleman, es un algoritmo para el cifrado de claves
públicas que fue publicado en 1977, patentado en EE.UU. en 1983
por el el Instituto Tecnológico de Michigan (MIT). RSA es utilizado
ampliamente en todo el mundo para los protocolos destinados para
el comercio electrónico.
Acerca de X.509.X.509 es un estándar ITU-T (estandarización de
Telecomunicaciones) para infraestructura de claves públicas (PKI, o
Public Key Infrastructure). Entre otras cosas, establece los
estándares para certificados de claves públicas y un algoritmo para
validación de ruta de certificación. Este último se encarga de verificar
que la ruta de un certificado sea válida bajo una infraestructura de
clave pública determinada. Es decir, desde el certificado inicial,
pasando por certificados intermedios, hasta el certificado de
Página 128

GRUPO LINUX REDES II
confianza emitido por una Autoridad Certificadora (CA, o Certification
Authority).
Acerca de OpenSSL.OpenSSL es una implementación libre, de código abierto, de
los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro)
y TLS (Transport Layer Security, o Seguridad para Nivel de
Transporte). Está basado sobre el extinto proyecto SSLeay, iniciado
por Eric Young y Tim Hudson, hasta que éstos comenzaron a trabajar
para la división de seguridad de EMC Corporation.
b) Procedimientos. Generando clave y certificado.
cd /etc/openldap/cacerts
La creación de la llave y certificado para OpenLDAP requiere
utilizar una clave con algoritmo RSA de 1024 octetos y estructura
x509. En el ejemplo a continuación, se establece una validez por 730
días (dos años) para el certificado creado.
openssl req -x509 -nodes -newkey rsa:1024 \
-days 730 -out slapd.crt -keyout slapd.key
Lo anterior solicitará se ingresen varios datos:
• Código de dos letras para el país.
Página 129

GRUPO LINUX REDES II
• Estado o provincia.
• Ciudad.
• Nombre de la empresa o razón social.
• Unidad o sección.
• Nombre del anfitrión.
• Dirección de correo.
El certificado solo será válido cuando el servidor LDAP sea invocado
con el nombre definido en el campo Common Name. Es decir, solo podrá
utilizarlo cuando se defina midominio.org como servidor LDAP con soporte
SSL/TLS. No funcionará si se invoca al servidor como, por mencionar un
ejemplo, directorio.midominio.org.
Es indispensable que todos los ficheros de claves y certificados
tengan permisos de acceso de solo lectura para el usuario ldap:
chown ldap.ldap /etc/openldap/cacerts/slapd.*
chmod 400 /etc/openldap/cacerts/slapd.*
Parámetros de /etc/openldap/slapd.conf.Se deben descomentar los parámetros TLSCACertificateFile,
TLSCertificateFile y TLSCertificateKeyFile establecendo las rutas
hacia el certificado y clave. Opcionalmente se puede descomentar la
directiva referral para indicar el URI (Uniform Resource Identifier o
Identificador Uniforme de Recursos) del servicio de directorio
superior como ldaps en lugar de ldap.
TLSCACertificateFile /etc/openldap/cacerts/slapd.crt
TLSCertificateFile /etc/openldap/cacerts/slapd.crt
TLSCertificateKeyFile /etc/openldap/cacerts/slapd.key
Página 130

GRUPO LINUX REDES II
referral ldaps://midominio.org
A fin de que surtan efecto los cambios, es necesario reiniciar
el servicio ldap.
service ldap restart
c) Comprobación.
Configure cualquier cliente LDAP para utilizar SSL en el puerto
636. Tras aceptar el certificado, en el caso de que éste no haya sido
firmado por un RA (Registration Authority o Autoridad de Registro),
servidor LDAP deberá permitir completar la conexión y realizar
cualquier tipo de consulta y/o manipulación de registros.
Configuración de GNOME Evolution.
Se debe establecer el mismo nombre del servidor utilizado
para crear el certificado, y conexión por SSL.
Configuración de Mozilla Thunderbird.
Página 131

GRUPO LINUX REDES II
Se debe establecer el mismo nombre del servidor utilizado
para crear el certificado, y conexión por SSL.
Configuración LDAP Browser.
Se debe establecer el mismo nombre del servidor utilizado
para crearel certificado, y conexión por SSL.
Configuración LDAP Administration Tool.
Página 132

GRUPO LINUX REDES II
Se debe establecer el mismo nombre del servidor utilizado
para crear el certificado, y conexión por SSL.
d) Modificaciones necesarias en el muro cortafuegos.
Si se utiliza un cortafuego con políticas estrictas, como por
ejemplo Shorewall, además del puerto 389 por TCP, es necesario
abrir el puerto 636 por TCP (LDAPS). Las reglas para el fichero
/etc/shorewall/rules de Shorewall correspondería a algo similar a lo
siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1 ACCEPT net fw tcp 389,636
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO
NOT REMOVE
Página 133

GRUPO LINUX REDES II
18.10. Razones por las cuales usar LDAP
La mayor ventaja de LDAP es que se puede consolidar información
para toda una organización dentro de un repositorio central. Por ejemplo,
en vez de administrar listas de usuarios para cada grupo dentro de una
organización, puede usar LDAP como directorio central, accesible desde
cualquier parte de la red. Puesto que LDAP soporta la Capa de conexión
segura (SSL) y la Seguridad de la capa de transporte (TLS), los datos
confidenciales se pueden proteger de los curiosos.
LDAP también soporta un número de bases de datos back-end en
las que se guardan directorios. Esto permite que los administradores
tengan la flexibilidad para desplegar la base de datos más indicada para el
tipo de información que el servidor tiene que diseminar. También, ya que
LDAP tiene una interfaz de programación de aplicaciones (API) bien
definida, el número de aplicaciones acreditadas para LDAP son numerosas
y están aumentando en cantidad y calidad.
18.11. Características de OpenLDAP
OpenLDAP incluye un número de características importantes.
Soporte LDAPv3 — OpenLDAP soporta la Capa de autenticación
y seguridad (SASL), la Seguridad de la capa de transporte (TLS)
y la Capa de conexión segura (SSL), entre otras mejoras.
Muchos de los cambios en el protocolo desde LDAPv2 han sido
diseñados para hacer LDAP más seguro.
Soporte IPv6 — OpenLDAP soporta la próxima generación del
protocolo de Internet versión 6.
LDAP sobre IPC — OpenLDAP se puede comunicar dentro de
un sistema usando comunicación interproceso (IPC). Esto mejora
Página 134

GRUPO LINUX REDES II
la seguridad al eliminar la necesidad de comunicarse a través de
la red.
API de C actualizada — Mejora la forma en que los
programadores se conectan para usar servidores de directorio
LDAP.
Soporte LDIFv1 — Provee compatibilidad completa con el
formato de intercambio de datos, Data Interchange Format
(LDIF) versión 1.
Servidor Stand-Alone mejorado — Incluye un sistema de control
de acceso actualizado, conjunto de hilos, herramientas
mejoradas y mucho más.
18.12. Terminología LDAP
Cualquier discusión sobre LDAP requiere un entendimiento básico
del conjunto de términos específicos de LDAP:
entrada — una entrada es una unidad en un directorio LDAP.
Cada entrada se identifica por su único Nombre distinguido
(Distinguished Name (DN)).
atributos — Los atributos son piezas de información directamente
asociada con la entrada. Por ejemplo, una organización puede
ser representada como una entrada LDAP. Los atributos
asociados con la organización pueden ser su número de fax, su
dirección, etc. En un directorio LDAP las entradas pueden ser
también personas, con atributos comunes como el número de
teléfono y la dirección de e-mail.
Algunos atributos son obligatorios mientras que otros son
opcionales. Una definición objectclass determina qué atributos se
requieren y cuáles no para cada entrada. Las definiciones de
Página 135

GRUPO LINUX REDES II
objectclass se encuentran en varios archivos de esquema, dentro
del directorio /etc/openldap/schema/.
LDIF — El Formato de intercambio de datos de LDAP (LDIF) es una
representación de texto ASCII de entradas LDAP. Los archivos usados
para importar datos a los servidores LDAP deben estar en formato
LDIF. Una entrada LDIF se ve similar al ejemplo siguiente:
[<id>]dn: <distinguished name><attrtype>: <attrvalue><attrtype>: <attrvalue><attrtype>: <attrvalue>
Una entrada puede contener tantos pares <attrtype>: <attrvalue> como
sean necesarios. Una línea en blanco indica el final de una entrada.
Aviso
Todas las parejas <attrtype> y <attrvalue> deben estar definidas en el archivo esquema correspondiente para usar esta información.
Cualquier valor comprendido dentro de < y > es una variable y
puede ser configurado cuando se cree una nueva entrada LDAP.
Sin embargo, esta regla no se aplica a <id>. El <id> es un
número determinado por la aplicación que se usa para modificar
la entrada.
18.13. Demonios y utilidades OpenLDAP
El grupo de bibliotecas y herramientas OpenLDAP están incluidas en
los paquetes siguientes:
openldap — Contiene las librerías necesarias para ejecutar las
aplicaciones del servidor y cliente OpenLDAP.
Página 136

GRUPO LINUX REDES II
openldap-clients — Contiene herramientas de línea de comandos
para visualizar y modificar directorios en un servidor LDAP.
openldap-server — Contiene los servidores y otras utilidades
necesarias para configurar y ejecutar un servidor LDAP.
Hay dos servidores contenidos en el paquete openldap-servers: el
Demonio independiente LDAP (/usr/sbin/slapd) y el Demonio independiente
de actualización de réplicas LDAP (/usr/sbin/slurpd).
El demonio slapd es el servidor independiente LDAP mientras que el
demonio slurpd es usado para sincronizar los cambios desde un servidor
LDAP a otro en la red. El demonio slurpd sólo es usado cuando se trabaja
con múltiples servidores LDAP.
Para llevar a cabo tareas administrativas, el paquete openldap-
server instala las utilidades siguientes en el directorio /usr/sbin/:
slapadd — Añade entradas desde un archivo LDIF a un directorio
LDAP. Por ejemplo, el comando /usr/sbin/slapadd -l ldif-input leerá en
el archivo LDIF, ldif-input, que contiene las nuevas entradas.
Importante
Debe ser usuario root para usar /usr/sbin/slapadd. Sin embargo, el servidor de directorio se ejecuta como usuario ldap. Por lo tanto, el servidor de directorio no podrá modificar ningún archivo creado por slapadd. Para corregir este problema, después que haya terminado de usar slapadd, escriba el comando siguiente:
chown -R ldap /var/lib/ldap
slapcat — Extrae entradas de un directorio LDAP en el formato
por defecto Sleepycat Software's Berkeley DB, y las guarda en
un archivo LDIF. Por ejemplo, el comando /usr/sbin/slapcat -l ldif-
Página 137

GRUPO LINUX REDES II
output tendrá como resultado un archivo LDIF llamado ldif-output
que contendrá las entradas para el directorio LDAP.
slapindex — Re-indexa el directorio slapd basado en el contenido
actual. Esta herramienta se debería ejecutar siempre que se
cambien las opciones de indexado dentro de
/etc/openldap/slapd.conf.
slappasswd — Genera un valor de contraseña encriptada de usuario para
ser usada con ldapmodify o el valor rootpw en el archivo de
configuración slapd, /etc/openldap/slapd.conf. Ejecute el comando
/usr/sbin/slappasswd para crear la contraseña.
Aviso
Asegúrese de detener slapd ejecutando /sbin/service lapd stop antes de usar slapadd, slapcat o slapindex. De otro modo se pondrá en riesgo la integridad del directorio LDAP.
El paquete openldap-clients instala herramientas utilizadas para
agregar, modificar y borrar entradas en un directorio LDAP dentro de
/usr/bin/ Estas herramientas incluyen lo siguiente:
ldapadd — Agrega entradas a un directorio LDAP aceptando
entradas vía archivo o entrada estándar; ldapadd es en realidad
un enlace duro a ldapmodify -a.
ldapdelete — Borra entradas de un directorio LDAP al aceptar
instrucciones del usuario por medio de la entrada desde el
indicador de comandos o por medio de un archivo.
ldapmodify — Modifica las entradas en un directorio LDAP,
aceptando la entrada por medio de un archivo o entrada
estándar.
Página 138

GRUPO LINUX REDES II
ldappasswd — Configura una contraseña para un usuario LDAP.
ldapsearch — Busca por entradas en el directorio LDAP usando
un indicador de comandos shell.
Con la excepción de ldapsearch, cada una de estas utilidades se usa
más fácilmente haciendo referencia a un archivo que contiene los cambios
que se deben llevar a cabo, que escribiendo un comando para cada
entrada que se desea cambiar en un directorio LDAP. El formato de dicho
archivo está esquematizado en las páginas del manual sobre cada utilidad.
18.14. NSS, PAM, y LDAP
Además de los paquetes OpenLDAP, Red Hat Enterprise Linux
incluye un paquete llamado nss_ldap, el cual mejora la habilidad de LDAP
para integrarse en Linux y otros ambientes UNIX.
El paquete nss_ldap provee los siguientes módulos:
/lib/libnss_ldap-<glibc-version>.so
/lib/security/pam_ldap.so
El paquete nss_ldap provee los siguientes módulos para las
arquitecturas Itanium o AMD64.
/lib64/libnss_ldap-<glibc-version>.so
/lib64/security/pam_ldap.so
El módulo libnss_ldap-<glibc-version>.so permite a las aplicaciones
buscar usuarios, grupos, hosts y otra información utilizando un directorio
LDAP por medio de la interfaz de glibc Nameservice Switch (NSS)
Página 139

GRUPO LINUX REDES II
(reemplace <glibc-version> con la versión de libnss_ldap en uso). NSS
permite a las aplicaciones autenticarse usando LDAP junto con el servicio
de nombres de NIS y archivos de autenticación planos.
El módulo pam_ldap permite que las aplicaciones PAM puedan
validar usuarios utilizando la información almacenada en el directorio
LDAP. Las aplicaciones PAM incluyen conexiones desde la consola,
servidores de correo POP e IMAP y Samba. Al desarrollar un servidor
LDAP en una red, se pueden autentificar todas estas aplicaciones usando
la misma combinación de nombre de usuario y contraseña, simplificando en
gran medida la administración.
18.15. PHP4, LDAP y el Servidor Apache http
Red Hat Enterprise Linux incluye también un paquete que contiene
un módulo LDAP para el lenguaje de comandos del servidor PHP.
El paquete php-ldap añade soporte LDAP al lenguaje empotrado en
HTML, PHP4 a través del módulo /usr/lib/php4/ldap.so. Este módulo
permite a los scripts PHP4 accesar información almacenada en un
directorio LDAP.
Red Hat Enterprise Linux se entrega con el módulo mod_authz_ldap
para el Servidor Apache HTTP. Este módulo utiliza la forma corta del
nombre distinguido para un sujeto y el emisor de un certificado de cliente
SSL para determinar el nombre distinguido del usuario dentro de un
directorio LDAP. También es capaz de autorizar a los usuarios basados en
los atributos de la entrada de del directorio LDAP de ese usuario,
determinando el acceso a los activos basados en los privilegios de acceso
del usuario y grupo, y negando el acceso para los usuarios con
contraseñas caducadas. Se requiere el módulo mod_ssl cuando se utilice
el módulo mod_authz_ldap.
Página 140

GRUPO LINUX REDES II
Nota
El módulo mod_authz_ldap no autentica a un usuario automáticamente a un directorio LDAP usando un hash de contraseña encriptado. Esta funcionalidad es proporcionada con el módulo experimental mod_auth_ldap, el cual no está incluido con Red Hat Enterprise Linux.
18.16. Aplicaciones cliente LDAP
Existen clientes gráficos de LDAP que soportan la creación y
modificación de directorios, pero no se entregan con Red Hat Enterprise
Linux. Una de estas aplicaciones es LDAP Browser/Editor.
La mayoría de los otros clientes LDAP acceden a directorios como
sólo lectura, usándolos como referencia, pero sin alterar información a lo
largo de la organización. Algunos ejemplos de tales aplicaciones son
Sendmail, Mozilla, Evolution y Gnome Meeting.
18.17. Archivos de configuración de OpenLDAP
Los archivos de configuración OpenLDAP son instalados dentro del
directorio /etc/openldap/. A continuación aparece una lista breve marcando
los directorios y archivos más importantes:
/etc/openldap/ldap.conf — Este es el archivo de configuración
para todas las aplicaciones cliente que usan las bibliotecas
OpenLDAP tales como ldapsearch, ldapadd, Sendmail, Pine,
Balsa, Evolution, y Gnome Meeting.
Página 141

GRUPO LINUX REDES II
/etc/openldap/slapd.conf — Este es el archivo configuración para
el demonio slapd.
Directorio /etc/openldap/schema/ — Este subdirectorio contiene
el esquema usado por el demonio slapd.
Nota
Si está instalado el paquete nss_ldap, creará un archivo llamado /etc/ldap.conf. Este archivo es usado por los módulos PAM y NSS proporcionados por el paquete nss_ldap.
19. PROTOCOLO SAMBA
19.1. Cómo configurar Samba básico. Acerca del protocolo SMB.
SMB (acrónimo de Server Message Block) es un protocolo, del Nivel
de Presentación del modelo OSI de TCP/IP, creado en 1985 por IBM.
Algunas veces es referido también como CIFS (Acrónimo de Common
Internet File System, http://samba.org/cifs/) tras ser renombrado por
Microsoft en 1998. Entre otras cosas, Microsoft añadió al protocolo soporte
para enlaces simbólicos y duros así como también soporte para ficheros de
gran tamaño. Por mera coincidencia esto ocurrió por la misma época en
que Sun Microsystems hizo el lanzamiento de WebNFS.
SMB fue originalmente diseñado para trabajar a través del protoclo
NetBIOS, el cual a su vez trabaja sobre NetBEUI (acrónimo de NetBIOS
Extended User Interface, que se traduce como Interfaz de Usuario
Extendida de NetBIOS), IPX/SPX (acrónimo de Internet Packet
Página 142

GRUPO LINUX REDES II
Exchange/Sequenced Packet Exchange, que se traduce como Intercambio
de paquetes interred/Intercambio de paquetes secuenciales) o NBT,
aunque también puede trabajar directamente sobre TCP/IP.
Acerca de Samba.SAMBA es un conjunto de programas, originalmente creados por
Andrew Tridgell y actualmente mantenidos por The SAMBA Team, bajo la
Licencia Publica General GNU, y que implementan en sistemas basados
sobre UNIX el protocolo SMB. Sirve como reemplazo total para Windows
NT,Warp, NFS o servidores Netware.
19.2. Equipamiento lógico necesario.
Los procedimientos descritos en este manual han sido probados
para poder aplicarse en sistemas con Red Hat™ Enterprise Linux 4, o
equivalentes o versiones posteriores, y al menos Samba 3.0.10 o versiones
posteriores.
Necesitará tener instalados los siguientes paquetes, que
seguramente vienen incluidos en los discos de instalación o depósitos de
equipamiento lógico de la distribución de GNU/Linux utilizada:
1. samba: Servidor SMB.
2. samba-client: Diversos clientes para el protoclo SMB.
3. samba- Ficheros necesarios para cliente y servidor.
4. common:
Instalación a través de yum.Si utiliza CentOS 4 y 5, Red Hat Enterprise Linux 5 o White Box
Enterprise Linux 4 y 5, y versiones posteriores, solo se necesita realizar lo
siguiente para instalar o actualizar el equipamiento lógico necesario:
Página 143

GRUPO LINUX REDES II
yum -y install samba samba-client samba-common
Instalación a través de up2date.Si se utiliza Red Hat Enterprise Linux 4, solo bastará realizar lo
siguiente para instalar o actualizar el equipamiento lógico necesario:
up2date -i samba samba-client samba-common
19.2.1. Procedimientos.
SELinux y el servicio smb.A fin de que SELinux permita al servicio smb funcionar como
Controlador Primario de Dominio (PDC, Primary Domain Controler), utilice
el siguiente mandato:
setsebool -P samba_domain_controller 1
A fin de que SELinux permita al servicio smb compartir los
directorios de inicio de los usuarios locales del sistema, utilice el siguiente
mandato:
setsebool -P samba_enable_home_dirs 1
Para definir que un directorio será compartido a través del servicio
smb, como por ejemplo /var/samba/publico, y que se debe considerar como
contenido tipo Samba, se utiliza el siguiente mandato:
chcon -t samba_share_t /var/samba/publico
Cada nuevo directorio que vaya a ser compartido a través de
Samba, debe ser configurado como acaba de describirse antes de ser
configurado en el fichero /etc/samba/smb.conf.
A fin de que SELinux permita al servicio smb compartir todos los
recursos en modo de solo lectura, utilice el siguiente mandato:
Página 144

GRUPO LINUX REDES II
setsebool -P samba_export_all_ro 1
A fin de que SELinux permita al servicio smb compartir todos los
recursos en modo de lectura y escritura, utilice el siguiente mandato:
setsebool -P samba_export_all_rw 1
Alta de cuentas de usuario.
Es importante sincronizar las cuentas entre el servidor Samba y las
estaciones Windows. Es decir, si en una máquina con Windows
ingresamos como el usuario paco con clave de acceso elpatito16, en el
servidor Samba deberá existir también dicha cuenta con ese mismo
nombre y la misma clave de acceso. Como la mayoría de las cuentas de
usuario que se utilizarán para acceder hacia Samba no requieren acceso al
interprete de mandatos del sistema, no es necesario asignar clave de
acceso con el mandato passwd y se deberá definir /sbin/nologin o bien
/bin/false como interpete de mandatos para la cuenta de usuario
involucrada.
useradd -s /sbin/nologin usuario-windows smbpasswd -a usuario-
windows No hace falta se asigne una clave de acceso en el sistema con el
mandato passwd puesto que la cuenta no tendrá acceso al interprete de
mandatos.
Si se necesita que las cuentas se puedan utilizar para acceder hacia
otros servicios como seríanTelnet, SSH, etc, es decir, que se permita
acceso al interprete de mandatos, será necesario especificar /bin/bash
como interprete de mandatos y además se deberá asignar una clave de
acceso en el sistema con el mandato passwd:
useradd -s /bin/bash usuario-windows
passwd usuario-windows
Página 145

GRUPO LINUX REDES II
smbpasswd -a usuario-windows
19.2.2. El fichero lmhosts
Es necesario empezar resolviendo localmente los nombres NetBIOS
asociándolos con direcciones IP correspondientes en el fichero lmhosts
(LAN Manager hosts). Para fines prácticos el nombre NetBIOS debe tener
un máximo de 11 caracteres. Normalmente se utiliza como referencia el
nombre corto del servidor o el nombre corto que se asigno como alias a la
interfaz de red. Si se edita el fichero /etc/samba/lmhosts, se encontrará un
contenido similar al siguiente:
127.0.0.1 localhost
Se pueden añadir los nombres y direcciones IP de cada uno de los
anfitriones de la red local.
Como mínimo debe encontrarse el nombre del anfitrión Samba y su
dirección IP correspondiente, y opcionalmente el resto de los anfitriones de
la red local. La separación de espacios se hace con un tabulador. Ejemplo:
127.0.0.1 localhost
192.168.1.1 servidor
192.168.1.2 joel
192.168.1.3 blanca
192.168.1.4 jimena
192.168.1.5 regina
192.168.1.6 isaac
192.168.1.7 finanzas
192.168.1.8 direccion
Parámetros principales del fichero smb.conf.
Página 146

GRUPO LINUX REDES II
Se modifica el fichero /etc/samba/smb.conf con cualquier editor de
texto. Este información que será de utilidad y que está comentada con un
símbolo # y varios ejemplos comentados con ; (punto y coma), siendo estos
últimos los que se pueden tomar como referencia.
Parámetro workgroup.Se establece el grupo de trabajo definiendo el valor del parámetro
workgroup asignando un grupo de trabajo deseado:
workgroup = MIGRUPO
Parámetro netbios name.Opcionalmente se puede establecer con el parámetro netbios name
otro nombre distinto para el servidor si acaso fuese necesario, pero
siempre tomando en cuenta que dicho nombre deberá corresponder con el
establecido en el fichero /etc/samba/lmhosts:
netbios name = maquinalinux
Parámetro server string.El parámetro server string es de carácter descriptivo. Puede
utilizarse un comentario breve que de una descripción del servidor.
server string = Servidor Samba %v en %L
Parámetro hosts allow.La seguridad es importante y esta se puede establecer
primeramente estableciendo la lista de control de acceso que definirá que
máquinas o redes podrán acceder hacia el servidor. El parámetro hosts
allow sirve para determinar esto. Si la red consiste en las máquinas con
dirección IP desde 192.168.1.1 hasta 192.168.1.254, el rango de
direcciones IP que se definirá en hosts allow será 192.168.1. De modo tal
que solo se permitirá el acceso dichas máquinas. En el siguiente ejemplo
se define la red 192.168.1.0/24 definiendo los tres primeros octetos de la
Página 147

GRUPO LINUX REDES II
dirección IP de red, así como cualquier dirección IP de la red 127.0.0.0/8
definiendo el primer octeto:
hosts allow = 192.168.1. 127.
Parámetro interfaces.El parámetro interfaces permite establecer desde que interfaces de
red del sistema se escucharán peticiones. Samba no responderá a
peticiones provenientes desde cualquier interfaz no especificada. Esto es
útil cuando Samba se ejecuta en un servidor que sirve también de puerta
de enlace para la red local, impidiendo se establezcan conexiones desde
fuera de la red local.
interfaces = lo eth0 192.168.1.254/24
Parámetro remote announce.La opción remote announce se encarga de que el servicio nmbd se
anuncie a si mismo de forma periódica hacia una red en particular y un
grupo de trabajo específico. Esto es particularmente útil si se necesita que
el servidor Samba aparezca no solo en el grupo de trabajo al que
pertenece sino también otros grupos de trabajo. El grupo de trabajo de
destino puede estar en donde sea mientras exista una ruta y sea posible la
difusión exitosa de paquetes.
Los valores que pueden ser utilizados son direcciones IP de difusión
(broadcast) de la red utilizada (es decir la última dirección IP del segmento
de red) y/o nombres de grupos de trabajo. En el siguiente ejemplo se define
que el servidor Samba se anuncie a través de las direcciones IP de difusión
192.168.1.255 (red 192.168.1.0/24) y 192.168.2.255 (red 192.168.2.0/24) y
hacia los grupos de trabajo DOMINIO1 y DOMINIO2.
remote announce = 192.168.1.255/DOMINIO1 192.168.2.255/DOMINIO2
Página 148

GRUPO LINUX REDES II
Impresoras en Samba.Las impresoras se comparten de modo predeterminado, así que solo
hay que realizar algunos ajustes. Si se desea que se pueda acceder hacia
la impresora como usuario invitado sin clave de acceso, basta con añadir
public = Yes en la sección de impresoras del siguiente modo:
[printers]
comment = El comentario que guste.
path = /var/spool/samba
printable = Yes
browseable = No
writable = no
printable = yes
public = Yes
Se pude definir también a un usuario o bien un grupo
(@grupo_que_sea) para la administración de las colas de las impresoras:
comment = All Printers
path = /var/spool/samba
browseable = no
guest ok = yes
writable = no
printable = yes
public = yes
printer admin = fulano, @opers_impresion
Con lo anterior se define que el usuario fulano y quien pertenezca al
grupo opers_impresion podrán realizar tareas de administración en las
impresoras.
Compartiendo directorios a través de Samba.Para los directorios o volúmenes que se irán a compartir, en el
mismo fichero de configuración encontrará distintos ejemplos para distintas
Página 149

GRUPO LINUX REDES II
situaciones particulares. En general, puede utilizar el siguiente ejemplo que
funcionará para la mayoría:
[Lo_que_sea]
comment = Comentario que se le ocurra
path = /cualquier/ruta/que/desee/compartir
El volumen puede utilizar cualquiera de las siguientes opciones:
Página 150

GRUPO LINUX REDES II
Página 151

GRUPO LINUX REDES II
En el siguiente ejemplo se compartirá a través de Samba el recurso
denominado datos, el cual está localizado en el directorio /var/samba/datos
del disco duro. Se permitirá el acceso a cualquiera pero será un recurso de
solo lectura salvo para los usuarios administrador y fulano.
Todo directorio nuevo que sea creado en su interior tendrá permiso
755 (drwxr-xr-x) y todo fichero que sea puesto en su interior tendrá
permisos 644 (-rw-r--r--.
Primero se crea el nuevo directorio /var/samba/datos, utilizando el
siguiente mandato:
mkdir -p /var/samba/datos
Página 152

GRUPO LINUX REDES II
Luego se define en SELinux que dicho directorio debe ser
considerado como contenido Samba.
chcon -t samba_share_t /var/samba/datos
Se edita el fichero /etc/samba/smb.conf y se añade hasta el final de
éste el siguiente contenido:
[datos]
comment = Directorio de de Datos
path = /var/samba/datos
guest ok = Yes
read only = Yes
write list = fulano, administrador
directory mask = 0755
create mask = 0644
Ocultando ficheros que inician con punto.Es poco conveniente que los usuarios puedan acceder o bien
puedan ver la presencia de ficheros ocultos en el sistema, es decir ficheros
cuyo nombre comienza con un punto, particularmente si acceden a su
directorio personal en el servidor Samba
(.bashrc, .bash_profile, .bash_history, etc.).Puede utilizarse el parámetro
hide dot files para mantenerlos ocultos.
hide dot files = Yes
Este parámetro es particularmente útil para complementar la
configuración de los directorios personales de los usuarios.
[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
Página 153

GRUPO LINUX REDES II
19.2.3. Iniciar el servicio y añadirlo al arranque del sistema.
Para iniciar el servicio smb por primera vez realice lo siguiente:
/sbin/service smb start
Si va a reiniciar el servicio, realice lo siguiente:
/sbin/service smb restart
Para que Samba inicie automáticamente cada vez que inicie el
servidor solo utilice el siguiente mandato:
/sbin/chkconfig smb on
19.2.4. Comprobaciones. Modo texto
Herramienta smbclient
Indudablemente el método más práctico y seguro es el mandato
smbclient. Este permite acceder hacía cualquier servidor Samba o
Windows, similar al mandato ftp en modo texto.
Para acceder al cualquier recurso de alguna máquina Windows® o
servidor SAMBA determine primero que volúmenes o recursos compartidos
posee está. utilice el mandato smbclient del siguiente modo:
smbclient -U usuario -L alguna_maquina
Página 154

GRUPO LINUX REDES II
Lo cual le devolvería más menos lo siguiente:
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Sharename Type Comment
--------- ---- -------
homes Disk Home Directories
netlogon Disk Network Logon Service
datos Disk datos
IPC$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
ADMIN$ IPC IPC Service (Servidor Samba 3.0.7-1.3E en mi-servidor)
epl5900 Printer Created by redhat-config-printer 0.6.x
hp2550bw Printer Created by redhat-config-printer 0.6.x
Anonymous login successful
Domain=[MI-DOMINIO] OS=[Unix] Server=[Samba 3.0.7-1.3E]
Server Comment
--------- -------
mi-servidor Servidor Samba 3.0.7-1.3E en mi-servidor
Workgroup Master
--------- -------
MI-DOMINIO MI-SERVIDOR
La siguiente corresponde a la sintaxis básica para poder navegar los
recursos compartidos por la máquina Windows o el servidor SAMBA:
smbclient //alguna_maquina/recurso -U usuario
Ejemplo:
smbclient //LINUX/DATOS -U fulano
Página 155

GRUPO LINUX REDES II
Después de ejecutar lo anterior, el sistema solicitará se proporcione
la clave de acceso del usuario fulano en el equipo denominado LINUX.
smbclient //LINUX/DATOS -U jbarrios
added interface ip=192.168.1.254 bcast=192.168.1.255 nmask=255.255.255.0
Password:
Domain=[miusuario] OS=[Unix] Server=[Samba 2.2.1a]
smb: >
Pueden utilizarse casi los mismos mandatos que en el intérprete de
ftp, como serían get, mget, put, del, etc.
Modo gráfico Desde el escritorio de GNOME.
Si utiliza GNOME 2.x o superior, éste incluye un módulo para
Nautilus que permite acceder hacia los recursos compartidos a través de
Samba sin necesidad de modificar cosa alguna en el sistema. Solo hay que
hacer clic en Servidores de red en el menú de GNOME.
Página 156

GRUPO LINUX REDES II
Desde Windows.Por su parte, desde Windows deberá ser posible acceder sin
problemas hacia Samba como si fuese hacia cualquier otra máquina con
Windows. Vaya, ni Windows ni el usuario notarán siquiera la diferencia.
19.3. Cómo configurar Samba denegando acceso a ciertos ficheros.
En algunos casos puede ser necesario denegar el acceso a ciertas
extensiones de ficheros, como ficheros de sistema y ficheros de
multimedios como MP3, MP4, MPEG y DivX. Este documento considera
que usted ya ha leído previamente, a detalle y en su totalidad el manual
«Cómo configurar Samba básico». y que ha configurado exitosamente
Samba como servidor de archivos.
19.3.1. Procedimientos.
El parámetro veto files se utiliza para especificar la lista, separada
por diagonales, de aquellas cadenas de texto que denegarán el acceso a
los ficheros cuyos nombres contengan estas cadenas. En el siguiente
ejemplo, se denegará el acceso hacia los ficheros cuyos nombres incluyan
la palabra «Security» y los que tengan extensión o terminen en «.tmp»:
[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
veto files = /*Security*/*.tmp/
Página 157

GRUPO LINUX REDES II
En el siguiente ejemplo, se denegará el acceso hacia los ficheros
que tengan las extensiones o terminen en «.mp3», «.mp4», «.mpeg» y
«.avi» en todos los directorios personales de todos los usuarios del
sistema:
[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
veto files = /*.mp3/*.mp4/*.mpg/*.avi/*.tmp/
19.3.2. Aplicando los cambios.
Para hacer que los cambios hechos surtan efecto tras modificar la
configuración, utilice:
service smb restart
19.3.3. Comprobaciones.
Con la finalizad de realizar pruebas, genere con el mandato echo del
sistema un fichero denominado prueba.mp3:
echo "fichero MP3 de pruebas" > prueba.mp3
Si aún no existiera, genere al usuario fulano:
useradd fulano
Utilice el mandato smbpasswd y asigne 123qwe como clave de
acceso al usuario fulano:
smbpasswd -a fulano
Página 158

GRUPO LINUX REDES II
Acceda con smbclient hacia el servidor Samba con el usuario fulano:
smbclient //127.0.0.1/fulano -Ufulano%123qwe
Lo anterior debe devolver una salida similar a la siguiente:
Domain=[M064] OS=[Unix] Server=[Samba 3.2.0rc1-14.9.el5.al]
smb: >
Utilizando el mandato put del intérprete SMB, suba el fichero
prueba.txt al directorio personal de fulano:
smb: > put prueba.mp3
Lo anterior debe devolver una salida similar a la siguiente indicando
el mensaje NT_STATUS_OBJECT_NAME_NOT_FOUND como respuesta,
lo cual indica que no fue permitido subir el fichero prueba.mp3:
smb: > put prueba.mp3
NT_STATUS_OBJECT_NAME_NOT_FOUND opening remote file
prueba.mp3
smb: >
Para salir del intérprete SMB utilice el mandato exit:
smb: > exit
19.4. Cómo configurar Samba con Papelera de Reciclaje
En algunas circunstancias, es necesario añadir una Papelera de
Reciclaje (Recycle Bin) para evitar la eliminación permanente del contenido
de un directorio compartido a través de Samba. Es particularmente útil para
los directorios personales de los usuario.
Página 159

GRUPO LINUX REDES II
Este documento considera que usted ya ha leído previamente, a
detalle y en su totalidad el manual «Cómo configurar Samba básico». y que
ha configurado exitosamente Samba como servidor de archivos.
19.4.1. Procedimientos
La Papelera de Reciclaje se activa añadiendo al recurso a compartir
los parámetros vfs objects y recycle:repository del modo ejemplificado a
continuación:
[homes]
comment = Home Directories
browseable = no
writable = yes
vfs objects = recycle
recycle:repository = Recycle Bin
Lo anterior creara el objeto recycle, que almacenará los contenidos
eliminados desde el cliente en un subdirectorio denominado Recycle Bin, el
cual es creado si éste no existiera. Si el contenido de Recycle Bin es
eliminado, éste se hará de forma permanente.
En el caso de directorios compartidos que sean accedidos por
distintos usuarios, el subdirectorio Recycle Bin se crea con permisos de
acceso solo para el primer usuario que elimine contenido. Lo correcto es
solo utilizarlo en directorios compartidos que solo sean utilizados por un
solo usuario. De ser necesario, se puede cambiar el permiso de acceso del
subdirectorio Recycle Bin con el mandato chmod de 0700 a 1777 para
permitir a otros usuarios utilizar éste, tomando en cuenta que de esta forma
el contenido conservará los privilegios de cada usuario y los contenidos
solo podrán ser eliminados permanentemente por sus propietarios
correspondientes.
Página 160

GRUPO LINUX REDES II
Se pueden añadir más opciones para lograr un comportamiento más
similar al de una Papelera de Reciclaje normal en Windows. El parámetro
recycle:versions define que si hay dos o más ficheros con el mismo
nombre, y estos son enviados a la Papelera de Reciclaje, se mantendrán
todos donde los fichero más recientes tendrán un nombre con el esquema
«Copy #x of nombre- fichero» (es decir, Copia #x del nombre-fichero). El
parámetro recycle:keeptree define que si se elimina un directorio con
subdirectorios y contenido, se mantendrá la estructura de éstos.
[homes]
comment = Home Directories
browseable = no
writable = yes
vfs objects = recycle
recycle:repository = Recycle Bin
recycle:versions = Yes
recycle:keeptree = Yes
Se puede definir además que se excluyan ficheros (recycle:exclude)
y directorios (recycle:exclude_dir) de ser enviado a la Papelera de Reciclaje
cierto tipo de contenido y sea eliminado de forma permanente de
inmediato. Las listas para ficheros y directorios son separada por tuberías
(|), y aceptan comodines (* y ?). En el siguiente ejemplo se excluyen los
ficheros con extensiones *.tmp, *.temp, *.o, *.obj, ~$*, *.~??, *.log, *.trace y
*.TMP, y los directorios/tmp, /temp y /cache.
[homes]
comment = Home Directories
browseable = no
writable = yes
vfs objects = recycle
recycle:repository = Recycle Bin
Página 161

GRUPO LINUX REDES II
recycle:versions = Yes
recycle:keeptree = Yes
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.log|*.trace|*.TMP
recycle:excludedir = /tmp|/temp|/cache
Si no se quiere que se guarden versiones distintas de ficheros con el
mismo nombre, para algunas extensiones, es posible hacerlo definiendo el
parámetro recycle:noversions y una lista de extensiones de ficheros
separados por tuberías (|). En el siguiente ejemplo, se indica que no se
guarden diferentes versiones de ficheros con el mismo nombre que tengan
las extensiones *.doc, *.ppt, *.dat y *.ini.
[homes]
comment = Home Directories
browseable = no
writable = yes
vfs objects = recycle
recycle:repository = Recycle Bin
recycle:versions = Yes
recycle:keeptree = Yes
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.log|*.trace|*.TMP
recycle:excludedir = /tmp|/temp|/cache
recycle:noversions = *.doc|*.ppt|*.dat|*.ini
También es posible definir un mínimo y un máximo de tamaño en
bytes a través de los parámetros recycle:minsize, que define un tamaño
mínimo, y recycle:maxsize, que define un tamaño máximo. Cualquier
fichero que esté fuera de estos límites establecidos, será eliminado
permanentemente de forma inmediata. En el siguiente ejemplo se define
que solo podrán ser enviados a la Papelera de Reciclaje los ficheros que
Página 162

GRUPO LINUX REDES II
tengan un tamaño mínimo de 10 bytes y un tamaño máximo de 5120 bytes
(5 MB)
[homes]
comment = Home Directories
browseable = no
writable = yes
hide dot files = Yes
vfs objects = recycle
recycle:repository = Recycle Bin
recycle:versions = Yes
recycle:keeptree = Yes
recycle:exclude = *.tmp|*.temp|*.o|*.obj|~$*|*.~??|*.log|*.trace|*.TMP
recycle:excludedir = /tmp|/temp|/cache
recycle:noversions = *.doc|*.ppt|*.dat|*.ini
recycle:minsize = 10
recycle:maxsize = 5120
19.4.2. Aplicando los cambios.
Para hacer que los cambios hechos surtan efecto tras modificar la
configuración, utilice:
service smb restart
19.4.3. Comprobaciones.
Con la finalizad de realizar pruebas, genere con el mandato echo del
sistema un fichero denominado prueba.txt:
echo "fichero de pruebas" > prueba.txt
Página 163

GRUPO LINUX REDES II
Si aún no existiera, genere al usuario fulano:
useradd fulano
Utilice el mandato smbpasswd y asigne 123qwe como clave de
acceso al usuario fulano:
smbpasswd -a fulano
Acceda con smbclient hacia el servidor Samba con el usuario fulano:
smbclient //127.0.0.1/fulano -Ufulano%123qwe
Lo anterior debe devolver una salida similar a la siguiente:
Domain=[M064] OS=[Unix] Server=[Samba 3.2.0rc1-14.9.el5.al]
smb: >
Utilizando el mandato put del intérprete SMB, suba el fichero prueba.txt al
directorio personal de fulano:
smb: > put prueba.txt
Lo anterior debe devolver una salida similar a la siguiente:
smb: > put prueba.txt
putting file prueba.txt as prueba.txt (0,4 kb/s) (average 0,4 kb/s)
smb: >
Visualice el contenido del directorio actual desde el intérprete SMB
utilizando el mandato dirpara verificar que se ha subido el fichero
prueba.txt:
smb: > dir
Página 164

GRUPO LINUX REDES II
Lo anterior debe devolver una salida similar a la siguiente:
smb: > dir
. D 0 Wed Jun 18 20:44:39 2008
.. D 0 Wed Jun 18 20:04:14 2008
.bashrc H 124 Wed Jun 18 20:04:14 2008
.bash_profile H 176 Wed Jun 18 20:04:14 2008
.bash_logout H 24 Wed Jun 18 20:04:14 2008
prueba.txt A 19 Wed Jun 18 20:44:39 2008
34173 blocks of size 524288. 12143 blocks available
smb: >
Elimine el fichero prueba.txt utilizando el mandato del desde el intérprete
SMB:
smb: > del prueba.txt
smb: >
Visualice de nuevo el contenido del directorio con el mandato dir, lo cual
debe devolver una salida similar a la siguiente donde ha desaparecido el
fichero prueba.txt y ahora aparece el directorio Recycle Bin:
smb: > dir
. D 0 Wed Jun 18 20:52:49 2008
.. D 0 Wed Jun 18 20:04:14 2008
.bashrc H 124 Wed Jun 18 20:04:14 2008
.bash_profile H 176 Wed Jun 18 20:04:14 2008
.bash_logout H 24 Wed Jun 18 20:04:14 2008
.zshrc H 658 Wed Jun 18 20:04:14 2008
.kde DH 0 Wed Jun 18 20:04:14 2008
.emacs H 515 Wed Jun 18 20:04:14 2008
Recycle Bin D 0 Wed Jun 18 20:52:49 2008
34173 blocks of size 524288. 12143 blocks available
smb: >
Página 165

GRUPO LINUX REDES II
Acceda al directorio Recycle Bin utilizando el mandato cd:
smb: > smb: > cd "Recycle Bin"
Visualice el contenido con el mandato dir, lo cual debe devolver una salida
similar a la siguiente donde se muestra que el fichero prueba.txt, que fue
eliminado con el mandato del, ahora está dentro del directorio Recycle Bin.
smb: Recycle Bin> dir
. D 0 Wed Jun 18 20:52:49 2008
.. D 0 Wed Jun 18 20:52:49 2008
prueba.txt A 19 Wed Jun 18 20:44:39 2008
34173 blocks of size 524288. 12141 blocks available
Para salir del intérprete SMB utilice el mandato exit:
smb: Recycle Bin> exit
19.5. Cómo instalar y configurar Samba-Vscan en CentOS 5.
19.5.1. Acerca de Samba-Vscan.
Samba-Vscan es un interesante módulo desarrollado por
OpenAntivirus, como una prueba de concepto de módulo para el sistema
de ficheros virtual de Samba. Su desarrollo aún está en fase experimental,
pero es lo suficientemente estable para el uso diario, con un mínimo de
fallas. Además de ClamAV, incluye soprote para otros antivirus como
H+BEDV AntiVir (versión servidor), F-Prot Daemon, Symantec AntiVirus,
Kaspersky AntiVirus, Trend Micro FileScanner/InterScan VirusWall,
NAI/McAfee uvscan y F-Secure AntiVirus.
Este documento describe el procedimiento de instalación y
configuración de Samba-Vscan utilizando ClamAV y requiere haber
Página 166

GRUPO LINUX REDES II
realizado primero los procedimientos descritos en el documento de Alcance
Libre titulado «Cómo configurar Clamd».
Es importante señalar que samba-vscan 0.3.6cBeta5 es
incompatible con Samba 3.2.x y versiones posteriores (Nota usuarios
equipamiento lógico de Alcance Libre: samba-vscan 0.3.6cBeta5 es
compatible con AL Server, pero es incompatible con AL Desktop).
19.5.2. Instalación de equipamiento lógico necesario.
Instalar primero los paquetes gcc, glibc-devel, clamav-devel, pcre-
devel y rpm-build. Este último será utilizado para crear la estructura de
directorios de rpmbuild y que solo serán necesarios para instalar y preparar
los fuentes RPM.
yum -y install gcc glibc-devel rpm-build clamav-devel pcre-devel
19.5.3. Procedimientos.
Se debe descargar el paquete de fuentes de Samba de la siguiente forma:
wget http://mirrors.kernel.org/centos/5/updates/SRPMS/samba-3.0.28-.el5_2.1.src.rpm
Instalar el código fuente:
rpm -ivh samba-3.0.28-1.el5_2.1.src.rpm
Cambiarse al directorio de ficheros de especificación:
cd /usr/src/redhat/SPECS/
Utilizar rpmbuild con las opciones -bp para descomprimir las fuentes de
Samba.
rpmbuild -bp samba.spec
Página 167

GRUPO LINUX REDES II
Cambiarse al subdirectorio samba-3.0.28/source/ que se encuentra
dentro del directorio de compilación:
cd /usr/src/redhat/BUILD/samba-3.0.28/source/
Ejecutar./configure dentro del directorio
/usr/src/redhat/BUILD/samba-3.0.28/source/.
./configure
Ejecutar el mandato make proto para compilar lo mínimo necesario
para posteriormente compilar Samba-Vscan:
make proto
Cambiarse al directorio ../examples/VFS/:
cd ../examples/VFS
Descargar la versión 0.3.6cBeta5 de Samba-Vscan.
wget http://www.openantivirus.org/download/samba-vscan-0.3.6c-beta5.tar.gz
Descomprimir samba-vscan-0.3.6c-beta5.tar.gz:
tar zxvf samba-vscan-0.3.6c-beta5.tar.gz
Cambiarse al directorio samba-vscan-0.3.6c-beta5/:
cd samba-vscan-0.3.6c-beta5/
Ejecutar dentro de este directorio ./configure:
./configure
Ejecutar make clamav:
make clamav
Instalar vscan-clamav.so en /usr/lib/samba/vfs/:
Página 168

GRUPO LINUX REDES II
install vscan-clamav.so /usr/lib/samba/vfs/
Instalar clamav/vscan-clamav.conf en /etc/samba/:
install -m 0644 clamav/vscan-clamav.conf /etc/samba/
Es importante mencionar que el procedimiento de compilación de
samba-vscan debe repetirse cada vez que se actualice Samba, de otra
manera este servicio dejará de funcionar.
Si se siguió al pie de la letra la configuración de Clamd en el
documento de Alcance Libre titulado «Cómo configurar Clamd», editar
/etc/samba/vscan-clamav.conf y definir /var/run/clamd.localhost/clamd.sock
como zócalo en el parámetro clamd socket name.
; socket name of clamd (default: /var/run/clamd). Setting will be ignored if
; libclamav is used
clamd socket name = /var/run/clamd
También es importante definir un directorio para cuarentena de
ficheros infectados a través del parámetro quarantine directory. La
recomendación es utilizar cualquier otro directorio distinto de /tmp y que
haya sido creado específicamente para este fin.
; where to put infected files - you really want to change this!
quarantine directory = /tmp
; prefix for files in quarantine
quarantine prefix = vir-
Para utilizar samba-vscan en la configuración de Samba, se añaden
las siguientes dos líneas a cada recurso compartido, definido en el
fichero /etc/samba/smb.conf, donde se desee utilizar protección con
antivirus:
Página 169

GRUPO LINUX REDES II
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
Ejemplos:
[homes]
comment = Home Directories
browseable = yes
writable = yes
hide dot files = Yes
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
[publico]
comment = Directorio público
path = /var/samba/publico
writable = no
printable = no
browseable = yes
public = yes
vfs object = vscan-clamav
vscan-clamav: config-file = /etc/samba/vscan-clamav.conf
Para probar, puede utilizarse el fichero de prueba Eicarcom2 a
través de smbclient o bien interfaz gráfica desde Linux con Nautilus o bien
desde Windows con Explorador de Windows, sobre cualquier recurso
compartido que haya sido configurado con Samba-Vscan.
19.6. Cómo configurar Samba como cliente o servidor WINS.
Página 170

GRUPO LINUX REDES II
WINS (Windows Internet Name Service) es un servidor de nombres
de para NetBIOS, que se encarga de mantener una tabla con la
correspondencia entre direcciones IP y nombres NetBIOS de los equipos
que conforman la red local. Esta lista permite localizar rápidamente a otro
equipo dentro de la red. Al utilizar un servidor WINS se evita el realizar
búsquedas innecesarias a través de difusión (broadcast) reduciendo
sustancialmente el tráfico de red. La resolución de nombres em Sambase
lleva a cabo realizando consultas en el siguiente orden:
5. Servidor WINS
6. Información del fichero /etc/samba/lmhosts
7. Información del fichero /etc/hosts
8. Difusión (broadcast)
Este documento considera que usted ya ha leído previamente, a
detalle y en su totalidad el manual «Cómo configurar Samba básico». y que
ha configurado exitosamente Samba como servidor de archivos.
19.6.1. Procedimientos.
Todos los parámetros descritos a continuación, se definen en la
sección [global] del fichero /etc/samba/smb.conf.
Parámetros wins server y wins support.
Se puede definir que el servidor Samba recién configurado se
convierta en un servidor WINS o bien utilizar un servidor WINS ya
existente. No es posible ser cliente y servidor al mismo tiempo. Los
parámetros wins server y wins support, que se definen en la sección
[global] del fichero /etc/samba/smb.conf, son mutuamente excluyentes.
Página 171

GRUPO LINUX REDES II
Si el sistema va ser utilizado como servidor WINS, debe habilitarse
el parámetro wins support con el valor yes:
wins support = Yes
Si el sistema va a utilizar un servidor WINS existente, debe
habilitarse el parámetro wins server y como valor se especifica la dirección
IP que utilice el servidor WINS. En el siguiente ejemplo se define al sistema
con dirección IP 192.168.1.1 como servidor WINS:
wins server = 192.168.1.1
Parámetro name resolve order
Define en Samba el orden de los métodos a través de los cuales se
intentará resolver los nombres NetBIOS. Pueden definirse hasta hasta
cuatro valores: wins, lmhosts, hosts y bcast, como se muestra en el
siguiente ejemplo.
name resolve order = wins lmhosts hosts bcast
Parámetro wins proxy.Cuando su valor es yes, permite a Samba como servidor
intermediario (proxy) para otro servidor WINS.
wins proxy = yes
El valor predeterminado de este parámetro es no.
Parámetro dns proxy.
Página 172

GRUPO LINUX REDES II
Cuando su valor es yes, permite a Samba realizar búsquedas en un
servidor DNS si le es imposible determinar un nombre a través de un
servidor WINS.
dns proxy = yes
El valor predeterminado de este parámetro es no.
Parámetro max ttl.
El parámetro max ttl define el máximo tiempo de vida en segundos
para los nombres NetBIOS que han sido consultados como cliente WINS
en un servidor WINS. su valor predeterminado es 259200, que corresponde
a tres días. Por lo general no es necesario modificar este parámetro. Si las
direcciones IP de los equipos que integran la red local cambian demasiado
frecuentemente, puede reducirse este tiempo. En el siguiente ejemplo, se
definen 48 horas como tiempo máximo de vida para los nombres NetBIOS:
max ttl = 86400
Parámetros max wins ttl y min wins ttl.Los parámetros max wins ttl y min wins ttl los tiempos máximo y
mínimo en segundos que tendrán de vida los nombres NetBIOS que han
sido asignados por el servidor Samba. El valor predeterminado de max
wins ttl es 518400, es decir, 6 días, y el valor predeterminado de min wins
ttl es 21600, es decir, 6 horas. Por lo general no es necesario modificar
estos parámetros. Si las direcciones IP de los equipos que integran la red
local cambian muy frecuentemente, pueden modificarse estos tiempos. En
el siguiente ejemplo se redundan los valores predeterminados:
max wins ttl = 518400
min wins ttl = 21600
Página 173

GRUPO LINUX REDES II
19.6.2. Aplicando los cambios.
Para hacer que los cambios hechos surtan efecto tras modificar la
configuración, utilice:
service smb restart
CAPITULO IISERVICIOS EN
CENTOS
Página 174

GRUPO LINUX REDES II
1. ¿Qué es CentOS?
CentOS (Community ENTerprise Operating System) es una
distribución de clase empresarial de Linux basada
en las fuentes libremente disponibles de Red Hat
Enterprise Linux, es decir es un sistema operativo
libre.
CentOS es desarrollado por un pequeño pero creciente grupo de los
principales desarrolladores. A su vez los desarrolladores centrales están
apoyados por una activa comunidad de usuarios incluidos los administradores
del sistema, los administradores de red, los usuarios de la empresa, gerentes,
principales contribuyentes de Linux y los entusiastas de Linux de todo el
mundo.
CentOS tiene numerosas ventajas con respecto a algunos de los otros
proyectos, incluyendo el clon: una activa y creciente comunidad de usuarios,
rápidamente reconstruido, probado y QA'ed paquetes de erratas, un amplio
espejo de red, desarrolladores que están continuada y sensible, libre de
múltiples vías de apoyo incluyendo IRC Chat, listas de correo, foros, una
dinámica de preguntas frecuentes. Comercial se ofrece apoyo a través de un
número de proveedores.
2. VENTAJAS:
La principal ventaja de CentOS con respecto a la empresa RedHat es el
hecho de que es gratis. Mientras que una licencia de servidor para RHEL (Red
Hat Enterprise) puede costarle algo, CentOS es completamente gratis. Se
basa en RHEL y es casi totalmente compatible con sus productos.
Básicamente este sistema operativo de servidor es lo mismo que RHEL pero
Página 175

GRUPO LINUX REDES II
sin la etiqueta de precio. No falta ninguna de las características de la empresa
de software RHEL, además del hecho de que no es oficialmente el apoyo de
RHEL, y tiene muchas ventajas adicionales y modificaciones desde su
creación inicial.
CentOS tiene claras ventajas frente a otras distribuciones de Linux
como SO de servidor a causa de una gran activa y creciente comunidad de
usuarios de soporte, actualizaciones de seguridad rápida mantenida por
CentOS, dedicado equipo de desarrolladores, y el apoyo de respuesta rápida
a través de chat IRC, manuales en línea, FAQ, listas de correo y foros.
CentOS siempre tiene una ventaja clara entre el personal de apoyo de
alojamiento web. Por término medio, los administradores de servidores Linux y
personal de apoyo están más familiarizados con la distribución CentOS que
cualquier otra distribución y los problemas se resuelven más rápido, ya que es
muy probable que ellos incurran en algún mismo problema. CentOS también
está siendo constantemente actualizado con nuevos parches de seguridad, los
parches y mejoras en el desempeño. El tiempo necesario para parchar
CentOS es mejor que el tiempo necesario para los parches de cualquier otro
servidor de OS.
Al igual que antes de que la empresa Red Hat, CentOS es
increíblemente estable y eficaz de los recursos. A través de sus cinco
iteraciones, se ha optimizado para correr Apache, PHP, MySQL, Ruby on
Rails, y una variedad de otros marcos de desarrollo con la máxima eficacia. Si
estás buscando alojarte a ti mismo, CentOS es probablemente el sistema
operativo que usted desea utilizar como se hace desde el suelo hasta que sea
fácil de mantener y muy apto para el uso a largo plazo.
Grupos de Interés Especial
CentOS consta de diferentes grupos de interés especial (SIGs) que reúnen a
personas con intereses similares. Ya existen los siguientes SIGs:
Página 176

GRUPO LINUX REDES II
Artwork - Crear y mejorar el arte gráfico de las entregas de CentOS y
del material de promoción
Promotion - ayudar a promover CentOS en-línea o en eventos
Virtualization - reunir a las personas entorno a la virtualización
disponible en CentOS
3. CARACTERÍSTICAS DE CENTOS
- Fácil mantenimiento.
- Idoneidad para el uso a largo plazo en entornos de producción.
- Entorno favorable para los usuarios y mantenedores de paquetes.
- Desarrollo activo.
- La infraestructura de la comunidad.
- Modelo de negocio abierto.
- Apoyo comercial - ofrecido por un socio proveedor
4. REQUERIMIENTOS DE SISTEMA
Hardware recomendado para operar:
- Memoria RAM: 64 MB (mínimo).
- Espacio en Disco Duro: 1GB (mínimo) - 2 GB (recomendado).
Arquitecturas
CentOS soporta casi todas las mismas arquitecturas que el original Red Hat
Enterprise Linux.
- Intel x86-compatible (32 bit) (Intel Pentium I/II/III/IV/Celeron/Xeon, AMD
K6/II/III, AMD Duron, Athlon/XP/MP).
- Intel Itanium (64 bit).
Página 177

GRUPO LINUX REDES II
- Advanced Micro Devices AMD64(Athlon 64, etc) e Intel EM64T (64 bit).
- PowerPC/32 (Apple Macintosh PowerMac corriendo sobre
procesadores G3 o G4 PowerPC).
- IBM Mainframe (eServer zSeries y S/390).
Además tiene soporte para dos arquitecturas no soportadas por su original.
- Alpha procesador (DEC_Alpha)
- SPARC
5. EVOLUCIÓN DE CENTOS
CentOS 2
El 14 de mayo de 2004 CentOS 2 fue liberado. Esta versión está
basada en la versión 2.1 de Red Hat Enterprise Linux.
CentOS 3
El 19 de marzo de 2004 CentOS 3.1 (fue liberado. El 18 de septiembre
de 2004. CentOS 3.3 para las arquitecturas i386 y AMD64. CentOS 3.2
nunca fue liberado.
El 10 de enero de 2005 CentOS 3.4 para i386 fue oficialmente liberado
en conjunto con una nueva versión de CentOS 3.4 i386 de un CD para
servidores
El 13 de febrero de 2005 CentOS 3.4 para procesadores de la
arquitectura ia64 fue liberado. También fue liberado el 13 de febrero del
2005 CentOS 3.4 para la arquitectura s390, y CentOS 3.4 para la
arquitectura s390x.
El 10 de junio de 2005 CentOS 3.5 para i386 fue liberado.
Sobre el 13 de octubre, 2005, CentOS 3.6 fue liberado. Diferente a las
otras versiones de CentOS 3 releases, éste no fue anunciado en las
listas de correo de CentOS. Su anuncio ocurrió el 1 de noviembre,
Página 178

GRUPO LINUX REDES II
2005.
El 11 de abril, 2006, CentOS 3.7 fue liberado.
El 25 de agosto, 2006, CentOS 3.8 fue liberado.
CentOS 4
CentOS 4.0 está basado en la versión 4 de Red Hat Enterprise Linux.
El 1 de marzo de 2005, CentOS 4.0 para la arquitectura i386 fue
liberado. El equipo de CentOS también liberó CentOS 4.0 para la
arquitectura ia64 ese mismo día.
El 9 de marzo de 2005, la versión final, CentOS 4.0 para la arquitectura
x86_64
El 12 de juniode 2005 CentOS 4.1 para i386.
El 17 de junio de 2005 la versión 4.1 de CentOS para la arquitectura
x86_64 fue liberada en conjunto con la versión final para la arquitectura
ia64.
El 12 de octubre de 2005 CentOS versión 4.2 fue liberado.
El 21 de marzo de 2006 CentOS versión 4.3 para las arquitecturas i386,
x86_64 e ia64.
El 31 de agosto de 2006 fue liberado Centos 4.4
El 17 de mayo de 2007 CentOS versión 4.5 para las arquitecturas i386
x86_64 e ia64. Incluye soporte para ser instalado como domU en Xen.
CentOS 5
CentOS 5.0 está basado en la versión 5 de Red Hat Enterprise Linux.
Fue liberado el 12 de abril de 2007. CentOS 5.3 es la tercera
actualización para la serie de distribuciones CentOS 5. Contiene una
Página 179

GRUPO LINUX REDES II
gran cantidad de correcciones, actualizaciones y nuevas
funcionalidades.
SERVICIOS EN CENTOS
1.SERVIDOR DHCP
DHCP (Dynamic Host Configuration Protocol - Protocolo de
configuración dinámica de servidores) es un protocolo que permite a
dispositivos individuales en una red de direcciones IP obtener su propia
información de configuración de red (dirección IP; máscara de sub-red, puerta
de enlace, etc.) a partir de un servidor DHCP. Su propósito principal es hacer
más fáciles de administrar las redes grandes. DHCP existe desde 1993 como
protocolo estándar y se describe a detalle en el RFC 2131.
Sin la ayuda de un servidor DHCP, tendrían que configurarse de forma
manual cada dirección IP de cada host que pertenezca a una Red de Área
Local. Si un host se traslada hacia otra ubicación donde existe otra Red de
Área Local, se tendrá que configurar otra dirección IP diferente para poder
unirse a esta nueva Red de Área Local. Un servidor DHCP entonces supervisa
y distribuye las direcciones IP de una Red de Área Local asignando una
dirección IP a cada host que se una a la Red de Área Local. Cuando, por
mencionar un ejemplo, una computadora portátil se configura para utilizar
DHCP, a ésta le será asignada una dirección IP y otros parámetros de red
necesarios para unirse a cada Red de Área Local donde se localice.
Existen tres métodos de asignación en el protocolo DHCP:
• Asignación manual: La asignación utiliza una tabla con direcciones
MAC (Media Access Control Address - dirección de Control de Acceso
Página 180

GRUPO LINUX REDES II
al Medio). Sólo los host con una dirección MAC definida en dicha tabla
recibirá el IP asignada en la misma tabla.
• Asignación automática: Una dirección de IP disponible dentro de un
rango determinado se asigna permanentemente al host que la requiera.
• Asignación dinámica: Se determina arbitrariamente un rango de
direcciones IP y cada host conectado a la red está configurada para
solicitar su dirección IP al servidor cuando se inicia el dispositivo de red,
utilizando un intervalo de tiempo controlable (parámetros default-lease-time y maxlease- time) de modo que las direcciones IP no son
permanentes y se reutilizan de forma dinámica.
1.1. DHCP POR INTERNET SOFTWARE CONSORTIUM, INC.
Fundado en 1994, Internet Software Consortium, Inc., distribuye un
conjunto de herramientas para el protocolo DHCP, las cuales consisten en:
o Servidor DHCP: Este software se encarga de asignarnos los
datos de configuración ip al equipo que conectamos a la red
o Cliente DHCP: Es el que solicita una dirección ip al servidor
DHCP
o Agente de retransmisión: Es el que escucha las peticiones
DHCP
1.2. FUNCIONAMIENTO DE UN DHCP
Antes que nada hay que tener en cuenta que nuestro servidor DHCP
debe contar con una dirección IP fija, por lo tanto en nuestra red solo
existirá un equipo que dispondrá de una IP fija, o sea, nuestro servidor
DHCP.
Página 181

GRUPO LINUX REDES II
El paso siguiente es cuando la maquina cliente se conecta a la red,
en este fase, la maquina cliente hace uso del sistema básico de
comunicación BOOTP. El BOOTP (Bootstrap Protocol) es un protocolo de
red UDP utilizado para obtener la dirección IP automáticamente y
usualmente es iniciado cuando se realiza en el proceso de boteo de una
computadora o sistema operativo. Cuando la maquina cliente se inicia esta
no cuenta con información sobre la configuración de red a la cual está
conectada, en este momento la maquina cliente inicia una técnica llamada
transmisión la cual busca, encuentra y se comunica con el servidor DHCP
solicitándole los parámetros de configuración de la red. Cuando el DHCP
recibe el paquete de transmisión este contestará con otro paquete de
transmisión que contiene toda la información solicitada por el maquina
cliente.
Algunos de esos paquetes que se transmiten del cliente al servidor
DHCP y viceversa son los siguientes:
DHCP Discovery. La maquina cliente enviá este paquete para ubicar
los servidores DHCP disponibles en la red interna, una vez recibido este
paquete, el servidor DHCP almacena la dirección Ethernet de quien
genera la petición.
DHCP Offer. Respuesta del servidor DHCP al paquete DHCP Discover
la cual contiene los parámetros de red interna.
DHCP Request. El cliente selecciona la configuración de los paquetes
recibidos de DHCP Offer. Una vez más, el cliente solicita una dirección
IP específica que indicó el servidor
DHCP Acknowledge. Cuando el servidor DHCP recibe el mensaje
DHCP Request del cliente, este inicia la fase final del proceso de
configuración .Esta fase implica el reconocimiento DHCP Pack el envío
Página 182

GRUPO LINUX REDES II
de un paquete al cliente. En este punto, la configuración TCP/IP se ha
completado. El servidor reconoce la solicitud y se lo enviá al cliente.
DHCP Release.La maquina cliente enviá una petición al servidor DHCP
informándole sobre la liberación de su dirección IP
DHCP Ack. Respuesta del Servidor DHCP al la maquina cliente la cual
enviá los parámetros de red como por ejemplo la dirección IP que le
corresponde a la misma.
DHCP Inform. El cliente envía una petición al servidor de DHCP para
solicitar más información que la que el servidor ha enviado con el DHCP
Ask o para repetir los datos para un uso particular.
DHCP Nak. Respuesta del servidor DHCP a la maquina cliente la cual
le indica que su dirección IP ha vencido o que su configuración es
errónea
DHCP Decline. La maquina cliente le informa el servidor DHCP que la
dirección IP ya está en uso
1.3.EQUIPAMIENTO LÓGICO NECESARIO.
a) Instalación a través de yum.
Página 183

GRUPO LINUX REDES II
Para CentOS 5, Red Hat™ Enterprise Linux 5 o White Box
Enterprise Linux 5, solo se necesita realizar lo siguiente para instalar o
actualizar el equipamiento lógico necesario:
yum -y install dhcp
1.4. PARAMETROS DE CONFIGURACIÓN
ignore/allow client-updates
Permite la actualización de las asignaciones de un cliente a requerimiento de este, o bien las asignaciones se actualizan cuando el servidor así lo requiera (ignore).
shared-network redLocalParámetro que describe las subredes que compartirán la misma red física las cuales se especifican dentro de esta declaración
subnet Segmento de subred sobre el cual actuara el dhcp
netmask Mascara de red de la subred
option routersParámetro que especifica mediante IP la ubicación del router
option subnet-mask Mascara de red de la subred
option broadcast-address Parámetro que especifica la IP de broadcast
option domain-name
"tuDominio.com";
Parámetro que describe el nombre de tu dominio
option domain-name-serversParámetro que especifica mediante IP la ubicación del DNS
rangeRango sobre el cual el DHCP asignara direcciones IP
default-lease-timeParámetro que indica el tiempo entre cada nueva asignación de IP a los equipos
max-lease-timeParámetro que indica el tiempo de vigencia de la dirección IP para cada equipo
host nombreDeLaMaquina Parámetro que describe el nombre del equipo
Página 184

GRUPO LINUX REDES II
option host-name
"nombreDeLaMaquina.tuDominio.com"
Parámetro que describe el nombre de la computadora y el nombre de dominio asociado a la misma
hardware ethernetParámetro que describe la dirección MAC asociada a la tarjeta ethernet del equipo
fixed-addressParámetro que describe la dirección IP destinada a un equipo
authoritative
La configuración correcta para la red es la definida en el servidor DHCP. Poner este parámetro al comienzo del archivo de configuración supone que el servidor DHCP reasignará direcciones a los clientes mal configurados por el motivo que sea, incluida una configuración nueva del servidor.
not authoritative
La función de este parámetro es justo la contraria del anterior. Es decir: la configuración del servidor de DHCP no es concluyente y los clientes mal configurados que sean detectados por el servidor, seguirán con su configuración intacta.
ddns-domainname <nombre>
Mediante el uso de este parámetro, se añadirá <nombre> al final del nombre de la máquina cliente, para formar un nombre de dominio totalmente cualificado (FQDN).
ddns-hostname <nombre>
Por defecto, el servidor DHCP utiliza como nombre para la solicitud el nombre que el cliente tiene asignado a su máquina. Mediante este parámetro se asigna un nombre concreto a una máquina o a todas en general. Porejemplo, para asignar un nombre a una dirección MAC concreta, utilizaremos el código siguiente:
host "nada" {
hardware ethernet 00:60:30:3f:2d:4a;
ddnshostname
"nombre_del_host";
}
Y para asignar, por ejemplo, la dirección MAC como parte del nombre del
maquina cliente, podemos usar lo siguiente:
Página 185

GRUPO LINUX REDES II
ddnshostname
= binarytoascii
(16,8, "",
substring (hardware, 1, 6));
ddns-updates <on|off> Activa la actualización DNS mediante los valores asignados por DHCP.
group Inicia la declaración de Grupo.
min-lease-time <duración>Especifica la cantidad mínima de tiempo, en segundos, que será mantenida una asignación de direcciones.
one-lease-per-client <on/off>
Cuando la opción se iguala a on y un cliente solicita una asignación de dirección (DHCPREQUEST), el servidor libera de forma automática cualquier otra asignación asociada a dicho cliente. Con esto se supone que si el cliente solicita una nueva asignación es porque ha olvidado que tuviera alguna, luego tiene un sólo interfaz de red. No dándose esta situación entre los clientes no es muy aconsejable el uso de esta opción.
range ip-menor ip-mayor
En una declaración de subred, este parámetro define el rango de direcciones que serán asignadas. Pueden darse dos instrucciones range seguidas del modo:
range 192.168.0.11 192.168.0.100;
range 192.168.0.125 192.168.0.210;
server-identifier <IP>
Identifica la máquina donde se aloja el servidor de DHCP.
Su uso se aplica cuando la máquina en cuestión tiene varias direcciones asignadas en un mismo interfaz de red.
server-name <nombre>Nombre del servidor que será suministrado al cliente que solicita la asignación.
1.5.PROCEDIMIENTOS.
Página 186

GRUPO LINUX REDES II
a) SELinux y el servicio DHCPD.
Para que SELinux permita al servicio dhcpd funcionar normalmente
y sin protección alguna, utilice el siguiente mandato.
setsebool -P dhcpd_disable_trans 1
b) Fichero de configuración /etc/dhcpd.conf.El primer paso para configurar el servidor de DHCP será editar el
fichero dhcp.conf al cual le añadiremos la información de nuestra LAN.
El archivo de configuración puede contener tabulaciones o líneas en
blanco adicionales para facilitar el formato. Las palabras clave no
distinguen entre mayúsculas y minúsculas. Las líneas que empiezan
con el símbolo numeral (#) se consideran comentarios.
Ejemplo 1: Se requiere implementar un servidor DHCP que
implemente los tres métodos de asignación de direcciones IP. El
servidor DHCP contara con dos tarjetas de red, las cuales tendrán
asignadas las direcciones 192.168.1.5 y 192.168.2.5 , el segmento de
red sobre el cual actuara el servidor DHCP es el 192.168.1.0, la
submascara de red asignada será la 255.255.255.0, así mismo el
servidor DHCP servirá como gateway el cual tendrá asignada la misma
dirección IP que el DHCP (192.168.1.5), la dirección de broadcast
asignada sera la 192.168.1.255, el rango de direcciones IP que
asignara el servidor DHCP estará entre el rango de 192.168.1.7 á 192.168.1.100
Página 187

GRUPO LINUX REDES II
Editaremos el fichero /etc/dhcpd.conf de tres maneras diferentes,
esto con el fin de ejemplificar los tres métodos de asignación de
direcciones IP.
Asignación manualAbriremos una terminal y con la ayuda de “vi” editaremos el fichero
dhcpd.conf
[[email protected] ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente contenido:
# DHCP Server Configuration file.# see /usr/share/doc/dhcp*/dhcpd.conf.samplednsupdatestyle interim;ignore clientupdates;sharednetwork redLocal{subnet 192.168.2.0 netmask 255.255.255.0{
option routers 192.168.2.5;option subnetmask 255.255.255.0;option broadcastaddress 192.168.2.255;option domainname "redLocal.com.";option domainnameservers 192.168.2.5;
}host maquina1{
option hostname "maquina1.redLocal.com";hardware ethernet 00:1b:24:e2:d7:41;fixedaddress 192.168.2.10;
}host maquina2{
option hostname "maquina2.redLocal.com";hardware ethernet 00:2c:212:ef5:a7:13; fixedaddress 192.168.2.11;
}}
Lo hecho anteriormente hace que el servidor DHCP asigne a dos
equipos de la red, las direcciones IP que fueron anexadas en el fichero
dhcp.conf
Página 188

GRUPO LINUX REDES II
Asignación AutomáticaAbriremos una terminal y con la ayuda de “vi” editaremos el
fichero dhcpd.conf
[[email protected] ~]#vi /etc/dhcpd.conf
Una vez abierto el fichero deberemos añadir el siguiente
contenido:
# DHCP Server Configuration file.# see /usr/share/doc/dhcp*/dhcpd.conf.sample
ddnsupdatestyleinterim;ignore clientupdates;sharednetworkfactorcentos{
subnet 192.168.2.0 netmask 255.255.255.0{option routers 192.168.2.5;option subnetmask 255.255.255.0;option broadcastaddress 192.168.2.255;option domainname "factorcentos.com.mx";option domainnameservers 192.168.2.5;range 192.168.2.1 192.167.2.100;
}}
Lo hecho anteriormente hace que el servidor DHCP asigne a
dos equipos de la red, dos direcciones IP aleatorias dentro del rango
de 192.168.2.10 al 192.168.1.200
Página 189

GRUPO LINUX REDES II
Asignación dinámicaAbriremos una terminal y con la ayuda de “vi” editaremos el fichero
dhcpd.conf
[[email protected] ~]#vi /etc/dhcpd.confUna vez abierto el fichero deberemos añadir el siguiente contenido:
# DHCP Server Configuration file.# see /usr/share/doc/dhcp*/dhcpd.conf.sample
ddnsupdatestyleinterim;ignore clientupdates;sharednetworkfactorcentos{
subnet 192.168.2.0 netmask 255.255.255.0{option routers 192.168.2.5;option subnetmask 255.255.255.0;option broadcastaddress 192.168.2.255;option domainname "factorcentos.com.mx";option domainnameservers 192.168.2.5;range 192.168.2.1 192.167.2.100;defaultleasetime 21600;maxleasetime 43200;
}}
Lo hecho anteriormente hace que el servidor DHCP asigne a
dos equipos de la red, dos direcciones IP aleatorias dentro del rango
de 192.168.2.10 al 192.168.1.200 las cuales serán renovadas cada
cierto tiempo asignado de nuevo direcciones IP aleatorias dentro del
rango de 192.168.2.10 al 192.168.1.200
Ejemplo 2: El diagrama de la red quedara de la siguiente manera
Página 190

GRUPO LINUX REDES II
Considerando como ejemplo que se tiene una red local con las
siguientes características:
• Número de red 192.168.0.0
• Máscara 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
• Rango de direcciones IP a asignar de modo dinámico: 192.168.0.11
- 192.168.0.199
• Dos direcciones IP se asignarán como fijas (192.168.1.252,
192.168.0.253 y 192.168.0.254) para las tarjetas de red con
direcciones MAC (Media Access Control o Control de Acceso de
Medios) 00:24:2B:65:54:84, 00:50:BF:27:1C:1C y
00:01:03:DC:67:23.
Puede utilizar el siguiente contenido de ejemplo para adaptar y crear desde cero un nuevo fichero /etc/dhcpd.conf que se ajuste
a una red y conjunto de sistemas en particular.server-identifier proxy.redlocal.net;ddns-update-style interim;ignore client-updates;authoritative;option ip-forwarding off;default-lease-time 21600;max-lease-time 43200;
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 200.23.51.205, 132.248.81.29, 148.234.7.30;range 192.168.0.11 192.168.0.199;}
host impresora-laser {option host-name "epl5900.redocal.net";
Página 191

GRUPO LINUX REDES II
hardware ethernet 00:24:2B:65:54:84;fixed-address 192.168.1.252;}
host servidor {option host-name "servidor.redlocal.net";hardware ethernet 00:50:BF:27:1C:1C;fixed-address 192.168.0.253;}
host proxy {option host-name "proxy.redlocal.net";hardware ethernet 00:01:03:DC:67:23;fixed-address 192.168.0.254;}
}
c) Fichero de configuración /etc/sysconfig/dhcpd.Una buena medida de seguridad es hacer que el servicio dhcpd
solo funcione a través de la interfaz de red utilizada por la LAN, esto en
el caso de tener múltiples dispositivos de red. Edite el fichero
/etc/sysconfig/dhcpd y agregue como argumento del parámetro
DHCPDARGS el valor eth0, eth1, eth2, etc., o lo que corresponda.
Ejemplo, considerando que eth0 es la interfaz correspondiente a la
LAN:
# Command line options hereDHCPDARGS=eth0
d) Iniciar el servicio dhcpd.Para iniciar por primera vez el servicio dhcpd, utilizar:
/sbin/service dhcpd start
Para hacer que los cambios hechos a la configuración del servicio
dhcpd surtan efecto, utilizar:
/sbin/service dhcpd restart
Para detener el servicio dhcpd:
/sbin/service dhcpd stop
e) Agregar el servicio dhcpd al arranque del sistema.
Página 192

GRUPO LINUX REDES II
Para hacer que el servicio de dhcpd esté activo con el siguiente
inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza
lo siguiente:
/sbin/chkconfig dhcpd on
1.6.COMPROBACIONES DESDE CLIENTE DHCP.
Ahora sigue configurar como interfaces DHCP las estaciones de
trabajo que sean necesarias sin importar que sistema operativo utilicen.
Después de configurado e iniciado el servicio, desde una terminal
como root en otro sistema que será utilizado como cliente, considerando
que se tiene una interfaz de red denominada eth0, utilice los siguientes
mandatos para desactivar la interfaz eth0 y asignar una nueva dirección IP a través del servidor dhcp.
/sbin/ifdown eth0/sbin/dhclient eth0
Lo anterior deberá devolver el mensaje «Determinando la
información IP para eth0...» y el símbolo de sistema. Para corroborar,
utilice el mandato ifconfig para visualizar los dispositivos de red activos en
el sistema.
La configuración del dispositivo de red, considerando como ejemplo
la interfaz eth0 con dirección MAC 00:01:03:DC:67:23, solicitando los
datos para los servidores DNS, correspondiente al fichero
/etc/sysconfig/network-scripts/ifcfg-eth0, sería con el siguiente contenido:
DEVICE=eth0ONBOOT=yesUSERCTL=yesBOOTPROTO=dhcpPEERDNS=yesHWADDR=00:01:03:DC:67:23TYPE=Ethernet
Página 193

GRUPO LINUX REDES II
1.7.MODIFICACIONES NECESARIAS EN EL MURO CORTAFUEGOS.Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir los puerto 67 y 68 por UDP (BOOTPS y
BOOTPC, respectivamente).
Las reglas para el fichero /etc/shorewall/rules de Shorewall en un
sistema con una zona (net), correspondería a lo siguiente:#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw udp 67,68
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Las reglas para el fichero /etc/shorewall/rules de Shorewall en un
sistema con dos zonas (net y loc), donde solo se va a permitir el acceso al
servicio dhcpd desde la red local, correspondería a lo siguiente:#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT loc fw udp 67,68
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
2.SERVIDOR WEBUn servidor web es un programa que implementa el protocolo HTTP
que se encarga de suministrar páginas Web en respuesta a las peticiones de
los navegadores Web. La petición de una página se genera cuando un
visitante hace clic en un vínculo de una página Web en el navegador, elige un
marcador en el navegador o introduce un URL.
2.1.PROTOCOLO HTTP.HTTP (Hypertext Transfer Protocol, o Protocolo de Trasferencia de
Hipertext), es el método utilizado para transferir o transportar información
en la Red Mundial (WWW, World Wide Web). Su propósito original fue el
proveer una forma de publicar y recuperar 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 Ingeniería de Internet), culminando con la publicación de varios
RFC (Request For Comments), de entre los que destaca el RFC 2616,
Página 194

GRUPO LINUX REDES II
mismo que define la versión 1.1 del protocolo, que es el utilizado hoy en
día.
HTTP es un protocolo de solicitud y respuesta a través de TCP,
entre agentes de usuarios (Navegadores, motores de índice y otras
herramientas) y servidores, regularmente utilizando el puerto 80. Entre la
comunicación entre éstos puede intervenir como servidores Intermediarios
(Proxies), puertas de enlace y túneles.
2.2. APACHE.Apache es un servidor HTTP, de código abierto y
licenciamiento libre, que funciona en Linux, sistemas
operativos derivados de Unix™, Windows, Novell Netware y otras
plataformas. Ha desempeñado un papel muy importante en el crecimiento
de la red mundial, y continua siendo el servidor HTTP más utilizado, contra
el cual se realizan las pruebas comparativas y de desempeño para otros
productos competidores. Apache es desarrollado y mantenido por una
comunidad de desarrolladores auspiciada por Apache Software
Foundation.
Actualmente el servidor web apache se encuentra en su versión 2 e
incluye notables mejoras con respecto a versiones anteriores, algunas de
ellas son:
Modo Híbrido
Nuevo sistema de configuración y compilación
Soporte nativo para Ipv6
Mensajes de error en diferentes idiomas
Mejoras adicionales.
Como dato adicional, cabe menciona que apache es el servidor web
numero uno a nivel mundial el cual abarca cerca de un 52.26 % del
mercado total de Internet desbancando a servidores web como el IIS
(Internet Information Server) de Microsoft.
Página 195

GRUPO LINUX REDES II
La fundación Apache Software Foundation, la cual actualmente está
conformada por una comunidad de desarrolladores quienen día a día
contribuyen a la expansión y mejora de proyectos relacionados con apache.
Entre los proyectos más destacados de esta fundación podemos
encontrar los siguientes:
Http Server.- Servidor Web Apache
http://www.apache.org/
Jakarta.-Proyectos en el lado del servidor basados en Java
http://tomcat.apache.org/
mod_perl.- Modulo de apache para la programación dinámica en Perl
http://perl.apache.org/
SpamAssin.-Sistema de detección de Spam
http://spamassassin.apache.org/
2.3. INSTALACIÓN A TRAVÉS DE YUM.
Si se utiliza CentOS 4, Red Hat Enterpirse Linux 5 o White Box
Enterprise Linux 4 o versiones posteriores de éstos, solo se necesita utilizar
lo siguiente:
Página 196

GRUPO LINUX REDES II
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
2.4. INICIAR SERVICIO Y AÑADIR 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
básico. Para añadir el servicio a los servicios que inician junto con el
sistema, solo se necesita ejecutar:
chkconfig httpd on
Para iniciar el servicio por primera vez, solo se necesita utilizar:
service httpd start
Para reiniciar el servicio, considerando que se interrumpirán todas
las conexiones establecidas en ese momento, solo se necesita utilizar:
service httpd restart
Si el servicio ya está trabajando, también puede utilizar reload a fin
de que Apache vuelva a leer y cargar la configuración sin interrumpir el
servicio, y, por ende, las conexiones establecidas.
service httpd reload
Para detener el servicio, solo se necesita utilizar:
service httpd stop
start Inicia el servicio
stop Detiene el servicio
Página 197

GRUPO LINUX REDES II
restart Reinicia el servicio.-La diferencia con reload radica en
que al ejecutar un restart este mata todos los procesos
relacionado con el servicio y los vuelve a generar de
nueva cuenta
reload Recarga el servicio.-La diferencia con restart radica en
que al ejecutar un reload este solamente carga las
actualizaciones hechas al fichero de configuración del
servicio sin necesidad de matar los procesos
relacionados con el mismo, por lo que podría
entenderse que hace el cambio en caliente.
condrestart Reinicio Condicional.- Solamente se inicia si el servicio
se encuentra ejecutándose.
status Da a conocer el estado en el que se encuentra el
servicio
2.5.PROCEDIMIENTOS.
2.5.1. SELinux y Apache.
Si utiliza alguna distribución con núcleo 2.6 basada sobre Red
Hat™ Enterprise Linux 4.0, como serían CentOS 4.0 o White Box
Enterprise Linux 4.0 en adelante, éstas incluyen SELinux que añade
seguridad adicional a Apache, sin embargo algunas opciones
impedirán utilizar ciertas funciones en Apache, como directorios
virtuales.
Para permitir a Apache poder enviar correo electrónico desde
alguna aplicación, utilice el siguiente mandato:
setsebool -P httpd_can_sendmail 1
Página 198

GRUPO LINUX REDES II
CGI (Common Gateway Interface) es una tecnología que se
usa en los servidores web, su función principal es la de añadir una
mayor interacción a los documentos web que por medio del HTML
se presentan de forma estática. Es utilizado comúnmente para
contadores, bases de datos, motores de búsqueda, formularios,
generadores de email automático, foros de discusión, chats,
comercio electrónico, rotadores y mapas de imágenes, juegos en
línea y otro. Esta tecnología tiene la ventaja de correr en el servidor
cuando el usuario lo solicita por lo que es dependiente del servidor y
no de la computadora del usuario.
Para permitir a Apache poder ejecutar guiones CGI, utilice:
setsebool -P httpd_enable_cgi 1
Para permitir las inclusiones del lado del servidor (SSI, Server Side
Includes), utilice:
setsebool -P httpd_ssi_exec 1
Para permitir que Apache se pueda conectar a través de red hacia
un servidor de bases de datos, utilice:
setsebool -P httpd_can_network_connect_db 1
Para permitir a Apache realizar conexiones de red hacia otro
servidor, utilice:
setsebool -P httpd_can_network_connect 1
Para permitir que los usuarios locales puedan utilizar un directorio
público (public_html), utilice:
setsebool -P httpd_enable_homedirs 1
Para desactivar la ejecución de PHP y otros lenguajes de
programación para HTTP a través de Apache, utilice:
setsebool -P httpd_builtin_scripting 0
Página 199

GRUPO LINUX REDES II
Para consultar que otras políticas disponibles existen para Apache,
utilice:
getsebool -a |grep httpd
Para definir que un directorio o fichero fuera de /var/www/html, como
por ejemplo /var/www/dominio/html se debe considerar como
contenido HTTP, se utiliza el siguiente mandato:
chcon -t httpd_sys_content_t /var/www/dominio/html
Para definir que se permite ejecutar un guión CGI en particular,
como por ejemplo /var/www/dominio/cgi-bin/formulario.pl, se utiliza el
siguiente mandato:chcon -t httpd_sys_script_exec_t /var/www/dominio/cgi-bin/formulario.pl
Para definir que un programa, que por ejemplo puede estar escrito
en PHP como /var/www/dominio/html/leer.php, solo pueda realizar
procedimientos de lectura de datos y nunca de escritura, utilice el
siguiente mandato:
chcon -t httpd_sys_script_ro_t /var/www/dominio/html/leer.php
Para definir que un programa, que por ejemplo puede estar escrito
en PHP como /var/www/dominio/html/escribir.php, pueda realizar
procedimientos de lectura y escritura de datos, utilice el siguiente
mandato:
chcon -t httpd_sys_script_rw_t /var/www/dominio/html/leer.php
Para definir que se desactive la protección de SELinux para Apache,
haciendo que todo lo anteriormente descrito pierda sentido, utilice el
siguiente mandato:
setsebool -P httpd_disable_trans 1
2.5.2. Ficheros de configuración.
Página 200

GRUPO LINUX REDES II
Cualquier ajuste que se requiera realizar, ya sea para configurar
Sitios de Red virtuales u otra funcionalidad adicional, se puede realizar
sin tocar el fichero principal de configuración, utilizando cualquier
fichero con extensión *.conf dentro del directorio /etc/httpd/conf.d/.
2.5.3. Creación de Directorios virtuales.
Si, por ejemplo, se quisiera añadir el alias para un directorio
localizado en /var/contenidos/varios/ y el cual queremos visualizar
como el directorio /varios/ en Apache, lo primero será crear el
directorio:
mkdir -p /var/contenidos/varios
A continuación se configura el contexto en SELinux de dicho
directorio a fin de que sea tratado como un objeto (object_r) creado
por usuario de sistema (system_u) y que es contenido de Apache
(https_sys_content_t):chcon -u system_u /var/contenidos/varios
chcon -r object_r /var/contenidos/varios
chcon -t https_sys_content_t /var/contenidos/varios
Y se crea un fichero que se denominará arbitrariamente como
/etc/httpd/conf.d/aliases.conf con el siguiente contenido:
Alias /varios /var/contenidos/varios
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:
Página 201

GRUPO LINUX REDES II
Alias /varios /var/contenidos/varios
<Directory "/var/contenidos/varios">
Options Indexes</Directory>
El parámetro Indexes indica que se deberá mostrar el índice de
contenido del directorio. Si se requiere que este directorio tenga mayor
funcionalidad, se pueden añadir más opciones, como por ejemplo:
Alias /varios /var/contenidos/varios
<Directory "/var/contenidos/varios">
Options Indexes Includes FollowSymLinksAllowOverride all
</Directory>
El parámetro FollowSymLinks posibilita poder colocar enlaces
simbólicos dentro del directorio los cuales se seguirán. El parámetro
Includes especifica que se permite la utilización de los SSI (Server
Side Includes) que posibilitan utilizar funciones como autenticación. El
parámetro AllowOverride all posibilita utilizar ficheros .htaccess.
Reinicie o recargue Apache y acceda hacia
http://127.0.0.1/varios/ con cualquier navegador de red y visualice el
resultado.
NOTA:
La directiva Options indica varias posibles opciones de
comportamiento y estas pueden ser aplicadas a un directorio concreto.
En el cuadro se detallan las opciones:
All Todas las opciones salvo MultiViews
ExecCGI Se permite la ejecución de scripts CGI.
FollowSymLinks El servidor seguirá los enlaces simbólicos. Tener esta opción activa aumenta el rendimiento ya que el servidor no comprueba si un fichero o directorio es un enlace simbólico y es más rápido, pero en algunos
Página 202

GRUPO LINUX REDES II
casos puede presentar problemas de inseguridad.
Includes Se permiten incluir Server-side.
Indexes Si una URL solicita un directorio y no existe DirectoryIndex (v.g., index.html) en ese directorio, el servidor devolverá una lista del contenido del directorio.
MultiViews Se permite mostrar contenido negociado en función de diversos valores.
SymLinksIfOwnerMatch Se sigue un enlace simbólico sólo si los propietarios del enlace y del destino coinciden.
La directiva AllowOverride controla qué directivas se pueden
situar el los ficheros .htaccess y estas pueden ser aplicadas
igualmente a un directorio concreto. Los valores de AllowOverride
pueden ser "All", "None", o una combinación de:
AuthConfig Permitir el uso de directivas de autorización (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, etc).
FileInfo Permitir el uso de directivas de control de tipo de documentos (DefaultType, ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, etc).
Indexes Permitir el uso de directivas que controlan los índices de directorios (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc).
Limit Permitir el uso de directivas de acceso de hosts (Allow, Deny y Order).
Options Permitir el uso de las opciones antes vistas en
Página 203

GRUPO LINUX REDES II
la directiva Options
2.5.4. Redirección de directorios.
Cuando sea necesario, es posible configurar un directorio en
particular para Apache redirija de modo transparente éste y su
contenido hacia cualquier otra dirección.
Redirect 301 /webmail http://mail.su-dominio.net/
En el ejemplo anterior, se indica que si se trata de acceder
hacia el subdirectorio /webmail en el servidor, Apache deberá redirigir
hacia http://mail.su-dominio.net/. El número 301 corresponde al
mensaje del protocolo HTTP para indicar que la redirección es
permanente. Si por ejemplo hubiese un objeto en /webmail, como por
ejemplo /webmail/estadisticas/estadisticas.php, Apache realizará el
re-direccionamiento transparente hacia http://mail.sudominio.
net/estadisticas/estadisticas.php.
2.5.5. Tipos de MIME.
MIME (Multipurpose Internet Mail Extensions, Extensiones de
Correo de Internet Multipropósito), son una serie de convenciones o
especificaciones dirigidas a que se puedan intercambiar a través de
Internet todo tipo de archivos (texto, audio, vídeo, etc.) de forma
transparente para el usuario. Una parte importante del MIME está
dedicada a mejorar las posibilidades de transferencia de texto en
distintos idiomas y alfabetos. En sentido general las extensiones de
MIME van encaminadas a soportar:
Texto en conjuntos de caracteres distintos de US-ASCII.
Adjuntos que no son de tipo texto.
Cuerpos de mensajes con múltiples partes (multi-part).
Página 204

GRUPO LINUX REDES II
Información de encabezados con conjuntos de caracteres
distintos de ASCII.
Prácticamente todos los mensajes de correo electrónico
escritos por personas en Internet y una proporción considerable de
estos mensajes generados automáticamente son transmitidos en
formato MIME a través de SMTP. Los mensajes de correo electrónico
en Internet están tan cercanamente asociados con el SMTP y MIME
que usualmente se les llama mensaje SMTP/MIME.
Los tipos de contenido definidos por el estándar MIME tienen
gran importancia también fuera del contexto de los mensajes
electrónicos. Ejemplo de esto son algunos protocolos de red tales
como HTTP de la Web. HTTP requiere que los datos sean
transmitidos en un contexto de mensajes tipo e-mail aunque los datos
pueden no ser un e-mail propiamente dicho.
En la actualidad ningún programa de correo electrónico o
navegador de Internet puede considerarse completo si no acepta
MIME en sus diferentes facetas (texto y formatos de archivo).
Si por ejemplo se quisiera añadir algún tipo de extensión y tipo
MIME, como por ejemplo Ogg (formato de archivo contenedor
multimedia) se podría generar un fichero que denominaremos
arbitrariamente como el fichero /etc/httpd/conf.d/extensiones.conf con el siguiente contenido:
AddType application/ogg .ogg
AddDescription "Ogg Vorbis Audio" .ogg
AddIcon /icons/sound2.png .ogg
2.5.6. Soporte para CGI con extensión *.cgi
Página 205

GRUPO LINUX REDES II
Si se quisiera añadir que se reconociera la extensión *.cgi como un guión CGI (Common Gateway Interface), solo bastará añadir
un fichero que denominaremos, arbitrariamente,
/etc/httpd/conf.d/cgi.conf con el siguiente contenido:
AddHandler cgi-script .cgi
Probando la configuración.
Utilice el editor de texto de su preferencia para crear el fichero
/var/www/cgi-bin/tiempo.cgi. Este deberá llevar lo siguiente como
contenido:
#!/usr/bin/perl
print "content-type: text/htmlnn";
print scalar localtime;
print "n";
Deberemos de cambiar el permiso del archivo anterior con la
siguiente línea de mandato:
chmod 755 /var/www/cgi-bin/tiempo.cgi
Utilice el navegador de red que prefiera y apunte éste hacia
http://127.0.0.1/cgi-bin/tiempo.cgi. Si el navegador nos da una salida
similar a la siguiente, se habrá configurado exitosamente Apache®
para ejecutar guiones CGI:
Tue Jul 05 22:10:41 2005
2.6.MODIFICACIONES NECESARIAS EN EL MURO CORTAFUEGOS.
Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir el puerto 80 por TCP (HTTP).
Página 206

GRUPO LINUX REDES II
Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION
#
SOURCE DEST PROTO DEST
PORT
SOURCE
PORT(S)1
ACCEPT net fw tcp 80
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT
REMOVE
2.7.CONFIGURACIÓN DE SITIOS DE RED VIRTUALES EN APACHE.
Puede generarse cualquier fichero con extensión *.conf dentro del
directorio /etc/httpd/conf.d/ de Apache® 2.0.x. Puede incluirse contenido
como el siguiente:
# Definición del Sitio de Red principal
NameVirtualHost 192.168.1.254
<VirtualHost 192.168.1.254>
ServerAdmin [email protected]
DocumentRoot /var/www/html/
ServerName www.dominio.com</VirtualHost>
# Web virtual con definición de directorio para CGI
<VirtualHost 192.168.1.254>
ServerName www.algun-dominio.comServerAlias algun-dominio.comServerAdmin webmaster@algun-dominio.comErrorLog /var/www/algun-dominio/logs/error_log
CustomLog /var/www/algun-dominio/logs/access_log
combined
ScriptAlias /cgi-bin/ "/var/www/algun-dominio/cgi-bin/"Página 207

GRUPO LINUX REDES II
<Directory "/var/www/algun-dominio/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
AddHandler cgi-script .cgi
</VirtualHost>
Más Sitios de Red virtuales:<VirtualHost 192.168.1.254>
ServerAdmin [email protected] /usr/share/squirrelmail/
ServerName webmail.dominio.com
ErrorLog logs/webmail.dominio.com-error_log
CustomLog logs/webmail.dominio.com-access_log combined
</VirtualHost>
<VirtualHost 192.168.1.254>
ServerAdmin [email protected] /var/www/beta/
ServerName beta.dominio.comErrorLog /var/www/beta/logs/beta.dominio.com-error_log
CustomLog /var/www/beta/logs/beta.dominio.com-access_log
combined
</VirtualHost>
<VirtualHost 192.168.1.254>
ServerAdmin [email protected]
DocumentRoot /usr/share/squirrelmail/
ServerName mail.dominio.comErrorLog logs/mail.dominio.com-error_log
CustomLog logs/mail.dominio.com-access_log combined
</VirtualHost>
Página 208

GRUPO LINUX REDES II
<VirtualHost 192.168.1.254>
ServerAdmin [email protected] /var/www/mi-dominio/
ServerName www.dominio.netErrorLog /var/www/mi-dominio/logs/www.dominio.net-
error_log
CustomLog /var/www/mi-dominio/logs/www.dominio.net-
access_log combined
</VirtualHost>
NOTALos principales parámetros usados son descritos en la siguiente tabla:
VirtualHost La función de esta directiva sirve para indicar la
dirección IP en la que se está brindando el servicio.
ServerAdmin Esta directiva especifica la persona a la que se le debe
notificar los problemas referentes al portal web, esto a
través de su cuenta de correo.
DocumentRoot Esta directiva indica al servidor web la ruta en donde se
encuentran almacenados los ficheros web de tu sitio
principal
ServerName Esta directiva especifica el nombre y puerto que el
servidor utiliza para identificarse. Con una correcta
configuración, este valor se puede determinar
automáticamente, pero es recomendable especificarlo
explíciatamente para evitar problemas durante el
arranque.
ServerAlias Esta directiva sirve para que el mismo sitio web sea
accesible desde distintos nombres de dominio. Ejemplo:
algun-dominio.com --> www.algun-dominio.com
Página 209

GRUPO LINUX REDES II
ErrorLog Indica la ubicación del fichero de registro de errores en
las consultas. Es conveniente especificar un fichero de
registro en cada VirtualHost con el nombre asociado a
ese servidor. De esta forma podemos separar los
registros de los distintos dominios que tengamos
albergados en el servidor web.
2.8.CÓMO HABILITAR LOS FICHEROS .htaccess Y SSI (SERVER SIDE INCLUDES) EN APACHE 2.X.
Apache® 2.x tiene mejores medidas de seguridad que las versiones
anteriores, debido a que su configuración predeterminada viene de tal
modo que deshabilita muchas cosas que podrán considerarse de cierto
riesgo. Parte de esa seguridad incluye deshabilitar los SSI (Server Side
Includes o Inclusiones del Lado del Servidor) y el uso de los ficheros
.htaccess. Estos últimos sirven para modificar o agregar funciones a
directorios.
Básicamente solo se necesita agregar las siguientes líneas a
cualquier definición del directorio que se desee utilizar:
Options IncludesAllowOverride All
2.8.1. Procedimientos.a) Autenticación de directorios.
La autenticación para un directorio, contra un fichero que incluye
claves de acceso, se realiza a través de la siguiente sintaxis en
cualquier fichero .htaccess.
AuthName "Acceso solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /cualquier/ruta/hacia/fichero/de/claves
Página 210

GRUPO LINUX REDES II
Ejemplo.Se procede a crear un directorio que será visto desde cualquier
navegador como http://127.0.0.1/privado/.
Genere el fichero /etc/httpd/conf.d/ejemplo-autenticar.conf con el
siguiente contenido:
Alias /privado /var/www/privado<Directory "/var/www/privado">
Options IncludesAllowOverride All
Allow from all
</Directory>
Genere el directorio /var/www/privado/ realizando lo siguiente:
mkdir -p /var/www/privado
Genere el fichero /var/www/privado/.htaccess realizando lo siguiente:
touch /var/www/privado/.htaccess
Edite el fichero /var/www/privado/.htaccess y agregue el siguiente
contenido:
AuthName "Solo usuarios autorizados"
AuthType Basic
require valid-user
AuthUserFile /var/www/claves
Genere el fichero de claves de acceso como /var/www/claves,
utilizando el siguiente procedimiento:
touch /var/www/claves
Con el fin de establecer la seguridad necesaria, cambie los atributos de
lectura y escritura solo para el usuario apache:
chmod 600 /var/www/claves
chown apache:apache /var/www/claves
Agregue algunos usuarios virtuales al fichero de claves,
/var/www/claves, utilizando el siguiente procedimiento con el mandato
htpasswd:
htpasswd /var/www/claves fulano
Página 211

GRUPO LINUX REDES II
htpasswd /var/www/claves mengano
Reinicie el servicio httpd:
service httpd restart
Acceda con cualquier navegador de red hacia http://127.0.0.1/privado/
y compruebe que funciona el acceso con autenticación en dicho
subdirectorio utilizando cualquiera de los dos usuarios virtuales que
generó con el mandato htpasswd, es decir fulano o mengano.
lynx http://127.0.0.1/privado/
b) Asignación de directivas para PHP.
Suelen darse los casos donde una aplicación, escrita en PHP,
requiere algunas directivas de PHP en particular. En muchos casos se
llegan a necesitar variables que pueden comprometer la seguridad de
otras aplicaciones hospedadas en el servidor. Para tal fin es que se
puede evitar modificar el fichero /etc/php.ini utilizando el parámetro
php_flag en un fichero .htaccess. La siguiente sintaxis es la siguiente:
php_flag directiva_php valor
EjemploSe procederá a asignar las directivas register_globals,
magic_quotes_runtime, magic_quotes_gpc, y upload_max_filesize al directorio en la ruta /var/www/aplicacion, mismo que será
visualizado desde Apache como http://127.0.0.1/aplicacion/. El valor
para register_globals será On, el valor para magic_quotes_runtime será On, el valor para magic_quotes_gpc será On y el valor para
upload_max_filesize será 4M.
Genere el fichero /etc/httpd/conf.d/ejemplo-directivas-php.conf con
el siguiente contenido:
Alias /aplicacion /var/www/aplicacion<Directory "/var/www/aplicacion">
Página 212

GRUPO LINUX REDES II
Options IncludesAllowOverride All
Order allow,deny
Allow from all
</Directory>
Genere el fichero /var/www/aplicacion/.htaccess realizando lo
siguiente:
touch /var/www/aplicacion/.htaccess
Edite el fichero /var/www/aplicacion/.htaccess y agregue el siguiente
contenido:
php_flag register_globals On
php_flag magic_quotes_gpc On
php_flag magic_quotes_runtime On
php_value upload_max_filesize 4M
Genere el fichero /var/www/aplicacion/info.php, una función que
muestra toda la información acerca de PHP en el servidor, a fin de
corroborar los valores de las directivas de PHP en relación al directorio,
con el siguiente contenido:
<?phpinfo()?>
Reinicie el servicio httpd:
service httpd restart
Acceda con cualquier navegador de red hacia
http://127.0.0.1/aplicacion/info.php y corrobore que los valores para las
variables de PHP para el directorio involucrado realmente han sido
asignadas.
En la sub-sección PHP Core de la sección Configuration, hay tres
columnas: Directive, el cual corresponde a la directivas PHP, Local Value, el cual corresponde a los valores de las directivas de PHP para
Página 213

GRUPO LINUX REDES II
el directorio actual, y Master Value, que corresponde a los valores de
las directivas generales como están definidas en el fichero /etc/php.ini.
2.9.CÓMO CONFIGURAR APACHE CON SOPORTE SSL/TLS
2.9.1. INTRODUCCIÓN
SSL (Secure Sockets Layer - Protocolo de Capa de Conexión
Segura) y su sucesor TLS (Transport Layer Security - Seguridad en la
Capa de Transporte) son protocolos criptográficos que proporcionan la
seguridad de las comunicaciones a través de redes como la Internet.
Un protocolo de seguridad (protocolo de cifrado o protocolo de
cifrado) es un protocolo abstracto o concreto que realiza una seguridad
relacionados con la función y aplica los métodos de cifrado.
Los protocolos criptográficos son ampliamente utilizados para la
aplicación segura de datos a nivel de transporte. Un protocolo criptográfico
suele incorporar al menos algunos de estos aspectos:
Acuerdo de clave o establecimiento de ellas.
Autenticación de entidades.
Cifrado simétrico y autenticación de mensajes.
Transporte de datos en forma segura a nivel de aplicación.
Métodos de no repudio.
2.9.1.1. HTTPS.HTTPS es la versión segura del protocolo HTTP. No es un
protocolo separado de HTTP. Se trata de una combinación de este
último con un mecanismo de transporte SSL o TLS, garantizando una
Página 214

GRUPO LINUX REDES II
protección razonable durante la comunicación cliente-servidor. Es
ampliamente utilizado en la red mundial (WWW o World Wide Web)
para comunicaciones como transacciones bancarias y pago de bienes
y servicios.
El servicio utiliza el puerto 443 por TCP para realizar las
comunicaciones (la comunicación normal para HTTP utiliza el 80 por
TCP). El esquema URI (Uniform Resource Identifier o Identificador
Uniforme de Recursos) es, comparando sintaxis, idéntico al de HTTP
(http:), utilizándose como «https:» seguido del subconjunto
denominado URL (Uniform Resource Locator o Localizador Uniforme
de Recursos). Ejemplo: https://www.dominio.org/
2.9.1.2. RSA.RSA, acrónimo de los apellidos de sus autores, Ron Rivest, Adi
Shamir y Len Adleman, es un algoritmo para el ciframiento de claves
públicas que fue publicado en 1977, patentado en EE.UU. en 1983 por
el Instituto Tecnológico de Michigan (MIT). RSA es utilizado
ampliamente en todo el mundo para los protocolos destinados para el
comercio electrónico.
El sistema criptográfico con clave pública RSA es un algoritmo
asimétrico cifrador de bloques, que utiliza una clave pública, la cual se
distribuye (en forma autenticada preferentemente), y otra privada, la
cual es guardada en secreto por su propietario.
Una clave es un número de gran tamaño, que una persona
puede conceptualizar como un mensaje digital, como un archivo
binario o como una cadena de bits o bytes.
Cuando se quiere enviar un mensaje, el emisor busca la clave
pública de cifrado del receptor, cifra su mensaje con esa clave, y una
Página 215

GRUPO LINUX REDES II
vez que el mensaje cifrado llega al receptor, éste se ocupa de
descifrarlo usando su clave oculta.
Los mensajes enviados usando el algoritmo RSA se
representan mediante números y el funcionamiento se basa en el
producto de dos números primos grandes (mayores que 10100)
elegidos al azar para conformar la clave de descifrado. Emplea
expresiones exponenciales en aritmética modular.
La seguridad de este algoritmo radica en que no hay maneras
rápidas conocidas de factorizar un número grande en sus factores
primos utilizando computadoras tradicionales.
Cifrado de mensajes
Ejemplo: Bob quiere enviar a Alicia un mensaje secreto que solo ella
pueda leer.
Alicia envía a Bob una caja con una cerradura abierta, de la
que solo Alicia tiene la llave. Bob recibe la caja, escribe el mensaje,
lo pone en la caja y la cierra con su cerradura (ahora Bob no puede
leer el mensaje). Bob envía la caja a Alicia y ella la abre con su llave.
En este ejemplo, la caja con la cerradura es la clave pública de
Alicia, y la llave de la cerradura es su clave privada.
Supongamos que Bob desea enviar un mensaje M a Alicia. Él
cambia M en un número m<n, usando un protocolo reversible
conocido como padding scheme.
Bob ahora tiene m. Alicia envía su clave pública (n,e) a Bob.
Él entonces calcula el texto cifrado c correspondiente a m: Esto
Página 216

GRUPO LINUX REDES II
puede ser rápido usando el método de exponentiation by squaring
(llamado también exponenciación binaria). Bob transmite c a Alicia.
1. Cada usuario elige n = p·q2. Los valores p y q NO se hacen públicos
3. Cada usuario calcula φ(n) = (p-1)(q-1)4. Cada usuario elige una clave pública e de forma que 1 < e <
φ(n) y que cumpla con la condición: mcd [e, ϕ(n)] = 15. Cada usuario calcula la clave privada d = inv [e, φ(n)]6. Se hace público el grupo n y la clave e7. Se guarda en secreto la clave d
Cifra: C = NeR mod nR
Firma: C = h(M)dE mod nE
Ejemplo:
Aquí tenemos un ejemplo de cifrado/descifrado con RSA. Los
parámetros usados aquí son pequeños y orientativos con respecto a
los que maneja el algoritmo, pero podemos usar también OpenSSL
para generar y examinar una par de claves reales.
p=61 1º nº primo Privado
q=53 2º nº primo Privado
n=pq=3233 producto p*q
e=17 exponente Público
d=2753 exponente Privado
La clave pública (e, n). La clave privada es d. La función de
cifrado es:
encrypt(m) = me(mod n) = m17(mod 3233)
Página 217

GRUPO LINUX REDES II
Donde m es el texto sin cifrar. La función de descifrado es:
decrypt(c) = cd(mod n) = c2753(mod 3233)
Donde c es el texto cifrado. Para cifrar el valor del texto sin cifrar 123,
nosotros calculamos:
encrypt(123) = 12317(mod 3233) = 855
Para descifrar el valor del texto cifrado, nosotros calculamos:
decrypt(855) = 8552753(mod 3233) = 123
Ambos de estos cálculos pueden ser eficientemente usados por el
algoritmo de multiplicación cuadrática para exponenciación modular.
2.9.1.3. Triple DES.Triple DES, o TDES, es un algoritmo que realiza un triple
cifrado DES, desarrollado por IBM en 1978. Su origen tuvo como
finalidad el agrandar la longitud de una clave sin necesidad de cambiar
el algoritmo de ciframiento, lo cual lo hace más seguro que el
algoritmo DES, obligando a un atacante el tener que triplicar el número
de operaciones para poder hacer daño. A pesar de que actualmente
está siendo reemplazado por el algoritmo AES (Advanced Encryption
Standard, también conocido como Rijndael), sigue siendo estándar
para las tarjetas de crédito y operaciones de comercio electrónico.
a) AlgoritmoLa variante más simple del Triple DES funciona de la
siguiente manera:
Donde M es el mensaje a cifrar y k1, k2 y k3 las respectivas
claves DES. En la variante 3TDES las tres claves son diferentes; en
la variante 2TDES, la primera y tercera clave son iguales.
Página 218

GRUPO LINUX REDES II
b) SeguridadCuando se descubrió que una clave de 56 bits no era
suficiente para evitar un ataque de fuerza bruta, TDES fue elegido
como forma de agrandar el largo de la clave sin necesidad de
cambiar de algoritmo de cifrado. Este método de cifrado es inmune
al ataque por encuentro a medio camino, doblando la longitud
efectiva de la clave (112 bits), pero en cambio es preciso triplicar el
número de operaciones de cifrado, haciendo este método de cifrado
muchísimo más seguro que el DES. Por tanto, la longitud de la clave
usada será de 192 bits, aunque como se ha dicho su eficacia solo
sea de 112 bits.
c) AESAES puede llegar a ser hasta 6 veces más rápido que TDES y
a la fecha no se ha encontrado ninguna vulnerabilidad.
También conocido como Rijndael, es un esquema de cifrado
por bloques adoptado como un estándar de cifrado por el gobierno
de los Estados Unidos. El AES fue anunciado por el Instituto
Nacional de Estándares y Tecnología (NIST) como FIPS PUB 197
de los Estados Unidos (FIPS 197) el 26 de noviembre de 2001
después de un proceso de estandarización que duró 5 años. Se
transformó en un estándar efectivo el 26 de mayo de 2002. Desde
2006, el AES es uno de los algoritmos más populares usados en
criptografía simétrica.
El cifrador fue desarrollado por dos criptólogos belgas, Joan
Daemen y Vincent Rijmen, ambos estudiantes de la Katholieke
Universiteit Leuven, y enviado al proceso de selección AES bajo el
nombre "Rijndael".
Descripción del Cifrado
Página 219

GRUPO LINUX REDES II
Estrictamente hablando, AES no es precisamente Rijndael
(aunque en la práctica se los llama de manera indistinta) ya que
Rijndael permite un mayor rango de tamaño de bloques y longitud de
claves; AES tiene un tamaño de bloque fijo de 128 bits y tamaños de
llave de 128, 192 ó 256 bits, mientras que Rijndael puede ser
especificado por una clave que sea múltiplo de 32 bits, con un
mínimo de 128 bits y un máximo de 256 bits.
La mayoría de los cálculos del algoritmo AES se hacen en un
campo finito determinado.
AES opera en una matriz de 4×4 bytes, llamada state (algunas versiones de Rijndael con un tamaño de bloque mayor
tienen columnas adicionales en el state).
Pseudo-código
Expansión de la clave usando el esquema de claves de Rijndael.
Etapa inicial
1. AddRoundKey Rondas:
1. SubBytes — en este paso se realiza una sustitución no
lineal donde cada byte es reemplazado con otro de
acuerdo a una tabla de búsqueda.
2. ShiftRows — en este paso se realiza una transposición
donde cada fila del «state» es rotada de manera cíclica un
número determinado de veces.
3. MixColumns — operación de mezclado que opera en las
columnas del «state», combinando los cuatro bytes en
cada columna usando una transformación lineal.
4. AddRoundKey — cada byte del «state» es combinado
con la clave «round»; cada clave «round» se deriva de la
clave de cifrado usando una iteración de la clave.
Página 220

GRUPO LINUX REDES II
Etapa final:
1. SubBytes
2. ShiftRows
3. AddRoundKey
Etapa SubBytes - Substitución de bits
En la etapa SubBytes, cada byte en la matriz es actualizado
usando la caja-S de Rijndael de 8 bits. Esta operación provee la no
linealidad en el cifrado. La caja-S utilizada proviene de la función
inversa alrededor del GF(28), conocido por tener grandes
propiedades de no linealidad. Para evitar ataques basados en
simples propiedades algebraicas, la caja-S se construye por la
combinación de la función inversa con una transformación afín
inversible. La caja-S también se elige para evitar puntos estables (y
es por lo tanto un derangement), y también cualesquiera puntos
estables opuestos.
En la fase de SubBytes, cada byte en el state es reemplazado con
su entrada en una tabla de búsqueda fija de 8 bits, S; bij = S(aij).
Página 221

GRUPO LINUX REDES II
Etapa ShiftRows - Desplazar filas
El paso ShiftRows opera en las filas del state; rota de manera
cíclica los bytes en cada fila por un determinado offset. En AES, la
primera fila queda en la misma posición. Cada byte de la segunda
fila es rotado una posición a la izquierda. De manera similar, la
tercera y cuarta filas son rotadas por los offsets de dos y tres
respectivamente. De esta manera, cada columna del state resultante
del paso ShiftRows está compuesta por bytes de cada columna del
state inicial. (variantes de Rijndael con mayor tamaño de bloque
tienen offsets distintos).
En el paso ShiftRows, los bytes en cada fila del state son
rotados de manera cíclica hacia la izquierda. El número de lugares
que cada byte es rotado difiere para cada fila.
Etapa MixColumns - Mezclar columnas
En el paso MixColumns, los cuatro bytes de cada columna del
state se combinan usando una transformación lineal inversible. La
función MixColumns toma cuatro bytes como entrada y devuelve
cuatro bytes, donde cada byte de entrada influye todas las salidas de
cuatro bytes. Junto con ShiftRows, MixColumns implica difusión en
el cifrado. Cada columna se trata como un polinomio GF(28) y luego
se multiplica el módulo x4 + 1 con un polinomio fijo c(x). El paso
MixColumns puede verse como una multiplicación matricial en el
campo finito de Rijndael.
Página 222

GRUPO LINUX REDES II
En el paso MixColumns, cada columna del state es
multiplicada por un polinomio constante c(x).
Etapa AddRoundKey - Cálculo de las subclaves
En el paso AddRoundKey, la subclave se combina con el state.
En cada ronda se obtiene una subclave de la clave principal, usando
la iteración de la clave; cada subclave es del mismo tamaño del state.
La subclave se agrega combinando cada byte del state con el
correspondiente byte de la subclave usando XOR.
Página 223

GRUPO LINUX REDES II
En el paso AddRoundKey, cada byte del state se combina con
un byte de la subclave usando la operación XOR ().
Optimización del cifrado
En sistemas de 32 bits o de mayor tamaño de palabra, es
posible acelerar la ejecución de este algoritmo mediante la
conversión de las transformaciones SubBytes, ShiftRows y MixColumn en
tablas. Se tienen cuatro tablas de 256 entradas de 32 bits que
utilizan un total de 4 kilobytes (4096 bytes) de memoria, un Kb cada
tabla. De esta manera, una ronda del algoritmo consiste en 16
búsquedas en una tabla seguida de 16 operaciones XOR de 32 bits
en el paso AddRoundKey. Si el tamaño de 4 kilobytes de la tabla es
demasiado grande para una plataforma determinada, la operación
de búsqueda en la tabla se puede realizar mediante una sola tabla
de 256 entradas de 32 bits mediante el uso de rotaciones circulares.
2.9.1.4. X.509.
X.509 es un estándar ITU-T (estandarización de
Telecomunicaciones de la International). Entre otras cosas,
establece los estándares para certificados de claves públicas y un
algoritmo para validación de ruta de certificación. Este último se
encarga de verificar que la ruta de un certificado sea válida bajo una
infraestructura de clave pública determinada. Es decir, desde el
certificado inicial, pasando por certificados intermedios, hasta el
certificado de confianza emitido por una Autoridad Certificadora (CA,
o Certification Authority).
2.9.1.5. OpenSSL.
Página 224

GRUPO LINUX REDES II
OpenSSL es una implementación libre, de código abierto, de
los protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro)
y TLS (Transport Layer Security, o Seguridad para Nivel de
Transporte). Está basado sobre el extinto proyecto SSLeay, iniciado
por Eric Young y Tim Hudson, hasta que éstos comenzaron a
trabajar para la división de seguridad de EMC Corporation.
2.9.1.6. Acerca de mod_ssl.Mod_ssl es un módulo para el servidor HTTP Apache, el cual
provee soporte para SSL versiones 2 y 3 y TLS versión 1. Es una
contribución de Ralf S. Engeschall, derivado del trabajo de Ben
Laurie.
2.9.2. REQUISITOS.
Es necesario disponer de una dirección IP pública para cada sitio de
red virtual que se quiera configurar con soporte SSL/TLS. Debido a la
naturaleza de los protocolos SSL y TLS, no es posible utilizar múltiples
sitios de red virtuales con soporte SSL/TLS utilizando una misma dirección
IP. Cada certificado utilizado requerirá una dirección IP independiente en el
sitio de red virtual.
El paquete mod_ssl instala el fichero /etc/httpd/conf.d/ssl.conf, mismo que no es necesario modificar, puesto que se utilizarán ficheros de
inclusión, con extensión *.conf, dentro del directorio /etc/httpd/conf.d/, a fin
de respetar la configuración predeterminada y podre contar con la misma,
que es funcional, brindando un punto de retorno en el caso de que algo
saliera mal.
2.9.3. Equipamiento lógico necesario.
Instalación a través de yum.
Página 225

GRUPO LINUX REDES II
Si se utiliza de CentOS 4 y 5 o White Box Enterprise Linux 4 y 5,
ejecute lo siguiente:
yum -y install mod_ssl
2.9.4. Procedimientos.
Acceda al sistema como el usuario root. Se debe crear el
directorio donde se almacenarán los certificados para todos los sitios
SSL. El directorio, por motivos de seguridad, debe ser solamente
accesible para el usuario root.mkdir -m 0700 /etc/ssl
A fin de mantener cierta organización, y un directorio dedicado
para cada sitio virtual SSL, es conveniente crear un directorio
específico para almacenar los certificados de cada sitio virtual SSL.
Igualmente, por motivos de seguridad, debe ser solamente
accesible para el usuario root.mkdir -m 0700 /etc/ssl/midominio.org
Acceder al directorio que se acaba de crear.
cd /etc/ssl/midominio.org
a) Generando clave y certificado.
Se debe crear una clave con algoritmo RSA de 1024 octetos y
estructura x509, la cual se cifra utilizado Triple DES (Data
Encryption Standard), almacenado en formato PEM de modo que
sea interpretable como texto ASCII. En el proceso descrito a
continuación, se utilizan 5 ficheros comprimidos con gzip, que se
utilizan como semillas aleatorias que mejoran la seguridad de la
clave creada (server.key).
openssl genrsa -des3 -rand
Página 226

GRUPO LINUX REDES II
fichero1.gz:fichero2.gz:fichero3.gz:fichero4.gz:fichero5.gz -out server.key 1024
Si se utiliza este fichero (server.key) para la configuración del
sitio virtual, se requerirá de interacción del administrador cada vez
que se tenga que iniciar, o reiniciar, el servicio httpd, ingresando la
clave de acceso de la clave RSA. Este es el procedimiento más
seguro, sin embargo, debido a que resultaría poco práctico tener que
ingresar una clave de acceso cada vez que se inicie el servicio httpd,
resulta conveniente generar una clave sin Triple DES, la cual
permita iniciar normalmente, sin interacción alguna, al servicio httpd.
A fin de que no se sacrifique demasiada seguridad, es un requisito
indispensable que esta clave (fichero server.pem) solo sea accesible
para root. Ésta es la razón por la cual se crea el directorio
/etc/ssl/midominio.org con permiso de acceso solo para root.
openssl rsa -in server.key -out server.pem
Opcionalmente se genera un fichero de petición CSR (Certificate Signing Request) que se hace llegar a una RA (Registration Authority o Autoridad de Registro), como Verisign,
quienes, tras el correspondiente pago, envían de vuelta un
certificado (server.crt) firmado por dicha autoridad.
openssl req -new -key server.key -out server.csr
Lo anterior solicitará se ingresen varios datos:
• Código de dos letras para el país.
• Estado o provincia.
• Ciudad.
• Nombre de la empresa o razón social.
• Unidad o sección.
• Nombre del anfitrión.
Página 227

GRUPO LINUX REDES II
• Dirección de correo.
• Opcionalmente se puede añadir otra clave de acceso y
nuevamente el nombre de la empresa.
La salida devuelta sería similar a la siguiente:You are about to be asked to enter information that will be incorporated into your
certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [GB]:MXState or Province Name (full name) [Berkshire]:Distrito FederalLocality Name (eg, city) [Newbury]:MexicoOrganization Name (eg, company) [My Company Ltd]:
Mi empresa, S.A. de C.V.Organizational Unit Name (eg, section) []:Direccion Comercial
Common Name (eg, your name or your server's hostname) []:
www.midominio.orgEmail Address []:webm[email protected] enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Si no se desea un certificado firmado por un RA, puede
generarse uno certificado propio utilizando el fichero de petición CSR (server.csr). En el ejemplo a continuación, se crea un certificado con
estructura X.509 en el que se establece una validez por 730 días
(dos años).
openssl x509 -req -days 730 -in server.csr -signkey server.key -out server.crt
Página 228

GRUPO LINUX REDES II
Con la finalidad de que solo el usuario root pueda acceder a
los ficheros creados, se deben cambiar los permisos de éstos a solo
lectura para root.chmod 400 /etc/ssl/midominio.org/server.*
b) Configuración de Apache.
Crear la estructura de directorios para el sitio de red virtual.
mkdir -p /var/www/midominio.org/{cgi-bin,html,logs,etc,var}
De todos directorios creados, solo /var/www/midominio.org/html,
/var/www/midominio.org/etc, /var/www/midominio.org/cgi-bin y
/var/www/midominio.org/var pueden pertenecer al usuario, sin
privilegios, que administrará éste sitio de red virtual. Por motivos de
seguridad, y a fin de evitar que el servicio HTTPD no sea trastornado
en caso de un borrado accidental de algún directorio, tanto
/var/www/midominio.org/ como /var/www/midominio.org/logs, deben
pertenecer al usuario root.
Crear el fichero /etc/httpd/conf.d/midominio.conf con el siguiente
contenido, donde a.b.c.d corresponde a una dirección IP, y
midominio.org corresponde al nombre de dominio a configurar para
el sitio de red virtual:
### midominio.org ###
NameVirtualHost a.b.c.d:80
<VirtualHost a.b.c.d:80>
ServerAdmin [email protected] /var/www/midominio.org/html
ServerName www.midominio.orgServerAlias midominio.orgRedirect 301 / https://www.midominio.org/
CustomLog /var/www/midominio.org/logs/access_log combined
Errorlog /var/www/midominio.org/logs/error_log
Página 229

GRUPO LINUX REDES II
</VirtualHost>
NameVirtualHost a.b.c.d:443
<VirtualHost a.b.c.d:443>
ServerAdmin [email protected] /var/www/midominio.org/html
ServerName www.midominio.orgScriptAlias /cgi-bin/ /var/www/midominio.org/cgi-bin/
<Directory "/var/www/midominio.org/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:
+MEDIUM:+LOW
SSLCertificateFile /etc/ssl/midominio.org/server.crtSSLCertificateKeyFile /etc/ssl/midominio.org/server.pemSetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog /var/www/midominio.org/logs/ssl_request_log \"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
Errorlog /var/www/midominio.org/logs/ssl_error_log
TransferLog /var/www/midominio.org/logs/ssl_access_log
LogLevel warn
</VirtualHost>
A fin de que surtan efecto los cambios, es necesario reiniciar el
servicio httpd.
service httpd restart
c) Comprobación.
Solo basta dirigir cualquier navegador HTTP hacia
https://www.midominio.org/ a fin de verificar que todo esté
Página 230

GRUPO LINUX REDES II
trabajando correctamente. Tras aceptar el certificado, en el caso de
que éste no haya sido firmado por un RA, deberá poderse observar
un signo en la barra de estado del navegador, el cual indica que se
trata de una conexión segura.
d) Modificaciones necesarias en el muro cortafuegos.Si se utiliza un cortafuegos con políticas estrictas, como por
ejemplo Shorewall, es necesario abrir, además del puerto 80 por
TCP (HTTP), el puerto 443 por TCP (HTTPS).
Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST
PORT
SOURCE
PORT(S)1
ACCEPT net fw tcp 80,443
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
Página 231

GRUPO LINUX REDES II
3.SERVIDOR DNS
3.1. INTRODUCCIÓN
3.1.1. DNS (Domain Name System)
DNS es una base de datos distribuida y jerárquica que
almacena la información necesaria para los nombre de dominio. Sus
usos principales son la asignación de nombres de dominio a
direcciones IP y la localización de los servidores de correo
electrónico correspondientes para cada dominio. El DNS nació de la
necesidad de facilitar a los seres humanos el acceso hacia los
servidores disponibles a través de Internet permitiendo hacerlo por
un nombre, algo más fácil de recordar que una dirección IP.
Los Servidores DNS utilizan TCP y UDP en el puerto 53 para
responder las consultas. Casi todas las consultas consisten de una
sola solicitud UDP desde un Cliente DNS seguida por una sola
respuesta UDP del servidor. TCP interviene cuando el tamaño de los
datos de la respuesta excede los 512 bytes, tal como ocurre con
tareas como transferencia de zonas.
Página 232

GRUPO LINUX REDES II
3.1.2. Bind (Berkeley Internet Name Domain).BIND es una implementación del protocolo DNS y provee una
implementación libre de los principales componentes del Sistema de
Nombres de Dominio, los cuales incluyen:
• Un servidor de sistema de nombres de dominio (named).
• Una biblioteca resolutoria de sistema de nombres de dominio.
• Herramientas para verificar la operación adecuada del servidor
DNS (bindutils).
El Servidor DNS BIND es ampliamente utilizado en la Internet
(99% de los servidores DNS) proporcionando una robusta y estable
solución.
3.1.3. NIC (Network Information Center).
NIC (Centro de Información sobre la Red) es una institución
encargada de asignar los nombres de dominio en Internet, ya sean
nombres de dominios genéricos o por países, permitiendo a
personas o empresas montar sitios de Internet a través de un ISP
(Proveedor de servicios de Internet) mediante un DNS.
Técnicamente existe un NIC por cada país en el mundo y cada uno
de éstos es responsable por todos los dominios con la terminación
correspondiente a su país.
Por ejemplo: Red Científica Peruana (RCP) es la entidad
encargada de gestionar todos los dominios .pe. La RCP es
responsable de la coordinación de la administración de los
Página 233

GRUPO LINUX REDES II
elementos técnicos del DNS para garantizar una resolución unívoca
de los nombres, de manera que los usuarios de Internet puedan
encontrar todas las direcciones válidas. Para ello, se encarga de
supervisar la distribución de los identificadores técnicos únicos
usados en las operaciones de Internet, y delegar los nombres de
dominios de segundo y tercer nivel. [RCP: https://www.punto.pe]
ICANN (Internet Corporation for Assigned Names and
Numbers) es una organización sin fines de lucro que opera a nivel
internacional, responsable de asignar espacio de direcciones
numéricas de protocolo de Internet, identificadores de protocolo y de
las funciones de gestión o administración del sistema de nombres de
dominio de primer nivel genéricos (gTLD) y de códigos de países
(ccTLD), así como de la administración del sistema de servidores
raíz. Aunque en un principio estos servicios los desempeñaba
Internet Assigned Numbers Authority (IANA) y otras entidades bajo
contrato con el gobierno de EE.UU., actualmente son
responsabilidad de ICANN. ICANN introdujo en el año 2000 siete
nuevos nombres de dominio genéricos de primer
nivel: .aero, .biz, .coop, .info, .museum, .name y .pro. Actualmente,
ICANN está explorando la posibilidad de agregar otros.
3.1.4. FQDN (Fully Qualified Domain Name).
FQDN (Nombre de Dominio Plenamente Calificado) es un
Nombre de Dominio ambiguo que especifica la posición absoluta del
nodo en el árbol jerárquico del DNS. Se distingue de un nombre
regular porque lleva un punto al final.
Como ejemplo: suponiendo que se tiene un dispositivo cuyo
nombre de anfitrión es «maquina1» y un dominio llamado
«dominio.com», el FQDN sería «maquina1.dominio.com.», así es
Página 234

GRUPO LINUX REDES II
que se define de forma única al dispositivo mientras que pudieran
existir muchos anfitriones llamados «maquina1», solo puede haber
uno llamado «maquina1.dominio.com.». La ausencia del punto al
final definiría que se pudiera tratar tan solo de un prefijo, es decir
«maquina1.dominio.com» pudiera ser un dominio de otro más
largo como «maquina1.dominio.com.mx».
La longitud máxima de un FQDN es de 255 bytes, con una
restricción adicional de 63 bytes para cada etiqueta dentro del
nombre del dominio. Solo se permiten los caracteres A-Z de ASCII,
dígitos y el carácter «-». No se distinguen mayúsculas y minúsculas.
Desde 2004, a solicitud de varios países de Europa, existe el
estándar IDN (Internationalized Domain Name) que permite
caracteres no-ASCII, codificando caracteres Unicode dentro de
cadenas de bytes dentro del conjunto normal de caracteres de
FQDN. Como resultado, los límites de longitud de los nombres de
dominio IDN dependen directamente del contenido mismo del
nombre.
3.1.5. Componentes de un DNS.
Los DNS operan a través de tres componentes: Clientes DNS,
Servidores DNS y Zonas de Autoridad.
a) Clientes DNS.Son programas que ejecuta un usuario y que generan
peticiones de consulta para resolver nombres. Básicamente
preguntan por la dirección IP que corresponde a un nombre
determinado.
b) Servidores DNS.
Página 235

GRUPO LINUX REDES II
Son servicios que contestan las consultas realizadas por los
Clientes DNS. Hay dos tipos de servidores de nombres:
• Servidor Maestro: También denominado Primario. Obtiene
los datos del dominio a partir de un fichero alojado en el
mismo servidor.
• Servidor Esclavo: También denominado Secundario. Al
iniciar obtiene los datos del dominio a través de un Servidor
Maestro, realizando un proceso denominado transferencia de zona.
Un gran número de problemas de operación de servidores DNS
se atribuyen a las pobres opciones de servidores secundarios para las
zonas de DNS. De acuerdo al RFC 2182, el DNS requiere que al menos tres servidores existan para todos los dominios delegados (o
zonas).
Una de las principales razones para tener al menos tres servidores para cada zona es permitir que la información de la zona
misma esté disponible siempre y forma confiable hacia los Clientes DNS a través de Internet cuando un servidor DNS de dicha zona falle,
no esté disponible y/o esté inalcanzable.
Contar con múltiples servidores también facilita la propagación
de la zona y mejoran la eficiencia del sistema en general al brindar
opciones a los Clientes DNS si acaso encontraran dificultades para
realizar una consulta en un Servidor DNS. En otras palabras: tener
múltiples servidores para una zona permite contar con redundancia y respaldo del servicio.
Con múltiples servidores, por lo general uno actúa como
Servidor Primario y los demás como Servidores Secundarios.
Correctamente configurados y una vez creados los datos para una
Página 236

GRUPO LINUX REDES II
zona, no será necesario copiarlos a cada Servidor Esclavo o Secundario, pues éste se encargará de transferir los datos de manera
automática cuando sea necesario.
Los Servidores DNS responden dos tipos de consultas:
Consultas Iterativas (no recursivas): El cliente hace una
consulta al Servidor DNS y este le responde con la mejor
respuesta que pueda darse basada sobre su caché o en las zonas
locales. Si no es posible dar una respuesta, la consulta se reenvía
hacia otro Servidor DNS repitiéndose este proceso hasta
encontrar al Servidor DNS que tiene la Zona de Autoridad capaz
de resolver la consulta.
Consultas Recursivas: El Servidor DNS asume toda la carga de
proporcionar una respuesta completa para la consulta realizada
por el Cliente DNS. El Servidor DNS desarrolla entonces
Consultas Iterativas separadas hacia otros Servidores DNS (en
lugar de hacerlo el Cliente DNS) para obtener la respuesta
solicitada.
c) Zonas de Autoridad.Permiten al Servidor Maestro o Primario cargar la información
de una zona. Cada Zona de Autoridad abarca al menos un dominio y
posiblemente sus sub-dominios, si estos últimos no son delegados a
otras zonas de autoridad.
La información 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:
Tipo de Registro Descripción
Página 237

GRUPO LINUX REDES II
A (Address) Registro de dirección que resuelve un nombre de un anfitrión
hacia una dirección IPv4 de 32 bits.
AAAA Registro de dirección que resuelve un nombre de un anfitrión
hacia una dirección IPv6 de 128 bits.
CNAME (Canonical Name)
Registro de nombre canónico que hace que un nombre sea
alias de otro. Los dominios con alias obtienen los sub-dominios
y registros DNS del dominio original.
MX (Mail
Exchanger)
Registro de servidor de correo que sirve para definir una lista
de servidores de correo para un dominio, así como la prioridad
entre éstos.
PTR (Pointer) Registro de apuntador que resuelve direcciones IPv4 hacia el
nombre anfitriones. Es decir, hace lo contrario al registro A. Se
utiliza en zonas de Resolución Inversa.
NS (Name Server) Registro de servidor de nombres que sirve para definir una
lista de servidores de nombres con autoridad para un dominio.
SOA (Start of Authority)
Registro de inicio de autoridad que especifica el Servidor DNS Maestro (o Primario) que proporcionará la información con
autoridad acerca de un dominio de Internet, dirección de
correo electrónico del administrador, número de serie del
dominio y parámetros de tiempo para la zona.
SRV (Service) Registro de servicios que especifica información acerca de
servicios disponibles a través del dominio. Protocolos como
SIP (Session Initiation Protocol) y XMPP (Extensible
Messaging and Presence Protocol) suelen requerir registros
SRV en la zona para proporcionar información a los clientes.
TXT (Text) Registro de texto que permite al administrador insertar texto
arbitrariamente en un registro DNS. Este tipo de registro es
muy utilizado por los servidores de listas negras DNSBL (DNSbased Blackhole List) para la filtración de Spam. Otro
ejemplo de uso son las VPN, donde suele requerirse un
registro TXT para definir una llave que será utilizada por los
Página 238

GRUPO LINUX REDES II
clientes.
Las zonas que se pueden resolver son:
Zonas de Reenvío.Devuelven direcciones IP para las búsquedas hechas para
nombres FQDN (Fully Qualified Domain Name).
En el caso de dominios públicos, la responsabilidad de que exista
una Zona de Autoridad para cada Zona de Reenvío corresponde a la
autoridad misma del dominio, es decir, y por lo general, quien esté
registrado como autoridad del dominio tras consultar una base de datos
WHOIS. Quienes compran dominios a través de un NIC (por ejemplo
ejemplo: www.nic.mx) son quienes se hacen cargo de las Zonas de
Reenvío, ya sea a través de su propio Servidor DNS o bien a través de los
Servidores DNS de su ISP.
Salvo que se trate de un dominio para uso en una red local, todo
dominio debe ser primero tramitado con un NIC como requisito para tener
derecho legal a utilizarlo y poder propagarlo a través de Internet.
Zonas de Resolución Inversa.
Devuelven nombres FQDN (Fully Qualified Domain Name) para las
búsquedas hechas para direcciones IP.
En el caso de segmentos de red públicos, la responsabilidad de que
exista de que exista una Zona de Autoridad para cada Zona de Resolución Inversa corresponde a la autoridad misma del segmento, es
Página 239

GRUPO LINUX REDES II
decir, y por lo general, quien esté registrado como autoridad del segmento
tras consultar una base de datos WHOIS.
Los grandes ISP, y en algunos casos algunas empresas, son
quienes se hacen cargo de las Zonas de Resolución Inversa.
3.1.6. Herramientas de búsqueda y consulta.
a) Mandato host.El mandato host es una herramienta simple para hacer
búsquedas en Servidores DNS. Es utilizada para convertir
nombres en direcciones IP y viceversa.
De modo predefinido realiza las búsquedas en los
Servidores DNS definidos en el fichero /etc/resolv.conf, pudiendo definirse de manera opcional el Servidor DNS a
consultar.
host www.alcancelibre.org
Lo anterior realiza una búsqueda en los Servidores DNS
definidos en el fichero /etc/resolv.conf del sistema, devolviendo
como resultado una dirección IP.
host www.alcancelibre.org 200.33.146.217
Lo anterior realiza una búsqueda en los Servidor DNS en
la dirección IP 200.33.146.217, devolviendo una dirección IP
como resultado.
b) Mandato dig.
Página 240

GRUPO LINUX REDES II
El mandato dig (domain information groper) es una
herramienta flexible para realizar consultas en Servidores DNS.
Realiza búsquedas y muestra las respuestas que son regresadas
por los servidores que fueron consultados. Debido a su
flexibilidad y claridad en la salida es que la mayoría de los
administradores utilizan dig para diagnosticar problemas de
DNS.
De modo predefinido realiza las búsquedas en las
Servidores DNS definidos en el fichero /etc/resolv.conf, pudiendo definirse de manera opcional el Servidor DNS a
consultar. La sintaxis básica sería:
dig @servidor nombre TIPO
Donde servidor corresponde al nombre o dirección IP del
Servidor DNS a consultar, nombre corresponde al nombre del
registro del recurso que se está buscando y TIPO corresponde al
tipo de consulta requerido (ANY, A, MX, SOA, NS, etc.)
Ejemplo:dig @200.33.146.209 alcancelibre.org MX
Lo anterior realiza una búsqueda en el Servidor DNS en la
dirección IP 200.33.146.209 para los registros MX para el dominio
alcancelibre.org.
dig alcancelibre.org NSLo anterior realiza una búsqueda en los Servidores DNS
definidos en el fichero /etc/resolv.conf del sistema para los registros
NS para el dominio alcancelibre.org.
dig @200.33.146.217 alcancelibre.org NS
Lo anterior realiza una búsqueda en los Servidor DNS en la
dirección IP 200.33.146.217 para los registros NS para el dominio
alcancelibre.org.
Página 241

GRUPO LINUX REDES II
c) Mandato jwhois (whois).El mandato jwhois es una herramienta de consulta a
través de servidores WHOIS. La sintaxis básica es:
jwhois dominio
Ejemplo: jwhois alcancelibre.org
Lo anterior regresa la información correspondiente al
dominio alcancelibre.org.
3.2.EQUIPAMIENTO LÓGICO NECESARIO.
PAQUETE DESCRIPCIÓN
bind Incluye el Servidor DNS (named) y herramientas
para verificar su funcionamiento
bind-libs Biblioteca compartida que consiste en rutinas para
aplicaciones para utilizarse cuando se interactúe
con Servidores DNS.
bind-chroot Contiene un árbol de ficheros que puede ser
utilizado como una jaula chroot para named añadiendo seguridad adicional al servicio.
bind-utils Colección de herramientas para consultar
Servidores DNS.
cachingnameserver Ficheros de configuración que harán que el Servidor
DNS actúe como un caché para el servidor de
nombres.
3.2.1. Instalación a través de yum.Si se utiliza de CentOS 5, Red Hat™ Enterprise Linux 5 o
White Box Enterprise Linux 5, o versiones posteriores, se puede
instalar utilizando lo siguiente:yum -y install bind bind-chroot bind-utils caching-nameserver
Página 242

GRUPO LINUX REDES II
3.3.PROCEDIMIENTOS.
3.3.1. SELinux y el servicio named.
La vulnerabilidad permite a atacantes remotos falsificar
tráfico DNS a través de ciertas técnicas de envenenamiento de
cache contra servidores de resolución recursiva (es decir cuando
se usa la opción allow-recursion abierta a todo el mundo, como
ocurre en los servidores DNS públicos), y se relaciona a
insuficiente aleatoriedad de las ID de transacción y puertos de
origen. Es decir, vulnerabilidad de entropía de insuficiencia de
zócalos (sockets) de DNS (DNS Insufficient Socket Entropy Vulnerability). En otras palabras, un atacante puede contaminar
el cache de un servidor DNS y hacer que los clientes se conecten
hacia direcciones falsas. Es importante aclarar que esta es
realmente una vulnerabilidad del protocolo DNS.
SELinux protege casi por completo al servicio named contra
esta vulnerabilidad. Es por tal motivo que es importante utilizar
SELinux.
A fin de que SELinux permita al servicio named trabajar con
permisos de escritura para zonas maestras, es decir un esquema
de servidor maestro con servidores esclavos, utilizar el siguiente
mandato:
setsebool -P named_write_master_zones 1
Para definir que se desactive la protección de SELinux para
el servicio named, haciendo que todo lo anteriormente descrito en
esta sección pierda sentido y el servidor sea parcialmente
susceptible a la vulnerabilidad descrita, utilice el siguiente
mandato:
Página 243

GRUPO LINUX REDES II
setsebool -P named_disable_trans 1
Sí realiza el procedimiento anterior, es importante configurar
la función de consultas recursivas exclusivamente para redes en la
que se confíe plenamente.
Sí se va a configurar un DNS dinámico, SELinux impedirá
crear los ficheros *.jnl (journal, ficheros de diario) correspondientes.
Las zonas de DNS dinámicas deben ser almacenadas en directorios
específicos que solo contengan zonas dinámicas. Sugiero crear el
directorio /var/named/chroot/var/named/dynamics para tal fin y
configurar éste para qué pertenezca al usuario y grupo named,
tenga permisos de lectura, escritura y ejecución para el usuario y
grupo named (770) y tenga los contextos de SELinux de usuario de
sistema (system_u), rol de objeto (object_r) y tipo cache del
servicio named (named_cache_t) a fin de permitir escritura en este
directorio.
cd /var/named/chroot/var/named/
mkdir dynamics/
chmod 770 dynamics/
chown named.named dynamics/
chcon -u system_u -r object_r -t named_cache_t dynamics/
Cualquier fichero de zona que se vaya a utilizar a través del
servicio named, debe contar con los contextos de SELinux de
usuario de sistema (system_u), rol de objeto (object_r) y tipo zona
del servicio named (named_zone_t). En el siguiente ejemplo se
utiliza el mandato chcon para cambiar los contextos del fichero mi-dominio.zone y definir los contextos de SELinux mencionados:
cd /var/named/chroot/var/named/
chcon -u system_u -r object_r -t named_zone_t mi-dominio.zone
Página 244

GRUPO LINUX REDES II
3.3.2. Preparativos.
Idealmente se deben definir primero los siguientes datos:
1. Dominio a resolver.
2. Servidor de nombres principal (SOA). Éste debe ser un
nombre que ya esté plenamente resuelto, y debe ser un
FQDN (Fully Qualified Domain Name).
3. Lista de todos los servidores de nombres (NS) que se
utilizarán para efectos de redundancia. Éstos deben ser
nombres que ya estén plenamente resueltos, y deben ser
además FQDN.
4. Cuenta de correo del administrador responsable de esta
zona. Dicha cuenta debe existir y no debe pertenecer a la
misma zona que se está tratando de resolver.
5. Al menos un servidor de correo (MX), con un registro A,
nunca CNAME.
6. IP predeterminada del dominio.
7. Sub-dominios dentro del dominio (www, mail, ftp, ns, etc.)
y las direcciones IP que estarán asociadas a estos.
Es importante tener bien en claro que los puntos 2, 3 y 4
involucran datos que deben existir previamente y estar
plenamente resueltos por otro servidor DNS; Lo anterior quiere
decir no pueden utilizar datos que sean parte o dependan del
mismo dominio que se pretende resolver. De igual modo, el
servidor donde se implementará el DNS deberá contar con un
nombre FQDN y que esté previa y plenamente resuelto en otro
DNS.
Como regla general se generará una zona de reenvío por
cada dominio sobre el cual se tenga autoridad plena y absoluta y
se generará una zona de resolución inversa por cada red sobre la
cual se tenga plena y absoluta autoridad. Es decir, si se es
Página 245

GRUPO LINUX REDES II
propietario del dominio «cualquiercosa.com», se deberá generar el
fichero de zona correspondiente a fin de resolver dicho dominio.
Por cada red con direcciones IP privadas sobre la cual se tenga
control y plena y absoluta autoridad, se deberá generar un fichero
de zona de resolución inversa a fin de resolver inversamente las
direcciones IP de dicha zona. Regularmente la resolución inversa
de las direcciones IP públicas es responsabilidad de los
proveedores de servicio ya que son estos quienes tienen la
autoridad plena y absoluta sobre dichas direcciones IP.
Todos los ficheros de zona deben pertenecer al usuario
«named» a fin de que el servicio named pueda acceder a estos o
bien modificar éstos en el caso de tratarse de zonas esclavas.
3.3.3. Creación de los ficheros de zona.
Los siguientes corresponderían a los contenidos para los
ficheros de zona requeridos para la red local y por el NIC con el
que se haya registrado el dominio. Cabe señalar que en las zonas
de reenvío siempre se especifica al menos un registro MX (Mail
Exchanger o intercambiador de correo), para definir donde está el
servidor de correo para el dominio, y que se utilizan tabuladores (tecla TAB) en lugar de espacio. Solo necesitará sustituir
nombres y direcciones IP, y quizá añadir nuevos registros para
complementar su red local.
a) Zona de reenvío red local /var/named/chroot/var/named/redlocal.zone
$TTL 86400@ IN SOA dns.red-local. alguien.gmail.com. (
2009080301; número de serie28800 ; tiempo de refresco7200 ; tiempo entre reintentos de consulta604800 ; tiempo tras el cual expira la zona
Página 246

GRUPO LINUX REDES II
86400 ; tiempo total de vida)
@ IN NS dns@ IN MX 10 mail@ IN A 192.168.1.1intranet IN A 192.168.1.1maquina2 IN A 192.168.1.2maquina3 IN A 192.168.1.3maquina4 IN A 192.168.1.4www IN CNAME intranetmail IN A 192.168.1.1ftp IN CNAME intranetdns IN CNAME intranet
b) Zona de resolución inversa red local /var/named/chroot/var/named/1.168.192.in-addr.arpa.zone
$TTL 86400@ IN SOA dns.red-local. alguien.gmail.com. (
2009080301 ; número de serie28800 ; tiempo de refresco7200 ; tiempo entre reintentos de consulta604800 ; tiempo tras el cual expira la zona86400 ; tiempo total de vida)
@ IN NS dns.red-local.1 IN PTR intranet.red-local.2 IN PTR maquina2.red-local.3 IN PTR maquina3.red-local.4 IN PTR maquina4.red-local.
c) Zona de reenvío del dominio /var/named/chroot/var/named/dominio.com.zoneSuponiendo que hipotéticamente se es la autoridad para el
dominio «dominio.com», se puede crear una Zona de Reenvío con un contenido similar al siguiente:$TTL 86400@ IN SOA fqdn.dominio-resuelto. alguien.gmail.com. (
2009080301; número de serie28800 ; tiempo de refresco7200 ; tiempo entre reintentos de consulta604800 ; tiempo tras el cual expira la zona86400 ; tiempo total de vida)
@ IN NS dns@ IN MX 10 mail@ IN A 148.243.59.1servidor IN A 148.243.59.1
Página 247

GRUPO LINUX REDES II
www IN CNAME servidormail IN A 148.243.59.1ftp IN CNAME servidordns IN CNAME servidor
d) Zona de resolución inversa del dominio /var/named/chroot/var/named/1.243.148.in-addr.arpa.zoneSuponiendo que hipotéticamente se es la autoridad para el
segmento de red 148.234.1.0/24 (regularmente lo es el proveedor
de servicio de acceso hacia Internet), se puede crear una Zona de Resolución Inversa con un contenido similar al siguiente:$TTL 86400@ IN SOA fqdn.dominio-resuelto. alguien.gmail.com. (
2009080301 ; número de serie28800 ; tiempo de refresco7200 ; tiempo entre reintentos de consulta604800 ; tiempo tras el cual expira la zona86400 ; tiempo total de vida)
@ IN NS dns.dominio.com.1 IN PTR servidor.dominio.com.2 IN PTR maquina2.dominio.com.3 IN PTR maquina3.dominio.com.4 IN PTR maquina4.dominio.com.
Cada vez que haga algún cambio en algún fichero de zona,
deberá cambiar el número de serie a fin de que tomen efecto los
cambios de inmediato cuando se reinicie el servicio named, ya
que de otro modo tendría que reiniciar el equipo, algo poco
conveniente.
Las zonas de resolución inversa que involucran direcciones IP
públicas son responsabilidad de los ISP (proveedores de servicio
de Internet). Crear una zona de resolución inversa sin ser la
autoridad de dicha zona tiene efecto solo para quien use el
servidor DNS recién configurado como único DNS.
e) Configuración de parámetros en el fichero /etc/named.confoptions {
directory "/var/named";dump-file "/var/named/data/cache_dump.db";
Página 248

GRUPO LINUX REDES II
statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";allow-recursion {
127.0.0.1;192.168.1.0/24;
};forwarders {
200.33.146.209;200.33.146.217;
};forward first;
};include "/etc/named.rfc1912.zones";include "/etc/rndc.key";controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };};zone "red-local" {
type master;file "red-local.zone";allow-update { none; };
};zone "1.168.192.in-addr.arpa" {
type master;file "1.168.192.in-addr.arpa.zone";allow-update { none; };
};
3.3.4. Seguridad adicional en DNS para uso público.
Un DDoS (Distributed Denial of Service o denegación de
servicio distribuido) se efectúa con la instalación de varios agentes
remotos en muchas computadoras que pueden estar localizadas
en diferentes puntos del mundo. El atacante consigue coordinar
esos agentes para así, de forma masiva, amplificar el volumen de
saturación de información (flood), pudiendo darse casos de un
ataque de cientos o millares de computadoras dirigido a una
máquina o red objetivo. Esta técnica se ha revelado como una de
las más eficaces y sencillas a la hora de colapsar servidores, la
tecnología distribuida ha ido haciendo más sofisticada hasta el
Página 249

GRUPO LINUX REDES II
punto de otorgar poder de causar daños serios a personas con
escaso conocimiento técnico.
Se debe modificar el fichero /etc/named.conf, donde se
añade en la sección de opciones (options) una línea que defina la
red, las redes o bien los ACL (Access Control List o listas de
control de acceso) que tendrán permitido realizar todo tipo de
consultas.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
forwarders { 192.168.0.1; };
forward first;
allow-recursion { 127.0.0.1; 192.168.0.0/24; };};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };
};
Lo anterior hace que solo se puedan realizar consultas
recursivas en el DNS desde 192.168.0.0/24, ya sea para un
nombre de dominio alojado de manera local y otros dominios
resueltos en otros servidores (ejemplo: www.yahoo.com,
www.google.com, www.alcancelibre.org, etc). El resto del mundo
solo podrá realizar consultas sobre los dominios alojados de
manera local y que estén configurado para permitirlo.
En la siguiente configuración de ejemplo, se pretende lograr
lo siguiente:
Red Local: cualquier tipo de consulta hacia dominios externos
y locales (es decir, www.yahoo.com, www.google.com,
alcancelibre.org, además de midominio.com).
Página 250

GRUPO LINUX REDES II
Resto del mundo: solo puede hacer consultas para la zona de
midominio.comDe este modo se impide que haya consultas recursivas y
con esto impedir la posibilidad de sufrir/participar de un ataque
DDoS.
options {
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
forwarders { 192.168.0.1; };
forward first;
allow-recursion { 127.0.0.1; 192.168.0.0/24; };};
controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };
};
include "/etc/named.rfc1912.zones";
include "/etc/rndc.key";
zone "miredlocal" {
type master;
file "miredlocal.zone";
allow-update { none; };
allow-query { 192.168.0.0/24; };
allow-transfer { 192.168.0.2; };
};
zone "midominio.com" {
type master;
file "midominio.com.zone";
allow-update { none; };
allow-transfer { 200.76.185.252; 200.76.185.251; };
};
3.3.5. Seguridad adicional en DNS para uso exclusivo en red local.
Página 251

GRUPO LINUX REDES II
Si se va a tratar de un servidor de nombres de dominio para
uso exclusivo en red local, y se quieren evitar problemas de
seguridad de diferente índole, puede utilizarse el parámetro
allowquery, el cual servirá para especificar que solo ciertas
direcciones podrán realizar consultas al servidor de nombres de
dominio. Se pueden especificar directamente direcciones IP, redes
completas o listas de control de acceso que deberán definirse
antes de cualquier otra cosa en el fichero /etc/named.conf.
Fichero /etc/named.confacl "redlocal" {
127.0.0.1;192.168.1.0/24;192.168.2.0/24;192.168.3.0/24;
};options {
directory "/var/named/";dump-file "/var/named/data/cache_dump.db";statistics-file "/var/named/data/named_stats.txt";memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-recursion { redlocal; };forwarders {
200.33.146.209;200.33.146.217;
};forward first;allow-query {
redlocal;192.168.1.15;192.168.1.16;
};};controls {
inet 127.0.0.1 allow { 127.0.0.1; } keys { "rndckey"; };};include "/etc/named.rfc1912.zones";include "/etc/rndc.key";zone "red-local" {
type master;file "red-local.zone";allow-update { none; };
};zone "1.168.192.in-addr.arpa" {
type master;
Página 252

GRUPO LINUX REDES II
file "1.168.192.in-addr.arpa.zone";allow-update { none; };
};
3.3.6. Las zonas esclavas.
Las zonas esclavas se refieren a aquellas hospedadas en
servidores de nombres de dominio secundarios y que hacen las
funciones de redundar las zonas maestras en los servidores de
nombres de dominio primarios. El contenido del fichero de zona es
el mismo que en servidor primario. La diferencia está en la sección
de texto utilizada en /etc/named.conf, donde las zonas se definen
como esclavas y definen los servidores donde está hospedada la
zona maestra.
a) Fichero /etc/named.conf Servidor DNS secundario.zone "dominio.com" {
type slave;file "dominio.com.zone";
masters { 192.168.1.254; };};
zone "red-local" {
type slave;file "red-local.zone";
masters { 192.168.1.254; };};
zone "1.168.192.in-addr.arpa" {
type slave;file "1.168.192.in-addr.arpa.zone";
masters { 192.168.1.254; };};
Adicionalmente, si desea incrementar seguridad y desea
especificar en el Servidor DNS Primario que servidores tendrán
Página 253

GRUPO LINUX REDES II
permitido ser servidores de nombres de dominio secundario, es
decir, hacer transferencias, puede utilizar el parámetro allow-transfer del siguiente modo:
b) Fichero /etc/named.conf Servidor DNS Primario.zone "dominio.com" {
type master;
file "dominio.com.zone";
allow-update { none; };
allow-transfer {200.33.146.217;200.33.146.209;
};};
zone "red-local" {
type master;
file "red-local.zone";
allow-update { none; };
allow-transfer {192.168.1.15;192.168.1.16;
};};
zone "1.168.192.in-addr.arpa" {
type master;
file "1.168.192.in-addr.arpa.zone";
allow-update { none; };
allow-transfer {192.168.1.15;192.168.1.16;
};};
3.3.7. Seguridad adicional para transferencias de zona.Cuando se gestionan dominios a través de redes públicas,
es importante considerar que si se tienen esquemas de servidores
maestros y esclavos, siempre será más conveniente utilizar una
Página 254

GRUPO LINUX REDES II
clave cifrada en lugar de una dirección IP, debido a que esta
última puede ser falsificada bajo ciertas circunstancias.
Comúnmente se definen las direcciones IP desde las cuales
se permitirá transferencias de zonas, utilizando una configuración
en el fichero /var/named/chroot/etc/named.conf como la
ejemplificada a continuación, donde los servidores esclavos
corresponden a los servidores con direcciones IP 192.168.1.11 y
192.168.1.12:
zone "mi-dominio.org" {
type master;
file "mi-dominio.org.zone";
allow-update { none; }:
allow-transfer { 192.168.1.11; 192.168.1.12; };
};
Lo anterior permite la transferencia de zona para los
servidores con direcciones IP 192.168.1.11 y 192.168.1.12, los
cuales utilizan la siguiente configuración en el fichero
/var/named/chroot/etc/named.conf, ejemplificada a continuación,
donde el servidor primario (zonas maestras) corresponde al
servidor con dirección IP 192.168.1.1:
zone "mi-dominio.org" {
type slave;
file "mi-dominio.org.zone";
masters { 192.168.1.1; };
};
El inconveniente del esquema anterior es que es fácil
falsificar las direcciones IP. A fin de evitar que esto ocurra, el
método recomendado será utilizar una clave cifrada que será
validada en lugar de la dirección IP. La llave se crea con el
mandato dnssec-keygen, especificando un algoritmo, el tamaño
de la llave en octetos (bits), el tipo de la llave, que puede ser
ZONE, HOST, ENTITY o USER y el nombre específico para la
clave cifrada. DSA y RSA se utilizan para DNS Seguro
Página 255

GRUPO LINUX REDES II
(DNSSEC), en tanto que HMAC-MD5 se utiliza para TSIG (Transfer SIGnature o transferencia de firma). Lo más común es
utilizar TSIG. En el siguiente ejemplo, se generará en el directorio
de trabajo actual la clave midominio.org, utilizando /dev/random como fuente de datos aleatorios, un algoritmo HMACMD5 tipo
HOST de 128 octetos (bits):
dnssec-keygen -r /dev/random -a HMAC-MD5 -b 128 -n HOST mi-dominio.org
Lo anterior devuelve una salida similar a la siguiente:
Kmi-dominio.org.+157+32322
Al mismo tiempo se generaran dos ficheros en el directorio
/var/named/chroot/var/named/, que corresponderían a Kmi-
dominio.org.+157+32322.key y Kmi-dominio.org.
+157+32322.private.Kmi-dominio.org.+157+32322.key deberá tener
un contenido como el siguiente, el cual corresponde al registro que
se añade dentro del fichero de zona:mi-dominio.org. IN KEY 512 3 157 NPuNuxvZAjtd3mriuygT8Q==
Kmi-dominio.org.+157+32322.private deberá tener un contenido
como el siguiente:
Private-key-format: v1.2
Algorithm: 157 (HMAC_MD5)
Key: NPuNuxvZAjtd3mriuygT8Q==
En ambos casos, NPuNuxvZAjtd3mriuygT8Q== corresponde a la
clave cifrada. Ambos deben tener la misma clave.
Los dos ficheros solo deben tener atributos de lectura para el
usuario named.
chmod 400 Kmi-dominio.org.+157+32322.*chown named.named Kmi-dominio.org.+157+32322.*
A fin de poder ser utilizados, ambos ficheros deben ser
movidos hacia el directorio /var/named/chroot/var/named/.mv Kmi-dominio.org.+157+32322.* /var/named/chroot/var/named
Página 256

GRUPO LINUX REDES II
En el servidor primario (zonas maestras), se añade la
siguiente configuración en el fichero
/var/named/chroot/etc/named.conf:key mi-dominio.org {
algorithm HMAC-MD5;
secret "NPuNuxvZAjtd3mriuygT8Q==";
};
zone "mi-dominio.org" {
type master;
file "mi-dominio.org.zone";
allow-update { none; };
allow-transfer { key mi-dominio.org; };
};
Los servidores esclavos utilizarían la siguiente configuración
en el fichero /var/named/chroot/etc/named.conf, en donde se
define la clave y que ésta será utilizada para realizar conexiones
hacia el servidor primario (zonas maestras) (192.168.1.1, en el
ejemplo):
key mi-dominio.org {algorithm HMAC-MD5;secret "NPuNuxvZAjtd3mriuygT8Q==";
};server 192.168.1.1 {
keys { mi-dominio.org; };};zone "mi-dominio.org" {
type slave;
masters { 192.168.1.1; };
};
Comprobaciones.Tanto en el servidor primario (zonas maestras) como en los
servidores esclavos, utilice el mandato tail para ver la salida del fichero
Página 257

GRUPO LINUX REDES II
/var/log/messages, pero solo aquello que contenga la cadena de
caracteres named:
tail -f /var/log/messages |grep named
Al reiniciar el servicio named en servidor primario (zonas
maestras), se debe mostrar una salida similar al siguiente cuadro
cuando un servidor esclavo realiza una transferencia:
Al reiniciar el servicio named en los servidores esclavos, se debe
mostrar una salida similar a la siguiente:
3.3.8. Reiniciar servicio y depuración de configuración.Al terminar de editar todos los ficheros involucrados, solo
bastará reiniciar el servidor de nombres de dominio.
service named restart
Si queremos que el servidor de nombres de dominio quede
añadido entre los servicios en el arranque del sistema, deberemos
Página 258

GRUPO LINUX REDES II
realizar lo siguiente a fin de habilitar named junto con el arranque
del sistema:
chkconfig named on
Realice prueba de depuración y verifique que la zona haya
cargado con número de serie:
tail -80 /var/log/messages |grep named
Lo anterior, si está funcionando correctamente, debería
devolver algo parecido a lo mostrado a continuación:
4.SERVIDOR FTP
4.1. INTRODUCCIÓN
4.1.1. Protocolo FTP
FTP (File Transfer Protocol) o Protocolo de Transferencia de
Archivos es uno de los protocolos estándar más utilizados en Internet
siendo el más idóneo para la transferencia de grandes bloques de
datos a través de redes que soporten TCP/IP. El servicio utiliza los
puertos 20 y 21, exclusivamente sobre TCP. El puerto 20 es utilizado
para el flujo de datos entre cliente y servidor. El puerto 21 es utilizando
para el envío de órdenes del cliente hacia el servidor. Prácticamente
todos los sistemas operativos y plataformas incluyen soporte para FTP,
lo que permite que cualquier computadora conectada a una red basada
sobre TCP/IP pueda hacer uso de este servicio a través de un cliente
FTP.
Página 259

GRUPO LINUX REDES II
a) Funcionamiento del Protocolo FTP
Generalmente se origina cuando el cliente FTP envía la petición
al servidor para indicarle que requiere establecer una comunicación
con él, entonces el cliente FTP inicia la conexión hacia el servidor FTP
mediante el puerto 21 el cual establecerá un canal de control. A partir
de este punto el cliente FTP enviara al servidor las acciones que este
debe ejecutar para poder llevar a cabo el envío de datos. Estas
acciones incluyen parámetros para la conexión de datos así como
también la manera en cómo serán gestionados y tratados estos datos.
Algunos de los parámetros enviados por el cliente FTP para la
conexión de datos son los siguientes:
- Puerto de datos
- Modo de transferencia
- Tipo de representación y estructura
Los parámetros relacionados a la gestión de datos son los
siguientes:
- Almacenar
- Recuperar
- Añadir
- Borrar
- Obtener
Página 260

GRUPO LINUX REDES II
El proceso de transferencia de datos desde el servidor hacia el
cliente deberá esperar a que el servidor inicie la conexión al puerto de
datos especificado (en modo activo) y luego de ello transferir los datos
en función a los parámetros de conexión especificados.
b) Modos de conexión del cliente FTPFTP establecerá dos modos de conexión diferentes para el
cliente, el Modo Activo y el Modo Pasivo.
Modo ActivoEl modo activo generalmente es conocido también como
modo estándar y este opera de la siguiente forma. Se establecen
dos conexiones distintas, la primera conexión establece una
comunicación para la transmisión de comandos a través de un
puerto aleatorio mayor que el 1024 del cliente FTP hacia el puerto 21
del servidor FTP y por esa misma conexión se le notifica al servidor
FTP cual es el puerto de nuestro cliente FTP que esta a la espera de
los datos.
Entonces y para comprender mejor, si usted descarga algún
archivo mediante la ayuda de algún cliente de FTP, es el servidor
Página 261

GRUPO LINUX REDES II
FTP el que inicia la transmisión de datos, desde su puerto 20 al
puerto que aleatoriamente el cliente
FTP le ha indicado. Se le llama modo activo porque la
transmisión de datos es iniciada por el propio servidor FTP.
Modo PasivoEsto se logra cuando el cliente FTP inicia la conexión con el
servidor FTP mediante el envió del comando PASV en este punto el
cliente FTP establece una comunicación mediante un canal de
control el cual generalmente utiliza un puerto aleatorio mayor al 1024
para comunicarse con el servidor FTP a través de su puerto 21. Al
pasar a modo pasivo el cliente FTP pedirá al servidor FTP que habrá
un puerto, el cual deberá ser aleatorio y mayor al 1024, recibida la
contestación, será el cliente FTP el que establezca la conexión de
datos al servidor FTP a través del puerto especificado anteriormente.
Página 262

GRUPO LINUX REDES II
Modo Activo vs Modo PasivoComo hemos explicado antes, en el modo activo se abre una
conexión para datos desde el servidor FTP al cliente FTP, esto es,
una conexión de fuera hacia adentro, entonces, si el cliente FTP se
encuentra detrás de un firewall, este filtrara o bloqueara la conexión
entrante.
En el modo pasivo es el cliente FTP el que inicia tanto la
conexión de control como la de datos, con lo cual el firewall no
tendrá ninguna conexión entrante que filtrar.
c) Modos de acceso del cliente FTPUn cliente FTP es la aplicación o software que servirá de
intermediario entre el servidor FTP y nuestro equipo, así mismo
existen dos versiones de clientes FTP, los gráficos y los que se usan
a linea de comandos.
En la mayoría de los casos se implementaran clientes gráficos
de FTP esto debido a que son mas fáciles y sencillos de manejar por
el usuario. Nosotros recomendamos usar el cliente FTP FileZilla.
FileZilla es un cliente FTP, gratuito, multiplataforma , libre y de
código abierto. Sustenta los protocolos FTP, SFTP y SFTP.
Así mismo, los clientes FTP pueden acceder a los servidores
FTP de tres formas distintas, estas son:
- Acceso Anónimo
Página 263

GRUPO LINUX REDES II
- Acceso de Usuario
- Acceso de Invitado
Acceso AnónimoEl acceso anónimo a un servidor FTP se caracteriza porque
este no pide ningún tipo de autenticacion al cliente FTP (login y
password) para entrar en el. Generalmente este tipo de accesos son
implementados para que cualquier usuario tenga acceso a los
recursos que ahí se comparten, los cuales normalmente solo pueden
ser leídos o copiados, restringiendo a los usuarios la función de
crear o modificar dichos recursos.
Acceso de UsuarioEste tipo de acceso se caracteriza porque este si requiere
autenticacion del cliente FTP (login y password) ante el servidor
FTP. Generalmente estos accesos son implementados para un
grupo selecto de usuarios, los cuales tendrán ciertos privilegios
sobre los recursos del servidor como podría ser modificar, eliminar,
crear, subir o descargar archivos o carpetas.
Otra característica de este acceso es que permite al usuario
FTP acceder a cualquier parte del sistema operativo, lo cual es un
grave fallo de seguridad.
Acceso de InvitadoEl acceso de invitado bien podría ser un híbrido entre el
acceso anónimo y el acceso de usuario, ya que en este tipo de
acceso de requiere autenticacion del cliente FTP (login y password)
ante el servidor FTP, lo que lo diferencia de los últimos dos es que el
usuario FTP solo podrá trabajar en un directorio de trabajo destinado
exclusivamente para el, evitando así que el usuario FTP tenga
acceso a otras partes del sistema operativo, pero sin restringir los
privilegios que tiene sobre su propio directorio de trabajo.
Página 264

GRUPO LINUX REDES II
4.1.2. Protocolo FTPS
FTPS (también referido como FTP/SSL) es la forma de designar
diferentes formas a través de las cuales se pueden realizar
transferencias seguras de ficheros a través de FTP utilizando SSL o
TLS. Son mecanismos muy diferentes a los del protocolo SFTP (SSH
File Transfer Protocol). Existen dos diferentes métodos para realizar
una conexión SSL/TLS a través de FTP. La primera y más antigua es a
través del FTPS Implícito (Implicit FTPS), que consiste en cifrar la
sesión completa a través de los puertos 990 (FTPS) y 998 (FTPS
Data), sin permitir negociación con el cliente, el cual deberá conectarse
directamente al servidor FTPS con el inicio de sesión SSL/TLS.
El segundo método, que es el recomendado por el RFC 4217 y
el utilizado por Vsftpd, es FTPS Explícito (Explicit FTPS o FTPES),
donde el cliente realiza la conexión normal a través del puerto 21 y
permitiendo negociar opcionalmente una conexión TLS.
4.1.3. Vsftpd.
Vsftpd (Very Secure FTP Daemon) es un equipamiento lógico
utilizado para implementar servidores de archivos a través del protocolo
FTP. Se distingue principalmente porque sus valores predeterminados
son muy seguros y por su sencillez en la configuración, comparado con
otras alternativas como ProFTPD y Wu-ftpd. Actualmente se presume
que vsftpd es quizá el servidor
FTP más seguro del mundo.
4.2.EQUIPAMIENTO LÓGICO PARA CONFIGURAR vsftpd4.2.1. Instalación a través de yum.
Página 265

GRUPO LINUX REDES II
Si utiliza CentOS 4 o White Box Enterprise Linux 4, solo se
necesita realizar lo siguiente para instalar o actualizar el
equipamiento lógico necesario:
yum -y install vsftpd
4.3.FICHEROS DE CONFIGURACIÓN
/etc/vsftpd.user_list Lista que definirá usuarios a enjaular o no a enjaular,
dependiendo de la configuración.
/etc/vsftpd/vsftpd.conf Fichero de configuración.
4.4.PROCEDIMIENTOS
4.4.1. SELinux y el servicio vsftpd.SELinux controla varias funciones de el servicio vsftpd
incrementando el nivel de seguridad de éste.
Para permitir que los usuarios anónimos puedan realizar
procesos de escritura sobre el sistema de ficheros, utilice el siguiente
mandato:
setsebool -P allow_ftpd_anon_write 1
Para hacer que SELinux permita al servicio vsftpd acceder a los
usuarios locales a sus directorios de inicio, utilice el siguiente mandato:
setsebool -P allow_ftpd_full_access 1
Para permitir que el servicio vsftpd pueda hacer uso de
sistemas de ficheros remotos a través de CIFS (Samba) o NFS, y que
serán utilizados para compartir a través del servicio, utilice cualquiera
de los siguientes mandatos:
setsebool -P allow_ftpd_use_cifs 1setsebool -P allow_ftpd_use_nfs 1
Página 266

GRUPO LINUX REDES II
Para que SELinux permita al servicio vsftpd funcionar
normalmente, haciendo que todo lo anteriormente descrito en esta
sección pierda sentido, utilice el siguiente mandato:
setsebool -P ftpd_disable_trans 1
4.4.2. Fichero /etc/vsftpd/vsftpd.conf.Utilice un editor de texto y modifique el fichero
/etc/vsftpd/vsftpd.conf. A continuación analizaremos los parámetros a
modificar o añadir, según se requiera para necesidades particulares.
4.4.3. Parámetro anonymous_enable.Se utiliza para definir si se permitirán los accesos anónimos al
servidor. Establezca como valor YES o NO de acuerdo a lo que se
requiera.
anonymous_enable=YES
4.4.4. Parámetro local_enable.Es particularmente interesante si se combina con la función 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
4.4.5. Parámetro 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.
write_enable=YES
4.4.6. Parámetro anon_upload_enableEspecífica si los usuarios anónimos tendrán permitido subir
contenido al servidor. Por lo general no es una función deseada, por lo
que se acostubra desactivar ésta.
anon_upload_enable=NO
Página 267

GRUPO LINUX REDES II
4.4.7. Parámetro anon_mkdir_write_enableEspecífica si los usuarios anónimos tendrán permitido crear
directorios en el servidor. Al igual que lo anterior, por lo general no es
una función deseada, por lo que se acostubra desactivar ésta.
anon_mkdir_write_enable=NO
4.4.8. Parámetro ftpd_banner.Este parámetro sirve para establecer el banderín 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.
4.4.9. Estableciendo jaulas para los usuarios: parámetros chroot_local_user y chroot_list_file.
De modo predeterminado los usuarios del sistema que se
autentiquen tendrán 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 fácilmente con el
parámetro chroot_local_user que habilitará la función de chroot() y
los parámetros chroot_list_enable y chroot_list_file para establecer el
fichero con la lista de usuarios que quedarán excluidos de la función
chroot().chroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/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 este contenga. No olvide crear el fichero /etc/vsftpd/vsftpd.chroot_list, ya que de otro modo no arrancará el servicio vsftpd.
touch /etc/vsftpd/vsftpd.chroot_list
Página 268

GRUPO LINUX REDES II
4.4.10. Control del ancho de banda.
a) Parámetro anon_max_rate.Se utiliza para limitar la tasa de transferencia en bytes por
segundo para los usuarios anónimos, algo sumamente útil en
servidores FTP de acceso público. En el siguiente ejemplo se limita
la tasa de transferencia a 5 Kb por segundo para los usuarios
anónimos:
anon_max_rate=5120
b) Parámetro 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 5 Kb por segundo para los usuarios locales:
local_max_rate=5120
c) Parámetro max_clients.Establece el número máximo de clientes que podrán acceder
simultáneamente hacia el servidor FTP. En el siguiente ejemplo se
limitará el acceso a 5 clientes simultáneos.
max_clients=5
d) Parámetro max_per_ip.Establece el número máximo de conexiones que se pueden
realizar desde una misma dirección IP.
Tome en cuenta que algunas redes acceden a través de un
servidor intermediario (Proxy) o puerta de enlace y debido a esto
podrían quedar bloqueados innecesariamente algunos accesos. en
el siguiente ejemplo se limita el número de conexiones por IP
simultáneas a 5.
max_per_ip=5
4.4.11. Soporte SSL/TLS para VFSTPD.
Página 269

GRUPO LINUX REDES II
VSFTPD puede ser configurado fácilmente para utilizar los
protocolos SSL (Secure Sockets Layer o Nivel de Zócalo Seguro) y
TLS (Transport Layer Security, o Seguridad para Nivel de
Transporte) a través de un certificado RSA.
Acceda al sistema como el usuario root.Se debe crear el directorio donde se almacenarán los
certificados para todos los sitios SSL. El directorio, por motivos de seguridad, debe ser solamente accesible para el usuario root.
mkdir -m 0700 /etc/ssl
A fin de mantener cierta organización, y un directorio dedicado
para cada sitio virtual SSL, es conveniente crear un directorio
específico para almacenar los certificados de cada sitio virtual SSL.
Igualmente, por motivos de seguridad, debe ser solamente
accesible para el usuario root.mkdir -m 0700 /etc/ssl/mi-dominio.org
Acceder al directorio que se acaba de crear.
cd /etc/ssl/mi-dominio.org
El certificado se puede generar fácilmente utilizando el
siguiente mandato, donde se generará un certificado con estructura
X.509, algoritmo de ciframiento RSA de 1024 kb, sin Triple DES, la
cual permita iniciar normalmente, sin interacción alguna, al servicio
>vsftpd, con una validez por 730 días (dos años) en el fichero
/etc/ssl/mi-dominio.org/vsftpd.pem.
openssl req -x509 -nodes -days 730 -newkey rsa:1024 \
-keyout /etc/ssl/mi-dominio.org/vsftpd.pem \
-out /etc/ssl/mi-dominio.org/vsftpd.pem
Lo anterior solicitará se ingresen varios datos:
• Código de dos letras para el país.
• Estado o provincia.
• Ciudad.
Página 270

GRUPO LINUX REDES II
• Nombre de la empresa o razón social.
• Unidad o sección.
• Nombre del anfitrión.
• Dirección de correo.
• La salida devuelta sería similar a la siguiente:
La salida devuelta sería similar a la siguiente:
Finalmente se añaden las siguientes líneas al final del fichero
/etc/vsftpd/vsftpd.conf:ssl_enable=YESallow_anon_ssl=NOforce_local_data_ssl=NOforce_local_logins_ssl=NOssl_tlsv1=YESssl_sslv2=NOssl_sslv3=NOrsa_cert_file=/etc/ssl/mi-dominio.org/vsftpd.pem
4.4.12. Iniciar, detener y reiniciar el servicio vsftpd.A diferencia de otros servicios FTP como Wu-ftpd, el servicio
vsftpd no requiere configurarse para trabajar sobre demanda, aunque
tiene dicha capacidad. Por lo tanto no depende de servicio xinetd. La
versión incluida en distribuciones como CentOS 5, Red Hat™
Enterprise Linux 5 y White Box Enterprise Linux 5 puede iniciar,
detenerse o reiniciar a través de un guión similar a los del resto del
sistema.
Para iniciar por primera vez el servicio, utilice:
Página 271

GRUPO LINUX REDES II
service vsftpd start
Para hacer que los cambios hechos a la configuración surtan
efecto, utilice:
service vsftpd restart
Para detener el servicio, utilice:
service vsftpd stop
4.4.13. Agregar el servicio al arranque del sistema.Para hacer que el servicio de vsftpd esté activo con el siguiente
inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo
siguiente:
chkconfig vsftpd on
4.5.MODIFICACIONES NECESARIAS EN EL MURO CORTAFUEGOS.Si se utiliza un cortafuegos con políticas estrictas, como por ejemplo
Shorewall, es necesario abrir los puerto 20 y 21 por TCP (FTP-DATA y
FTP, respectivamente).
Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw tcp 20,21
#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
4.6.EJERCICIO VSFTPDAcceder como root al servidor correspondiente al equipo de trabajo
y detener el servicio vsftpd.
service vsftpd stop
Se eliminará el paquete vsftpd del sistema y se eliminará todo resto
de la configuración anterior para poder instalarlo nuevamente y poder
comenzar con una nueva configuración.Página 272

GRUPO LINUX REDES II
yum -y remove vsftpdrm -fr /etc/vsftpd
Se procede a instalar de nuevo el paquete vsftpd.
yum -y install vsftpd
Se edita el fichero de configuración utilizando vim. Este fichero tiene
contenido, por lo que si aparece en blanco o como fichero nuevo, se debe
salir del editor y verificar que esté correcta la ruta definida en el intérprete
de mandatos.
vim /etc/vsftpd/vsftpd.conf
Configurar vsftpd teniendo en cuenta los siguientes parámetros:
anonymous_enable=YES
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
ftpd_banner=Bienvenido al servidor FTP de nuestra institución.
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
anon_max_rate=25600
local_max_rate=51200
max_clients=4
max_per_ip=4
Es importante crear el fichero definido en el parámetro
chroot_list_file. Si este faltase, el servicio de FTP no funcionará
correctamente. Debe crearse con el mandato touch del siguiente modo:
touch /etc/vsftpd/vsftpd.chroot_list
Iniciar el servicio recién configurado.
service vsftpd start
Página 273

GRUPO LINUX REDES II
Añadir el servicio vsftpd al arranque del sistema.
chkconfig vsftpd on
Crear la cuenta de usuario pruebasftp, asignando /sbin/nologin como intérprete de mandatos,asignando /var/www/pruebasftp como
directorio de inicio, asignar apache como el grupo predeterminado para el
usuario, y el criptograma $1$Fvs3oU5c$4ff89riowPb1EmJ7O.QtD0 (que
corresponde a 123qwe) como clave de acceso.
Nota: al asignar la clave de acceso con este método, los signos $ siempre
se escriben como secuencia de escape utilizando \, ya que de otra forma el
sistema los interpretaría como variables de entorno.
useradd -s /sbin/nologin -m -d /var/www/pruebasftp -g apache --password "\$1\$Fvs3oU5c\$4ff89riowPb1EmJ7O.QtD0" pruebasftp
NOTA: El mandato anterior es una sola línea en el intérprete
de mandatos.
Se podrá apreciar la actividad de del servidor FTP recién
configurado consultando el contenido del fichero /var/log/xferlog. Utilice el
mandato tail con la opción -f para supervisar lo que ocurrirá al realizar una
transferencia a través del servidor FTP.
tail -f /var/log/xferlog
Accediendo desde otro equipo hacia 127.0.0.1 con el usuario
pruebasftp y la clave de acceso 123qwe, realizar una transferencia
accediendo con el mandato ftp y subiendo cualquier fichero con el mandato
mput del intérprete ftp. ftp 127.0.0.1Connected to 127.0.0.1 (127.0.0.1).
220 (vsFTPd 2.0.5)
Name (127.0.0.1:root): pruebasftp331 Please specify the password.
Password:123qwe230 Login successful.
Página 274

GRUPO LINUX REDES II
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd257 "/"
ftp> put manuales-HTML.tar.bz2local: manuales-HTML.tar.bz2 remote: manuales-HTML.tar.bz2
227 Entering Passive Mode (127,0,0,1,87,94)
150 Ok to send data.
226 File receive OK.
37347 bytes sent in 0.000198 secs (1.8e+05 Kbytes/sec)
ftp> ls227 Entering Passive Mode (127,0,0,1,78,114)
150 Here comes the directory listing.
-rw-r--r-- 1 553 48 37347 May 30 23:26 manuales-HTML.tar.bz2
226 Directory send OK.
ftp> bye221 Goodbye.
4.7.CONFIGURACIÓN DE pure-ftpd
Pure-ftpd es un equipamiento lógico para servidor FTP
originalmente creado por Arnt Gulbrandsen. A pesar de su escasa
popularidad, se distingue de otros proyectos porque ha tenido como
objetivos el mantener el servicio con poco consumo de recursos, no utiliza
llamadas de mandatos externos (origen de la mayoría de los problemas de
seguridad en este tipo de equipamiento lógico), cumple con los estándares
para el protocolo FTP, es fácil de instalar y configurar, es amistoso con el
usuario y muy seguro.
4.7.1. Equipamiento lógico necesario.
Instalación a través de yum.
Pure-ftpd no está incluido en la instalación estándar de CentOS 5, Red Hat™ Enterprise Linux 5 ni White Box Enterprise Linux 5.
Página 275

GRUPO LINUX REDES II
Está disponible utilizando el siguiente depósito Yum, mantenido por
Alcance Libre.
[alcance-libre]
name=Alcance Libre para Enterprise Linux 5baseurl=http://www.alcancelibre.org/al/el/5/
gpgkey=http://www.alcancelibre.org/al/AL-RPM-KEY
Una vez configurado lo anterior, solo se necesita realizar lo
siguiente para instalar o actualizar el equipamiento lógico necesario:
yum -y install pure-ftpd
4.7.2. Procedimientos.4.7.2.1. Fichero de configuración /etc/pure-ftpd/pure-ftpd.conf
Los valores predeterminados del fichero /etc/pure-ftpd/pure-ftpd.conf hacen que el servicio funcione sin necesidad de cambio
alguno y además lo haga de una forma segura. Sin embargo existen
varios parámetros que vale la pena conocer.
a) Parámetro MaxClientsNumber.Establece el número máximo de usuarios conectados de
forma simultánea. El valor predeterminado es 50. Puede modificarse
de acuerdo a un propósito en particular y disponibilidad de ancho de
banda. Ejemplo: limita el número de usuarios simultáneos a 25.
MaxClientsNumber 25
b) Parámetro MaxClientsPerIP.Establece el número máximo de conexiones desde una
misma dirección IP. Considerando que muchos usuarios pudieran
acceder desde un servidor intermediario (proxy), lo cual significa que
lo harían con una misma dirección IP, el valor predeterminado de 8
puede ser modificado de acuerdo al criterio del administrador.
Ejemplo: limita el número de conexiones desde una misma dirección
IP a 5.
Página 276

GRUPO LINUX REDES II
MaxClientsPerIP 5
c) Parámetro DisplayDotFiles.Establece si se permitirá mostrar los ficheros cuyo nombre
inicia con un punto (ficheros ocultos) cuando el usuario envíe un
mandato de listado con la opción -a. En la mayoría de los casos, no
es conveniente permitir mostrar los ficheros ocultos. Ejemplo: se
define que no se permita mostrar ficheros ocultos.
DisplayDotFiles no
d) Parámetro NoAnonymous.Define si se permitirán o no los accesos anónimos. En la
mayoría de los casos, como un servidor FTP público, es una función
deseada. Si el administrador lo considera pertinente, puede
desactivarse cambiando el valor predeterminado no por yes.
NoAnonymous yes
e) Parámetro AnonymousCanCreateDirs.Define si se permite a los usuarios anónimos crear directorios
cuando está permitido que éstos puedan subir ficheros al servidor
FTP. El valor predeterminado es no.
f) Parámetro MaxLoad.Define que los usuarios anónimos no podrán descargar desde
el servidor FTP cuando éste tenga una carga igual o superior al valor
establecido. El valor predeterminado es 4.
g) Parámetro AntiWarez.Define que no sea posible descargar ficheros cuyo propietario
sea el usuario ftp, como una medida de seguridad que permitirá al
administrador supervisar lo que se ha subido al servidor FTP antes
de permitir su distribución. El valor predeterminado es no, y se
recomienda dejarlo de ese modo a fin de contar con una buena
política de seguridad.
Página 277

GRUPO LINUX REDES II
h) Parámetro AnonymousBandwidth.Define la tasa de Kb por segundo de descarga permitida para
los usuarios anónimos. En el ejemplo, se establece que los usuarios
anónimos tendrán una tasa de hasta 12 Kb por segundo para
descargar ficheros desde el servidor FTP.
AnonymousBandwidth 12
i) Parámetro UserBandwidth.Define la tasa de Kb por segundo de descarga permitida para
todos los usuarios, incluyendo los anónimos. Su utilización junto con
el parámetro AnonymousBandwidth hace que este último no tenga
sentido. Se utiliza o bien UserBandwidth o bien
AnonymousBandwidth. No puede combinarse su uso. En el
ejemplo, se establece que todos los usuarios, incluyendo los
anónimos, tendrán una tasa de hasta 12 Kb por segundo para
descargar ficheros desde el servidor FTP.
UserBandwidth 12
j) Parámetro umask.Define la máscara predeterminada para los nuevos ficheros y
nuevos directorios en el servidor FTP. El valor predeterminado es
133:022. Si se desea que los ficheros subidos por un usuario solo
sean leídos por ese mismo usuario, se puede utilizar 177:077. Si se
desea que los ficheros solo sean leíbles y ejecutables para su
propietario, se puede utilizar 077:077. Si se desea que los ficheros
subidos sean ejecutables, se puede utilizar 122:022. Si se desea
que los ficheros sean leíbles para otros usuarios, pero no puedan ser
reescritos por éstos, se pude utilizar 022:022. El usuario, claro,
puede cambiar desde el cliente FTP la máscara utilizada en sus
ficheros y directorios a través de SITE CHMOD. En el siguiente
ejemplo, se establecen los valores predeterminados.
umask 133:022
k) Parámetro ProhibitDotFilesWrite.
Página 278

GRUPO LINUX REDES II
Define si se permitirá sobreescribir ficheros que inicien con
punto. Su valor predeterminado es no. Si se trata de un servidor FTP
que permite el acceso hacia el directorio raíz de un sitio virtual de un
servidor HTTP, es conveniente permitir sobreescribir los ficheros
.htaccess, .htpasswd y otros contenidos, por lo que no conviene
activar este parámetro. De ser otro tipo de servidor, puede activarse
y añadir seguridad.
l) Parámetro AnonymousCantUpload.Define si se permitirá a los usuarios anónimos subir contenido
hacia el servidor FTP. De modo predefinido, este parámetro está
activo para impedir lo anterior.
AnonymousCantUpload yes
m) Parámetro CreateHomeDir.Especifica si se debe crear automática el directorio de inicio
de un usuario en caso de no existir éste. En el siguiente ejemplo, se
habilita esta función.
CreateHomeDir yes
n) Parámetro Quota.Define la cuota de número máximo de ficheros y espacio
utilizado por el usuario. Muy conveniente y útil si se tiene un servidor
FTP que permite subir contenido para un servidor HTTP compartido
por varios sitios de red virtuales. En el ejemplo se establece una
cuota máxima de 1500 ficheros y 50 MB de espacio a utilizar para
los usuarios.
Quota 1500:50
o) Parámetro MaxDiskUsage.Define el espacio máximo permitido en la partición que
contiene /var/ftp para el servicio FTP donde se está permitiendo que
Página 279

GRUPO LINUX REDES II
los usuarios anónimos suban contenido. El valor predeterminado es
99. Conviene definir un límite más bajo si el servicio FTP no es
prioritario en el sistema. En el ejemplo, se establece un uso máximo
del 80% de la partición donde se localiza /var/ftp.
MaxDiskUsage 80
p) Parámetro CustomerProof.Este parámetro fue diseñado para lidiar con los usuarios
ignorantes a fin de impedir que realicen operaciones que bloqueen el
acceso hacia sus ficheros y/o directorios de forma accidental. Es
decir, impiden que se realicen operaciones como chmod 0 public_html. Si se va a utilizar el servicio como parte de un servicio
de hospedaje de sitios de red a través de HTTP, conviene que este
parámetro esté activo.
CustomerProof yes
4.7.3. Agregar el servicio al arranque del sistema.Para hacer que el servicio de pure-ftpd esté activo con el
siguiente inicio del sistema, en todos los niveles de ejecución (2, 3, 4, y
5) se utiliza lo siguiente:
chkconfig pure-ftpd on
4.7.4. Iniciar, detener y reiniciar servicio.Para iniciar por primera vez el servicio pure-ftpd, utilice:
service pure-ftpd start
Para hacer que los cambios hechos tras modificar la
configuración surtan efecto, utilice:
service pure-ftpd restart
Para detener el servicio, utilice:
service pure-ftpd stop
Página 280

GRUPO LINUX REDES II
4.7.5. Modificaciones necesarias en el muro cortafuegos.Si se utiliza un cortafuegos con políticas estrictas, como por
ejemplo Shorewall, es necesario abrir los puerto 20 y 21 por TCP
(FTP-DATA y FTP, respectivamente).
Las reglas para el fichero /etc/shorewall/rules de Shorewall correspondería a algo similar a lo siguiente:
#ACTION SOURCE DEST PROTO DEST SOURCE
# PORT PORT(S)1
ACCEPT net fw tcp 20,21#LAST LINE -- ADD YOUR ENTRIES BEFORE THIS ONE -- DO NOT REMOVE
5.SERVIDOR PROXY
El término en ingles «Proxy» tiene un significado muy general y al mismo
tiempo ambiguo, aunque invariablemente se considera un sinónimo del concepto
de «Intermediario».
Página 281

GRUPO LINUX REDES II
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 conexión, fichero u otro recurso disponible en un
servidor distinto.
- Servidor Intermediario (Proxy) proporciona el recurso ya sea conectándose
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
propósitos.
Los Servidores Intermediarios (Proxies) generalmente se hacen trabajar
simultáneamente 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 Aplicación, controlando diversos servicios, como es el caso de TCP Wrapper.
Dependiendo del contexto, el muro cortafuegos también se conoce como BPD o
Border Protection Device o simplemente filtro de paquetes.
Una aplicación común 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 páginas y ficheros
Página 282

GRUPO LINUX REDES II
disponibles a través de la Red en servidores HTTP remotos, permitiendo a los
clientes de la red local acceder hacia éstos de forma más rápida y confiable.
Cuando se recibe una petición para un recurso de Red especificado en un
URL 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 el servidor
remoto, entregándolo al cliente que lo solicitó y guardando una copia en el caché.
El contenido en el caché es eliminado luego a través de un algoritmo de
expiración de acuerdo a la antigüedad, tamaño e historial de respuestas a
solicitudes (hits) (ejemplos: LRU, LFUDA y GDSF).
Los Servidores Intermediarios para contenido de Red (Web Proxies) también
pueden actuar como filtros del contenido servido, aplicando políticas de censura
de acuerdo a criterios arbitrarios.
SQUID
Squid es un Servidor Intermediario (Proxy), un popular programa de
software libre que implementa un servidor proxy y un demonio para caché de
páginas web, publicado bajo licencia GPL. Tiene una amplia variedad de
utilidades, desde acelerar un servidor web, guardando en caché peticiones
repetidas a DNS y otras búsquedas para un grupo de gente que comparte
recursos de la red, hasta caché de web, además de añadir seguridad filtrando el
tráfico. Es ampliamente utilizado entre los sistemas operativos como GNU/Linux y
derivados de Unix®. Es muy confiable, robusto y versátil.
Página 283

GRUPO LINUX REDES II
Squid consiste de un programa principal como servidor, un programa para
búsqueda en servidores DNS, programas opcionales para reescribir solicitudes y
realizar autenticación y algunas herramientas para administración y herramientas
para clientes. Al iniciar Squid da origen a un número configurable (5, de modo
predefinido a través del parámetro dns_children) de procesos de búsqueda en
servidores DNS, cada uno de los cuales realiza una búsqueda única en servidores
DNS, reduciendo la cantidad de tiempo de espera para las búsquedas en
servidores DNS.
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
5.1.ALGORITMOS DE CACHÉ UTILIZADOS POR SQUID.
A través de un parámetro (cache_replacement_policy) Squid incluye
soporte para los siguientes algoritmos para el caché:
Página 284

GRUPO LINUX REDES II
• LRU Acrónimo 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 más
recientemente solicitados. Ésta política es la utilizada por Squid de modo predefinido.
• LFUDA
Acrónimo de Least Frequently Used with Dynamic Aging, que se
traduce como Menos Frecuentemente Utilizado con Envejecimiento Dinámico. En este algoritmo los objetos más
solicitados permanecen en el caché sin importar su tamaño
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 pequeños que se soliciten con menor frecuencia.
• GDSF Acrónimo de GreedyDual Size Frequency, que se traduce como
Frecuencia de tamaño 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 pequeños
más 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.
5.2.EQUIPAMIENTO LÓGICO NECESARIO.
Para poder llevar al cabo los procedimientos descritos en este y otros
documentos relacionados, se necesitará tener instalado al menos lo
siguiente:
Página 285

GRUPO LINUX REDES II
• Al menos squid-2.5.STABLE6
• httpd-2.0.x (Apache), como auxiliar de caché con aceleración.
• Todos los parches de seguridad disponibles para la versión del
sistema operativo que esté utilizando. No es conveniente utilizar un
sistema con posibles vulnerabilidades como Servidor Intermediario.
Debe tomarse en consideración que, de ser posible, se debe utilizar
siempre las versiones estables más recientes de todo equipamiento lógico
que vaya a ser instalado para realizar los procedimientos descritos en este
manual, a fin de contar con los parches de seguridad necesarios.
Ninguna versión 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 instalación del sistema operativo, sin
embargo viene incluido en casi todas las distribuciones actuales. El
procedimiento de instalación es exactamente el mismo que con cualquier
otro equipamiento lógico.
a) Instalación de Squid a través de yum.
Para el sistema operativo 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
b) Instalación a través 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
Página 286

GRUPO LINUX REDES II
c) Otros componentes necesarios.
El mandato iptables se utilizará para generar las reglas necesarias
para el guión de Enmascaramiento de IP. Se instala de modo predefinido
en todas las distribuciones actuales que utilicen núcleo (kernel) versiones
2.4 y 2.6.
Es importante tener actualizado el núcleo del sistema operativo por
diversas cuestiones de seguridad. No es recomendable utilizar versiones
del kernel anteriores a la 2.4.21.
Para el sistema operativo CentOS o White Box Enterprise Linux 3 o
versiones posteriores, utilice lo siguiente para actualizar el núcleo del
sistema operativo e iptables, si acaso fuera necesario:
yum -y update kernel iptables
5.3. SELinux Y EL SERVICIO SQUID.
A fin de que SELinux permita al servicio squid que los clientes se
conecten desde cualquier direccion IP, ejecutar lo siguiente.
setsebool -P squid_connect_any 1
Para que SELinux permita al servicio squid funcionar normalmente,
haciendo que todo lo anteriormente descrito pierda sentido, utilice el
siguiente mandato:
setsebool -P squid_disable_trans 1
5.4.CONFIGURACIÓN BÁSICA.
Squid utiliza el fichero de configuración localizado en
/etc/squid/squid.conf, y podrá trabajar sobre este utilizando su editor de texto
simple preferido. Existen un gran número de parámetros, de los cuales
recomendamos configurar los siguientes:
Página 287

GRUPO LINUX REDES II
• 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
a) Parámetro http_port
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 través 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 8080 y se valdrá del re-
direccionamiento de peticiones de modo tal que no habrá necesidad
alguna de modificar la configuración 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, también 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.
Página 288

GRUPO LINUX REDES II
Hoy en día puede no ser del todo práctico el utilizar un Servidor Intermediario (Proxy) Transparente, a menos que se trate de un
servicio de Café Internet u oficina pequeña, 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 más 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 diálogo de nombre de usuario y clave de
acceso.
Regularmente algunos programas utilizados comúnmente 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
también. Siendo así localice la sección de definición de http_port, y
especifique:
# Default: http_port 3128http_port 3128http_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:
# Default: http_port 3128http_port 192.168.1.254:3128http_port 192.168.1.254:8080
En el caso de Squid 2.6 y versiones posteriores (CentOS 5, Red
Hat Enterprise Linux 5 y White Box Enterprise Linux 5), el parámetro
Página 289

GRUPO LINUX REDES II
http_port se utiliza también para especificar si se utiliza un proxy
transparente, especificando el parámetro transparente, de la siguiente
forma:
# Default: http_port 3128http_port 192.168.1.254:8080 transparent
b) Parámetro cache_mem.
El parámetro cache_mem establece la cantidad ideal de memoria
para lo siguiente:
• Objetos en tránsito.
• Objetos frecuentemente utilizados (Hot).
• Objetos negativamente almacenados en el caché.
Los datos de estos objetos se almacenan en bloques de 4 Kb. El
parámetro cache_mem especifica un límite máximo en el tamaño total
de bloques acomodados, donde los objetos en tránsito tienen mayor
prioridad. Sin embargo los objetos Hot y aquellos negativamente
almacenados en el caché podrán utilizar la memoria no utilizada hasta
que esta sea requerida. De ser necesario, si un objeto en tránsito es
mayor a la cantidad de memoria especificada, Squid excederá lo que
sea necesario para satisfacer la petición.
De modo predefinido se establecen 8 MB. Puede especificarse
una cantidad mayor si así se considera necesario, dependiendo esto de
los hábitos 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 parámetro:
cache_mem 16 MB
Página 290

GRUPO LINUX REDES II
c) Parámetro cache_dir.
Este parámetro se utiliza para establecer que tamaño se desea
que tenga el caché en el disco duro para Squid. Para entender esto un
poco mejor, responda a esta pregunta: ¿Cuánto 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 línea:
cache_dir ufs /var/spool/squid 100 16 256
Se puede incrementar el tamaño del caché hasta donde lo desee
el administrador. Mientras más grande sea el caché, más objetos se
almacenarán en éste y por lo tanto se utilizará menos el ancho de
banda. La siguiente línea establece un caché de 700 MB:
cache_dir ufs /var/spool/squid 700 16 256
Los números 16 y 256 significan que el directorio del caché
contendrá 16 directorios subordinados con 256 niveles cada uno. No es necesario modificar estos números.
Es muy importante considerar que si se especifica un determinado
tamaño de caché y éste excede al espacio real disponible en el disco
duro, Squid se bloqueará inevitablemente.
d) Parámetro ftp_user.
Al acceder a un servidor FTP de manera anónima, de modo predefinido
Squid enviará como clave de acceso Squid@. Si se desea que el acceso
anónimo a los servidores FTP sea más informativo, o bien si se desea acceder a
servidores FTP que validan la autenticidad de la dirección de correo
especificada como clave de acceso, puede especificarse la dirección de correo
electrónico que uno considere pertinente.
Página 291

GRUPO LINUX REDES II
ftp_user [email protected]
e) Controles de acceso.
Es necesario establecer Listas de Control de Acceso que
definan una red o bien ciertas máquinas 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 cómo 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
máscara de la sub-red. Por ejemplo, si se tiene una red donde las
máquinas tienen direcciones IP 192.168.1.n con máscara de sub-red
255.255.255.0, podemos utilizar lo siguiente:
acl miredlocal src 192.168.1.0/255.255.255.0
También 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 contendría algo como siguiente:
192.168.1.1
Página 292

GRUPO LINUX REDES II
192.168.1.2192.168.1.3
192.168.1.15192.168.1.16192.168.1.20192.168.1.40
Lo anterior estaría definiendo que la Lista de Control de Acceso denominada permitidos estaría 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 sección 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 básica 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
También pueden definirse reglas valiéndose de la expresión !, 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
expresión a una de estas. La siguiente establece que se permite el
Página 293

GRUPO LINUX REDES II
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 configuración.
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 línea en la sección de Listas de Control de Acceso:
acl todalared src 192.168.1.0/255.255.255.0
Habiendo hecho lo anterior, la sección de listas de control de acceso
debe quedar más o menos del siguiente modo:
Listas de Control de Acceso: definición de una red local completa
acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
Página 294

GRUPO LINUX REDES II
acl localhost src 127.0.0.1/255.255.255.255
acl todalared src 192.168.1.0/255.255.255.0
A continuación 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
debería quedar más o menos de este modo:
Reglas de control de acceso: Acceso a una Lista de Control de Acceso.
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 máquina 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
incluirán solo aquellas direcciones IP que desea confirmen la Lista
de Control de acceso. Ejemplo:
192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.15
Página 295

GRUPO LINUX REDES II
192.168.1.16
192.168.1.20
192.168.1.40
Denominaremos a esta lista de control de acceso como redlocal:
acl redlocal src "/etc/squid/listas/redlocal"
Habiendo hecho lo anterior, la sección de listas de control de acceso
debe quedar más o menos del siguiente modo:
Listas de Control de Acceso: definición de una red local completa
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 continuación 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
debería quedar más o menos de este modo:
Reglas de control de acceso: Acceso a una Lista de Control de Acceso.
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
Página 296

GRUPO LINUX REDES II
/etc/squid/listas/redlocal. Esto significa que cualquier máquina no
incluida en /etc/squid/listas/redlocal no tendrá acceso a Squid.
f) Parámetro chache_mgr.
De modo predefinido, si algo ocurre con el caché, como por
ejemplo que muera el proceso, se enviará un mensaje de aviso a la
cuenta webmaster del servidor. Puede especificarse una distinta si
acaso se considera conveniente.
cache_mgr [email protected]
g) Parámetro cache_peer.
El parámetro cache_peer se utiliza para especificar otros
Servidores Intermediarios (Proxies) con caché en una jerarquía como
padres o como hermanos. Es decir, definir si hay un Servidor Intermediario (Proxy) adelante o en paralelo. La sintaxis básica es la
siguiente:
cache_peer servidor tipo http_port icp_port opciones
Ejemplo: Si su caché va a estar trabajando detrás 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 están presentes en el caché del Servidor Intermediario (Proxy) padre, utilice la siguiente línea:
cache_peer 192.168.1.1 parent 8080 3130 proxy-only
Página 297

GRUPO LINUX REDES II
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 consultarán estos caches localizados en la red local
antes de acceder hacia Internet y consumir ancho de banda para
acceder hacia un objeto que ya podría 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 están presentes en los
caches hermanos, utilice las siguientes líneas:
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 podrían
tener caches padres y hermanos trabajando en conjunto en una red
local. Ejemplo:
cache_peer 10.0.0.1 parent 8080 3130 proxy-only
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
5.5.CACHÉ CON ACELERACIÓN.
Cuando un usuario hace petición hacia un objeto en Internet, este es
almacenado en el caché de Squid. Si otro usuario hace petición hacia el
Página 298

GRUPO LINUX REDES II
mismo objeto, y este no ha sufrido modificación 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 función permite navegar rápidamente cuando los objetos ya
están en el caché de Squid y además optimiza enormemente la utilización
del ancho de banda.
La configuración de Squid como Servidor Intermediario (Proxy)
Transparente solo requiere complementarse utilizando una regla de
iptables que se encargará de re-direccionar peticiones haciéndolas pasar
por el puerto 8080.
5.5.1. Servidor Intermedio (Proxy) en modo convencional
En la sección HTTPD-ACCELERATOR OPTIONS deben
habilitarse los siguientes parámetros:
httpd_accel_host virtual
httpd_accel_port 0
httpd_accel_with_proxy on
5.5.2. Servidor Intermedio (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
Página 299

GRUPO LINUX REDES II
Por defecto el parámetro httpd_accel_with_proxy viene con el
valor off, es importante no olvidar cambiar este valor por on.
5.6.AÑADIENDO EL SERVICIO AL ARRANQUE DEL SISTEMA.
Una vez terminada la configuración, ejecute el siguiente mandato
para iniciar por primera vez Squid:
service squid start
Si necesita reiniciar para probar cambios hechos en la
configuración, utilice lo siguiente:
service squid restart
Si desea que Squid inicie de manera automática la próxima vez
que inicie el sistema, utilice lo siguiente:
chkconfig squid on
5.7.DEPURACIÓN DE ERRORES
Cualquier error al inicio de Squid solo significa que hubo errores
de sintaxis, errores de dedo o bien se están citando incorrectamente las
rutas hacia los ficheros de las Listas de Control de Acceso.
Puede realizar diagnóstico de problemas indicándole a Squid que
vuelva a leer configuración, lo cual devolverá los errores que existan en
el fichero /etc/squid/squid.conf.
service squid reload
Página 300

GRUPO LINUX REDES II
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
5.8.AJUSTES PARA EL MURO CORTA-FUEGOS.
Si se tiene poca experiencia con guiones de cortafuegos a través de
iptables, sugerimos utilizar Firestarter. éste permite configurar fácilmente
tanto el enmascaramiento de IP como el muro corta-fuegos. Si se tiene un
poco más de experiencia, recomendamos utilizar Shorewall para el mismo
fin puesto que se trata de una herramienta más robusta y completa.
5.8.1. Re-direccionamiento de peticiones a través de iptables y Firestarter.
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
través 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 tendrán
que ser filtrados a través del NAT.
El re-direccionamiento lo hacemos a través de iptables.
Considerando para este ejemplo que la red local se accede a través
de una interfaz eth0, el siguiente esquema ejemplifica un re-
direccionamiento:
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 8080
Página 301

GRUPO LINUX REDES II
Lo anterior, que requiere un guión de cortafuegos funcional en un sistema con dos interfaces de red, hace que cualquier
petición hacia el puerto 80 (servicio HTTP) hecha desde la red local
hacia el exterior, se re-direccionará hacia el puerto 8080 del servidor.
Utilizando Firestarter, la regla anteriormente descrita se añade
en el fichero /etc/firestarter/user-post.
5.8.2. Re-direccionamiento de peticiones a través de la opción REDIRECT en Shorewall.
La acción REDIRECT en Shorewall permite redirigir peticiones
hacia protocolo HTTP para hacerlas pasar a través de Squid. En el
siguiente ejemplo las peticiones hechas desde la zona que
corresponde a la red local serán redirigidas hacia el puerto 8080 del
cortafuegos, en donde está configurado Squid configurado como
Servidores Intermediario (Proxy) transparente.
#ACTION SOURCE DEST PROTO DESTREDIRECT loc 8080 tcp 80
5.9. CONFIGURAR SQUID: RESTRICCIÓN DE ACCESO A SITIOS DE RED
Denegar el acceso a ciertos Sitios de Red permite hacer un uso más
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 de Red que contengan patrones en común.
Para comenzar se necesita tener instalado al menos squid-
2.5STABLE1.
5.9.1. Patrones Comunes
Lo primero será generar una lista la cual contendrá direcciones
de Red y palabras usualmente utilizadas en nombres de ciertos
dominios. Ejemplos:
Página 302

GRUPO LINUX REDES II
www.sitioporno.comwww.otrositioporno.comsitioindeseable.comotrositioindeseable.comnapstersexpornmp3xxxadultwarezcelebri
Esta lista, la cual debera ser completada con todas las palabras
(muchas de esta son palabras obscenas en distintos idiomas) y
direcciones de Red que el administrador considere pertinentes, la
guardaremos como /etc/squid/sitiosdenegados.
a) Parámetros 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 línea
correspondiente quedaría del siguiente modo:
acl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"
Habiendo hecho lo anterior, deberemos tener en la sección de
Listas de Control de Acceso algo como lo siguiente:
#Recommended minimum configuration:acl all src 0.0.0.0/0.0.0.0acl manager proto cache_objectacl localhost src 127.0.0.1/255.255.255.255acl redlocal src 192.168.1.0/255.255.255.0acl password proxy_auth REQUIREDacl sitiosdenegados url_regex "/etc/squid/sitiosdenegados"
A continuación especificaremos modificaremos una Regla de
Control de Acceso existente agregando con un símbolo de ! que se
Página 303

GRUPO LINUX REDES II
denegara 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: denegacion 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
b) Permitiendo acceso a sitios inocentes incidentalmente bloqueados
Si por ejemplo el incluir una palabra en particular afecta el
acceso a un sitio de Red, también puede generarse una lista de
dominios o palabras que contengan un patrón pero que
consideraremos como apropiados.
Como ejemplo: vamos a suponer que dentro de la Lista de
Control de Acceso de sitios denegados esta la palabra sex. Esta
denegaría el acceso a cualquier nombre de dominio que incluya
dicha cadena de caracteres, como extremesex.com. Sin embargo
también estaría bloqueando a sitios como sexualidadjoven.cl, el cual
no tiene que ver en lo absoluto con pornografía, sino orientación
sexual para la juventud. Podemos anadir este nombre de dominio en
un ficheros que denominaremos /etc/squid/sitios-inocentes.
Página 304

GRUPO LINUX REDES II
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 del fichero, solo bastara utilizar la expresión ! en la misma línea utilizada para la Regla de Control de Acceso
establecida para denegar el mismo.
http_access allow all inocentes
La regla anterior especifica que se denegara 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 restricción para la cadena
de caracteres sex.
Finalmente, solo bastara reiniciar Squid para que tomen efecto los
cambios y podamos hacer pruebas.
service squid restart
5.10. CONFIGURAR SQUID: RESTRICCIÓN DE ACCESO A CONTENIDO POR EXTENSIÓN
Denegar el acceso a ciertos tipos de extensiones de fichero permite
hacer un uso mas 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.
Para comenzar se necesita tener instalado al menos squid-
2.5STABLE1.
Página 305

GRUPO LINUX REDES II
Lo primero sera generar una lista la cual contendra 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$\.doc$\.xls$\.mbd$\.ppt$\.pps$
\.ace$\.bat$\.exe$\.lnk$\.pif$\.scr$\.sys$\.zip$\.rar$
Página 306

Esta lista, la cual debera ser completada con todas las extensiones
de fichero que el administrador considere pertinentes, la guardaremos
como /etc/squid/listaextensiones.
5.10.1. PARÁMETROS 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 linea
correspondiente quedaria del siguiente modo:
acl listaextensiones urlpath_regex "/etc/squid/listaextensiones"
Habiendo hecho lo anterior, deberemos tener en la seccion 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 continuacion especificaremos una Regla de Control de
Acceso existente agregando con un simbolo de ! que se denegara 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.

Reglas de control de acceso: denegacion de extensiones.
#INSERT YOUR OWN RULE(S) HERE TO allow ACCESS FROM YOUR
CLIENTS
# http_access allow localhost
http_access allow redlocal password !sitiosdenegados !listaextensioneshttp_access deny all
Finalmente, solo bastara reiniciar Squid para que tomen efecto los
cambios y podamos hacer pruebas.
service squid restart
5.11. CONFIGURAR SQUID: RESTRICCIÓN DE ACCESO POR HORARIOS
Denegar el acceso a ciertos usuarios en ciertos horarios permite
hacer un uso mas racional del ancho de banda con el que se dispone. El
funcionamiento es verdaderamente simple, y consiste en denegar el
acceso en horarios y dias de la semana.
5.11.1. Procedimientos
La sintaxis para crear Listas de control de acceso que definan
horarios es la siguiente:
acl [nombre del horario] time [dias de la semana] hh:mm-hh:mm
Los dias de la semana se definen con letras, las cuales
corresponden a la primera letra del nombre en ingles, de modo que se
utilizaran del siguiente modo:
• S - Domingo• M - Lunes• T - Mastes• W - Miercoles• H - Jueves• F - Viernes• A - Sabado

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
mecanica 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, quedaria 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 defincion para le horario corresponderia a:
acl clasematutina src 192.168.1.0/255.255.255.0
acl matutino time MTWHF 09:00-15:00
La definicion de la Regla de Control de Acceso seria:
http_access allow matutino clasematutina
Lo anterior, en resumen, significa que quienes conformen clasematutina podran
acceder a Internet de Lunes a Viernes de 09:00-15:00 horas.
Finalmente, solo bastara reiniciar Squid para que tomen efecto los cambios y
podamos hacer pruebas.
service squid restart
5.12. CONFIGURAR SQUID CON SOPORTE PARA DIRECCIONES MAC

Squid de modo predeterminado no esta incluido el soporte para
listas de control de acceso basadas sobre direcciones MAC (Media
Access Control).
5.12.1. Instalación a través de yum.
Si utiliza CentOS 5, Red Hat Enterprise Linux 5 o White Box Enterprise
Linux 5, solo se necesita realizar lo siguiente para instalar o actualizar el
equipamiento logico necesario:
yum -y install squid-arp
Lo anterior instalara el paquete squid-arp y reemplazara al paquete
squid. El paquete squidarp es identico al paquete squid con la unica
diferencia de que el primero fue compilado con la opcion --enable-arp-acl.
En otras distribuciones distintas a CentOS 5, Red Hat Enterprise Linux
5 o White Box Enterprise Linux 5, se requiere desinstalar el paquete original
y descargar los fuentes de squid y compilar estos con la opcion --enable-arp-
acl.
./configure --enable-arp-aclmakemake install
5.12.2. Procedimientos
Se requiere se hayan configurado al menos los siguientes parametros:
• http_port, ejemplo: http_port 8080 transparent
• cache_dir, ejemplo: cache_dir ufs /var/spool/squid 1024 16 256
• error_directory, ejemplo: error_directory
/usr/share/squid/errors/Spanish
Se requiere ademas determinar los valores las siguientes variables
que deberan ser reemplazadas por datos reales:
• Las direcciones MAC especificadas en los ejemplos.

• las direcciones MAC de todos los equipos de la LAN se pueden
obtener, si se esta realizando las operaciones desde un servidor
que sirve de puerta de enlace, utilizando el mandato arp con la
opcion -n, es decir: arp -n.
• Alternativamente, la direccion MAC desde una estacion trabajo
con Windows se puede obtener la direccion MAC utilizando el
mandato ipconfig con la opcion /all: ipconfig /all
• Alternativamente, la direccion MAC desde una estacion trabajo
con Linux se puede obtener la direccion MAC utilizando el
mandato ifconfig.
Fichero /etc/squid/listas/macsredlocal.
Crear un fichero denominado /etc/squid/listas/macsredlocalvi /etc/squid/listas/macsredlocal
Donde el contenido sera una lista de direcciones MAC a la
cual se aplicaran reglas de control de acceso. Ejemplo:
00:01:80:41:9C:8A00:08:A1:84:18:AD00:16:E3:9D:CD:7700:04:75:AA:2D:A100:19:D2:6B:41:4500:13:10:8D:4A:EE00:19:21:14:9B:0Dr
5.12.3.Fichero /etc/squid/squid.conf
Se edita el fichero /etc/squid/squid.conf:vi /etc/squid/squid.conf
En este se debe configurar la lista de control de acceso con
un nombre que la identifique y diferencie claramente de las demas
listas, asignado el tipo de lista como arp. En el siguiente ejemplo, se
crea la lista de control de acceso denominada macsredlocal de tipo

arp y cuyos elementos que la conforman estan en el fichero
/etc/squid/listas/macsredlocal:
acl macsredlocal arp "/etc/squid/listas/macsredlocal"
Se crea una regla de control de acceso que permita a los
miembros de la lista de control de acceso hacer algo. En el siguiente
ejemplo se define que esta permitido el acceso a la lista
macsredlocal:http_access allow macsredlocal
Si se creo alguna lista para limitar el acceso hacia palabras y
otra para extensiones, como se describe en los documentos ≪Cómo
configurar Squid: Restricción de acceso a Sitios de Red y ≫ ≪Cómo
configurar Squid: Restricción de acceso a contenido por extensión ,≫
la regla de control de acceso podria quedar de la siguiente manera:
http_access allow macsredlocal !porno !extensiones
Si ademas se creo alguna lista para limitar los horarios de
acceso, como se describe en el documento ≪Cómo configurar
Squid: Restricción de acceso por horarios , la regla de control de≫acceso podria quedar de la siguiente manera:
http_access allow matutino macsredlocal !porno !extensiones
Cualquier otra forma de utilizar la lista de control de acceso
con direcciones MAC dependera de la imaginacion del
administrador.
5.12.4. Iniciar, detener y reiniciar el servicio squid.
Para ejecutar por primera vez el servicio squid con las
configuraciones creadas, utilice:
service squid start

Para hacer que los cambios hechos tras modificar la
configuracion surtan efecto, utilice:
service squid restart
Para detener el servicio squid utilice:
service squid stop
Para hacer que el servicio de squid este activo con el
siguiente inicio del sistema, en todos los niveles de ejecucion (2, 3,
4, y 5), se utiliza lo siguiente:
chkconfig squid on
CAPITULO III

CLUSTERIZACIÓN Y
VIRTUALIZACIÓN DE SERVIDORES
CLUSTERIZACIÓN DE SERVIDORES
1. Definición:
Este tipo de sistemas se basa en la unión de varios servidores que trabajan como
si de uno sólo se tratase. Los sistemas cluster han evolucionado mucho desde su
primera aparición. En resumen, cluster es un grupo de múltiples ordenadores
unidos mediante una red de alta velocidad, de tal forma que el conjunto es visto
como un único ordenador, más potente que los comunes de escritorio.
2. Tipos de Clusters:
Básicamente se distinguen tres tipos de cluster atendiendo el uso que se le da:

Alta Disponibilidad (High Availability): Consiste en la conexión
de una o varias computadoras conectadas en red utilizándose una
conexión heartbeat para monitorear cual de sus servicios está en
uso, así como la sustitución de una máquina por otra cuando uno
de sus servicios haya caído.
Equilibrio de Carga (Load-balancing): Utilizado en los servidores
web el cluster verifica cual de las máquinas de éste posee mayores
recursos libres y así, asignarle el trabajo pertinente. Actualmente,
los cluster loadbalancing son también failover con el extra de
balanceo de carga y número de nodos
Alto Rendimiento (High Performance computing): Cluster
destinado al alto rendimiento, capacidad muy alta de proceso para
cómputo de grandes volúmenes de datos
3. Componentes necesita un cluster para funcionar
Por norma general un cluster hace uso de diferentes componentes para funcionar,
entre estos están:
Nodos: Los nodos pueden ser ordenadores de escritorio o
servidores, de hecho se puede establecer un cluster con cualquier
tipo de máquina.
Sistema operativo: Este debe de tener un entorno multiusuario,
cuanto más fácil sea el manejo del sistema menores problemas
tendremos. Comúnmente Solingest instala sus cluster con sistemas
Microsoft Cluster Services (MSCS), pero es totalmente factible la
instalación de un Cluster con un sistema Linux o Unix como
podrían ser Rocks (Linux) o Solaris (Unix).

Han surgido ocasiones en las que se ha requerido el montaje de un
sistema cluster en Mac OS X, sobretodo en Granjas de render (para
procesado 3D).
Conexiones de Red: Las conexiones utilizadas en este tipo de
sistema pueden ser muy variadas, se pueden utilizar desde simples
conexiones Ethernet con placas de red comunes o sistemas de alta
velocidad como Fast Ethernet, Gigabit Ethernet, Myrinet, Infiniband,
SCI, etc.
Middleware: El middleware es el software que actúa entre el
sistema operativo y las aplicaciones y que brinda al usuario la
experiencia de estar utilizando una única súper máquina. Este
software provee una única interfaz de acceso al sistema,
denominada SSI (Single System Image). Optimiza el sistema y
provee herramientas de mantenimiento para procesos pesados
como podrían ser migraciones, balanceo de carga, tolerancia de
fallos, etc.
Este sistema también se encarga de la escalabilidad del cluster,
detectando nuevas máquinas y añadiéndolas al grupo.Por lo tanto, si
un cliente quisiera disponer de un cluster para su servidor Web, este
podría optar entre diferentes opciones. No habría ningún problema
en instalar un cluster que tuviese un sistema MySQL y PHP repartido
entre diferentes máquinas.
4. Características:
Alta disponibilidad: es la capacidad de estar presente, de estar listo
en un determinado momento en el que se quiere hacer uso.
Escalabilidad: capacidad de un equipo de hacer frente a volúmenes
de trabajo cada vez mayores, sin dejar por ello de prestar un nivel
de rendimiento aceptable

Fiabilidad: es la probabilidad de funcionamiento correcto
5. División de Tareas
La división de las tareas puede hacerse de 2 formas
Manual: Esto es indicando explícitamente en el pro grama como
debe de dividirse, se requiere para ello tener instaladas las li
brerías para el paso de mensajes entre los procesadores (MPI –
interfase para el Paso de Mensajes o PVM – Maquina virtual
Paralela
Automática: Esto es configurando el Cluster con OpenMosix para
crear una sola imagen del sistema operativo común a todos los
nodos. De esta forma los nodos se comunican entre si sin la
necesidad de la intervención del usuario manteniendo un optimo
balanceo en la división y distribución de la carga. En otras palabras
el paralelismo transparente al usuario quien trabaja en la maquina
como si esta fuese de un solo procesa dor pero de mucha mayor
capacidad
6. Aplicaciones:

El cómputo paralelo se vuelve indispensable cuando se trabaja con al goritmos
complejos o con manejo intensivo de datos, donde una computado ra con un solo
procesador tardaría horas o días y que requerimos de los re sultados a la mayor
brevedad posible
Gracias al poder de cómputo que se logra con un cluster, la simulación ha
pasado a ser una herramienta mas para la investigación. Y mediante esta se
resuelven problemas de gran escala, por ejemplo
Aerodinámica: simulaciones de vuelo
Astrofísica: modelado de la evolución de las galaxias, dinámica
estelar el Instituto de astronomía de la UNAM en Ensenada cuenta
con un cluster para esto
Biología: modelado de nuevos componentes genéticos, simulación
de
Redes neuronales : gracias al uso de supercomputadoras fue
posible descifrar el genoma humano
Ciencias de la computación – simulación de circuitos integrados y
de nuevos microprocesadores, minería de datos, inteligencia
artificial.
Química: predicción de reacciones químicas
Ingeniería: análisis de estructuras, cálculos, cómputo numérico
Geofísica: exploración sísmica, filtrado de imágenes satelitales
Física Nuclear: simulación de reacciones nucleares
7. Tecnologías de Implementación:

7.1. MOSIX:
Un paquete de software que mejora el kernel de Linux con capacidades
de computación de clusters. El kernel mejorado permite cualquier cluster
de estaciones de trabajo y servidores X86/Pentium/AMD trabajar
coordinadamente como parte de un sólo sistema.
MOSIX es una extensión del kernel de Linux que permite ejecutar
aplicaciones “normales” (no paralelizadas) en un Cluster. Una de las
posibilidades de MOSIX es la “migración de procesos”, que permite migrar
procesos de nodo en nodo. Si por ejemplo, cierto proceso está dominando
la carga de un nodo, este será movido a otro que tiene más recursos. Una
de las características de MOSIX es que, a diferencia de otros clusters, no
es necesario modificar las aplicaciones ni tampoco utilizar librerías
especiales. De hecho, tampoco es necesario asignar “a mano” los
procesos a los diferentes nodos que componen el cluster
MOSIX realiza todo esto automáticamente, bajo el concepto de”ForK and
forget” al igual que en un sistema SMP. Esto significa que sólo algunas
aplicaciones se beneficiarán de un cluster MOSIX, básicamente:
Procesos que requieren de mucho CPU, aplicaciones cien tíficas,
de ingeniería, etc.
Procesos paralelos, especialmente los que tienen tiempos de
ejecución impredecibles
Clusters con nodos de diferentes velocidades y/o distin tas
cantidades de memoria
Entornos multiusuario y de tiempo compartido
Servidores WEB escalables

MOSIX funciona silenciosamente. Sus operaciones son transparentes
para las aplicaciones. Los usuarios no necesitan saber dónde se están
ejecu tando los procesos, tampoco necesitan preocuparse de lo que están
haciendo otros usuarios.
Como MOSIX está implementado en el kernel de Linux, sus operaciones
son totalmente transparentes para las aplicaciones. Esto permite definir
distintos tipos de clusters, incluso un cluster con diferentes CPU’s o
velocidades.
7.2. Knoppix:
Es una distribución de GNU/Linux. Está desarrollada por el con es una
distribución de GNU/Linux
7.3. ClusterKnoppix:
Es una distribución basada en Knoppix y que utiliza Linux Terminal Server
Project y OpenMosix. Es una vía conveniente para probar configuraciones
en cluster de computadores cluster.
8. Conclusiones:
Un cluster puede presentarse como una solución de especial interés sobre
todos a nivel de empresas, las cuales pueden aprovecharse de estas
especiales características de computación para mantener sus equipos
actualizados por un precio bastante más económico que el que les
supondría actualizar todos sus equipos informáticos y con unas
capacidades de computación que en muchos casos pueden llegar a
superar el hardware de última generación

Para que un sistema cluster funcione no es necesario que todas las
máquinas dispongan del mismo Hardware y sistema operativo (cluster
heterogéneo). Este tipo de sistemas debe de disponer de un interfaz de
manejo de clusters, la cual se encargue de interactuar con el usuario y los
procesos, repartiendo la carga entre las diferentes máquinas del grupo.
Llega un momento en el que un portal de renombre no cubre las
necesidades con su servidor de dedicado, los sistemas cluster pueden
ayudar a tener la infraestructura que se necesita.
Ninguna, este tipo de sistemas son los más fiables, ya que para la parada
total del proceso deben de pararse todas las máquinas que componen el
grupo. Es la mejor solución para crecer según las necesidades reales, ya
que puede añadir tantas máquinas necesite. Empresas muy importantes
como Google y Microsoft utilizan este tipo de sistemas para poner en
marcha sus portales.

VIRTUALIZACION DE SERVIDORES
1. DEFINIENDO
Virtualización: Tecnología que permite la representación lógica de los
recursos físicos.
Virtualizaciòn: Virtualización es un término bastante amplio, pero que en
general podemos pensar que es separar las características físicas del
hardware donde corre el programa virtualizado para que pueda ejecutarse tal
y como él lo desea o necesita.
Memoria Virtualizada: Cada aplicación ve su propia memoria lógica,
independiente de la memoria física.
Redes Virtualizadas: Cada aplicación ve su propia red lógica, independiente
de la red física.
Servidores Virtualizados: Cada instancia del sistema operativo ve su propio
servidor lógico, independiente de sus servidores físicos.
Almacenamiento Virtualizado: Cada aplicación ve su propia memoria
lógica, independiente de los discos físicos
2. CARACTERÍSTICAS CLAVES
MISION DE LA INFRAESTRUCTURA VIRTUAL
Transformar los estándares de la industria referentes al cómputo en
servidores y sistemas de escritorio mediante la virtualización.
3. BASE DE LA INFRAESTRUCTURA VIRTUAL
Antes de la Virtualización:

Solo una imagen de SO por máquina.
Software y hardware unidos firmemente.
Múltiples aplicaciones funcionando en la misma máquina generalmente crea
conflicto.
Recursos poco utilizados.
Infraestructura costosa e inflexible.
Después de la Virtualización: Rompe dependencias entre SO y
hardware
Las Máquinas Virtuales son
independientes del hardware.
pueden ser aprovisionadas donde
sea
Administra SO y aplicaciones como
una sola unidad al encapsularlas dentro de las Máquinas Virtuales.
También hay que tener en cuenta algunos detalles que pueden ser vistos
negativamente:
Si se daña el disco duro, se te dañan todas las máquinas. Sugiero uso del
RAID, los discos no se dañan siempre, pero a veces pasan.
Si te roban la máquina, te roban todas las máquinas virtuales. ¡Realiza
respaldos!
En fin, cualquier evento que ocurra
con el hardware, afectará a todas las
máquinas virtuales (corriente, red,
etc.) así que si necesitas un sistema
bien redundante búscalo (doble red,
doble disco, doble fuente de
corriente, etc).

Virtualización es un término bastante amplio, pero que en general podemos
pensar que es separar las características físicas del hardware donde corre el
programa virtual izado para que pueda ejecutarse tal y como él
Particionamiento
Puede correr múltiples sistemas operativos en una
máquina física
Utiliza por completo los recursos de servidor
Compatible con clustering, failover redundancia
Aislamiento
Aislamiento de fallas y seguridad a nivel hardware
Los recursos de CPU, RAM, Disco, y Red controlan la
preservación del desempeño
Garantizan niveles de servicio altos.
Encapsulación
El estado entero de la MV es encapsulado:
memoria, imágenes de disco, estados de los
dispositivos I/O
El estado de la MV puede salvarse en un archivo
vía snapshotting
Re-utilización o transferencia de la MV completa con
un archivo de copia
3. ARQUITECTURAS DE UNA INFRAESTRUCTURA VIRTUAL

HOSPEDADA
- Workstation
- VMWare Server
4. CONSOLIDACIÓN DE SERVIDORES
Antes de VMWare
Evitar que el hardware
esté subutilizado: Puedes
tener varias máquinas
corriendo en un sólo
hardware, de forma tal
que se mantengan
verdaderamente

separadas, minimizando el riesgo de una intrusión, pero que se aproveche el
hardware completamente.
Tener en cuenta que
normalmente un
hardware que tiene una
empresa o casa, se
utiliza sólo al 15% de su
rendimiento, por lo que
en verdad se le puedes
dar mejor uso.
Después de VMWare
1. ADMINISTRACIÓN CONSOLIDADA1.1.Virtual Center: Mapas Topológicos

1.2.Virtual Center: Roles y Permisos
2. Usando LVM
Usando LVM2 en Linux CentOS
Los LVM permiten unir varios discos o particiones (conocidos como
Physical Volumes, PV) formando un gran pool de almacenamiento de datos
conocido como Volume Group (VG) que puede ser posteriormente subdividido
en "particiones".
En caso de necesidad de más espacio se puede redimensionar estas
particiones, conocidas como Logical Volumes (LV a partir de ahora).
En resumen:
VG: Volume Group: Es la unión de todos los discos o particiones que se vaya
a usar. Del VG es que se saca pedazos para crear tus particiones.
PV: Physical Volume: Es en sí todos y cada uno de los dispositivos de
almacenamiento que se vaya a usar. Discos, particiones, etc.; en verdad es lo
que antiguamente conocías como discos duros.

LV: Son lo que serían las particiones. Pedazos del VG que se asignará.
Por ejemplo, dadas dos unidades (PV) de 100GB, se puede crear un volumen
lógico (LV) de 200GB.
Sin embargo, también se puede crear un volumen lógico (LV) de 150 GB y otro
de 50 GB. Es posible cualquier combinación de volúmenes lógicos igual o
menor que la capacidad total (en nuestro ejemplo 200GB). Las posibilidades
están limitadas solamente a las necesidades de su organización.
La característica que la mayoría de los administradores de sistemas aprecian
más sobre LVM es su habilidad para dirigir fácilmente el almacenamiento
donde se necesite. En una configuración de sistemas no LVM, el quedarse sin
espacio significa - en el mejor de los casos - mover archivos desde un
dispositivo lleno a uno con espacio disponible. A menudo esto significa la
reconfiguración de sus dispositivos de almacenamiento masivo; una tarea que
se debe llevar a cabo después del horario de oficina.
Sin embargo, LVM hace posible incrementar fácilmente el tamaño de un
volumen lógico. Asuma por un momento que nuestro parque de
almacenamiento de 200 GB fue utilizado para crear un volumen lógico de 150
GB, dejando el resto de 50 GB en reserva. Si el volumen lógico de 150 GB se
llena, LVM permite incrementar su tamaño (digamos por 10 GB) sin ninguna
reconfiguración física. Dependiendo del entorno de su sistema operativo, se
puede hacer esto dinámicamente o quizás requiera una pequeña cantidad de
tiempo fuera de servicio para llevar a cabo el redimensionamiento.
Migración de datos
La mayoría de los administradores con experiencia estarían
impresionados de las capacidades de LVM, pero también se preguntarían:
¿Qué pasa si uno de los discos que forman parte del volumen lógico comienza a fallar?

Las buenas noticias es que la mayoría de las implementaciones LVM
incluyen la habilidad de migrar datos fuera de una unidad física particular. Para
que esto funcione, debe existir suficiente capacidad para absorber la pérdida
de la unidad fallida. Una vez que se termine la migración, se puede reemplazar
la unidad que dejó de funcionar y añadirla nuevamente en el parque de
almacenamiento disponible.
¿Por qué utilizar RAID?
Dado que LVM tiene algunas funcionalidades similares a RAID (la habilidad
de reemplazar dinámicamente unidades fallidas, por ejemplo) y algunas
funcionalidades proporcionan capacidades que no se pueden comparar con la
mayoría de las implementaciones RAID (tales como la habilidad de añadir
dinámicamente más almacenamiento a un parque central de almacenamiento),
mucha gente se pregunta si ya RAID no es tan importante.
Nada puede estar más lejos de la realidad. RAID y LVM son tecnologías
complementarias que se pueden usar en conjunto (de una forma similar a los
niveles RAID anidados), haciendo posible obtener lo mejor de los dos mundos.
1.3.Migración de VMs en Caliente (VMotion)
Podemos migrar fácilmente de
hardware: Necesitamos que las

máquinas corran en un mejor hardware. Puedes realizar una fácil y rápida
migración sin tener que reinstalar, se mueve toda la información al nuevo
hardware y se arranca la máquina.
Actualice y de servicio al HW sin Mantenimiento al HW “en Caliente”
100% de acceso para
usuarios
Interrumpir el servicio y
manteniendo
3. Formas de hacer virtualización por plataforma:
a) Emulación: Es cuando el host simula completamente la máquina
virtual de forma que todas las llamadas que hagan los guests sean
interpretadas y ejecutadas por parte del host hacia el verdadero
hardware. De ésta forma se ha logrado la creación de software para
hardware que no ha sido creado todavía. Así se puede avanzar en la
salida al mercado de nuevo hardware. La emulación incluso permite
que un sistema operativo diseñado para una plataforma específica
pueda correr sobre otra plataforma con la cuál técnicamente no es
compatible.
Ejemplos de emulación tenemos el qemu sin aceleración, Virtual PC, Bochs y PearPC.

b) Virtualización nativa: También conocida como virtualización
completa. El host emula lo suficientemente bien el hardware como
para que los guests puedan correr de forma nativa (sin cambios en
el kernel) y además de forma completamente aislada.
Estos guests normalmente pueden correr varios en la misma
máquina y compartir eficientemente sus recursos. Es una emulación
un poco más avanzado.
El caso más conocido es el VMWare. Que es un producto
comercial.
Xen y KVM son sistemas open source que permiten realizar
éste tipo de virtualización de forma sumamente efectiva.
c) Paravirtualización: El host no ofrece una emulación del hardware.
Pero sin embargo ofrece un API (interfaz de programación de
aplicaciones) que permite que los guests puedan acceder a los
recursos de la máquina, controlados por el hospedero por supuesto.
Los guests corren de forma aislada y segura de tal forma que no se
afectan en caso de problemas.
El kernel de los guests tiene que ser modificado para permitir
acceder al API del host y poder manejar y acceder a los recursos del
host (disco, red, usb, etc).
Ejemplos de paravirtualización incluyen el VMWare ESX Server y el XEN.
d) Virtualización a nivel del sistema operativo: Los guests
comparten el mismo sistema operativo que el hospedero. En verdad
todos corren el mismo kernel y es el kernel el que se ocupa de
determinar para quién trabaja en un momento determinado. Los
guests se ven como si estuvieran sólos pero en verdad todos

comparten el mismo kernel cosa que hace que una vulnerabilidad en
el kernel afecte a todos.
Ejemplos de éste tipo de virtualización incluyen al OpenVZ,
virtuozzo, y las jaulas de freeBSD. Es una de las formas más
antiguas de virtualizar en linux, pero para mi no son lo
suficientemente seguras. Intenté el OpenVZ y no me pareció feo,
pero gracias, no lo uso ni en su versión comercial (virtuozzo).
1.4.Optimización de Recursos con VMware DRS
Asignación dinámica e inteligente de los recursos de hardware para
asegurar una alineación óptima entre el negocio y TI
¿Qué es?Equilibrio dinámico de los
recursos computacionales en todos
los depósitos de recursos
Asignación inteligente de
recursos basada en reglas
predefinidas
Impacto en el cliente
- Alinea los recursos de TI con las prioridades del negocio
- Sencillez operacional; aumenta considerablemente la
productividad del administrador del sistema
- Agrega el hardware de manera dinámica para evitar el
aprovisionamiento en exceso a carga máxima
- Automatiza el mantenimiento de hardware

1.5. ALTA DISPONIBILIDAD CON VMWARE HA
VMware HA permite una disponibilidad rentable para todas las
aplicaciones
Qué es?
Reinicio automático de las
máquinas virtuales en caso
de falla del servidor
Impacto en el cliente
- Alta disponibilidad rentable para todas las aplicaciones
- Sin necesidad de un hardware dedicado en espera
- Sin el costo y la complejidad del clustering
1.6. PROTEJER LOS DATOS CON VMWARE CONSOLIDATED
BACKUP
El respaldo de nivel de archivos centralizados permite una protección de
datos fácil y confiable
¿Qué es?
Respaldo sin agentes centralizados para máquinas virtuales
- Elimine el tráfico del respaldo en la red de área local
- Integrado previamente con los principales productos de respaldo de
Terceros.

Impacto en el cliente
Realice el respaldo en la mitad del día
4. RESUMEN
1.7.Cambio de Paradigma
Aplicaciones que viven servidores pequeños
- Infrastructura (Web, DHCP, firewall, servidores de impresión y archivos)
- Mensajería, Bases de Datos Pequeñas o Particionables
Servidores con alto grado de re- configuración
- Desarrollo - Pruebas

1.8.POOL DE RECURSOS Control Preciso de los Recursos
Las VMs toman recursos de sus pools
El tamaño de los pools puede
modificarse dinámicamente pueden
añadirse las definiciones de los pools
1.9.VMWARE INFRASTRUCTURE: SOLUCIONES CLAVE / CASOS DE
USO
Consolidación y Contención de ServidoresElimina el aumento desmedido de servidores mediante la
implementación de sistemas en máquinas virtuales
Aprovisionamiento de InfraestructuraDisminuye a minutos el tiempo necesario para hacer
aprovisionamiento de
una nueva infraestructura con sofisticadas funcionalidades de
automatización.
Continuidad del negocioReduce el costo y la complejidad de la continuidad del negocio
mediante el encapsulación de archivos de sistemas completos que se
pueden replicar
y realizar restore en cualquier servidor de destino
Desarrollo y PruebaAprovisionamiento rápido de entornos de prueba y desarrollo,
almacenando librerías preconfiguradas de máquinas de prueba

Desktop EmpresarialAsegura PCs no administrados. De modo alternativo, proporciona
entornos de computadores estandarizados albergados en servidores.
Realbergar Aplicaciones HeredadasMigra sistemas operativos heredados y aplicaciones de software a
máquinas virtuales que se ejecutan en hardware nuevo para una
mayor confiabilidad
5. RESULTADOS ECONÓMICOS DE LA VIRTUALIZACIÓN!
6-9 meses de ROI
35%-75% ahorros en el TCO
Rangos de consolidación
• 4 - 10: 1 en producción
• 15 - 20: 1 en desarrollo y pruebas
60%-80% utilización de recursos
El tiempo de aprovisionamiento se
reduce de días a minutos
1.10. VMWARE INFRASTRUCTURE: AHORROS DE COSTOS
Ahorros que se pueden medir en costos de capital y de operación

1.11. LA VIRTUALIZACIÓN ES UN MULTIPLICADOR DE RECURSOS
Todos los recursos físicos se comparten entre las máquinas virtuales lo que tiene como resultado un efecto
multiplicador de recursos
1.12. CONSOLIDACIÓN DEL SERVIDOR, ALMACENAMIENTO DE
INFORMACIÓN Y REDES
70 a 80% de reducción en áreas en pies cuadrados,

racks, cables, energía, enfriamiento
Ejemplo de un cliente: TXU
6. LICENCIAMIENTO OEM – CANAL VIP ENTERPRISE
1.13. DIFERENCIAS ENTRE OEM Y CANAL DE DISTRIBUCIÓN
Licenciamiento OEM
• Licencias adquiridas a los “vendors” de Hardware (IBM, HP,
DELL).
• Únicamente con equipos nuevos.• El soporte lo otorga directamente el vendor de
Hardware (NO VMware).
Licenciamiento vía canales de distribución, VIP Enterprise
• Únicamente vía canal VIP Enterprise, ubicable en WWW.
• No necesita estar atado a propuesta de hardware.
• Soporte directo de VMware
( http://www .vmware.com/requestsupport)
1.14. EDICIONES VI3 (3.0.2)

1.15. EDICIONES VI3 - 3.5 (Nuevo)
* SnS not mandatory for ESX Server 3i (embedded or standalone)** SLS is being phased out with VI 3.5 release
1.16. ADMINISTRACIÓN DE VI & ADD-ONS DE VI “A LA CARTE”

Add-ons están disponibles
para VI.
Foundation, Standard o
Enterprise, pero NO para
ESX Server 3i.
VMotion es requerido para
DRS.
Agente VC se incluye con el
VirtualCenter Server /
VirtualCenter Foundation.

ANEXOS