Академический Документы
Профессиональный Документы
Культура Документы
CUARTO TRIMESTRE
TITULACION
GRUPO # 2
INTEGRANTES
SENA
CENTRO DE SERVICIOS Y GESTION EMPRESARIAL
REGIONAL ANTIOQUIA
MEDELLIN
2008
INTRODUCCION
OBJETIVOS ESPECIFICOS
MANUAL
PARA LA IMPELMENTACION DE UNA PLATAFORMA DE CORREO SEGURA
CON
ADMINISTRACION EN MANDRIVA DIRECTORY SERVER EN LINUX
DEBIAN
nano /etc/hosts
2. Para que samba sea capaz de mapear los ficheros ACL (lista de control
de acceso) entre el servidor Linux y los clientes Windows, es necesario
añadir acl en el archivo de configuración /etc/fstab (en el determinaremos
dónde deben montarse los sistemas de ficheros, en qué orden y cuales
deben comprobarse (por fallos de integridad) antes de montarse).
nano /etc/fstab
nano /etc/sources.list
#
# deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 CD Binary-1 20070819-11:52]/ etch contrib $
#deb cdrom:[Debian GNU/Linux 4.0 r1 _Etch_ - Official i386 CD Binary-1 20070819-11:52]/ etch contrib m$
# Line commented out by installer because it failed to verify:
deb http://security.debian.org/ etch/updates main contrib
# Line commented out by installer because it failed to verify:
deb-src http://security.debian.org/ etch/updates main contrib
#deb http://10.3.64.195:81/debian sarge main contrib non-free
4. Configuración
Durante la instalación de los nuevos paquetes nos pedirá una serie de
preguntas, las respuestas pueden ser de la siguiente manera.
Configuración de slapd
Nos pedirá que introduzcamos la contraseña para la entrada de administrador
de su directorio LDAP.
Damos aceptar.
Luego nos pedirá que introduzcamos de nuevo la contraseña, para verificar si
las dos contraseñas son correctas y si coinciden.
Configuración de libnss-ldap
Introducimos el URI (Identificador uniforme de recursos), para el servidor
LDAP.
Seria la dirección IP “127.0.0.1”.
Damos aceptar.
Introdocimos el nombre distintivo (DN) de la base de búsquedas.
Damos aceptar.
Configuración de libpam-ldap
Seleccionamos "Sí" cuando nos pregunte sí local root debe ser la base de
datos del administrador.
Seleccionamos "No" cuando nos pregunte, si hace falta un usuario para
acceder a la base de datos LDAP.
Damos aceptar.
OpenLDAP
Se trata de una implementación libre del protocolo que soporta múltiples
esquemas por lo que puede utilizarse para conectarse a cualquier otro LDAP
cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/
cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/
nano /etc/ldap/slapd.conf
Incluir el esquema de archivos después de (inetorgperson schema).
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
6. Configuración Básica
En este paso necesitaremos la contraseña de administrador ldap (que
hemos definido anteriormente en el paso 4) la cual vamos a cifrar en
forma encriptada (SSHA).
Ejecutamos:
slappasswd -s "contraseña"
rootdn "cn=admin,dc=sergio,dc=com"
(Esta línea establece el nodo ("usuario") que tiene privilegios globales para
modificar la "base de datos" LDAP, en este caso cn=Admin,)
rootpw {SSHA}Zdn+Zec1IhobOTBuGzwJWdSndPSNr9xA
(Indica la contraseña para el usuario Admin)
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
access to attrs=userPassword,shadowLastChange
# 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
schemacheck on
# 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
# 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
#######################################################################
# 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>
host 127.0.0.1
base dc=sergio,dc=com
9. SAMBA
Configuración Básica
cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/
Y ajustamos a nuestras necesidades
nano /etc/samba/smb.conf
Establecer los siguientes valores en la sección global
workgroup = SERGIO
netbiosname = PDC-SRV-SERGIO
ldap admin dn = cn=admin,dc=sergio,dc=com
ldap suffix = dc=sergio,dc=com
logon path = \\%N\profiles\%U
[homes]
comment = Home directories
browseable = no
writeable = yes
create mask = 0700
directory mask = 0700
hide files = /Maildir/
[public]
comment = Public share
path = /home/samba/shares/public
browseable = yes
public = yes
writeable = yes
[archives]
comment = Backup share
path = /home/samba/archives
browseable = yes
public = no
writeable = no
[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
smbpasswd -w contraseña
Debe salir algo similar a esto, que nos indica que las credenciales fueron
bien asignadas.
Setting stored password for "cn=admin,dc=sergio,dc=com"in sec rets.tdb
nano /etc/smbldap-tools/smbldap_bind.conf
El contenido debe ser similar a este
slaveDN="cn=admin,dc=sergio,dc=com"
slavePw="contraseña"
masterDN="cn=admin,dc=sergio,dc=com"
masterPw="contraseña"
nano /etc/smbldap-tools/smbldap.conf
El contenido debe ser similar a este (Sustituimos el SID por el nuestro)
SID="S-1-5-21-3647057178-929924568-909873380"
sambaDomain="SERGIO"
ldapTLS="0"
suffix="dc=sergio,dc=com"
usersdn="ou=Users,${suffix}"
computersdn="ou=Computers,${suffix}"
groupsdn="ou=Groups,${suffix}"
idmapdn="ou=Idmap,${suffix}"
sambaUnixIdPooldn="sambaDomainName=SERGIO,${suffix}"
scope="sub"
hash_encrypt="SSHA"
userLoginShell="/bin/bash"
userHome="/home/%U"
userHomeDirectoryMode="700"
userGecos="System User"
defaultUserGid="513"
defaultComputerGid="515"
skeletonDir="/etc/skel"
defaultMaxPasswordAge="45"
userSmbHome="\\PDC-SRV-SERGIO\%U"
userProfile="\\PDC-SRV-SERGIO\profiles\%U"
userHomeDrive="H:"
userScript="logon.bat"
mailDomain="sergio.com"
smbpasswd="/usr/bin/smbpasswd"
11. Configuración del NSS LDAP (El NNS permite autenticar usuarios vía
LDAP).
Editamos el nsswitch
Que define el orden de la búsqueda de las bases de datos en la red.
nsswitch.conf es el nombre del archivo de configuración para modificar el
servicio de nombres, generalmente está ubicado en el directorio /etc. Su
propósito es decirle al sistema en qué orden debería consultar los distintos
servicios de nombres para resolver información acerca de los usuarios,
resolución de nombres, y grupos de red.
Ejemplo hosts: files dns (Esto le dice al sistema que primero busque la
información de host en el archivo hosts y si no lo encuentra allí que realice una
consulta DNS.
nano /etc/nsswitch.conf
El contenido debe ser parecido a este.
# /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
hosts: files dns
networks: files
protocols: db files
services: db files
ethers: db files
rpc: db files
netgroup: nis
mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/
#
# /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
En el archivo
nano /etc/pam.d/common-auth
El contenido debe ser igual al siguiente
#
# /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
En el archivo
nano /etc/pam.d/common-password
El contenido debe ser igual al siguiente
#
# /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
En el archivo
nano /etc/pam.d/common-session
El contenido debe ser igual al siguiente
#
# /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
nano /etc/ssl/mail.cnf
Agregamos el siguiente contenido
[ 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 = CO
stateOrProvinceName = Antioquia
localityName = Medellin
organizationName = Sena
organizationalUnitName = IT
commonName = debian.sergio.com
emailAddress = postmaster@sergio.com
[ server_cert ]
basicConstraints = critical, CA:FALSE
subjectKeyIdentifier = hash
keyUsage = digitalSignature, keyEncipherment
extendedKeyUsage = serverAuth, clientAuth
nsCertType = server
nsComment = "mailserver"
Y ajustar los derechos de la clave con el fin de que sólo el root tenga
permisos para leerlo.
chmod 600 /etc/ssl/private/mail.key
15. Configuración de SASL (Simple Authentication Security Layer)
Postfix utilizará SASL para autenticar usuarios contra un servidor LDAP
Tenemos que cambiar algunas cosas para que funcione correctamente. Porque
Postfix se ejecuta chroot en /var/spool/postfix cambio tenemos un par de
caminos a vivir en las falsas raíz. (Es decir, /var/run/saslauthd se convierte en
/var/spool/postfix/var/run/saslauthd).
Creamos el directorio con el –p (el –p es para crear cada directorio padre que
falten para cada directorio)
Ejecutamos
mkdir -p /var/spool/postfix/var/run/saslauthd/
Vamos a:
nano /etc/default/saslauthd
Debe tener un aspecto como este.
#
# Settings for saslauthd daemon
#
El archivo de configuración
nano /etc/saslauthd.conf
Debe tener un aspecto como este.
ldap_servers: ldap://127.0.0.1
ldap_search_base: ou=Users,dc=sergio,dc=com
ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK))
El archivo de configuración
nano /etc/postfix/sasl/smtpd.conf
Debe quedar asi.
pwcheck_method: saslauthd
mech_list: plain login
Y reiniciamos SASL
/etc/init.d/saslauthd restart
cp /usr/share/doc/python-mmc-base/contrib/postfix/no-virtual-domain/* /etc/postfix/
myhostname = debian.sergio.com
mydomain = sergio.com
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.sergio.com,sergio.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
# Use Maildir
home_mailbox = Maildir/
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# 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:[127.0.0.1]:10024
receive_override_options = no_address_mappings
Vamos al archivo
/etc/postfix/ldap-aliases.cf
Que contiene la lista de alias del LDAP, en el se especifica al inicio un nombre
ó alias de correo.
server_host = 127.0.0.1
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))
result_attribute = maildrop
version = 3
18. Configuración del master.cf.
Esta es la última parte en la configuración del postfix.
Vamos al archivo
nano /etc/postfix/master.cf (En este archivo se definen los parámetros de
configuración de los servicios que trabajan en conjunto con el postfix, se define
por ejemplo si se va a trabajar con spamassassin, clamav , y amavis)
# 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
Reiniciamos el postfix
/etc/init.d/postfix restart
Configuracion principal
Ejecutamos:
echo " " > /etc/dovecot/dovecot.conf
Para limpiar este archivo
# 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
}
}
}
Ejecutamos
echo "" > /etc/dovecot/dovecot-ldap.conf
Para limpiar este archivo
hosts = 127.0.0.1
auth_bind = yes
ldap_version = 3
base = dc=sergio,dc=com
scope = subtree
user_attrs =
homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quota=maildir:storage
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
21. DELIVER.
(Termino que define al dovecot como agente de entrega de correos).
Ahora ajustamos los derechos para el dovecot deliver.
Entonces dovecot usara los derechos uid (identificador de usuario) y gid
(identificador de grupos de usuarios), Cuando almacene los mensajes en los
maildirs (Maildir es un formato de spool, Operación On Line y Simultánea con
Periféricos) de correo electrónico que no bloquea los ficheros para mantener la
integridad del mensaje, porque los mensajes se almacenan en ficheros
distintos con nombres únicos. Maildir es un directorio con tres subdirectorios
llamados tmp, new, y cur. Todos los subdirectorios deben residir en el mismo
sistema de archivos
Luego cedemos los derechos para poder autorizar al Dovecot, de modo que
este pueda administrar los indicadores relativos de usuarios y de grupos,
cuando sean guardados los correos en la carpeta Mialdir de los usuarios.
22. Postfix va a pasar el correo a Amavisd. Amavis por otra parte pasará a
Spamassassin y ClamAV. Después de que los mails han sido chequeados,
serán pasados de nuevo al postfix.
AMAVISD es un interfaz de alto rendimiento y fiabilidad entre el MTA y uno o
más filtros de contenidos: antivirus (clamAV o el módulo Mail: SpamAssassin)
Está escrito en Perl, asegurando alta fiabilidad, portabilidad y facilidad de
mantenimiento. Se comunica con el MTA via SMTP o LMTP, o mediante el uso
de otros programas. No existen problemas de sincronización en su diseño que
pudieran causar pérdidas de correos.
Configuremos Amavis de forma tal que los correos pasen por este y los
revise estrictamente y los descomprima si es necesario.
Vamos al archivo
nano /etc/amavis/conf.d/15-content_filter_mode
Debe tener un aspecto como este
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;
Ahora vamos a
nano /etc/amavis/conf.d/50-user
Debe tener un aspecto como este
use strict;
$pax='pax';
1;
Ejecutamos:
adduser clamav amavis
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Spamassassin
En este paso tendremos que habilitar plugins adicionales para aumentar
la detención de spam.
#razor
use_razor2 1
razor_config /etc/razor/razor-agent.conf
#bayes
use_bayes 1
use_bayes_rules 1
bayes_auto_learn 1
nano /etc/amavis/conf.d/20-debian_defaults
$sa_tag_level_deflt = 0.2; # add spam info headers if at, or above that level
$sa_tag2_level_deflt = 0.2; # add 'spam detected' headers at that level
$sa_kill_level_deflt = 0.1; # triggers spam evasive actions
$sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent
$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;
Esto lo hacemos para comprobar el acierto, es decir, para ver si detecta todos
los mensajes con spam o falla en algunos.
$sa_spam_subject_tag.
Y modificamos la siguiente línea para que pasen los mensajes con spam
(aunque la cabecera del mensaje nos lo dirá, si hemos puesto la directiva).
D_REJECT
Por
D_PASS
chomp($mydomain = `sergio.com`);
required_score 5.0
Por
required_score 0.3
En el archivo de configuración
nano /etc/postfix/main.cf
content_filter = amavis:[127.0.0.1]:10024
Por
content_filter = amavis:[localhost]:10024
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0
Después de iniciamos el spamassassin y reiniciamos el amavis.
/etc/init.d/spamassassin start
/etc/init.d/amavis restart
Ejecutamos el comando
cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/
cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/
[ldap]
# LDAP we are connected to
host = 127.0.0.1
# LDAP base DN
baseDN = dc=sergio, dc=com
# Users location in the LDAP
baseUsersDN = ou=Users, %(basedn)s
# Groups location in the LDAP
baseGroupsDN = ou=Groups, %(basedn)s
# Computers Locations
baseComputersDN = ou=Computers, %(basedn)s
# LDAP manager
rootName = cn=admin, %(basedn)s
password = contraseña
# If enabled, the MMC will create/move/delete the home of the users
# Else will do nothing, but only write user informations into LDAP
userHomeAction = 1
# Skeleton directory to populate a new home directory
skelDir = /etc/skel
# If set, all new users will belong to this group when created
defaultUserGroup = Domain Users
# Default home directory for users
defaultHomeDir = /home
# user uid number start
uidStart = 10000
# group gid number start
gidStart = 10000
# LDAP log file path
Logfile = /var/log/ldap.log
# FDS log file path
# logfile = /opt/fedora-ds/slapd-hostname/logs/access
# you can specify here where you can authorized creation of your homedir
# default is your defaultHomeDir
# example:
# authorizedHomeDir = /home, /home2, /mnt/depot/newhome
[backup-tools]
# Path of the backup tools
path = /usr/lib/mmc/backup-tools
# Where are put the archives
destpath = /home/samba/archives
[main]
disable = 0
[dhcp]
dn = ou=DHCP,dc=sergio,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=sergio,dc=com
pidfile = /var/run/bind/run/named.pid
init = /etc/init.d/bind9
logfile = /var/log/daemon.log
bindroot = /etc/bind/
binduser = bind
# dnsreader = DNS Reader
# dnsreaderpassword = DNSReaderPassword
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=sergio, dc=com
sambaConfFile = /etc/samba/smb.conf
sambaInitScript = /etc/init.d/samba
sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so
# Default SAMBA shares location
defaultSharesPath = /home/samba
# You can specify authorized paths for share creation
# Default value is the defaultSharesPath value
# authorizedSharePaths = /shares, /opt, /srv
/etc/init.d/mmc-agent start
Después de que nos aparezca la consola o Símbolo del sistema, pedimos una
asignación de IP al DHCP que se en encuentra en el dominio sergio.com, con
el siguiente comando.
ipconfig /renew
Luego vamos al icono de Mi PC y damos clic derecho sobre el.
Y nos aparecerá un recuadro como el siguiente.
Damos clic en la pestaña Nombre de equipo y luego en la opción Cambiar.
Ahora señalamos la opción Dominio y copiamos el nombre del dominio al que
se va a unir el equipo, en este caso será SERGIO. Damos aceptar.
Y nos pedirá que reiniciemos el Equipo para que los cambios tengan efectos.
Damos aceptar.
El archivo de configuración
Squirrelmail-configure
Dominios virtuales.
Una opción muy común en la configuración de servidores de correo electrónico
es hospedar las cuentas de correo de varios dominios. Estos dominios son,
efectivamente, tratados como dominios virtuales pero, a diferencia de los alias
virtuales, es preciso disponer de un buzón de correo para las cuentas de cada
dominio. El uso de dominios virtuales y alias virtuales es complementario, no
exclusivo.
Usuarios virtuales.
Es una cuenta adicional o un alias de un usuario real perteneciente a un
dominio, con el fin de que cuando se solicite esta cuenta adicional (correo
electrónico) esta sea redirigida al buzón del usuario real, de este modo el
usuario real se podrá solicitar ya sea por su nombre o por su alias (usuario
virtual).
Vamos a:
nano /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains/main.cf
El archivo /etc/postfix/main.cf
debe quedar de la siguiente manera
myhostname = debian.sergio.com
alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = debian.sergio.com,sergio.com,localhost.localdomain,localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
# Use Maildir
home_mailbox = Maildir/
# Basics Restrictions
smtpd_helo_required = yes
strict_rfc821_envelopes = yes
# Requirements for the connecting server
smtpd_client_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_rbl_client bl.spamcop.net,
reject_rbl_client dnsbl.njabl.org,
reject_rbl_client cbl.abuseat.org,
reject_rbl_client sbl-xbl.spamhaus.org,
reject_rbl_client list.dsbl.org,
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:[127.0.0.1]:10024
#receive_override_options = no_address_mappings
Ahora nos paramos en:
cd /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-domains/
y ejecutamos
ls -l
para que nos muestre los archivos de configuracion, que vamos a copiar
a la ruta /etc/postfix
cp ldap-accounts.c /etc/postfix/
cp ldap-aliases.cf /etc/postfix/
cp ldap-domains.cf /etc/postfix/
cp ldap-gid.cf /etc/postfix/
cp ldap-maildrop.cf /etc/postfix/
cp ldap-transport.cf /etc/postfix/
cp ldap-uid.cf /etc/postfix/
nano ldap-accounts.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))
result_attribute = mailbox
version = 3
expansion_limit = 1
nano ldap-aliases.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK))
result_attribute = mail
version = 3
nano ldap-domains.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=mailDomains,dc=sergio,dc=com
query_filter = (&(objectClass=mailDomain)(virtualdomain=%s))
result_attribute = virtualdomain
version = 3
nano ldap-gid.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mail=%s)(mailenable=OK))
result_attribute = gidNumber
version = 3
expansion_limit = 1
nano ldap-maildrop.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))
result_attribute = maildrop
version = 3
nano ldap-transport.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mailenable=OK)(mail=%s))
result_attribute = mailhost
result_format = smtp:[%s]
version = 3
nano ldap-uid.cf
debe tener un aspecto similar a este.
server_host = 127.0.0.1
server_port = 389
search_base = ou=Users,dc=sergio,dc=com
query_filter = (&(objectClass=mailAccount)(mail=%s)(mailenable=OK))
result_attribute = uidNumber
version = 3
expansion_limit = 1
Ahora vamos a
nano /etc/mmc/plugins/mail.ini
y hacemos unas modificaciones y el archivo debe ser parecido a este.
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# If vdomain enabled, OU where the domain are stored
vDomainDN = ou=mailDomains, dc=sergio, dc=com
[userDefault]
# For Postfix delivery
mailbox = %homeDirectory%/Maildir/
# For Dovecot delivery
mailbox = maildir:%homeDirectory%/Maildir/
# Default quota (200 MBytes) set for user
mailuserquota = 204800
reiniciamos el MMC-AGENT
/etc/init.d/mmc-agent restart
Ahora vamos a la pestaña “Users”, y como podemos ver hemos creado dos
nuevos usuarios para hacer la prueba de los dominios y usuarios virtuales.
Damos clic en el usuario (balbin@sergio.com).
Y en la parte de Mail plugin, llenamos los campos del “Mail alias”.
Agregamos un alias para el usuario virtual en el primer campo, en este caso
sera (futbol@sergio.com) y en el segundo campo especificamos el nuevo
dominio virtual para este usuario (balbin@grupinho.com), y damos clic en
confirm para efectuar los cambios.
Ahora realizaremos las pruebas enviando varios correos.
vamos al squirrelmail ingresamos como un usuario valido dentro del dominio
original (yeison@sergio.com).
Despues que ingresemos damos clic en compose, para enviar un correo.
Crearemos dos host virtuales - uno para las conexiones http y otro para
las conexiones https.
<VirtualHost *:80>
ServerName debian.sergio.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://debian.sergio.com/mmc
</VirtualHost>
NameVirtualHost *:443
<VirtualHost *:443>
ServerName debian.sergio.com
ServerAdmin Administrator@sergio.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:+eNULL
<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
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn
</VirtualHost>
Copiamos lo siguiente.
cp /etc/apache2/sites-available/http /etc/apache2/sites-available/http/webmail
Webmail
Vamos archivo nano /etc/apache2/sites-available/webmail.
Modificamos las siguientes líneas.
<VirtualHost *:80> para que escuche por todos y
RewriteRule (.*) https:// webmail.sergio.com para que redireccione las
peticiones a modo seguro.
ServerName webmail.sergio.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://webmail.sergio.com
</VirtualHost>
Webmails
Vamos al archivo nano /etc/apache2/sites-available/webmails
El archivo debería quedar de la siguiente forma
Alias /squirrelmail /usr/share/squirrelmail
# users will prefer a simple URL like http://webmail.example.com
NameVirtualHost *:80
<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerName webmail.sergio.com
ServerAdmin Administrator@sergio.com
SSLEngine on
SSLCertificateKeyFile ssl/webmail.key
SSLCertificateFile ssl/webmail.crt
SSLProtocol all
SSLCipherSuite
ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
<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>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
nano /etc/apache2/ports.conf
Agregamos la siguiente linea:
Listen 443
Ahora tendremos que crear un alias para nuestro sitio Web (squirrelmail).
Vamos al modulo network.
Y editamos la opcion debian de hostmane.
CONCLUCIONES
NETGRAFIA
http://www.howtoforge.com/mandriva-directory-server-on-debian-etch
http://www.wikipedia.org
http://wiki.red-sena.net
Agradecimientos especiales al
Intructor del SENA
Andres Mauricio Ortiz