Powered By Blogger

miércoles, 10 de febrero de 2010

Como configurar un servidor Mail

Motivación
En un entorno universitario es común la instalación de ordenadores con sistemas GNU/Linux tanto como servidores de diverso propósito (web de departamento, servidor de ficheros/impresoras, etc.) como escritorio personal. Al igual que el resto de sistemas operativos, pero con GNU/Linux parece más obvio, el sistema operativo no deja de realizar tareas de diverso tipo, tanto relacionadas con el servicio que presta el ordenador como con su operativa de mantenimiento. Si el ordenador no se configura correctamente los mensajes de correo generados por estas tareas (mensajes de error o advertencia, información diversa sobre el estado de la máquina, etc.) no llegan a su destino.

En los siguientes párrafos se explicará como configurar un MTA (agente de transferencia de mensajes) en un ordenador con GNU/Linux instalado para que los mensajes de correo generados por la propia máquina lleguen a su destino y lo hagan sin generar problemas en los servidores de correo que deben manejar ese tráfico de mensajes. Se explica como...

Hacer que los mensajes generados en el ordenador lleguen al destinatario deseado.
Hacer que los mensajes lleguen a su destino con un remitente válido.
Remitir todos los mensajes que salen del ordenador a los servidores centrales de la UNED para su distribución.
Evitar que el software de correo sea usado por terceras personas (para evitar abusos).
Activar el arranque automático del demonio de correo.
El MTA elegido para esta tarea es Postfix. Este software es ligero (consume pocos recursos y da buenas medidas de rendimiento). Existen paquetes para todas las distribuciones y por tanto es fácil de instalar; en algunas distribuciones es el MTA instalado por defecto.

Arriba


--------------------------------------------------------------------------------

Configurar Postfix como servidor de correo local
En estas instrucciones no se explica como instalar el software. Se recomienda utilizar las herramientas de gestión de paquetes de la distribución para instalar Postfix y desinstalar cualquier otro MTA que pudiera estar instalado (sendmail, qmail, exim, etc.).

Postfix guarda los archivos de configuración en el directorio /etc/postfix; el archivo /etc/postfix/main.cf es el archivo de configuración principal. En este documento sólo se hará referencia a las variables que se deben modificar o añadir para que el software se comporte como un servidor de correo que escuche en local y remita los mensajes al propietario/usuario de la máquina.

Las modificaciones explicadas a continuación se deben realizar como usuario root.

Consideraciones previas.
Hay que asegurarse de que el ordenador tiene un nombre totalmente cualificado. Es decir, que el resultado del comando hostname es un nombre terminado en ".uned.es". Si no fuera así, se puede cambiar el nombre de manera temporal con el mismo comando:

hostname "nombre-ordenador.uned.es"
Para que la solución sea definitiva es necesario modificar el archivo donde se guarda el nombre del equipo. En distribuciones Red Hat y las distribuciones basadas en Red Hat se debe modificar la variable HOSTNAME en el archivo /etc/sysconfig/network.

Hacer que los mensajes generados en el ordenador lleguen al destinatario deseado.
Se consigue editando el archivo de alias del sistema. Para saber cual es el archivo de alias se ejecuta la instrucción

postconf alias_maps
Se debe editar el archivo cuyo nombre devuelve el comando anterior y añadir al final del mismo (o modificando si ya existiera) un alias de correo para el usuario root. Si la dirección de correo que debe recibir los mensajes generados por la máquina es entonces la línea añadida/modificada debe quedar:
root: mi.direccion@dominio.uned.es

Una vez añadida la línea anterior se debe ejecutar el comando newaliases para que se regenere la base de datos de alias.

Hacer que los mensajes lleguen a su destino con un remitente válido
Para conseguir este punto hay que cumplimentar los siguientes pasos:

crear un archivo (/etc/postfix/sender_canonical) donde se consigne la relación "usuario máquina <-> dirección de correo" con la cual deben salir los mensajes de ese usuario, por ejemplo:
root mi.direccion@dominio.uned.es
apache mi.direccion@dominio.uned.es
postmaster otra.direccion@dominio.uned.es
"compilar" el archivo anterior ejecutando:
postmap hash:/etc/postfix/sender_canonical
configurar la variable de Postfix que hace que se usen las relaciones anteriores:
postconf -e "sender_canonical_maps=hash:/etc/postfix/sender_canonical"
después de ejecutar "postconf -e" se debe recargar la configuración para que se apliquen los cambios:
postfix reload
Remitir todos los mensajes que salen del ordenador a los servidores centrales de la UNED.
Es decir, configurar lo que se llama "smart host" o "relay host". Basta con ejecutar la siguiente instrucción:

postconf -e "relayhost=[smtp.uned.es]"
Los corchetes son necesarios.

Evitar que el software de correo sea usado por terceras personas (para evitar abusos).
Lo que se hace en este punto es configurar Postfix para que sólo escuche en la interfaz local con lo cual se asegura que desde el exterior de la máquina no está accesible para su uso. Y que sólo se fíe de las conexiones desde la máquina local. Por tanto, se configura de la siguiente forma:

postconf -e "inet_interfaces=localhost"
postconf -e "mynetworks_style=host"


Activar el arranque automático del demonio de correo.
Esta actuación depende de la distribución instalada.

En distribuciones Red Hat y las distribuciones basadas en Red Hat se ejecuta el siguiente comando:
/sbin/chkconfig postfix on
En Debian y las distribuciones basadas en Debian se ejecuta el siguiente comando:
/sbin/update-rc.d postfix defaults
En Gentoo se ejecuta el siguiente comando:
/sbin/rc-update add postfix defaults
En otras distribuciones se tienen comandos distintos para realizar la misma tarea.
También se pueden crear a mano los softlink para que se inicie Postfix en el arranque:

cd /etc/rc3.d/
ln -s ../init.d/postfix S80postfix
cd /etc/rc5.d/
ln -s ../init.d/postfix S80postfix
y se detenga en la parada:
cd /etc/rc0.d/
ln -s ../init.d/postfix K30postfix
cd /etc/rc6.d/
ln -s ../init.d/postfix K30postfix
Configurar las aplicaciones para que usen el servidor de correo local.
Una vez configurado el servidor de correo local se pueden configurar las aplicaciones que se ejecutan en el mismo ordenador para que lo usen. Habría que buscar en la configuración de correo de cada una de las aplicaciones y poner localhost como servidor SMTP (substituyendo smtp.uned.es si hiciera falta).

Como configurar un servidor proxy

En este manual voy a daros unas pautas de configuración que sirven prácticamente para la mayoría de los software que instaléis en vuestra red.

Los conceptos de lo que es una red parecen complejos la primera vez que te sientas frente a ella y todo eso que se habla de DNS, IP, "puertos" "firewall" etc, te suena extraño pues realmente nunca se ha preocupado uno de esos términos más que en contadas ocasiones y no con profundidad. pero que no se teman, son sencillísimos una vez se tenga claro para qué sirven.

Pero lo primero que tiene que quedar claro es esto:

¿QUÉ ES UN PROXY?

Imagínate la siguiente situación: Se dispone de una red local en la cual varios ordenadores están conectados entre sí. Uno de ellos tiene además una conexión telefónica con Internet, ya sea propia o a través de un proveedor de acceso.






De este modo únicamente ese ordenador podría tener acceso a Internet. Evidentemente sería deseable que todos los demás ordenadores de la red local consigan acceder a Internet empleando esa única conexión.

La solución tradicional consistía en emplear un dispositivo denominado encaminador (router) dedicado exclusivamente a esta tarea y que se encargaba de transmitir la información de una red a otra. Esta es una solución muy cara y en el caso de las redes pequeñas no se justifica el gasto.

Hoy en día existe una posibilidad más simple que consiste en emplear un proxy, que es un programa que actúa como pasarela (gateway) entre redes, en el caso que nos ocupa entre la red local e Internet. Cada vez que alguno de los ordenadores de la red desea acceder a Internet realiza esta petición al proxy. El proxy utiliza la única conexión existente para enviar y recibir la información de Internet al ordenador que la solicita.

¿COMO FUNCIONA UN PROXY?

Desde el punto de vista del usuario de la red local, el sistema funciona como si tuviera realmente un acceso directo a Internet. El usuario accede inmediatamente desde su ordenador a una página Web o recibe su correo electrónico, sin siquiera saber que el proxy existe.






En realidad, al abrir un programa como Internet Explorer o recoger el correo pendiente, la petición de servicio se realiza al proxy, no al servidor de Internet. El proxy es el encargado de redireccionar estas peticiones a la máquina correspondiente (el servidor de la página Web o el servidor de correo) y una vez recibida la información, de transmitirla al ordenador que la solicitó.

VENTAJAS DE UN PROXY

Las ventajas que ofrece la utilización de un proxy en una red local son la siguientes:

Menor coste: El programa y la instalación tienen un precio mucho menor que cualquier router.

Una sola línea telefónica: Sólo es preciso disponer de una línea telefónica normal o RDSI

Fácil instalación: La instalación emplea los dispositivos de la propia red local, por lo que se reduce la configuración de los programas.

Seguridad: El proxy también actúa como una barrera (firewall) que limita el acceso a la red local desde el exterior.

Dirección IP única: La dirección IP es la que identifica de forma unívoca a cada máquina en Internet. Si se utiliza un proxy basta con una dirección IP para toda la red local en lugar de tener una IP para cada uno de los ordenadores.

Conexión automática (autodialing): No es necesario que el ordenador que actúa como proxy esté conectado permanentemente a Internet. Con esta función, cada vez que un usuario realiza una petición, el proxy establece la conexión. Del mismo modo el proxy la desconecta cuando no hay ninguna petición, todo ello automáticamente.

Menor tráfico de red: El proxy almacena automáticamente en la memoria las páginas Web a las que se accede con mayor frecuencia, con lo que se reduce la cantidad de información que es necesario recuperar a través de Internet.

SERVICIOS QUE OFRECE UN PROXY

El proxy puede ofrecer a los ordenadores de la red local, todos los servicios disponibles en Internet incluyendo servicios avanzados de transmisión de audio y vídeo

Correo electrónico
World Wide Web
Transmisiones FTP
Telnet
News
Soporte del protocolo UDP: aplicaciones de streaming del tipo de Real Audio
IRC
Socks
DNS
Etc.....
Pero voy a aclarar algo fundamental antes de proceder a la instalación: el software del proxy se instala en el ordenador provisto de modem y que es el único que tiene acceso directo a Internet. Este ordenador es el llamado SERVER (o servidor). A él van conectado mediante tarjeta de red y cable el resto de los ordenadores de la red, los cuales carecen de modem y son los llamados CLIENTES. Así pues, cada ordenador tendrá que tener un nombre para identificarlo en la red. El nombre puede ser el que queramos, pero a partir de ahora yo los llamaré server (al principal) y cliente (al secundario).

INSTALACIÓN:

Antes de ponernos a instalar el software de nuestro proxy, es conveniente que configuremos nuestra red, una vez hecho ésto, podemos ejecutar la instalación para, posteriormente, hacerle la configuración al programa.

Clientes Windows 95/98
Instalación del protocolo TCP/IP
Sigue los pasos que se indican:

1.En el menú Inicio selecciona Configuración y Panel de control

2.Dentro del Panel de control selecciona el icono Red

3.Si la tarjeta de red ha sido correctamente instalada en el cuadro de diálogo aparecerán los elementos Cliente para redes Microsoft y el icono del adaptador de red del que dispongas.

4.Haz clic en el botón Agregar.

5.Selecciona la opción Protocolo.

6.Selecciona Fabricante: Microsoft y Protocolo de red: TCP/IP.

7.Si fuera necesario, inserta el disco de instalación de Windows 95/98.

8.Para terminar haz clic en Aceptar.

Al final del proceso aparecerán tantos iconos de TCP/IP como dispositivos capaces de soportarlo. Por ejemplo, si el ordenador dispone de un módem y una tarjeta de red en la ventana aparecerán los iconos TCP/IP Adaptador de acceso telefónico y TCP/IP (Tu adaptador de red). Si no tuviera módem sólo aparecería el correspondiente al adaptador de red.

CONFIGURACIÓN EN EL SERVER:

Inicio/panel de control/red

Una vez abierta la ventana correspondiente a red nos encontramos con una serie opciones instaladas y fundamentales para el funcionamiento de nuestra red. Estas opciones son tales como el TCP/IP del acceso telefónico a redes, el TCP/IP de nuestra tarjeta de red, Clientes para redes Microsoft, compartir archivos e impresoras, etc, etc.
Doy por hecho que tenemos instaladas todas las opciones necesarias, pues si no, este manual se convertiría en algo demasiado técnico y vamos a lo que nos interesa, que es configurar el TCP/IP de nuestra tarjeta de red:

TCP/IP de nuestra tarjeta de red:
Damos en Propiedades y nos encontramos frente a una serie de pestañas:

Enlaces: queda configurado según la figura 1:






Puerta de enlace: Aquí es necesario agregar la IP del PC donde está instalado el modem y por consiguiente, el proxy, es decir, el PC que denomino server, quedando configurado según la figura 2:






Configuración WINS: el el server queda como la figura 3:






Configuración de la DNS: En Host poner el nombre interno del PC principal o server. En Dominio hay dos alternativas que, dependiendo de proxy que se utilice, se deja en blanco, ya que en la configuración posterior del proxy se pondrá la DNS del ISP correspondiente, o bien se pone el dominio del ISP, si es que el software del proxy que hemos adquirido no nos da esa opción. Así pues, si decidimos poner datos en el casillero del Dominio pondríamos algo asi como: teleline.es o el ISP que tegamos. Figura 4:






Dirección IP y máscara de subred:En una red la dirección IP debe ser distinta en cada ordenador. Los números que componen una dirección IP indican las divisiones dentro de la red, de modo que el último número es el que distingue a los ordenadores individuales.



En el entorno Internet, una subred es un cable lineal con un terminador en cada extremo. Las señales transmitidas a través del segmento se escuchan en todas las estaciones conectadas a él. Para ello es preciso que la dirección de los ordenadores de una misma subred se construya componiendo una parte que es común a todos, o dirección de subred, y otra que identifica individualmente a cada máquina.




En una red local, o una parte de una red mayor (la red de un departamento conectada al resto de la red de una corporación) es preciso indicar qué valores de la dirección IP varían de un ordenador a otro. Para ello es preciso introducir una máscara de subred. Por ejemplo, en una red con cinco ordenadores se podrían asignar los números siguientes a cada uno de los puestos:





Las direcciones IP de estos PC serían la 192.168.0.1, 192.168.0.2, 192.168.0.3, 192.168.0.4 y 192.168.0.5.

Por consiguiente la ventana de configuración de la Dirección IP del server quedaría según la figura 5:







Las ventanas de Avanzado y NETBIOS quedan tal como están por defecto.

Configuración del TCP/IP del acceso telefónico a redes del server:

Enlaces: Igual que el de la tarjeta de red

Puerta de enlace: En blanco

Avanzado: Igual que el de la tarjeta de red

Configuración WINS: Picar Desactivar Resolución WINS

NETBIOS: Igual que el la tarjeta de red

Dirección IP: Picar Obtener una dirección IP automáticamente

Configuración DNS: En esta ventana dependiente del software de proxy que utilicemos hay que especificar la DNS de nuestro ISP. Supongamos que nuestro ISP es teleline, pues su DNS es 194.224.53.3, quedando configurada la ventana como se muestra a continuación.






No obstante, algunos software como el S-Proxy no necesitan poner la DNS de su ISP sino que ponen la IP del PC server ya que en la propia configuración del software se especifica la del proveedor de acceso a internet. Es el caso de la configuración que más arriba he puesto en la figura 4. Por consiguiente estas dos variaciones dependerán siempre del software adquirido.


CONFIGURACIÓN DEL CLIENTE:

Según el software de proxy adquirido éste deberá instalarse en el cliente y también posteriormente a proceder a la configuración de red del mismo.
Hay softwares como el Winproxy 1.4 , el Winproxy 3.0 y el PPPshar que no necesitan instalar software adicional en el cliente y otros como el Wingate que sí necesitan de su instalación. El S-Proxy tiene el winsock 1.1 opcional, el cual no necesita instalarse si no se van a utilizar programas de videoconferencia en el PC cliente, pero particularmente soy partidaria, si se utiliza el S-Proxy, de sí instalarlo pues únicamente nos renombra la wsock32.dll de windows system y nos instala en su lugar otra dll muy necesaria para el buen funcionamiento del cliente cuando necesita acceder por puertos normalmente no predefinidos.

Configuración del TCP/IP de la tarjeta de red del cliente:

Enlace: queda configurado según la figura 6:





Configuración WINS: se activa la resolución WINS dándo la IP del server, quedando configurada según la figura 7:








Configuración de la DNS: En la casilla de Host hay que poner el nombre del PC cliente que hayamos decidido ponerle a cada ordenador de la red. Se deja en blanco el Dominio y se agrega la IP del server, que sabemos que en este caso siempre es 192.168.0.1, según se explica en la figura 8:






Dirección IP del cliente: Se escribe la IP asignada a ese PC cliente así como la máscara de subred, tal y como se ve en la figura 9:






Configuración del TCP/IP del acceso telefónico a redes del cliente:

Enlaces: Igual que en la tarjeta de red

Puerta de enlace: en blanco

Avanzado: Igual que en la tarjeta de red

Configuración WINS: Picar Usar DHCP para resolución WINS

NETBIOS: Igual que en la tarjeta de red

Configuración DNS: Picar Desactivar DNS

Dirección IP: Picar Obtener una dirección IP automáticamente


Comprobación de la red TCP/IP con PING
Para comprobar si la configuración de la red ha sido correcta se emplea la utilidad PING, que se ejecuta desde el intérprete de comandos de DOS. Con esta aplicación se puede comprobar la respuesta de los puestos de la red. Por ejemplo, desde el ordenador 192.168.0.1 se puede intentar acceder al 192.168.0.2:

1.En el menú Inicio selecciona Programas- MS DOS

2.Cuando aparezca el símbolo del sistema, introducir PING 192.168.0.2

3.Las respuestas para el funcionamiento correcto se muestra en la figura que sigue:






Igualmente se hace un PING desde cada PC cliente hacia el server y el resultado ha de ser el mismo solo que con la IP del server reflejada en la respuesta hacia el cliente desde donde hayamos efectuado la comprobación.

CLIENTES WINDOWS NT

Instalación del protocolo TCP/IP

Para instalar el protocolo TCP/IP en Windows NT 4.0, cliente o servidor, debe seguir los pasos que se indican a continuación. Recuerda que debes tener privilegios de administrador:

En el Panel de control selecciona el icono Red.

En el cuadro de diálogo se encuentran las pestañas correspondientes a Identificación, Servicios, Protocolos y Adaptadores.

En la pestaña Adaptadores debe encontrarse el icono correspondiente a la tarjeta de red instalada.

En la pestaña Protocolo se debe instalar el protocolo TCP/IP. Para ello se hace clic en el botón Añadir.

En el cuadro de diálogo se selecciona la opción TCP/IP. Puede ser necesario insertar los discos de instalación del sistema.

Para terminar hacer clic en Aceptar.


Configuración del protocolo TCP/IP

Una vez instalado el protocolo TCP/IP se pasa a realizar su configuración mediante los pasos siguientes:

Selecciona de nuevo el icono Red del Panel de control.

Selecciona la pestaña Protocolos.

Selecciona el protocolo TCP/IP de la lista y hacer clic en el botón Propiedades.

En el cuadro de diálogo, si el ordenador dispone de varios Adaptadores válidos, selecciona el adaptador de red en la lista desplegable.

Activa la opción Especificar una dirección IP.

Introduzcir los valores para la Dirección IP y la Máscara de subred.

Para terminar hacer clic en Aceptar.


Comprobación

Una vez instalado el protocolo en todos los clientes, puedes comprobar el correcto funcionamiento de la red:

Al abrir el icono Entorno de Red en el escritorio, aparecerán los nombres de los demás ordenadores conectados.

Comprueba si los demás puestos son accesibles mediante el comando PING.


CONFIGURACIÓN DE LOS PROGRAMAS CLIENTES MÁS COMUNES

Internet Explorer 5.0

La configuración del browser de Microsoft Internet Explorer es muy similar a la de Netscape. Basta con seguir las instrucciones que aparecen a continuación:

1.En la pantalla principal se selecciona la opción Herramientas/Opciones de Internet.

2.En la solapa Conexión entrar en Configuración LAN.

3.En la ventana de Configuración LAN picar según la figura que sigue:






4. Entrar en la ventana de Avanzadas y configurarla como la figura siguiente:







Como se ve es introduciendo la dirección IP del ordenador que alberga el programa proxy (server) 192.168.0.1. Si está activado el servicio Socks, sólo necesitarás introducir la dirección del proxy y el puerto en los campos HTTP y Socks. El puerto HTTP está en esta figura en el 8080, pero varía según el proxy que se esté utilizando, el más frecuente es el puerto 80 para el HTTP.

El cliente se configura igual que el server.


Configuración del Netscape:

En el caso de Netscape es preciso indicar que la conexión se realizará a través de un proxy. Para ello se siguen los pasos que se indican a continuación:

1.Se selecciona la opción Network Preferences del menú Options

2.En la ventana de diálogo de la figura se selecciona la solapa Proxies y se activa el selector Manual Proxy Configuration.

3.Se hace clic en el botón View

4.En la ventana de la figura se indica en cada una de las líneas la dirección IP del ordenador en el cual se ejecuta el programa proxy y el puerto en el cual se ha configurado el servicio HTTP, por defecto 8080.







En el caso de tener activado este servicio, se debe introducir la misma dirección IP para Socks, pero en este caso empleando el puerto 1080.


NOTA: Si se ha activado el servicio Socks es muy conveniente desactivar el proxy FTP, dejando esta línea en blanco. Las transmisiones de ficheros resultan mucho más eficientes empleando Socks. Pero el Socks se activa si utilizas determinado software de proxy, como el S-Proxy y para disponer de este servicio es necesario activar asimismo el DNS en la configuración de S-Proxy. En los demás proxies puede dejarse únicamente la IP del server y el puerto del mismo, el resto en blanco.


Configuración del Cute FTP

En este programa se selecciona la opción Options del menú FTP para que aparezca la ventana de diálogo de la figura. En la solapa Firewall se introducen los siguientes datos:






Host: es la dirección IP del ordenador en el que está instalado proxy.

•Port: es el puerto para FTP, por defecto 21. Type: se selecciona la opción USER user@site

•Se activa la opción Enable firewall access.


Configuración de Telnet:

En Telnet basta con conectar con la dirección IP del proxy. De este modo se presentará una ventana en la que se solicita la dirección del servidor remoto.

Una vez introducida la dirección del ordenador de la red que actúa como servidor proxy aparecerá una línea en la ventana solicitando el sistema con el que realmente se desea conectar.


Configuración del cliente Real Audio

Para poder acceder a la transmisión de sonido mediante Real Audio a través del servidor proxy es preciso configurar los clientes instalados en los puestos. Para ello se abre el programa Player y a continuación se selecciona la opción Preferences del menú View.

Con esto aparecerá la ventana de configuración en la cual se selecciona la solapa Proxy. Aquí se introduce la dirección del proxy Real Audio y HTTP (el mismo) y el puerto seleccionado para cada servicio.


Configuración del mIRC:

Este es uno de los clientes de charla IRC más conocidos, y que precisamente permite establecer la conexión a través de un servidor proxy empleando el protocolo Socks.

Para ello se selecciona la solapa Firewall en la ventana de Setup. En ésta es necesario activar el recuadro Use SOCKS firewall. A continuación se introduce la dirección IP del servidor proxy y el puerto utilizado, que por defecto es 1080.

El acceso a servidores IRC es mediante la dirección IP con la que se realiza la conexión a Internet. Alguno de estos servidores no permiten el acceso a usuarios que acceden con la misma IP. La solución a este problema es la creación de "Clones". Usuarios con la misma IP de conexión acceden a diferentes servidores de IRC, al estar estos servidores conectados entre si se puede acceder a cualquier servidor que queramos visitar.

Configuración del mIRC en el server:

Únicamente configurar las ventanas que se exponen a continuación:

Local Info:






Firewall: Dependiendo del software que se utilice, deberá marcarse el socks 4 o el 5, en HOst el nombre del server y el puerto el 1080, según figura:






DCC/Server: Todo picado, según la figura que sigue:






Configuración del mIRC en el cliente:

Únicamente configurar las ventanas que se exponen a continuación:

Local Info: Según figura:





Firewall: Según figura, indicando que el socks depende del software igual que en el server, es decir, unas veces será el 4 y otras el 5, y poniendo en Hostname la IP del server, según figura:







DCC/Server: Queda configurado igual que en el server.

El resto de las opciones de configuración del mIRC no tiene relación con el proxy.


Configuración del Outlook:

Tanto en el server como en el cliente, la configuración es la misma, según la figura que sigue a continuación:







En la pestaña de Conexión picar tanto en el server como en el cliente: Conectar siempre mediante Red de Área Local.

La cuenta de correos del cliente debe estar configurada únicamente en el cliente y no también en el server, ya que si no, no iría hacia el PC cliente sino que se quedaría en el mismo servidor u ordenador principal.

Como configurar un servidor Web

Configuración servidor WEB, DNS, FTP, POP3 y SMTP
Este texto es sacado del trabajo de fin de batxillerato (treball de recerca) que hice este año. El objetivo era reutilizar uno de los ordenadores que el instituto no utilizaba (porque se qeudaban "pequeños" para el windows) y montar un servidor de red para dar cuentas de correo y espacios para webs personales al alumnado y al profesorado. Todo eso con el sistema operativo Linux, por supuesto. Este texto es una parte del trabajo, donde explico el procedimiento práctico.

El ordenador en cuestión es un Pentium I a 90MHz con 24 MB de memoria RAM y dos discos duros, uno de 460 MB y el otro de 20 GB adosado posteriormente, ya que resultaba necesario utilizar un disco de mayor tamaño para cumplir con las funcionalidades del proyecto. Mencionar que no fue tarea fácil hacer que la BIOS del ordenador reconociera el disco de 20 GB, dado que en aquellos tiempos (1993-1994) no se imaginaba que pudieran existir discos duros de tal capacidad.

Una vez el trabajo terminado, debería estar todo funcionando correctamente, y que tanto profesores como alumnos dispongan de una cuenta de correo electrónico del tipo llmfabrega@nombre-instituto.org , y un espacio web para colgar su página personal del estilo www.nombre-instituto.org/alumnes/pmanils o www.nombre-instituto.org/professorat/mnicolau en el caso que fuera un profesor. Sin embargo, para los perezosos, se pudiera visitar la página de cualquier usuario utilizando la dirección www.nombre-instituto.org/~nombre-profesor-o-alumno, escribiendo el carácter "~" (Alt+126) seguido del nombre de un profesor o alumno, por ejemplo www.nombre-instituto.org/~brios .
Para los usuarios independientes al centro de estudios, decidí separarlos en el grupo "users", por lo tanto, si desean visitar la página web de cualquier usuario ajeno al instituto, la URL sería con este formato:

www.nombre-instituto.org/users/knoopx

o con el "universal":

www.nombre-instituto.org/~knoopx


Se intentará explicar todo esto lo más sencillo y fluido posible, para que esté al alcance de los usuarios, aunque deben tenerse mínimas nociones sobre informática e Internet para su perfecta comprensión. Algunos de los temas que se explicarán no se desarrollarán en su plenitud ni se profundizará mucho, sino lo suficiente. Lo explicaré con mis palabras y de la manera que yo lo he entendido. Puede no ser la mejor forma, pero así creo que resultará más fácil su comprensión . Como se verá más adelante, las configuraciones serán mínimas y básicas para no enturbiar ni hacer complejo este documento, que trata justamente la combinación de la simpleza con la eficacia .






1. Servidor WEB, DNS y FTP
En este apartado se describirán los pasos que se siguieron para poner en marcha el servidor web apache. apache es el software por excelencia utilizado para dar servicio de web en el mundo Linux (y fuera de él, ya que hay versión para otras plataformas, como FreeBSD, Solaris, Windows, IRIX, ....)

Antes de empezar con la instalación y configuración del servidor apache, necesitábamos un dominio para la web. Los dominios son los nombres (google.com, xtec.es, sorgonet.com...) a partir de los cuales se nos redirige a la IP del servidor web deseado. Decidimos registrar dominio.org (ficticio por supuesto). Para ello fuimos a www.godaddy.com (página web donde se pueden registrar dominios). En una fase del proceso de registro se nos pedía introducir dos servidores DNS. Un servidor DNS es el encargado de traducir los nombres de dominio a IPs y viceversa. Necesitábamos pues un servidor que tradujera dominio.org a nuestra IP 80.80.80.80 (también falsa) donde teníamos pensado montar el servidor web. Este fue el primer problema que encontramos. No teníamos ningún servidor DNS que hiciese eso, por lo que había dos alternativas:

1. Pedir a un conocido que tuviera montado un servidor DNS y que nos lo configurara para que dominio.org se redirigiera a 80.80.80.80 (nuestra IP).

o

2. Montar nuestro propio servidor DNS.

La primera opción es la más sencilla, solo falta tener un amigo que tenga un servidor DNS y pedirle que configurara su servidor DNS para que resolviera el dominio dominio.org a nuestra IP. Pero tiene una gran desventaja, no seríamos nosotros quienes controlaríamos el servidor DNS, por lo que no tendríamos control sobre dicho servidor y por lo tanto, creciendo nuestra desconfianza, ¿quién nos asegura que un día, a nuestro amigo, no se le pase por la cabeza configurar su servidor DNS para que redireccione dominio.org a cualquier otra IP, por ejemplo la de una web de contenidos pornográficos? Sería verdaderamente divertido...

Por esta razón, por tener nosotros el control del servidor DNS, decidí montar nuestro propio servidor DNS. Y aquí muestro los pasos que seguí para hacerlo.





1.1. Servidor DNS
Bind es el servidor DNS mas popular en entornos Linux. Necesitábamos tenerlo instalado, y así lo hicimos:

dns# apt-get install bind

apt-get es un gran programa que, al indicarle que instale otro programa (install bind) él solo se baja de internet dicho programa y todo lo que haga falta para que funcione, lo instala y lo deja apunto para que solo tengamos que configurar lo que necesitamos.

Ahora que tenemos bind instalado (en mi caso la versión 8.3.3-REL-NOESW), falta configurarlo adecuadamente.


Normalmente, para configurar un programa en linux, basta editando los archivos apropiados del programa. Los archivos de configuración del bind se encuentran en /etc/bind/. El primer fichero que editaremos será el named.conf, que es el fichero principal de bind. Una recomendación es hacer una copia de seguridad del archivo original antes de editarlo. Utilizaremos el editor llamado vi o vim puesto que es uno de los editores más comunes en entornos Unix/Linux:


Teclearemos lo siguiente:

# cp /etc/bind/named.conf /etc/bind/named.conf.old
# vi /etc/bind/named.conf

Nos fijamos que en la segunda página se repite bastante una parte de código parecida a esto:

zone "localhost" {
type master;
file "/etc/bind/db.local";
};

Bien, nos dirigiremos al final del archivo y añadiremos lo siguiente:

zone "dominio.org" {
type master;
file "/etc/bind/db.dominio.org";
};


Esas líneas definen una nueva zona, dominio.org, sobre la que se ejerce el control, y el fichero (file) de configuración de esta zona se encontrará en /etc/bind/db.dominio.org. Guardaremos los cambios y saldremos (:wq).

Ahora falta crear el fichero db.dominio.org, y como que el formato del archivo es parecido al ya existente /etc/bind/db.local, haremos una copia de éste con el nombre db.dominio.org sobre el cual modificaremos a nuestro parecer:

# cp /etc/bind/db.local /etc/bind/db.dominio.org
# vi /etc/bind/db.dominio.org

El archivo db.dominio.org tiene que quedar parecido a este:

-Inicio del archivo (esto no debe incluirse)-

;
; BIND data file for dominio.org
;
$TTL 604800
dominio.org. IN SOA dns.dominio.org. root.localhost. (

1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL

IN NS dns.dominio.org.
IN A 80.80.80.80
IN MX 10 mail.dominio.org.
dns IN A 80.80.80.80
mail
IN A 80.80.80.80
www IN CNAME dns
ftp IN CNAME dns




-Fin (esto tampoco debe incluirse)-

Para entender esto:

Lo que sigue después de ";" es ignorado como código, se interpretan como comentario. En las siguientes líneas se entiende que dominio.org se encuentra en la máquina dns.dominio.org (host local de la máquina donde está el servidor DNS), y el encargado de este dominio es root.localhost. (no olvidar poner los puntos en dominio.org. dns.dominio.org. y root.localhost.). El Serial, Refresh y todo esto lo dejamos como está, son tiempos de expiración y otros. Luego se le indica que el servidor DNS (NS) se encuentra en dns.dominio.org. (otra vez lo del punto final) y utiliza como servidor de email (MX)con prioridad máxima (10) (se puede poner la prioridad que se quiera, y la máxima, caso de especificar varios registros MX, es aquella con un número menor) la máquina mail.dominio.org., cuya dirección IP en Internet es 80.80.80.80, y por consiguiente, que el alias dns también está en 80.80.80.80. En este caso, que no hemos puesto punto al final de dns, automáticamente bind lo interpreta de manera
que le añade dominio.org al final, quedando de la manera dns.dominio.org. Lo mismo ocurre con www, ftp y mail pero la etiqueta CNAME matiza que se tratan de tres alias de dns, por lo que si sigues la cadena, tenemos que valen la misma IP que dns, que es lo que nos interesa: tener el servidor web, ftp, dns y mail en la misma máquina. De esta manera, www.dominio.org, ftp.dominio.org, mail.dominio.org y dns.dominio.org se refieren a la misma IP de nuestro ordenador.

Después de esta confusa explicación, debemos poner en marcha named (bind):

# /etc/init.d/bind restart

Lo de restart es porque al haber hecho antes apt-get install bind él solo se ejecuta después de instalarse, con la configuración por defecto que lleva.

Ahora podemos comprobar si todo ha ido bien con el comando siguiente:

# dig @localhost dominio.org

Tendría que salir algo parecido a esto:

; <<>> DiG 9.2.1 <<>> @localhost dominio.org
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63073
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1

;; QUESTION SECTION:
;dominio.org. IN A

;; ANSWER SECTION:
dominio.org. 604800 IN A 80.80.80.80

;; AUTHORITY SECTION:
dominio.org. 604800 IN NS dns.dominio.org.

;; ADDITIONAL SECTION:
dns.dominio.org. 604800 IN A 80.80.80.80

dig se encarga de mirar la configuración de dominio.org utilizando como servidor DNS el que nosotros le indiquemos después de la @. Ya que nos interesa que utilice el servidor DNS que hemos montado nosotros para probar si funciona correctamente, que se encuentra en nuestra máquina local, le escribiremos después de la @ localhost.

Podríamos decir que ya tenemos nuestro propio servidor DNS.

Pero no estamos aún, el ordenador que hace de servidor está detrás de un router, en una red interna, y deberemos abrir el puerto 53 del router (puerto que utiliza el bind para las peticiones DNS) y redirigirlo al puerto 53 del servidor DNS de la intranet.



Desde el servidor Linux haremos un telnet a la IP del router:

# telnet 192.168.0.1
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
login:


Introduciremos el login y la contraseña adecuada y una vez dentro del router teclearemos lo siguiente:

3Com-DSL>add nat tcp vc internet public_port 53 private_port 53 private_address 192.168.0.5

3Com-DSL>add nat udp vc internet public_port 53 private_port 53 private_address 192.168.0.5

Esto hace lo dicho anteriormente: abre el puerto 53 del router (public_port 53) y envía las peticiones que le llegan, a la máquina 192.168.0.5 que se encuentra dentro de la red (private_address 192.168.0.5) , al puerto 53 de esa máquina (private_port 53). Con lo de tcp y udp indicamos que se valide por esos dos protocolos (esta operación que hace el router se denomina NAT, Network Address Translation / Traducción de dirección de red).

Le decimos al router que guarde los cambios y reinicie para que los cambios tengan efecto:

3Com-DSL>save all
3Com-DSL>reboot

Esperamos un par de minutos más, y todo está listo para que, cuando en el registro de dominio.org se nos pregunte por un servidor DNS, poner el que hemos montado: dns.dominio.org como primario y cualquier otro servidor DNS como secundario.

No lo expliqué antes, pero nos piden dos servidores, uno primario y otro secundario, por si el primario dejara de funcionar alguna vez, podamos seguir visitando la web gracias al DNS secundario. En este caso, pusimos como secundario un DNS de Terra, que podría haber sido cualquier otro. Si nuestro servidor DNS se apagara por alguna razón, se cogería el secundario, pero como el de Terra no tiene ninguna información acerca de dominio.org, no podría mostrarnos la página. De todas maneras, si se apagara el servidor DNS, tampoco podríamos dar servicio de WEB, ya que se trata del mismo ordenador.

Los cambios de configuración en el DNS son lentos, y no será hasta unas horas después (incluso hasta 48 horas) que podremos comprobar los resultados.

Primer problema afrontado y superado, pasemos a la configuración del servidor apache para que funcione definitivamente www.dominio.org .

1.2. Servidor WEB
En primer lugar tendremos que tener instalado dicho programa, que estando en Debian será de lo más fácil (siendo root):

# apt-get install apache

Una vez instalado, pasemos a su configuración, que se basará en la edición de algunos archivos de configuración del apache (repito que es necesario tener privilegios de administrador).

Lo primero de todo será editar /etc/apache/httpd.conf, su archivo principal, en el cual personalizaremos apache para ajustarlo a nuestras necesidades. Recuerdo lo de las copias de seguridad, para poder restaurar el archivo en caso de que fallemos:

# cp /etc/apache/httpd.conf /etc/apache/httpd.conf.old
# vi /etc/apache/httpd.conf

Nos aparecerá una pantalla negro con líneas. Algunas de estas líneas empiezan con el símbolo "#", eso indica que no serán leídas como código, sino como comentarios, y por lo tanto serán ignoradas. Esto resulta útil para apuntar lo que hacemos, aclarar alguna línea de código...

Es hora de modificar el archivo.

Para ello buscaremos la línea siguiente:

ServerType standalone

Esto significa que ServerType coje el valor de standalone. Es la manera en que se ejecutará el servidor. Lo dejaremos así.

A medida que vayas bajando, notarás que hay muchas más definiciones del tipo "Variable valor", de momento no tocaremos nada porque son propias del funcionamiento de apache y no nos interesa cambiar nada, por lo tanto dejaremos los valores por defecto que se nos indica.

Cuando llegamos a ### Section 2: 'Main' server configuration es cuando empezaremos a indicar lo que deseemos.

Vamos bajando y encontraremos las siguientes definiciones:

Port 80

Es el puerto donde apache escuchará. Por defecto el 80, ya que si pusiéramos otro cualquiera, deberíamos especificarlo en la petición de la URL. Si ponemos 7001 por ejemplo, para visitar la página tendríamos que poner en el navegador "http://www.dominio.org:7001". Por lo que lo dejamos en 80.




User www-data
Group www-data

Nombre de usuario y grupo con el cual se ejecutará el servidor. Es necesario, por razones de seguridad, no poner ni root ni cualquier usuario privilegiado. www-data es el que traía por defecto y me pareció el más apropiado.


ServerAdmin webmaster@dns

Se especifica la dirección de email a la que se enviarán los mensajes de error. En nuestro caso pondremos webmaster@dns que es la dirección de email local del administrador de la web.


ServerName dominio.org

Nombre del servidor. Este valor tiene que ser un DNS válido o la IP del servidor web. Dado que compremos dominio.org, será lo que pondremos.


DocumentRoot /home/web

Indica el path (ruta completa) de la carpeta donde guardaremos los archivos de la página principal. En nuestro caso /home/web.




Esta etiqueta no debe quedarse así, sino que se tiene que canviar /var/www/ por lo que pusimos en DocumentRoot. Así que quedaría:


UserDir /home/todos/*/tu_web

Path del directorio que almacenará la página personal de cada usuario. /home/todos/*/tu_web es lo que puse. Así, si alguien escribe en el navegador www.dominio.org/~eberney entrará en la página personal del usuario eberney.


DirectoryIndex index.html index.htm default.htm index.php

Será el fichero o ficheros que tomará el servidor como índice del directorio web. Se suele poner "index.html", aunque se admiten varios más separándolos con espacios (default.html, index.php, index.asp...). No sabía con qué trabajarían los usuarios, así que puse los que se me ocurrieron en ese momento.


Hay muchas más opciones que deberían comentarse, pero no es el caso, nosotros solo queremos lo mínimo para que funcione bien.


Ahora falta poner una página en el DocumentRoot que hayamos escogido.

Crearemos la carpeta indicada, en mi caso:

# mkdir /home/web

Y editaremos cualquier archivo html para probar si funciona:

# vi /home/web/index.html

Escribimos:


Hola


Salimos del editor vi (:wq).

Después de haber configurado el apache toca reiniciarlo con el siguiente comando:

# apachectl restart

Solo nos queda comprobar que todo funciona bien.

# lynx localhost

lynx es un navegador en modo texto para visitar páginas web desde la consola.
Tendría que aparecernos en pantalla "Hola" (el contenido de /home/web/index.html).

Pero esto es en ámbito local, por lo que si desde cualquier ordenador conectado a internet que esté fuera de la LAN ponemos en el navegador www.dominio.org no saldrá la página, por varias razones:

-El router no tiene abierto el puerto publico 80 ni redirigido a nuestro servidor apache.

-Falta aplicar el uso de VirtualHosts en el servidor apache.

La primera es lo mismo que hicimos con el servidor DNS, pero cambiando el puerto a 80, que es el de la web.

El segundo problema se puede resolver fácilmente. De nuevo tenemos que editar el archivo /etc/apache/httpd.conf e irnos al final de todo donde hay las etiquetas llamadas VirtualHost.

Tenemos que buscar y sustituir lo siguiente:

NameVirtualHost 192.168.0.5:80

La dirección con el puerto 192.168.0.5:80 es la del servidor apache que tenemos en la ethernet.


Y ahora abrimos la etiqueta siguiente:


DocumentRoot /home/web/
DirectoryIndex index.php index.html index.htm
ServerAdmin ntn@drdoom.net
ServerName dominio.org
ServerAlias *.dominio.org
ErrorLog /home/web/logs/logerror
CustomLog /home/web/logs/access-log common


Esto crea un host virtual en 192.168.0.5 con características explicadas con anterioridad, excepto el ErrorLog, archivo donde se guardan los errores, y el CustomLog, fichero donde se almacenará un registro de todos los accesos a la web.

Finalmente llega el esperado momento de la prueba, poner en marcha apache otra vez:

# apachectl restart

Ahora, desde cualquier lugar de internet podría uno visitar www.dominio.org.

Hasta aquí llegaría la instalación y configuración mínima de apache, pero se me ocurrieron un par de cosas para hacerlo todo más bonito y tenerlo más ordenado.

Cuando añadimos un usuario, normalmente su home se crea en /home/nombre-de-usuario, pero claro, entre profesores, alumnos y otros usuarios, se liaría una bien grande en el directorio /home, así que pensé que sería conveniente dividirlos según su estatus. Crearía una carpeta para cada grupo de usuarios y una para englobarlos a todos:

# mkdir /home/alumnes
# mkdir /home/profes
# mkdir /home/users
# mkdir /home/todos

De esta manera, a la hora de añadir un usuario, si se trata de un profesor, le indicaremos al programa que añade usuarios (adduser) que utilice como home del usuario la carpeta /home/profes, de esta manera, si añadimos el usuario pgarcia, su home estaría en /home/profes/pgarcia.

¿Y qué pasa con la carpeta todos?

Cuando un usuario es añadido, hay una serie de ficheros y directorios que se encuentran en /etc/skel, que se copian automáticamente en el home del usuario. Entre esos ficheros y directorios está la carpeta tu_web que está predeterminada para almacenar la página web de cada usuario, es decir, el usuario que desee tener página web, deberá poner todos los archivos de su página en el directorio tu_web de su home.

Por ejemplo, el usuario pmanils es un alumno, pues en su home, que será /home/alumnes/pmanils, tendrá una carpeta llamada tu_web (/home/alumnes/pmanils/tu_web) donde guardará su página web.

Recordamos que UserDir se encarga de definir el directorio de la página web de los usuarios cuando se hace una petición web del estilo www.dominio.org/~pepe .

Si no hubiésemos hecho la separación de usuarios y todos se encontrasen en /home, definiríamos UserDir como /home/*/tu_web donde * sustituye al nombre de usuario de la petición web (siguiendo el ejemplo de arriba, se desea ver la página del usuario pepe, entonces en ese momento UserDir valdría /home/pepe/tu_web y nos mostraría la página de pepe).

Pero al hacer la separación de homes por tipo de usuario (alumno/profesor/usuario) tendríamos que añadir tres tipos de UserDir's, uno por el caso que se pidiera la página de un alumno, otro por si fuera la de un profesor, y otra pos si fuera un usuario. Esto no es posible (o al menos yo no lo conseguí) y tuve que buscar una alternativa. Existe un comando llamado ln que sirve para hacer enlaces entre archivos o directorios, esto es, para que fichero1 se refiera a fichero2 pudiendo estar en distintos directorios del disco duro. Con un ejemplo lo veremos mejor:

# ln -s /home/ies/fichero1 /root/fichero-linkado

Este comando crearía el fichero /root/fichero-linkado y si accediéramos a este archivo, veríamos simplemente el contenido de /home/ies/fichero1. Es decir, /root/fichero-linkado no sería más que un espejo (enlace) de /home/ies/fichero1. Con el modificador -s le indicamos que el enlace sea simbólico, es decir, que lo que le ocurra a /root/fichero-linkado no tendrá efecto en el archivo original /home/ies/fichero1, pero las modificaciones que hagamos al archivo original siempre se verán si accedemos al enlace (link).


Todo esto lo explico para que comprendan lo siguiente.

ln nos permite también enlazar directorios, de tal modo que si creamos enlaces con el nombre de cada usuario que vayan desde su home (/home/alumnes/brios y los demás alumnos; /home/profes/mnicolau y los demás profesores; y finalmente /home/users/teckk y los otros usuarios) hacia un solo directorio, tendremos la situación en que todos los usuarios del sistema tengan un enlace en un único directorio destino que queramos, de tal forma que habremos creado un "home" donde tenemos acceso a todos los homes de todos los usuarios. Como podéis suponer, yo los agrupé todos en /home/todos.

De aquí que definimos la variable UserDir de esta manera:

UserDir /home/todos/*/tu_web


Así que cualquier petición a cualquier usuario, ya sea alumno, profesor o usuario, se irá a buscar en la carpeta /home/todos donde existirá un enlace con el mismo nombre de usuario que la petición, que nos llevará al home verdadero del usuario.




Ejemplo:

www.dominio.org/~llmfabrega

llmfabrega es un profesor, pero no importa, UserDir valdrá /home/todos/llmfabrega/tu_web (el * del UserDir es sustituido por el nombre introducido en la petición, en este caso llmfabrega), y dado que /home/todos/llmfabrega es un enlace que lleva al home de este usuario, /home/todos/ llmfabrega/tu_web equivaldría a ir al directorio /home/profes/llmfabrega/tu_web.



A parte también quería que hubiera una dirección web directa para visitar la página de un alumno o profesor del estilo www.dominio.org/alumnes/brios o www.dominio.org/professorat/mnicolau. Para ello utilicé por segunda vez los enlaces simbólicos.

En la configuración del apache teníamos como directorio principal de la web, /home/web. La idea que tuve fue crear tres carpetas más dentro de ese directorio:

# mkdir /home/web/alumnes
# mkdir /home/web/professorat
# mkdir /home/web/users/

Y luego hacer enlaces simbólicos del directorio donde tiene la web cada usuario, a la carpeta de la web principal correspondiente:

Si cgarcia fuera un alumno, entonces el enlace que haríamos sería de este tipo:

# ln -s /home/alumnes/cgarcia/tu_web/ /home/web/alumnes/cgarcia


De esta manera si en la petición web del navegador pusiéramos "www.dominio.org/alumnes/cgarcia" estaríamos entrando en /home/web/alumnes/cgarcia que al ser un enlace, nos llevaría a /home/alumnes/cgarcia/tu_web que es donde nos interesa.

Así debería hacerse con cada alumno, profesor y usuario ajeno.

1.3Servidor FTP
El servidor de FTP es necesario para que los usuarios del sistema puedan subir los ficheros de sus páginas web. Es una tarea fácil y sencilla.

Decidí instalar proftpd, uno de los mejores servidores para Linux:

# apt-get proftpd


Editaremos el archivo de configuración principal, después de hacer una copia del archivo:

# cp /etc/proftpd.conf /etc/proftpd.conf.old
# vi /etc/proftpd.conf

Podremos ver que es bastante parecido al httpd.conf del apache. Pero de este fichero solo nos interesa modificar una pequeña cosa.

DefaultRoot ~

Esta definición debería quedar como se muestra. El DefaultRoot es el directorio raíz donde iremos a parar si entramos por el FTP. El símbolo "~" indica que sea el directorio home de cada usuario, de esta manera, si soy el usuario gonssal y conecto al servidor FTP, iré a parar a /home/users/gonssal/ que es mi directorio home y no podré acceder a los directorios superiores a éste, solo podré moverme dentro de home/users/gonssal/. Es por una razón de seguridad. El proftpd trae por defecto que DefaultRoot sea "/", y esto sería bastante peligroso porque los usuarios podrían moverse por todo el sistema (recordemos que / es el direcotrio raíz de todo el sistema) y serían capaces de subir y bajar archivos sensibles de configuraciones.

Nos quedaría hacer lo de siempre, abrir el puerto 21 (que es el del FTP) en el router y redirigirlo a nuestra máquina. Como ya sabemos cómo hacerlo, no volveré a repetirlo.

Si recordamos lo que pusimos en el archivo de la zona dominio.org en la configuración del servidor DNS vemos lo siguiente:

ftp IN CNAME dns

Como vemos, ftp no tiene un punto al final, por lo que acabaría siendo ftp.dominio.org que es un alias (CNAME) de dns (dns.dominio.org porque no tiene punto tampoco) y que en la configuración de más arriba definimos dns como la IP 80.80.80.80. De esta manera ftp.dominio.org equivaldría la misma IP que dns.dominio.org.

Esto resulta útil porque si queremos acceder al FTP de dominio.org, lo podremos hacer indicando como host ftp.dominio.org que queda más estético.

De esta manera ya quedaría todo a punto para que los usuarios puedan subir sus páginas personales.


3 Servidores SMTP y POP3
Para poder dar el servicio de mail, es necesario saber que existen dos programas: el encargado de enviar los emails (SMTP) y el de recogida de mails (POP). Por lo tanto deberemos configurar dos servicios, el de POP3 (ya que POP2 ha pasado un poco a la historia) y el SMTP (esto no es del todo cierto, ya que el servicio SMTP se encarga de transportar el correo entre servidores, y sólo se habla con servidores, de tal modo que POP es el protocolo usado para entregar el correo a los clientes).


3.1 Servidor SMTP
Debian trae por defecto el programa exim que se encarga del correo saliente del servidor. Durante la instalación de Debian se ejecuta un programa llamado eximconfig que nos permite configurar de una manera fácil exim. Después de la instalación podremos ejecutar cuando nos plazca dicho programa para modificar la configuración existente.

eximconfig nos hará una serie de preguntas a las cuales deberemos responder según nos interese:

- Uso del servidor: será la primera pregunta que se nos mostrará. Aquí deberemos pulsar el número 1, puesto que queremos configurar un servidor de correo electrónico a Internet. Las otras opciones son para otras configuraciones que no nos atañen.

- Nombre visible de la máquina: es lo que queremos que aparezca como remitente en los emails que enviemos. Yo puse "dominio.org" que es nuestro dominio que compremos.

- ¿Tiene otros nombres nuestro sistema a parte del anterior? En nuestro caso no, pondremos "none" o le daremos al enter ya que por defecto es "none".

- En este apartado se nos informa que nuestro servidor de correo aceptará correo que venga de Internet con destino a nuestra máquina y todo el correo que se envíe de forma local con destino a Internet (correo local es el que tiene como destino un usuario de nuestra máquina; correo saliente es el que tiene como destino otras máquinas o Internet), pero no reenviará correo (hacer relay) para otros que se conecten desde Internet a nuestra máquina. De esta manera evitaremos que alguien se aproveche de nuestro servidor para enviar mails masivos, publicidad, etc... (spamming). De todas formas podemos indicarle a exim que sí lo deje hacer para ciertos dominios. En nuestro caso no nos interesaba, así que "none".

- ¿Para qué dominios queremos actuar de servidor de mail (a parte del nuestro)? Ahora se lo podemos indicar. "none" para mi configuración.

- Ahora podemos escoger para qué máquinas haremos de servidor de correo. Podemos indicarle direcciones IP o dominios. Yo le puse "*.dominio.org" (con el asterisco), que en realidad es una misma máquina, pero que puede ser mail.dominio.org, ftp.dominio.org o dns.dominio.org.



- A qué usuario se redirigirá el correo que vaya para el superusuario (root). Esto también es por razones de seguridad, de esta manera el correo nunca podrá ser leído por el administrador y por lo tanto se reducirán los posibles ataques con correos malintencionados. En mi caso pues el usuario "ies", que soy yo mismo.

- Nos informa que ya tenemos un /etc/aliases y si deseamos reemplazarlo por uno nuevo que generará exim o si queremos mantener el nuestro. Si elegimos la primera opción no perderemos nuestro fichero, sino que será renombrado a /etc/aliases.0 . Yo le indiqué que sí, que lo reemplazara por el nuevo.

- El último paso es un resumen de todos los datos que le hemos introducido durante el proceso de configuración. Si son correctos pulsaremos "y", y si no, podemos repetir el cuestionario pulsando "n".


Una vez tengamos esta configuración, queda hacer una pequeña cosa. Durante las preguntas, respondimos que no queríamos reenviar correo de gente que venía de Internet, pero claro, es justamente lo que queremos nosotros, que los usuarios desde su casa configuren su cliente de correo electrónico para que puedan conectarse a este servidor y poder enviar sus emails con la dirección nombre-de-usuario@dominio.org. Entonces era necesario controlar quién se conectaba al servidor SMTP para dejarle o no enviar emails. Una de las maneras es hacerlo por IPs, especificar qué IPs dejamos conectar a nuestro servidor. Pero no todos los usuarios tendrían una IP fija, sino que la mayoría se conectarían por módem, y cada vez que lo hicieran se les asignaría una IP distinta y sería imposible controlarlos. Entonces no resultaba muy útil este método y decidí controlar el reenvío de correo (relay) por dirección de correo origen. Esto es, que solo se dejarían enviar aquellos correos cuyo remitente figurase en una lista elaborada por nosotros. Es decir, si alguien intentase enviar un correo a miamigo@cualquier.com con remite pepe@otro.org utilizando nuestro servidor de correo, se le denegaría el envío, solo podría enviar emails con nuestro servidor si pusiera como remite usuario-valido@dominio.org.

Para llevar a cabo este control, editaremos el /etc/exim/exim.conf y añadiremos lo siguiente:

# cp /etc/exim/exim.conf /etc/exim/exim.conf.old
# vi /etc/exim/exim.conf

Nos dirigiremos hacia host_accept_relay (para tenerlo un poco ordenado) y justo debajo escribiremos lo siguiente:

relay_match_host_or_sender
sender_address_relay = /etc/exim/lista_relay

Esto le indica a exim que utilice el método de control del relay por host o por dirección de origen, y que la lista de los usuarios permitidos para hacer relay se encuentra en /etc/exim/lista_relay.

Por lo tanto solo nos queda añadir qué direcciones permitiremos que hagan relay:

# vi /etc/exim/lista_relay

Y escribir las direcciones al estilo "mnicolau@dominio.org". Aquí también se hizo un pequeño script para añadir a todos los usuarios del sistema en esa lista.

Ahora abriremos el puerto 25 en el router, como hemos hecho desde siempre.

Hasta aquí finalizaría la configuración de exim, y cualquier usuario desde su casa, configurando su cliente de correo electrónico adecuadamente, podría ya enviar correo con la dirección mnicolau@dominio.org tratándose del usuario mnicolau, por ejemplo.

Pero no acaba aquí, ¿de qué nos sirve enviar correo con un remite al que luego si intentan contestar, no puedan? Acabamos de configurar un servidor de correo saliente, para enviar correo solo, pero necesitamos también un servidor de correo entrante para poder recibir emails, para que la gente pueda responder a mnicolau@dominio.org si lo desea y que luego mnicolau pueda recoger dichos mensajes.

3.2 Servidor POP3
Aquí encontramos la solución. POP3 se encarga del correo entrante, de tal manera que si alguien envía un mail a llmfabrega@dominio.org, POP3 recibe este email y lo guarda al directorio home del usuario correspondiente dentro de un fichero llamado mbox (en este caso se guardaría en /home/profes/llmfabrega/mbox). Luego, este usuario, desde su casa podría conectarse al servidor pop3 y tras identificarse con su login y su contraseña, recoger los mensajes que se encuentren en su mbox. Sí, mbox es un archivo de texto que guarda todos los emails recibidos, de tal manera que si deseas guardar los mails, se van acumulando en este fichero, y si más tarde quieres leer un mail de hace un mes, tendrás que hurgar en este fichero hasta encontrarlo. Por esto que el sistema de almacenaje en mbox es un poco precario.

Es por eso que existe otro sistema para almacenar los mails recibidos, es el sistema de Maildir. Este sistema almacena los mensajes recibidos en una carpeta llamada "new" dentro del directorio Maildir que se encuentra en el home de cada usuario. Pero no guarda los emails en un solo fichero como mbox, sino que cada email es un fichero. De esta manera resulta mucho más fácil trabajar con los emails recibidos.

Para pasar al sistema de Maildir, tendremos que editar de nuevo el archivo de configuración de exim:

# vi /etc/exim/exim.conf

Nos desplazaremos hasta encontrar la línea que ponga local_delivery: y haremos lo siguiente:

-Comentaremos (añadir un # al inicio de la línea)

file = /var/spool/mail/${local_part}

-Y añadiremos estas tres líneas:

directory=${home}/Maildir
maildir_format = true
prefix = ""


Quedando pues de la siguiente manera:

local_delivery:
driver = appendfile
group = mail
mode = 0660
mode_fail_narrower = false
envelope_to_add = true
return_path_add = true
#Añadimos lo siguiente
directory=${home}/Maildir
maildir_format = true
prefix = ""
# file = /var/spool/mail/${local_part}

Terminada esta parte, nos movemos un poco más abajo hasta encontrar address_directory:
y allí descomentaremos la línea que dice # maildir_format, quedando esta parte así:

address_directory:
driver = appendfile
no_from_hack
prefix = ""
suffix = ""
maildir_format

Una vez hechos estos cambios podremos guardar y salir.

Ahora pasearemos a la instalación en sí de pop3.

Existen bastantes programas que ofrecen el servicio de POP, así que escogimos uno que me pareció sencillo de instalar. ipopd es el programa en cuestión. Tras investigar un poco, descubrí que existía un versión segura de este software. Cuando nos conectamos a un servidor POP, necesitamos suministrar una contraseña. Esta clave se envía normalmente como texto plano, es decir, que cualquier individuo que estuviera "escuchando" nuestra línea, podría hacerse fácilmente con la clave de acceso. Por eso se desarrollan versiones seguras del software, que cifran la contraseña de tal manera que sólo el destinatario pueda descifrarla. Así nos aseguramos que nadie pueda hacerse con nuestro password. Cabe decir que esta versión segura soporta también conexiones no seguras, por lo tanto "matamos dos pájaros de un tiro".

La versión segura de ipopd se llama ipopd-ssl, así que vayamos a instalarla:

# apt-get install ipopd-ssl


Una vez hecho esto, hay que abrir el puerto 110 del router y redirigirlo al 110 de nuestro servidor. Tendremos instalado nuestro servidor de POP3, y todos los usuarios del sistema gozarán de una cuenta de email para poder enviar y recibir su correo electrónico desde sus casas.



4. Cerrando
Terminada la configuración, muestro aquí la foto del servidor:




Posteriormente instalé un SAI. Además aparece un hub de la red por aquí en medio y encima de la torre un AP/Router de la red wireless que estoy construyendo para dar cobertura al centro y al resto del poblado. El tema wireless se está desarrollando, aún no se ha finalizado la red.

Y aquí doy por concluido este documento. Dudas, consejos y demás:

Pere Manils

nTn@DrDoom.net



Visitors: 228327

Como configurar un servidor DHCP

Servidor DHCP

DHCP es Dynamic Host Configuration Protocol o Protocolo de Configuración Dinámica de Servidores, bien, ahora en lenguaje común esto es una manera para que una computadora se configure automáticamente para poder conectarse a una red, esto es estableciendo por medio de este protocolo su IP, su mascara, su puerta de enlace, sus DNS entre otros.

Partimos de la base supuesta de que tenemos una una red con los siguiente parámetros
Red: 192.168.1.0
Mascara: 255.255.255.0
Puerta de Enlace: 192.168.1.1
Un equipo Linux con Ubuntu Gutsy ya previamente configurado para compartir una conexión a Internet por lo que tenemos en este servidor 2 tarjetas de red: eth0 que es donde esta conectada la conexión a Internet eth1 que es la conexión a la red a la que se les esta dando la conexión y a donde vamos a prestar el servicio de DHCP, el procedimiento es el siguiente.

sudo apt-get install dhcp3-server

sudo nano /etc/default/dhcp3-server

Buscar una línea que dice INTERFACES=" "
Agregar entre las comillas el dispositivo de red que va a proveer el servicio de DHCP, en este caso eth1 INTERFACES="eth1"

Guardar el archivo.

Editar el siguiente:

sudo nano /etc/dhcp3/dhcpd.conf

Buscar las líneas que dicen:
option definitions common to all supported networks...;
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;

Comentarlas para que queden así:
# option definitions common to all supported networks... ;
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;

Establecer la configuración que va a manejar el DHCP y el rango de IPs con las que puede trabajar.
Elegimos para el ejemplo
IPs 192.168.1.100 a 192.168.1.149
DNS 200.52.12.131 y 200.52.12.132

En el mismo archivo /etc/dhcp3/dhcpd.conf

Buscar las líneas:
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}

Dejarlas así:
# A slightly different configuration for an internal subnet.
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.100 192.168.1.149;
option domain-name-servers 200.52.12.131, 200.52.12.132;
# option domain-name "tm.net.my";
option routers 192.168.1.1;
option broadcast-address 192.168.1.255;
default-lease-time 600;
max-lease-time 7200;
}

Guardar el archivo.

Reiniciar el servidor de DHCP.

sudo /etc/init.d/dhcp3-server restart

Saludos.