Está en la página 1de 92

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

MDULO 6

SERVICIOS DE INTERNET

OBJETIVO GENERAL

Al finalizar este mdulo el participante ser capaz de instalar, configurar servidores DNS, Web y Correo. OBJETIVOS ESPECFICOS

Explicar la estructura y propsito de los servicios DNS, Web y Correo. Configurar equipos GNU/Linux como servidores DNS, Web y Correo. SUMARIO

6.1.

Sistema de Nombres de Dominio (DNS) 6.1.1. Conceptos Generales 6.1.1.1. Nombres de dominio totalmente calificados (FQDN) 6.1.1.2. Zonas 6.1.1.3. Consulta directa 6.1.1.4. Consulta inversa 6.1.2. Servidor de Nombres 6.1.3. Tipos de registro 6.1.4. Archivos de zona 6.1.5. Bind (Berkeley Internet Name Domain) 6.1.5.1. Paquetes 6.1.5.2. Demonios 6.1.5.3. Configurando BIND 6.1.5.3.1. Servidor BIND 6.1.5.3.1.1. Servidor solo-cach 6.1.5.3.1.2. Servidor primario 6.1.5.3.1.3. Servidores secundarios 6.1.5.3.1.4. Archivo /var/log/messages 6.1.5.3.2. Cliente BIND 6.1.5.3.2.1. Comando host 6.1.5.3.2.2. Comando dig

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.1.5.3.2.3. Comando nslookup 6.2. Servidor Web Apache 6.2.1. Paquetes 6.2.2. Demonios 6.2.3. Configurando http 6.2.3.1. Servidor Web 6.2.3.1.1. Hosts Virtuales 6.2.3.1.1.1. Host virtuales con diferentes IPs 6.2.3.1.1.2. Host virtuales con la misma IP 6.2.3.1.2. Autenticacin 6.2.3.1.2.1. Comando htpasswd 6.2.3.1.2.2. Procedimiento 6.2.3.1.3. Archivos de registro 6.3. Servidor de Correo 6.3.1. Protocolos 6.3.1.1. SMTP (Simple Mail Transfer Protocol) 6.3.1.2. POP3 (Post Office Protocol) 6.3.1.3. IMAP4 (Internet Messages Access Protocol) 6.3.2. Buzones 6.3.2.1. mbox 6.3.2.2. maildir 6.3.3. SAPM 6.3.4. Paquetes 6.3.5. Demonios 6.3.6. Envo de mensajes 6.3.7. Configurando servicio de mensajeria 6.3.7.1. Servidor POP e IMAP 6.3.7.2. Servidor MTA - Postfix 6.3.7.2.1. Tablas lookup 6.3.7.2.2. Tabla lookup aliases 6.3.7.2.3. Bloquear UCE 6.3.7.2.3.1. Filtrado de la cabecera 6.3.7.2.3.2. Filtrado del cuerpo 6.3.7.2.3.3. Restricciones del emisor 6.3.7.2.3.4. Lista de bloqueo 6.3.7.2.3.5. Uso del comando HELO 6.3.7.2.3.6. Direcciones de correo RFC821
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.3.7.2.3.7. Restricciones del destinatario 6.3.7.2.4. Archivos de registro 6.3.7.3. Cliente (MUA) 6.3.7.4. Servidor DNS 6.4. Actividades del mdulo 6.4.1. Autoevaluacin 6.4.2. Laboratorio 6.5. 6.6. Glosario de trminos Bibliografa y enlaces recomendados

INTRODUCCIN

En la actualidad es cada vez mayor el nmero de empresas que consideran la tecnologa como una herramienta que les permite ser cada vez ms eficientes. Servidores de Correo y Web permiten por ejemplo que sus empleados puedan estar mejor comunicados con sus clientes y proveedores tanto dentro de la oficina como fuera de ella, reduciendo significativamente muchos procesos; esta meta es lograda con servicios correctamente instalados y configurados.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

DESARROLLO DEL MDULO

6.1.

Sistema de Nombres de Dominio (DNS)

El Sistema de Nombres de Dominio (Domain Name System) es una base de datos distribuida que proporciona un sistema de nombramiento jerrquico para la identificacin de los hosts en Internet.

El DNS es un poderoso y complejo mecanismo que permite entre otras posibilidades, la traduccin de nombres a direcciones IP (y viceversa), en las redes computacionales. Este sistema tiene una estructura que responde ante las caractersticas actuales de las redes de computadoras, dada su expansin y diversificacin.

La base de datos DNS es una estructura de rbol invertido denominado espacio de nombres de dominio, en la cual cada dominio (nodo en la estructura de rbol) tiene un nombre y puede contener sub-dominios.

Los componentes del espacio de nombres de dominio son (Ver Tabla 1):
Componentes Dominio raz ( . ) Descripcin El origen del rbol DNS, a partir de donde se ramifica la estructura. Es administrado por un conjunto de servidores que son controlados por la INTERNIC. Representan el rubro de la organizacin y tambin el pas donde reside. com Comercial edu Educativa gob Gobierno org Organizaciones no comerciales net Organizaciones de conectividad en red mil Militar Indican por lo general el nombre de la empresa. Un sub-dominio puede contener otros sub-dominios. Son los equipos que indican por lo general la funcin o servicio que est ofreciendo. Tabla 1. Componentes del DNS

Dominios principales

Sub-dominios Nombres de hosts

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 1. DNS

El propsito de esta base de datos es administrar las relaciones entre el espacio de nombre DNS (la coleccin de posibles nombres para los equipos) y direcciones IP. (Ver Figura 1) 6.1.1. Conceptos Generales

6.1.1.1.

Nombres de dominio totalmente calificados (FQDN)

El Nombre de Dominio Totalmente Calificados de una entidad DNS es la ruta completa desde la raz del rbol DNS hasta la entidad.

Una nombre de entidad DNS se especifica dando su posicin en este rbol de dominios y subdominios, cada nombre de sub-dominio es separado del siguiente por un punto ( . ). Por ejemplo un equipo llamado www.ejemplo.com tiene nombre www y perten ece al dominio .ejemplo.com, qu a su vez es un sub -dominio del dominio .com, qu a su vez es un sub dominio del dominio raz .. (Ver Figura 2)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 2. Dominio .ejemplo.com

6.1.1.2.

Zonas

Una rama del espacio de nombre DNS bajo el control administrativo de alguna entidad es llamada una zona. Una empresa que registra el nombre de dominio ejemplo.com gana el control administrativo de la zona ejemplo.com. Sin embargo, es probable tambin que gane el control administrativo de otras zonas. Al menos, gan el control de las zonas inversas in-addr.arpa

correspondientes a sus direcciones de red. (Ver Figura 2) 6.1.1.3. Consulta directa

Resuelve un nombre a direccin IP. Si el servidor de nombres local no puede resolver la consulta entonces este realiza una consulta a otro servidor de nombres para resolverla.

Pasos que se realizan en el proceso de consulta (Ver Figura 3): (1) El cliente pasa una consulta para inictelvirtual.inictel.net su servidor de nombres local. (2) El servidor de nombres local verifica su archivo de zona para determinar si contiene la asignacin del nombre a direccin IP. Si el servidor de nombres local no tiene autoridad para inictel.net, pasa la consulta a uno de los servidores raz, solicitando la resolucin del nombre de host. El servidor de nombres raz devuelve una referencia al servidor de nombres net.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

(3) El servidor de nombres local enva una peticin a un servidor de nombres net, el cual responde con una referencia a los servidores de nombre inictel. (4) El servidor de nombres local enva una peticin al servidor de nombres inictel, El servidor de nombres inictel recibe la peticin. Como el servidor de nombres inictel tiene autoridad para este espacio de nombres de dominio, retorna la direccin IP para

inictelvirtual.inictel.net al servidor de nombres local. (5) El servidor de nombres enva la direccin IP para inictelvirtual.inictel.net al cliente. (6) La resolucin de nombre es finalizada y el cliente puede acceder a

inictelvirtual.inictel.net.

Figura 3. Bsqueda directa

6.1.1.4.

Consulta inversa

Adems de convertir nombres de dominio en direcciones IP, el sistema DNS puede ejecutar lo inverso: convertir direcciones IP en nombres. Esta conversin se hace asociando y poniendo este nombre del dominio en el dominio principal in-addr.arpa.

Si nuestra red tiene una direccin de red clase C 192.168.1.0. El nombre de dominio in-addr.arpa asociado es 1.168.192.in-addr.arpa. Este nombre es fabricado por la direccin de la red

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

invirtiendo el orden de bytes en la direccin de la red y aadiendo in-addr.arpa al fin. (Ver Figura 4)

Figura 4. Bsqueda inversa

6.1.2. Servidor de Nombres

Un servidor de nombres es un proceso que acepta peticiones en la base de datos DNS. Es tambin bastante comn usar como referencia el equipo en el cual este proceso est ejecutndose como un servidor de nombres. Un proceso servidor de nombres est enlazado al puerto 53 de los protocolos UDP y TCP (el puerto domain listado en /etc/services) y escucha para las preguntas entrantes. Individualmente los servidores de nombre juegan diferentes roles en la operacin global de la base de datos DNS.

Hay tres importantes clases de servidores de nombres: primario, secundario y raz. (Ver Tabla 2)
Servidor de nombres Servidor primario Descripcin Cada zona debe tener precisamente un servidor de nombres primario asociado. Este servidor de nombres es la nica ubicacin que tiene la informacin oficial o autorizada sobre su zona. El servidor primario es distinguido por el hecho que los datos del DNS para su zona estn almacenados en el disco local del equipo servidor en un conjunto de archivos llamados archivos de zona. Proporciona una fuente alternativa para la informacin de la zona. Una zona puede tener uno o ms servidores secundarios. Los servidor secundarios permiten distribuir la carga y proporcionar una copia de seguridad. Los servidores secundarios obtienen sus datos del servidor oficial 8
ADMINISTRACIN EN REDES GNU/LINUX

Servidor secundario

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Servidor raz

peridicamente descargando una copia de los archivos de zona del servidor oficial. Esta transferencia es llamada trasferencia de archivos de zona. Los servidores raz son los servidores para el dominio raz. Ellos son operados por el InterNIC. Los servidores raz juegan un rol crucial junto con la base de datos DNS. Tabla 2. Servidores de nombres

6.1.3. Tipos de registros

Los archivos de zona estn compuestos de registros individuales llamados Resource Records (RRs). (Ver Cuadro 1)

$TTL 172800 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 2003000018 ; Nmero de serie, debe ser cambiado cada ; vez se modifica este archivo 28800 ; Refresco cada 8 horas 14400 ; Reintenta cada 4 horas 2419200 ; Expira cada 1000 horas 86400 ) ; TTL (Time to Live) mnimo de un da ; Name Server (NS) records. @ IN NSns.ejemplo.com. ; Mail Exchange (MX) records. @ IN MX 10 mail.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.66 pc02 IN A 192.168.1.67 pc03 IN A 192.168.1.68 ; Aliases (CNAME) records. ns IN CNAME pc01.ejemplo.com. www IN CNAME pc02.ejemplo.com. mail IN CNAME pc03.ejemplo.com. Cuadro 1. Archivo de zona ejemplo.zone

Los registros de recursos pueden ser de varios tipos, los principales se listan y describen a continuacin (Ver Tabla 3):
Tipo de registro de Abreviacin recurso Start Of Authority SOA Descripcin Este registro es el que indica que el servidor de nombres est autorizado para la zona correspondiente. Se ubica al comienzo de cada archivo de zona y contiene informacin acerca del funcionamiento del DNS. Es uno de los registros ms importante pues permite definir la correspondencia entre nombres y direcciones IP. Se utiliza para definir alias para los nombres ya definidos. Permite indicar cuales son los servidores de nombres de dominio de la zona correspondiente. 9
ADMINISTRACIN EN REDES GNU/LINUX

Address

Canonical Name Name Server


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

CNAME NS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Domain name Pointer

PTR

Mail Exchanger

Host Information Text Responsible Person

Well Known Services

Junto a los address records es uno de los ms importantes pues define las correspondencias inversas: de direcciones IP a nombres. MX Permite indicar para un nombre de dominio determinado quien es el host que se encarga de manipular la mensajera dirigida a este. HINFO Se emplea para almacenar dos caractersticas, procesador y sistema operativo, de un host del dominio. TXT Permite guardar un comentario textual acerca de un host perteneciente al dominio. RP Es un registro que permite indicar los datos de la(s) persona(s) responsable(s) de la zona en cuestin. Consta de dos campos: uno contiene la direccin de correo electrnico y el otro, un nombre de dominio vlido que a su vez debe poseer un record TXT donde se indican otros datos tales como: direccin, telfono, etc. WKS Aunque es un record poco utilizado tiene cierta funcionalidad pues permite indicar para un host los servicios (telnet, FTP, Web, finger, DNS) que brinda y a travs de que interfaces de red y protocolo lo hace (TCP o UDP). Tabla 3. Registro de recursos

6.1.4. Archivos de zona

Los registros en un archivo de zona presentan la siguiente sintaxis:

<dominio> [ttl] [clase] <tipo> <datos>

Donde (Ver Tabla 4):


dominio Puede ser el carcter . cuando se refiere al dominio raz, @ para el origen actual, o un dominio estndar. Si el nombre del dominio no termina con un punto entonces se le adicionar el origen actual, de tener un punto al final se mantendr invariable. Indica el tiempo de vida del record. Si no se coloca se asume el especificado en ttl la ltima directiva $TTL (ms adelante se explica que son las directivas) y de no existir esta se asumir el valor mnimo especificado en el record SOA (ms adelante se describir la estructura de este). Se utiliza para definir la clase del record. Por defecto se asume la clase clase correspondiente a las redes tipo Internet basadas en TCP/IP, nombrada IN. Indica el tipo de record descrito. Puede ser cualquiera de los especificados tipo anteriormente: A, NS, CNAME, SOA, etc. Constituye la informacin asociada al registro y que es totalmente dependiente datos de este. A continuacin se indica el formato de la informacin asociada a cada tipo de registro: SOA <servidor de nombres> <e-mail> <nmero de serie> <intervalo de refrescamiento> <intervalo de reintento> <intervalo de expiracin> <ttl mnimo> NS <servidor de nombres> A <direccin IP> CNAME <nombre cannico> PTR <nombre de dominio> MX <preferencia> <dominio> HINFO <tipo de CPU> <tipo de Sistema Operativo>
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

10

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

TXT <texto> RP <e-mail> <dominio> WKS <direccin IP> <protocolo> <servicio> Tabla 4. Descripcin de los elementos de la sintaxis de los registros

Un registro puede estar definido completamente en una lnea terminando al final de esta o puede abarcar varias si se emplean parntesis. Los registros que emplean en mayor medida esta

posibilidad son el SOA y el WKS dada la cantidad de informacin que contienen. (Ver Cuadro 2.)

$TTL 172800 @ IN SOA ns.ejemplo.com. 12 0800 3600 604800 86400 ) ; Name Server (NS) records. @ IN NS ns.ejemplo.com.

root.ejemplo.com. ( ; Nmero de serie 1 ; Refresco despus de tres horas ; Reintentar despus de una hora ; Expirar despus de una semana ; TTL (Time to Live) mnimo de un da

; Domain name Pointer (PTR) records. 66 IN PTR pc01.ejemplo.com. 67 IN PTR pc02.ejemplo.com. 68 IN PTR pc03.ejemplo.com. 69 IN PTR pc04.ejemplo.com. Cuadro 2. Archivo de zona inversa 1.168.192.in-addr.arpa

6.1.5. Bind (Berkeley Internet Name Domain)

La primera implementacin del sistema de nombres de dominio se nombraba JEEVES y fue realizada por Paul Mockapetris. Una implementacin posterior fue BIND (Berkeley Internet Name Domain) escrita originalmente para el sistema operativo BSD Unix de Berkeley por Kevin Dunlap. Hoy da BIND es mantenido por Paul Vixie bajo el auspicio de la ISC ( Internet Software Consortium).

Su pgina oficial es: http://www.isc.org/index.pl?/sw/bind/

BIND es el servidor de DNS de ms popularidad en la actualidad. Ha sido portado para mltiples plataformas basadas en Unix (incluyendo a GNU/Linux) as como para Windows NT y 2000.

Las versiones de BIND han evolucionado continuamente tal y como lo ha hecho el DNS en s. Particularmente se destacan las series de las versiones 4, 8 y ms recientemente la 9, cada una con sus variantes. La documentacin que existe acerca de la versin 4 (fundamentalmente de las

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

11

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

variantes 4.8 y 4.9) no se puede descartar del todo pues muchos conceptos y mecanismos bsicos de BIND se mantienen.

6.1.5.1.

Paquetes

La configuracin mnima requiere los siguientes paquetes: Tarball bind-9.3.1.tar.gz rpm bind bind-utils (consta de varias utilidades para consultar un servidor de DNS, tales como host, nslookup y dig) caching-nameserver (agrupa los archivos de la configuracin mnima para un servidor de DNS que slo consulte a otros servidores de dominio)

Figura 5. Paquetes rpm

deb bind9 bind9-doc

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

12

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 6. Paquetes deb

6.1.5.2.

Demonios

Una vez instalado BIND, el demonio encargado de brindar el servicio se llama named.

Demonio named

Descripcin Se ejecuta en servidores DNS. Este demonio da servicios a las peticiones de los clientes DNS
Tabla 5. Demonio

El script /etc/init.d/named inicia el demonio named.

Figura 7. Iniciando el demonio named

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

13

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

En el caso de la distribucin Debian, el demonio named es manipulado utilizando el script /etc/init.d/bind.9.

Figura 8. Iniciando el demonio named

6.1.5.3.

Configurando BIND

La configuracin bsica de BIND se encuentra en el archivo /etc/named.conf. fundamentalmente describe las zonas de los dominios que controlar BIND.

Este archivo

El archivo named.conf por defecto posee un contenido similar a la Figura 9.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

14

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 9. Archivo /etc/named.conf

Las posibilidades de configuracin que brinda este archivo son enormes, basta con mirar rpidamente el man del mismo para percibir esto. Sin embargo bsicamente se puede decir que est formado por un conjunto de sentencias y de comentarios. Las sentencias se terminan con el carcter ; y pueden contener dentro de s a otras sentencias, en estos casos el contenido de la sentencia va encerrado entre {}. Los comentarios pueden ser de varios estilos similares a los de los lenguajes de programacin C, C++, Perl y Shell. Ejemplos de comentarios son (Ver Cuadro 3.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

15

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

/* Este es un comentario de varias lneas al estilo C */ // Este comentario es como los de C++ # Este otro comentario es al estilo de Perl y del shell Cuadro 3.

Existen muchos tipos de sentencias. De ellas las principales se explican a continuacin: acl : Es una sentencia que permite definir listas de direcciones IP con el objetivo de utilizarlas para indicar reglas de acceso en otras sentencias. Su nombre significa Access Control List. Por defecto existen cuatro acl definidas:

acl any none localhost

Descripcin acceso permitido a todos los hosts. acceso denegado a todos los hosts. acceso permitido slo a las direcciones IP locales.

localnets

acceso permitido a todos los hosts de todas las redes con las cuales el sistema tenga al menos una interface. Tabla 6. Tipos de acl

El siguiente es un ejemplo que define una lista de acceso con nombre danger y que incluye a todos los hosts pertenecientes a las redes 192.100.5.0 y 192.200.0.0, as como al host independiente 192.168.2.5. (Ver Cuadro 4)

acl danger { { 192.100.5/24; 192.200/16; 192.168.2.5; }; }; Cuadro 4. acl danger options : Esta sentencia controla toda la configuracin del servidor y define las opciones por defecto de otras sentencias. Slo debe aparecer una vez en el archivo de

configuracin. Puede apreciarse su utilizacin en el ejemplo anterior. En el que se da a continuacin se muestran y comentan otras opciones. (Ver Cuadro 5)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

16

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

options { directory /var/named; # indica el directorio de trabajo del servidor. Toda referencia # a archivo relativa lo ser a partir de este directorio allow-query {192.168/16;}; # indica que se permiten las consultas de todos los hosts con # direcciones que comiencen con 192.168 blackhole { danger;}; # especifica que no se les responda ninguna consulta a los hosts # de la lista danger listen-on port 1054 {!10.20.30.40;}; # indica que el servidor escuche las consultas por el # puerto 1054 y a travs de todas sus interfaces de red # excepto la de direccin 10.20.30.40 }; Cuadro 5. Sentencia options

zone : Es una de las sentencias ms importantes pues permite definir las zonas y describir sus respectivas configuraciones. Existen cinco tipos de zonas:

zona Master zone

Slave zone Hint zone Stub zone

Forward zone

Descripcin Es aquella donde el servidor tiene la copia primaria o principal de los datos de la zona y es capaz de dar respuestas autorizadas acerca de esta. Es la zona cuyos datos son resultado de la rplica de la informacin de una zona master. Es la zona que contiene la informacin del conjunto inicial de servidores del dominio raz. Es una zona igual a la de tipo slave excepto en que en esta, slo se replica la informacin de los servidores de la zona primaria y no el resto de la informacin Es el tipo de zona donde las consultas acerca de sus datos se reenvan a otros servidores.
Tabla 7. Tipos de zona

En versiones anteriores de BIND las zonas master, slave y hint se conocan como primary, secondary y cach respectivamente. A continuacin se muestra a travs del ejemplo descrito hasta el momento como se definen las zonas ejemplo.com, y 1.168.192.in-addr.arpa. (Ver Cuadro 6)

zone "ejemplo.com" { type master; file "ejemplo.zone"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.zone"; };
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

17

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Cuadro 6. Definicin de las zonas

Los siguientes atributos pueden ser indicados al caracterizar una zona:

Atributo type file

allow--update allow-transfer

allow-query

forward

Descripcin Indica el tipo de zona. Para el caso de las zonas cuya informacin se almacene localmente indica el nombre del archivo donde esta se encuentra Indica los hosts autorizados a hacer actualizaciones dinmicas a la zona. Indica los hosts autorizados a transferir la informacin de la zona. Este atributo tambin se puede especificar de forma global en la sentencia options. Indica los hosts autorizados a hacer consultas sobre la zona. Este atributo tambin se puede especificar de forma global en la sentencia options. Es un atributo aplicable slo a las zonas de tipo forward. Puede tomar dos valores first u only, el primero (que es el por defecto) indica que primero se consulte a los hosts especificados en el atributo forwarders y si estos fallan entonces se busque la respuesta localmente y el segundo slo consulta a los hosts en forwarders. Ambos atributos se pueden especificar de forma global en la sentencia options.
Tabla 8. Atributos

Ms adelante se podrn apreciar ejemplos de la utilizacin de estos atributos. Otras sentencias son logging, server, key, trusted-keys, include y controls

A partir de la versin 9 de BIND se incluyen dos herramientas para chequear la sintaxis y semntica de los archivos que describen a las zonas y el archivo de configuracin principal named.conf.

named-checkconf Herramienta

que

verifica

la

sintaxis

del

archivo

de

configuracin

/etc/named.conf.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

18

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 10. Comando named-checkconf

named-checkzone Herramienta que verifica la sintaxis y la integridad de un archivo de zona.

Figura 11. Comando named-checkzone

Para cada una de las zonas definidas en el archivo /etc/named.conf (Ver Cuadro 6) se indica, entre otras caractersticas, el nombre del archivo que almacena sus datos. Es en estos archivos donde se colocan todos los registros del DNS y se conocen como archivos db ' (database files). Por defecto se agrupan en el directorio /var/named. (Ver Tabla 9)

Archivos db Descripcin localhost.zone Se instala a travs del paquete caching-nameserver. Almacena la configuracin de la zona correspondiente a la interfaz local nombrada localhost. named.local Se instala a travs del paquete caching-nameserver. Almacena la configuracin de la zona correspondiente a la interfaz local o loopback para el dominio arpa nombrada 0.0.127.in-addr.arpa. named.ca Se instala a travs del paquete caching-nameserver. Almacena los datos de los servidores del dominio raz. Es indispensable para la resolucin de nombres en Internet y para inicializar el cach.
Tabla 9. Archivos db
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

19

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

La informacin presente en un archivo db puede especificarse en letras maysculas o minsculas indistintamente pues las consultas al DNS son case-insentive. Se pueden incluir adems comentarios precedidos por el carcter ; y lneas en blanco.

Figura 12. Archivo /var/named/named.ca

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

20

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 13. Archivo /var/named/named.local

6.1.5.3.1. Servidor BIND

El servidor BIND puede ser configurado en: Servidor solo-cach. Servidor primario. Servidor secundario.

6.1.5.3.1.1.

Servidor solo-cach

Un servidor de nombres de solo cach obtendr la respuesta a las solicitudes de nombre provenientes de su red preguntando a servidores externos, recordando la respuesta para la prxima vez que lo necesite.

El beneficio ser la reduccin del trfico por consulta aun servidor DNS externo. El cach se almacena en memoria completamente. Cada vez que mata el demonio named o reinicia el

servidor se pierde el cach. Una configuracin de servidor slo-cach es sencilla. Un archivo named.local y un archivo named.ca son todo lo que necesita.

Para configurar este tipo de servidor DNS slo tenemos que aadir las siguientes lneas en el archivo /etc/named.conf (Ver Cuadro 7):

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

21

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

options { directory "/var/named"; pid-file /var/run/named/named.pid; allow-transfer { none; }; allow-query { 192.168.1.64/27; localhost; }; allow-recursion { 192.168.1.64/27; localhost; }; forwarders { 200.48.0.37; 200.48.0.38; }; }; Cuadro 7.

Ejemplo: Se tiene una red con direccin 192.168.1.0 y mscara de red 255.255.255.224, el equipo pc01 esta configurado como servidor DNS de solo-cach. (Ver Figura 14)

Figura 14. DNS solo-cach

Un usuario desea abrir la pgina web www.google.com, el resolver realiza la consulta al servidor DNS solo-cach, como esta informacin no se encuentra registrada en su memoria hace a su vez una consulta al servidor DNS primario asignado por el proveedor de Internet y luego de obtener una respuesta a su solicitud, este enva la respuesta al cliente DNS (resolver). (Ver Figura 15)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

22

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 15. Cliente DNS 1ra. Consulta

Otro usuario realiza tambin desea cargar la pgina www.google.com, su resolver realiza la peticin al servidor DNS solo-cach y como este ya tiene en su memoria dicha informacin, enva inmediatamente la respuesta al resolver. (Ver Figura 16)

Figura 16. Cliente DNS 2da. consulta

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

23

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.1.5.3.1.2.

Servidor primario

El dominio imaginario ejemplo.com es la base de nuestro ejemplo de configuracin de servidores primario y secundario. Aqu est el archivo named.conf para definir ns como el servidor

primario para el dominio ejemplo.com (Ver Figura 17):

Figura 17. Dominio ejemplo.com DNS Primario

Archivo de zona /etc/named.conf (Ver Cuadro 8):

options { directory "/var/named"; allow-transfer { 192.168.1.71; }; allow-query { 192.168.1.64/27; localhost; }; allow-recursion { 192.168.1.64/27; localhost; }; forwarders { 200.48.0.37; 200.48.0.38; }; }; zone . { type hint; file named.ca; }; zone 0.0.127.in-addr.arpa { type master; file named.local; }; zone ejemplo.com" { type master; file "ejemplo.zone"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.zone"; };
Cuadro 8. Archivo /etc/named.conf

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

24

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Archivo de zona /etc/named/ejemplo.zone (Ver Cuadro 9):

$TTL 172800 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 2003000018 ; Nmero de serie, debe ser cambiado cada vez ; se modifica este archivo 28800 ; Refresco cada 8 horas 14400 ; Reintenta cada 4 horas 2419200 ; Expira cada 1000 horas 86400 ) ; Cach negativa TTL, cada da ; Name Server (NS) records. @ IN NS ns.ejemplo.com. ; Mail Exchange (MX) records. @ IN MX 10 mail.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.66 pc02 IN A 192.168.1.67 pc03 IN A 192.168.1.68 pc04 IN A 192.168.1.69 ; Aliases (CNAME) records. ns IN CNAME pc01.ejemplo.com. www IN CNAME pc02.ejemplo.com. mail IN CNAME pc03.ejemplo.com. ftp IN CNAME pc04.ejemplo.com.
Cuadro 9. Archivo de zona ejemplo.zone

Archivo de zona inversa 1.168.192.in-addr.arpa (Ver Cuadro 10):

$TTL 172800 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 12 ; Nmero de serie 1 0800 ; Refresco despus de tres horas 3600 ; Reintentar despus de una hora 604800 ; Expirar despus de una semana 86400 ) ; TTL (Time to Live) mnimo de un da ; Name Server (NS) records. @ IN NS ns.ejemplo.com. ; Domain name Pointer (PTR) records. 66 IN PTR pc01.ejemplo.com. 67 IN PTR pc02.ejemplo.com. 68 IN PTR pc03.ejemplo.com. 69 IN PTR pc04.ejemplo.com.
Cuadro 10. Archivo de zona inversa 1.168.192.in-addr.arpa

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

25

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.1.5.3.1.3.

Servidores secundarios

A pesar del nombre Servidores secundarios, la informacin que contienen estos servidores DNS es del mismo valor que cualquier otro servidor DNS, la razn principal por la que se configura un servidor secundario es para ofrecer un nivel de respaldo y reducir la carga de los servidores DNS principales, pero sobre todo reducir la carga administrativa en caso de requerir de varios servidores DNS. (Ver Figura 18) La nica diferencia que existe entre un primario y un secundario en DNS es que el secundario obtiene su informacin copiando el Archivo de Zona del primario que sea indicado en el archivo de configuracin.

Figura 18. Dominio ejemplo.com DNS Secundario

Para definir un servidor secundario es necesario especificarlo en las Zonas de Dominio del archivo de zona (Ver Cuadro 11):

options { directory "/var/named"; allow-transfer { none; }; allow-query { 192.168.1.64/27; localhost; }; allow-recursion { 192.168.1.64/27; localhost; }; forwarders { 200.48.0.37; 200.48.0.38; }; }; zone . { type hint; file named.ca; }; zone 0.0.127.in-addr.arpa { type master; file named.local; };
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

26

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

zone ejemplo.com" { type slave; file "ejemplo.zone"; masters { 192.168.1.66; }; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.zone"; masters { 192.168.1.66; }; };
Cuadro 11. Archivo de zona ejemplo.zone para un DNS secundario

Observe que la nica diferencia adems del parmetro type slave; es que se especifica cual es la direccin IP del servidor DNS primario de donde se obtendr la informacin de zona, por lo tanto el archivo ejemplo.zone es una copia de aquel que se encuentra en el servidor DNS 192.168.1.66 (servidor DNS primario). La actualizacin de esta copia de Archivo de zona es conocida como "Zone Transfer" y esta ocurre dependiendo de los parmetros que hayan sido definidos en el Resource Record SOA del archivo de zona.

6.1.5.3.1.4.

Archivo /var/log/messages

Todo lo que sucede con el servicio DNS se registra en el archivo /var/log/messages.

Al ejecutar el siguiente comando se mostrara el contenido del archivo /var/log/messages en tiempo real: tail -f /var/log/messages

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

27

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 19. Contenido del archivo /var/log/messages

6.1.5.3.2. Cliente BIND

El resolver es el cdigo que pregunta por nombres de servidor para informacin del dominio. En sistemas UNIX, es implementado como una biblioteca, mejor que un programa de cliente separado. El resolver es configurado en el archivo /etc/resolv.conf. Permite identificar hasta tres servidores de nombres, dos de los cuales proporcionan respaldo si el primer servidor no responde. Define el dominio predeterminado y otras opciones de procesamiento. (Ver Tabla 10)

Parmetros nameserver address domain name search domain ...

sortlist network ...

Descripcin Indican cuales son las direcciones IP de los servidores DNS que deben ser utilizados. Indica el dominio al cual pertenece el "Host", en este caso ejemplo.com Es utilizado como un auxiliar para la resolucin de nombres, esto es, si se ejecuta el comando telnet lejano, al momento que se utilice la resolucin DNS, este agregar los dominios que se encuentren en search, intentar telnet lejano.ejemplo.com, telnet lejano.ejemplo.org .....lo anterior ahorra tiempo de escritura al usuario final. Aunque opcional es utilizada para indicar la preferencia de los servidores de nombres, esto garantiza que el servidor DNS en 124.13.24.1
28
ADMINISTRACIN EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

tendr preferencia sobre todos los dems, esta preferencia se puede deber a cercana o capacidad del "Host"
Tabla 10. Parmetros del resolver

Archivo /etc/resolv.conf (Ver Cuadro 12)

# Domain name resolver configuration file domain ejemplo.com search ejemplo.com ejemplo.org ejemplo.net nameserver 124.13.24.1 nameserver 124.13.17.2 nameserver 64.12.45.12 sortlist 124.13.24.0/255.255.255.0 64.0.0.0
Cuadro 12. Archivo /etc/resolv.conf

6.1.5.3.2.1.

Comando host

Herramienta que permite hacer consultas a servidores de nombres a cerca de nombres de dominio y zonas. Es usado normalmente para convertir nombres a direcciones IP y viceversa. Cuando no se usan argumentos u opciones, host muestra un pequeo resumen de sus argumentos y opciones.

Figura 20. Comando host

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

29

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.1.5.3.2.2.

Comando dig

dig (domain information groper) es un comando que permite hacer consultas a servidores de nombres. Tambin puede ser usado para actualizar el archivo named.ca para informar a su servidor donde se encuentran los servidores para la zona raz.

Figura 21. Comando dig

6.1.5.3.2.3.

Comando nslookup

Programa que permite hacer consultas a servidores de nombres de dominio interactivamente o no interactivamente.

En modo interactivo el usuario puede consultar a los servidores de nombre por informacin referente a varios hosts y dominios, y visualiza una lista de host en un dominio. En el modo no interactivo el usuario puede solo consultar informacin para un host o dominio.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

30

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 22. Comando nslookup consulta no interactiva

Ejemplo de una consulta interactiva: [root@mandrake inictel]# nslookup > server c.root-servers.net Default server: c.root-servers.net Address: 192.33.4.12#53 > set q=ns > pe. Server: c.root-servers.net Address: 192.33.4.12#53 Non-authoritative answer: *** Can't find pe.: No answer Authoritative answers can be found from: pe nameserver = ICHU.RCP.NET.pe. pe nameserver = EKEKO.RCPIP.NET. pe nameserver = NS-PE.RIPE.NET. ICHU.RCP.NET.pe internet address = 161.132.5.14 EKEKO.RCPIP.NET internet address = 209.45.127.2 NS-PE.RIPE.NET internet address = 193.0.12.173 > server ICHU.RCP.NET.pe Default server: ICHU.RCP.NET.pe Address: 161.132.5.14#53 > set q=ns > gob.pe Server: ICHU.RCP.NET.pe Address: 161.132.5.14#53
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

31

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

gob.pe nameserver = ICHU.RCP.NET.pe. gob.pe nameserver = NS.RCP.NET.pe. gob.pe nameserver = NS2.RCP.NET.pe. gob.pe nameserver = EKEKO.RCPIP.NET. gob.pe nameserver = NS-PE.RIPE.NET. > inictel.gob.pe Server: ICHU.RCP.NET.pe Address: 161.132.5.14#53 Non-authoritative answer: inictel.gob.pe nameserver = NS1.OPTICALIP.COM.pe. inictel.gob.pe nameserver = NS2.OPTICALIP.COM.pe. Authoritative answers can be found from: NS1.OPTICALIP.COM.pe internet address = 200.89.15.226 NS2.OPTICALIP.COM.pe internet address = 200.89.15.227 > server NS1.OPTICALIP.COM.pe Default server: NS1.OPTICALIP.COM.pe Address: 200.89.15.226#53 > set q=any > inictel.gob.pe Server: NS1.OPTICALIP.COM.pe Address: 200.89.15.226#53 inictel.gob.pe mail exchanger = 10 mail.inictel.gob.pe. inictel.gob.pe origin = ns1.opticalip.com.pe mail addr = hostmaster.opticalip.com.pe serial = 2005070400 refresh = 3600 retry = 1800 expire = 604800 minimum = 3600 inictel.gob.pe nameserver = ns2.opticalip.com.pe. inictel.gob.pe nameserver = ns1.opticalip.com.pe. > set q=mx > inictel.gob.pe Server: NS1.OPTICALIP.COM.pe Address: 200.89.15.226#53 inictel.gob.pe mail exchanger = 10 mail.inictel.gob.pe. >exit [root@mandrake inictel]#
Cuadro 13. Comando nslookup consulta no interactiva

6.2.

Servidor Web - Apache

El Servidor Apache HTTP es un servidor Web de tecnologa Open Source slido y para uso comercial desarrollado por la Apache Software Foundation (http://www.apache.org).

Pgina oficial: http://httpd.apache.org.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

32

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 23. Servicio Cliente/Servidor

Caractersticas del Servidor Apache HTTP 2.0

La versin 2.0 del Servidor Apache HTTP contiene muchas caractersticas nuevas. Entre ellas se encuentran las siguientes: Nuevos mdulos Apache API se utiliza un nuevo conjunto de interfaces de aplicacin (APIs). Filtrado Los mdulos pueden actuar como filtros de contenido. Soporte para IPv6 Se tiene soporte para la nueva generacin de las direcciones IP. Directivas simplificadas Se han eliminado una serie de directivas complicadas y otras se han simplificado. Respuestas a errores en diversos idiomas Cuando usa documentos Server Side Include (SSI), las pginas de errores personalizables se pueden entregar en diversos idiomas Soporte a mltiples protocolos Se soportan diversos protocolos.

En el siguiente sitio web se muestra una lista completa de los cambios realizados: http://httpd.apache.org/docs/2.0/.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

33

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Mdulos Apache es una arquitectura modular, permitiendo agregar nuevos mdulos. Estos mdulos aaden funciones que no se encuentra en el cdigo de apache. Los mdulos son desarrollados por Apache o por terceros que desean adaptar su cdigo de apache.

Ejemplo: libphp4.so (soporte para pginas escritas en php) pgsql.so (Acceder a base de datos Postgrel va web) libperl.so (soporte para pginas web escritas en perl)

Logs Cada vez que un navegador accede a tu sitio genera un hit, del cual almacena el nombre del host, IP, da, hora, pgina accedida en el archivo: access_log Si sucede un error en levantar el demonio, o tiene problemas de acceso al Servidor Web, el archivo log: error_log, registra el motivo del problema. Con respecto al formato del log puede personalizarse en el archivo httpd.conf. Los logs, son utilizados en estadsticas pudiendo obtener, la cantidad de visitantes al da, semana, mes; que pgina ha visitado de su sitio; desde donde accedieron (nacional, internacional). El formato log de apache es soportado por diferentes programas analizadores de logs. En www.tucows.com/downloads/Linux (Puede encontrar varios analizadores). Si desea uno comercial, uno muy bueno es el WebTrends especialista en reportes de logs de todo tipo de servidor Web (NT, Unix, Netscape, Domino) www.webtrends.com

6.2.1. Paquetes

La configuracin mnima requiere los siguientes paquetes: Tarball httpd-2.0.55.tar.gz rpm apache2 apache2-modules
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

34

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

apache2-mod_*

Figura 24. Paquetes rpm

deb apache2 apache2-common apache2-modules apache2-utils

Figura 25. Paquetes deb

6.2.2. Demonios

HTTP se ejecuta con el demonio /usr/sbin/httpd2. (Ver Tabla 11)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

35

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Demonio httpd2

Descripcin Se ejecuta en servidores HTTP. Este demonio da servicios a las peticiones de los clientes.
Tabla 11. Demonio.

El servidor HTTP ejecuta el demonio: httpd2 El script /etc/init.d/httpd inicia el servicio.

Figura 26. Iniciando el demonio httpd2

En el caso de la distribucin Debian, el demonio httpd2 es manipulado utilizando el script /etc/init.d/apache2.

Figura 27. Iniciando el demonio httpd2

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

36

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.2.3. Configurando HTTP

Hay tres archivos de configuracin principales que son necesarios para poner en marcha el servidor HTTP: /etc/httpd/conf/httpd2.conf, es el archivo de configuracin principal: o o o Define las direcciones IP/nmeros de puertos. Mdulos. Archivos de registro, etc.

/etc/httpd/conf/commonhttpd.conf , define las variables globales del servidor: o o o Define el usuario que inicia el servidor. Control de acceso. Mensajes de error, etc.

/etc/httpd/conf/vhosts/Vhosts.conf, configura los hosts virtuales.

Para realizar los respectivos cambios utilizar cualquier editor de textos (vi, emacs, etc.) 6.2.3.1. Servidor Web

Figura 28. Servidor Web

Para

configurar

el

servidor

Web

se

necesitan

configurar

los

archivos

httpd2.conf,

commonhttpd.conf y Vhosts.conf.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

37

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Directiva ServerRoot ServerName PidFile

ErrorLog Listen

DocumentRoot LoadModule

Include

CustomLog

Descripcin Especifica el directorio donde se encuentran los archivos de configuracin del servidor Apache. Nombre o direccin IP ser servidor Apache. Especifica la ubicacin donde el servidor registrara el ID del proceso del demonio cuando se inicia. Define el directorio donde se almacenaran los archivos de registro de los errores del sitio web. Indica al servidor que acepte peticiones entrantes nicamente en los puertos y el combinacin de - direccin IP:numero de puerto que se especifiquen. Ejemplo: Listen 80 Listen 8080 Listen 192.168.1.66:80 Listen 192.168.1.82:880 Ubicacin donde se alojan las paginas web. Enlaza el archivo o biblioteca objeto y agrega la estructura del modulo a la lista de mdulos activos. Especifica la ubicacin de otros archivos de configuracin que puede incluir en el archivo httpd2.conf Define el directorio donde se almacenaran los archivos de registro de las estadsticas del sitio web.
Tabla 12. Directivas httpd2.conf

Directiva User

Descripcin Especifica el UID que ejecutara el demonio Apache.

Group

Especifica el GID que ejecutara el demonio Apache.

ServerAdmin DirectoryIndex

Direccin de correo del administrador. Especifica los nombres de los archivos que usara Apache como pagina predeterminada.

UseCanonicalName Configura la forma en que el servidor determina su propio nombre u puerto. Alias Permite redireccionar el acceso a un directorio que se encuentra fuera del directorio definido en DocumentRoot.
Tabla 13. Directivas commonhttpd.conf

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

38

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Para configurar el servidor HTTP se necesitan realizar las siguientes modificaciones: Parte del archivo /etc/httpd/conf/httpd2.conf: ### Main Configuration Section ### You really shouldn't change these settings unless you're a guru ### ServerRoot /etc/httpd/2.0 ServerName 192.168.1.67 PidFile /var/run/httpd.pid ErrorLog logs/error_log LogLevel warn DocumentRoot /var/www/html ### Dynamic Shared Object (DSO) Support ### ### You should always leave those three, as they are needed for ### normal use. ### mod_access (Order, Allow, etc..) ### mod_log_config (Transferlog, etc..) ### mod_mime (AddType, etc...) LoadModule access_module modules/mod_access.so LoadModule auth_module modules/mod_auth.so LoadModule auth_anon_module modules/mod_auth_anon.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule include_module modules/mod_include.so LoadModule log_config_module modules/mod_log_config.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so LoadModule usertrack_module modules/mod_usertrack.so LoadModule setenvif_module modules/mod_setenvif.so LoadModule mime_module modules/mod_mime.so LoadModule status_module modules/mod_status.so LoadModule autoindex_module modules/mod_autoindex.so LoadModule asis_module modules/mod_asis.so LoadModule info_module modules/mod_info.so LoadModule cgi_module modules/mod_cgi.so LoadModule vhost_alias_module modules/mod_vhost_alias.so LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so LoadModule imap_module modules/mod_imap.so LoadModule actions_module modules/mod_actions.so LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so ### ### Global Configuration ### # We now support multiple apache configurations on the same server. In # common.conf, we put all directives that are common to all implementations
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

39

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

# (httpd, httpd-perl, etc.) # For Apache2 we load all conf files in conf.d Include /etc/httpd/conf.d/*.conf Include conf/commonhttpd.conf ### ### IP Address/Port and Proxied configuration section ### # The APACHEPROXIED setting can be set in /etc/rc.d/init.d/httpd if you # are using a proxy or accelerator, like the Apache-SGI or khttpd, so that # the fast web server serves static content while Apache handles the # cgi or php files #BindAddress * <IfDefine APACHEPROXIED> Listen 8080 </IfDefine> <IfDefine !APACHEPROXIED> Listen 80 </IfDefine> ### ### Log configuration Section ### <IfModule mod_log_config.c> #Single logfile with access, agent and referer information #This is the default, if vlogs are not defined for the main server CustomLog logs/access_log combined env=!VLOG #If VLOG is defined in conf/vhosts/Vhost.conf, we use this entry CustomLog "|/usr/sbin/advxsplitlogfile" vhost env=VLOG </IfModule> ### ### Virtual Hosts ### # We include different templates for Virtual Hosting. Have a look in the # vhosts directory and modify to suit your needs. Include conf/vhosts/Vhosts.conf #Include conf/vhosts/DynamicVhosts.conf #Include conf/vhosts/VirtualHomePages.conf
Cuadro 14. Archivo /etc/httpd/conf/httpd2.conf

Parte del archivo /etc/httpd/conf/commonhttpd.conf ### Common server configuration # User apache Group apache # # ServerAdmin: Your address, where problems with the server should be
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

40

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

# e-mailed. This address appears on some server-generated pages, such # as error documents. # ServerAdmin root@ejemplo.com # # DirectoryIndex: Name of the file or files to use as a pre-written HTML # directory index. Separate multiple entries with spaces. # <IfModule mod_dir.c> DirectoryIndex index.html index.html.var index.php index.php3 index.shtml index.cgi index.pl index.htm Default.htm default.htm index.xml </IfModule> # # UseCanonicalName: (new for 1.3) With this setting turned on, whenever # Apache needs to construct a self-referencing URL (a URL that refers back # to the server the response is coming from) it will use ServerName and # Port to form a "canonical" name. With this setting off, Apache will # use the hostname:port that the client supplied, when possible. This # also affects SERVER_NAME and SERVER_PORT in CGI scripts. # UseCanonicalName On # # Aliases: Add here as many aliases as you need (with no limit). The format # is Alias fakename realname # <IfModule mod_alias.c> # # Note that if you include a trailing / on fakename then the server # will require it to be present in the URL. So "/icons" isn't aliased # in this example, only "/icons/".. # Alias /icons/ /var/www/icons/ Alias /doc /usr/share/doc # # ScriptAlias: This controls which directories contain server scripts. # ScriptAliases are essentially the same as Aliases, except that # documents in the realname directory are treated as applications and # run by the server when requested rather than as documents sent to the # client. # The same rules about trailing "/" apply to ScriptAlias directives as # to Alias. # ScriptAlias /cgi-bin/ /var/www/cgi-bin/ ScriptAlias /protected-cgi-bin/ /var/www/protected-cgi-bin/
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

41

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

<IfModule mod_perl.c> #Provide two aliases to the same cgi-bin directory, #to see the effects of the 2 different mod_perl modes #for Apache::Registry Mode Alias /perl/ /var/www/perl/ #for Apache::Perlrun Mode Alias /cgi-perl/ /var/www/perl/ </IfModule> </IfModule> # End of aliases.
Cuadro 15. Archivo /etc/httpd/conf/commonhttpd.conf

6.2.3.1.1. Hosts Virtuales

Permite habilitar varios dominios en el mismo servidor Web (Ver Figura 29), a continuacin dos opciones: Varios dominios con diferentes IPs Varios dominios con la misma IP

Ventajas: Estas opciones, permiten que no necesite otro servidor para instalar otro dominio. Utilizado en las empresas que ofrecen alojamiento de pginas Web, en un mismo servidor.

Figura 29. Hosts Virtuales

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

42

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.2.3.1.1.1.

Hosts virtuales con diferentes IPs

Este tipo de servidor permitir aprovechar una de las ventajas de Apache de poder administrar varios dominios en un mismo servidor. (Ver Figura 30)

Esta configuracin es utilizada en los proveedores de Internet para alojar los sitios de las empresas.

Para esta configuracin se necesitar tener como mnimo dos direcciones IP las cuales sern configuradas en el servidor Web.

En este caso nosotros tendremos dos dominios www.ejemplo.com y www.campus.com que se alojaran en el mismo servidor Web. Como nosotros ya tenemos configurado el dominio www.ejemplo.com (192.168.1.67) solo nos resta configurar el dominio www.campus.com.

Figura 30. Hosts virtuales con diferentes IPs

Segn la Figura 30 se tiene que la pagina Web del dominio www.campus.com esta asignada a la direccin IP 192.168.1.82.

Paso 1. Agregar la nueva direccin IP.

ifconfig eth0:0 192.168.1.82 netmask 255.255.255.0 up

En la Figura 31 se muestra el resultado:


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

43

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 31. Comando ifconfig

Toda configuracin realizada en consola desaparece al reiniciar el sistema, GNU/Linux posee el archivo rc.local, donde se agregaran las lneas de configuracin realizada en la consola. Estas lneas sern ejecutadas la prxima vez que reinicie GNU/Linux. (Ver Figura 32)

Figura 32. Archivo /etc/rc.local

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

44

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Paso 2. Modificar el archivo /etc/httpd/conf/vhosts/Vhosts.conf en la seccin IP-based Virtual Hosts, la seccin se apertura con la llave <VirtualHost x.y.z.v> </VirtualHost>. (Ver Tabla 14 y Cuadro 15) y se cierra con

Directiva ServerAdmin DocumentRoot

ServerName ErrorLog TransferLog

Descripcin Direccin de e-mail del responsable del sitio. Ubicacin donde comienza la raz del dominio web el cual debe de existir (crearlo), en el cual se debe de colocar una pagina predeterminada. Direccin IP o el dominio (192.168.1.82). Ubicacin del archivo log y el nombre a asignarle. Ubicacin del archivo log Access (Crear el directorio).
Tabla 14. Opciones de los Hosts virtuales

################# IP-based Virtual Hosts <VirtualHost 192.168.1.82> #User jmdault #Group jmdault DocumentRoot /var/www/html/campus ServerName 192.168.1.82 #Setenv VLOG /home/jmdault/logs ErrorLog /var/log/httpd/campus-error_log CustomLog /var/log/httpd/campus-access_log common RewriteEngine On RewriteOptions inherit </VirtualHost>
Cuadro 15. Hosts virtuales

Crear el directorio /var/www/html/campus. Los archivos log se crean automticamente. No olvidar poner la pgina predeterminada. Mediante un navegador compruebe la activacin del nuevo sitio. Reinicie el demonio, al levantarlo deber de obtener la conformidad de ok, si no es as revise el log.

Paso 3. Configuracin del servidor DNS primario, agregar las siguientes lneas en el archivo /etc/named.conf para crear la nueva zona campus.zone. (Ver Cuadro 16)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

45

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Options { directory "/var/named"; // Opciones adicionales en esta seccin }; zone ejemplo.com" { type master; file "ejemplo.zone"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.zone"; }; zone "campus.com" { type master; file "campus.zone"; }; Cuadro 16. Zona campus.zone

Crear el archivo de zona /var/named/campus.zone. (Ver Cuadro 17)

$TTL 172801 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 1 ; Nmero de serie 10800 ; Refresco despus de tres horas 3600 ; Reintentar despus de una hora 604800 ; Expirar despus de una semana 86400 ) ; TTL(Time to Live) mnimo de un da ; Name Server (NS) records. @ IN NSns.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.67 www IN A 192.168.1.82 ns IN CNAME pc01.ejemplo.com. Cuadro 17.Archivo de zona campus.zone

6.2.3.1.1.2.

Hosts Virtuales con la misma IP

El objetivo de esta configuracin es el aprovechar las direcciones IPs pblicas de Internet, debido a que estas direcciones son escasas y tienen un costo elevado. (Ver Figura 32)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

46

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Se puede tener los siguientes dominios y que todas la peticiones a los dos sitios posean la misma direccin IP, direccionandolos al mismo servidor: www.empresax.com www.empresay.com

Figura 33. Hosts virtuales con diferentes IPs

Paso 1. Agregar la nueva direccin IP. ifconfig eth0:1 192.168.1.83 netmask 255.255.255.0 up

Paso 2. Apache identifica un host virtual con el parmetro NameVirtualHost, la IP indicada ser tomada como referencia para realizar la bsqueda de sitios virtuales en las secciones definidas para cada sitio empiezan con <VirtualHost ip> y finaliza con </VirtualHost>. (Ver Cuadro 18)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

47

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

################# Named VirtualHosts NameVirtualHost 192.168.1.83 <VirtualHost 192.168.1.83> ServerName www.empresax.com DocumentRoot /var/www/html/empresax </VirtualHost> <VirtualHost 192.168.1.83> ServerName www.empresax.com DocumentRoot /var/www/html/empresay </VirtualHost>
Cuadro 18. Hosts virtuales

Paso 3. Configuracin del servidor DNS primario, agregar las siguientes lneas en el archivo /etc/named.conf para crear las nuevas zonas: empresax.zone y empresay.zone. (Ver Cuadro 19)

Options { directory "/var/named"; // Opciones adicionales en esta seccin }; zone ejemplo.com" { type master; file "ejemplo.zone"; }; zone "1.168.192.in-addr.arpa" { type master; file "1.168.192.in-addr.arpa.zone"; }; zone "campus.com" { type master; file "campus.zone"; }; zone empresax.com" { type master; file "empresax.zone"; }; zone empresay.com" { type master; file "empresay.zone"; }; Cuadro 19. Zonas empresax.com y empresay.com

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

48

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Crear el archivo de zona /var/named/empresax.zone. (Ver Cuadro 20)

$TTL 172802 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 1 ; Nmero de serie 10800 ; Refresco despus de tres horas 3600 ; Reintentar despus de una hora 604800 ; Expirar despus de una semana 86400 ) ; TTL(Time to Live) mnimo de un da ; Name Server (NS) records. @ IN NSns.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.66 www IN A 192.168.1.83 ns IN CNAME pc01.ejemplo.com. Cuadro 20. Archivo de zona empresax.com

Crear el archivo de zona /var/named/empresax.zone. (Ver Cuadro 21)

$TTL 172802 @ IN SOA ns.ejemplo.com. root.ejemplo.com. ( 1 ; Nmero de serie 10800 ; Refresco despus de tres horas 3600 ; Reintentar despus de una hora 604800 ; Expirar despus de una semana 86400 ) ; TTL(Time to Live) mnimo de un da ; Name Server (NS) records. @ IN NS ns.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.66 www IN A 192.168.1.83 ns IN CNAME pc01.ejemplo.com. Cuadro 21. Archivo de zona empresay.com

6.2.3.1.2. Autenticacin

Apache permite restringir el acceso mediante una autenticacin de usuario y contrasea. 6.2.3.1.2.1. Comando htpasswd

Usado para crear y actualizar los archivos

usados para almacenar nombres de usuario y

contraseas para una autenticacin bsica de usuarios HTTP.


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

49

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Sintaxis: htpasswd [opciones] archivo_contraseas nombre_usuario

Opcin -c -m -d -D

Descripcin Crea el archivo_contraseas Fuerza el uso de encriptacin MD5 para la contrasea. Fuerza el uso de encriptacin CRYPT para la contrasea. (Predeterminado) Elimina el usuario especificado.
Tabla 15. Opciones del comando htpasswd

6.2.3.1.2.2.

Procedimiento

Paso 1. Primero hay que crear el archivo de contraseas que se llamara users, esto se logra creando el primer usuario: htpasswd c /usr/local/etc/users nombre_usuario

Figura 34. Comando htpasswd

Paso 2. Luego para crear otro usuario:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

50

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 35. Comando htpasswd

Para modificar la contrasea de un usuario: htpasswd /usr/local/etc/users sonia

NOTA: En todas las opciones le ser solicitado una contrasea. Al editar el archivo users (Ver Figura 36):

Figura 36. Archivo /usr/local/etc/users

Paso 3. En el archivo /etc/httpd/conf/commonhttpd.conf la seccin que hay que modificar comienza aperturando la llave <Directory {directorio del sitio a proteger}> y cerrando con </Directory>. (Ver Cuadro 23, Tabla 16 y Figura 14)

No olvidar crear el directorio /var/www/html/seguro

Variables AuthName AuthType AuthUserFile require valid-user

Descripcin etiqueta seguridad ubicacin del archivo de contraseas validara el ingreso con el archivo de seguridad
Tabla 16. Opciones

<Directory /var/www/html/seguro> order allow,deny allow from all AuthName "Acceso Restringido" AuthType Basic AuthUserFile /usr/local/etc/users require valid-user </Directory> Cuadro 23.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

51

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 37. Pagina Web segura

6.2.3.1.3. Archivos de registro

Todo lo que sucede con el servicio de mensajeria se registra en el los archivos que se guardan en el directorio /var/log/httpd.

Figura 38. Archivos de registro

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

52

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Al ejecutar el siguiente comando se mostrara el contenido del archivo /var/log/httpd/access_log en tiempo real: tail -f /var/log/httpd/access_log

Figura 39. Archivo /var/log/httpd/access_log

6.3.

Servidor de Correo

Existe una gran variedad de programas de correo electrnico que proveen al usuario de una aplicacin para la creacin y envo de correo. Estos programas son los llamados Agentes de Usuario o MUA (Mail User Agent), y su propsito es el aislar al usuario de los Agentes de Transporte o MTA (Mail Transport Agent), que son los encargados de transferir los mensajes a su correcto destino. (Ver Figura 40)

Figura 40. Servicio Cliente/Servidor


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

53

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Caractersticas de un servidor de correos: Basado en una estructura cliente/servidor. Intercambio de mensajes a travs de las redes de computadoras. El identificador del usuario es la direccin de correo electrnico. La direccin e-mail es nica, no pudiendo haber duplicados, las estructura bsica de una direccin e-mail es: nombre_de_usuario@dominio_correo El correo electrnico e-mail, permite enviar informacin entre las personas en Internet por medio de computadoras. Los servidores de correo deben de soportar los siguientes protocolos: SMTP POP3 IMAP4 6.3.1. Protocolos

6.3.1.1.

SMTP (Simple Mail Transfer Protocol)

Es el protocolo estndar de transferencia de correo en Internet. Es un protocolo que define el procedimiento para transferir correos entre dos computadoras. Realiza la tarea de definir el formato del mensaje y el mtodo para enviar los mensajes. SMTP proporciona un mtodo para transferir correos sobre un protocolo de transporte como el TCP/IP. Protocolo utilizado para el envo de mensajes a otros servidores de correos y la recepcin de los mensajes de los usuarios. El puerto que habilita es el 25.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

54

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 41. Conversacin SMTP

6.3.1.2.

POP3 (Post Office Protocol)

Es el protocolo de recuperacin de correo electrnico ms utilizado en la actualidad. Permite recuperar el correo pero este se almacenar localmente en el disco duro de las mquinas de los usuarios. La entrega de los mensajes a los clientes del servidor es mediante un nombre (login) y una contrasea, , los mensajes son transferidos a su cliente. El puerto que habilita es el 110.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

55

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 42. Conversacin POP3

6.3.1.3.

IMAP4 (Internet Message Access Protocol)

Es un protocolo con ms opciones a comparacin de POP, soporta algunas caractersticas que no estn incluidas en POP, como la manipulacin de mltiples carpetas remotas, visualizar correos sin necesidad de bajarlo del servidor. Este protocolo almacena el correo electrnico, y permite la creacin de carpetas de usuario, en el servidor. De modo tal, los usuarios pueden acceder desde cualquier parte del mundo a su buzn de correo y carpetas personales. IMAP tambin facilita la utilizacin de webmails (servicios de correo basado sobre web). El puerto que habilita es el 143.

6.3.2. Buzones

6.3.2.1.

mbox

Es el mtodo tradicional de almacenar correos en servidores tipo UNIX. Los correos segn van llegando se van concatenando en un nico archivo. Solo un proceso puede abrir el archivo mbox en modo lectura/escritura. Acceso concurrente requiere mecanismo de bloqueo. Durante la actualizacin del archivo mbox, todo el resto deben esperar.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

56

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Por defecto el archivo es /var/spool/mail/nombre_usuario Para indicar fin y comienzo de mail: o o Cada correo empieza por From: Y acaba con una lnea en blanco.

Figura 43. Estructura de un mensaje - mbox

6.3.2.2.

maildir

Implementados inicialmente por el servidor Qmail para mejorar los mbox. Cada mensaje en un archivo individual. Mensaje en formato RFC 822. o o o Comienza con la cabecera Return-Path: Seguido de la cabecera Delibered-To: No puede acabar con lnea en blanco.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

57

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 44. Estructura de un mensaje - maildir

No es necesario bloquear los correos. Hay un procedimiento definido de aadir nuevos correos al maildir. Un maildir se compone por 3 subdirectorios: tmp, cur, new. Existe una manera definida para nombrar a cada archivo.

Figura 45. Estructura del directorio Maildir

Mltiples procesos pueden acceder al mismo tiempo a los maildirs Maildirmake Comando para crear maildirs.

Sintaxis:
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

58

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

maildirmake [opciones] maildir Crea automticamente los 3 directorios: o new o cur o tmp

Ejemplo 1: Indicamos la quota a aplicar sobre el maildir. maildirmake -q quota

Ejemplo2: Crea un maildir compartible. Diferentes permisos. maildirmake -S

Ejemplo 3: No crea un maildir, sino una carpeta dentro del maildir. maildirmake -f folder:maildirmake -q 5000000S,1000C ./Maildir/

6.3.3. SPAM

Mensajes de correo comerciales no solicitados. Tambin conocido como UBE o UCE. Debido a servidores de correo mal configurados, gusanos que infectan ordenadores, contraseas de correo robadas, etc. RBL (Realtime Blackhole List): Comprobar si una IP est en alguna lista de negra. o o o http://rbls.org/ Todo software antispam se puede equivocar: Falsos Negativos: Cuando el software antispam no es capaz de detectar un correo no solicitado: Falsos Positivos: Son los ms graves. Cuando un correo legtimo es clasificado como spam. Un buen software antispam es el que no tiene falsos positivos y muy pocos falsos negativos. DNS BlockList (DNSbl) o o Comprueba la IP del cliente. Hay que tener cuidado con las listas. Si no est actualizada puede provocar perdidas.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

59

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Difcil seguir un criterio justo. o Listas recomendadas cbl.abuseat.org dul.dnsbl.sorbs.net list.dsbl.org opm.blitzed.org relays.ordb.org sbl.spamhaus.org xbl.spamhaus.org Right-Hand Side BlockList (RHSbl) o o Comprueba el host y nombre de dominio Listas recomendadas blackhole.securitysage.com rhsbl.sorbs.net 6.3.4. Paquetes

La configuracin mnima requiere los siguientes paquetes: Tarball postfix-2.2.5.tar.gz imap-2204e.tar.Z (Permite el uso de mbox) courier-imap-4.0.6.tar.bz2 (Permite el uso de maildir) rpm postfix imap-2004 mailx amavis-postfix postfix-ldap postfix-mysql postfix-pcre postfix-pgsql imap-utils-2004 dovecot courier-imap courier-imap-pop

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

60

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 46. Paquetes rpm

deb postfix qpopper mailutils-imap4d mailx amavisd-new postfix-doc postfix-ldap postfix-mysql postfix-pcre postfix-pgsql postfix-tls ipopd dovecot courier-imap courier-imap-pop

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

61

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 47. Paquetes deb

6.3.5. Demonios

El servidor de correo ejecuta varios demonios.

Las funciones de los demonios (Ver Tabla 17):

Demonio postfix

ipop3d in-qpopper pop3d.rc

imapd imap4d imapd.rc

Descripcin Este demonio da servicios a las peticiones de los clientes de correo mediante el protocolo SMTP. Este demonio da servicios a las peticiones de los clientes de correo mediante el protocolo POP3 (mbox). Este demonio da servicios a las peticiones de los clientes de correo mediante el protocolo POP3 (maildir). Este demonio da servicios a las peticiones de los clientes de correo mediante el protocolo IMAP4. Este demonio da servicios a las peticiones de los clientes de correo mediante el protocolo POP3.
Tabla 17. Demonios.

Los demonios necesarios para ejecutar el servidor de correo, se inician desde los scripts de
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

62

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

arranque (boot scripts) El script /etc/init.d/postfix inicia el servicio postfix. El script /etc/init.d/xinetd inicia los demonios ipop3d e imapd.

Figura 48. Iniciando los demonios

6.3.6. Envo de mensajes

Envo de mensajes entre usuarios del mismo servidor de correo

Figura 49. Transferencia de mensajes.


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

63

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Transferencia de mensajes entre el cliente y el servidor Mediante el acceso al puerto SMTP del servidor se enva el correo. Por el puerto POP3, se recogen los mensajes del usuario. (Ver Figura 50)

Figura 50. Transferencia de mensajes

Transferencia de mensajes entre servidores de correo. Cuando un mensaje tiene como destino un dominio diferente al dominio local (ejemplo.com), el servidor de correo mail.ejemplo.com procede a realizar una consulta al servidor DNS de la direccin IP del servidor de correo del dominio destino (inictel.gob.pe). El servidor DNS busca en el dominio inictel.gob.pe, un registro MX 10, consiguiendo la direccin IP del servidor de correo. Con estos datos el servidor de correo mail.ejemplo.com ubica al servidor de correo mail.inictel.gob.pe, procediendo a enviar el mensaje por el puerto SMTP. Al recibir el mensaje mail.inictel.gob.pe, comprueba la existencia del usuario, si no existiera seria devuelto un mensaje de rechazo del correo hacia la direccin de origen. (Ver Figura 51)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

64

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 51. Transferencia de mensajes entre servidores SMTP

6.3.7. Configurando servicio de mensajeria.

Figura 52. Servicio de mensajeria

6.3.7.1.

Servidor POP e IMAP

Primero se deber instalar el paquete imap-2004-1mdk en nuestro servidor: rpm ivh imap-2004-1mdk.i586.rpm

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

65

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Este paquete proporciona demonios servidores para ambos protocolos de acceso de correo IMAP y POP.

Luego acceder al directorio /etc/xinet.d/ y edite los archivo pop3s, imap e imaps, segn lo requiera.

Estos requerirn edite una sola lnea para habilitar el servicio, por ejemplo para activar el protocolo IMAP modificaremos la entrada: disable = no (Ver Figura 53 ):

Figura 53. Archivo /etc/xinetd.d/imap

Lo mismo aplica para el protocolo POP3S e IMAPS.

En el caso del archivo ipop3 no es necesario realizar ninguna modificacin. (Ver Figura 54)

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

66

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 54. Archivo /etc/xinetd.d/ipop3

Hecho lo anterior, es necesario reiniciar el daemon xinetd con la siguiente lnea de comando:

/etc/init.d/xinetd restart

Verificaremos que los puertos de los servicios estn abiertos y respondiendo: netstat a | less

Figura 55. Puertos pop3 e imap escuchando

Probando que el servidor POP3 se inicio sin ningn problema:


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

67

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 56. Probando servidor POP3

Probando que el servidor IMAP4 se inicio sin ningn problema:

Figura 57. Probando servidor IMAP4

6.3.7.2.

Servidor MTA Postfix

Postfix es una MTA (Mail Transport Agent), encargado de transferir los mensajes a su correo destino, escrito en C. Wietse Zweitze Venema, IBM hacker. Su pgina oficial es: http://www.postfix.org

Caractersticas:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

68

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Servidor SMTP que funciona sobre sistemas tipo UNIX. Arquitectura y diseo muy modular. Cada proceso se ejecuta con privilegios mnimos para su tarea. Fcil de administrar y configurar. Muy rpido, diseado pensando en el rendimiento. Evita saturar otros sistemas. Repartir correo de forma local, puede repartir a los buzones de correo o pasarlo a un MDA (Mail Delivery Agent). Procesos que no se necesitan se deshabilitan. Los procesos se aslan unos de otros. Muy poca comunicacin entre procesos (IPC). Evita utilizar buffers de tamao fijo, evitando que tengan xito ataques buffer overflow Puede ejecutarse en chroot (/var/spool/postfix). Preparado para ataques DoS. Cantidad de memoria controlada.

Figura 58. Estructura modular de Postfix

Las elipses son programas de correo. Las cajas son colas de correo o archivos. Las cajas ovaladas son tablas lookup.

Estructura del correo entrante:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

69

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 59. Postfix correo entrante

Estructura del correo saliente:

Figura 60. Postfix correo saliente

Postfix basa su funcionamiento en cuatro colas: maildrop, incoming, active y deferred.

Cola maildrop incoming


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

Descripcin El correo que es generado y/o entregado localmente en el sistema es procesado por esta cola. Esta cola recibe correo de otros hosts, clientes o de la
70
ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

active deferred

cola maildrop. Si llegan correos y Posftix no puede atenderlos se quedan esperando en esta cola. En esta cola estn los mensajes en fase de encaminamiento. Espacio limitado. En esta cola se almacenan los mensajes que no se han podido encaminar o estn pendientes de reintentar su encaminamiento.
Tabla 18. Colas

Postfix gestiona las colas mediante procesos independientes.

Proceso pickup smtpd cleanup qmgr

local smtp

Descripcin Recoge los correos que provienen de la cola maildrop y los pasa a cleanup. Este proceso atiende, mediante protocolo SMTP, los correos de otros sistemas Analiza las cabeceras de los correos. Si ok, los deposita en la cola incoming Proceso encargado de tratar los correos que llegan a incoming, depositarlos en active y lanzar el proceso adecuado para su encaminamiento: local, smtp o pipe. Proceso encargado de depositar el correo en el buzn. Proceso encargado de enviar el correo al host destino mediante protocolo SMTP.
Tabla 19. Procesos

Para configurar este servicio solo se necesitan modificar los archivos: /etc/postfix/main.cf Es el archivo principal, donde reside el corazn del funcionamiento de Postfix. No tiene una estructura concreta, por lo que se recomienda analizar con mayor detalle las directivas segn sus propias necesidades. # These are only the parameters changed from a default install see # /etc/postfix/main.cf.dist for a commented, fuller version of this file. # These are changed by postfix install script readme_directory = /usr/share/doc/postfix-2.1.4/README_FILES sample_directory = /usr/share/doc/postfix-2.1.4/samples html_directory = /usr/share/doc/postfix-2.1.4/html sendmail_path = /usr/sbin/sendmail.postfix setgid_group = postdrop command_directory = /usr/sbin manpage_directory = /usr/share/man daemon_directory = /usr/lib/postfix newaliases_path = /usr/bin/newaliases.postfix mailq_path = /usr/bin/mailq.postfix queue_directory = /var/spool/postfix mail_owner = postfix
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

71

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

# User configurable parameters myhostname = mandrake.ejemplo.com mydomain = ejemplo.com myorigin = $mydomain mydestination = $myhostname $mydomain localhost.$mydomain $myhostname.$mydomain mynetworks = 192.168.1.0/24, 127.0.0.0/8 inet_interfaces = all mynetworks_style = host delay_warning_time = 4h smtpd_banner = $myhostname ESMTP $mail_name ($mail_version) (Mandrake Linux) unknown_local_recipient_reject_code = 450 alias_database = hash:/etc/postfix/aliases alias_maps = hash:/etc/postfix/aliases smtp-filter_destination_concurrency_limit = 2 lmtp-filter_destination_concurrency_limit = 2 smtpd_sasl_path = /etc/postfix/sasl:/usr/lib/sasl2
Cuadro 24. Archivo /etc/postfix/main.cf

En el archivo main.cf podemos asignar valores:

Valor Parmetros

Clases de restricciones

Descripcin Usado para signar valores como nombres de hosts, direcciones IP, nmero de bytes en el caso de algunos limites, etc. Permite (que en realidad tambin son parmetros) asignar una serie de restricciones, que definen fundamentalmente de/para quien vamos a aceptar mensajes.
Tabla 20.

Los parmetros principales que controlan el funcionamiento son:

Parmetro myhostname mydomain myorigin mydestination mynetworks inet_interfaces relay_domains notify_clases

Descripcin Nombre del servidor. Nombre del dominio. Nombre del dominio usado para los mensajes salientes. Especifica a que dominios entregar localmente. Especifica que equipos pueden usar el servidor. Indica que interfaces de red debe escuchar el servidor. Restringe los dominios donde los clientes usan el servidor para enviar mensaje (relay) o que dominios va a servir el servidor. Indica el nivel de error a notificar, usado para saber porque no se entrego un mensaje. bounce Enva al postmaster copias de los mensajes no entregados. 2bounce Enva dos copias del mensaje que rebota. policy Informa al postmaster las peticiones rechazadas por politicas UCE de otros servidores.
72
ADMINISTRACIN EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Informa al postmaster cualquier error de protocolos, cliente o servidor, o intentos de algun cliente de ejecutar comandos no implementados. resource Informa al postmaster de los mensajes no entregados por algun problema de recursos (erores lectura/escritura, cola, etc.). software Informa al postmaster de problemas de software. mailbox_size_limit Indica el tamao mximo de los buzones de correo. messages_size_limit Indica el tamao mximo de la cola de Postfix, incluyendo la informacin del envo (cabeceras, recipientes, etc.).
Tabla 21. Parmetros del archivo main.cf

protocol

Las clases de restricciones (Restriction Class), controlan el acceso del correo entrante, cada una de las cuales puede tomar como su valor una serie de restricciones.

Clase Conexin HELO/EHLO MAIL FROM RCPT TO

Parmetro smtp_client_restrictions smtp_helo_restrictions smtp_sender_restrictions smtp_recipient_restrictions

Tabla 22. Clases de restricciones

postqueue

Controla la cola de Postfix

Sintaxis: postqueue f postqueue p

Donde: -f Intenta entregar todos los mensajes que se encuentran en la cola de mensajes. -p Lista los mensajes que se encuentran en la cola de mensajes.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

73

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 61. Comando postqueue

postsuper

Gestiona las tareas en la cola Postfix.

Sintaxis: postsuper d id_cola postsuper h id_cola postsuper H id_cola

Donde: -d Borra un mensaje que se encuentra en la cola Postfix. Especifique d ALL para borrar todos los mensajes. -h Mueve un mensaje a la cola hold. Especifique h ALL para mover todos los mensajes. -H Mueve un mensaje de la cola hold a la cola deferred. Especifique H ALL para mover todos los mensajes.

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

74

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 62. Comando postsuper

Figura 63. Comando postsuper

postconf

Utilitario de configuracin que muestra informacin referente al sistema de correo Postfix.


75
ADMINISTRACIN EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Sintaxis: postconf

Figura 64. Comando postconf

/etc/postfix/master.cf Este archivo contiene la configuracin para los procesos maestros de Postfix. Cada lnea indica como un componente debe funcionar. (Ver siguiente cuadro)

#======================================================================== # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) #======================================================================== smtp inet n - y - - smtpd pickup fifo n - y 60 1 pickup -o content_filter= -o receive_override_options= cleanup unix n - y - 0 cleanup qmgr fifo n - y 300 1 qmgr tlsmgr fifo - - y 300 1 tlsmgr rewrite unix - - y - - trivial-rewrite bounce unix - - y - 0 bounce defer unix - - y - 0 bounce trace unix - - y - 0 bounce
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

76

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

verify unix - flush unix n proxymap unix smtp unix - - y relay unix - showq unix n error unix - local unix virtual unix lmtp unix - - y anvil unix - -

y - 1 verify y 1000? 0 flush n - - smtp y - - smtp y - - showq y - - error n n n n - - lmtp y - 1 anvil

proxymap

local virtual

Cuadro 25. Archivo /etc/postfix/master.cf

Cada entrada en el archivo es un conjunto de ocho campos separados por blancos o tabuladores, y cuyo orden y significado es:

service

type

private

unprivileged chroot

wakeup

maxprocess command

Campo Service Type Private Unprivileged Chroot Wakeup Maxprocess Command

Descripcin Nombre del servicio que se est configurando. Tipo de comunicacin de transporte utilizado por el servicio. Restricciones de seguridad a procesos externos. Ejecucin en modo no privilegiado. Indica si el servicio se ejecuta en un directorio de acceso restringido. Segundos que deben transcurrir para que el proceso master despierte el servicio. Nmero mximo de procesos que puede usar el servicio. Nombre del programa a ejecutar y parmetros a pasar.
Tabla 23. Descripcin de los campos del archivo master.cf

Service

Cada servicio de Postfix debe tener una entrada en el fichero master.cf, que son:

Servicio bounce bsmtp cleanup cyrus defer error flush ifmail lmtp local pickup
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

Descripcin Devuelve al remitente los mensajes rechazados. Encamina mensajes mediante el protocolo BSMTP. Procesa el correo entrante y soluciona posibles problemas en las direcciones de correo. Encamina correo mediante Cyrus Mail. Encamina mensajes fallidos o reintenta encaminar mensajes que estn en la cola defer. Fuerza que un mail sea rechazado. Mantiene el control de los mensajes que estn pendientes de encaminar. Encamina mensajes mediante ifmail. Encamina mensajes mediante el protocolo LMTP. Encamina mensajes a usuarios locales. Gestiona los mensajes que estn esperando en la cola incoming.
77
ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

qmgr relay rewrite showq smtp uucp

Procesa los mensajes que estn en la cola incoming y decide cul debe ser el mtodo de encaminamiento. Recibe y encamina mensajes mediante el protocolo SMTP. Rescribe o verifica que las direcciones estn en formato FQDN Proporciona informacin sobre el estado de las colas Recibe y encamina mensajes mediante el protocolo SMTP. Recibe y encamina mensajes mediante el protocolo UUCP.
Tabla 24. Descripcin de los servicios

Type

Especfica el mecanismo utilizado por el proceso para comunicarse con otros mdulos, que puede ser de tres tipos: Internet sockets (inet) Unix sockets (unix) Pipes con nombre (fifo)

Private

Indica cundo el canal de comunicacin de un proceso debe estar accesible a procesos ajenos a Postfix. Postfix utiliza dos subdirectorios: public y private, donde se crean los pipes con nombre de cada uno de los servicios, en funcin de que sean pblicos o privados.

Unprivileged Especfica con qu privilegio de usuario se ejecuta el servicio. Si se especifica y (que es el valor por omisin) el servicio se ejecuta con los del usuario descrito en la directiva mail_owner de main.cf, que por defecto es postfix. Si se indica n, el servicio se ejecuta con privilegios de root. Chroot Se indica que el servicio se ejecuta en un entorno chroot, lo que proporciona niveles adicionales de seguridad. Esta opcin se activa indicando y en este campo. Una nica restriccin: los procesos local y pipe no pueden ejecutarse en modo chroot. Wakeup Indica los segundos que deben transcurrir para que el proceso master enve una seal para despertar el servicio correspondiente. En la actualidad slo los servicios pickup, qmgr y flush utilizan esta directiva. Existe una opcin adicional, que es aadir el smbolo ? al final del valor que seala el intervalo. Con esto se indica al proceso master que slo enve la seal de despertar al servicio si este se est ejecutando. En la actualidad slo flush soporta esta funcionalidad. Maxprocess Especfica el nmero mximo de procesos que puede tener en ejecucin el servicio. En caso de no indicarse nada se admiten 50 procesos. Commands Determina el programa que debe ejecutarse para dar soporte al servicio definido. Todos los programas admiten las siguientes opciones: -v Habilita mayor detalle de log. -D Activa el modo debug.
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

78

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.3.7.2.1. Tablas lookup

Las tablas lookup, creadas por el administrador, sirven a los procesos para saber que tratamiento hay que dar a cada correo. Son 6 tablas lookup aunque no son obligatorias:

Tabla access aliases canonical relocated transport virtual

Descripcin Sistemas a los que se acepta o rechaza los correos. La utiliza proceso smtpd. Define nombres alternativos a usuarios locales. Consulta el proceso local. Relacin entre nombres alternativos y reales, locales o no. Proceso cleanup. Devolver los mensajes que han cambiado de direccin. Proceso qmgr. Poltica de encaminamiento por dominios. Proceso trivial-rewrite. Relacin entre usuarios virtuales y reales. Proceso cleanup
Tabla 25. Tablas lookup

Postfix soporta muy diversos soportes de backend para las tablas. Algunos de ellos:

Soporte Hash MySQL

PostgreSQL LDAP

Descripcin El archivo generado es un hash. Disponible para sistemas con soporte BD db. Mapeo de las tablas de postfix a MySQL. Actualmente no es la mejor solucin. Bastante sencilla de implementar. Mapeo de las tablas de postfix a PostgreSQL. Dificultad mediana. Mapeo de las tablas de postfix a LDAP. Actualmente es la mejor solucin aunque la ms complicada de implementar, sobre todo contra Active Directory. No hay esquemas propios para LDAP. Tabla 26. Soportes

Formato de las tablas lookup: regexp:/ruta/nombre_archivo Postfix soporta bsquedas de expresiones regulares. A diferencia de otros archivos, estos no necesitan ser procesados por el comando postmap, simplemente con ejecutar postfix reload despus de editarlos es suficiente. Ejemplo del contenido de la tabla:

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

79

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

/^amigo@dominio.com.*/ OK /^postmaster@.*$/ RELAY /[aA][cC]v@subdominio.*$/ REJECT /hahaha/ 550 Esto es un SAPM Cuadro 26. hash:/ruta/nombre_archivo Despus de editarlo se debe ejecutar los comandos: postmap /ruta/nombre_archivo postfix reload

Ejemplo del contenido de la tabla:

dominio.com OK spammer@spammer.com REJECT spammer@ REJECT 192.168.1.99 450 Sin resolver Cuadro 27. Perl Common Regular Expressions pcre:/ruta/nombre_archivo

Ejemplo del contenido de la tabla:

/^begin\s+\d{3}\s+.+?\.(bat|chm|cmd|com|hta|jse?|pif|scr|shb|vb[esx]|ws[fh])\b/ REJECT /^\s+(file)?name="?.+?\.(bat|chm|cmd|com|hta|jse?|pif|scr|shb|vb[esx]|ws[fh])\b/ REJECT


Cuadro 28.

mysql:/ruta/nombre_archivo

Las tablas son archivos donde se crea una expresin regular y un resultado. Los resultados pueden ser los siguientes:

Resultado OK REJECT RELAY ERRORNO razn

Descripcin Permite la accin. Rechaza la accin. Permite relay Un nmero de error y una razn del error. Ejemplo: 450 Direccin desconocida error DNS 554 Restriccin UCE 504 Remitente desconocido
Tabla 27. Resultados 80
ADMINISTRACIN EN REDES GNU/LINUX

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

postmap

Administrador de tablas lookup. Sintaxis: postmap tabla

6.3.7.2.2. Tabla lookup aliases

El archivo aliases, normalmente situado en el directorio /etc/postfix, puede ayudar a mapear usuarios que realmente existen en servidores internos, o podemos mapear direcciones de correo de usuarios que no tienen cuenta real en nuestro servidor, o podremos de una forma fcil crear y mantener listas de correo.

Figura 65. Archicvo /etc/postfix/aliases

Una vez que se ha editado el archivo aliases, habr que generar el nuevo mapa de alias con cualquiera de los siguientes comandos: postalias Crea o consulta una o mas base de datos alias. Sintaxis: postalias [tipo_tabla:]archivo

newaliases

Reconstruye la base de datos alias. Sintaxis: newaliases

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

81

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 66. Comando newaliases

6.3.7.2.3. Bloquear UCE

Para evitar que nuestro servidor de correos sea usado para hacer SPAM. Las opciones son las siguientes: Permitir que los equipos locales puedan hacer relay. No permitir a los equipos externos hacer relay. Permitir a los clientes confiables hacer relay. Denegar a los clientes no confiables hacer relay.

Para lograr estos objetivos, tenemos las siguientes herramientas: Filtrado de la cabecera del mensaje (header_checks). Filtrado del cuerpo del mensaje (body_checks). Restricciones del emisor (smtpd_sender_restrictions). Listas de bloqueo basada en DNS (smtpd_client_restrictions). o Restricciones UCE. Uso del comando HELO (smtpd_helo_required y smtpd_helo_restrictions). Direcciones de correo RFC821 (strict_rfc821_envelopes). Restricciones del destinatario (smtpd_recipient_restrictions). 6.3.7.2.3.1. Filtrado de la cabecera del mensaje

La directiva header_checks restringe que cabeceras se permiten en un mensaje. Debe estar acompaada de una tabla lookup. Una configuracin tpica en el main.cf sera:

header_checks = regexp:/etc/postfix/cabeceras

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

82

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Contenido del archivo /etc/postfix/cabeceras

/^to: *friend@public\.com$/ REJECT /^From: Hahaha hahaha@sexyfun.net$/ REJECT /^Subject: Enanito si, pero con que pedazo!$/ REJECT /^Subject: Re: Your password!$/ REJECT Estas infectado con el Frethem. Desinfctate /^Date: .* 200[0-2]/ REJECT Spam Header Past Date 1 /^Date: .* 19[0-9][0-9]/ REJECT Spam Header Past Date 2 Cuadro 29. 6.3.7.2.3.2. Filtrado del cuerpo del mensaje

La directiva body_checks permite hacer un filtrado del cuerpo del mensaje. Debe estar acompaada de una tabla lookup. Una configuracin tpica en el main.cf sera:

body_checks = regexp:/etc/postfix/cuerpo

Archivo /etc/postfix/cuerpo:

# Virus /(filename|name)=(Happy99|Navidad|prettypark)\.exe/REJECT /(filename|name)=(pretty park|zipped_files|flcss)\.exe/ REJECT /(filename|name)=(Msinit|wininit|msi216)\.exe/ REJECT /(filename|name)=(Avp_updates|Qi_test|Anti_cih)\.exe/ REJECT /Te mando este archivo para que me des tu punto de vista/ REJECT /Espero te guste este archivo que te mando/ REJECT # Archivos extraos /(filename|name)=.*\.(asd|chm|dll|hlp|hta|js|ocx|pif)\.exe/ REJECT /(filename|name)=.*\.(scr|shd|shs|vb|vbe|vbs|wsf|wsh)\.exe/ REJECT # CLSID /(filename|name)=.*\.\{.*\}/ REJECT
Cuadro 30.

6.3.7.2.3.3.

Restricciones del emisor

El parametro smtpd_sender_restrictions restringe las direcciones que el sistema acepta cuando se ingresa el coamndo MAIL FROM. Una configuracin tpica en el main.cf sera:

smtpd_sender_restrictions=hash:/etc/postfix/access reject_unknown_sender_domain permit_mynetworks

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

83

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Las listas de control de acceso (ACL), son las direcciones de e-mail que NO pueden enviar correo a nuestro servidor. Contenido del archivo /etc/postfix/access:

bob@yahoo.com REJECT techmail.com REJECT


Cuadro 31.

Cada vez que se modifica el archivo /etc/postfix/access debemos ejecutar: postmap /etc/postfix/access postfix reload

6.3.7.2.3.4.

Listas de bloqueo basada en DNS

Las listas de bloqueo son unas listas de IP de servidores que supuestamente envan spam. Entre las listas ms usadas se encuentran las RBL de mail-abuse.org o las SBL de spamhaus.org. Una configuracin tpica en el main.cf sera:

smtpd_client_restrictions= permit_mynetworks reject_non_fqdn_recipient reject_rbl_client relays.orbd.org reject_rbl_client sbl.spamhaus.org reject_unauth_destination 6.3.7.2.3.5. Uso del comando HELO

El parametro smtpd_helo_required determina si los clientes deben envar un HELO (o EHLO) al servidor antes de comenzar una sesin SMTP. El parmetro smtpd_helo_restrictions restringe aquellos hosts que pueden enviar el comando HELO. Una configuracin tpica en el main.cf sera : smtpd_helo_required= yes smtpd_helo_restrictions= reject_invalid_hostname reject_unknown_hostname reject_non_fqdn_hostname

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

84

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.3.7.2.3.6.

Direcciones de correo RFC821

El parmetro strict_rfc821_envelopes controla que tan tolerante es Postfix con respecto a las direcciones dadas en MAIL FROM o RCPT TO.

strict_rfc821_envelopes=no

6.3.7.2.3.7.

Restricciones del destinatario

El parmetro smtpd_recipient_restrictions restringe los recipientes o destinatarios que acepta el Servidor de Correos cuando se ejecuta RCPT TO.

smtpd_recipient_restrictions= permit_mynetworks reject_unauth_destination 6.3.7.2.4. Archivos de registro

Todo lo que sucede con el servicio de mensajeria se registra en el los archivos que se guardan en el directorio /var/log/mail.

Figura 67. Archivos de registro

Al ejecutar el siguiente comando se mostrara el contenido del archivo /var/log/mail/info en tiempo real: tail -f /var/log/mail/info

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

85

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 68. Archivo /var/log/mail/info

6.3.7.3.

Cliente (MUA)

Los programas cliente de correo soportan los protocolos estndares para recibir mensajes.

y enviar

Los datos a necesitar para configurar su cliente de correo son: Servidor SMTP: IP o nombre Servidor POP3: IP o nombre Servidor IMAP4: IP o nombre Cuenta de usuario Contrasea

La cuenta de usuario y la contrasea, son requerimientos del servidor POP3, debido a que este protocolo requiere autenticacin para entregar los mensajes. El servidor SMTP, no necesita autenticacin.

Configurando KMail

Para configurar la cuenta de correo de un usuario debemos ir al Men Preferencias y luego elegir la opcin Configurar Kmail.

La venta de cofiguracin consta de seis secciones: Identidad, Red, Aspecto, Editor, Seguridad y Carpetas. Para enviar y recibir mensajes slo es necesario que se modifiquen los parmetros de las secciones Identidad y Red. (Ver Figuras 69 y 70)
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

86

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 69. Seccin Identidad

Figura 70. Seccin Red

Los parmetros que le indican a Kmail como enviar y recibir mensajes estan contenidos en la seccin Red. (Ver Figuras 71 y 72)
AREA DE TRANSFERENCIA DE CONOCIMIENTOS

87

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 71. Servidor POP3

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

88

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

Figura 72. Servidor SMTP

6.3.7.4.

Servidor DNS

Figura 73. Red - Servidor de Correo

Configurar el archivo de zona /var/named/ejemplo.zone (Ver Cuadro 34):

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

89

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

$TTL 172800 @ IN SOA ns.ejemplo.com. root.ejemplo.com. 2003000018 ; Nmero de serie, debe ser ; cambiado cada vez se modifica ; este archivo 28800 ; Refresco cada 8 horas 14400 ; Reintenta cada 4 horas 2419200 ; Expira cada 1000 horas 86400 ) ; TTL, duracin minima un da ; Name Server (NS) records. @ IN NS ns.ejemplo.com. ; Mail Exchange (MX) records. @ IN MX 10 mail.ejemplo.com. ; Address (A) records. pc01 IN A 192.168.1.66 pc02 IN A 192.168.1.67 pc03 IN A 192.168.1.68 ; Aliases (CNAME) records. ns IN CNAME pc01.ejemplo.com. www IN CNAME pc02.ejemplo.com. mail IN CNAME pc03.ejemplo.com.

Cuadro 32. Archivo de zona /etc/named/ejemplo.zone

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

90

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

6.4. Actividades del Mdulo

6.4.1. Laboratorio

Duracin: 60 minutos Objetivos: Aprender la configuracin bsica de los servidores de DNS, Web y de Correos. Aprender a configurar a los equipos clientes para el acceso adecuados a estos servicios. Recursos a utilizar: Un computador con GNU/Linux. Un nombre de usuario y su contrasea respectiva (super-usuario = root) Un computador con sistema operativo Windows GNU/Linux. Procedimiento de ejecucin:

1.

Configure un Servidor Web para el dominio ejercicio#.edu.pe., adems existe un acceso restringido a parte de la pagina Web en la cual solo usuarios autenticados pueden ingresar.

Figura . Red Lan


AREA DE TRANSFERENCIA DE CONOCIMIENTOS

91

ADMINISTRACIN EN REDES GNU/LINUX

POSTGRADO A DISTANCIA: SOFTWARE LIBRE

2.

Configure un Servidor de Correo para el dominio ejercicio#.edu.pe. Crear una cuenta de usuario con su nombre y enviar un mensaje a una cuenta de correo externa.

3.

Asumiendo que tiene una LAN segn el diagrama, configure un Servidor DNS. Verifique que resuelva las peticiones de los clientes segn el diagrama. El dominio a crearse se llamara ejercicio#.edu.pe, donde #=1,2,3,etc. numero que identifica a su equipo.

6.5.

Glosario de trminos

Addressing Background Binding Cache Entry Foreground Fowarding Log

Direccionamiento. Segundo plano o fondo. Unin o enlazamiento. Memoria cach, memoria intermedia o simplemente cach. Elemento o registro. Primer plano o frente. Redireccionamiento. Registro o bitcora.

5.6. Bibliografa y enlaces recomendados

Teach Yourself UNX in 24 hours-Dave Taylor and James C. Amstrong Jr.-1997 Linux: Rute users tutorial and exposition - Paul Sheer-2001 www.tldp.org es.tldp.org www.ibiblio.org linuxgazette.net www.gacetadelinux.com www.linuxfocus.org www.plazalinux.org www.yolinux.org

AREA DE TRANSFERENCIA DE CONOCIMIENTOS

92

ADMINISTRACIN EN REDES GNU/LINUX