8. SERVIDOR DE CORREO POP3/IMAP EN LINUX

1 Introducción

El director de el instituto donde trabajo me ha pedido que monte un servidor de correos para que los alumnos y profesores se puedan comunicar mediante correo electrónicos. Como siempre haré la prueba en una VirtualBox para luego efectuar los pasos en real cuando estemos preparados.

2 Ventajas

  • No hay necesidad de viajar a internet para enviar correos electrónicos.
  • Mejora nuestra red local ya que desahogamos la puerta de enlace
  • Tener controlados a los usuarios de la red.
  • Mensajes alamcenados en nuestra propia red local.
  • Una vez un usuario se dé de baja, los mensajes no podrán salir de nuestra empresa, ya que desactivamos su cuenta.

3 Instalar postfix

Para poder tener un servidor de correo activo debemos de instalar postfix y otras utilidades (bsd-mailx y mailutils):

apt-get install postfix
apt-get install bsd-mailx
apt-get install mailutils

Seguir instalando postfix:

Una vez instalado postfix, agregaremos dos usuarios para hacer la prueba de que funciona correctamente todo:

adduser rosa
adduser raul

Actualizamos servicio:

systemctl restart postfix

4 Comprobación postfix en local

Enviamos un correo de con el usuario rosa a raul, luego comprobamos si a raul le ha llegado el correo y por último miramos el log en /var/log/mail.log.

5 Configuración servicio DNS

Para que nuestros clientes resuelvan nuestros servicios pop3 y smtp configurando el fichero /var/cache/bind/db.oxford.local y añadimos las siguientes líneas:

Reiniciamos el servicio:

systemctl restart bind9

6 Instalación y configuración POP3

El pop3 es un protocolo que nos ofece la posibilidad de que los clientes se puedan descargar sus mensajes de correo electrónicos (tanto los enviados como los recibidos) del servidor de manera remota.

Para instalar pop3 debemos de ejecutar el siguiente comando:

apt-get install dovecot-pop3d

Ahora configuraremos el servicio pop3 entrando y configurando /etc/postfix/main.cf

En la primera línea marcada en la captura debemos de añadir al final de la misma nuestra red y la máscara que tengamos, en mi caso la 192.168.1.0/24

En el final del fichero añadimos las dos líneas que se muestra en la captura:

Para habilitar la autentificación por contraseña en claro debemos de editar el fichero /etc/dovecot/conf.d/10-auth.conf

Descomentamos la línea y sustituimos el «yes» por «no»

Por último indicamos cual va a ser la localización de la carpeta de nuestros buzones modificando el fichero /etc/dovecot/conf.d/10-mail.conf

Comentamos la línea de arriba y añadimos la de abajo como sale en la captura.

systemctl restart dovecot

7 Instalación y configuración de evolution en Linux

Evolutión es una herramienta de clientes de correo.

Para instalarla en Linux solo hace falta ejecutar:

apt-get install evolution

Ahora procederemos a configurar la cuenta de rosa en el evolution:

Nos pedirá permisos para poder utilizar el servicio de correos, aceptamos permanentemente:

Luego introducimos la contraseña de rosa y establecemos una nueva contraseña para cceder a los mensajes:

Por último nos metemos en la configuración de la cuenta creada y le ponemos que verfique si tiene correos nuevos que leer en un minuto:

8 Instalación y configuración de OperaMail en Windows

OperaMail es otra herramienta para clientes de correo electrónicos.

Para instalarlo tenemos que descargarnos el instalador en la página https://www.malavida.com/es/soft/opera-mail/#gref :

Ejecutamos el instalador:

Configuramos el opera:

9 Comprobación enviado de correos entre clientes

Enviaremos un correo a rosa desde raul:

Ahora probaremos a la inversa:

10 Instalación y configuración Imap

IMAP es un protocolo el cual permite que los clientes del correo electrónico puedan leer sus mensajes en líneas que se encuentran el nuestro servidor de correos electónico.

Para instalar imap solo tendremos que ejecututar el siguiente comando:

apt-get install dovecot-imapd

También instalaremos el webmail llamado roundcube:

apt-get install roundcube

Nos aparecerá una ventana, decimos que sí, y luego en aceptar.

Una vez instalado tenemos que configurar el fichero /etc/roundcube/config.inc.php y borrar el %u de la líneas marcada:

Para que podamos entrar al webmail, hay que crearle una entrada en el apache2 y en el dns, para ello primero copiaremos el fichero /etc/apache2/sites-availables/000-default.conf y lo pegaremos en la misma ruta pero con el nombre de roundcube.conf

cd /etc/apache2/sites-availables
cp 000-defaukt.conf roundcube.conf
nano roundcube.conf

Al nuevo fichero le modificamos las siguientes líneas:

Ahora solo queda dar de alta el nuevo sitio web, para ello nos vamos a /etc/apache2/sites-enabled y ejecutar los siguientes comandos:

cd /etc/apache2/sites-enabled
systemctl reload apache2
a2ensite roundcube.conf

Luego configuramos el fichero /var/cache/bind/db.oxford.local e introducimos la siguiente línea:

Reiniciamos los dos servicios (Apache y Bind)

systemctl restart apache2
systemctl restart bind9

11 Login de los clientes en el webmail

Accedemos desde correo.oxford.local

Una vez logueado debemos de cambiar el nombre de los clientes como se muestra en las capturas:

12 Comprobación

Primero enviaremos un correo a rosa desde raul:

Por último lo haremos a la inversa:

7. Instalación y configuración DNS (Linux)

1 Introducción

En esta entrada vamos a instalar y configurar el servicio DNS, en una máquina servidora Linux, estos procedimientos lo llevaremos a cabo en máquinas virtuales, pero obviamente lo haremos después en el instituto donde trabajo donde tendré que instalar el DNS en real.

2 ¿Que es un servidor DNS?

Un servidor DNS es el que se encarga de resolver las ips de las máquinas que especifiquemos en nuestro fichero de configuración por nombres de dominios, con esto no ahorramos de aprendernos todas las ips y poder navegar a través de resolución de nombres (URL).

Los servidores DNS de internet se reparten las resoluciones de dominios de forma jerárquica como se muestra en la siguiente foto:

3 ¿Para que sirve tener un DNS local en nuestra red?

Montar un servidor DNS en local tiene ventajas considerables sobre todo en la velocidad que se le añade a la red local.

Solo con el simple hecho de que nuestro servidor DNS va a guardar en caché todas las resoluciones hechas recientes, nos da un incremento en velocidad. Además podemos registrar nuestra páginas web en local y no tenemos que salir al exterior para resolver esos dominios ni los que están en caché.

4. Instalación

Procederemos a instalar el servicio con el siguiente comando:

apt-get install bind9

Ahora tenemos que copiar el archivo /etc/bind/db.empty a /var/cache/bind/db.»Nombre» Habrá que hacer el procedimiento 2 veces, una para la zona normal y otra para la inversa:

cp /etc/bind/db.empty /var/cache/bind/db.oxford.local
cp /etc/bind/db.empty /var/cache/bind/db.192.168.1

5 Configuración DNS

Luego procederemos a configurar el fichero /etc/bind/named.conf.local

Fichero de zonas

En este fichero lo que hemos hecho es definir las dos zonas para resolver los nombres por ips y viceversa.

type master: Indicamos el tipo de servidor DNS que va a ser.

File db.»nombre»: Archivo de configuración de la zona.

Luego modificamos el archivo db.oxford.local (en mi caso).

Definimos la resolución de nombres

$ORIGIN oxford.local. : Creamos una variable que contiene oxford.local, para no tener que repetirlo en las siguientes líneas

Ymir IN A 192.168.1.1 : Creamos un registro A llamado Ymir.oxford.local en la ip 192.168.1.1. Al crear la variable anteriormente, solo tendremos que poner Ymir

www IN CNAME Ymir: Creamos un registro cname, con esto le diremos que hay un nombre de dominio que cuelga de Ymir llamado http://www.oxford.local el cual aloja una página web.

Ahora procederemos a configurar el fichero db.192.168.1

Zona inversa

1 IN PTR Ymir.oxford.local: Decimos que el dominio Ymir.oxford.local está registrado en la ip 192.168.1.1, solo tendremos que poner 1 ya que hemos creado una variable anteriormente.

Lo siguiente es configurar los reenviadores, para ello modificaremos el fichero /etc/bind/named.conf.options

Reenviadores

Descomentamos las líneas marcadas en la captura e introducimos la ip del servidor DNS al que queremos reenviar las peticiones que no pueda resolver nuestro DNS tal y como sale en la captura

Por último configuraremos el dhcp para que que le de como servidor DNS principal a los clientes la ip de nuestro servidor. Modificaremos /etc/dhcp/dhcpd.conf

Configuración dhcp

Reiniciamos los dos servicios :

systemctl restart bind9
systemctl restart isc-dhcp-server.service

6 Comprobaciones

Antes de comprobar si funciona, debemos de eliminar el contenido que introdujimos en las entradas anteriores de los ficheros hosts de nuestros clientes para comprobar la funcionalidad del DNS al 100%

6. Instalación Moodle (LAMP)

El instituto que administro, quiere instalar una moodle para hacer una página web del instituto. Como ya sabéis lo haremos primero en Virtual para probar si funciona.

¿Que es LAMP?

LAMP es una compilación de servicios que se conectan entre ellos para hacer una determinada tarea (Página Web relacionada con base de datos). Esta compilación de paquetes está compuesto por :

  • Apache2 (Server Web)
  • Php 7.3 (Lenguaje de programación)
  • Mariadb (Base de datos)

Cada uno tiene una función individual que en conjunto hacen la funcionalidad completa.
Apache se encarga de alojar la página web.
Mariadb se encarga de almacenar todos los datos importantes de la página web y relacionarlas entre ellas.
Php es el intermediario entre la base de datos y el código html, es decir traduce el código de base de datos en html para mostrarlo en el navegador.

Una vez tener todos estos conocimientos básicos acerca de LAMP procederemos a instalar cad uno de los servicios uno a uno con sus respectivos paquetes necesarios para la posterior instalación de Moodle.

Instalación Apache2

Primero de todo actualizamos repositorios

apt-get update

Ejecutamos el comando:

apt-get install apache2 

Una vez instalado debemos de comprobar si el servicio está funcionado correctamente:

systemctl status apache2 
systemctl restart apache2 

Instalación Mariadb

Ejecutamos el comando de instalación:

apt-get install mariadb-server
apt-get install mariadb-client

Comprobamos que el servicio funciona:

systemctl restart mariadb.service
systemctl status mariadb.service

Instalación PHP7.3

Ejecutamos el comando de instalación:

apt install php-mysql php-gd

Luego con el siguiente comando vamos a hacer una lista de los modulos que debemos de instalar :

apt-cache search php | egrep 'module' | grep default

La salida del comando es la siguiente:

Modulos a instalar para PHP

Ahora solo debemos de ejcutar:

apt-get install "paquete en cuestión"

Aquí os dejare la instalación de los paquetes más importantes a instalar:

apt-get install libapache2-mod-php7.3
apt-get install php-curl
apt-get install php-dev
apt-get install php-imap
apt-get install php-soap
apt-get install php-xml
apt-get install php-zip

Por último comprobamos si php funciona

para ello crearemos un info.php en /var/www/instituto donde añadiremos las siguientes líneas:

<?php phpinfo(); ?>

Desde el cliente buscamos en el navegador la http://www.oxford.local/info.php

Instalación de moodle

Para instalar la moodle debemos de descargarnos su instalador mediante el siguiente comando:

wget https://download.moodle.org/download.php/direct/stable38/moodle-latest-38.tgz

(La descarga se guardará en el directorio donde estemos en el momento)

Ahora debemos de mover el tgz descargado a la carpeta /var/www, por último descomprimimos el archivo:

tar -xzf moodle-latest-38.tgz

Nos dejará una carpeta llamada moodle donde contiene el instalador el cual podremos acceder a él poniendo en el navegador del cliente nuestro dominio/moodle

Pero nosotros queremos acceder a la moodle desde informatica.dominio para ello debemos de seguir los siguientes pasos:

Creamos un nuevo .conf en /etc/apache2/sites-availables:

cp 000-default.conf moodle.conf


Luego modificamos el fichero y ponemos la siguiente configuración:

Con esto podremos acceder a la moodle desde informatica.oxford.local y tendremos un alias donde más tarde en la instalación de moodle guardaremos los datos.

Ahora crearemos la carpeta /srv/moodledatos y reiniciamos el servicio apache:

systemctl restart apache2

Para activar toda las configuraciones que hemos hecho, debemos de irnos a la capreta /etc/apache2/sites-enables y ejecutamos el siguiente comando:

systemctl reload apache2
a2ensite moodle.conf

Ahora procederemos a dar permiso al grupo www-data:

chown www-data:www-data /var/www/moodle/
sudo chown www-data:www-data /srv/moodledatos/

Procederemos ahora a crear una base de datos para ello vamos a acceder a mariadb:

mysql -u root -p

Creamos la base de datos:

create database moodle;

Creamos usuario :

create user adrianpg@localhost identified by 'contraseña';

Enlazamos el usuario con la base de datos:

grant all privileges on moodle.* to adrianpg@localhost;

Aplicamos cambios:

flush privileges;

Ahora solos nos queda acceder desde el cliente al instalador de la moodle desde el navegador, para ellos teclearemos informatica.oxford.local y nos aparecerá la página del instalador. (Hay que modificar el fichero hosts del cliente para que nos resuelva el nombre)

Para poder poner el lenguaje en español, antes de dar el siguiente paso debemos de descargarnos el paquete del lenguaje español con el siguiente comando:

wget https://download.moodle.org/download.php/langpack/3.8/es.zip

Una vez descargado el paquete, lo tenemos que mover a /var/www/moodle/lang y descomprimirlo .

unzip es.zip

Procedemos con la instalación:

Por último resolveremos los errores que nos salga al final de todo, en mi caso son instalaciones de modulo que faltan de php (nada grave).

Comprobación de que todo va bien

Comienza a instalar

Creamos el usuario de administrador de la moodle

Comprobación final de que la moodle está instalada

5. Autentificación en Apache

Una autentificación es un reglamento que configuramos en el fichero /etc/apache2/sites-availables/instituto.conf que nos permite especificar que usuarios del servidor podrá acceder a distintas zonas de la página web.

El director de mi centro me ha pedido que puedan acceder a sitio http://www.oxford.local/profesores todos los usuarios, sin embargo en http://www.oxford.local/equipodirectivo solo podrán acceder: director, jefes estudios y la secretaria.

Creación de usuarios

Para empezar vamos a crear los siguientes usuarios:

Para ello nos dirigimos a /etc/apache2 y ejecutamos el siguiente comando con cada usuario:

htpasswd -c password "profesor1" (Primer Usuario)
htpasswd password "profesor2" (Resto de usuario)
Ejemplo de htpasswd

La opción -c te crea el fichero password que hemos especificado.

Cat de el fichero password con todos los usuarios creados

Luego de haber creado el fichero debemos de crear la carpeta profesores y la carpeta equipodirectivo en /var/ww/instituto y ahí alojar las páginas correspondientes.

Configuración de apache

Ahora tenemos que configurar el fichero instituto.conf y añadir las siguientes líneas al fina del fichero:

<Directory /var/www/instituto/profesores/>
   AuthType basic
   AuthName "Página privada para profesores"
   AuthUserFile /etc/apache2/password
   Require valid-user
</Directory>

Añadimos estas otras líneas para el sitio web de equipodirectivo:

<Directory /var/www/instituto/equipodirectivo/>
  AuthType basic
  AuthName "Página privada para equipo directivo"
  AuthUserFile /etc/apache2/password
  Require user director jefe secretaria
</Directory>

Importante reiniciar el servicio apache

systemctl restart apache2
ComandoExplicación
DirectoryEspecifica la carpeta a la que se aplicará la autentificación
AuthTypeEspecifica el tipo de autentificación
AuthNameMensaje que le sale al usuario al intentar entrar al sitio web
Require Indicar que usuarios pueden entrar, en caso de añadirle valid-user, indicamos que todos los usuario pueden entrar
AuthUserFile Indicar de que fichero va a leer los usuarios nuestra página web. Solo los usuarios de ese fichero podrán entrar.

Comprobaciones