Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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.
6.1.
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
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.
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)
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
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
(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.
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
invirtiendo el orden de bytes en la direccin de la red y aadiendo in-addr.arpa al fin. (Ver Figura 4)
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
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
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
CNAME NS
PTR
Mail Exchanger
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
10
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
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).
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
11
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)
12
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
13
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
14
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.
15
/* 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:
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)
16
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:
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
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.
18
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
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.
20
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):
21
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)
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)
22
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)
23
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
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
24
$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
$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
25
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.
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
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
Al ejecutar el siguiente comando se mostrara el contenido del archivo /var/log/messages en tiempo real: tail -f /var/log/messages
27
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)
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
tendr preferencia sobre todos los dems, esta preferencia se puede deber a cercana o capacidad del "Host"
Tabla 10. Parmetros del resolver
# 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.
29
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.
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.
30
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
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.
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).
32
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/.
33
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
apache2-mod_*
6.2.2. Demonios
35
Demonio httpd2
Descripcin Se ejecuta en servidores HTTP. Este demonio da servicios a las peticiones de los clientes.
Tabla 11. Demonio.
36
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.
Para realizar los respectivos cambios utilizar cualquier editor de textos (vi, emacs, etc.) 6.2.3.1. Servidor Web
Para
configurar
el
servidor
Web
se
necesitan
configurar
los
archivos
httpd2.conf,
commonhttpd.conf y Vhosts.conf.
37
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
Group
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
38
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
# (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
# 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
<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
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.
42
6.2.3.1.1.1.
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.
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.
43
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)
44
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
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)
45
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
$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.
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)
46
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
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)
47
################# 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
48
$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
$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
49
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
50
NOTA: En todas las opciones le ser solicitado una contrasea. Al editar el archivo users (Ver Figura 36):
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)
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
Todo lo que sucede con el servicio de mensajeria se registra en el los archivos que se guardan en el directorio /var/log/httpd.
52
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
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)
53
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.
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.
54
6.3.1.2.
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.
55
6.3.1.3.
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
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.
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.
57
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.
Mltiples procesos pueden acceder al mismo tiempo a los maildirs Maildirmake Comando para crear maildirs.
Sintaxis:
AREA DE TRANSFERENCIA DE CONOCIMIENTOS
58
maildirmake [opciones] maildir Crea automticamente los 3 directorios: o new o cur o tmp
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
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
60
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
61
6.3.5. Demonios
Demonio postfix
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
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.
63
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)
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)
64
6.3.7.1.
Primero se deber instalar el paquete imap-2004-1mdk en nuestro servidor: rpm ivh imap-2004-1mdk.i586.rpm
65
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 ):
En el caso del archivo ipop3 no es necesario realizar ninguna modificacin. (Ver Figura 54)
66
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
67
6.3.7.2.
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:
68
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.
Las elipses son programas de correo. Las cajas son colas de correo o archivos. Las cajas ovaladas son tablas lookup.
69
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
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
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
# 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
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.
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
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.
postqueue
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.
73
postsuper
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.
74
postconf
Sintaxis: 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
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 - -
proxymap
local virtual
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
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
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
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:
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:
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:
79
/^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
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
mysql:/ruta/nombre_archivo
Las tablas son archivos donde se crea una expresin regular y un resultado. Los resultados pueden ser los siguientes:
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
postmap
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.
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
81
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
82
/^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.
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:
83
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:
Cada vez que se modifica el archivo /etc/postfix/access debemos ejecutar: postmap /etc/postfix/access postfix reload
6.3.7.2.3.4.
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
84
6.3.7.2.3.6.
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.
El parmetro smtpd_recipient_restrictions restringe los recipientes o destinatarios que acepta el Servidor de Correos cuando se ejecuta RCPT TO.
Todo lo que sucede con el servicio de mensajeria se registra en el los archivos que se guardan en el directorio /var/log/mail.
Al ejecutar el siguiente comando se mostrara el contenido del archivo /var/log/mail/info en tiempo real: tail -f /var/log/mail/info
85
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
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
88
6.3.7.4.
Servidor DNS
89
$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.
90
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.
91
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
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.
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
92