Vous êtes sur la page 1sur 47

Instalando un server de correo en Debian Lenny 5.

0 con:
• Apache2
• php5
• Openldap
• Postfix
• Cyrus-imap
• Sieve
• TLS
• LMTP
• Amavisd-new
• SpamAssassin
• Clamv
• Mailman
• Squirrelmail
• Avelsieve
• Saslauthd
• bind9

(Avelsieve(39) (SIEVE Mail Filters Plugin for SquirrelMail) es un plugin para SquirrelMail(40) que permite
crear scripts hechos con Sieve en un servidor Cyrus IMAP que tenga habilitado el soporte para dicho lenguaje
(Tim's SIEVE daemon). Avelsieve es parte de Cyrusmaster(41), una herramienta de administración de Cyrus
basada en Web. Debería proporcionar una interfaz similar a la de los filtros de usuario a los administradores y
personal de soporte técnico. )

En esta guía no vamos a explicar como instalar un sistema debian, supondré que ya tenemos instalado debian
Lenny 5.0 en nuestro servidor, usando para ello el CD1 de la instalación y hecho una instalación mínima.
Bueno comencemos entonces.

Primeramente vamos a verificar algunas cosas en nuestro sistema debian que acabamos de instalar.
Comenzamos verificando los ficheros:

• /etc/hosts
• /etc/mailname
• /etc/hostname
• /etc/resolv.conf
• /etc/network/interfaces
• /etc/apt/sources.list

Ah! como información adicional vamos utilizar los siguientes datos:

• Nombre del servidor: delta


• Dominio: pri.org.cu
• Dirección IP: 192.168.0.2
• Máscara de Red: 255.255.255.0
• Dirección de RED: 192.168.0.0
• Broadcast: 192.168.0.255
• Gateway: 192.168.0.1
• Servidor DNS: 192.168.0.2
Verifiquemos que en el fichero /etc/hosts aparezcan estas líneas:

# nano /etc/hosts

127.0.0.1 localhost,localdomain localhost


192.168.0.2 delta.pri.org.cu delta

Verificamos el fichero /etc/mailname

# nano /etc/mailname

pri.org.cu

Verificamos el fichero /etc/hostname

# nano /etc/hostname

delta.pri.org.cu

Verificamos el /etc/resolv.conf

# nano /etc/resolv.conf

search pri.org.cu
nameserver 192.168.0.2

Nota: En este momento tendremos que usar como servidor DNS el de nuestro ISP o proveedor de servicios,
ya que el DNS de nuestra red aun no se ha instalado. Esto es solo necesario si vamos a usar un repositorio en
Internet para instalar nuestro equipo, si contamos con dicho repositorio localmente en una partición del disco
duro de esta misma PC que estamos instalando, pues entonces no necesitaremos in DNS de momento.

Ahora verificamos el fichero /etc/network/interfaces

# nano /etc/network/interfaces

# The loopback network interface


auto lo
iface lo inet loopback

# The primary network interface


auto eth0
allow-hotplug eth0
iface eth0 inet static
address 192.168.0.2
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
# dns-* options are implemented by the resolvconf package, if installed
dns-nameservers 192.168.0.2
dns-search pri.org.cu
Por ultimo verificamos el /etc/apt/sources.list donde debemos especificar el mirror de debian que usaremos
para instalar todo el software que utilizaremos.

# nano /etc/apt/sources.list

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


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

Esto es en caso que vayamos a utilizar un repositorio de internet, por lo que tenemos que tener especificado en
el fichero /etc/resolv.conf un DNS que sea capaz de resolvernos los nombres de máquinas: ftp.debian.org y
security.debian.org ya que de lo contrario no podremos acceder a dichero repositorio, también como es lógico
tendremos que tener un servidor Proxy en nuestra red que nos de acceso a Internet para poder usar dicho
repositorio en caso que estemos usando direcciones ip privadas dentro de una red local que no esta
directamente conectada a Internet. Si tenemos direcciones ip públicas, pues todo es una felicidad :) pues no
necesitaremos de un Proxy para acceder a Internet. Si se usa un Proxy para salir a Internet puedes debemos
crear el fichero /etc/apt/apt.conf lo creamos con el comando:

# touch /etc/apt/apt.conf

Lo editamos y le escribimos en el interior lo siguiente:

Acquire::http::Proxy “http://usuario:contraseña@proxy.tudominio.cu:3128”;

La configuración del sources.list puede variar en dependencia de la localización o ubicación del repositorio de
debian que vayamos a utilizar para nuestra instalación y del protocolo que se haya utilizado para hacerlo
accesible a toda la RED, estos son 2 ejemplos:

# nano /etc/apt/sources.list

deb http://debian.tudominio.cu/debian lenny main contrib non-free


deb http://debian.tudominio.cu/debian-security lenny/updates main contrib non-free

Nota: En este caso se supone que se dispone en la red local ya de un repositorio accesible vía http y
empleando el nombre o recurso de RED: debian.tudominio.cu en caso de estar por ftp las 2 líneas quedarían
así:

deb ftp://debian.tudominio.cu/debian lenny main contrib non-free


deb ftp://debian.tudominio.cu/debian-security lenny/updates main contrib-non-free

Si el repositorio lo tenemos en un disco externo USB y lo vamos a usar desde ahí para la instalación entonces
debemos montar dicho disco, suponiendo que nuestro Server tiene un disco SCSI debian ve dicho dispositivo
como /dev/sda por lo que el disco usb donde tenemos el repo de debian sería /dev/sdb procedemos a montarlo
por ejemplo en el directorio /mnt vamos asumir que el disco externo tiene una sola partición en ext3

# mount –t ext3 /dev/sdb1 /mnt

Asumimos también que el repositorio esta en la raíz del disco, es decir que no este metido dentro de ningún
directorio, entonces el sources.list quedaría así:

# nano /etc/apt/sources.list
deb file:///mnt/debian lenny main contrib non-free
deb file:///mnt/debian-security lenny/updates main contrib non-free

Bueno después de todas estas explicaciones sobre el sources.list finalmente.

Salvamos con CTROL+O y salimos con CTROL+X

Actualizamos los índices.

# aptitude update

Y hacemos un upgrade al Server.

# aptitude dist-upgrade

Instalamos ssh y Midnight Commander

# aptitude install mc ssh

Instalamos rcconf

# aptitude install rcconf

exim4 es el servidor de correo que viene por defecto con debian, al igual que en freebsd, por lo tanto podemos
detener el servicio para que no este en ejecución si no lo vamos a usar. Ejecutamos desde la consola como
root el comando:

# rcconf

Buscamos en la lista de servicios exim4 y lo desmarcamos, damos aceptar y luego detenemos el servicio:

# invoke-rc.d exim4 stop

Desintalamos exim4

# update-rc.d -f exim4 remove


# aptitude remove --purge exim4 exim4-base exim4-config exim4-daemon-light

Al desinstalar exim4 debian nos pedirá que le indiquemos el MTA que sustituirá al exim4, no se porque tiene
que tener uno obligatoriamente instalado, pero bueno nos va preguntando por los disponibles y escojo postfix
que es el que voy a utilizar finalmente y si nos pregunta algo al momento de instalar postfix, escogemos la
opción: Sin configuración.

Instalamos compilador de C++

# aptitude install make db4.6-util libdb4.6-dev


# aptitude install build-essential

Cambiando idioma a español.

# dpkg-reconfigure locales
Cuando debconf nos pregunte que locales queremos generar marcamos ALL LOCALE. Después nos pregunta
cual queremos por defecto para nuestro sistema seleccionamos es_ES.UTF8. Esperamos que se terminen de
generar los locales. Cuando termine Salimos del sistema y volvemos a entrar. Ya nuestro sistema esta en
idioma español.

Instalamos otros paquetes:

# aptitude install iptraf nmap unzip unrar zip

Instalamos el servidor ldap SLAPD

# aptitude install slapd ldap-utils

Al ejecutar este domando nos pedirá la contraseña del administrador de ldap, luego corremos este comando:

# dpkg-reconfigure slapd

Aquí debemos contestar una serie de preguntas como:

1- Omitir la configuración de OpenLDAP: No


2- Nombre de dominio: pri.org.cu
3- Nombre de organización: pri.org.cu
4- Contraseña del admin: passoword
5- Confirme la contraseña del admin: password
6- Motor de base de datos a utilizar: BDB
7- Borrar la base de datos al purgar slapd: No
8- Mover la base de datos antigua: Si
9- Permitir LDAP v2: Si

Ahora, para probar que el servicio de slapd está arriba y funcionando utilizamos el comando:

# ldapsearch -x -b "dc=pri,dc=org,dc=cu"

# extended LDIF
#
# LDAPv3
# base <dc=pri,dc=org,dc=cu> with scope subtree
# filter: (objectclass=*)
# requesting: ALL
#

# pri.org.cu
dn: dc=pri,dc=org,dc=cu
objectClass: top
objectClass: dcObject
objectClass: organization
o: pri.org.cu
dc: pri

# admin, pri.org.cu
dn: cn=admin,dc=pri,dc=org,dc=cu
objectClass: simpleSecurityObject
objectClass: organizationalRole
cn: admin
description: LDAP administrator

# search result
search: 2
result: 0 Success

# numResponses: 3
# numEntries: 2

Instalamos apache2

# aptitude install apache2 apache2-doc

Instalamos mysql

# aptitude install mysql-server-5.0 mysql-client-5.0 libmysqlclient15-dev

Instalamos php5, dependencias de gosa y módulos de php5 para ldap y mysql

# aptitude install php5 libapache2-mod-php5 php5-gd php5-cli php5-imap php5-ldap php5-mhash \


php5-mysql php5-imagick imagemagick graphicsmagick-imagemagick-compat php5-recode \
wwwconfig-common smarty-gettext libcrypt-smbhash-perl php-pear php-db php5-snmp fping smarty

Nota: El caracter \ al final indica que las 3 líneas son una sola, es decir todo es una misma línea.

Instalamos phpldapadmin

# aptitude install phpldapadmin

Para acceder a la Web de phpldapadmin, usamos alguna de las URL siguientes:

http://192.168.0.2/phpldapadmin

Para acceder en la web usamos:

login: cn=admin,dc=pri,dc=org,dc=cu
Clave: ******

Instalamos gosa

# aptitude install gosa gosa-schema

Una vez instalado gosa, podemos acceder a su interfaz Web para su configuración por:

http://delta.pri.org.cu/gosa

Pero antes de continuar, debemos asegurarnos que en el fichero de configuración de ldap tenemos
especificados todos estos esquemas y en este mismo orden, por lo tanto, vamos a editar dicho fichero:
# nano /etc/ldap/slapd.conf

# Schema and objectClass definitions


include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/openldap.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/misc.schema
include /etc/ldap/schema/samba3.schema
include /etc/ldap/schema/gosystem.schema
include /etc/ldap/schema/gofon.schema
include /etc/ldap/schema/goto.schema
include /etc/ldap/schema/gofax.schema
include /etc/ldap/schema/goserver.schema
include /etc/ldap/schema/gosa+samba3.schema
include /etc/ldap/schema/goto-mime.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/pureftpd.schema
include /etc/ldap/schema/nagios.schema
include /etc/ldap/schema/trust.schema
include /etc/ldap/schema/rfc2739.schema
include /etc/ldap/schema/kolab2.schema
include /etc/ldap/schema/phpgwaccount.schema
include /etc/ldap/schema/dhcp.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dns.schema

Aclaro que para incluir todos estos esquemas a nuestro servidor ldap, deben existir dichos esquemas en el
directorio /etc/ldap/schema por lo que debemos buscarlos, copiarlos para este directorio y asegurarnos que
queden con los mismos permisos que tienen los esquemas que ya aparecen ahí ok!

Para asegurarnos que los esquemas queden con los permisos correctos usamos estos 2 comandos:

# cd /etc/ldap/schema
# find . -type d -exec chown root.openldap {} \;
# find . -type f -exec chown root.openldap {} \;
# find . -type d -exec chmod 750 {} \;
# find . -type f -exec chmod 640 {} \;

Agregamos también al fichero slapd.conf estas líneas:

# nano /etc/ldap/slapd.conf

# Habilitar el chequeo de esquemas.


# schemacheck on

loglevel -1

# Indexing options for database #1


index default sub
index uid,mail eq
index gosaMailAlternateAddress,gosaMailForwardingAddress eq
index cn,sn,givenName,ou pres,eq,sub
index objectClass pres,eq
index uidNumber,gidNumber,memberuid eq
index gosaSubtreeACL,gosaObject,gosaUser pres,eq

# Indexing for Samba 3


index sambaSID eq
index sambaPrimaryGroupSID eq
index sambaDomainName eq

# Indexing for DHCP


index dhcpHWAddress eq
index dhcpClassData eq

# Indexing for DNS


index zoneName eq
index relativeDomainName eq

Salvamos el ficheros y salimos.

Reiniciamos ldap

# /etc/init.d/slapd restart

Luego vamos a la web de gosa y procedemos a su configuración. Como nos indica en el 1er paso, debemos
crear este fichero:

# echo -n 4ab0c6aa1b931d18808487151dcc824e > /tmp/gosa.auth

Nota: No copie este comando del tutorial, tómelo de la Web de gosa ya que la numeración no es siempre la
misma.

Luego pulsamos el botón siguiente. La próxima página debemos escoger el idioma, seleccionamos español y
seguimos.

En el próximo paso, gosa comprobará algunos paquetes y parámetros necesarios para trabajar, en el caso de
Debian Etch había que modificar algunos valores en el php.ini pero en Debian Lenny esto no es necesario, así
que nos saltamos este paso.

Reiniciamos Apache:

# invoke-rc.d apache2 restart

Le damos actualizar a la Web de gosa y ya no debe darnos el error. Damos siguiente y viene la licencia la cual
debemos aceptar desde luego para poder continuar.

El próximo paso es la conectividad a LDAP:


Conexión LDAP

Nombre de la localización: MailServer


Conectar a la URL: ldap://localhost:389
Conexión TLS: No
Base: dc=pri,dc=org,dc=cu

DN del administrador: cn=admin,dc=pri,dc=org,dc=cu


Contraseña de administrador: *****

La opción que dice: Añadir automáticamente la base LDAP al DN administrador la dejamos sin marcar.

Usar grupos conformes a rfc2307bis: No

Pulsamos siguiente.

En la otra página nos aparecerá:

Parámetros específicos del esquema

Activar validación de esquema cuando se registre: Si

Pulsamos continuar.

En el próximo paso, solo cambio estas opciones, (las demás las dejo como están)

Atributo 'dn' de los usuarios: uid


Algoritmo de codificación de contraseña: md5

Damos siguiente y en el próximo paso, solo cambio estas opciones:

Zona horaria: America/Havana (DST)


Método de correo: cyrus (uid)
Usa estilo Cyrus UNIX: Si

Pulsamos Siguiente.

En la próxima página lo dejo todo como esta.

Pulsamos Siguiente.

En esta página debemos crear el usuario administrador para gosa, el cual lo llamaremos admin, igual que el
administrador de ldap, pero uno no tiene nada que ver con el otro, incluso pueden tener claves distintas si
queremos y si quieres puedes escoger otro nombre de usuario para el administrador de gosa OK!

Pulsamos el botón: Crear que aparece en la opción:

Comprobando súper administrador:

Especificamos el nombre de usuario y una clave, en mi caso:


Nombre: System administrator
Identificador (ID) de usuario: admin
Contraseña: *****
Contraseña (de nuevo): *****

Y pulsamos el botón aplicar.

Ahora ya podemos seguir adelante.

Pulsamos continuar.

En la siguiente página: Avisos y sugerencias son cosas opcionales, de modo que no haré nada de eso,
desmarco todas las opciones seleccionadas con palomas y marco No donde me permita escoger y voy a la
siguiente página.

Pulso continuar.

La siguiente página ya es el paso final, aquí debemos descargar el fichero de configuración de gosa que se va
a generar con todas las opciones que hemos ido seleccionando paso a paso, para ello pulsamos el botón:

Descargar configuración.

Bien, una vez descargado el fichero gosa.conf debemos copiarlo para nuestro servidor para: /etc/gosa luego
para asegurarnos que quede con los permisos correctos corremos los siguientes comandos:

# chown root.www-data /etc/gosa/gosa.conf


# chmod 640 /etc/gosa/gosa.conf

Una vez hecho esto ya podemos finalizar pulsamos por última vez el botón: Continuar y ya está lista la
interfaz Web de gosa que será lo que usaremos para gestionar las cuentas de usuarios de nuestro servidor de
correo.

Bueno antes de ponernos a crear un VirtualHost independiente para gosa y dotarlo de soporte SSL para mayor
seguridad, vamos a instalar y configurar un servidor DNS en este Server para el dominio: pri.org.cu

Instalamos bind9

# aptitude install bind9 bind9-doc bind9-host dnsutils

Ahora editamos el fichero /etc/bind/named.conf.local

# nano /etc/bind/named.conf.local

//Zona pri.org.cu
zone "pri.org.cu" {
type master;
file "/var/cache/bind/pri.org.cu";
};

//Zona inversa para la RED 192.168.0.0/24


zone "0.168.192.in-addr.arpa" {
type master;
file "/var/cache/bind/0.168.192.in-addr.arpa";
};

Salvamos y salimos.

Creamos los ficheros de las zonas (directa e inversa) y le ponemos los permisos.

# touch /var/cache/bind/pri.org.cu
# touch /var/cache/bind/0.168.192.in-addr.arpa

# chown bind.root /var/cache/bind/pri.org.cu


# chown bind.root /var/cache/bind/0.168.192.in-addr.arpa
# chmod 640 /var/cache/bind/pri.org.cu
# chmod 640 /var/cache/bind/0.168.192.in-addr.arpa

Editamos el fichero de la zona directa:

# nano /var/cache/bind/pri.org.cu

$ORIGIN pri.org.cu.
$TTL 86400
@ 21600 IN SOA delta.pri.org.cu. root.pri.org.cu. ( 2009030801 3600 3600 3600000 86400 )
21600 IN NS delta.pri.org.cu.

delta 21600 IN A 192.168.0.2

gosa-admin 21600 IN CNAME delta


correo 21600 IN CNAME delta
listas 21600 IN CNAME delta
ldap-admin 21600 IN CNAME delta
php-admin 21600 IN CNAME delta

Salvamos y salimos.

Editamos el fichero de la zona inversa.

# nano /var/cache/bind/222.168.192.in-addr.arpa

$ttl 86400
@ IN SOA delta.pri.org.cu. root.pri.org.cu. (
2009030801
3600
3600
604800
1200 )
@ IN NS delta.pri.org.cu.

0 IN PTR delta.pri.org.cu.

Ahora debemos editar el fichero /etc/bind/named.conf.options para especificarle a nuestro servidor DNS a que
servidor DNS reenviará aquellas consultas DNS que el no sea capaz de resolver.
# nano /etc/bind/named.conf.options

Buscamos estas líneas que aparecen comentadas:

// forwarders {
// 0.0.0.0;
// };

y las dejamos así:

forwarders { 192.168.24.4; 192.168.24.6; };

Nota: Aquí deben poner los DNS de su ISP.

Salvamos y salimos.

Reiniciamos el bind9.

# invoke-rc.d bind9 restart

Miramos en syslog a ver si hay algún error.

# tail -f /var/log/syslog

Debemos ver algo como esto:

Mar 8 19:28:45 delta named[7660]: shutting down: flushing changes


Mar 8 19:28:45 delta named[7660]: stopping command channel on 127.0.0.1#953
Mar 8 19:28:45 delta named[7660]: stopping command channel on ::1#953
Mar 8 19:28:45 delta named[7660]: no longer listening on ::#53
Mar 8 19:28:45 delta named[7660]: no longer listening on 127.0.0.1#53
Mar 8 19:28:45 delta named[7660]: no longer listening on 192.168.0.2#53
Mar 8 19:28:45 delta named[7660]: exiting
Mar 8 19:28:47 delta named[7750]: starting BIND 9.3.4-P1.1 -u bind
Mar 8 19:28:47 delta named[7750]: found 1 CPU, using 1 worker thread
Mar 8 19:28:47 delta named[7750]: loading configuration from '/etc/bind/named.conf'
Mar 8 19:28:47 delta named[7750]: listening on IPv6 interfaces, port 53
Mar 8 19:28:47 delta named[7750]: listening on IPv4 interface lo, 127.0.0.1#53
Mar 8 19:28:47 delta named[7750]: listening on IPv4 interface eth0, 192.168.0.2#53
Mar 8 19:28:47 delta named[7750]: command channel listening on 127.0.0.1#953
Mar 8 19:28:47 delta named[7750]: command channel listening on ::1#953
Mar 8 19:28:47 delta named[7750]: zone 0.in-addr.arpa/IN: loaded serial 1
Mar 8 19:28:47 delta named[7750]: zone 127.in-addr.arpa/IN: loaded serial 1
Mar 8 19:28:47 delta named[7750]: zone 0.168.192.in-addr.arpa/IN: loaded serial 2009030801
Mar 8 19:28:47 delta named[7750]: zone 255.in-addr.arpa/IN: loaded serial 1
Mar 8 19:28:47 delta named[7750]: zone pri.org.cu/IN: loaded serial 2009030801
Mar 8 19:28:47 delta named[7750]: zone localhost/IN: loaded serial 1
Mar 8 19:28:47 delta named[7750]: running

Ahora vamos a comprobar si nuestro DNS funciona, para eso lo primero es llegarnos al fichero
/etc/resolv.conf
# nano /etc/resolv.conf

Cambiamos el servidor DNS que aparece ahí y especificamos la ip de nuestro propio server que es donde
acabamos de configurar el DNS. Debe quedar así:

search pri.org.cu
nameserver 192.168.0.2

Salvamos y salimos.

Ahora usaremos la herramienta nslookup para consultar nuestro dns.

Desde la consola y como root ejecutamos el comando:

# nslookup listas.pri.org.cu

Y si todo ha salido bien debemos obtener:

delta:/home# nslookup listas.pri.org.cu


Server: 192.168.0.2
Address: 192.168.0.2#53

listas.pri.org.cu canonical name = delta.pri.org.cu.


Name: delta.pri.org.cu
Address: 192.168.0.2

Podemos también hacer pruebas con nombres fuera de nuestra RED como por ejemplo:

delta:/home# nslookup www.lawebdelprogramador.net


Server: 192.168.0.2
Address: 192.168.0.2#53

Non-authoritative answer:
www.lawebdelprogramador.net canonical name = lawebdelprogramador.net.
Name: lawebdelprogramador.net
Address: 213.149.241.33

Como vemos nuestro servidor DNS funciona bien, resolviendo nombre dentro del nuestro dominio como
reenviando la consultas que no pertenecen al dominio pri.org.cu

Ahora vamos a modificar algunas opciones en apache2 y crear un VirtualHost para la Web de gosa.

Editamos el fichero de configuración: /etc/apache2/apache2.conf

# nano /etc/apache2/conf.d/security

Buscamos la línea:

ServerTokens Full

Y la sustituimos por esta:


ServerTokens Prod

Salvamos el fichero y salimos.

Editamos el fichero /etc/apache2/conf.d/charset

# nano /etc/apache2/conf.d/charset

Descomentamos la línea:

#AddDefaultCharset UTF-8

y debemos dejarla de esta manera:

AddDefaultCharset ISO-8859-1

Salvamos el fichero y salimos.

Ahora editamos el fichero /etc/apache2/apache2.conf

Busco las siguientes líneas y las descomento todas y que queden de esta manera:

# nano /etc/apache2/apache2.conf

Alias /error/ "/usr/share/apache2/error/"

<Directory "/usr/share/apache2/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority es cs de en fr it nl sv pt-br ro
ForceLanguagePriority Prefer Fallback
</Directory>

ErrorDocument 400 /error/HTTP_BAD_REQUEST.html.var


ErrorDocument 401 /error/HTTP_UNAUTHORIZED.html.var
ErrorDocument 403 /error/HTTP_FORBIDDEN.html.var
ErrorDocument 404 /error/HTTP_NOT_FOUND.html.var
ErrorDocument 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var
ErrorDocument 408 /error/HTTP_REQUEST_TIME_OUT.html.var
ErrorDocument 410 /error/HTTP_GONE.html.var
ErrorDocument 411 /error/HTTP_LENGTH_REQUIRED.html.var
ErrorDocument 412 /error/HTTP_PRECONDITION_FAILED.html.var
ErrorDocument 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var
ErrorDocument 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var
ErrorDocument 415 /error/HTTP_UNSUPPORTED_MEDIA_TYPE.html.var
ErrorDocument 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var
ErrorDocument 501 /error/HTTP_NOT_IMPLEMENTED.html.var
ErrorDocument 502 /error/HTTP_BAD_GATEWAY.html.var
ErrorDocument 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var
ErrorDocument 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

Salvamos el fichero y salimos.

Ahora agregamos el modulo "include" a la configuración del servidor Web:

# a2enmod include

Ahora agregamos el modulo "ssl" a la configuración del servidor Web:

# a2enmod ssl

Activamos el modulo rewrite de apache ejecutamos:

# a2enmod rewrite

Editamos el fichero de configuración /etc/apache2/ports.conf

# nano /etc/apache2/ports.conf

Buscamos la linea:

NameVirtualHost *:80

Y la cambiamos por:

NameVirtualHost 192.168.0.2:80

Salvamos el fichero y salimos.

Editamos el fichero

# nano /etc/apache2/sites-available/default

y cambiamos la línea:

<VirtualHost *:80>

por:

<VirtualHost 192.168.0.2:80>

Reiniciamos Apache2

# invoke-rc.d apache2 restart

Ahora vamos al final del VirtualHost por defecto y agregamos un nuevo VirtualHost para gosa.
<VirtualHost 192.168.0.2:80>
ServerName gosa-admin.pri.org.cu
ServerAdmin admin@pri.org.cu
DocumentRoot "/usr/share/gosa/html"

<Directory /usr/share/gosa/html/>
Options +FollowSymLinks
AllowOverride None
order allow,deny
allow from 192.168.0.0/24
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag short_open_tag On
php_flag register_globals Off
php_flag register_argc_argv On
php_flag track_vars On
# Estas opciones son necesarias para algunas locales
php_value mbstring.func_overload 0
php_value include_path .
DirectoryIndex index.php
</IfModule>
</Directory>

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# Reescribimos todas las peticiones a este sitio a una conexión segura es decir usando SSl
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} gosa-admin.pri.org.cu
RewriteRule (.*) https://gosa-admin.pri.org.cu$1 [R=301,L]

ErrorLog /var/log/apache2/gosa-admin-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/gosa-admin-access.log combined
ServerSignature On
</VirtualHost>

Hemos agregado un VirtualHost para gosa, pero ahora debemos añadir otro con soporte SSL, dejamos un
espacio y ponemos a continuación el otro VirtualHost.
# VirtualHost con soporte SSL
<VirtualHost 192.168.0.2:443>
ServerName gosa-admin.pri.org.cu
ServerAdmin admin@pri.org.cu
DocumentRoot "/usr/share/gosa/html/"

<Directory /usr/share/gosa/html>
Options +FollowSymLinks
AllowOverride None
order allow,deny
allow from 192.168.0.0/16
<IfModule mod_php4.c>
AddType application/x-httpd-php .php
php_flag magic_quotes_gpc Off
php_flag short_open_tag On
php_flag register_globals Off
php_flag register_argc_argv On
php_flag track_vars On
# Estas opciones son necesarias para algunas locales
php_value mbstring.func_overload 0
php_value include_path .
DirectoryIndex index.php
</IfModule>
</Directory>

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/gosa-admin.pem

ErrorLog /var/log/apache2/gosa-admin-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/gosa-admin-access.log combined
ServerSignature On
</VirtualHost>

Salvamos y salimos.

Ahora vamos a crear el certificado para dicho sitio:

# mkdir /etc/apache2/ssl

Generamos el certificado y le ponemos los permisos.

# openssl req -newkey rsa:1024 -x509 -nodes -out /etc/apache2/ssl/gosa-admin.pem -keyout


/etc/apache2/ssl/gosa-admin.pem -days 3650

# chown root:www-data /etc/apache2/ssl/gosa-admin.pem


# chmod 640 /etc/apache2/ssl/gosa-admin.pem
# rm /etc/apache2/conf.d/gosa.conf

Ahora debemos activar SSL en apache.

# a2ensite default-ssl

Reiniciamos apache2

# /etc/init.d/apache2 restart

Y ya podemos acceder a la Web de gosa mediante la URL:

http://gosa-admin.pri.org.cu

Debe redireccionar automáticamente dicha petición http hacia https.

Ahora vamos a instalar saslauthd

# aptitude install sasl2-bin libsasl2-modules-ldap

Agregamos el sockect de saslauthd dentro del chroot de postfix además cambiamos el mecanismo de
autenticación.

# nano /etc/default/saslauthd

Cambiamos:

START=no

por

START=yes

Cambiamos:

MECHANISMS="pam"

por

MECHANISMS="ldap"

Comentamos:

OPTIONS="-c"

Agregamos:

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

Salvamos el fichero.
Accedemos a la web de phpldapadmin y creamos una unidad organizacional llamada (servicios) donde
crearemos un usuario con el cual autenticara saslauthd en el ldap.

ou=servicios,dc=pri,dc=org,dc=cu

Dentro de esta unidad organizacional creamos un usuario llamado: saslauthd Como un Simple Security
Object. Le ponemos una clave al usuario saslauthd y escogemos md5 como formato para la clave.

Además debemos darle permisos de lectura al usuario saslauthd a los atributos


(userPassword,shadowLastChange) en el fichero de configuración de ldap.

Editamos: /etc/ldap/slapd.conf buscamos la sección dentro de las acl las cuales restrigen el acceso a los
atributos (userPassword,shadowLastChange).

# nano /etc/ldap/slapd.conf

Buscamos estas líneas:

access to attrs=userPassword,shadowLastChange
by dn="cn=admin,dc=pri,dc=org,dc=cu" write
by anonymous auth
by self write
by * none

Y agregamos una nueva línea:

access to attrs=userPassword,shadowLastChange
by dn="cn=admin,,dc=pri,dc=org,dc=cu" write
by dn="uid=saslauthd,ou=servicios,dc=pri,dc=org,dc=cu" read
by anonymous auth
by self write
by * none

Salvamos y reiniciamos ldap.

# invoke-rc.d slapd restart

Creamos el Fichero /etc/saslauthd.conf y le agregamos las siguientes líneas:

# touch /etc/saslauthd.conf

# nano /etc/saslauthd.conf

Le agregamos:

ldap_servers: ldap://localhost/
ldap_bind_dn: uid=saslauthd,ou=servicios,dc=pri,dc=org,dc=cu
ldap_bind_pw: clave del user saslauthd
ldap_version: 3
ldap_timeout: 5
ldap_time_limit: 5
#ldap_deref: <none> <search|find|always|never>
#ldap_referrals: <no>
#ldap_restart: <yes>
ldap_cache_ttl: 0
ldap_cache_mem: 0
ldap_scope: <base>
ldap_search_base: dc=pri,dc=org,dc=cu
ldap_filter: (|(uid=%u)(cn=%u))
ldap_debug: 9
#ldap_tls_cacert_file: /etc/saslauthd.pem
#ldap_tls_cacert_dir: /etc/saslauthd.pem
#ldap_tls_ciphers: HIGH:MEDIUM:SSLv2:RSA
#ldap_tls_cert: /etc/saslauthd.pem
#ldap_tls_key: <none>

Salavos el fichero y salimos.

Cambiamos los permisos del fichero /etc/saslauthd.conf a 640 por root y 400 por el usuario sasl.

# chmod 640 /etc/saslauthd.conf

# chown root:sasl /etc/saslauthd.conf

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

Al cambiar de lugar el sock de saslauthd debemos crear este enlace simbólico ya que cuando intentemos
configurar a cyrus-imap para que autentique contra sasl, cyrus buscara el sock de sasl en el lugar que viene
originalmente. No he encontrado como indicarle a cyrus-imap que busque el sock de sasl en otra ruta.

# rmdir /var/run/saslauthd

# ln -s /var/spool/postfix/var/run/saslauthd/ /var/run/saslauthd

# chown root.sasl /var/spool/postfix/var/run/saslauthd

# dpkg-statoverride --add root sasl 710 /var/spool/postfix/var/run/saslauthd

# dpkg-statoverride --list /var/spool/postfix/var/run/saslauthd root sasl 710


/var/spool/postfix/var/run/saslauthd

Reiniciamos saslauthd

# invoke-rc.d saslauthd restart

Nos creamos un usuario desde Gosa en mi caso lo voy a llamar pepe con password linux para probar
saslauthd. Y probamos la autenticación.

Ahora probaremos con este comando sasl si esta autenticando bien contra ldap.

# testsaslauthd -u pepe -p linux -f /var/spool/postfix/var/run/saslauthd/mux

Si todo fue bien debemos obtener un mensaje como este:


0: OK "Success."

Dentro de la unidad organizacional "servicios" creamos un usuario llamado postfix Como un Simple Security
Object. Este será el usuario que usaremos para hacer todas las consultas LDAP desde postfix.

Instalando Postfix

# aptitude install postfix postfix-ldap postfix-pcre postfix-doc

Cuando debconf nos pregunta le decimos (Sin Configuración)

Agregamos el usuario postfix al grupo sasl y al grupo mail

# adduser postfix sasl

# adduser postfix mail

Comenzamos a configurar postfix creamos el fichero de configuración main.cf en caso de que no exista y le
ponemos los permisos adecuados.

# touch /etc/postfix/main.cf

# chown root:postfix /etc/postfix/main.cf && chmod 644 /etc/postfix/main.cf

Ahora lo editamos lo dejamos de esta manera. Si el archivo ya existía y ya contiene líneas en su interior, pues
o las comentamos todas o las eliminamos, si lo desea puede hacer un respaldo de dicho fichero antes de
eliminar todo su contenido.

# nano /etc/postfix/main.cf

Agregamos:

# Transport Layer Security


smtpd_tls_security_level = may
smtp_tls_security_level = may
smtpd_enforce_tls = no
smtp_enforce_tls = yes
smtpd_tls_cert_file=/etc/postfix/tls/server.pem
smtpd_tls_key_file=/etc/postfix/tls/server.pem
smtpd_tls_CAfile = /etc/postfix/tls/server.pem
smtpd_tls_loglevel = 3
smtp_tls_loglevel = 3
smtpd_tls_received_header = yes
smtp_starttls_timeout = 180s
smtpd_starttls_timeout = 180s
smtp_tls_session_cache_timeout = 600s
smtpd_tls_session_cache_timeout = 600s
tls_random_source = dev:/dev/urandom
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
#smtpd_tls_auth_only = yes
smtpd_banner = Ready
local_destination_concurrency_limit = 5
default_destination_concurrency_limit = 20
smtpd_error_sleep_time = 0
disable_vrfy_command = yes
queue_run_delay = 300s
maximal_queue_lifetime = 5d
delay_warning_time = 1h
bounce_queue_lifetime = 1d
smtpd_recipient_limit = 50
smtpd_delay_reject=yes

# Cliente SMTP
smtp_mx_address_limit = 0
smtp_connect_timeout = 30s
smtp_helo_timeout = 60s
smtp_rcpt_timeout = 240s
smtp_quit_timeout = 240s
smtp_rset_timeout = 20s
smtp_skip_4xx_greeting = yes
smtp_skip_5xx_greeting = yes

# Cuantos errores en una transacción smtp puede cometer un cliente antes de que postfix comience a demorar
todas sus respuestas.
smtpd_soft_error_limit = 1500
# Cuantos errores en una transacción smtp puede cometer un cliente antes de ser desconectado.
smtpd_hard_error_limit = 2000

#Para Mailman
owner_request_special = no

# Deshabilitar peticiones DNS para smtp y lmtp


disable_dns_lookups = yes

# Chequeo de Headers
#mime_header_checks=pcre:/etc/postfix/body_checks

# Interfaces de red Donde escucharemos


inet_interfaces = all

# Protocolo ipv6 o ipv4 o ambos


inet_protocols = ipv4

myhostname = delta.pri.org.cu
mydomain = pri.org.cu
myorigin = $mydomain

mynetworks_style = host
mynetworks = 127.0.0.1
mydestination = 127.0.0.1/32, localhost, $mydomain, $myhostname
proxy_read_maps = proxy:ldap:/etc/postfix/ldap/ldap-local-recipients.cf,
proxy:ldap:/etc/postfix/ldap/ldap-login-mismatch.cf,
proxy:ldap:/etc/postfix/ldap/ldap-virtual-forward.cf,
proxy:ldap:/etc/postfix/ldap/ldap-sender-access.cf
proxy:ldap:/etc/postfix/ldap/ldap-recipient-access.cf

unknown_local_recipient_reject_code = 550
show_user_unknown_table_name = yes

transport_maps = hash:/etc/postfix/transport
relayhost = [mx1.org.cu]
defer_transport = smtp

# Alias Locales
alias_database = hash:/etc/aliases
alias_maps = $alias_database
#alias_maps = $alias_database, hash:/var/lib/mailman/data/aliases

recipient_delimiter = +

mailbox_transport = lmtp:unix:/var/run/cyrus/socket/lmtp
#mailbox_transport = cyrus

debug_peer_level = 9

#virtual_alias_maps = proxy:ldap:/etc/postfix/ldap/ldap-virtual-forward.cf

# Copia de mensajes por SENDER y RECIPIENT


sender_bcc_maps = hash:/etc/postfix/sender_bcc_maps
recipient_bcc_maps = hash:/etc/postfix/recipient_bcc_maps

local_recipient_maps = $alias_maps, proxy:ldap:/etc/postfix/ldap/ldap-local-recipients.cf

#no permitir mensajes mayores de 2.0MB


message_size_limit = 2048000

#SMTP authentication
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_sasl_authenticated_header = yes
broken_sasl_auth_clients = yes

# Restricciones aplicadas a las conexiones de los clientes


smtpd_clients_restrictions = permit_mynetworks, permit_sasl_authenticated, reject

# Restricciones aplicadas a los comandos EHLO/HELO.


smtpd_helo_restrictions =
reject_invalid_helo_hostname,
# reject_non_fqdn_helo_hostname,
# reject_unknown_helo_hostname,
smtpd_helo_required = yes

# Comprobación que el FROM del email coincida con el usuario autenticado a travez de sasl.
smtpd_sender_login_maps = proxy:ldap:/etc/postfix/ldap/ldap-login-mismatch.cf

# Declaración de la clase que usaremos para controlar la salida internacional.


smtpd_restriction_classes = [IL]
[IL] = check_recipient_access regexp:/etc/postfix/pcre_cu_recipient, check_sender_access
regexp:/etc/postfix/pcre_cu_sender

# Restricciones aplicadas a los comandos MAIL FROM:.


smtpd_sender_restrictions =
check_sender_access proxy:ldap:/etc/postfix/ldap/ldap-sender-access.cf
reject_sender_login_mismatch,
reject_non_fqdn_sender
# reject_unknown_sender_domain,

# Restricciones que se aplican en el contexto del RCPT TO:


smtpd_recipient_restrictions =
check_recipient_access proxy:ldap:/etc/postfix/ldap/ldap-recipient-access.cf
reject_non_fqdn_recipient,
# reject_unknown_recipient_domain,
permit_mynetworks,
permit_sasl_authenticated,
permit_auth_destination,
reject

# Restricciones en el contexto de los comandos DATA.


smtpd_data_restrictions =
reject_unauth_pipelining

Salvamos el fichero y salimos.

Creamos el fichero /etc/postfix/sasl/smtpd.conf

# touch /etc/postfix/sasl/smtpd.conf

# chown root:postfix /etc/postfix/sasl/smtpd.conf

# chmod 640 /etc/postfix/sasl/smtpd.conf

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

Agregamos:

pwcheck_method: saslauthd
mech_list: PLAIN LOGIN
log_level: 3

Salvamos el fichero

Creamos una carpeta con todos los ficheros que contendrán consultas a LDAP
# mkdir /etc/postfix/ldap

# chmod 750 /etc/postfix/ldap && chown root:postfix /etc/postfix/ldap

Creamos el fichero /etc/postfix/ldap/ldap-local-recipients.cf

# touch /etc/postfix/ldap/ldap-local-recipients.cf

# chown root:postfix /etc/postfix/ldap/ldap-local-recipients.cf

# chmod 640 /etc/postfix/ldap/ldap-local-recipients.cf

# nano /etc/postfix/ldap/ldap-local-recipients.cf

Agregamos:

server_host = 127.0.0.1
search_base = ou=people,dc=pri,dc=org,dc=cu
query_filter = (mail=%s)
result_attribute = uid
cache = no
bind = yes
bind_dn = cn=postfix,ou=servicios,dc=pri,dc=org,dc=cu
bind_pw = password

Salvamos el fichero

Nota: En la última línea el password al que se refiere es a la clave que le pusimos al usuario llamado postfix
que creamos desde phpldapadmin dentro de la unidad organizacional llamada: servicios.

Creamos el fichero /etc/postfix/ldap/ldap-login-mismatch.cf

# touch /etc/postfix/ldap/ldap-login-mismatch.cf

# chown root:postfix /etc/postfix/ldap/ldap-login-mismatch.cf

# chmod 640 /etc/postfix/ldap/ldap-login-mismatch.cf

# nano /etc/postfix/ldap/ldap-login-mismatch.cf

Agregamos:

server_host = 127.0.0.1
search_base = ou=people,dc=pri,dc=org,dc=cu
query_filter = (mail=%s)
result_attribute = uid
cache = no
bind = yes
bind_dn = cn=postfix,ou=servicios,dc=pri,dc=org,dc=cu
bind_pw = password
Salvamos el fichero

Nota: En la última línea el password al que se refiere es a la clave que le pusimos al usuario llamado postfix
que creamos desde phpldapadmin dentro de la unidad organizacional llamada: servicios.

Creamos el fichero /etc/postfix/ldap/ldap-recipient-access.cf

# touch /etc/postfix/ldap/ldap-recipient-access.cf

# chown root:postfix /etc/postfix/ldap/ldap-recipient-access.cf

# chmod 640 /etc/postfix/ldap/ldap-recipient-access.cf

# nano /etc/postfix/ldap/ldap-recipient-access.cf

Agregamos:

server_host = 127.0.0.1
search_base = ou=people,dc=pri,dc=org,dc=cu
query_filter =
(&(objectClass=gosaMailAccount)(!(gosaMailDeliveryMode=[L]))(|(mail=%s)(gosaMailAlternateAddress=
%s)))
result_attribute = gosaMailDeliveryMode
cache = no
bind = yes
bind_dn = cn=postfix,ou=servicios,dc=pri,dc=org,dc=cu
bind_pw = password

Salvamos el fichero

Nota: En la última línea el password al que se refiere es a la clave que le pusimos al usuario llamado postfix
que creamos desde phpldapadmin dentro de la unidad organizacional llamada: servicios.

Creamos el fichero /etc/postfix/ldap/ldap-sender-access.cf

# touch /etc/postfix/ldap/ldap-sender-access.cf

# chown root:postfix /etc/postfix/ldap/ldap-sender-access.cf

# chmod 640 /etc/postfix/ldap/ldap-sender-access.cf

# nano /etc/postfix/ldap/ldap-sender-access.cf

Agregamos:

server_host = 127.0.0.1
search_base = ou=people,dc=pri,dc=org,dc=cu
query_filter =
(&(objectClass=gosaMailAccount)(!(gosaMailDeliveryMode=[L]))(|(mail=%s)(gosaMailAlternateAddress=
%s)))
result_attribute = gosaMailDeliveryMode
cache = no
bind = yes
bind_dn = cn=postfix,ou=servicios,dc=pri,dc=org,dc=cu
bind_pw = password

Salvamos el fichero

Nota: En la última línea el password al que se refiere es a la clave que le pusimos al usuario llamado postfix
que creamos desde phpldapadmin dentro de la unidad organizacional llamada: servicios.

Creamos el fichero /etc/postfix/ldap/ldap-virtual-forward.cf

# touch /etc/postfix/ldap/ldap-virtual-forward.cf

# chown root:postfix /etc/postfix/ldap/ldap-virtual-forward.cf

# chmod 640 /etc/postfix/ldap/ldap-virtual-forward.cf

# nano /etc/postfix/ldap/ldap-virtual-forward.cf

Agregamos:

server_host = 127.0.0.1
search_base = ou=people,dc=pri,dc=org,dc=cu
query_filter =
(&(objectClass=gosaMailAccount)(gosaMailDeliveryMode=[*L*])(|(mail=%s)(gosaMailAlternateAddress=
%s)))
result_attribute = gosaMailForwardingAddress
cache = no
bind = yes
bind_dn = cn=postfix,ou=servicios,dc=pri,dc=org,dc=cu
bind_pw = password

Salvamos el fichero

Nota: En la última línea el password al que se refiere es a la clave que le pusimos al usuario llamado postfix
que creamos desde phpldapadmin dentro de la unidad organizacional llamada: servicios.

Creamos una carpeta para guardar el certificado autofirmado que usara postfix en TLS.

# mkdir /etc/postfix/tls

# chown root:postfix /etc/postfix/tls && chmod 750 /etc/postfix/tls/

Ahora generamos el certificado autofirmado.

# openssl req -newkey rsa:1024 -x509 -nodes -out /etc/postfix/tls/server.pem -keyout


/etc/postfix/tls/server.pem -days 3650

# chown root:postfix /etc/postfix/tls/server.pem

# chmod 640 /etc/postfix/tls/server.pem


Creamos el fichero /etc/postfix/transport

# touch /etc/postfix/transport

# chown root:postfix /etc/postfix/transport

# chmod 640 /etc/postfix/transport

# nano /etc/postfix/transport

Agregamos:

pri.org.cu :
* smtp:[mx1.org.cu]

# postmap /etc/postfix/transport

Nota: El nombre mx1.org.cu especificado en el fichero transport debe ser nuestro SmartHost es decir el
servidor de correo de nuestro ISP que es a quien entregamos nuestra mensajería, y es el mismo que
especificamos en el main.cf en la línea relayhost.

Creamos /etc/postfix/sender_bcc_maps y /etc/postfix/recipient_bcc_maps

# touch /etc/postfix/sender_bcc_maps

# touch /etc/postfix/recipient_bcc_maps

# chown root:postfix /etc/postfix/sender_bcc_maps

# chmod 640 /etc/postfix/sender_bcc_maps

# chown root:postfix /etc/postfix/recipient_bcc_maps

# chmod 640 /etc/postfix/recipient_bcc_maps

# postmap /etc/postfix/sender_bcc_maps

# postmap /etc/postfix/recipient_bcc_maps

Creamos el fichero /etc/postfix/pcre_cu_sender

# touch /etc/postfix/pcre_cu_sender

# chown root:postfix /etc/postfix/pcre_cu_sender

# chmod 640 /etc/postfix/pcre_cu_sender

# nano /etc/postfix/pcre_cu_sender

Agregamos:

!/\@*\.cu/ REJECT Esta cuenta solo puede recibir correos de dominios .cu
Salvamos el fichero

Creamos el fichero /etc/postfix/pcre_cu_recipient

# touch /etc/postfix/pcre_cu_recipient

# chown root:postfix /etc/postfix/pcre_cu_recipient

# chmod 640 /etc/postfix/pcre_cu_recipient

# nano /etc/postfix/pcre_cu_recipient

Agregamos:

!/\@*\.cu/ REJECT Usted solo puede enviar correos a dominios nacionales.

Salvamos el fichero

El servicio lmpt de postfix por defecto se ejecuta dentro de una jaula o chroot de esta forma postfix no sera
capaz de entregarle mensaje a cyrus por este motivo tenemos que ejecutar el servicio lmtp de postfix fuera de
la jaula.

Para lograr este objetivo editamos el fichero /etc/postfix/master.cf

# nano /etc/postfix/master.cf

Buscamos la linea que dice

lmtp unix - - - - - lmtp

y la cambiamos por:

lmtp unix - - n - - lmtp

Salvamos el fichero

Corremos el comando newaliases y reiniciamos postfix

# newaliases

# invoke-rc.d postfix restart

Instalamos el servidor pop (Cyrus-imap)

# aptitude install cyrus-admin-2.2 cyrus-imapd-2.2 cyrus-pop3d-2.2 cyrus-sasl2-dbg cyrus-sasl2-doc


cyrus-doc-2.2 cyrus-clients-2.2

Usando phpldapadmin creamos un usuario llamado cyrus Como un Simple Security Object. dentro de la
Unidad Organizacional llamada: servicios le ponemos una clave y la encriptamos usando md5.

Comenzamos a Configurar cyrus


Primero hacemos una copia de seguridad de los ficheros (cyrus.conf e imapd.conf)

# cp /etc/cyrus.conf /etc/cyrus.conf.default

# cp /etc/imapd.conf /etc/imapd.conf.default

Editamos /etc/cyrus.conf

# nano /etc/cyrus.conf

Cambio la linea:

sieve cmd="timsieved" listen="localhost:sieve" prefork=0 maxchild=100

por

sieve cmd="timsieved" listen=":sieve" prefork=0 maxchild=100

Busnco las lineas:

#squatter_1 cmd="/usr/bin/nice -n 19 /usr/sbin/squatter -s" period=120


#squatter_a cmd="/usr/sbin/squatter" at=0517

y las descomentamos.

Editamos /etc/imapd.conf

# nano /etc/imapd.conf

Busco la linea:

partition-default: /var/spool/cyrus/mail

y debajo de esta pongo esta:

servername: delta.pri.org.cu

Busco esta linea:

newsspool: /var/spool/news

y debajo agrego esta:

lmtp_overquota_perm_failure: yes

Busco esta linea:

unixhierarchysep: no

y la cambio por
unixhierarchysep: yes

Busco esta linea:

#admins: cyrus

y la descomento

admins: cyrus

Busco esta linea:

#imap_admins: cyrus

y la descomento

imap_admins: cyrus

Busco esta linea:

#sieve_admins: cyrus

y la descomento

sieve_admins: cyrus

Busco esta linea:

popminpoll: 1

y la comento:

# popminpoll: 1

Busco esta linea:

autocreatequota: 0

y la sustituyo por:

autocreatequota: 10000

Busco esta linea:

sievedir: /var/spool/sieve

y debajo pongo estas:

sieve_maxscriptsize: 32
sieve_maxscripts: 5

Busco esta lineas:


#dracinterval: 0
#drachost: localhost

y las descomento:

dracinterval: 0
drachost: localhost

Busco esta linea:

#sasl_mech_list: PLAIN

la descomento y la pongo asi:

sasl_mech_list: PLAIN LOGIN DIGEST-MD5

Busco la linea:

sasl_pwcheck_method: auxprop

y la sustituyo por:

sasl_pwcheck_method: saslauthd

Reiniciamos cyrus

# invoke-rc.d cyrus2.2 restart

#######################################################################################
# openssl s_client -connect localhost:636 -showcerts #
# #
# postmap -q pepe@pri.org.cu ldap:/etc/postfix/ldap/ldap-local-recipients.cf #
# pepe #
# imtest -a pepe -w <contraseña> -m login localhost #
# #
#######################################################################################

Instalamos el webmail

# aptitude install squirrelmail squirrelmail-decode squirrelmail-locales

Procedemos a configurar squirrelmail.

# /usr/share/squirrelmail/config/conf.pl

Ejecutando dicho script accederemos desde la consola al menú de opciones de configuración.

1. Organization Preferences
1. Organization Name : SquirrelMail

Cambiamos esta opción por:


1. Organization Name : Jovenclub de Computacion y Electronica

Presionamos la tecla S y damos ENTER para salvar el cambio.

2. Organization Logo : ../images/sm_logo.png

En esta otra opción podemos cambiar el logotipo de squirrelmail por una imagen hecha por nosotros
previamente que debe tener extensión .png y además debemos guardarla en la carpeta:
/usr/share/squirrelmail/images

Presionamos la tecla r para volver a menu principal, donde ahora escogeremos la opción 2.

2. Server Settings

Una vez dentro procedemos a cambiar la configuración del servidor IMAP y SMTP que son las opciones A y
B.

A. Update IMAP Settings : localhost:143 (other)

4. IMAP Server : localhost

la dejamos asi:

4. IMAP Server : delta.pri.org.cu

Ahora vamos a la opción 8

8. Server software : other

la dejamos asi:

8. Server software : cyrus

Vamos a la opción 9

9. Delimiter : detect

la dejamos asi:

9. Delimiter :/

Presionamos la tecla S para salvar

Ahora presionamos la tecla B para ir a la configuración del servidor SMTP.

4. SMTP Server : localhost

la dejamos asi:

4. SMTP Server : delta.pri.org.cu

Ahora vamos a la opción 7


Nos preguntará si si queremos que auto detecte los mecanismos de autenticación, le decimos que No.

7. SMTP Authentication : none

y la dejamos asi:

7. SMTP Authentication : login

Luego de dar ENTER después de haber especificado login, nos saldrá algo como esto:

Would you like to use other login and password for all SquirrelMail

SMTP connections? [y/N]:

Y también le decimos que no, finalmente la opción 7 debe quedar así:

7. SMTP Authentication : login (with IMAP username and password)

Presionamos S y Enter para salvar y r para volver al menú principal.

Vamos a la opción 3

3. Folder Defaults

3. Trash Folder : INBOX.Trash

la dejamos asi:

3. Trash Folder : INBOX/Papelera

Vamos a la opción 4

4. Sent Folder : INBOX.Sent

la dejamos asi:

4. Sent Folder : INBOX/Enviados

Vamos a la opción 5

5. Drafts Folder : INBOX.Drafts

la dejamos asi:

5. Drafts Folder : INBOX/Borrador

Presionamos la tecla S y damos ENTER.

Presionamos la tecla R para volver al menú principal.


Ahora vamos a la opción 10 para poner el squirrelmail en idioma Español

10. Languages

1. Default Language : en_US

cambiamos esta opción por:

1. Default Language : es_ES

Salvamos y salimos.

y reiniciamos apache2

# invoke-rc.d apache2 restart

Ahora vamos a crear un virtualhost para acceder al webmail.

Editamos el fichero /etc/apache2/sites-available/default

# nano /etc/apache2/sites-available/default

Agregamos los nuevos virtualhost al final del fichero.

# VirtualHost para el Webmail


<VirtualHost 192.168.0.2:80>
ServerName correo.pri.org.cu
ServerAdmin admin@pri.org.cu
DocumentRoot "/var/www/mail"

<Directory /var/www/mail/>
Options Indexes Includes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

# Reescribimos todas las peticiones a este sitio a una conexión segura es decir usando SSl
RewriteEngine On
RewriteCond %{SERVER_PORT} !^443$
RewriteCond %{HTTP_HOST} correo.pri.org.cu
RewriteRule (.*) https://correo.pri.org.cu$1 [R=301,L]

ErrorLog /var/log/apache2/correo-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/correo-access.log combined
ServerSignature On
</VirtualHost>

# VirtualHost con soporte SSL


<VirtualHost 192.168.0.2:443>
ServerName correo.pri.org.cu
ServerAdmin admin@pri.org.cu
DocumentRoot "/var/www/mail/"

<Directory /var/www/mail>
Options Indexes Includes FollowSymLinks
AllowOverride None
order allow,deny
allow from all
</Directory>

RewriteEngine on
RewriteCond %{REQUEST_METHOD} ^(TRACE|TRACK)
RewriteRule .* - [F]

SSLEngine on
SSLCertificateFile /etc/apache2/ssl/correo/correo.pem

ErrorLog /var/log/apache2/correo-error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog /var/log/apache2/correo-access.log combined
ServerSignature On
</VirtualHost>

Salvamos y salimos.

Creamos el certificado para dicho VirtualHost.

# mkdir /etc/apache2/ssl/correo

# openssl req -newkey rsa:1024 -x509 -nodes -out /etc/apache2/ssl/correo/correo.pem -keyout


/etc/apache2/ssl/correo/correo.pem -days 3650

# chown root:www-data /etc/apache2/ssl/correo/correo.pem

# chmod 640 /etc/apache2/ssl/wcorreo/correo.pem

Ahora editamos el fichero /etc/apache2/ports.conf

# nano /etc/apache2/ports.conf

Y añadimos esta línea:

NameVirtualHost 192.168.0.2:443
Y ahora vamos a crear este enlace simbólico para el squirrelmail.

# ln -s /usr/share/squirrelmail /var/www/mail

Reiniciamos apache2

# invoke-rc.d apache2 restart

Ahora debemos ir a la web de Gosa para crearles los buzones de correo a los usuarios que hemos creado desde
dicha web, que en mi caso solo ha sido uno de momento.

Accedemos a gosa

http://gosa-admin.pri.org.cu

Entramos y nos dirigimos a la sección de administración y en ella vamos hasta la opción llamada usuarios:

Si ya teníamos una cuenta creada (la que creaste cuando configuraste saslauthd recuerdas?) dicha cuenta te
aparecerá ahí, solo que en estos momentos es solo una cuenta en el directorio ldap, de momento no tiene
permisos para usar el servicio de correo que es lo que estamos configurando en este manual, como tampoco
tiene permiso de usar el servicio de Squid y Samba, que son otros servicios que se pueden integrar a ldap
mediante gosa, pero esto lo trataré en otro manual :)

Damos un clic sobre nuestro usuario, ahí podremos editar sus propiedades, al hacerlo tendremos frente a
nosotros las siguientes opciones:

Genérico, Unix, Entorno, Correo Electrónico, Samba, Conectividad, Fax, Teléfono

Y como seguro ya nos dimos cuentas nos encontramos en la opción Genérico, que es donde podemos poner
los datos personales del usuario, así como su foto, ahora antes de pasar a la pestaña Correo Electrónico
debemos en Administración a la opción que dice: Sistemas.

Aquí es donde vamos agregar nuestro servidor (nombre, dirección IP, MAC, etc...)

Buscamos el botón que en la ayuda nos dice: Nuevo Servidor y lo pulsamos. Agregamos el Nombre completo
de nuestro server en mi caso:

Nombre del servidor: delta.pri.org.cu


Descripción: Servidor de Mensajería

Parámetros de RED

Dirección IP: 192.168.0.2


Dirección MAC: 00:16:76:BA:76:8A

En esta misma pestaña (Genérico) a la derecha hay una opción que dice Modo que aparece por defecto en
Bloqueado, la pasamos a: Activado.

Ahora vamos a la pestaña Bases de Datos, activamos poniendo una palomita en la opción a la derecha que
dice:
Administradores de Acceso IMAP.
Identificador del Servidor: delta.pri.org.cu
URL de conexión: {127.0.0.1:143/novalidate-cert}
Usuario Administrador: cyrus
Contraseña: ******
Puerto Sieve: 2000

Y pulsamos el botón guardar.

Ahora regresamos a usuarios, editamos nuevamente el usuario que ya existe pulsando sobre el y nos dirigimos
a la pestaña Correo Electrónico, al llegar aquí pulsamos el botón: Crear cuenta de correo.

Nos aparecerán varias opciones debajo.

Genérico

Cuenta Principal: pepe@pri.org.cu


Servidor: delta.pri.org.cu

Uso de Cuota
Tamaño de cuota: 50 MB

Y le voy al botón guardar.

Ahora podremos ver que en la columna propiedades vemos un sobre de carta al lado de nuestro usuario que
antes no estaba, eso es señal de que ya tiene permiso para usar el servicio de correo, por lo que ya podemos
logearnos desde el webmail con dicha cuenta:

Accedemos a:

https://correo.pri.org.cu

Ahora lo que nos queda con el webmail es ponerlo los plugins para cambiar la clave los usuarios, aunque
pueden utilizar la web de gosa también para cambiar la clave y ponerle alguna pacotilla al webmail para
ponerlo bonito, los plugins que y use son:

avelsieve
compatibility
image_buttons
change_ldappass
addgraphics
quota_usage
show_user_and_ip

Más otros que trae el propio Squirrelmail. Que los puedes encontrar en. http://www.squirrelmail.org

Vamos a añadirle a nuestro squirrelmail estos plugins para ello deben bajarlos que estarán comprimidos en
ficheros .tar.gz seguramente, deben descompactarlos y copiarlos al directorio /usr/share/squirrelmail/plugins

Hay algunos plugins que es necesario hacer algún ajuste en su fichero de configuración que generalmente se
llama config.php casi siempre este fichero aparece con un nombre más largo y hay que renombrarlo, pero
bueno eso te lo explican en los comentarios dentro del mismo archivo :)
Vamos a ejecutar nuevamente el script de configuración del squirrelmail.

# /usr/share/squirrelmail/config/conf.pl

Vamos a la opción 8 que es la de los plugins y veremos algo como esto:

Plugins

Installed Plugins

Available Plugins:

1. abook_take

2. addgraphics

3. administrator

4. avelsieve

5. bug_report

6. calendar

7. change_ldappass

8. compatibility

9. delete_move_next

10. demo

11. filters

12. fortune

13. image_buttons

14. info

15. listcommands

16. mail_fetch

17. message_details

18. newmail
19. online_users

20. quota_usage

21. sent_subfolders

22. show_user_and_ip

23. spamcop

24. squirrelspell

25. test

26. translate

R Return to Main Menu

C Turn color on

S Save data

Q Quit

Como podemos ver no hay ningún plugins instalado aun y la lista de plugins disponible aparece por debajo,
comenzamos por instalar el plugins llamado: compatibility para ello solo tenemos marca el número que este
tiene en la lista de plugins y a continuación dar ENTER, en mi caso es el número 8. De esa manera instalamos
los plugins: quota_usage, message_details, administrator, delete_move_next, newmail, avelsieve, mail_fetch
show_user_and_ip que son los plugins que no hay que hacerles ningún tipo de configuración antes de
instalarlos, una vez que tengamos instalados todos estos, pues pasamos a otros de uno en uno.

Comanzamos por: change_ldappass que es el plugins necesario para que nuestros usuarios puedan cambiar su
contraseña de correo desde el webmail, aunque también puede hacerlo desde gosa, para ello vamos a
/usr/share/squirreilmail/plugins y buscamos el plugins, entramos al directorio y buscamos un fichero que se
llama: config.php lo editamos y buscamos las liguientes líneas:

$ldap_base_dn = ´dc=pri,dc=org,dc=cu´;

Salvamos y de la misma forma en que instalamos los plugins anteriores instalamos este. En el caso de plugins
llamado online_users hay que editar el config.php de este y especificarle los datos de la base de datos mysql
donde este guardara dicha información, como hasta el momento no tenemos dicha base de datos, pues vamos
a crearla, lo primero es instalar phpmyadmin si no lo hemos hecho aun.

# aptitude install phpmyadmin

Accedemos al mismo y creamos una base de datos y le ponemos un nombre, en mi caso la llamaré: mail con
este código creamos la tabla onlineusers en la base de datos:
CREATE TABLE IF NOT EXISTS `onlineusers` (
`ou_timestamp` int(15) NOT NULL default '0',
`ou_user` varchar(40) NOT NULL default '',
`ou_right_main` varchar(100) NOT NULL default '',
PRIMARY KEY (`ou_timestamp`),
KEY `ou_user` (`ou_user`),
KEY `ou_right_main` (`ou_right_main`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ahora vamos a crear un user en mysql y darle acceso a la base datos que acabamos de crear, para ello
usaremos phpmyadmin. Una vez realizado esto regresamos al fichero config.php del plugins online_users y
especificamos estos datos en él salvamos e instalamos el plugins. Bueno el trabajo con el resto de los plugins
es similar, leer las indicaciones que dice antes de instalarlo ok!

Bueno una cosa más con el squirrelmail, vamos añadir otra tabla a la base de datos mysql que creamos hace
poco para ser utilizada para la libreta de direcciones de los usuarios, para ello nuevamente accedemos a la web
de phpmyadmin entramos como root y ejecutamos este código para agregar una 2da tabla a la base de datos
mail.

CREATE TABLE IF NOT EXISTS `address` (


`owner` char(128) NOT NULL default '',
`nickname` char(128) NOT NULL default '',
`firstname` char(128) default NULL,
`lastname` char(128) default NULL,
`email` char(200) default NULL,
`label` char(200) default NULL,
PRIMARY KEY (`owner`,`nickname`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Una vez hecho esto vamos a la konsola y ejecutamos el scripts de configuracion de Squirrelmail y entramos
en la opción 9. Y veremos esto:

Database
1. DSN for Address Book :
2. Table for Address Book : address

3. DSN for Preferences :


4. Table for Preferences : userprefs
5. Field for username : user
6. Field for prefs key : prefkey
7. Field for prefs value : prefval

8. DSN for Global Address Book :


9. Table for Global Address Book : global_abook
10. Allow writing into Global Address Book : false
11. Allow listing of Global Address Book : false

Entramos a la opción 1 y especificamos este valor:

mysql://user_mysql:clave@localhost/nombre_base_datos
donde:

user_mysql: Es el usuario mysql que creamos desde phpmyadmin


clave: Es la clave que le pusimos a ese usuario.
nombre_base_datos: Es el nombre de la base de datos

Ahora hacemos lo mismo en la opción 3 pero antes de eso nos llegamos nuevamente a phpmyadmin y
creamos una 3ra tabla con este código:

CREATE TABLE IF NOT EXISTS `userprefs` (


`user` varchar(128) NOT NULL default '',
`prefkey` varchar(64) NOT NULL default '',
`prefval` blob NOT NULL,
PRIMARY KEY (`user`,`prefkey`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

Ahora si podemos configurar la opción 3 como lo hicimos con la 1, se pone exactamente igual ok!

Instalamos mailman

# aptitude install mailman

Editamos el fichero /etc/mailman/mm_cfg.py

# nano /etc/mailman/mm_cfg.py

DEFAULT_EMAIL_HOST = 'pri.org.cu'
DEFAULT_URL_HOST = 'listas.pri.org.cu'
DEFAULT_SERVER_LANGUAGE = 'es'
MTA='Postfix'

Agrego estas lineas en el fichero: /etc/apache2/sites-available/default

# nano /etc/apache2/sites-available/default

ScriptAlias /mailman/ /usr/lib/cgi-bin/mailman/


Alias /pipermail/ /var/lib/mailman/archives/public/
Alias /images/mailman/ /usr/share/images/mailman/

Después reinicio apache2

# /etc/init.d/apache2 restart

Ejecutamos este comando:

# /var/lib/mailman/bin/genaliases

Editamos el main.cf de postfix

# nano /etc/postfix/main.cf
Buscamos las lineas:

alias_maps = $alias_database
#alias_maps = $alias_database, hash:/var/lib/mailman/data/aliases

Descomentamos de la abajo y comentamos la de arriba.

#alias_maps = $alias_database
alias_maps = $alias_database, hash:/var/lib/mailman/data/aliases

Reiniciamos postfix y damos newaliases

# newaliases
# /etc/init.d/postfix restart

Creamos la lista mailman con:

# newlist mailman

Con este mismo comando creo las demás listas

# newlist debian-cu

Iniciamos el servicio de mailman

# /etc/init.d/mailman start

Ahora que ye tenemos una lista creada (debian-cu) podemos acceder a la Web de administración de Mailman
por:

http://listas.pri.org.cu/mailman/admin

Configurar otras opciones de la lista, suscribir usuarios, crear otras listas, etc...

Ahora vamos a instalar la herramienta isoqlog para las estadísticas del correo

# aptitude install isoqlog

Editamos el fichero de configuración que esta en

# /etc/isoqlog/isoqlog.conf

y que quede asi:

# isoqlog 2.0 Configuration file

logtype = "postfix"
logstore = "/var/log/mail.log"
domainsfile = "/etc/isoqlog/isoqlog.domains"
outputdir = "/var/www/isoqlog"
htmldir = "/usr/share/isoqlog/htmltemp"
langfile = "/usr/share/isoqlog/lang/spanish"
hostname = "delta.pri.org.cu"

maxsender = 100
maxreceiver = 100
maxtotal = 100

maxbyte = 100

Y en en el fichero

# /etc/isoqlog/isoqlog.domains

Debe tener una línea con el dominio de correo:

pri.org.cu

Luego creamos una tarea en el cron así:

# nano /etc/crontab

Ponemos esta línea al final, salvamos, salimos y reiniciamos el cron.

58 * * * * root /usr/bin/isoqlog 1>/dev/null 2>/dev/null

# /etc/init.d/cron restart

Instalar amavisd-new, SpamAssassin, And ClamAV

Pero antes de instalarlos, debemos agregar al source.list el debian-volatile. Editamos el fichero


/etc/apt/sources.list

# nano /etc/apt/sources.list

y agregamos esta linea:

deb file:///mnt/debian-volatile lenny/volatile main contrib non-free

Salvamos el fichero

ejecutamos

# aptitude update

# aptitude install amavisd-new spamassassin clamav clamav-daemon zoo libnet-ph-perl libnet-snpp-


perl
# aptitude install libnet-telnet-perl nomarch lzop pax

Luego edite este archivo

# nano /etc/amavis/conf.d/15-content_filter_mode

El fichero debe quedar así:


use strict;

# You can modify this file to re-enable SPAM checking through spamassassin
# and to re-enable antivirus checking.

#
# Default antivirus checking mode
# Uncomment the two lines below to enable it back
#

@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);

#
# Default SPAM checking mode
# Uncomment the two lines below to enable it back
#

@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re);

1; # insure a defined return

Finalmente, editamos:

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

#use strict;

#
# Place your configuration directives here. They will override those in
# earlier files.
#
# See /usr/share/doc/amavisd-new/ for documentation and examples of
# the directives you can use in this file
#
$mydomain =pri.org.cu;
#$myhostname = delta.pri.org.cu;
$max_servers = 5; # number of pre-forked children
$max_requests = 10; # retire a child after that many accepts
$inet_socket_bind = '127.0.0.1';
@inet_acl = qw( 127.0.0.1 );
$forward_method = 'smtp:[127.0.0.1]:10025';
$notify_method = 'smtp:[127.0.0.1]:10025';
$X_HEADER_LINE = " $myproduct_name at delta.pri.org.cu";

#Evitamos el chequeo de cabezeras por el momento.


@bypass_header_checks_acl = qw( . );
$final_bad_header_destiny = D_PASS;
# Extensiones no permitidas
qr'.\.(ade|adp|app|bas|bat|chm|cmd|com|cpl|crt|emf|exe|fxp|grp|hlp|hta|
inf|ins|isp|js|jse|lnk|mda|mdb|mde|mdw|mdt|mdz|msc|msi|msp|mst|
ops|pcd|pif|prg|reg|scr|sct|shb|shs|vb|vbe|vbs|
wmf|wsc|wsf|wsh)$'ix, # banned ext - long

#------------ Do not modify anything below this line -------------


1; # insure a defined return

Y agregamos estas lineas al fichero master.cf de postfix.

# nano /etc/postfix/master.cf

smtp inet n - n - 50 smtpd


-o smtpd_proxy_filter=127.0.0.1:10024
-o smtpd_client_connection_count_limit=50
#
# After-filter SMTP server. Receive mail from the content filter
# on localhost port 10026.
#
127.0.0.1:10025 inet n - n - - smtpd
-o smtpd_authorized_xforward_hosts=127.0.0.1
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=
-o mynetworks=127.0.0.1
-o receive_override_options=no_unknown_recipient_checks

Salvamos el fichero y reiniciamos postfix

# /etc/init.d/postfix restart

Ejecutamos:
# netstat -tap

Y debemos observar 2 lineas como estas, dentro de todas las que muestra en pantalla:

tcp 0 0 localhost.localdo:10024 *:* LISTEN 4505/amavisd (maste

tcp 0 0 *:smtp *:* LISTEN 2311/master

Instalar Razor, Pyzor And DCC y Configurar SpamAssassin

# aptitude install razor pyzor

Edite /etc/spamassassin/local.cf y agregue estas lineas en el:


# nano /etc/spamassassin/local.cf

#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
pyzor_add_header 1

#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf

#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1

Salvamos y fichero y salimos.

Después agregamos los usuarios clamav al grupo amavis y reiniciamos los demonios:

# adduser clamav amavis

Reinicie amavisd-new

# /etc/init.d/amavis restart

Ahora editamos el fichero /etc/clamav/freshclam.conf

# nano /etc/clamav/freshclam.conf

y agregamos al final:

# Proxy: http://proxy.pri.org.cu:3128/
HTTPProxyServer proxy.pri.org.cu
HTTPProxyPort 3128
#HTTPProxyUsername usuario
#HTTPProxyPassword clave

Reiniciamos clamav

# /etc/init.d/clamav-daemon restart
# /etc/init.d/clamav-freshclam restart

Y creo que hemos acabado.

Autores:

Racial Pérez Hernández – Admin. de Redes Dirección Provincial de Salud – P. del Río
e-mail: racielprz@minsap.pri.sld.cu
Eduardo R. Barrera Pérez – admin. de Redes Dirección Provincial de Jovenclub – Pinar del Ró
e-mail: ebarrera@pri.jovenclub.cu

Vous aimerez peut-être aussi