Www.esdebian.org Wiki Instalacion-configuracion-postfix

23
 Ubuntu/Debian + Postfix + Courier IMAP + MySQL + Amavisd-new + SpamAssassin + ClamAV + SASL + TLS + SquirrelMail/Roundcube + Postgrey INDICE Introducción Configuració n de Ip fija  Configuración de Ip pública  Configuración de la red  Actualizació n de los repositorios  Instalación del software necesario  PostFix How-to de Shorewall para la configuraci ón del f irewall Iptables  Configuración de Shorewall para el servicio SSH  Configuración de PostFix  Configuración de MySQL para PostFix  Creación de la Base de Datos  Configuración de Courier IMAP  Servidor de correo avanzado  Antispam y Antivirus (Spamassssin y Clamav)  Políticas de control (Postgrey)  Autenticación SASL SASL/Courier IMAP TLS en PostFix Webmail (Rouncube)  Agregar usuarios y dominios  INTRODUCCIÓN Guía paso a paso  para configurar un servidor de correo en un sistema GNU/Linux. Es fácil de seguir y termina con un potente servidor de correo seguro, que acepta dominios  y usuarios ilimitados, y todo el correo se puede leer a través de sus clientes favoritos, o a través de correo web. Es seguro, el tráfico se cifra y se bloquea casi todo el spam y los virus. CONFIGURAR UNA IP FIJA (LOCAL Y PÚBLICA) PARA NUESTRO SERVIDOR Los valores anteriores tienen que ser modificados dependien do de nuestra red, para obtener la información de acuerdo a tu red ejecutar los siguientes comandos. - "Direc. inet" es lo mismo que "address" en /etc/network/interfaces - "Másc" es lo mismo que "netmask" en /etc/network/interfaces - network tiene el siguiente formato 192.168.x.0. Lo determinas con tu address, si es 192.168.0.100 entonces tu network es 192.168.0.0, otro ejemplo si tu ip es 192.168.1.75 entonces tu network es 192.168.1.0 - "Difus" es lo mismo que "broadcast" en /etc/network/interfaces Falta el último parámetro (gateway) eso lo determinas con el siguiente comando: la ip que te sale en la línea es la de tu puerta de enlace o gateway en /etc/network/interfaces. Guardamos con Ctrl mas la letra O y cerramos con Ctrl mas la letra X. Reiniciamos la interfaz de red INSTALACIÓN DE NO-IP (CONFIGURACIÓN DE IP PÚBLICA) Una vez que ya tenemos configurada nuestra lan para que tenga una ip fija, ahora vamos a configurar una ip pública como fija utilizando (no-ip). Primero tenemos que registrarnos en la pagina: http://www.no-ip.com/newUser.php  nano /etc/network/interfaces # This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). # The loopback network interface auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 192.168.0.100 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 ifconfig ip neigh /etc/init.d/networking restart  Page 1 of 23 Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix) 18/07/2011 http://www.esdebian.o rg/wiki/instalacion-configurac ion-postfix-debianubu ntu

Transcript of Www.esdebian.org Wiki Instalacion-configuracion-postfix

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 1/23

 

Ubuntu/Debian + Postfix + Courier IMAP + MySQL + Amavisd-new + SpamAssassin + ClamAV + SASL + TLS +SquirrelMail/Roundcube + Postgrey

INDICE

Introducción 

Configuración de Ip fija 

Configuración de Ip pública 

Configuración de la red 

Actualización de los repositorios 

Instalación del software necesario 

PostFix 

How-to de Shorewall para la configuración del f irewall Iptables 

Configuración de Shorewall para el servicio SSH 

Configuración de PostFix 

Configuración de MySQL para PostFix 

Creación de la Base de Datos 

Configuración de Courier IMAP 

Servidor de correo avanzado 

Antispam y Antivirus (Spamassssin y Clamav) 

Políticas de control (Postgrey) 

Autenticación SASL 

SASL/Courier IMAP 

TLS en PostFix 

Webmail (Rouncube) 

Agregar usuarios y dominios 

INTRODUCCIÓN 

Guía paso a paso para configurar un servidor de correo en un sistema GNU/Linux. Es fácil de seguir y termina con un potente servidor de correo seguro, queacepta dominios y usuarios ilimitados, y todo el correo se puede leer a través de sus clientes favoritos, o a través de correo web.

Es seguro, el tráfico se cifra y se bloquea casi todo el spam y los virus.

CONFIGURAR UNA IP FIJA (LOCAL Y PÚBLICA) PARA NUESTRO SERVIDOR 

Los valores anteriores tienen que ser modificados dependiendo de nuestra red, para obtener la información de acuerdo a tu red ejecutar los siguientescomandos.

- "Direc. inet" es lo mismo que "address" en /etc/network/interfaces- "Másc" es lo mismo que "netmask" en /etc/network/interfaces- network tiene el siguiente formato 192.168.x.0. Lo determinas con tu address, si es 192.168.0.100 entonces tu network es 192.168.0.0, otro ejemplo si tu ip es192.168.1.75 entonces tu network es 192.168.1.0- "Difus" es lo mismo que "broadcast" en /etc/network/interfaces

Falta el último parámetro (gateway) eso lo determinas con el siguiente comando:

la ip que te sale en la línea es la de tu puerta de enlace o gateway en /etc/network/interfaces.

Guardamos con Ctrl mas la letra O y cerramos con Ctrl mas la letra X.

Reiniciamos la interfaz de red

INSTALACIÓN DE NO-IP (CONFIGURACIÓN DE IP PÚBLICA) 

Una vez que ya tenemos configurada nuestra lan para que tenga una ip fija, ahora vamos a configurar una ip pública como fija utilizando (no-ip).Primero tenemos que registrarnos en la pagina:

http://www.no-ip.com/newUser.php 

nano /etc/network/interfaces

# This file describes the network interfaces available on your system

# and how to activate them. For more information, see interfaces(5).

# The loopback network interface

auto lo

iface lo inet loopback

# The primary network interface

auto eth0

iface eth0 inet static

address 192.168.0.100

netmask 255.255.255.0

network 192.168.0.0

broadcast 192.168.0.255

gateway 192.168.0.1 

ifconfig

ip neigh

/etc/init.d/networking restart

 

Page 1 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 2/23

p g g p 

 

Una vez que ya confirmamos nuestro registro a través del correo que proporcionamos. Nos logueamos en la siguiente pagina:

http://www.no-ip.com/login/  

ya dentro vamos a ver la siguiente pagina en la cuál vamos a darle un click al icono encerrado en color rojo

Page 2 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 3/23

p g g p 

 

En el apartado de Hostname information nos encontramos con opciones por llenar:

Hostname: Aquí deben poner la pagina que quieran para su servidor (yo como ejemplo pondré server1)El dominio: Como va a ser gratuito nos vamos al apartado de No-IP Free Domains que está adelante de hostname y elegimos el que queramos (yo elegiré paralo que sigue en la configuración el dominio "no-ip.org".

Por lo que quedaría así server1.no-ip.org y es el que utilizaré de aquí en adelante.

Y por último seleccionamos la opción "create host"

Page 3 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 4/23

p g g p 

 

Bueno eso es todo lo que tenemos que hacer en la pagina de no-ip ahora vamos a configurar no-ip en ubuntu.

Ya desde una terminal ejecutamos los siguientes comandos:

Durante la instalación veremos una pantalla como esta …

Aquí tenemos que introducir nuestra cuenta de correo de usuario en no-ip.com …

Seguidamente introducimos la contraseña …

sudo apt-get install no-ip

Page 4 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 5/23

p g g p 

 

Introducimos en minutos con que frecuencia queremos que nuestro servidor envíe nuestra IP hacia no-ip.com ( 30 es un buen numero ) …

Este apartado lo podemos dejar en blanco sin problemas ya que se supone que solo tenemos esta cuenta para solo nuestro servidor …

Aquí debemos introducir el nombre con el que está identificada nuestra tarjeta de red. ( Esto podemos verlo con el comando ifconfig ) …

para esta ultima opción seleccionamos No y listo.

Configuración de la RED 

HOSTNAME 

Un FQDN (Fully Qualified Domain Name) es un nombre que incluye el nombre de la computadora y el nombre de dominio asociado a ese equipo. Por ejemplo,dada la computadora llamad

 

a «serv1» y el nombre de dominio «bar.com», el FQDN será «serv1.bar.com», a su vez un FQDN asociado a serv1 podría ser«post.serv1.bar.com».

La longitud máxima permitida para un FQDN es 255 caracteres (bytes), con una restricción adicional a 63 bytes por etiqueta dentro de un nombre de dominio.Las etiquetas FQDN se restringen a un juego de caracteres limitado: letras A-Z de ASCII, los dígitos, y el carácter «-» , y no distinguen mayúsculas deminúsculas.

La sintaxis de los nombres de dominio se discute en varios RFCs -- RFC 1035, RFC 1123 y RFC 2181. En 2004 se añadieron algunos caracteres como «ä, ö, ü,

Page 5 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 6/23

p g g p 

é, à, è...» como caracteres permitidos para las etiquetas.

Ahora entramos a /etc/hosts

y lo modificamos de la siguiente manera (recuerden que aquí pondrán el host que crearon en la pagina de no-ip)

ahora ejecutamos

para ver el resultado ejecutamos

Editamos /etc/resolv.conf

y enseguida modificamos de la siguiente manera:

ACTUALIZACIÓN DE LOS REPOSITORIOS 

Primero que nada tenemos que habilitar los repositorios universe y multiverse de la siguiente manera

El archivo tiene que quedar de la siguiente manera (ubuntu 10.04):

ACTUALIZACIÓN DE REPOSITORIOS DESDE DEBIAN (para actualizaciones de ClamAV)

Ahora ejecutamos:

INSTALACIÓN DEL SOFTWARE NECESARIO

MySQL y Postfix (MTA: para enviar correo)

Postfix es un agente de transporte de mensajes (MTA) que transporta los mensajes de un agente de usuario de correo (MUA, o cliente de correo) a un servidorde correo con SMTP. Un MTA también acepta mensajes desde los servidores de correo remoto para transmitir a otros MTA o entregarlos a los buzones locales.Después de transmitir o entregar un mensaje, el trabajo de Postfix termina. Otros servidores son responsables de hacer llegar el mensaje al usuario final. Por

ejemplo, los MTA, como POP3 o IMAP, entregan el mensaje a un MUA, como Mutt, Outlook o Apple Mail, donde el usuario pueda leerlo.

El MTA (Mail Transportation Agent) Postfix pretende ser rápido, fácil de administrar y seguro, a la vez que suficientemente compatible con Sendmail como paraque los usuarios existentes no se asusten. Por lo tanto, externamente mantiene el estilo de Sendmail, mientras que internamente es completamente diferente.

A diferencia de Sendmail, Postfix no es un programa monolítico, sino una combinación de pequeños programas, cada uno de los cuales lleva a cabo una función

nano /etc/hosts

127.0.0.1 localhost.localdomain localhost

192.168.0.100 server1.no-ip.org server1

# The following lines are desirable for IPv6 capable hosts

::1 localhost ip6-localhost ip6-loopback

fe00::0 ip6-localnet

ff00::0 ip6-mcastprefix

ff02::1 ip6-allnodes

ff02::2 ip6-allrouters 

echo server1.no-ip.org > /etc/hostname

/etc/init.d/hostname restart

hostname

nano /etc/resolv.conf

domain no-ip.org

search no-ip.org

nameserver aquí_va_la_ip_del_gateway

nano /etc/apt/sources.list

# deb cdrom:[Ubuntu-Server 10.04 LTS _Lucid Lynx_ - Release amd64 (20100427)]/ lucid main restricted

#deb cdrom:[Ubuntu-Server 10.04 LTS _Lucid Lynx_ - Release amd64 (20100427)]/ lucid main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to

# newer versions of the distribution.

deb http://de.archive.ubuntu.com/ubuntu/ lucid main restricted

deb-src http://de.archive.ubuntu.com/ubuntu/ lucid main restricted

## Major bug fix updates produced after the final release of the

## distribution.

deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted

deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu

## team. Also, please note that software in universe WILL NOT receive any

## review or updates from the Ubuntu security team.

deb http://de.archive.ubuntu.com/ubuntu/ lucid universe

deb-src http://de.archive.ubuntu.com/ubuntu/ lucid universe

deb http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe

deb-src http://de.archive.ubuntu.com/ubuntu/ lucid-updates universe

nano /etc/apt/sources.list

[...]

deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib non-free

sudo aptitude update

sudo aptitude safe-upgrade

Page 6 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 7/23

p g g p 

especializada.

Instalamos la base de datos y el servidor de correo:

Respondemos a las preguntas:

SASL

SASL son las siglas de Simple Authentication and Security Layer, un método para añadir soporte para la autenticación a protocolos basados en la conexión queha sido estandarizado por la IETF (Internet Engineering Task Force). Se usa en servidores para manejar las peticiones de autenticación de los clientes. Paraello, el protocolo incluye un comando para identificar y autenticar un usuario contra un servidor y para, opcionalmente, negociar la protección de lassubsiguientes interacciones del protocolo. Si se negocia su uso, una capa de seguridad es añadida entre el protocolo y la conexión.

ClamAV

ClamAV es una herramienta antivirus GPL para UNIX. El propósito principal de este software es la integración con los servidores de correo (escaneo de datosadjuntos). El paquete proporciona un servicio multihilo flexible y escalable, un analizador de línea de comandos y una utilidad para la actualización automáticavia Internet. Los programas están basados en una librería distribuida con el paquete Clam AntiVirus, la cual puede ser usada por su propio software. Y lo más

importante, la base de datos se mantiene actualizada constantemente.

Otras características destacables son el soporte de firmas digitales en la actualización de la base de datos, el análisis durante el acceso bajo Linux y FreeBSD,la detección de virus, gusanos y troyanos, el soporte integrado para archivos comprimidos con Rar, Zip, Gzip y Bzip2 y formatos de correo Mbox, Maildir yficheros crudos de correo.

Amavis, SpamAssassin, postgrey

Amavisd-new es un interfaz de alto rendimiento y fiabilidad entre el MTA y uno o más filtros de contenidos: antivirus o el módulo Mail::SpamAssassin de Perl.Está escrito en Perl, asegurando alta fiabilidad, portabilidad y facilidad de mantenimiento. Se comunica con el MTA via (E)SMTP o LMTP, o mediante el uso deotros programas. No existen problemas de sincronización en su diseño que pudieran causar pérdidas de correos.

Normalmente se posiciona dentro o cerca del gestor de correo principal, no necesariamente donde se ubiquen las cuentas de correo de los usuarios (dondetiene lugar el envío final). Si se está buscando una solución que soporte configuración por usuario y ratios de mensajes pequeñas que se ubique al final delproceso de envío (p.e. llamado desde procmail o en sustitución de un agente local de envío), posiblemente puedan encontrarse otras soluciones másapropiadas.

Cuando está habilitado el uso de Mail::SpamAssassin (SA), se llama a SA una sola vez por mensaje (independientemente del número de destinatarios).Amavisd-new se beneficia del uso del módulo de Perl Net::Server, el cuál ofrece un rápido entorno multihilo. Amavisd-new ofrece un servidor SMTP que cumplecon el RFC 2821, un servidor LMTP que cumple con el RFC 2033, un cliente SMTP y genera notificaciones de estado de envío (o no) que cumplen los RFC

1892 y 1894. Esto lo hace adecuado para múltiples analizadores de virus y de correo publicitario en plataformas de correo donde la fiabilidad y el cumplimientode los estándares son importantes.

SpamAssassin es un filtro de correo que trata de identificar el spam mediante el análisis del texto y el uso en tiempo real de algunas listas negras a través deInternet.

A partir de su base de datos de reglas, utiliza un amplio abanico de pruebas heurísticas en las cabeceras y el cuerpo de los correos para identificar el spam,también conocido como correo electrónico comercial no solicitado. Una vez identificado, el correo puede ser opcionalmente marcado como spam o más tardefiltrado usando el cliente de correo del usuario.

SpamAssassin normalmente identifica acertadamente entre un 95 y un 99% del spam, dependiendo del tipo de correo que se reciba. También incluye soportepara informar de mensajes de spam, automática o manualmente, a bases de datos como Vipul's Razor.

Postgrey (Postfix Greylisting Policy Server) es un servidor de políticas para Postfix que implementa listasgrises (del inglés, greylisting) desarrollado por David Schweikert del Cuando Postfix recibe una petición deenvío de un correo electrónico via SMTP, éste construye el trío IP del cliente, remitente y destinatario. Si es la primera vez que se tiene constancia de estacombinación o si la primera vez que se vio fue hace menos de 5 minutos, entonces el correo es rechazado con un código de error temporal. Es de esperar quelos servidores que envían correo no deseado o virus no reintentarán el envío, aunque es un requerimiento estándar según el RFC (del inglés, Request ForComments).

SquirrelMail

SquirrelMail es un paquete de correo por web basado en estándares y escrito en PHP 4. Incorpora soporte PHP para los protocolos IMAP y SMTP, y todas suspáginas se crean en puro HTML 4.0 (sin requerir el uso de JavaScript), de modo que se garantize la máxima compatibilidad entre navegadores. Tiene muypocos requerimientos y es muy fácil de instalar y configurar. SquirrelMail tiene toda la funcionalidad que se espera de un cliente de correo electrónico, incluyendosoporte de MIME, agendas de contactos y gestión de carpetas.

phpMyAdmin

phpMyAdmin es una herramienta de software libre escrito en PHP para manejar la administración de MySQL a través de la World Wide Web. phpMyAdmin escompatible con una amplia gama de operaciones con MySQL. Las operaciones más utilizadas son compatibles con la interfaz de usuario (manejo de bases dedatos, tablas, campos, relaciones, índices, usuarios, permisos, etc), mientras que usted todavía tiene la capacidad de ejecutar directamente cualquier sentenciaSQL.

Escriba Sí para configurarlo, introduzca la contraseña de root mysql, escriba una contraseña de usuario mysql phpmyadmin dos veces. Acepte apache2 como elservidor web.

sudo aptitude install mysql-client mysql-server postfix postfix-mysql

New password for the MySQL "root" user: <-- Aquí_pones_el_password_de_root_para_sql

Repeat password for the MySQL "root" user: <-- repites_el_password_de_root_para_sql

Create directories for web-based administration? <-- No

General type of mail configuration: <-- Internet Site

System mail name: <-- server1.example.com

SSL certificate required <-- Ok

sudo aptitude install libsasl2-modules libsasl2-modules-sql libgsasl7\ libauthen-sasl-cyrus-perl sasl2-bin libpam-

mysql

sudo aptitude install clamav-base libclamav6 clamav-daemon clamav-freshclam

sudo aptitude install amavisd-new

sudo aptitude install spamassassin spamc

sudo aptitude install postgrey

sudo aptitude install squirrelmail squirrelmail-locales php-pear php5-cli

sudo aptitude install phpmyadmin

Page 7 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 8/23

p g g p 

ShoreWall

El Shoreline Firewall, más comúnmente conocido como "Shorewall", es una herramienta de alto nivel para configurar Netfilter. Usted describe sus requerimentosdel firewall/gateway usando entradas en un conjunto de archivos de configuración. Shorewall lee los archivos de configuración y con la ayuda de iptables,iptables-restore, IP y las TC utilities, Shorewall configura Netfilter y el subsistema de red de Linux para satisfacer sus necesidades. Shorewall se puede utilizar enun sistema firewall, un multi-función de gateway/router/servidor o en un independiente sistema de GNU/Linux. Shorewall no usar el modo compatibilidad ipchainsde Netfilter y por lo tanto pueden aprovechar las capacidades de seguimiento del estado de conexiones de Netfilter.

Shorewall no es un demonio. Una vez que ha configurado Shorewall el subsistema de red de Linux, su trabajo se ha completado. El programa /sbin/shorewall sepuede utilizar en cualquier momento para controlar el firewall Netfilter.

Shorewall no es más fácil de usar de las herramientas disponibles de configuración de iptables, pero creo que es el más flexible y potente.

Courier (para la recepción de correo)

Courier es un MTA basado en protocolos abiertos como ESMTP, IMAP, POP3, LDAP, SSL, y HTTP. Courier proporciona ESMTP, IMAP, POP3, webmail, ylistado de correo. Los componentes individuales pueden ser activados y desactivados a voluntad. El servidor de correo Courier implementa extensiones SMTPpara la gestión de listas de correo y filtrado de espam. El servidor de correo Courier puede funcionar como un retransmisor de correo intermedio, la retransmisiónde correo entre una red interna e internet, o realizar la entrega final a los buzones. Se puede configurar utilizando un módulo de administración basado en web.

El servidor de correo Courier también puede proporcionar servicios de correo para cuentas de correo virtual, gestionado por una base de datos de autenticaciónbasado en LDAP, MySQL, o PostgreSQL

Durante la intalación, los certificados SSL para IMAP-SSL y POP3- SSL son creados con el hostname localhost. Para cambiar esto con el nombre de hostcorrecto (server1.no-ip.ort para este tutorial), tenemos que eliminar los certificados.

y modificar /etc/courier/imapd.cnf

unicamente la siguiente línea por:

y también el archivo /etc/courier/pop3d.cnf

[...]CN=server1.no-ip.org[...]

Creamos los nuevos certificados

y reiniciamos los servicios

Configuración de Postfix 

Ejecutamos

Elegimos y escribimos lo pongo en forma resumida pero es cada una de las pantallas:

1. General Type of mail configuration, elegimos.

Internet Site

2. System mail name, teclamos.server1.no-ip.org

3. Root and postmaster mail recipienttu cuenta de usuario

4. Other destinatation to accept mail for (blanck for none):server1.no-ip.org, localhos.no-ip.org, no-ip.org, localhost

5. Local Networks (nota: agregamos nuestro intervalo de red)127.0.0.0/0 (::ffff:127.0.0.0)/104 (::1)/128 192.168.0.0/100

6. Internet protocols to use:all

Firewall

Shorewall 

Autor: Joel Barrios Dueñas

Antes de empezar a configurar iptables a través de Shorewall vamos a hablar acerca de las opciones más comunes de iptables:

• -A añade una cadena, la opción -i define una interfaz de tráfico entrante• -o define una interfaz para trafico saliente• -j establece una regla de destino del tráfico, que puede ser ACCEPT, DROP oREJECT.

sudo aptitude install shorewall-common shorewall-perl

sudo aptitude install shorewall shorewall-doc

sudo aptitude install courier-base courier-authdaemon courier-authlib-mysql \ courier-imap courier-imap-ssl courier-

ssl

cd /etc/courier

rm -f /etc/courier/imapd.pem

rm -f /etc/courier/pop3d.pem

nano /etc/courier/imapd.cnf

[...]

CN=server1.no-ip.org

[...]

nano /etc/courier/pop3d.cnf

mkimapdcert

mkpop3dcert

/etc/init.d/courier-imap-ssl restart

/etc/init.d/courier-pop-ssl restart

dpkg-reconfigure postfix

Page 8 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 9/23

p g g p 

• -m define que se aplica la regla si hay una coincidencia específica• --state define una lista separada por comas de distinto tipos de estados de lasconexiones (INVALID, ESTABLISHED, NEW, RELATED).• --to-source define que IP reportar al tráfico externo• -s define trafico de origen• -d define tráfico de destino• --source-port define el puerto desde el que se origina la conexión• --destination-port define el puerto hacia el que se dirige la conexión• -t tabla a utilizar, pueden ser nat, filter, mangle o raw.

Ejemplos de reglas.

Reenvío de paquetes desde una interfaz de red local (eth1) hacia una interfaz de red pública (eth0):

Aceptar reenviar los paquetes que son parte de conexiones existentes (ESTABLISHED) o relacionadas de tráfico entrante desde la interfaz eth1 para tráficosaliente por la interfaz eth0:

Permitir paquetes en el propio muro cortafuegos para tráfico saliente a través de la interfaz eth0 que son parte de conexiones existentes o relacionadas:

Permitir (ACCEPT) todo el tráfico entrante (INPUT) desde (-s) cualquier dirección (0/0) la red local (eth1) y desde el retorno del sistema (lo) hacia (-d) cualquierdestino (0/0):

Hacer (-j) SNAT para el tráfico saliente (-o) a tráves de la interfaz eth0 proveniente desde (-s) la red local (192.168.0.0/24) utilizando (--to-source) la dirección IPw.x.y.z.

Descartar (DROP) todo el tráfico entrante (-i) desde la interfaz eth0 que trate de utilizar la dirección IP pública del servidor (w.x.y.z), alguna dirección IP de la redlocal (192.168.0.0/24) o la dirección IP del retorno del sistema (127.0.01)

Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-p tcp) para los puertos (--destination-port) de los protocolos SMTP (25), HTTP(80),HTTPS (443) y SSH (22):

Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-tcp) para los puertos (--destination-port) del protocolos SMTP (25) en el servidor(w.x.y.z/32), desde (-s) cualquier lugar (0/0) hacia (-d) cualquier lugar (0/0).

Aceptar (ACCEPT) todos los paquetes SYN (--syn) del protocolo TCP (-p tcp) para los puertos (--destination-port) de los protocolos POP3 (110), POP3S (995),IMAP (143) y IMAPS (993):

Aceptar (ACCEPT) el tráfico entrante (-i) proveniente desde la interfaz eth1 cuando las conexiones se establezcan desde el puerto (--sport) 67 por protocolos (-p)TCP y UDP.

Aceptar (ACCEPT) conexiones de tráfico entrante (INPUT) por protocolo (-p) UDP cuando se establezcan desde (-s) el servidor DNS 200.33.145.217 desde elpuerto (--source-port) 53 hacia (-d) cualquier destino (0/0):

Cerrar accesos.

Descartar (DROP) el tráfico entrante (INPUT) para el protocolo (-p) TCP hacia los puerto (--destination-port) de SSH (22) y Telnet (23):

Descartar (DROP) todo tipo de conexiones de tráfico entrante (INPUT) desde (-s) la dirección IP a.b.c.d:

Rechazar (REJECT) conexiones hacia (OUTPUT) la dirección IP a.b.c.d desde la red local:

En general se utiliza la misma regla, pero en lugar de utilizar -A (append), se utiliza -D (delete).Elininar la regla que descarta (DROP) todo tipo de conexiones de tráfico entrante (INPUT) desde (-s) la dirección IP a.b.c.d:

iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT

iptables -A FORWARD -i eth0 -o eth1 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT

iptables -A INPUT -i eth1 -s 0/0 -d 0/0 -j ACCEPT

iptables -A INPUT -i lo -s 0/0 -d 0/0 -j ACCEPT

iptables -A POSTROUTING -t nat -s 192.168.0.0/24 -o eth0 -j SNAT --to-source x.y.z.c

iptables -A INPUT -i eth0 -s w.x.y.x/32 -j DROP

iptables -A INPUT -i eth0 -s 192.168.0.0/24 -j DROP

iptables -A INPUT -i eth0 -s 127.0.0.0/8 -j DROP

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 25 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 80 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 443 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 22 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d w.x.y.z/32 --destination-port 25 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 110 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 995 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 143 --syn -j ACCEPT

iptables -A INPUT -p tcp -s 0/0 -d 0/0 --destination-port 993 --syn -j ACCEPT

iptables -A INPUT -i eth1 -p tcp --sport 68 --dport 67 -j ACCEPT

iptables -A INPUT -i eth1 -p udp --sport 68 --dport 67 -j ACCEPT

iptables -A INPUT -p udp -s 201.161.1.226/32 --source-port 53 -d 0/0 -j ACCEPT

iptables -A INPUT -p tcp --destination-port 22 -j DROP

iptables -A INPUT -p tcp --destination-port 23 -j DROP

iptables -A INPUT -s a.b.c.d -j DROP

iptables -A OUTPUT -d a.b.c.d -s 192.168.0.0/24 -j REJECT

Eliminar reglas.

iptables -D INPUT -s a.b.c.d -j DROP

Page 9 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 10/23

p g g p 

Una vez cargadas todas las cadenas y reglas de iptables es posible visualizar éstas utilizando el mandato iptables con las opciones -n, para ver las listas enformato numérico, y -L, para solicitar la lista de éstas cadenas.

Cuando no hay reglas ni cadenas cargadas, la salida debe devolver lo siguiente:

Cuando hay cadenas presentes, la salida, suponiendo que se utilizarón los ejemplos de este documento, debe devolver algo similar a lo siguiente:

Iniciar, detener y reiniciar el servicio iptables.

Si está de acuerdo con las reglas generadas de iptables, utilice el siguiente mandato para guardar éstas:

Las reglas quedarán almacenadas en el fichero /etc/sysconfig/iptables.Para ejecutar por primera vez el servicio iptables, utilice:

Para hacer que los cambios hechos tras modificar la configuración surtan efecto, utilice:

Para detener el servicio iptables y borrar todas las reglas utilice:

Agregar el servicio iptables al arranque del sistema.

Para hacer que el servicio de iptables esté activo con el siguiente inicio del sistema, en todos los niveles de ejecución (2, 3, 4, y 5), se utiliza lo siguiente:

Cómo configurar iptables con Shorewall para el servicio SSH 

Abriremos los puertos para servicio SSH unicamente, una vez que estemos seguros que el servidor de correo es seguro abriremos los puertos SMTP e IMAPpara el mundo.

A continuación vamos a configurar las zonas de la red

Agregue el firewall si no existe e Internet como una zona.

A continuación, si es necesario especificar los hosts lo puede hacer en este archivo. Por ejemplo, si desea especificar la IP de su red, etc

Mostrar la lista de cadenas y reglas.

iptables -nL

Chain INPUT (policy ACCEPT)target prot opt source destination

Chain FORWARD (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination 

Chain INPUT (policy DROP)

target prot opt source destination

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0 state RELATED,ESTABLISHED

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

ACCEPT all -- 0.0.0.0/0 0.0.0.0/0

DROP all -- 192.168.1.64 0.0.0.0/0

DROP all -- 172.16.0.0/24 0.0.0.0/0

DROP all -- 127.0.0.0/8 0.0.0.0/0

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:25 flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:80 flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:443flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:22 flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 192.168.1.64 tcp dpt:25 flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:110

flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:995

flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:143

flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:993

flags:0x17/0x02

ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp spt:68 dpt:67

ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp spt:68 dpt:67

ACCEPT udp -- 201.161.1.226 0.0.0.0/0 udp spt:53

Chain FORWARD (policy DROP)

target prot opt source destination

P ll --

service iptables save

service iptables start

service iptables restart

service iptables stop

chkconfig iptables on

cp /usr/share/doc/shorewall/default-config/interfaces /etc/shorewall/

nano /etc/shorewall/interfaces

net eth0 detect dhcp,tcpflags,logmartians,nosmurfs

cp /usr/share/doc/shorewall/default-config/zones /etc/shorewall/

nano /etc/shorewall/zones

fw firewall

# loc ipv4

net ipv4

Page 10 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 11/23

p g g p 

A continuación, establezca cuál es la política por defecto para el acceso del firewall.

Para seguridad en caso de que se caiga

Configurar las reglas

ABIERTA PARA LOS NEGOCIOSUna vez que su servidor está funcionando volver a este paso y abrir el acceso SMTP y Web a otras personas.

Para probar la sintaxis de configuración, ejecute

Reiniciar con

Luego, para activarlo durante el arranque:

MTAPOSTFIX 

Usted debe poner el nombre de su servidor en este archivo

por lo que el archivo queda de la siguiente forma

Ahora se abrirá el archivo de configuración principal de postfix:

Debian y Ubuntu ya se ponen algunos valores razonables por defecto en este archivo.

cp /usr/share/doc/shorewall/default-config/hosts /etc/shorewall/

nano /etc/shorewall/hosts

# loc eth0:192.168.0.0/100

cp /usr/share/doc/shorewall/default-config/policy /etc/shorewall/

nano /etc/shorewall/policy

$FW net ACCEPT

net $FW DROP info

net all DROP info

# The FOLLOWING POLICY MUST BE LAST

all all REJECT info

cp /usr/share/doc/shorewall/default-config/routestopped /etc/shorewall/

nano /etc/shorewall/routestopped

eth0 0.0.0.0 routeback

cp /usr/share/doc/shorewall/default-config/rules /etc/shorewall/

nano /etc/shorewall/rules

SSH/ACCEPT net $FW

nano /etc/shorewall/rules

Ping/ACCEPT net $FW

# Permit all ICMP traffic FROM the firewall TO the net zone

ACCEPT $FW net icmp

# mail lines

SMTP/ACCEPT net $FW

SMTPS/ACCEPT net $FW

Submission/ACCEPT net $FW

IMAP/ACCEPT net $FW

IMAPS/ACCEPT net $FW

#web Web/ACCEPT net $FW

shorewall check

/etc/init.d/shorewall restart

nano /etc/default/shorewall

startup=1

sudo nano /etc/mailname

server1.no-ip.org

nano /etc/postfix/main.cf

Page 11 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 12/23

p g g p 

 

Luego, decida lo que tendrá el texto de bienvenida. Información suficiente, pero no divulgue todo a los hackers potenciales.

A continuación, tiene que decidir si va a enviar todo el correo saliente a través de otro servidor SMTP, o enviar a través de su propia cuenta.

Lo siguiente es información de la red. Que se pueden conectar desde cualquier lugar, y sólo confiar en este equipo.

A continuación, puede enmascarar algunas direcciones salientes.

A medida que va a utilizar dominios virtuales, estos deben estar vacíos.

A continuación, creará unos poco números.

Ahora podemos especificar algunas restricciones. Tenga cuidado de que cada opción de configuración quede en una sola línea.

myhostname = server1.no-ip.org

myorigin = /etc/mailname

mydestination = server1.no-ip.org, localhost, localhost.localdomain, localhost.no-ip.org, no-ip.org

mynetworks = 192.168.1.0/100, 127.0.0.0/8 [::1]/128

smtpd_banner = $myhostname ESMTP $mail_name

# leave blank to do it yourself

relayhost =

# or put it an accessible smtp server

relayhost = smtp.yourisp.com

inet_interfaces = all

mynetworks_style = host

# masquerade_domains = <a>mail.example.com</a> www.example.com <a>!sub.dyndomain.com</a>

# masquerade_exceptions = root

local_recipient_maps =

mydestination =

# how long if undelivered before sending warning update to sender

delay_warning_time = 4h

# will it be a permanent error or temporary

unknown_local_recipient_reject_code = 450

# how long to keep message on queue before return as failed.

# some have 3 days, I have 16 days as I am backup server for some people# whom go on holiday with their server switched off.

maximal_queue_lifetime = 7d

# max and min time in seconds between retries if connection failed

minimal_backoff_time = 1000s

maximal_backoff_time = 8000s

# how long to wait when servers connect before receiving rest of data

smtp_helo_timeout = 60s

# how many address can be used in one message.

# effective stopper to mass spammers, accidental copy in whole address list

# but may restrict intentional mail shots.

smtpd_recipient_limit = 16

# how many error before back off.

smtpd_soft_error_limit = 3

# how many max errors before blocking it.

smtpd_hard_error_limit = 12

Page 12 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 13/23

p g g p 

Otras restricciones:

Lo siguiente es necesario para establecer algunos mapas y búsquedas de los dominios virtuales.

Es necesario crear un archivo de alias. Sólo se utiliza a nivel local, y no por sus dominios de correo propios.

A continuación, tiene que configurar la carpeta donde se almacena el correo virtual. Esto puede haber sido ya realizada por el apt-get. Y también crear el usuarioque será el propietario de las carpetas.

Configuración de MySQL para Postfix 

Lo siguiente que necesitamos es crear los archivos para acceder a las búsquedas a través de la base de datos. Nosotros sólo crearemos unos pocos ahora, ymás tarde el resto, cuando necesario:

Crear la forma de encontrar la ubicación en los buzones de los usuarios

Crear cómo encontrar el alias de correo electrónico:

Crear cómo encontrar los dominios:

# Requirements for the HELO statement

smtpd_helo_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_hostname, reject_invalid_hostname, permit

# Requirements for the sender details

smtpd_sender_restrictions = permit_mynetworks, warn_if_reject reject_non_fqdn_sender, reject_unknown_sender_domain,

reject_unauth_pipelining, permit

# Requirements for the connecting server

smtpd_client_restrictions = reject_rbl_client sbl.spamhaus.org, reject_rbl_client blackholes.easynet.nl,

reject_rbl_client dnsbl.njabl.org

# Requirement for the recipient address smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks,reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit smtpd_data_restrictions

= reject_unauth_pipelining

# require proper helo at connections

smtpd_helo_required = yes

# waste spammers time before rejecting them

smtpd_delay_reject = yes disable_vrfy_command = yes

# not sure of the difference of the next two

# but they are needed for local aliasing

alias_maps = hash:/etc/postfix/aliases

alias_database = hash:/etc/postfix/aliases

# this specifies where the virtual mailbox folders will be located

virtual_mailbox_base = /var/spool/mail/virtual

# this is for the mailbox location for each user

virtual_mailbox_maps = mysql:/etc/postfix/mysql_mailbox.cf

# and this is for aliasesvirtual_alias_maps = mysql:/etc/postfix/mysql_alias.cf

# and this is for domain lookups

virtual_mailbox_domains = mysql:/etc/postfix/mysql_domains.cf

# this is how to connect to the domains (all virtual, but the option is there)

# not used yet

# transport_maps = mysql:/etc/postfix/mysql_transport.cf

virtual_uid_maps = static:5000

virtual_gid_maps = static:5000

sudo cp /etc/aliases /etc/postfix/aliases

# may want to view the file to check if ok.

# especially that the final alias, eg root goes

# to a real person

sudo postalias /etc/postfix/aliases

# to add if there is not a virtual user

sudo mkdir /var/spool/mail/virtual

sudo groupadd --system virtual -g 5000

sudo useradd --system virtual -u 5000 -g 5000

sudo chown -R virtual:virtual /var/spool/mail/virtual

nano /etc/postfix/mysql_mailbox.cf

user=mail

password=<a>mailPASSWORD</a>

dbname=maildb

table=users

select_field=maildir

where_field=idhosts=127.0.0.1

additional_conditions = and enabled = 1

nano /etc/postfix/mysql_alias.cf

user=mail

password=<a>mailPASSWORD</a>

dbname=maildb

table=aliases

select_field=destination

where_field=mail

hosts=127.0.0.1

additional_conditions = and enabled = 1

nano /etc/postfix/mysql_domains.cf

Page 13 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 14/23

p g g p 

Si se especifica una IP en los hosts, (en oposición a 'localhost'), entonces se comunican a través de TCP y no la toma de mysql. (Restricción chroot). Posdata.No olvides cambiar las contraseñas con la contraseña elegida usuario de correo.

Base de Datos

MySQL 

Ahora tendremos que crear las tablas para las búsquedas que acabamos de especificar. En primer lugar usted necesita crear un usuario que utilizará en MySQLpara el correo solamente. Luego hay que crear la base de datos, toma nota de su nombre de usuario y contraseña de correo elegido. Usted necesitará lacontraseña que ha especificado para el usuario root durante la instalación de MySQL.

Obviamente reemplace mailpassword por la contraseña elegida!

A continuación, tendrá que crear estas tablas:

* Alias* Dominios* Usuarios

Vamos a crear más después para una nueva extensión, pero sólo los relevantes ahora.

Entra en mysql con el nuevo usuario de correo

A continuación, ejecute estos comandos para crear las tablas:

Los últimos campos en la tabla de los usuarios no son necesarios, pero útil si se extiende más tarde.

A continuación hay que editar el archivo de MySQL my.cnf. En Ubuntu/Debian esta se crea de forma predeterminada. En Mandrake se t iene que crearmanualmente una en blanco en /etc Pero tenemos que configurar, así que:

user=mail

password=<a>mailPASSWORD</a>

dbname=maildb

table=domains

select_field=domain

where_field=domain

hosts=127.0.0.1

additional_conditions = and enabled = 1

# If not already done (in package installation)...

mysqladmin -u root password <a>new_password</a>

# log in as root

mysql -u root -p

# then enter password for the root account when prompted

<a>Enter password:</a>

# then we create the mail database

create database maildb;

# then we create a new user: "mail"

GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON maildb.* TO 'mail'@'localhost' IDENTIFIED by '<a>mailPASSWORD</a>';GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP

ON maildb.* TO 'mail'@'%' IDENTIFIED by '<a>mailPASSWORD</a>';

exit;

mysql -u mail -p maildb

# enter the newly created password

<a>Enter password:</a>

CREATE TABLE `aliases` (

`pkid` smallint(3) NOT NULL auto_increment,

`mail` varchar(120) NOT NULL default '',

`destination` varchar(120) NOT NULL default '',

`enabled` tinyint(1) NOT NULL default '1',

PRIMARY KEY (`pkid`),

UNIQUE KEY `mail` (`mail`)

) ;

CREATE TABLE `domains` (

`pkid` smallint(6) NOT NULL auto_increment,

`domain` varchar(120) NOT NULL default '',

`transport` varchar(120) NOT NULL default 'virtual:',

`enabled` tinyint(1) NOT NULL default '1',

PRIMARY KEY (`pkid`)

) ;

CREATE TABLE `users` (

`id` varchar(128) NOT NULL default '',

`name` varchar(128) NOT NULL default '',

`uid` smallint(5) unsigned NOT NULL default '5000',

`gid` smallint(5) unsigned NOT NULL default '5000',

`home` varchar(255) NOT NULL default '/var/spool/mail/virtual',

`maildir` varchar(255) NOT NULL default 'blah/',

`enabled` tinyint(3) unsigned NOT NULL default '1',

`change_password` tinyint(3) unsigned NOT NULL default '1',

`clear` varchar(128) NOT NULL default 'ChangeMe',

`crypt` varchar(128) NOT NULL default 'sdtrusfX0Jj66',

`quota` varchar(255) NOT NULL default '',

`procmailrc` varchar(128) NOT NULL default '',

`spamassassinrc` varchar(128) NOT NULL default '',

PRIMARY KEY (`id`),

UNIQUE KEY `id` (`id`)

) ;

# To visualise the tables created:

describe aliases; describe domains; describe users;

# then quit mysql

exit;

nano /etc/mysql/my.cnf

Page 14 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 15/23

p g g p 

En la versiones anteriores se necesitaba descomentar esta línea

Sin embargo en el actual archivo por defecto une la dirección al localhost, lo cual está bien.

Habilite estas lineas

Reinicie MySQL para aplicar la nueva configuración

Pop/IMAPCourier IMAP 

Editar el Archivo /etc/courier/authdaemonrc, y cambiar la línea de este módulo:

Editar /etc/courier/authmysqlrc, y asegúrese de que estas líneas de configuración son correctas. Espacios vacíos al final de las líneas es un error común.

Edite /etc/courier/imapd

A continuación, edite el mismo en pop y ssl, si usted va a utilizarlos.Si ha seguido estos pasos correctamente, ahora debería tener un servidor de correo de trabajo. Usted puede pasar a los datos y luego a la etapa de prueba paraver si el servidor funciona como está previsto. No es seguro y es suceptable de spam, por lo que siguen otros pasos antes, pero es bueno saber que funciona!

SERVIDOR DE CORREO (AVANZADO) 

Ahora vamos a extender esta configuración, la seguridad e interfaces de usuario.

Amavisd-new (antispam y antivirus) 

Todos los archivos de configuración se encuentran en /etc/amavis/conf.d

La configuración por defecto de el archivo 01-debian está bien.

Eche un vistazo a

pero no cambie nada en el.

Eche un vistazo a

pero no cambie nada en el.

Eche un vistazo a

pero no cambie nada en el.

Editar el archivo de verificación de contenido

Comente los análisis de virus y spam. (Por defecto).

Eche un vistazo a

#skip-networking

bind-address = 127.0.0.1

general_log_file = /var/log/mysql/mysql.log

general_log = 1

/etc/init.d/mysql restart

authmodulelist="authmysql"

MYSQL_SERVER localhost

MYSQL_USERNAME mail

MYSQL_PASSWORD <a>apassword</a>

MYSQL_PORT 0MYSQL_OPT 0

MYSQL_DATABASE maildb

MYSQL_USER_TABLE users

# comment out this field,

# as I now longer use the encrypted pw options

#MYSQL_CRYPT_PWFIELD crypt

MYSQL_CLEAR_PWFIELD clear

MYSQL_UID_FIELD uid

MYSQL_GID_FIELD gid

MYSQL_LOGIN_FIELD id

MYSQL_HOME_FIELD home

MYSQL_NAME_FIELD name

MYSQL_MAILDIR_FIELD concat(home,'/',maildir)

MYSQL_WHERE_CLAUSE enabled=1

# set how many connections to use per person. Easy to underestimate if you have 6 mailboxes set up.

MAXPERIP=20

# high debug to start with

DEBUG_LOGIN=2 IMAPDSTART=YES

less 05-domain_id

less 05-node_id

less 15-av_scanners

sudo nano 15-content_filter_mode

# #@bypass_virus_checks_maps = (

# \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

# @bypass_spam_checks_maps = (

# \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

less 20-debian_defaults

Page 15 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 16/23

p g g p 

y

pero no cambie nada en ellos.

25-amavis_helpers la configuración por defecto esta bien

30-template-localization la configuración por defecto esta bien

Editar archivo de usuario

y en la mitad del archivo insertar

Hemos configurado amavis para escanear y pasar a lo largo del correo entrante. Ahora vamos a la configuración de postfix para que se comunique con amavis.

Añadir estas líneas al final del archivo (asegúrese de que no están presentes). (Nota las líneas con (-o) al inicio tienen espacios delante de ellos.

También agregar las dos líneas siguientes inmediatamente debajo del servicio de transporte "pick-up":

y luego agregue a main.cf

Activar el análisis de ClamAV de amavis en archivos temporales.

Con esto se debe conseguir que amavis trabaje. Si los correos son recogidos por amavis y pasan después a postfix entonces se ve bien. Sólo cuando terminede hacer pruebas descomente las líneas de antivirus y antispam en:

Cuando las cosas esten funcionando vamos a bajar el nivel de registro, y empezar a rebotar/descartar spam.

less 21-ubuntu_defaults

sudo nano 50-user

@local_domains_acl = qw(.);

$log_level = 2;

$syslog_priority = 'debug';

# $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level

# $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level

$sa_kill_level_deflt = 8.0; # triggers spam evasive actions

# $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent

$final_spam_destiny = D_PASS;

# $final_spam_destiny = D_REJECT; # default

# $final_spam_destiny = D_BOUNCE; # debian default

# $final_spam_destiny = D_DISCARD; # ubuntu default, recommended as sender is usually faked

nano /etc/postfix/master.cf

amavis unix - - - - 2 smtp

-o smtp_data_done_timeout=1200

-o smtp_send_xforward_command=yes

-o disable_dns_lookups=yes

-o max_use=20

127.0.0.1:10025 inet n - - - - smtpd

-o content_filter=

-o local_recipient_maps=

-o relay_recipient_maps=

-o smtpd_restriction_classes=

-o smtpd_delay_reject=no

-o smtpd_client_restrictions=permit_mynetworks,reject

-o smtpd_helo_restrictions=

-o smtpd_sender_restrictions=

-o smtpd_recipient_restrictions=permit_mynetworks,reject

-o smtpd_data_restrictions=reject_unauth_pipelining

-o smtpd_end_of_data_restrictions=

-o mynetworks=127.0.0.0/8-o smtpd_error_sleep_time=0

-o smtpd_soft_error_limit=1001

-o smtpd_hard_error_limit=1000

-o smtpd_client_connection_count_limit=0

-o smtpd_client_connection_rate_limit=0

-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

-o content_filter=

-o receive_override_options=no_header_body_checks

sudo nano /etc/postfix/main.cf

content_filter = amavis:[127.0.0.1]:10024

sudo adduser clamav amavis

sudo nano 15-content_filter_mode

@bypass_virus_checks_maps = (

\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

@bypass_spam_checks_maps = (

\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

sudo nano /etc/amavis/conf.d/50-user

Page 16 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 17/23

p g g p 

La configuración por defecto de SpamAssassin estaban bien, pero usted puede modificarla en /etc/spamassassin/local.cf. Por ejemplo usted puede aumentar odisminuir los niveles necesarios antes de que los correos sean marcados como spam, y antes de rechazarlos.

He aquí un ejemplo de mi local.cf.

Una vez que haya una colección de spam y no spam (200 de cada uno), puede entrenar el filtro Bayesiano en SpamAssassin con estos mensajes de correoelectrónico. Revise esto en el sitio web de SpamAssassin .

Si usted nota que mucho spam se dejan pasar, a continuación, hacer más ajustes. Si usted recibe demasiados falsos positivos, es decir, mensajes de correoelectrónico real marcados como spam, afloje un poco la puesta a punto. Una configuración correcta de SpamAssassin debe coger el 97% de todo el spam. Conaproximadamente 1 de cada 1000 falsos positivos.

El sitio SpamAssassin tiene un montón de información sobre su creación. Vale la pena una buena lectura a través de esta.

Usted necesita decirle a SpamAssassin que smapd en el arranque.

Entrenamiento bayesiano 

Primera vez

Es necesario entrenar al clasificador bayesiano, para que se pueda hacer una base de tokens que representan spam y ham (ham=no_spam).

Del manual de spamd:You need to train with both spam and ham mails. One type of mail alone will not have any effect.

Se necesitan por lo menos 200 mensajes de cada tipo, se recomienda mas de 1000. Aparentemente, entrenarlo con mas de 5000 mensajes no hace efecto.

Recuerde:

* Es recomendable que sea parecida la cantidad de mensajes de cada tipo que se usan para entrenar (5000 de ham y 200 de spam no es buena idea).* Es recomendable que sean todos mensajes distintos (si aprende que todos los mensajes de x lista de correo son ham, cuando caiga un spam en esta lista (ocon el destinatario/headers de la lista) probablemente lo clasifique mal).

Evite:

* Entrenarlo con carpetas que contengan spam forwardeado, o discusiones sobre spam (como le explicas que tiene un spam attached pero que en realidad noes spam!?).* Entrenarlo con carpetas donde pueda haber algun spam/ham mezclado, se arruina el aprendizaje.

Procedimiento:

Cuando haya lanzado el primero de estos comandos, vaya caliente prepare un cafe y tomeselo con calma, esto demora.

Reentrenamiento Bayesiano para mensajes mal clasificados:Esto es imprescindible, si no se le explica al analizador bayesiano que se equivoco, el loco se va a equivocar cada vez mas. Cuando clasifique mal, hay quedecirle "te equivocaste esto es/no_es spam".

Existen dos metodos:1) Crear casilla de correo "[email protected]" y casilla "[email protected]". Cuidar que esas casillas no puedan recibir mail del exterior. Que los usuariosreenvien los mensajes de spam mal clasificado. Los usuarios deberan reenviar el mail siguiendo estas instrucciones:http://wiki.apache.org/spamassassin/BayesFeedbackViaForwarding Configurar siguiendo instrucciones de este link:http://jousset.org/pub/sa-postfix.en.html 

Puede hacerse el entrenamiento automatico (si confias en los usuarios), o el admin. puede revisar los mails que los usuarios mandan como spam mal clasificado(si los usuarios son menos experimentados de lo normal).

Si el admin lee el spam/no_spam y lo reclasifica a mano, la mejor forma de automatizarlo es que el admin mueva lo que es spam a una carpeta IMAP especifica(y lo que no es spam a otra carpeta distinta) y que un cron lea esas carpetas, reentrene a bayes, y las vacie.

2) Crear dos carpetas IMAP publicas ES_spam y NO_ES_spam. Que los usuarios muevan el correo a estas carpetas (es mas facil arrastrar un mensaje quereenviarlo cuidando los headers). Luego el admin ve si las vacia automaticamente con un cron, o las revisa a mano como en el metodo anterior.

Script ejemplo

Ejemplo de script y crontab para reentrenar spam/ham a partir de carpetas IMAP:

crear un script /usr/local/bin/learn-spam asi:

@local_domains_acl = qw(.);

$log_level = 1;

$syslog_priority = 'info';

# $sa_tag_level_deflt = 2.0; # add spam info headers if at, or above that level }

# $sa_tag2_level_deflt = 6.31; # add 'spam detected' headers at that level

$sa_kill_level_deflt = 8.0; # triggers spam evasive actions

# $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent

# $final_spam_destiny = D_PASS;

# $final_spam_destiny = D_REJECT; # default

# $final_spam_destiny = D_BOUNCE; # debian default$final_spam_destiny = D_DISCARD; # ubuntu default, recommended as sender is usually faked

skip_rbl_checks 0

use_razor2 0

use_dcc 0

use_pyzor 0

use_bayes 1

bayes_path /etc/spamassassin/bayes

bayes_file_mode 0770

# E.g. like this

sa-learn --showdots -C /etc/spamassassin --spam /var/spool/mail/virtual/quarantine/.spam/*

sa-learn --showdots -C /etc/spamassassin --ham /var/spool/mail/virtual/mine/cur/*

sudo nano /etc/default/spamassassin

ENABLED=1

1. sa-learn --spam -C /etc/mail/spamassassin --showdots .SPAM.Equinox/cur/ #la primera vez

2. sa-learn --spam -C /etc/mail/spamassassin --showdots .SPAM.Manantiales/cur/ #para cada carpeta con spam

3. sa-learn --ham -C /etc/mail/spamassassin --showdots --no-rebuild cur/ # Esto es Ham.

4. sa-learn -C /etc/mail/spamassassin --showdots --rebuild # Construye la base de tokens.

Page 17 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 18/23

p g g p 

en /etc/crontab:

))To - Do(( (o tareas para mejorar este documento)

* Agregar configuracion (y crearme usuarios) para razor y dcc. Requiere reconfigurar firewall.* Hacer carpetitas de IMAP y reglas de procmail para mover los spam a donde va.

o Esta hecho, pero hay que documentarlo.Tomar ideas de:http://www.securitysage.com/guides/postfix_uce_steps.html http://advosys.ca/papers/postfix-filtering.html http://www.inigo-tech.com/Members/kaeru/articles/evolution-spamassassin/ (directo para fitro en Evolution)

Creado por: rodolfo última modificación: Sábado 07 de Agosto de 2004 [18:03:53 UTC] por rodolfo

Anti Virus

ClamAV

ClamAV no necesita configuración. Los archivos de configuración están en /etc/clamav, pero se generan automáticamente, así que no es necesario editarlos.

De forma predeterminada freshclam, el demonio que actualiza la base de datos de definiciones de virus, se ejecuta 24 veces al día. Eso parece un pocoexcesivo, por lo que se tiende a establecer que sea una vez al día.

También se le preguntará si quiere que sea el demonio (sí) y el servidor más cercano a usted.

Sólo si es necesario puede utilizar el comando siguiente para reconfigurar con un monton de preguntas. No es necesario a menos que necesite configurar.

Postgrey 

La configuración por defecto de postgrey está bien. Sin embargo, usted necesita decirle a Postfix para que lo use.

Y a continuación, modifique las restricciones del destinatario:

Puede modificar listas blancas en /etc/postgrey. Puede ajustar la configuración postgrey modificando el archivo /etc/default/postgrey. Por ejemplo demora, listablanca automática, o rechazo de mensajes.

Autenticación

SASL 

#!/bin/bash

PATH=/usr/bin:/usr/sbin:/bin:/sbin

## SPAM:

for i in /home/miope/Maildir/.SPAM.ES_SPAM/cur/*

do

cat $i | sa-learn -C /etc/spamassassin/ --spam --no-rebuild

rm -f $idone

## HAM:

for i in /home/miope/Maildir/.SPAM.NOesSPAM/cur/*

do

cat $i | sa-learn -C /etc/spamassassin/ --ham --no-rebuild

rm -f $i

done

sa-learn -C /etc/spamassassin/ --rebuild 

## Re-entreno la base bayesiana con los spams mal clasificados:

52 6 1 * * root /usr/local/bin/learn-spam

sudo dpkg-reconfigure clamav-freshclam

sudo dpkg-reconfigure clamav-base

sudo nano /etc/postfix/main.cf

smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated,

reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service

inet:127.0.0.1:10023, permit

POSTGREY_OPTS="--inet=10023 --max-age=365"

Page 18 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 19/23

p g g p 

 

SASL asegura la autenticación real (entrada), mediante la codificación de las contraseñas de modo que no puede ser fácilmente interceptado. El resto de loscorreos electrónicos son, sin embargo texto plano.

SASL puede ser un dolor de cabeza en crear, sobre todo porque no es compatible con el almacenamiento de contraseñas cifradas por defecto en Ubuntu.En ediciones anteriores de este tutorial se describe cómo configurar SASL usando contraseñas de texto sin formato en la base de datos.

Obviamente, esto no es lo ideal, por lo que hay maneras de combinar SASL y el almacenamiento de contraseñas encriptadas. En el futuro los paquetes queviene con Ubuntu podrá apoyar la opción de configuración password_format de SASL. Pero hasta entonces se puede configurar SASL para pedir PAM quecompare las contraseñas:

Instalar paquetes:

Habilitar postfix para que acceda a los archivos de SASL:

Crear archivos sasl accesibles incluso por el chroot de Postfix:

Añadir configuraciones SASL a postfix:

Modificar estas configuraciones ya existentes:

Cambiar la forma en que se ejecuta SASLAUTHD:

Dile a postfix cómo interactuar con SASL:

sudo aptitude install sasl2-bin libpam-mysql libsasl2-modules libsasl2-modules-sql

sudo adduser postfix sasl

sudo mkdir -p /var/spool/postfix/var/run/saslauthd

sudo vi /etc/postfix/main.cf

# SASL smtpd_sasl_auth_enable = yes # If your potential clients use Outlook Express or other older clients # this

needs to be set to yes broken_sasl_auth_clients = no smtpd_sasl_security_options = noanonymous

smtpd_sasl_local_domain =

# Add permit_sasl_authenticated to you existing smtpd_sender_restrictions

smtpd_sender_restrictions = permit_sasl_authenticated, permit_mynetworks, warn_if_reject reject_non_fqdn_sender,

reject_unknown_sender_domain, reject_unauth_pipelining, permit

# Add permit_sasl_authenticated to you existing smtpd_recipient_restrictions

smtpd_recipient_restrictions = reject_unauth_pipelining, permit_mynetworks, permit_sasl_authenticated,

reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, check_policy_service

inet:127.0.0.1:10023, permit 

sudo nano /etc/default/saslauthd

# Toggle this to yes

START=yes

# Switch this to be under postfix's spool

# And add -r so that the realm(domain) is part of the username

OPTIONS="-r -c -m /var/spool/postfix/var/run/saslauthd"

sudo nano /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd

mech_list: plain login cram-md5 digest-md5

log_level: 7

allow_plaintext: true

auxprop_plugin: mysql

sql_engine: mysql

sql_hostnames: 127.0.0.1

sql_user: mailsql_passw: mailPASSWORD

sql_database: maildb

sql_select: select crypt from users where id='%u@%r' and enabled = 1

Page 19 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 20/23

p g g p 

(Cuando SASL este trabajando puede quitar la línea log_level.)

Decir a pam cómo hacer para autenticar SMTP a través de mysql:

Estos deben estar en dos líneas

Además de tailing var/log/mail.log y /var/log/mysql/mysql.log es muy util el tail de auth.log al probar SASL

Reinicie postfix y saslauthd para habilitar SASL en el envío de mensajes de correo electrónico.

Imap SASL / Courier 

No suelo tener SASL para la autenticación de courier, porque hago cumplir TSL para todos lo clientes.

Sin embargo, si usted tiene una política de acceso más indulgente que es conveniente si usted tiene muchos usuarios, entonces usted puede desear SASL enCourier, así:

Esto puede estar ya disponible, como un comentario de línea. Si no está reemplazar la línea actual mediante la adición de UTH=CRAM-MD5 CRAM-AUTH=SHA1 por lo que se parece a algo como esto: (De nuevo en una línea)

CifradoTLS 

El cifrado del tráfico evita que alguien este escuchando las comunicaciones en su correo electrónico. Y es muy recomendable.Hay diferentes tipos de comunicación para cifrar. El tráfico de datos entre las aplicaciones de correo electrónico y nuestro servidor cuando se lee correoelectrónico o al enviar mensajes de correo electrónico, y la comunicación entre otros servidores de correo electrónico y nuestro servidor.

TLS en Postfix

Para cifrar necesita certificados. En primer lugar usted necesita crear un certificado para postfix y uno para Courier. En postfix se tiene que hacer esto para uncertificado de 3 años:

Luego hay que añadir estos a /etc/postfix/main.cf

Seguido por la adición o hacer que estos se encuentre en master.cf:

Estos puertos son necesarios para los clientes que no podrán utilizar la opción STARTTLS en el puerto 25. El puerto 465 (la línea SMTPS) es una solución nooficial, para que los clientes Por ejemplo, Evolución de Novel, puedan utilizar hasta que corrijan su software para trabajar con STARTTLS.

Los paquetes de Debian crea certificado de courier para usted. De lo contrario debe hacer esto (en nombre del caso del servidor no es el mismo que el nombredel equipo):

A continuación edite /etc/courier/imapd-ssl y asegurarse de que esta es la ruta al certificado.

Ya hay algunas configuraciones de TLS en Debian por default para este archivo:

sudo nano /etc/pam.d/smtp

auth required pam_mysql.so user=mail passwd=aPASSWORD

host=127.0.0.1 db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1

account sufficient pam_mysql.so user=mail passwd=aPASSWORD

host=127.0.0.1 db=maildb table=users usercolumn=id passwdcolumn=crypt crypt=1

tail -f /var/log/auth.log

sudo /etc/init.d/saslauthd restart

sudo /etc/init.d/postfix restart

sudo nano /etc/courier/imapd

IMAP_CAPABILITY="IMAP4rev1 UIDPLUS CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT QUOTA AUTH=CRAM-

MD5 AUTH=CRAM-SHA1 IDLE"

sudo /etc/init.d/courier-authdaemon restart

sudo /etc/init.d/courier-imap restart

cd /etc/postfix

openssl req -new -outform PEM -out postfix.cert -newkey rsa:2048 -nodes -keyout postfix.key -keyform PEM -days 999 -

x509

smtpd_use_tls = yes

smtpd_tls_cert_file = /etc/postfix/postfix.cert

smtpd_tls_key_file = /etc/postfix/postfix.key

smtpd_data_restrictions = reject_unauth_pipelining

# these may already be present in your file,

# however I usually have to add them

# also, this specific line used to use fifo, it now needs to use unix type

tlsmgr unix - - n 300 1 tlsmgr

smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes

587 inet n - n - - smtpd -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes

openssl req -x509 -newkey rsa:1024 -keyout imapd.pem -out imapd.pem -nodes -days 999

TLS_CERTFILE=/etc/courier/imapd.pem

sudo nano /etc/postfix/main.cf

Page 20 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 21/23

p g g p 

A continuación echemos un vistazo al archivo master.cf.

Por defecto sólo el servicio norma SMTP es permitido, que está muy bien. Pero prefiero que permita submission (puerto 587), para que los clientes puedanutilizarlo y puedan restringir sólo a TLS. También habilito el servicio SMTPS (puerto 465) por alguna compatibilidad con algunos clientes viejos (Outlook Express,etc).

En algunas situaciones SASL y TLS no se llevan bien juntos. Estas situaciones son en combinaciones de almacenar contraseñas cifradas, mediante laautenticación MD5 en el tráfico cifrado.

ROUNDCUBE (CLIENTE DE CORREO) 

Como alternativa a SquirrelMail, Roundcube tiene un sistema más moderno. Sin embargo, no obtuvo el registro para pruebas de larga trayectoria comoSquirrelMail, y todavía no es una versión release 1.0. Sin embargo, si usted prefiere una interfaz mucho más atractiva a continuación, siga estos sencillos pasos:

Si lo desea,puede desinstalar SquirrelMail:

A continuación, instale Roundcube

Se le preguntará si desea configurar su acceso a la base de datos, la respuesta es afirmativa, a continuación, seleccione mysql. Luego se le pedirá la contraseñade root que MySQL usa, se creará un usuario RoundCube en mysql y preguntara por su contraseña deseada.

Esto creará un enlace simbólico en /etc/apache2/conf.d/ a /etc/RoundCube/apache.conf. Editar este archivo.

Dependiendo de su configuración, puede mover los comandos de alias en la parte superior a la configuración de hosts virtuales, o para este ejemplo que sehabiliten para todos los hosts.

Después edite el archivo de configuración

Modificar estas líneas para mayor seguridad y facilidad en el login:

Hay otros ajustes y funciones de seguridad que puede permitir tales como:

Pero tal vez deba concentrarse en conseguir el trabajo basico en primer lugar...

Guardar, salir y cargar Apache para habilitar estos alias para que Roundcube trabaje.

# TLS parameters

#smtp_use_tls = no

smtp_tls_security_level = may

#smtpd_use_tls=yes

smtpd_tls_security_level = may

smtpd_tls_auth_only = no

smtp_tls_note_starttls_offer = yes

smtpd_tls_loglevel = 1

smtpd_tls_received_header = yes

smtpd_tls_session_cache_timeout = 3600stls_random_source = dev:/dev/urandom

smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem

smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

#smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_scache

#smtp_tls_session_cache_database = btree:${data_directory}/smtp_scache

sudo nano /etc/postfix/master.cf

submission inet n - n - - smtpd

-o smtpd_sasl_auth_enable=yes

# if you do not want to restrict it encryption only, comment out next line

-o smtpd_tls_auth_only=yes

# -o smtpd_tls_security_level=encrypt

# -o header_checks=

# -o body_checks=-o smtpd_client_restrictions=permit_sasl_authenticated,reject_unauth_destination,reject

-o smtpd_sasl_security_options=noanonymous,noplaintext

-o smtpd_sasl_tls_security_options=noanonymous

# -o milter_macro_daemon_name=ORIGINATING

smtps inet n - - - - smtpd

-o smtpd_tls_wrappermode=yes

-o smtpd_sasl_auth_enable=yes

-o smtpd_tls_auth_only=yes

-o smtpd_client_restrictions=permit_sasl_authenticated,reject

-o smtpd_sasl_security_options=noanonymous,noplaintext

-o smtpd_sasl_tls_security_options=noanonymous

# -o milter_macro_daemon_name=ORIGINATING

sudo aptitude remove squirrelmail squirrelmail-locales

sudo aptitude install roundcube roundcube-mysql

sudo nano /etc/roundcube/apache.conf

# Uncomment them to use it or adapt them to your configuration

Alias /roundcube/program/js/tiny_mce/ /usr/share/tinymce/www/

Alias /roundcube /var/lib/roundcube

sudo nano /etc/roundcube/main.inc.php

$rcmail_config['default_host'] = 'ssl://localhost:993';

$rcmail_config['smtp_server'] = 'ssl://localhost';

$rcmail_config['smtp_port'] = 465;

# keep as default or change to your mail server name

$rcmail_config['smtp_helo_host'] = 'mail.example.com';

$rcmail_config['create_default_folders'] = TRUE; 

$rcmail_config['sendmail_delay'] = 1;

Page 21 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 22/23

p g g p 

Después, vaya a la instalación de RoundCube según dónde y cómo haya modificado los alias, por ejemplo, en http://mail.example.com/roundcube.Eso debería ser

Usted, evidentemente, puede modificar y ajustar aún más. Una cosa que puede ser útil es que el alias de roundcube en apache sobre diferentes máquinasvirtuales, y configurar username_domain en main.inc.php añadir diferentes direcciones de correo electrónico, o configurar el servidor de correo default_host adiferentes servidores de correo dependiendo de la maquina virtual. más información en el wiki de roundcube.

Agregar usuarios y dominios Así que tenemos un servidor de correo totalmente terminado ... Pues no, no hay usuarios, dominios, nada de nada!

Bueno, primero que tienes que añadir algunos datos por defecto, algunos que se requieren, algunos que tienen sentido.

A continuación vamos a añadir sus propios usuarios y dominios.

Dominios necesarios y los usuarios

En primer lugar los dominios necesarios para el correo local

A continuación, algunos alias predeterminados. Algunas personas dicen que estos no son necesarios, pero me gusta incluirlos.

A continuación un usuario ROOT

Dominios y Usuarios

Ahora vamos a añadir algunos datos de esta índole.

Digamos que quiere este equipo para manejar los datos de los dominios ficticios "blobber.org", "whopper.nu" y "lala.com".

Luego diga que el nombre de esta máquina es "mail.blobber.org".

Todo el correo electrónico de lala.com, se enviará a whupper.nu.

Usted también tiene dos usuarios llamados "Xandros" y "Vivita".

Usted quiere que todo el correo para whooper.nu vaya para Xandros

También hay un usuario "Karl",pero él quiere todo el correo enviado a una cuenta externa.

Entonces, ¿qué hace cada una de estas líneas realmente?Los usuarios requieren de cuatro campos. ID es la dirección de correo electrónico del usuario, y también su nombre de usuario para autenticarse. NAME es unadescripción opcional del usuario. MAILDIR es el nombre dentro de la carpeta /var/spool/mail/virtual. Se debe terminar en una /, de lo contrario no será utilizadocomo un formato maildir de Unix. CRYPT es la contraseña de texto cifrado a utilizar.

Los alias son la parte interesante. Vamos a empezar desde un punto de vista de arriba hacia abajo para ver cómo los correos electrónicos llegan a su destino:

Llega un correo dirigido a "[email protected]".

Postfix busca dominios y encuentra que whopper.nu es un dominio que escucha.

Postfix luego busca en los alias y encuentra que el correo coincide "[email protected]".

Postfix encuentra que otro dominio recibe todos los corres que son enviados desde "@whopper.nu" y son enviados a "[email protected]"

sudo /etc/init.d/apache2 reload

# Use phpMyAdmin or command line mysql

INSERT INTO domains (domain) VALUES

('localhost'),

('localhost.localdomain');

INSERT INTO aliases (mail,destination) VALUES

('postmaster@localhost','root@localhost'),

('sysadmin@localhost','root@localhost'),

('webmaster@localhost','root@localhost'),('abuse@localhost','root@localhost'),

('root@localhost','root@localhost'),

('@localhost','root@localhost'),

('@localhost.localdomain','@localhost');

INSERT INTO users (id,name,maildir,crypt) VALUES

('root@localhost','root','root/', encrypt('apassword') );

INSERT INTO domains (domain) VALUES

('blobber.org'),('mail.blobber.org'),

('whopper.nu'),

('lala.com');

INSERT INTO aliases (mail,destination) VALUES

('@lala.com','@whupper.nu'),

('@mail.blobber.org','@blobber.org'),

('[email protected]','postmaster@localhost'),

('[email protected]','abuse@localhost'),

('[email protected]','postmaster@localhost'),

('[email protected]','abuse@localhost');  

INSERT INTO users (id,name,maildir,crypt) VALUES

('[email protected]','xandros','xandros/', encrypt('apassword') ),

('[email protected]','vivita','vivita/', encrypt('anotherpassword') );

INSERT INTO aliases (mail,destination) VALUES

('[email protected]','[email protected]'),

('[email protected]','[email protected]');  

INSERT INTO aliases (mail,destination) VALUES

('@whopper.nu','[email protected]');

INSERT INTO aliases (mail,destination) VALUES

('[email protected]','[email protected]');

Page 22 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011http://www.esdebian.org/wiki/instalacion-configuracion-postfix-debianubuntu

5/8/2018 Www.esdebian.org Wiki Instalacion-configuracion-postfix - slidepdf.com

http://slidepdf.com/reader/full/wwwesdebianorg-wiki-instalacion-configuracion-postfix 23/23

p g g p 

A continuación, busca "[email protected]" y encuentra uno, cuyo destino es el mismo que el correo, por es el destino final.

Page 23 of 23Instalación y Configuración de un Servidor de Correo en GNU/Linux (Postfix)

18/07/2011htt // d bi / iki/i t l i fi i tfi d bi b t