Академический Документы
Профессиональный Документы
Культура Документы
Presentado por:
Rafael Emiro Vega Tirado.
Jeyson Andrey Henao Alvarez.
Jonathan Andrés Loaiza García.
César Augusto Pineda González.
Leidy Marcela Martinez Alzate.
Presentado a:
Prof. Andrés Mauricio Ortiz.
2008
Proyecto Plataforma de Correos.
ÍNDICE
Página.
1 Introducción. 4
2 Objetivos. 5
2.1 Objetivo General. 5
2.3 Objetivos Específicos. 5
3 Conceptos Teóricos. 6
3.1 MTA. 6
3.2 MDA. 6
3.3 MUA. 6
3.4 WEBMAIL. 7
3.5 Postfix. 7
3.6 Dovecot. 7
3.7 Amavis-New. 8
3.8 SASL. 8
3.9 SSL Y TLS. 8
3.10 Squirrelmail. 8
3.11 Tipos De Buzones Para El Correo. 9
3.11.1 Mailbox. 9
3.11.2 Maildir. 9
3.12 Mandriva Directory Server “MDS”. 10
3.13 Cómo Trabaja El Servidor De Correos. 11
4 Descripición De Los Paquetes A Utilizar. 12
5 Instalación. 14
5.1 Preparación Del Sistema. 14
5.2 Hostname. 14
5.3 Filesystem ACL´s. 15
5.4 Repositorios. 16
5.5 Instalación De Los Paquetes A Utilizar. 18
6 Configuraciones. 27
6.1 Configuración Del LDAP. 27
6.2 Configuración De Samba. 33
2
Proyecto Plataforma de Correos.
3
Proyecto Plataforma de Correos.
1 INTRODUCCIÓN
4
Proyecto Plataforma de Correos.
2 OBJETIVOS
5
Proyecto Plataforma de Correos.
3 CONCEPTOS TEÓRICOS
3.1 MTA
Mail Transportation Agent, Agente de Transporte de Correo. Es una aplicación
que cumple la función de transferir correos electrónicos de una computadora a
otra. En si, éste es el servidor de correos que utiliza el protocolo SMTP. Dentro
de MTA´s están: Microsoft Exchange, Postfix, Sendmail, Qmail, Exim, entre
otros.
3.2 MDA
3.3 MUA
6
Proyecto Plataforma de Correos.
3.4 WEBMAIL
Es un cliente de correo electrónico, el cual provee una interfaz Web con el fin
de acceder a los correos electrónicos; es decir, con ésta aplicación podemos
ingresar, leer, enviar correos electrónicos vía Web.
3.5 Postfix.
3.6 Dovecot.
7
Proyecto Plataforma de Correos.
3.7 AMAVIS-NEW
3.8 SASL
3.10 SQUIRRELMAIL
8
Proyecto Plataforma de Correos.
Los servidores de correo utilizan uno de los dos tipos de buzones: Mailbox y
Maildir.
3.11.1 MAILBOX:
Es un tipo de buzón que almacena los correos en forma de cola, es decir, éste
almacena todos los correos de un respectivo usuario en un solo archivo; de
ésta forma todo correo, sea spam, enviado o recibido se al macerarán en ese
único archvio. Cada usuario, por lógica tiene su propio archivo. En Linux
Debian éste archivo está ubicado en la siguiente ruta /var/spool/mail/[USUARIO].
3.11.2 MAILDIR:
Es otro tipo de buzón consiste en un directorio, en el cual existen otros
subdirectorios en los que van guardados los mensajes en diferentes archivos.
De ésta forma los mensajes spam, enviados o recibidos se almacenarán en
archivos distintos. En Linux Debian generalmente el archivo Maildir se
encuentra en la siguiente ruta /home/[USUARIO]/Maildir.
9
Proyecto Plataforma de Correos.
10
Proyecto Plataforma de Correos.
11
Proyecto Plataforma de Correos.
Para la instalación del MDS junto con la plataforma de correo se deben instalar
ciertos paquetes, por consiguiente, se deberá realizar una pequeña explicación
de la función de cada paquete.
12
Proyecto Plataforma de Correos.
13
Proyecto Plataforma de Correos.
5. INSTALACIÓN.
Hostname: server1.grupo9.com
Samba Domain: GRUPO9
IP: 192.168.0.19
Gateway: 192.168.0.1
Passwords Para Todo: sena2008
5.2 Hostname: Editar el archivo hosts con el fin de que nuestra máquina nos
resuelva localmente por ahora.
#pico /etc/hosts
14
Proyecto Plataforma de Correos.
#reboot
#hostname
#hostname -f
server1.grupo9.com
15
Proyecto Plataforma de Correos.
#pico /etc/fstab
Debemos remontar el punto de montaje “/” para que aplique los cambios.
#mount -o remount /
#mount -l
5.4 REPOSITORIOS
Para instalar los paquetes requeridos para realizar éste trabajo se deben
utilizar los siguientes repositorios, los cuales habilitamos en el archivo
sources.list
#pico /etc/apt/sources.list
16
Proyecto Plataforma de Correos.
# MDS repository
deb http://mds.mandriva.org/pub/mds/debian etch main
# Debian Volatile
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free
# Debian Etch Backports
deb http://www.backports.org/debian etch-backports main
#OTROS
deb http://ftp.es.debian.org/debian/ etch main contrib non-free
deb ftp://ftp.us.debian.org/debian sarge main contrib non-free
#apt-get update
17
Proyecto Plataforma de Correos.
18
Proyecto Plataforma de Correos.
19
Proyecto Plataforma de Correos.
Digitar el nombre del grupo de trabajo “GRUPO9”. Éste nombre trabaja como
un nombre Netbios.
20
Proyecto Plataforma de Correos.
21
Proyecto Plataforma de Correos.
22
Proyecto Plataforma de Correos.
23
Proyecto Plataforma de Correos.
Vesión de LDAP a utilizar “3” Se debe utilizar la versión más reciente que esté
disponible.
24
Proyecto Plataforma de Correos.
25
Proyecto Plataforma de Correos.
Make local root Database admin. “<No>”. Indica si solo el root puede ver la
base de datos del LDAP.
26
Proyecto Plataforma de Correos.
6. CONFIGURACIONES
Se procede copiar los el esquema del Mail, Samba, MMC, DNS, DHCP y
agregarlos al squema del LDAP.
Debemos indicarle al LDAP que acepte los esquemas que acabamos de copiar,
para esto editamos el archivo sldap.conf.
#pico /etc/ldap/slapd.conf
De ésta forma, procedemos a incluir las listas de los esquemas que copiamos
anteriormente.
27
Proyecto Plataforma de Correos.
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
Sin embargo, debemos habilitar éstas líneas agregadas, por lo que debemos
incluri la siguiente línea debajo de éstas.
schemacheck on
#slappasswd -s sena2008
{SSHA}lPd5OeiUGx4lyZUiQ2MFmzXV0JWyKV9A
Abrir el archivo de configuración del LDAP para agregar ésta clave encriptada.
#pico /etc/ldap/sldap.conf
Buscar la línea que dice rootdn, y descoméntela, de tal forma que quede así.
rootdn "cn=admin,dc=grupo9,dc=com"
Y Agrege debajo de ésta la linea rootpw junto con la clave del Admin LDAP
encriptada que originamos anteriormente.
rootpw {SSHA}lPd5OeiUGx4lyZUiQ2MFmzXV0JWyKV9A
28
Proyecto Plataforma de Correos.
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
Debemos definir las listas de acceso que samba tendrá sobre el LDAP y los
respectiviso atributos de los usuarios. De ésta forma, buscamos y cambiamos
la línea que dice.
access to attrs=userPassword,shadowLastChange
Por ésta.
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
######################################################################
#
# Global Directives:
# Features to permit
#allow bind_v2
29
Proyecto Plataforma de Correos.
# The tool-threads parameter sets the actual amount of cpu's that is used
# for indexing.
tool-threads 1
######################################################################
#
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30
######################################################################
#
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>
######################################################################
#
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb
30
Proyecto Plataforma de Correos.
# For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0
# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057
# for more information.
# Save the time that the entry gets modified, for database #1
lastmod on
31
Proyecto Plataforma de Correos.
######################################################################
#
# Specific Directives for database #2, of type 'other' (can be bdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database <other>
#pico /etc/ldap/ldap.conf
host 127.0.0.1
base dc=example,dc=com
#/etc/init.d/sldap restart
32
Proyecto Plataforma de Correos.
#/etc/init.d/samba stop
#pico /etc/samba/smb.conf
workgroup = GRUPO9
netbiosname = SRV-GRUPO9
ldap admin dn = cn=admin,dc=grupo9,dc=com
ldap suffix = dc=grupo9,dc=com
logon path = \\%N\profiles\%U
33
Proyecto Plataforma de Correos.
En la sección [profiles], agregar la siguiente línea, con el fin de que los archivos
de Samba estén ocultos.
34
Proyecto Plataforma de Correos.
path = /home/samba/archives
Además, agregar al final del archivo smb.conf el siguiente bloque [partage] que
no viene por defecto. Esto es si queremos, ya que éste bloque no afecta para
nada la configuración; simplemente se utiliza para publicar algunos servicios.
[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes
[global]
preferred master = yes
os level = 65
wins support = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY
SO_SNDBUF=8192 SO_RCVBUF=8192
logon drive = H:
passwd program = /usr/sbin/smbldap-passwd -u %u
passwd chat = "Cambiando clave para*\nNueva clave*" %n\n "*Confirme
nueva clave*" %n\n
add user script = /usr/sbin/smbldap-useradd -m "%u"
add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/ambldap-groupadd -p "%g"
delete user script = /usr/sbin/smbldap-userdel "%u"
delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
delete group script = /usr/sbin/smbldap-groupdel "%g"
obey pam restrictions = no
ldap idmap suffix = ou=Users
ldap delete dn = no
security = user
35
Proyecto Plataforma de Correos.
workgroup = GRUPO9
netbiosname = SRV-GRUPO9
server string = Mandriva Directory Server - SAMBA %v
log level = 3
null passwords = yes
# unix charset = ISO8859-1
name resolve order = bcast host
domain logons = yes
domain master = yes
printing = cups
printcap name = cups
logon path = \\%N\profiles\%u
logon script = logon.bat
map acl inherit = yes
nt acl support = yes
force unknown acl user = Yes
passdb backend = ldapsam:ldap://127.0.0.1/
ldap admin dn = cn=admin,dc=grupo9,dc=com
ldap suffix = dc=grupo9,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Idmap
idmap backend = ldap:ldap://127.0.0.1/
idmap uid = 20000-30000
idmap gid = 20000-30000
[homes]
comment = Home directories
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/
path = /home/samba/archives
[public]
comment = Public share
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes
36
Proyecto Plataforma de Correos.
[archives]
comment = Backup share
path = /home/archives
browseable = yes
public = no
writeable = no
[printers]
comment = All printers
path = /var/spool/samba
public = yes
guest ok = yes
browseable = no
writeable = no
printable = yes
[print$]
comment = Printer Driver Download Area
path = /var/lib/samba/printers
browseable = no
guest ok = yes
read only = yes
write list = Administrador,root,@lpadmin
force group = "Print Operators"
create mask = 0775
directory mask = 0775
[netlogon]
path = /home/samba/netlogon
public = no
writeable = no
browseable = no
[profiles]
path = /home/samba/profiles
writeable = yes
create mask = 0700
directory mask = 0700
browseable = no
hide files = /desktop.ini/ntuser.ini/NTUSER.*/
[partage]
comment = aucun
path = /home/samba/partage
browseable = yes
public = no
writeable = yes
37
Proyecto Plataforma de Correos.
#testparm
Se procede a darle las credenciales a Samba para que pueda escribir sobre
LDAP.
#smbpasswd -w sena2008
Debe aparecer algo como esto, lo cual indica que las credenciales fueron
asignadas correctamente.
Debemos genera un SID para el grupo de trabajo, con el fin de que el LDAP
reconozca y autorice al Samba con éste identificador.
Debe mostrarnos al final algo como esto. No perdamos éste SID, ya que más
adelante lo debemos utilizar.
Para comprobar que el SID fue registrado por el LDAP, digitamos el siguiente
comando.
38
Proyecto Plataforma de Correos.
dn: sambaDomainName=GRUPO9,dc=grupo9,dc=com
sambaDomainName: GRUPO9
#/etc/init.d/samba start
#pico /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=grupo9,dc=com"
slavePw="sena2008"
masterDN="cn=admin,dc=grupo9,dc=com"
masterPw="sena2008"
#pico /etc/smbldap-tools/smbldap.conf
SID=" S-9-5-21-3159899829-923882392-54889933"
sambaDomain="GRUPO9"
ldapTLS="0"
suffix="dc=grupo9,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=GRUPO9,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
39
Proyecto Plataforma de Correos.
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-SRV-GRUPO9\%U"
userProfile="\\PDC-SRV-GRUPO9\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="grupo9.com"
smbpasswd="/usr/bin/smbpasswd"
#pico /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
passwd: compat ldap
group: compat ldap
shadow: compat ldap
40
Proyecto Plataforma de Correos.
#getent group
Debemos cerciorarnos de que al final aparezca algo como esto, lo cual indica
que está visualizando la base de datos LDAP.
Domain Admins:*:512:
Domain Users:*:513:Administrator,mauro,fefe,jona
Domain Guests:*:514:
Domain Computers:*:515:
Administrators:*:544:
Account Operators:*:548:
Print Operators:*:550:
Backup Operators:*:551:
Replicators:*:552:
#pico /etc/libnss-ldap.conf
nss_base_passwd ou=users,dc=grupo9,dc=com
nss_base_group ou=groups,dc=grupo9,dc=com
41
Proyecto Plataforma de Correos.
#pico /etc/pam_ldap.conf
nss_base_passwd ou=users,dc=grupo9,dc=com?one
nss_base_shadow ou=users,dc=grupo9,dc=com?one
nss_base_group ou=groups,dc=grupo9,dc=com?one
#dpkg-reconfigure libnss-ldap
#dpkg-reconfigure libpam-ldap
42
Proyecto Plataforma de Correos.
Ahora debemos crear unos directorios que Samba necesita para alojar sus
archivos. Dichos directorios fueron los bloques que están descritos en el
archivo smb.conf.
#mkdir -p /home/samba/shares/public/
#mkdir /home/samba/netlogon/
#mkdir /home/samba/profiles/
#mkdir /home/samba/partage/
#mkdir /home/samba/archives/
Se debe reiniciar el Samba para que se apliquen los cambios con respecto a
los directorios creados.
#/etc/init.d/samba restart
Algunas veces, al reiniciar más adelante la MMC presenta errores, por esto
debemos crear un directorio adicional “archives” en “/home/”.
#mkdir /home/archives
43
Proyecto Plataforma de Correos.
#pico /etc/pam.d/common-account
#
# /etc/pam.d/common-account - authorization settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in /etc/shadow.
#
account required pam_unix.so
account sufficient pam_ldap.so
#pico /etc/pam.d/common-auth
#
# /etc/pam.d/common-auth - authentication settings common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
#pico /etc/pam.d/common-password
44
Proyecto Plataforma de Correos.
#
# /etc/pam.d/common-password - password-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define the services to be
#used to change user passwords. The default is pam_unix
# The "nullok" option allows users to change an empty password, else
# empty passwords are treated as locked accounts.
#
# (Add `md5' after the module name to enable MD5 passwords)
#
# The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in
# login.defs. Also the "min" and "max" options enforce the length of the
# new password.
password sufficient pam_unix.so nullok obscure min=4 max=8 md5
password sufficient pam_ldap.so use_first_pass use_authtok
password required pam_deny.so
# Alternate strength checking for password. Note that this
# requires the libpam-cracklib package to be installed.
# You will need to comment out the password line above and
# uncomment the next two in order to use this.
# (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH')
#
# password required pam_cracklib.so retry=3 minlen=6 difok=3
# password required pam_unix.so use_authtok nullok md5
#pico /etc/pam.d/common-session
#
# /etc/pam.d/common-session - session-related modules common to all services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive). The default is pam_unix.
#
session required pam_unix.so
session optional pam_ldap.so
45
Proyecto Plataforma de Correos.
#reboot
#pico /etc/resolv.conf
search grupo9.com
nameserver 192.168.0.19
46
Proyecto Plataforma de Correos.
#pico /etc/dhcp3/dhcpd.conf
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=grupo9, dc=com";
ldap-password "sena2008";
ldap-base-dn "dc=grupo9, dc=com";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
#pico /etc/ssl/mail.cnf
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
string_mask = nombstr
x509_extensions = server_cert
[ req_distinguished_name ]
countryName = DE
47
Proyecto Plataforma de Correos.
stateOrProvinceName = Niedersachsen
localityName = Lueneburg
organizationName = Projektfarm GmbH
organizationalUnitName = IT
commonName = server1.grupo9.com
emailAddress = postmaster@grupo9.com
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"
Especificar los derechos de la llave, de tal forma que solo el root pueda leerlo.
#mkdir -p /var/spool/postfix/var/run/saslauthd/
#pico /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
48
Proyecto Plataforma de Correos.
#pico /etc/saslauthd.conf
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=grupo9,dc=com
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))
#pico /etc/postfix/sasl/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
#/etc/init.d/saslauthd restart
49
Proyecto Plataforma de Correos.
Copiamos los archivo del Postifx con el fin de poder trabajar con lo Usuarios y
Dominios virtuales.
#pico /etc/postfix/main.cf
myhostname = server1.grupo9.com
mydomain = grupo9.com
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.grupo9.com,grupo9.com,localhost.localdomain,localhost
mail_destination_recipient_limit = 1
mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN"
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
50
Proyecto Plataforma de Correos.
# Use Maildir
home_mailbox = Maildir/
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
51
Proyecto Plataforma de Correos.
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit
# SSL/TLS
smtpd_tls_security_level = may
smtpd_tls_loglevel = 1
smtpd_tls_cert_file = /etc/ssl/certs/mail.pem
smtpd_tls_key_file = /etc/ssl/private/mail.key
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
# Amavis
content_filter = amavis:[localhost]:10024
receive_override_options = no_address_mappings
Editar el archivo ldap.aliases.cf con el fin de definir los álias del LDAP en el
Postfix.
#pico /etc/postfix/ldap-aliases.cf
server_host = 127.0.0.1
search_base = ou=Users,dc=grupo9,dc=com
query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))
result_attribute = maildrop
version = 3
52
Proyecto Plataforma de Correos.
#pico /etc/postfix/master.cf
# SMTPS
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient
# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
53
Proyecto Plataforma de Correos.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=grupo9,dc=com
query_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))
result_attribute = mailbox
version = 3
expansion_limit = 1
54
Proyecto Plataforma de Correos.
result_format = smtp:[%s]
version = 3
#/etc/init.d/postfix restart
Debemos borrar todo el contenido del archivo dovecot.conf ya que éste no nos
sirve para lo que queremos realizar.
#pico /etc/dovecot/dovecot.conf
55
Proyecto Plataforma de Correos.
info_log_path = /var/log/dovecot.log
# IMAP configuration
protocol imap {
mail_plugins = quota imap_quota
}
# POP3 configuration
protocol pop3 {
pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota
}
# LDA configuration
protocol lda {
postmaster_address = postmaster
auth_socket_path = /var/run/dovecot/auth-master
mail_plugins = quota
}
# LDAP authentication
auth default {
mechanisms = plain login
passdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
userdb ldap {
args = /etc/dovecot/dovecot-ldap.conf
}
socket listen {
master {
path = /var/run/dovecot/auth-master
mode = 0660
user = dovecot
group = mail
}
client {
path = /var/spool/postfix/private/auth
mode = 0660
user = postfix
group = postfix
}
}
}
56
Proyecto Plataforma de Correos.
Procedemos a editarlo.
#pico /etc/dovecot/dovecot-ldap.conf
hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=grupo9,dc=com
scope = subtree
user_attrs =
homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:stor
age
user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK))
default_pass_scheme = CRYPT
user_global_gid = mail
Ahora debemos ajustar los derechos para poder autorizar a Dovecot, con el fin
de que éste pueda utilizar los derechos UID y GID cuando se almacena el
mensaje en el Maildir de cada usuario.
57
Proyecto Plataforma de Correos.
Se configurará con el fin de que el Postfix pase los correos a Amavis. Éste, de
igual forma lo pasará a Sapamassassin y a CalmAV para que realicen el
respectivo escaneo contra spam y contra antivirus. Luego de haber aprobado el
mensaje por parte del servicio Amavis, éste debe reinyectar el mensaje a
Postfix.
#pico /etc/amavis/conf.d/15-content_filter_mode
use strict;
@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);
1;
#pico /etc/amavis/conf.d/50-user
use strict;
$pax='pax';
1;
58
Proyecto Plataforma de Correos.
#pico /etc/amavis/conf.d/05-domain_id
use strict;
@local_domains_acl = ( ".$mydomain" );
#pico /etc/amavis/conf.d/20-debian_defaults
$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;
$final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine)
$final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS; # False-positive prone (for spam)
59
Proyecto Plataforma de Correos.
#/etc/init.d/amavis restart
#/etc/init.d/clamav-daemon restart
#/etc/init.d/clamav-freshclam restart
#pico /etc/spamassassin/local.cf
Dentro del mismo archivo, agregar las siguientes líneas, las cuales son las
bases de datos que contienen el listado de los spam. Estas bases de datos se
encuentran ubicadas en Internet.
# dcc
use_dcc 1
dcc_path /usr/bin/dccproc
#pyzor
use_pyzor 1
pyzor_path /usr/bin/pyzor
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
#bayes
use_bayes 1
60
Proyecto Plataforma de Correos.
use_bayes_rules 1
bayes_auto_learn 1
#pico /etc/spamassassin/v310.pre
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
#pico /etc/default/spamassassin
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0
#/etc/init.d/spamassassin start
#/etc/init.d/amavis restart
61
Proyecto Plataforma de Correos.
#mkdir /etc/apache2/ssl/
Debemos de darle permisos a la llave server.key, con el fin que solo el root
pueda realizar acción sobre ella.
Se debe tener claro, que para éste caso trabajaremos con Host Virtuales (Un
Vhost para la MMC y otro para el Squirremail).
62
Proyecto Plataforma de Correos.
#pico /etc/apache2/sites-available/mmc
<VirtualHost *:80>
ServerName server1.grupo9.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://server1.grupo9.com/mmc
</VirtualHost>
#pico /etc/apache2/sites-available/mmcs
NameVirtualHost *:443
<VirtualHost *:443>
ServerName server1.grupo9.com
ServerAdmin Administrator@grupo9.com
DocumentRoot /usr/share/mmc/
SSLEngine on
SSLCertificateKeyFile ssl/server.key
SSLCertificateFile ssl/server.crt
SSLProtocol all
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNU
LL
<Directory /usr/share/mmc/>
AllowOverride None
Order allow,deny
Allow from all
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>
ErrorLog /var/log/apache2/mmc_error.log
63
Proyecto Plataforma de Correos.
</VirtualHost>
64
Proyecto Plataforma de Correos.
Por defecto, cuando se instala Squirrelmail, éste instala su sitio web escrito en
php, el cual se encuentra en la ruta con el nombre de apache.conf
/usr/share/squirrelmail/config/apache.conf Si deseamos configurar de forma
básica el Squirrelmail, simplemente realizamos un enlace entre éste sitio y el
apache2.
#/etc/init.d/apache2 restart
#rm /etc/apache2/conf.d/apache.conf
#pico /etc/apache2/sites-available/webmail
65
Proyecto Plataforma de Correos.
<VirtualHost *:80>
ServerName webmail.grupo9.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://webmail.grupo9.com
</VirtualHost>
#pico /etc/apache2/sites-available/webmails
Éste sitio debe contener las siguientes líneas, en las cuales se define el
respectivo certificado y llave para la seguridad del sitio Web.
NameVirtualHost *:80
<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerAdmin Administrator@grupo9.com
ServerName webmail.grupo9.com
SSLEngine on
SSLCertificateKeyFile ssl/webmail.key
SSLCertificateFile ssl/webmail.crt
SSLProtocol all
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNU
LL
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks
<IfModule mod_php4.c>
php_flag register_globals off
</IfModule>
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
66
Proyecto Plataforma de Correos.
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
</VirtualHost>
Debemos darle la opción a apache2 que además escuche por el puerto 443
(Seguridad). Editar el archivo ports.conf.
#pico /etc/apache2/ports.conf
Agregar la línea Listen 443 de tal forma que el archivo quede de la siguiente
forma.
Listen 80
Listen 443
67
Proyecto Plataforma de Correos.
#a2ensite mmc
#a2ensite mmcs
#a2ensite webmail
#a2ensite webmails
# a2enmod rewrite
Cargar el módulo ssl para que pueda funcionar la seguridad de los sitios Web.
# a2enmod ssl
# /etc/init.d/apache2 restart
#pico /etc/mmc/plugins/base.ini
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=grupo9, dc=com
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
68
Proyecto Plataforma de Correos.
Editar el plugin mail.ini para poder trabajar con los usuarios y dominios
virtuales.
#pico /etc/mmc/plugins/mail.ini
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=grupo9, dc=com
[userDefault]
# For Postfix delivery
69
Proyecto Plataforma de Correos.
mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
#Ésta línea indica la cuota en Disco para el buzón de los correos.
mailuserquota = 204800
#pico /etc/mmc/plugins/network.ini
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=grupo9,dc=com
pidfile = /var/run/dhcpd.pid
init = /etc/init.d/dhcp3-server
logfile = /var/log/daemon.log
leases = /var/lib/dhcp3/dhcpd.leases
[dns]
dn = ou=DNS,dc=grupo9,dc=com
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
bindgroup = bind
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPassword
#/etc/init.d/mmc-agent start
# /etc/init.d/bind9 restart
70
Proyecto Plataforma de Correos.
#pico /etc/mmc/plugins/samba.ini
[main]
Disable = 0
# Computers Locations
BaseComputersDN = ou=Computers, dc=grupo9, dc=com
sambaConFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/samba
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
DefaultSharePath = /home/samba
# You can specify autorized paths for share creation
# Default value is the defaultSharesPath value
# autorizedSharePaths = /shares, /opt, /srv
Se debe reiniciar el servicio Samba con el fin de que se efectuen los cambios.
71
Proyecto Plataforma de Correos.
72
Proyecto Plataforma de Correos.
Se debe crear un alias al primer miembro de la zona DNS, de tal forma que el
host virtual del Squirremail sea accesible. Para esto se debe dar clic en “DNS
73
Proyecto Plataforma de Correos.
Digitar “webmail” como alias del host “server1”, luego dar clic en “Confirm” para
confirmar la configuración.
74
Proyecto Plataforma de Correos.
Se debe editar el ámbito DHCP. Para esto, dar clic en "DCHP subnets", luego
75
Proyecto Plataforma de Correos.
Llenar los campos requeridos, de tal forma que sea parecida a la ilustración de
la imagen siguiente, luego dar clic en "Confirm" para guardar los cambios
realizados.
76
Proyecto Plataforma de Correos.
Hasta éste punto la configuración del servicio DHCP está completa, de ésta
forma y se puede iniciar dicho servicio. Para esto se debe hacer clic en
servicio DHCP.
Para poder utilizar la cuenta de correo del Administrador se debe habilitar, Para
esto, dar clic en "Users", luego “List”. Dar clic en el icono de "Lápiz y Papel" en
defecto (200 MB), Lugo guarde los cambios los cambios efectuados; ó se le
77
Proyecto Plataforma de Correos.
Proceder a crear alguna cuenta de usuario del dominio. Dar clic en "Add". Se
deben llenar los campos requeridos, sin embargo los campos obligatorios que
debemos llenar son: Login, Password, Confirm Password, Name, Mail address.
Para éste caso, crearemos dos usuarios: rafa, jeyson. Se mostrará primero la
78
Proyecto Plataforma de Correos.
79
Proyecto Plataforma de Correos.
80
Proyecto Plataforma de Correos.
Para trabajar con dominios virtuales debemos realizar los siguientes pasos. El
Ahora, procedemos a darle la opción a cada usuario para que pueda trabajar
Usuario rafa.
81
Proyecto Plataforma de Correos.
82
Proyecto Plataforma de Correos.
83
Proyecto Plataforma de Correos.
Para unir algún equipo cliente XP al dominio grupo9.com debemos realizar los
siguientes pasos.
propia red.
usar DHCP.
84
Proyecto Plataforma de Correos.
“Aceptar”.
85
Proyecto Plataforma de Correos.
sistema.
86
Proyecto Plataforma de Correos.
87
Proyecto Plataforma de Correos.
usuario).
88
Proyecto Plataforma de Correos.
89
Proyecto Plataforma de Correos.
90
Proyecto Plataforma de Correos.
91
Proyecto Plataforma de Correos.
9 CONCLUSIÓN
Con el desarrollo de éste proyecto nos damos cuenta de que el Software Libre
del servidor de correos mediante el MTA Postfix y sus respectivos soportes que
que nos lleva a decir que cumplió satisfactoriamente los objetivos especificados
92
Proyecto Plataforma de Correos.
10 BIBLIOGRAFÍA
Para la realización de éste proyecto, se tuvieron varios sitios Web que nos
• http://www.howtoforge.com/mandriva-directory-server-on-debian-etch
• http://linuxsilo.net/articles/postfix.html
• http://es.wikipedia.org/wiki/Wikipedia:Portada
• http://wiki.red-sena.net/
• http://www.arrakis.es/~pfabrega/t1.html
93