Ubuntu 16.04 – Webmail con postfix, courier y squirrelmail

Uno de los servicios más importantes de internet es el correo electrónico, una empresa moderna no puede ser productiva sin los beneficios del correo.

En estas líneas explicaré como configurar un servidor de correo que se pueda revisar directamente en un navegador web, utilizando Ubuntu 14.04, postfix, courier y squirrelmail.

Para los desesperados que no quieren leerse toda la teoría de los protocoles les recomiendo irse directamente a la parte de Instalación y configuración

Protocolos implicados

  • HTTP

    • HTTP son las siglas en inglés de HiperText Transfer Protocol(en español, protocolo de transferencia de hipertexto).
    • Es un protocolo de red (un protocolo se puede definir como un conjunto de reglas a seguir) para publicar páginas de web o HTML.
    • HTTP es la base sobre la cual está fundamentado Internet, o la WWW.
  • HTTPS

    • HTTPS viene a ser el Protocolo Seguro de Transferencia de Hipertexto
    • Está basado en el antes mencionado HTTP pero con la particularidad de utilizar un cifrado basado en la Secure Socket Layers mas conocidas como SSL
    • Crea un canal de transferencia cifrado con el que obviamente aumenta la seguridad en el tráfico de información en comparación al protocolo HTTP común.
    • Este protocolo HTTPS es usado por los entidades bancarias pues la información que manejan es de suma confidencialidad e importancia y por ello se necesita mantener cifrado el canal de transferencia.
    • Últimamente se ha mejorado la seguridad no solo en servicios web bancarios sino en servicios que usuarios como nosotros usamos día a día como lo son nuestras cuentas de correo (Hotmail, Gmail, Yahoo Mail), nuestras cuentas hacia redes sociales como Twitter y Facebook entre otros sitios comúnmente visitados por la mayoría de la gente que navega por internet.
  • Sesiones seguras https

Cuando un URL comienza con HTTPS en lugar de HTTP, significa que el navegador está usando un esquema seguro para proteger la información que está siendo transferida. Este esquema HTTPS es el que toda transacción comercial en Internet debe de usar. A este esquema se le conoce como SSL.

  • ¿Que ES e-mail?

    • El correo electrónico, en inglés electronico email o e-mail, es un método para crear, enviar y recibir mensajes a través de sistemas de comunicación electrónica.
    • La mayoría de los sistemas de correo electrónico de hoy en día utilizan Internet, siendo el correo electrónico uno de los usos más populares de Internet.

SMTP

  • Protocolo simple de transferencia de correo (SMTP) está diseñado para transferir correo confiable. es el estándar utilizado por Internet.
  • El protocolo Simple de transferencia de correo sería un protocolo “capa de aplicación” cuando en el modelo OSI.
  • Solicitudes de comentarios (RFC) proporcionan especificaciones para el protocolo:
  • RFC-821 especifica el protocolo de intercambio y es la base para SMTP.
  • RFC-822 especifica el formato del mensaje.
  • El servicio de correo de internet se basa en estos documentos RFC.

 imap

    • Internet Message Access Protocol (IMAP, Protocolo de acceso a mensajes de internet), es un protocolo de aplicación que permite el acceso a mensajes almacenados en un servidor de Internet.
    • Mediante IMAP se puede tener acceso al correo electrónico desde cualquier equipo que tenga una conexión a Internet.
    • IMAP tiene varias ventajas sobre POP (otro protocolo empleado para obtener correos desde un servidor).
    • Por ejemplo, es posible especificar en IMAP carpetas del lado del servidor. Por otro lado, es más complejo que POP ya que permite visualizar los mensajes de manera remota y no descargando los mensajes como lo hace POP.

POP

  • En informática se utiliza el Post Office Protocol(POP3Protocolo de Oficina de Correo o “Protocolo de Oficina Postal”) en clientes locales de correo para obtener los mensajes de correo electrónico almacenados en un servidor remoto. Es un protocolo de nivel de aplicación en el Modelo OSI.
  • Las versiones del protocolo POP, informalmente conocido como POP1 y POP2, se han quedado obsoletas debido a las últimas versiones de POP3. En general cuando se hace referencia al término POP, se refiere a POP3dentro del contexto de protocolos de correo electrónico.

Ahora si: Instalación y configuración

Paso 1: Nos aseguramos que están bien configurado los parámetros de red

eth0eth1

Paso 2: Comprobamos que esté bien configurado el DNS, en este caso estoy utilizando el dominio hipotético ubuntuservidor.edu.ni

 

Paso 3: Como esto va a ser un webmail, necesitamos un servidor web operativo y funcional

apache

Paso 4: Instalación de postfix

Posfix se encargar de enviar los correos por medio de SMTP, instalamos postfix con

apt-get install postfix

Aparecen varias pantallas que tenemos que completar, la primera es:

postfix1

En las pantallas siguientes se completa la siguiente información:

  • Sitio de Internet
  • ubuntuservidor.edu.ni

Si queremos configurar detalladamente todos los parámetros podemos utilizar

dpkg-reconfigure postfix
  • Sitio de Internet
  • root@isti.edu.ni
  • mail.ubuntuservidor.edu.ni, localhost.localdomain, localhost
  • No
  • 127.0.0.0/8 192.168.10.0/24 [::ffff:127.0.0.0]/104 [::1]/128
  • 0
  • +
  • todo

A continuación editaremos el siguiente archivo: /etc/postfix/main.cf

nano /etc/postfix/main.cf

primero modificamos el parámetro mydestination para que quede así:

mydestination = ubuntuservidor.edu.ni

… y al final añadimos

home_mailbox = Maildir/

Para hacer efectivos los cambios re-iniciamos postfix

service postfix restart

Pasos 5: Instalar POP y courier IMAP

Para recibir los correos en Ubuntu, necesitamos courier-pop y courier-imap mediante los siguientes comandos:

apt-get install courier-pop

Aparece una ventana, simplmente le decimos que no, luego

apt-get install courier-imap

Activamos servicio de autenticación de courier

systemctl enable courier-authdaemon

systemctl start courier-authdaemon

Paso 6: Instalación de Squirrelmail

Squirrelmail es una aplicación web escrita en PHP. Tiene las mismas funcionalidades de thunderbird, pero funciona vía web. Para instalar Squirrelmail, en una terminal utilizamos el comando:

apt-get install squirrelmail

Luego para realizar la configuración

squirrelmail-configure

En el menú  seleccionamos la opción D (Set pre-defined settings for specific imap servers).

Captura

Luego indicamos el tipo de correo: courier

A continuación seleccionar la opción 2 y especificar el nombre del dominio, la configuración es sencilla, simplemente hay que seguir las indicaciones de las pantallas.

Captura2

Finalmente, guardar los cambios y salir

Para actualizar la configuración del servidor web, utilzamos el siguiente comando

cat /etc/squirrelmail/apache.conf >> /etc/apache2/sites-available/000-default.conf

También es necesario ajustar un parámetro en PHP,  se hace editando el archivo /etc/php/7.0/apache2/php.ini

nano /etc/php/7.0/apache2/php.ini

Buscar el parámetro short_open_tag debe estar en On

short_open_tag = On

Reiniciamos el servidor web con:

service apache2 restart

Accedemos al sitio con cualquier navegador a: http://localhost/squirrelmail/src/configtest.php.

Captura3

Si no hay errores podemos continuar

TODAVÍA NO INICIE SESIÓN

Paso 7: Creación de las cuentas de usuario

El protocolo IMAP procesa los correos y los pone en el directorio particular de cada usuario, en una carpeta llamada “Maildir”, es necesario ajustar la configuración para que esta carpeta y su contenido se le cree automáticamente a todos los usuarios para eso nos vamos a /etc/skel

cd /etc/skel

Luego creamos la estructura interna con:

mkdir -p Maildir/new
mkdir -p Maildir/cur
mkdir -p Maildir/tmp

Finalmente creamos los usuarios con useradd y passwd

usuarios

Ahora si desde el navegador accedemos a http://www.ubuntuservidor.edu.ni/squirrelmail/

accesoEnviamos correo

acceso2Revisamos el correoacceso3.1Felicidades, hemos configurado el webmail

Anuncios
Publicado en Sin categoría | 5 comentarios

Squid y DansGuardian en Ubuntu 16.04

Basado en parte de

https://rubenpalenque.wordpress.com/2017/02/12/instalacion-y-configuracion-servidor-proxy-squid3-proxy-en-ubuntu-server/

https://www.server-world.info/en/note?os=Ubuntu_16.04&p=squid&f=6

Paso 1 – Instalación de Squid

apt-get update
apt-get install -y squi

Paso 2 – Reglas básicas de configuración

cp /etc/squid/squid.conf /etc/squid/squid.conf.bk

nano /etc/squid/squid.conf

Se deben buscar y editar las siguientes directivas

http_port 8080

cache_mem 256 MB

cache_dir ufs /var/spool/squid 700 16 256

Visible_hostname tserver

Paso 3 – Re-iniciar Squid

systemctl restart squid

Paso 4 – Instalar DansGuardian

apt-get -y install dansguardian

Paso 5 – Configurar DansGuardian

nano /etc/dansguardian/dansguardian.conf

Poner comentarios a la línea 5

# UNCONFIGURED – Please remove this line after configuration

filterport = 3128 – especificar el puerto de conexión de los clientes

proxyip = 127.0.0.1 – especificar la ip del proxy en este caso el mismo servidor

proxyport = 8080 – puerto donde está escuchando el proxy

filtrar contenido en el archivo

nano /etc/dansguardian/lists/bannedsitelist

Agregar los sitios que se desean filtrar después de

badboys.com

Paso 6 – Reiniciar DansGuardian

systemctl restart squid dansguardian

Paso 7 – configurar en el cliente y probar

Publicado en Sin categoría | Deja un comentario

Webmin en Ubuntu 16.04

Basado en: https://www.solvetic.com/tutoriales/article/2713-como-instalar-y-usar-webmin-en-ubuntu-y-fedora/

Paso 0 – Actualizar el sistema

sudo apt-get update
sudo apt-get install apache2

Paso 1 – Instalar Webmin

Tenemos que agregar el repositorio para eso editamos el archivo sources

nano /etc/apt/sources.list

Agregar al final

deb http://download.webmin.com/download/repository sarge contrib
deb http://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib

Luego instalar la llave

wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc

instalar el paquete

sudo apt-get update
sudo apt-get install webmin

Paso 2 – Re-iniciar servicios

sudo /etc/init.d/webmin start
sudo /etc/init.d/webmin status

Paso 3 – Acceder a Webmin

https://www.ubuntuservidor.edu.ni:10000/

Publicado en Sin categoría | Deja un comentario

Servidor Web con Certificado SSL en Apache2 y Ubuntu 16.04

Basado en

http://blog.hostdime.com.co/como-crear-un-certificado-ssl-en-apache-para-ubuntu-14-04/

Paso 0 – Actualizar el sistema

sudo apt-get update
sudo apt-get install apache2

Paso 1 – Activar el módulo SSL

sudo a2enmod ssl
sudo service apache2 restart

Paso 2 – Crear un Certificado SSL Autofirmado

sudo mkdir /etc/apache2/ssl

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Paso 3 – Configurar Apache Para Usar SSL

rm /etc/apache2/sites-available/default-ssl.conf
sudo nano /etc/apache2/sites-available/default-ssl.conf

Debe quedar así

<IfModule mod_ssl.c>
 <VirtualHost _default_:443>
 ServerAdmin webmaster@ubuntuservidor.edu.ni
 ServerName www.ubuntuservidor.edu.ni
 DocumentRoot /var/www/html
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
 SSLEngine on
 # SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
 # SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
 SSLCertificateFile /etc/apache2/ssl/apache.crt
 SSLCertificateKeyFile /etc/apache2/ssl/apache.key

<FilesMatch "\.(cgi|shtml|phtml|php)$">
 SSLOptions +StdEnvVars
 </FilesMatch>

<Directory /usr/lib/cgi-bin>
 SSLOptions +StdEnvVars
 </Directory>

BrowserMatch "MSIE [2-6]" \
 nokeepalive ssl-unclean-shutdown \
 downgrade-1.0 force-response-1.0
 BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown

</VirtualHost>
</IfModule>

Paso 4 – Active el Host Virtual SSL

sudo a2ensite default-ssl.conf
sudo service apache2 restart

Paso 5 – Probar la configuación en un cliente

https://www.ubuntuservidor.edu.ni

Publicado en Sin categoría | Deja un comentario

Ubuntu 16.04 – Servidor Web

Por Carlos Antonio Leal Saballos

La Web es la parte gráfica de Internet, es un compendio de todo el conocimiento humano y está a un clic de distancia. No se puede negar que un invento tan maravilloso como Internet tiene sus secretos, en estas líneas intentaré poner al alcance de todos uno de ellos, la configuración de un servidor web.

Lo primero es lo primero – algunas definiciones

WWW: World Wide Web o Red informática mundial, es un sistema de distribución de información basado en hipertexto o hipermedios enlazados y accesibles a través de Internet. Con un navegador web, un usuario visualiza sitios web compuestos de páginas web que pueden contener texto, imágenes, vídeos u otros contenidos multimedia, y navega a través de ellas usando hiperenlaces.

HTTP: Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP es un estándar de internet fue desarrollado por el World Wide Web Consortium y la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el más importante de ellos es el RFC 2616 que especifica la versión 1.1. Lo que básicamente significa que un servidor Web puede implementarse en cualquier sistema operativo que soporte TCP/IP

HTTPS: Lo mismo que HTTP, pero con una capa adicional de seguridad

HTML: HyperText Markup Language (lenguaje de marcado de hipertexto), no es un lenguaje de programación, hace referencia al lenguaje de marcado predominante para la elaboración de páginas web que se utiliza para describir y traducir la estructura y la información en forma de texto, así como para complementar el texto con objetos tales como imágenes. HTML5 es la versión más reciente.

Ahora unas cuantas aclaraciones importantes

  1. HTML no es un lenguaje de programación, es un lenguaje de marcado de hipertexto
    1. Existen páginas web estáticas con HTML puro
    2. Existene páginas web dinámicas, las que utilizan lenguajes de programación (PHP, ASP, JSP y un largo etcétera) y conexión a bases de datos (MySQL, MS-SQL, Oracle y otro largo etcétera.)
  2. HTTP es el protocolo que hace posible la transferencias de las páginas web del servidor al cliente
  3. WWW no es el único servicio de internet, es el espacio donde se almacenan los sitios web, otros servicios de internet muy conocidos son el correo electrónico y la transferencia de archicos.
  4. El Webmaster es el especialista en diseño y programación web, es la persona encargada de crear, administrar y eliminar las páginas web.
  5. El administrador del servidor no necesariamente es el webmaster

Ahora si el servidor Web en Ubuntu

El servidor HTTP Apache es un servidor web HTTP de código abierto, para plataformas Unix (BSD, GNU/Linux, etc.), Microsoft Windows, Macintosh y otras, que implementa el protocolo HTTP/1.12 y la noción de sitio virtual. Su nombre se debe a que el equipo de desarrollo quería que tuviese la connotación de algo que es firme y enérgico pero no agresivo, y la tribu Apache fue la última en rendirse al que pronto se convertiría en gobierno de EEUU.

  • Convertirse en super usuario:
sudo -s
  • instalar apache2
    apt-get install apache2
  • La configuración pre-determinada es tan buena que ya está listo lo único que queda es utilizar firefox o algo parecido y escribir en la barra de direcciones “localhost” el resultado debe ser algo similar a esto:

apache

Si desea acceder al servidor web desde otra computadora puede escribir el número IP directamente por ejemplo: 192.168.10.10, si ya tiene configurado el DNS puede utilizar el nombre asignado al equipo.

onfiguración

  • Es necesario ubicar la página web en el lugar correcto, en ubuntu ese lugar es promiamente /var/www/html
cd /var/www/html
ls
  • Notará que existe un archivo llamado index.html, ese es el archivo principal del nuevo sitio web, yo cambié el contenido de este archivo por algo como esto:
<HTML> 
<HEAD> 
<TITLE>1er Sitio Web (de Prueba)</TITLE> 
</HEAD> 
<BODY > 
<CENTER> 
<H1> Mi Primera p&aacute;gina Web </H1> 
</CENTER> 
<HR> 
P&aacute;gina Web de prueba para comprabar que el servidor apache2 funciona.

<center> 
<P> <A HREF="https://ubuntuservidor.wordpress.com/"> No olviden visitar mi blog </A> 
</center> 

</BODY> 
</HTML>
  • El resultado (siempre en firefox) es:

web

Archivos de configuración de Apache2

  • Si desea hacer cambios en la configuración del servidor web, sin duda necesita editar el archivo ubicado en /etc/apache2/sites-available/ cuyo nombre es 000-default.conf
  • Por favor no cambie nada si no está seguro de lo que está haciendo

nano /etc/apache2/sites-available/000-default.conf

Listo, ya tenemos configurado el servidor web

Iniciar, detener y reiniciar el servicio

  • Pare re-iniciar el servicio:
 service apache2 restart
  • Para detener el servicio:
 service apache2 stop
  • para iniciar el servidio:
 service apache2 start

Publicado en Sin categoría | 1 Comentario

Servidor DHCP en Ubuntu 16.04

Por: Carlos Antonio Leal Saballos

DHCP (Dynamic Host Configuration Protocol) es un estándar de internet, DHCPdefinido en el RFC 2131 (http://www.ietf.org/rfc/rfc2131.txt). Por lo tanto, es un servicio de red que no es exclusivo de Ubuntu, corre en cualquier sistema operativo que soporte TCP/IP, su función es proveer dinámicamente direcciones IP e información de configuración de los parámetros de red.

A los clientes se les configura para obtener la dirección IP de forma automática por medio del servidor DHCP, lo que significa que no tienen control sobre la configuración de red y pueden adquirir toda esta información directamente del servidor DHCP, el cual se encarga de configurar automáticamente la dirección IP de la máquina, la mascara de subred, la puerta de enlace predeterminada o Gateway, el nombre del host, el nombre del dominio, entre otros datos importantes para el buen funcionamiento de la red.

Instalación y configuración

Antes que nada vala la pena aclarar el escenario: tenemos un servidor con dos tarjetas de red, eth0 recibe su dirección IP por DHCP, eth1 tendrá la responsabildiad de entregar las direcciones IP a otras computadoras, se necesita una configuración de los parámetros de red, algo similar a lo que expliqué anteriormente en esta entrada

Aclaro que para este ejemplo utilizaremos el dominio hipotético “ubuntuservidor.edu.ni”

Primero nos convertimos en super usuario:

sudo -s
apt-get install isc-dhcp-server

Para establecer la tarjeta de red que “repartirá” los número IP, esto se hace editando el archivo /etc/default/isc-dhcp-server:

nano /etc/default/isc-dhcp-server
  • al final del archivo modificar el parámetro INTERFACES, hay que dejarlo así:

    INTERFACES="enp0s8"

    Editamos el archivo /etc/dhcp/dhcpd.conf creando primero un respaldo del mismo en caso de que algo salga mal :

    mv /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.original
    nano /etc/dhcp/dhcpd.conf

El archivo debe quedar de una forma muy similar a esta:

subnet 192.168.10.0 netmask 255.255.255.0
{
range 192.168.10.50 192.168.10.99;
option domain-name-servers 192.168.10.10;
option domain-name "ubuntuservidor.edu.ni";
option routers 192.168.10.1;
option broadcast-address 192.168.10.255;
default-lease-time 86400;
}
  1. luego re-iniciamos el servicio

    service isc-dhcp-server restart
  2. finalmente comprobamos si todo está funcionando, para esto se necesita otra máquina, yo probé con windows 7,  me salió algo así:

1

Felicidades, han configurado un servidor DHCP en ubuntu 16.04

Publicado en Sin categoría | Deja un comentario

Red en Ubuntu 16.04 – Configurarción manual

Ubuntu - Servidor

El escenario

Tenemos dos adaptadores de red, el primero recibirá su dirección IP vía DHCP al segundo se le configurará manualmente, o sea:

  • enp0s3 ==>Configuración automática con DHCP
  • enp0s8 ==>Configuración estática manual

Antes que nada se debe desactivar cualquier aplicación, applet, ícono o algo por el estilo que controle la red en modo gráfico además nos convertimos en super usuario con:

sudo -s
systemctl stop NetworkManager
systemctl disable NetworkManager

En ubuntu, el archivo de configuración principal de los parámetros de red es: interfaces, ubicado en /etc/network/, antes que nada conviene hacer una copia de seguridad del archivo asi:

Copia de seguridad del archivo original

 cp /etc/network/interfaces /etc/network/interfaces.original

Establecer la direcciones

Editar el archivo de configuración con

nano /etc/network/interfaces 
  1. Toda línea que inicie con “#” no se toma en cuenta, es comentario. El archivo debe quedar así:

    # interfaces(5) file used by ifup(8) and ifdown(8)
    # Adaptador local (loopback)
    auto lo
    iface lo inet loopback
    
    # configuración del primer adaptador ethernet vía DHCP
    auto enp0s3
    iface enp0s3 inet dhcp
    
    # configuración manual del segundo ethernet adaptador
    auto enp0s8
    iface enp0s8 inet static
    address 192.168.10.10
    netmask 255.255.255.0
    network 192.168.10.0
    broadcast 192.168.10.255
    # Multiples puertas de enlace pueden ocacionar problemas
    # si es necesario se puede especificar con la siguiente línea
    # gateway 192.168.10.1

 

Aplicar la configuración

En este caso, lo más fácil, rápido y seguro es reninica el equipo con:

reboot

Una vez que re-iniciamos comprobamos la configuración con:

ifconfig enp0s3

Si todo está bien, la salida debe ser algo como:

ifconfig enp0s8

La salida debe ser algo como esto:

Felicidades, hemos Configurar Manualmente los parámetros de rede en Unbuntu 16.04

Publicado en Configuración Inicial | 2 comentarios