Documentacion de servidores linux

Page 1

IMPLANTACIร N Y DESARROLLO DE SERVICIOS SOBRE UNA PLATAFORMA UBUNTU

Emilio Crespo Perรกn

Proyecto final de curso de Ciclo Formativo de Grado Medio de Sistemas Microinformรกticos y Redes en Servicios en Red Profesor: Jorge Simรณn Guerrero Curso: 2010/2012 Fecha: 14 de Marzo de 2012


Índice 1. CONSIDERACIONES PREVIAS ........................................................................................................3 2. SERVIDOR DHCP.................................................................................................................................3 2.1 INTRODUCCIÓN ...................................................................................................................................3 2.2 FUNDAMENTOS ...................................................................................................................................4 2.3 DESARROLLO ......................................................................................................................................4 2.4 PROBLEMAS Y SOLUCIONES ................................................................................................................8 3. SERVIDOR DNS....................................................................................................................................9 3.1 INTRODUCCIÓN ...................................................................................................................................9 3.2 FUNDAMENTOS ...................................................................................................................................9 3.3 DESARROLLO ......................................................................................................................................9 3.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................14 4. SERVIDOR SSH ..................................................................................................................................15 4.1 INTRODUCCIÓN .................................................................................................................................15 4.2 FUNDAMENTOS .................................................................................................................................15 4.3 DESARROLLO ....................................................................................................................................16 4.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................26 5. SERVIDOR HTTP ...............................................................................................................................27 5.1 INTRODUCCIÓN .................................................................................................................................27 5.2 FUNDAMENTOS .................................................................................................................................27 5.3 DESARROLLO ....................................................................................................................................27 5.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................40 6. SERVIDOR FTP ..................................................................................................................................41 6.1 INTRODUCCIÓN .................................................................................................................................41 6.2 FUNDAMENTOS .................................................................................................................................41 6.3 DESARROLLO ....................................................................................................................................41 6.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................50 7. SERVIDOR DE CORREO ..................................................................................................................51 7.1 INTRODUCCIÓN .................................................................................................................................51 7.2 FUNDAMENTOS .................................................................................................................................51 7.3 DESARROLLO ....................................................................................................................................51 7.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................61 8. SERVIDOR VOIP................................................................................................................................62 8.1 INTRODUCCIÓN .................................................................................................................................62 8.2 FUNDAMENTOS .................................................................................................................................62 8.3 DESARROLLO ....................................................................................................................................63 8.4 PROBLEMAS Y SOLUCIONES ..............................................................................................................73

-2-


1. Consideraciones previas Antes de nada, vamos a planificar nuestra instalación de nuestro servidor y nuestro cliente, para ello, lo hemos instalado en una máquina virtual. A nuestro servidor, le hemos añadido una memoria de 2 GB y un disco duro de 30 GB mientras que al cliente le hemos añadido 1 GB de memoria y un disco duro de 10 GB. También no debemos de olvidar de poner correctamente el adaptador puente en nuestro servidor y cliente, ya que si en el apartado Red/Adaptador puente marcamos una tarjeta de red que no está activa, no funcionará. Una vez hecho todo esto, instalamos las dos máquinas virtuales, y procederemos a realizar los ajustes necesarios a nuestro servidor. Vamos a utilizar diversos comandos para proceder al funcionamiento de nuestro servidor; siempre que utilicemos alguna orden para cambiar algún dato en el sistema, tendrá que ser acompañada del comando sudo, para tener permisos de administrador y poder configurarlo a nuestra manera. Ejemplo:

sudo gedit /etc/network/interfaces

Esta orden nos llevará a editar la configuración sobre nuestra red por defecto, que posteriormente tendremos que cambiar, ya que un servidor tiene que tener una dirección IP fija. Al servidor, le daremos la IP fija 192.168.2.122.

2. Servidor DHCP 2.1 Introducción DHCP (Dynamic Host Configuration Protocol ‐ Protocolo de configuración dinámica de host), es un protocolo de red que asigna automáticamente una dirección IP dinámica a un cliente dentro de una red IP. Es un protocolo cliente/servidor, en el que el servidor tiene una lista de direcciones IP dinámicas y las asigna a los clientes conforme van quedando direcciones IP libres. Se le asigna una dirección IP a un cliente por un tiempo determinado, una vez que a expirado ese tiempo, se le da esa dirección IP a otro cliente que la necesite, si no la necesita nadie, se la vuelve a concebir.

-3-


2.2 Fundamentos Vamos a realizar la configuración de nuestro servidor, y comprobar su funcionamiento mediante un cliente. Para ello antes debemos de: ‐ Tener instalado dos máquinas virtuales: un cliente y un servidor. ‐ Descargar el paquete Webmin desde http://www.webmin.com/download.html allí nos descargaremos el paquete en la pestaña debian package, la versión 1.560. ‐ Instalar el paquete dhcp3‐client y webmin.

2.3 Desarrollo Primero vamos a iniciar el servidor, una vez hecho, vamos a ir al gestor de paquetes Synaptic y buscamos el paquete dhcp3‐client, en el caso de que no esté instalado, lo marcamos para instalar (lo normal es que ya esté instalado). Para ir al gestor de paquetes Synaptic, vamos a Sistema > Administración > Gestor de paquetes Synaptic, dentro de aquí, para buscar el paquete dhcp3‐cliente vamos a Editar > Buscar y escribimos dhcp3‐client. Si tiene un cuadradito verde, está instalado y si por el contrario está blanco, necesita instalarse.

Ahora el siguiente paso es configurar el DHCP de forma automática, por lo que iremos a Sistema > Preferencias > Conexiones de red. En la ventana que se nos abre, en la pestaña Cableada, seleccionamos Auto eth0 y vamos a Editar. Se nos abrirá otra ventana e iremos a la pestaña Ajustes de IPv4 y en el menú desplegable Método, seleccionamos Automático (DHCP) y aplicamos los cambios.

-4-


Abrimos el Terminal de Ubuntu y escribimos:

sudo gedit /etc/network/interfaces

Allí nos encontraremos el archivo que se muestra en la ventana A, y tendremos que poner los parámetros de nuestra red IP como en la ventana B. Guardamos y cerramos.

Ventana A

Ventana B

Ahora vamos al Terminal de nuevo, y escribimos:

sudo /etc/init.d/networking restart

Comprobamos los ajustes con ifconfig. Ahora, vamos a ejecutar la siguiente orden:

sudo gedit /etc/resolv.conf

Escribimos estos parámetros y guardamos.

-5-


Vamos a instalar otro paquete en el gestor de Synaptic, ahora tenemos que instalar el paquete dhcp3‐server, lo buscamos y lo instalamos como en el apartado anterior. Una vez hecho esto, vamos a proceder a la instalación de Webmin. Para ello, previamente lo hemos descargado en el apartado anterior. Hacemos doble clic y se comenzará a instalar. Con el paquete Webmin instalado, vamos a iniciar el navegador y escribimos en la barra de navegación: https://localhost:10000 introduciendo nuestro usuario y contraseña. En el caso de que no funcionase, vamos al Terminal y ejecutamos:

sudo /etc/init.d/webmin restart

Aquí podemos observar todos los parámetros de nuestro servidor. Ahora, vamos al Terminal de nuevo, ejecutamos:

sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf.old20110927

De esta forma, copiaremos el archivo de configuración del DHCP y lo tendremos guardado en un caso de que en el archivo nuevo de configuración no funcionase. Lo hemos llamado por la fecha, para tener mucho más orden y limpieza a la hora de buscar los archivos. Una vez copiado el archivo de configuración, vamos a abrir el archivo:

sudo gedit /etc/dhcp3/dhcpd.conf

Borramos todo su contenido y escribimos lo mismo que en la siguiente imagen:

-6-


Las almohadillas (#), son aclaraciones sobre los distintos párrafos. Todos los servidores están en: /etc/init.d/(webmin, dhcp3‐server, networking) Ahora vamos a introducir en la configuración, el parámetro host, en el que reservaremos una dirección a un cliente, en el que tenemos que sustituir el último párrafo por el de la imagen:

En el apartado hardware Ethernet, se tiene que indicar la MAC del cliente que vamos a reservar la IP, y fixed‐address la IP para ese cliente con esa MAC. El último paso a seguir es volver a poner range, pero también el host, por lo que quedaría así:

También en la opción doman‐name‐servers modificamos: Son los DNS de telefónica, quitamos la almohadilla también y listo, los DNS ahora están resueltos.

-7-


2.4 Problemas y soluciones Podemos tener algunos problemas, en configurar el servidor, ya que no funcionará en el caso de que esté mal escrito algún párrafo, olvidarse un punto y coma al final de la sintaxis o confundir algunos pasos sin querer. En el apartado del parámetro host, una vez que hayamos configurado todo y que esté bien, podemos observar que si queremos navegar por internet, no tendremos conexión a Internet; esto es un típico fallo, porque en realidad si que tendremos conexión a Internet, solo que los DNS no están resueltos y a menos que sepamos la dirección IP del sitio Web al que queramos ir, no podremos navegar. Una vez que hemos puesto los DNS de telefónica, comprobamos que los DNS funcionan correctamente. Hay casos en los que por ejemplo, en la configuración del parámetro host, en el apartado que dice fixed‐address [dirección IP]; tenemos que tener cuidado, ya que no funcionará si nos olvidamos de ese guión o si escribimos adress en vez de address.

-8-


3. Servidor DNS 3.1 Introducción El sistema de nombres de dominio (DNS) consiste simplemente en traducir un nombre en una dirección IP y viceversa, traducir una dirección IP en un nombre. Es interesante porque permite la asignación de nombres a los servidores que operan la red global de Internet y segundo, debido a que usa un mapa de nombres y direcciones distribuidos geográficamente, ofrece un sistema de cliente‐servidor a nivel global de gran escala. Tiene dos aspectos conceptualmente independientes: por un lado especifica la sintaxis de los nombres y define un conjunto de reglas para delegar la autoridad en función de ellos. El segundo aspecto es concreto: especifica la forma en que se implementa y distribuye un sistema que traduzca eficientemente nombres y direcciones.

3.2 Fundamentos Vamos a configurar el servidor DNS de nuestro servidor. Para ello vamos a instalar desde Synaptic el paquete bind9 y a través de webmin vamos a ir por las diferentes opciones para poder configurarlo correctamente. También vamos a tener que comprobar los cambios que hayamos hecho en webmin en el Terminal para abrir los distintos ficheros que se habrán ido modificando según íbamos configurando los servidores DNS.

3.3 Desarrollo Primero vamos a instalar el paquete bind9, por lo que vamos a Sistema > Administración > Gestor de paquetes Synaptic > Editar > Buscar y escribimos bind9. Lo instalamos y ponemos en el navegador https://localhost:10000, vamos al apartado Servidores > Servidor de DNS Bind. En el caso de que no esté, reiniciamos webmin y listo.

-9-


Vamos hacia Zona DNS existentes > Crear una nueva zona maestra. Allí introducimos los siguientes parámetros:

Cuando hemos creado una zona maestra, en el archivo /etc/bind/named.conf.local se incluye el siguiente código:

Ahora vamos a Dirección (0) y añadimos la dirección IP de nuestra máquina física y la de nuestro servidor. En el apartado nombre escribimos servidor.emilio2smr.com y windows.emilio2smr.com y en dirección, la IP de cada nombre. Esta zona representa al registro de recurso A. En la configuración, quedaría así:

- 10 -


Después, vamos al apartado Alias de nombre, aquí añadimos los alias mail, www y ftp.

Ahora vamos con el Terminal al archivo de configuración de hosts que se generó al introducir en el apartado anterior los parámetros. Por ello vamos a:

sudo gedit /var/lib/bind/*nombre del servidor*

(El fichero será *nombre del servidor.hosts*)

Para comprobar su funcionamiento, ejecutamos varios parámetros:

dig servidor.*nombre del servidor".com

dig www.*nombre del servidor".com

dig "nombre del servidor".com

- 11 -


Si en pantalla sale NOERROR, querrá decir que es correcto, por el contrario, vamos a /etc/resolv.conf y quitamos esas 3 líneas quedando así:

Y lo ejecutamos de nuevo. En caso de que nos siga dando error, reiniciamos:

sudo /etc/init.d/bind9 restart

Ahora vamos a crear una nueva zona maestra inversa, introducimos los mismos datos que en el anterior, solo que en nombre de dominio ponemos como se llama nuestra red (192.168.2.0) y en tipo de zona marcamos Inversas. El resto es exactamente lo mismo. Una vez hecho este paso, ejecutamos:

sudo gedit /etc/bind/named.conf.local

Se añadirá otro código en el archivo de configuración local. Sería bueno escribir un comentario mediante // para añadir información como se muestra aquí.

- 12 -


Ahora nos toca añadir los registros PTR para la red. Para ello vamos dentro de webmin a Zonas DNS Existentes y vamos al nombre de la red (192.168.2.0 en mi caso). Ahora vamos a Dirección inversa, y damos de alta el servidor y la máquina física.

Por último, vamos a comprobar si se ha generado el archivo de configuración, que debemos ejecutar el comando en el Terminal:

sudo gedit /var/lib/bind/*nombre de la red*.rev

- 13 -


3.4 Problemas y soluciones En este servidor, pueden haber muchos problemas a la hora de configurarlo. En el apartado anterior donde se explica para añadir los registros PTR, es posible cometer el error de añadir estos registros de zona inversa en el lugar emilio2smr.com en vez de en 192.168.2.0 (en mi caso). Hecho esto, el fichero de configuración será el correcto, en el que está en /var/lib/bind/*nombre de la red*.rev y no en el fichero de hosts como me pasaba a mí. Es importante, que en algunos casos que se deba dar un nombre de dominio, que en esa línea de dominio acabe en punto, si no, no funcionará. También en algunos casos puede que la IP o alguna línea de dominio esté mal escrita y eso haga que no funcione, en el caso de no dar la solución, lo mejor es seguir los pasos desde el principio y con atención.

- 14 -


4. Servidor SSH 4.1 Introducción SSH™ (Secure SHell) es un protocolo que facilita las comunicaciones seguras entre dos sistemas usando una arquitectura cliente/servidor y que permite a los usuarios conectarse a un host remotamente. A diferencia de otros protocolos de comunicación remota tales como FTP o Telnet, SSH encripta la sesión de conexión, haciendo imposible que alguien pueda obtener contraseñas no encriptadas. SSH está diseñado para reemplazar los métodos más viejos y menos seguros para registrarse remotamente en otro sistema a través de la shell de comando, tales como telnet o RSH. Un programa relacionado, el SCP, reemplaza otros programas diseñados para copiar archivos entre hosts como RCP.

4.2 Fundamentos Para desarrollar este servidor, necesitaremos descargar e instalar el paquete openssh‐ server, en el que después iniciaremos una sesión desde el cliente con el servidor Linux en modo texto. También conectaremos con la máquina física al servidor en modo texto con el programa Putty. Ejecutaremos órdenes en el Terminal como scp desde el cliente o servidor para copiar archivos entre sí o conectarnos desde el cliente al servidor en modo texto con la orden ssh. Crearemos una clave pública para conectarnos al servidor. Para la práctica FreeNX, nos descargaremos 3 paquetes desde la página www.nomachine.com: nxclient_3.5.0‐7_i386.deb, nxnode_3.5.0‐7_i386.deb y nxserver_3.5.0‐9_i386.deb para Linux y para Windows nxclient_3.5.0‐7, en la que ejecutaremos sesiones remotas gráficamente y no en modo texto.

- 15 -


4.3 Desarrollo Primero vamos a descargarnos el paquete openssh‐server para este apartado en nuestro servidor Linux. Para ello vamos a Sistema > Administración > Gestor de paquetes Synaptic > Editar > Buscar y escribimos ssh. Una vez realizada la búsqueda, buscamos el paquete openssh‐server, lo marcamos para instalar y aplicamos la acción. Una vez hecho esto, vamos a comprobar su conectividad con nuestra máquina física. Para ello, vamos a descargarnos el programa Putty, que sirve para realizar conexiones remotas. Antes de ejecutar este programa, para poder conectarnos con el servidor desde nuestra máquina física a través del programa Putty, tendremos que añadir la dirección IP del servidor a los DNS de nuestra máquina física, sino, no nos funcionará. Ya descargado este programa, lo ejecutamos; En el apartado Host Name, escribiremos el nombre de nuestro dominio :

servidor.*nombre del dominio*.com

Haremos clic en Open y se nos abrirá una ventana para introducir el login del servidor y su contraseña.

Cerramos el cuadro de diálogo, y comprobamos, que si escribimos www.*nombre del dominio*.com también se conectará, de la misma forma que si escribimos *nombre del dominio*.com. Comprobado que nos conecta correctamente, cerramos el programa y ahora vamos a conectarnos desde el cliente.

- 16 -


Para ello, vamos al cliente e iremos al fichero resolv.conf desde el Terminal que se encuentra en /etc/resolv.conf y observamos que se encuentran en este caso los DNS de telefónica. En nuestro servidor iremos al fichero dhcpd.conf desde el Terminal para configurarlo:

sudo gedit /etc/dhcp3/dhcpd.conf

En la línea domain‐name, escribimos entre comillas nuestro nombre de dominio y quitamos los comentarios de la tercera y cuarta línea quedando así:

También en la zona dónde teníamos que dar una dirección fija a nuestro cliente (fixed‐ address), eliminamos las líneas que teníamos de rango para dar direcciones IP, quedando como se muestra en la imagen:

Guardamos los cambios de configuración de este archivo y reiniciamos el servidor DHCP con la orden desde el Terminal:

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

Comprobamos en el cliente, si se ha cambiado la configuración correctamente, en el que abriremos el archivo resolv.conf:

sudo gedit /etc/resolv.conf

- 17 -


La última vez que abrimos este archivo, tenía los DNS de telefónica, ahora nos muestra los cambios aplicados en la configuración de DHCP, en el que nos muestra tres líneas, dos líneas con el nombre de nuestro servidor y una con su dirección IP:

Verificado que los cambios son los correctos, vamos a conectarnos con el cliente al servidor, en el cual ejecutaremos la orden:

ssh *usuario del servidor*@servidor.*nombre del dominio*.com

Indicando yes, nos pedirá la contraseña del usuario del servidor y nos conectará a él. Para salir de esa sesión ssh del servidor, escribimos exit. SCP Con la orden scp, vamos a copiar remotamente un archivo del servidor, es igual que la orden cp, solo que ésta es de forma remota y a diferencia de rcp, es mucho más segura. Vamos a realizar una práctica con este comando, primero vamos al servidor y creamos en el Escritorio, un archivo llamado pruebascp.txt y dentro de el añadimos contenido. Ahora vamos al cliente y abrimos 2 terminales; en el primero ejecutaremos la orden ssh para localizar el archivo en concreto y en el segundo ejecutaremos la orden scp para copiarnos ese archivo en nuestro Escritorio, llamándolo pruebascp2.txt. 1er Terminal:

ssh *usuario del servidor*@servidor.*nombre del dominio*.com

Una vez conectamos al servidor, ejecutaremos la orden pwd para saber dónde estamos actualmente y llegamos al directorio Escritorio. Dentro de aquí, ejecutamos la orden ls ‐l para saber como se llama el archivo, ya localizado, vamos al segundo Terminal.

- 18 -


2º Terminal: scp *usuario del servidor*@servidor.*nombre del dominio*.com:*ruta del archivo* *ruta de destino*/pruebascp2.txt En el equipo cliente se copiará el contenido de pruebascp.txt llamándose pruebascp2.txt. Si queremos transferir un archivo desde el cliente al servidor, la sintaxis será: scp *ruta archivo local* *usuario del servidor*@servidor.*nombre del dominio*.com:*ruta de destino* Cuando vamos a añadir la ruta del archivo en local, podemos tabular para encontrar más rápidamente el archivo, pero esto no se debe hacer al encontrar un archivo en remoto, ya que al tabular se hará en local y no en remoto. SFTP La orden sftp es la misma que scp, solo que para coger o poner los archivos en remoto, se usan las órdenes get para coger y put para subir. La sintaxis será la siguiente:

sftp *usuario del servidor*@servidor.*nombre de dominio*.com

Una vez que estemos dentro del servidor desde el cliente, se usan órdenes en local y en remoto, aquí se expone un listado para la práctica.

Local

lcd

lpwd

Remoto

Utilidad

cd

Navegar entre directorio

pwd

Visualizar el contenido de un directorio

Para coger y subir archivos, necesitaremos situarnos en el directorio objetivo y destinatario, una vez hecho este paso, solo queda añadir la orden get o put y el archivo a coger o subir. En la siguiente imagen se muestra un ejemplo práctico, en el que creamos previamente un archivo en el servidor, lo cogemos en el cliente, lo borramos del servidor y subimos el archivo desde el cliente hasta el servidor. Para salir de la sesión sftp ejecutamos quit.

- 19 -


Ahora vamos a realizar un ejercicio, en el que vamos a conectarnos al servidor desde el cliente y ejecutar un objeto en el servidor, pero viéndolo en el cliente, veamos como se realiza. En el servidor, vamos al Terminal y escribimos:

sudo gedit /etc/ssh/sshd_config

Activamos indicando yes en la línea que muestra X11Forwarding. Si en la línea que se muestra en la siguiente imagen es igual, no tocaremos nada.

En el cliente, también iremos al Terminal y escribimos:

sudo gedit /etc/ssh/ssh_config

Editaremos la línea que pone ForwardX11 no, escribiremos yes y quitamos el comentario de esa línea en el apartado Host y guardamos el archivo.

- 20 -


Una vez guardado el archivo, vamos al cliente y escribimos en el Terminal:

ssh ‐l *usuario del servidor* *IP del servidor*

En la sesión, escribimos: xeyes & Se nos abrirá una ventana en la que aparecerán unos ojos.

Esta utilidad sirve para ejecutar gráficamente un objeto en el cliente, pero en realidad se está ejecutando en el servidor. El carácter &, sirve para seguir ejecutando órdenes en el Terminal sin cerrar un archivo o aplicación abierta. Vamos a iniciar una sesión ssh con autenticación por clave pública, por lo que vamos a generar una clave en el cliente escribiendo en el Terminal:

ssh‐keygen ‐t rsa

- 21 -


En la flecha nº 1, introduciremos un Intro y en la flecha nº 2, introduciremos lo que queramos, por ejemplo "vallecas". Nos saldrá la clave pública como se ve en la imagen anterior. Comprobamos que se ha generado el archivo yendo al directorio donde se ha guardado la clave en el paso anterior. Este directorio es oculto, ya que tiene un punto delante y por lo tanto no se visualizará gráficamente, así que ejecutamos el comando de la imagen.

Una vez comprobado, ejecutamos la orden: scp /home/*usuario*/.ssh/id_rsa.pub *usuario del servidor*@servidor.*nombre del dominio*.com:/home/*usuario*/.ssh Copiada la clave pública al servidor, nos conectamos a el en una sesión ssh, nos dirigimos al directorio .ssh con la orden y después ejecutamos dentro del directorio .ssh:

cat id_rsa.pub >>authorized_keys

Se añadirá esa clave al contenido del fichero authorized_keys. El símbolo de >> hace referencia a añadir esa clave pública a ese fichero, si sólo escribiésemos > se eliminaría el contenido de ese fichero y sólo añadiría el contenido de esa clave pública. Es decir, si en el fichero authorized_keys tenemos 4 claves públicas de otros clientes y escribimos > se borrarían todas las claves en ese fichero, y sólo contendrá la clave que añadamos. Añadida la clave al fichero, vamos a conectarnos al servidor con el cliente. Una vez ejecutado, añadimos permisos:

chmod go‐rwx authorized_keys

- 22 -


Hecho esto, cerramos la sesión ssh con el servidor y volvemos de nuevo a abrir otra sesión ssh, en la que nos pedirá la contraseña que introducimos para encriptar la clave pública y listo.

NX Descargados todos los paquetes NX, abriremos sesiones remotas. A diferencia de abrir una sesión remota con ssh o con Putty, con esta aplicación nos conectaremos en remoto y en modo gráfico, ya que con Putty o ssh sólo se mostraba en modo texto. Instalamos los paquetes en el servidor en el siguiente orden: nxclient, nxnode y nxserver, en el cliente sólo instalaremos nxclient y en Windows el paquete específico para él nxclient. Una vez instalado todos los paquetes, en el cliente vamos a Aplicaciones > Internet > NX Client for Linux > NX Client for Linux. Se abrirá una ventana de instalación de esta aplicación, hacemos clic en Next e iremos a la siguiente pantalla.

En el apartado Session, escribimos lo que sea, por ejemplo "conexión con el servidor linux", en el apartado Host introducimos nuestro servidor, abajo hay un control en el que seleccionaremos LAN, ya que será en local y hacemos clic en Next.

- 23 -


En la siguiente pantalla no tocaremos nada, salvo en el segundo menú desplegable en el que elegiremos GNOME y hacemos clic en Next para finalizar.

Una vez configurado, ejecutamos la aplicación para conectarnos al servidor en modo gráfico remotamente, introducimos el usuario del servidor con su clave y hacemos clic en Login para conectarnos.

Y listo, entraremos al servidor en modo gráfico.

- 24 -


Haremos lo mismo solo que la diferencia será conectar nuestra máquina física(Windows) al servidor(Linux), ejecutamos la instalación y una vez instalado lo configuramos, todo exactamente igual como hicimos en el cliente. Una vez configurado, ejecutamos la aplicación para poder conectarnos gráficamente al servidor Linux e introducimos el usuario y la clave para conectarnos. Se abrirá una ventana como en la imagen indicando que al sitio para acceder no es seguro, hacemos clic en Yes y listo.

En la siguiente ventana, seleccionamos la configuración que establecimos anteriormente, después hacemos clic en New y nos conectaremos al servidor gráficamente, igual que en el cliente.

- 25 -


4.4 Problemas y soluciones Pueda ser, que al añadir la dirección IP del servidor a los DNS, no nos funcione, en el caso de que pase, tendremos que poner la dirección IP del servidor en los DNS primarios y listo. En el apartado de ssh, si hemos tenido el problema de no poder conectarnos al servidor desde el cliente, lo mejor que podemos hacer es apagar la máquina, ya que es una solución que funciona. Si queremos volver a generar una clave, nos vamos al servidor y en el archivo /home/*usuario*/.ssh/authorized_keys borramos todo su contenido, en el cliente, en la misma ruta, borramos los archivos id_rsa e id_rsa.pub. Volveremos a introducir una nueva frase para la clave pública y hecho todo esto, reiniciamos la máquina.

- 26 -


5. Servidor HTTP 5.1 Introducción HTTP de HyperText Transfer Protocol (Protocolo de transferencia de hipertexto) es el método más común de intercambio de información en la Word wide web (www), el cual se transfieren las páginas web a un ordenador. Todas las páginas web están escritas en lenguaje de hypertexto (hyper‐text markup language (HTML)), por lo que el hipertexto es el contenido de las páginas web. El protocolo de transferencia es el sistema mediante el cual se transfiere información entre los servidores y los clientes (por ejemplo los navegadores). Hay una versión de HTTP para la transferencia segura de información llamada HTTPS que puede utilizar cualquier método de cifrado siempre que sea entendido tanto por el servidor como por el cliente.

5.2 Fundamentos Descargaremos desde el gestor de Synaptic el paquete apache2, configurando algunas opciones desde Webmin para este paquete. Modificaremos un index.html para que muestre otro mensaje, crearemos diversos index.html en otros directorios para que según escribamos una página nos salga un texto diferente y proteger mediante accesos una página para un número determinado de usuarios. También crearemos un certificado ssl para que nuestra página sea de confianza (https).

5.3 Desarrollo Lo primero ante todo, es instalar el paquete apache2 desde el gestor de paquetes Synaptic en el servidor. Lo buscamos y lo marcamos para instalar. Una vez instalado este paquete, vamos al navegador y escribimos http://localhost y nos mostrará este mensaje.

- 27 -


Vamos a editar este archivo para que nos muestre otro mensaje, por lo tanto vamos al Terminal y escribimos:

sudo gedit /var/www/index.html

Y editamos el contenido por éste otro:

Lo guardamos y vamos otra vez al navegador y actualizamos la página, en la que nos saldrá lo de la imagen.

Ahora nos dirigimos al cliente, y vamos a conectarnos a webmin en el servidor. Escribimos en el navegador lo siguiente: https://servidor.emilio2smr.com:10000 para entrar en el webmin. En caso de que nos aparezca que la página no es segura, indicaremos las opciones necesarias para poder entrar, si no, no podremos configurar nada. El hecho de que nos conectemos a Webmin desde el cliente al servidor, implica que en el caso de que el servidor esté lejano, podamos configurarlo sin problemas desde un equipo cliente cuando se haya caído el servidor sin tener que "viajar" hasta el lugar dónde se encuentre el servidor. En primer lugar, nos dirigimos a Servidores > Servidor Web Apache > Servidor Virtual > Redes y direcciones. En el apartado Nombre de máquina de servidor, indicaremos nuestro servidor (servidor."nombre de dominio".com). Guardamos los cambios y hacemos clic en Aplicar cambios, que se encuentra en la esquina superior derecha. Hecho esto, vamos a Servidores > Servidor Web Apache. Aquí vamos a la pestaña de la izquierda que se llama Global configuration, vamos a ella y hacemos clic en Configure Apache Modules. Marcaremos una casilla que se llame userdir, que en este momento pasará a estar activado.

- 28 -


Ahora nos dirigimos a Sistema > Usuarios y grupos > Crear nuevo usuario. Crearemos el usuario alumno1 y con la contraseña alumno1. Ahora vamos a conectarnos desde el cliente al servidor con la orden ssh y crear dentro del usuario alumno1 un directorio que se llame public_html.

ssh alumno1@servidor.emilio2smr.com

Ejecutaremos pwd para saber en qué lugar del usuario alumno1, nos situamos dentro del directorio alumno1 y creamos el directorio public_html. Hecho esto, vamos a crear un archivo que se llame index.html y dentro de él escribiremos lo mismo que la imagen.

Guardado el archivo index.html en el directorio public_html del usuario alumno1, cerramos la sesión ssh. Ahora nos conectamos a http://servidor.*nombre de dominio*.com/~alumno1. Mostrará el contenido que creamos anteriormente con el index.html.

Hecho esto, nos dirigimos a Servidores > Servidor Web Apache > Servidor Virtual > Alias y Redireccionamientos. Aquí, escribiremos el usuario alumno1 y su directorio, de esta forma, no tendremos que escribir el carácter ~ cuando accedamos a la página Web de alumno1.

- 29 -


Ahora volvemos a escribir en el navegador y observamos que no hará falta escribir el carácter ~ para acceder a la página Web de alumno1.

Host virtuales Para crear un host virtual, vamos a Webmin y aquí nos dirigimos a Servidores > Servidor Web Apache > Create virtual host (que se encuentra en la tercera pestaña). Aquí indicaremos en el campo Raíz para documentos, escribiremos la ruta /var/www/virtualA. En el campo Nombre del Servidor, escribimos en el cuadro de texto virtualA.*nombre del dominio*.com y por último, en el campo Copiar directivas desde, seleccionamos en el menú desplegable servidor.*nombre del dominio*.com:80 (todo esto es para un ejemplo, se puede llamar de cualquier otra forma).

Ahora vamos a Servidores > Servidor de DNS BIND > Zona DNS existentes > *nombre del dominio*.com > Alias de nombre. Aquí, indicaremos en el campo Nombre, el nombre de la zona virtual de host (en este caso virtualA.emilio2smr.com) y en el campo Nombre Real, escribiremos servidor.*nombre del dominio*.com y hacemos clic

- 30 -


en Crear. Hecho esto hacemos clic en Apply Configuration que se encuentra en la esquina superior derecha.

Ahora nos vamos a Servidores > Servidor Web Apache y aquí hacemos clic en Parar Apache y una vez parado, vamos lo arrancamos de nuevo haciendo clic en Arrancar Apache. Hecho esto, vamos al Terminal y escribimos:

sudo gedit /var/www/virtualA/index.html

Lo que vamos ha hacer, es crear la página Web de ese host virtual, por lo que escribiremos el siguiente contexto de la imagen.

Lo guardamos y ahora en el navegador escribimos el nombre del host virtual que hemos creado (para este caso será http://virtuala.emilio2smr.com/). Por defecto, aunque en el ejemplo hemos escrito la última vocal en mayúscula, se cambiará a minúscula, si nos ha salido todo bien, nos mostrará lo mismo que la imagen de abajo.

- 31 -


Autenticaciones Primero vamos a crear un directorio en la ruta /var/www/ que se llame directorio_protegido y dentro de él un archivo de texto con el contenido que sea. Ahora vamos a observar si en el índice de los módulos, está activada la casilla auth_basic yendo a Servidores > Servidor Web Apache > Global configuration > Configure Apache Modules. Ahora vamos a Otros > Directorios Web Protegidos, luego, agregaremos la protección para un directorio. En el campo Ruta al directorio, escribiremos la ruta en la que nos creamos el directorio en el apartado anterior y en Dominio de autenticación escribiremos por ejemplo, directorio protegido.

Tendremos que agregar usuarios para permitir que ellos sí que puedan acceder al contenido de ese directorio mediante una autenticación.

- 32 -


Luego nos vamos a editar las directivas para que proteja dicho directorio salvo a los usuarios que creemos para permitir su acceso mediante contraseña, para ello vamos a Servidores > Servidor Web Apache > (nuestro servidor virtual, para identificarlo observamos la línea que muestra Raíz para documentos, ahí deberá aparecer /var/www) > Editar directivas. Al final de la directiva escribimos lo siguiente y hacemos clic en Salvar: <Directory “/var/www/directorio_protegido”> AllowOverride AuthConfig </Directory>

Paramos y arrancamos el servidor apache o en aplicar cambios para que funcione nuestra configuración y abrimos una pestaña nueva, en la que escribiremos http://www.*nombre de dominio*.com/directorio_protegido y nos requerirá una identificación, escribiendo el usuario alumno1 que añadimos anteriormente y su correspondiente contraseña, hacemos clic en Aceptar y nos mostrará el contenido de directorio_protegido.

- 33 -


Denegar acceso Para denegar accesos, vamos a Servidores > Servidor Web Apache > (Nuestro servidor virtual) > Editar directivas. Aquí hay un apartado en el que se muestra la imagen, escribiremos Deny from (dirección IP a restringir) y lo guardamos.

Abrimos una nueva pestaña y vamos a http://www.*nombre de dominio*.com y nos mostrará lo mismo que lo de la imagen.

- 34 -


Acceder mediante certificado ssl Vamos a Servidores > Servidor Web Apache > Global configuration > Configure Apache Modules, activamos la casilla ssl y guardamos.

Ahora vamos a conectarnos al servidor mediante ssh para crear un directorio. Crearemos el directorio llamado ssl y a su vez dentro de el otro directorio que se llame htdocs como vemos en la imagen.

- 35 -


Dentro del directorio htdocs, creamos un index.html como el de la imagen para el host virtual del certificado ssl.

Una vez creado, nos dirigimos a webmin y vamos a Servidores > Servidor Web Apache > Create virtual host. En el campo puerto, escribimos 443, en Raíz para documentos escribimos la ruta del directorio que creamos antes, en Nombre del Servidor, servidor.*nombre del dominio*.com y en Copiar directivas desde, elegimos la de servidor.*nombre del dominio*.com:80 (/var/www).

Ahora vamos a comprobar si todo se ha creado correctamente, por lo que vamos a Servidores > Servidor Web Apache > Global configuration > Editar Archivos de Configuración. En el menú despegable seleccionamos /etc/apache2/ports.conf y hacemos clic en Editar Directivas en Archivo: en el que se nos tiene que mostrar el puerto que especificamos anteriormente, el puerto 443.

- 36 -


Hecho esto, vamos a Servidores > Servidor de DNS BIND > Zonas DNS Existentes > *nombre del dominio*.com > Alias de nombre. Aquí añadiremos en el campo Nombre, el nombre de seguro.*nombre del dominio*.com y en Nombre Real, servidor.*nombre del dominio*.com. Lo creamos y lo guardamos.

Hecho esto, vamos a crear el certificado ssl, por lo que descargaremos el archivo apache2‐ssl.tar.gz en el servidor. Lo descomprimimos y se extraerán dos archivos ssleay.cnf y apache2‐ssl‐certificate. Ejecutamos la orden cp para copiar el archivo ssleay.cnf al directorio /usr/share/apache2 y el otro archivo lo copiamos a /usr/sbin. También crearemos el directorio ssl dentro de /etc/apache2 para guardar ahí el certificado. Creado el directorio, nos dirigimos al Terminal y ejecutamos la orden:

sudo apache2‐ssl‐certificate

- 37 -


Introduciremos algunos datos como la provincia, la organización, etc. Teniendo ya el certificado firmado por nosotros mismos, vamos al Terminal para crear el directorio miCA dentro del directorio ssl y dentro de miCA el directorio private. Ahora copiamos las claves generadas por el certificado anterior, nos situamos en /etc/apache2/ssl y ejecutamos:

sudo cp apache.pem miCA/private/cakey.pem

Y luego:

sudo apache.pem miCA/cacert.pem

Ahora creamos el archivo de texto que se llame serial dentro del directorio miCA con el contenido 01 y lo guardamos.

Ahora en Webmin, nos dirigimos a Servidores > Servidor Web Apache > Servidor virtual (el servidor virtual que creamos con el puerto específico 443) > Opciones SSL, introducimos los datos de la imagen y guardamos.

- 38 -


Guardado lo anterior, nos dirigimos a Servidores > Servidor Web Apache > Servidor virtual (con el puerto 443) > Editar Directivas y añadimos a la directiva:

Lo guardamos, abrimos una nueva pestaña en el navegador y vamos a https://seguro.*nombre del dominio*.com en el que nos mostrará un mensaje de aviso.

- 39 -


Aceptamos el certificado y una vez aceptado, nos mostrará el index.html que creamos anteriormente para el servidor seguro.

5.4 Problemas y soluciones Cuando tengamos que visualizar la página de muestra que tenemos que crear para el usuario "alumno1", tendremos que crear la carpeta public_html y dentro de él guardaremos el archivo index.html. En resumen, ejecutar la orden ssh y conectarte a alumno1@servidor.*nombre del dominio*.com, introducir la contraseña del alumno1, y crear el directorio public_html dentro de /home. Cerramos la sesión, y ejecutamos la orden scp para copiar el archivo index.html y listo. En la zona de Alias y Redireccionamientos, puede ocurrir que no podamos ver la página Web de alumno1 indicándonos que no existe. La solución pueda ser que se deba a que no hemos puesto correctamente los caracteres, ya que si se nos olvida escribir al final una / no nos funcionará. Lo mismo ocurre si al escribir todo lo anterior correctamente, en el navegador se nos olvida poner al final una / tampoco nos funcionará. Un problema a la hora de realizar el apartado host virtual, es que cuando tengamos que crear un host virtual, tenemos que aplicar los cambios cuando estemos en la zona de servidores DNS y parar y arrancar el servidor de apache. También puede ser que esté mal escrita la ruta para crear el host virtual o que hayamos guardado nuestro index.html en otra ruta distinta.

- 40 -


6. Servidor FTP 6.1 Introducción FTP (File Transfer Protocol) el protocolo utilizado en Internet para la transferencia de ficheros, desde un ordenador a otro. Gracias a este tipo de conexión es posible subir ficheros a un equipo remoto. Del mismo modo, es posible bajar ficheros desde un ordenador remoto a nuestro equipo. Es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente‐ servidor.

6.2 Fundamentos Si tenemos una versión anterior a la 10.04 LTS, debemos actualizar el sistema operativo linux más adelante. Nos descargaremos los paquetes libreadline5_5.2‐ 6_i386.deb y el paquete gftp_2.0.19‐1_all.deb. También tendremos que descargar e instalar el paquete vsftpd desde webmin para incluir este módulo.

6.3 Desarrollo Práctica FTP con WIRESHARK modo activo y pasivo Vamos al Terminal y ejecutamos la orden:

sudo wireshark

Nos dirigimos a Capture Options > Capture Filter. Creamos un filtro nuevo para los paquetes que vamos a analizar, por lo que hacemos clic en Nuevo, le asignamos un nombre cualquiera y en Filter string escribimos:

port 20 or port 21 or port 1060 or port 1061 or port 1062 or port 1063 or port 1064

- 41 -


Los puertos 1060, 1061, 1062, 1063 y 1064, son puertos que hemos agregado para la conexión de datos al servidor FTP. Hacemos clic en Aceptar y luego en Start para empezar a capturar los paquetes en esta conexión ftp. Ahora vamos al Terminal y abrimos una conexión al servidor FTP con la orden:

ftp *dirección IP del servidor FTP*

Escribimos el usuario y contraseña para entrar y subimos algún archivo cualquiera. Subido el archivo, vamos a Wireshark para analizar los paquetes que se han ido transmitiendo y nos dirigimos a la trama FTP‐DATA, que se encuentra en la pestaña Protocol. La trama de esta conexión, indica que se a realizado por el puerto 20, que nos lo indica en la parte inferior de las tramas el apartado Transmission Control Protocol, la línea que muestra Src Port: ftp‐data (20).

- 42 -


Para establecer una conexión con ftp en modo pasivo, escribimos en la conexión ftp ya establecida "passive", se aceptará esta orden y entraremos en modo pasivo, en el que se especifica el puerto en el que se envían los datos. Subimos otro archivo al servidor ftp y veremos en Wireshark en el mismo tipo de trama que observamos anteriormente, que la trama ha cambiado en el puerto de conexión, en el que está el puerto 1060. Navegador Vamos al navegador y escribimos ftp://*dirección IP del sitio ftp* en el que nos pedirá una contraseña de acceso. Si observamos el Wireshark, el navegador se abrirá en modo pasivo por defecto, diferente al Terminal.

- 43 -


Si aún no hemos actualizado el sistema, lo actualizamos yendo a Sistema > Administración > Gestor de actualizaciones. La versión de ubuntu que será actualizada será la 10.04, también descargamos el paquete libreadline5_5.2‐6_i386.deb lo instalamos y después descargamos también el paquete gftp_2.0.19‐1_all.deb, en el que instalaremos los paquetes que vienen por el orden siguiente: common, text y gtk. Uso de órdenes más comunes en el Terminal para ftp El carácter ! siempre hace referencia a los archivos o directorios del equipo local, también siempre delante de una orden, aparece el carácter l para hacer referencia al equipo local, algunas son: Orden ? Put y mput

Get y mget Ls y !ls Ascii y bin Chmod y !chmod Mkdir y !mkdir Rmdir y !rmdir Delete y mdelete Cd y lcd Close, bye y quit

Descripción Muestra todas las órdenes disponibles Sube un archivo al servidor FTP y sube varios archivos del mismo tipo al servidor FTP Coge un archivo del servidor FTP y coge varios archivos del mismo tipo del servidor FTP Muestra el listado de ficheros/directorios en remoto y en local Para transferir ficheros de texto y para transferir imágenes Para agregar permisos a ficheros en local y en remoto Crea directorios en remoto y en local Borra directorios vacíos en remoto y en local Borra un archivo en remoto y borra varios archivos Cambia de directorio en remoto y en local Para salir de la sesión FTP

Nos descargamos paquete vsftp.

GFTP Iniciamos el programa desde Aplicaciones > Internet > GFTP. Realizamos una conexión al servidor FTP y lo veremos todo en modo gráfico. Para subir archivos, los seleccionamos y hacemos clic en la flecha de arriba que vemos en medio de las dos ventanas y para bajar archivos, seleccionamos los archivos y hacemos clic en la flecha de abajo.

- 44 -


Ahora vamos a establecer una conexión entre servidores remotos. Para ello, nos vamos a la pestaña Local > Abrir lugar. Aquí introducimos un servidor FTP, en este caso elegimos el ejemplo del libro y escribimos: ftp://ftp.debian.org aceptamos y en la introducción de la contraseña, no escribiremos nada, ya que entraremos como usuario anónimo. En la pestaña Remoto, vamos a Abrir lugar y escribimos el otro servidor FTP, en este caso, ftp://ftp.redhat.com y sin contraseña.

- 45 -


VSFTPD Vamos al gestor de paquetes synaptic y en buscar, escribimos vsftpd y lo marcamos para instalar. Ahora nos descargamos su módulo para webmin el paquete vsftpd.tar.gz y nos dirigimos a webmin para instalarlo. Para ello nos vamos a Webmin > Configuración de Webmin > Módulos de Webmin > Desde local y buscamos ahí el archivo vsftpd descargado anteriormente y lo instalamos.

- 46 -


Para que aparezca el módulo que acabamos de instalar, podemos hacer clic en Refresh Modules. En el apartado Servidores, elegimos vsftpd y vamos a Generally En el apartado File Unmask, es el apartado de antimáscara, en el que se tiene que escribir lo contrario a los permisos que quieres dar en formato numérico; por ejemplo, si queremos dar permisos totales a todos los usuarios (111 111 111), habría que escribir 777, ¿no? pues aquí tendríamos que escribir 000, justo lo contrario. En el último lugar, hacemos clic en el cuadro de buscar, y seleccionamos ftp. Guardamos los cambios.

Vamos a Anonymous ftp, en el que se conectarán los usuarios anónimos a nuestro servidor ftp, para darles permisos o para denegarles ciertas acciones, e incluso el tiempo de conexión. Guardamos los cambios.

Ahora vamos a Local User e indicamos los usuarios locales para conectarse. Chroot, sirve para que los usuarios no puedan cambiar de directorio si no le pertenece, para dar mayor seguridad. Guardamos los cambios.

- 47 -


Hecho esto, vamos a Miscellaneous, y escribimos los parámetros de la imagen siguiente. Guardamos los cambios.

Ahora vamos a Sistema > Usuarios y grupos. Buscaremos al usuario ftp y hacemos clic sobre él para editarlo. Hay muchos apartados, pero en el que nos debemos fijar, tiene que ser en Directorio Inicial, aquí lo marcaremos en Automático y guardamos los cambios.

- 48 -


Una vez hecho todo esto, vamos a Servidores > Vsftpd y hacemos clic en Restart Vsftpd Server para reiniciar el servidor vsftpd y configurar los cambios que hicimos anteriormente. Ahora vamos a comprobar si funcionarán los cambios para el usuario anónimo. Para ello, vamos a abrir el Terminal y escribimos:

sudo nautilus

Se abrirá el navegador de archivos nos dirigimos a Sistema de archivos > home y observamos que se ha creado un directorio llamado ftp. Vamos a Ver y hacemos clic en Lista y ordenamos los elementos yendo a Ver > Columnas visibles y marcamos las casillas Propietario, Grupo y Permisos. Si queremos que la casilla Propietario se vea antes que la casilla Grupo, seleccionamos la casilla Propietario y hacemos clic en Subir.

El directorio ftp, tiene que tener todos los permisos de propietario a root y como grupo a nogroup que tiene que tener solo de lectura y ejecución. Para ello, seleccionamos el directorio ftp pulsamos el botón secundario del ratón y nos dirigimos a Propiedades > Permisos > Grupo, aquí elegiremos el grupo nogroup y hacemos clic en Cerrar. Ahora vamos al Terminal para asignar permisos de lectura y ejecución al grupo nogroup y escribimos:

sudo chmod 755 /home/ftp

- 49 -


Como observamos, los cambios se han realizado correctamente. Dentro de ftp creamos un directorio que se llame Incoming y que tenga todos los permisos (777). Repetimos la misma acción con la orden chmod, solo que como son todos los permisos, será:

chmod 777 /home/ftp/Incoming

Si ahora ejecutamos el programa gftp, y escribimos lo necesario para conectarnos, estará el directorio Incoming, dentro de él añadimos un archivo cualquiera y cerramos la conexión.

Si ahora ejecutamos en el Terminal sudo nautilus, y nos dirigimos a /home/ftp/Incoming, estará el archivo que acabamos de subir a ese directorio anteriormente.

6.4 Problemas y soluciones Pueda ser, que cuando tengamos que instalar los paquetes gftp, cuando tengamos que instalar el paquete gftp_text, no podamos instalarlo. Si nos ocurre, tendremos que actualizar el sistema o bien instalando primero el paquete libreadline. En el libro, explicaba que teníamos que crear una carpeta llamada ftp y dentro de ella una que se llamase Incoming. Esta acción no se podía completar del todo, ya que no nos situaba en el directorio Incoming cuando nos conectábamos por ftp. Se tiene que ir al apartado de Sistema > Usuarios y grupos y editar el usuario ftp para que el directorio lo cree automáticamente.

- 50 -


7. Servidor de Correo 7.1 Introducción El servidor de correo, se encarga de gestionar los correos de los usuarios de su dominio o empresa, pudiendo atender miles de correos y poder definir una cantidad ilimitada de buzones de correo electrónico dentro de un mismo dominio. Cuando un usuario de correo de su dominio envía un correo, primero llega a su servidor de correo y luego el servidor de correo lo envía al servidor destinatario, donde el mensaje queda almacenado en el buzón del destinatario. Cuando el destinatario se conecte al servidor , este le envía todos sus mensajes pendientes.

7.2 Fundamentos Instalar el paquete postfix desde synaptic y en el Terminal instalar el paquete bsd‐ mailx, en el que mandaremos un correo de dos formas: desde el Terminal y otro desde el Webmin. Descargamos el paquete adovecot‐postfix desde el gestor de synaptic, donde posteriormente iniciaremos la aplicación Correo y calendario de Evolution, para configurarlo y enviar o recibir correos de otros usuarios.

7.3 Desarrollo Vamos al gestor de paquetes synaptic e instalamos el paquete postfix, en el proceso de instalación, elegiremos la opción Sitio de Internet y hacemos clic en Adelante.

- 51 -


En la siguiente ventana, escribiremos el nombre de nuestro dominio: servidor.*nombre*2smr.com.

Una vez terminada la instalación vamos al Terminal y ejecutamos:

sudo apt‐get install bsd‐mailx

Enviaremos un correo a un usuario de nuestro sistema para comprobarlo, por ejemplo al usuario alumno1 que ya teníamos, podemos hacerlo de dos formas: desde el terminal y desde webmin. Terminal:

mail alumno1

En subject estará el asunto, pulsaremos enter y escribiremos el cuerpo del mensaje; cuando acabemos de escribirlo, pulsamos otro enter y escribimos un punto y volveremos a pulsar enter. Para otros destinatarios, añadiremos aqui las direcciones, como sólo lo iremos a enviar a alumno1, pulsaremos enter y se habrá enviado.

- 52 -


Webmin: Hacemos clic sobre Refresh Modules, para mostrar el servidor de correo Postfix. Ahora vamos a Servidores > Lectura de Correo de Usuarios. Aquí vamos a nuestro usuario desde el que enviaremos el mensaje a alumno1. Hacemos clic en Componer nuevo correo y enviaremos el correo de prueba a alumno1. En el campo Para, escribiremos alumno1@servidor.*nombre*2smr.com; en el campo Asunto, escribiremos lo que sea y en el campo Message text, el cuerpo del mensaje. Una vez terminado, hacemos clic en Enviar Correo.

Enviado el correo, vamos a la lista de usuarios, como observamos, en el usuario alumno1, tiene al lado una cifra expresada en kB, hacemos clic en alumno1.

Como vemos, el usuario alumno1 ha recibido el correo desde el Terminal y desde Webmin.

- 53 -


Ahora vamos al Terminal, y ejecutamos:

telnet servidor.*nombre*2smr.com 25

Enviaremos un correo al alumno1 con los siguientes campos: Lo primero es importante escribir HELO en mayúsculas, estos comandos son siempre de 4 dígitos (HELO, MAIL, RCPT). MAIL TO: escribiremos nuestro usuario. RCPT TO: el usuario destinatario del mensaje. SUBJECT: el cuerpo del mensaje. QUIT: cierra la conexión.

- 54 -


Ahora vamos a Servidores > Lectura de Correo de Usuarios > alumno1. Como vemos, el correo se ha mandado al usuario alumno1.

Hecho esto, vamos a Servidores > DNS Bind > *nombre*2smr.com > Servidor de correo. Agregamos el registro correspondiente como en la imagen y hacemos clic en Crear.

- 55 -


Ya creado el registro anterior, vamos a Servidores > Configuración de postfix, en el que accederemos a las opciones generales. Aquí debemos de quitar una pequeña parte, así que vamos a Opciones Generales más Útiles > Para qué dominios recibir correo. Aquí estará el dominio servidor.*nombre*2smr.com, únicamente quitaremos servidor y se quedará como *nombre*2smr.com, como se ve en la imagen.

Ahora mandamos un correo desde el cliente en el Terminal y ejecutamos lo de la imagen.

El correo se ha enviado, si desde el servidor, mandamos otro correo, en la lectura de correo de alumno1, aparece el nombre de usuario desde el que se ha mandado en vez de desconocido.

Descargamos adovecot‐postix y una vez instalado, vamos a Aplicaciones > Oficina > Correo y calendario de Evolution. Se indicara un proceso de instalación y seguimos los pasos para avanzar.

- 56 -


Avanzamos sin tocar nada, hasta la ventana Identidad, en el que escribiremos en el campo Dirección de correo‐e, la cuenta de correo del servidor y pulsamos en Adelante (en el campo Organización, no pasa nada si no se escribe nada ya que es un ejemplo).

En la ventana Recepción de correo, escribiremos en el campo Servidor, el dominio de correo, en este caso, mail.*nombre de domino* y el usuario.

- 57 -


Avanzamos hasta Envío de correo, donde escribimos de nuevo en el campo Servidor, el nombre de dominio de correo. También activaremos ambas casillas como se ve en la imagen e introducimos el nombre de usuario.

En la última ventana, aplicamos los cambios, aceptamos el certificado ssl e introducimos la contraseña para acceder a la aplicación.

En webmin vamos a Servidores > Lectura de Correos de Usuarios y observamos que los correos anteriores, han desaparecido porque ahora indica otro directorio. Esto es normal, ya que en el servidor acabamos de instalar paquete adovecot‐postfix. Nos dirigimos a alumno1 y mandamos un correo desde alumno1 al servidor.

- 58 -


Comprobamos que se haya mandado satisfactoriamente en la aplicación, haciendo clic en Enviar /Recibir.

Instalamos la misma aplicación en el cliente con los mismos parámetros para el alumno1.

- 59 -


Ahora vamos a enviar un mensaje desde esta aplicación desde el cliente, por lo que vamos a Nuevo y redactamos el correo para el servidor.

Vamos al servidor y comprobamos que nos ha llegado el correo de alumno1.

- 60 -


7.4 Problemas y soluciones Un problema a la hora de realizar la practica con la aplicación de correo, pueda ser debida a que en la configuración de Envío de correo esté puesto un cifrado SSL, si eso está puesto, no se enviarán los mensajes de correo.

- 61 -


8. Servidor VoIP 8.1 Introducción VoIP son las siglas de Voice over Internet Protocol (Voz sobre Protocolo de Internet o Telefonía IP), una categoría de hardware y software que permite a la gente utilizar Internet como medio de transmisión de llamadas telefónicas, enviando datos de voz en paquetes usando el IP en lugar de los circuitos de transmisión telefónicos. Una ventaja del VoIP es que las llamadas telefónicas a través de Internet no incurren en un gasto añadido a lo que el usuario ya paga por el acceso a Internet. Hay muchas aplicaciones de telefonía por Internet disponibles, una de las más utilizadas es Skype. VoIP digitaliza la voz en paquetes de datos, enviándola a través de la red y reconvirtiéndola a voz en el destino. El proceso comienza con la señal analógica del teléfono que es digitalizada en señales PCM (pulse code modulación) por medio del codificador/decodificador de voz (codec). Las muestras PCM son pasadas al algoritmo de compresión, comprime la voz y la divide en paquetes que pueden ser transmitidos. En el otro extremo de la nube se realizan exactamente las mismas funciones, pero en un orden inverso.

8.2 Fundamentos Descargaremos el paquete asterisk en el servidor de Linux e instalaremos su módulo en Webmin. Actualizaremos el equipo cliente para instalar Ekiga, un softphone que emula un teléfono físico. En Windows nos descargaremos la aplicación Zoiper, para realizar llamadas a otros equipos; lo configuraremos para poder realizar estas llamadas. También se puede instalar SJPhone, sólo admite sip por lo que hemos elegido Zoiper que admite iax y sip.

- 62 -


8.3 Desarrollo Buscamos en el servidor el paquete asterisk y lo instalamos. En la ventana saldrá el número 34, seguimos adelante.

- 63 -


Al acabar la instalación, reiniciamos el servidor webmin, y entramos en el, si no aparece el modulo CVS en el apartado Servidores, haremos clic en Refresh modules para que aparezca. Nos copiamos desde el CD que vino con el libro el archivo asterisk.wbm.gz

Vamos a webmin > configuración de webmin > modulos de webmin y buscamos el archivo asterisk.wbm.gz desde archivo local para posteriormente instalar el modulo.

Deberá aparecer en el apartado servidores Thirdlane PBX Manager. Descargamos el paquete "ekiga" desde el gestor de paquetes synaptic, que es un softphone, una aplicación que emula un teléfono físico en la versión cliente. Como tenemos la versión 9.10 Karmic Koala, tenemos que actualizar el sistema a la versión 10.04.3 LTS, ya que en la versión 9.10 no está soportada el ekiga.

- 64 -


Mientras tanto, en la máquina física descargamos la aplicación Zoiper, un softphone para Windows. De momento no lo instalaremos, solamente lo descargaremos. Ahora en el servidor, abrimos un Terminal y escribimos:

sudo asterisk ‐r

Iniciaremos con esto el servicio asterisk.

Veremos los siguientes comandos:

core show applications : para ver las aplicaciones.

core show functions : para ver las distintas funciones.

module show : para ver los módulos que tenemos instalados.

- 65 -


sip show peers : para ver los usuarios sip que tenemos. Actualmente, como no hemos añadido ninguno no aparece ningún usuario, más adelante añadiremos algunos usuarios.

iax2 show peers : para ver los usuarios iax que tenemos. También añadiremos algunos más adelante.

Y exit para salir. Comprobaremos que el servidor de asterisk está funcionando mediante el siguiente comando:

sudo /etc/init.d/asterisk status

- 66 -


Ahora, vamos a editar unos cuantos archivos, para incluir los usuarios iax y sip. Vamos al Terminal y escribimos:

sudo gedit /etc/asterisk/sip.conf

Añadiremos unos usuarios para posteriormente poder realizar llamadas con ellos, así que copiamos el mismo código para que funcione (evidentemente con una contraseña distinta y usuarios, siendo secret la línea para la contraseña y entre corchetes el nombre de usuario).

Guardamos el archivo sip.conf y volvemos a editar otro archivo ejecutando:

sudo gedit /etc/asterisk/iax2.conf

Y agregamos los mismos usuarios que en el archivo anterior, solo que duplicaremos esos usuarios. Ej: para el archivo sip.conf el usuario es emilio y para el archivo iax.conf el usuario va ha ser emilio2.

- 67 -


Guardamos el archivo y nos queda lo último por añadir:

sudo gedit /etc/asterisk/extensions.conf

Iremos al final del documento, donde se encuentra entre corchetes "agent extensions" y añadiremos las líneas de la imagen.

Guardamos el documento e iniciamos asterisk desde el Terminal y ejecutamos tres comandos para que se apliquen los cambios correctamente:

sip reload

sip show peers

sip show users

- 68 -


Como vemos, aparecerán las contraseñas de las distintas cuentas que hemos creado anteriormente. Luego, ejecutaremos un comando más; module reload chan_iax2.so

Ahora veremos los usuarios iax, como antes vimos los usuarios sip, ejecutando los mismos comandos:

iax2 show peers

iax2 show users

En el que veremos los usuarios iax con sus contraseñas.

- 69 -


Ahora nos vamos a Windows e iniciamos la aplicación softphone Zoiper y vamos a la parte de la izquierda de los iconos, a Herramientas.

Agregaremos los usuarios iax y sip respectivamente como en la imagen, siendo el que le corresponde la cuenta de iax/sip a cada usuario. En el campo Server Hostname/IP, será la dirección IP del servidor que va a blindar este servicio de VoIP. Los siguientes dos campos, los rellenaremos con el nombre de usuario y la contraseña del usuario en el servidor al que nos vamos a conectar. Ej: Ambas máquinas tiene de usuario a Berto, pero el servidor que lo imparte tiene de contraseña 1234 y nosotros la contraseña Whisper, la contraseña que pondremos ahí será 1234.

- 70 -


En el caso contrario, nosotros somos el servidor que imparte este servicio, pues solamente habrá que poner la dirección IP de nuestro servidor, ya que somos nosotros los que impartimos este servicio. Reiniciaremos los servicios de asterisk para que estos cambios puedan realizarse y poder hacer llamadas a otros equipos. Hecho esto, vamos ha realizar una llamada, como soy cliente, voy a llamar al equipo que lo imparte, su usuario iax es el número 104, por lo que en la caja debajo de Phone to dial, escribiremos 104 y posteriormente haremos clic al símbolo del teléfono. Estos números para llamar, se encuentran en el archivo extensions.conf que configuramos anteriormente, para saber los usuarios sip y los usuarios iax.

- 71 -


Aquí escribimos el Nº que corresponde a ese usuario de iax/sip.

Haremos clic aquí para iniciar una llamada a otro equipo.

Si recibimos una llamada, aparecerá el nombre del usuario que está realizando la llamada entrante.

Podemos hacer lo mismo para una cuenta de usuario sip, solo que el nº del usuario para llamar, tendrá que ser el de usuario sip y no el de iax, en mi caso, sería ahora a la 101.

- 72 -


8.4 Problemas y soluciones Hay que instalar el softphone Ekiga, lo que ocurre, es que tendremos que actualizar el sistema para poder instalarlo, por que el sistema operativo no encuentra ese paquete a instalar. De momento no lo usaremos, pero lo actualizaremos para usarlo próximamente. Un problema común, es cuando hemos realizado los cambios en los archivos sip.conf, iax.conf y extensions.conf, es no reiniciar los servicios de asterisk para poder llamar a a otros equipos a través del softphone Zoiper. Ya reiniciado el servidor asterisk, si que podemos realizar llamadas. A la hora de crear la cuenta, puede haber una confusión en la parte de la creación de cuentas iax/sip en la zona de contraseña. Si ejercemos como cliente para acceder al servicio de otro equipo que lo imparte, tendremos que poner la contraseña que haya puesto el otro equipo para nuestra cuenta, ya que si ponemos la contraseña que hemos puesto nosotros mismos, no nos funcionará. Con el programa SJPhone, hemos tenido varios problemas, por lo que no hemos podido profundizar a realizar llamadas de tipo sip, por lo que hemos elegido Zoiper que funcionaba correctamente y admite llamadas tipo iax y sip.

- 73 -


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.