Sie sind auf Seite 1von 72

MANUAL

DE CONFIGURACION DE MANDRIVA DIRECTORY SERVER EN


DEBIAN

1. Primero especificamos el nombre del hosts y el dominio.


Vamos al archivo de configuración:

nano /etc/hosts
127.0.0.1 localhost.localdomain localhost
192.168.0.10 debian.sergio.com debian

# The following lines are desirable for IPv6 capable hosts


::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

Después insertamos el hostname en el archivo hostname


Ejecutamos
echo debian.sergio.com > /etc/hostname

2. Ahora reiniciamos el sistema


reboot

3. Cuando reinicie el sistema ejecutamos el comando.


hostname Que sirve para ver el nombre de la maquina
hostname -f Que sirve para ver el FQDN (Nombre de Dominio Totalmente Calificado).

Debe aparecer de esta forma


debian.sergio.com

4. 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.

nano /etc/fstab
# /etc/fstab: static file system information.
#
# <file system> <mount point> <type> <options> <dump> <pass>
proc /proc proc defaults 0 0
/dev/sda1 / ext3 defaults,acl,errors=remount-ro 0 1
/dev/sda5 none swap sw 0 0
/dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0
/dev/fd0 /media/floppy0 auto rw,user,noauto 0 0

Después de hacer el montaje para que tengan efecto los cambios


ejecutamos el comando.
mount -o remount / y si todo esta bien ejecumos el comando
mount -l que nos muestra los anteriores cambios efectuados.

5. Para porder descargar los paquetes necesarios para configurar el MDS


en debían, es necesario agregar las siguientes direcciones de los
repositorios, MDS, Volatiles, Backports.

- El MDS proporciona el repositorio de paquetes relacionados con MDS y


también parcheado paquetes para bind9 & dhcp3.

- El repositorio de Debían volátiles proporciona nuevos paquetes de


ClamAV y Spamassassin del repositorio bebían estándar.

- El repositorio de Debían backports proporciona nuevos paquetes para


Dovecot.

En archivo de configuración agregamos y descomentamos las siguientes líneas


debe quedar de la siguiente manera, vamos a.

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

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

### Debian MDS ###


deb http://mds.mandriva.org/pub/mds/debian etch main

### Debian Volatiles ###


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

### Debian Backporst ###


deb http://www.backports.org/debian etch-backports main

-Ahora ejecutamos el siguiente comando. Que es una llave para poder


tener permiso para descargar los paquetes de backports.
wget –O – http://backports.org/debian/archive.key | apt-key add -

6. Después actualizamos con el siguiente comando.


apt-get update

7. Ahora instalaremos los paquetes necesarios para poder configurar el


MDS en debían.
Ejecutamos:

apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-


samba mmc-agent python-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-
network python-mmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-
modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl lzop
nomarch zoo clamav clamav-daemon gzip bzip2 unzip unrar-free unzoo arj spamassassin
libnet-dns-perl razor pyzor dcc-client slapd ldap-utils libnss-ldap libpam-ldap dhcp3-server
dhcp3-server-ldap bind9 samba smbclient smbldap-tools cupsys cupsys-client foomatic-db-
engine foomatic-db foomatic-db-hpijs foomatic-db-gutenprint foomatic-filters foomatic-filters-
ppds fontconfig hpijs-ppds linuxprinting.org-ppds

Si nos aparece un error en la instalación con el paquete dcc-client lo borramos


de la lista.

8. El real-Dovecot paquetes en el repositorio estándar de Debian tiene un


error en relación con LDAP - lo que tiene que utilizar el Dovecot de
paquetes de Debian backports.
Ejecutamos:

apt-get install -t etch-backports dovecot-common dovecot-imapd dovecot-pop3d

9. Configuración
Durante la instalación de los nuevos paquetes nos pedirá una serie de
preguntas - respuestas de la siguiente manera.

LDAP
Introduzca la contraseña para el administrador de LDAP y confirmarla.
(Contraseña)

Samba
Introduzca un nombre para tu dominio.
(sergio.com)
Seleccionamos "No" cuando nos pregunte si el smb.conf debe ser modificado
para utilizar WINS configuración de DHCP.

Postfix
Seleccionamos "Internet Site" como tipo general de configuración.
Intro "debian.sergio.com" como nombre de correo.

Libnss-LDAP
Intro "127.0.0.1 " como servidor LDAP URI.
Intro "dc = sergio, dc = com" como nombre para la búsqueda de base.
Seleccionamos la versión LDAP. (3)
Intro "cn = admin, dc = sergio, dc = com" como LDAP cuenta de root.
Introducimos la contraseña para el administrador de LDAP. (Contraseña)

Libpam-LDAP
Seleccionamos "Sí" cuando nos pregunte sí local root debe ser la base de
datos de administrador.
Seleccionamos "No" cuando nos pregunte si la base de datos LDAP requiere
inicio de sesión.
Intro "cn=admin, dc=sergio, dc=com" como LDAP cuenta de root.
Introducimos la contraseña para el administrador de LDAP. (Contraseña)
10. Configuración de LDAP schema files

LDAP (Lightweight Directory Access Protocol), (Protocolo Ligero de Acceso a


Directorios) es un protocolo a nivel de aplicación que permite el acceso a un
servicio de directorio ordenado y distribuido para buscar diversa información en
un entorno de red. LDAP también es considerado una base de datos (aunque
su sistema de almacenamiento puede ser diferente) a la que pueden realizarse
consultas.

Habitualmente, almacena la información de login (usuario y contraseña) y es


utilizado para autenticarse aunque es posible almacenar otra información
(datos de contacto del usuario, ubicación de diversos recursos de la red,
permisos, certificados, etc).

En conclusión, LDAP es un protocolo de acceso unificado a un conjunto de


información sobre una red.

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

OpenLDAP tiene cuatro componentes principales:

• slapd - demonio LDAP autónomo.


• slurpd - demonio de replicación de actualizaciones LDAP autónomo.
• Rutinas de biblioteca de soporte del protocolo LDAP.
• Utilidades, herramientas y clientes.

En primer lugar copiamos los archivos del esquema MMC, correo, Samba,
DNS y DHCP en el esquema del directorio 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/

zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz >


/etc/ldap/schema/samba.schema

zcat /usr/share/doc/python-mmc-base/contrib/ldap/dnszone.schema.gz >


/etc/ldap/schema/dnszone.schema

zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz >


/etc/ldap/schema/dhcp.schema

11. Ahora incluiremos la ruta de los esquemas, en el archivo de


configuración LDAP.

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

Para habilitar schemacheck agregamos schemacheck on por debajo de los


esquemas anteriormente incluidos.(Esta directiva significa que todos los
cambios se verán obligados a seguir los esquemas de carga, se define a través
de incluir las declaraciones en el archivo conf)

12. Configuración Básica


En este paso necesitaremos la contraseña de administrador ldap (que
hemos definido durante la instalación del paquete en el paso (3) en forma
encriptada (SSHA) - para que vamos a cifrar.
Ejecutamos:
slappasswd -s "contraseña"

La salida debe ser similar a este:


{SSHA}Zdn+Zec1IhobOTBuGzwJWdSndPSNr9xA

13. Ahora vamos al archivo de configuración del LDAP


nano /etc/ldap/slapd.conf(Es el archivo principal de OpenLDAP y es aquí
donde se configuran todos sus parámetros)

Y buscamos la siguiente línea que se encuentra comentada y la


descomentamos
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,)

Después agregamos debajo la línea la contraseña del ldap encriptada


rootpw {SSHA}Zdn+Zec1IhobOTBuGzwJWdSndPSNr9xA (Indica la contraseña para
el usuario rootdn)

- Ahora tenemos que modificar un indice de opciones para la base de datos.


Buscamos la siguiente línea (aquí añadimos los índices nuevos y los permisos
de modificación)

# Indexing options for database #1


Y removemos la línea que esta debajo
index objectClass eq

Luego insertamos las siguientes líneas

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

14. Ahora agregamos samba para la lista de acceso a la base de datos.


Buscamos la siguiente línea.( que le permite al administrador cambar
cualquier entrada del directorio y al resto de los usuarios solo leerlas

access to attrs=userPassword,shadowLastChange

Y la cambiamos de la siguiente manera


access to attrs=userPassword,sambaLMPassword,sambaNTPassword

En este punto el archivo de configuración del servidor LDAP debe quedar


de la siguiente manera.

# 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

# Schema and objectClass definitions


include /etc/ldap/schema/core.schema
include /etc/ldap/schema/cosine.schema
include /etc/ldap/schema/nis.schema
include /etc/ldap/schema/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

schemacheck on

# Where the pid file is put. The init.d script


# will not stop the server if you change this.
pidfile /var/run/slapd/slapd.pid

# List of arguments that were passed to the server


argsfile /var/run/slapd/slapd.args

# Read slapd.conf(5) for possible values


loglevel 0

# Where the dynamically loaded modules are stored


modulepath /usr/lib/ldap
moduleload back_bdb

# The maximum number of entries that is returned for a search operation


sizelimit 500

# 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

# The base of your directory in database #1


suffix "dc=sergio,dc=com"

# rootdn directive for specifying a superuser on the database. This is needed


# for syncrepl.
rootdn "cn=admin,dc=sergio,dc=com"
rootpw {SSHA}Zdn+Zec1IhobOTBuGzwJWdSndPSNr9xA

# Where the database file are physically stored for database #1


directory "/var/lib/ldap"

# 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.

# Number of objects that can be locked at the same time.


dbconfig set_lk_max_objects 1500
# Number of locks (both requested and granted)
dbconfig set_lk_max_locks 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500

# Indexing options for database #1


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

# Save the time that the entry gets modified, for database #1
lastmod on

# Where to store the replica logs for database #1


# replogfile /var/lib/ldap/replog

# The userPassword by default can be changed


# by the entry owning it if they are authenticated.
# Others should not be able to see it, except the
# admin entry below
# These access lines apply to database #1 only
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
by dn="cn=admin,dc=sergio,dc=com" write
by anonymous auth
by self write
by * none

# Ensure read access to the base for things like


# supportedSASLMechanisms. Without this you may
# have problems with SASL not knowing what
# mechanisms are available and the like.
# Note that this is covered by the 'access to *'
# ACL below too but if you change that as people
# are wont to do you'll still need this if you
# want SASL (and possible other things) to work
# happily.
access to dn.base="" by * read

# The admin dn has full write access, everyone else


# can read everything.
access to *
by dn="cn=admin,dc=sergio,dc=com" write
by * read

# For Netscape Roaming support, each user gets a roaming


# profile for which they have write access to
#access to dn=".*,ou=Roaming,o=morsnet"
# by dn="cn=admin,dc=sergio,dc=com" write
# by dnattr=owner write

#######################################################################
# 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>

# The base of your directory for database #2


#suffix "dc=debian,dc=org"

Además tenemos que editar el fichero de configuración LDAP.

nano /etc/ldap/ldap.conf
Y añadimos las siguientes líneas de modo que apunten al servidor ldap

host 127.0.0.1
base dc=sergio,dc=com

Después reiniciamos el servidor LDAP


/etc/init.d/slapd restart

15. SAMBA
Configuración Básica

Samba es una implementación libre del protocolo de archivos compartidos de


Microsoft Windows, para sistemas de tipo UNIX. De esta forma, es posible que
ordenadores con Linux, Mac OS X o Unix en general se vean como servidores
o actúen como clientes en redes de Windows. Samba también permite validar
usuarios haciendo de Controlador Principal de Dominio (PDC), como miembro
de dominio e incluso como un dominio Active Directory para redes basadas en
Windows; aparte de ser capaz de servir colas de impresión, directorios
compartidos y autenticar con su propio archivo de usuarios.

Primero paramos el servidor samba


/etc/init.d/samba stop

16. Copiamos el archivo de configuración del ejemplo samba dentro del


directorio samba.

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

Agregamos las siguientes líneas en esta misma sección.

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 = "Changing password for*\nNew password*" %n\n "*Retype new
password*" %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

Ahora agregamos la siguiente línea en la sección [homes]


hide files = /Maildir/

Luego removemos las siguientes linea de las seccione [printers] y [print$]


printer admin = root,@lpadmin

Establecemos los siguientes valores en la sección [print$]


write list = Administrator,root,@lpadmin

Agregamos la siguiente linea en la sección [profiles]


hide files = /desktop.ini/ntuser.ini/NTUSER.*/

Establecemos los siguientes valores en la sección [archives]


path = /home/samba/archives

En este punto el archivo de configuración, de samba debería quedar así.

[global]
workgroup = SERGIO
netbiosname = PDC-SRV-SERGIO
preferred master = yes
os level = 65
wins support = yes
enable privileges = yes
timeserver = yes
socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192
log level = 3
null passwords = yes
security = user
# 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
logon drive = H:
map acl inherit = yes
nt acl support = yes
passdb backend = ldapsam:ldap://127.0.0.1/
obey pam restrictions = no

ldap admin dn = cn=admin,dc=sergio,dc=com


ldap suffix = dc=sergio,dc=com
ldap group suffix = ou=Groups
ldap user suffix = ou=Users
ldap machine suffix = ou=Computers
ldap idmap suffix = ou=Users
ldap passwd sync = yes
ldap delete dn = no

passwd program = /usr/sbin/smbldap-passwd -u %u


passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %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"
add machine script = /usr/lib/mmc/add_machine_script '%u'
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"

[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

[printers]
comment = Printers
path = /tmp
browseable = no
public = yes
guest ok = yes
writeable = no
printable = yes

[print$]
comment = Drivers
path = /var/lib/samba/printers
browseable = yes
guest ok = yes
read only = yes
write list = Administrator,root,@lpadmin

[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

Si todo anda bien, ejecutamos el comando, (no debería haber errores)


testparm Que sirve para ver los cambios efectuados.

17. Ahora le damos al SAMBA las credenciales necesarias para escribir en


el LDAP.

smbpasswd -w contraseña

Debe salir algo similar a esto


Setting stored password for "cn=admin,dc=sergio,dc=com"in sec rets.tdb

18. Ahora crearemos un SID (Identificador de seguridad), para nuestro


grupo de trabajo, ejecutamos.

net getlocalsid SERGIO

La salida debería ser algo así como esto


SID for domain SERGIO is: S-1-5-21-3647057178-929924568-909873380

Comprobamos si el SID ha sido registrado en el ldap con el siguiente comando

slapcat | grep sambaDomainName

La salida debe ser similar a esta


dn: sambaDomainName = sergio, dc = sergio, dc = com
sambaDomainName:SERGIO sambaDomainName:SERGIO

Ahora reiniciamos el SAMBA


/etc/init.d/samba start

19. Directorio LDAP


Lo primero que necesitamos crear es el archivo de configuración
smbldap-tools que define la manera de comunicarse con el servidor
LDAP.

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"
Y ahora, podemos crear el fichero de configuración principal.

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"

Ha llegado la hora de poblar el directorio ldap. Esto también creara la


cuenta de administrador de dominio.

Ejecutamos el siguiente comando


smbldap-populate -m 512 -a Administrator

Nos pedirá que introduzcamos la contraseña del administrador

Luego tendremos que modificar el uid-number de esta cuenta - de otro


modo no podremos utilizar el servidor de correo con esta cuenta. Además
añadimos esta cuenta al grupo "Domain Users"

Ejecutamos el siguiente comando


smbldap-usermod -u 3000 -G "Domain Users" Administrator

20. Configuración del NSS LDAP (El NNS permite autenticar usuarios vía
LDAP).

En este paso tendremos que configurar el sistema para usar el directorio


ldap, y así conseguir listas de grupos y usuarios
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

21. Directorios Samba.


Crearemos los directorios necesarios para el servidor samba

mkdir -p /home/samba/shares/public/
mkdir /home/samba/netlogon/
mkdir /home/samba/profiles/
mkdir /home/samba/partage/
mkdir /home/samba/archives/

Cambiamos la propiedad y ajustamos los derechos.

chown -R :"Domain Users" /home/samba/


chmod 777 /var/spool/samba/ /home/samba/shares/public/
chmod 755 /home/samba/netlogon/
chmod 770 /home/samba/profiles/ /home/samba/partage/
chmod 700 /home/samba/archives/

22. Configuración del PAM LDAP


Pam_ldap Es el módulo que proporciona los medios para Solaris y Linux
servidores y estaciones de trabajo para autenticarse contra directorios LDAP, y
para cambiar sus passwords en el directorio.

En este paso agregaremos ldap de soporte para el PAM.


Vamos a

nano /etc/pam.d/common-account
El contenido debe ser igual al siguiente.

#
# /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

Después reiniciamos el sistema


reboot

Cuando el sistema arranque de nuevo, damos al grupo "Domain Admins"


el derecho de agregar maquinas al dominio.

Ejecutamos el siguiente comando


net -U Administrator rpc rights grant 'SERGIO\Domain Admins' SeMachineAccountPrivilege
Nos pedirá el password y a continuación sedera los derechos.

23. SSL para el correo (Protocolo de capa de conexión segura)


SSL (Security Socket Layer) proporciona autenticación y privacidad de la
información entre extremos sobre Internet mediante el uso de criptografía.

En primer lugar preparamos un archivo de configuración con la


información necesaria.

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"

Ahora podemos crear el certificado ssl ejecutando la siguiente línea:

openssl req -x509 -new -config /etc/ssl/mail.cnf -out /etc/ssl/certs/mail.pem -keyout


/etc/ssl/private/mail.key -days 365 -nodes -batch

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

24. Configuración de SASL (Simple Authentication Security Layer)


Postfix utilizará SASL para autenticar usuarios contra un servidor LDAP

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

Ajustamos la configuración por defecto.

nano /etc/default/saslauthd
Debe tener un aspecto como este.

#
# Settings for saslauthd daemon
#

# Should saslauthd run automatically on startup? (default: no)


START=yes

# Which authentication mechanisms should saslauthd use? (default: pam)


#
# Available options in this Debian package:
# getpwent -- use the getpwent() library function
# kerberos5 -- use Kerberos 5
# pam -- use PAM
# rimap -- use a remote IMAP server
# shadow -- use the local shadow password file
# sasldb -- use the local sasldb database file
# ldap -- use LDAP (configuration is in /etc/saslauthd.conf)
#
# Only one option may be used at a time. See the saslauthd man page
# for more information.
#
# Example: MECHANISMS="pam"
MECHANISMS="ldap"

# Additional options for this mechanism. (default: none)


# See the saslauthd man page for information about mech-specific options.
MECH_OPTIONS=""

# How many saslauthd processes should we run? (default: 5)


# A value of 0 will fork a new process for each connection.
THREADS=5

# Other options (default: -c)


# See the saslauthd man page for information about these options.
#
# Example for postfix users: "-c -m /var/spool/postfix/var/run/saslauthd"
# Note: See /usr/share/doc/sasl2-bin/README.Debian
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"

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

Añadimos Postfix al grupo SASL


Ejecutamos
adduser postfix sasl

Y reiniciamos SASL
/etc/init.d/saslauthd restart
25. Configuracion del POSTFIX

El MTA (Mail Transportation Agent) Es el servidor de correo para unix, Postfix


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

Para esta configuracion escogemos la configuracion sin dominios virtuales. Tal


ves añadamos las medidas necesarias para la configuracion de un dominio
virtual mas adelante. Primero copiamos el ejemplo del archivo de configuracion
dentro del directorio postfix. Es la base para la siguiente configuracion.

cp /usr/share/doc/python-mmc-base/contrib/postfix/no-virtual-domain/* /etc/postfix/

En primer lugar ajustamos el archivo de configuracion principal.

Vamos al archivo de configuracion


nano /etc/postfix/main.cf (define la mayoría de parámetros de configuración
general por ejemplo quien es el servidor de correo, los dominios para
enmascarar los correos que va a enviar ,cuales son las redes que pueden
enviar a través de el para actuar como Cname, por que interfaces va a
escuchar entre otros)

Editamos el archivo de modo que se ajuste a nuestro dominio, adicionalmente


agregamos algunas restricciones y configuraciones de autenticación.

El contenido debe ser similar a este


# See /usr/share/postfix/main.cf.dist for a commented, more complete version
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.


append_dot_mydomain = yes
append_at_myorigin = yes

# Uncomment the next line to generate "delayed mail" warnings


#delay_warning_time = 4h

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/

# Wait until the RCPT TO command before evaluating restrictions


smtpd_delay_reject = yes

# 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

# Requirements for the HELO statement


smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_invalid_hostname,
permit

# Requirements for the sender address


smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit

# Requirement for the recipient address


smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit

# Enable SASL authentication for the smtpd daemon


smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# Fix for outlook


broken_sasl_auth_clients = yes

# Reject anonymous connections


smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =

# 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

26. Configuracion del alias en LDAP


Ahora tendremos que editar la configuracion del alias.

nano /etc/postfix/ldap-aliases.cf

Editamos el archivo que se ajuste a nuestro dominio


Que debe ser 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 = maildrop
version = 3

27. MAESTRO de configuracion


El maestro de configuracion 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)
Des comentamos las siguientes líneas
-o smtpd_enforce_tls=yes
-o smtpd _sasl_auth_enable=yes

Y agregamos las siguientes líneas

# 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

# Mail from Amavis


127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_delay_reject=no
-o smtpd_client_restrictions=permit_mynetworks,reject
-o smtpd_helo_restrictions=
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o smtpd_data_restrictions=reject_unauth_pipelining
-o smtpd_end_of_data_restrictions=
-o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0
-o smtpd_soft_error_limit=1001
-o smtpd_hard_error_limit=1000
-o smtpd_client_connection_count_limit=0
-o smtpd_client_connection_rate_limit=0
-o receive_override_options=no_header_body_checks,no_unknown_recipient_checks

Reiniciamos el postfix
/etc/init.d/postfix restart

28. DOVECOT (agente de descarga de mail)


Dovecot proporcionara POP3- (SSL/TLS), IMAP- (SSL/TLS) y contingentes
de apoyo para el servidor de correo.

Configuracion principal
Ejecutamos:
echo " " > /etc/dovecot/dovecot.conf
Para limpiar este archivo

Ahora vamos al archivo


nano /etc/dovecot/dovecot.conf
El contenido debe ser similar a este
protocols = imap imaps pop3 pop3s
listen = 0.0.0.0
login_greeting = sergio.com mailserver ready.
mail_location = maildir:~/Maildir
disable_plaintext_auth = no
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/private/mail.key
log_path = /var/log/dovecot.log
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
}
}
}

29. Configuracion de LDAP

Ejecutamos
echo "" > /etc/dovecot/dovecot-ldap.conf
Para limpiar este archivo

Ahora vamos al archivo


nano /etc/dovecot/dovecot-ldap.conf
El contenido debe ser similar a este

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

30. 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

Ejecutamos el siguiente comando


dpkg-statoverride --update --add root dovecot 4755 /usr/lib/dovecot/deliver

Después reiniciamos el dovecot


/etc/init.d/dovecot restart

31. 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.

ClamAV  es una herramienta antivirus GPL para UNIX. El propósito principal de


este software es la integración con los servidores de correo (escaneo de datos
adjuntos). El paquete proporciona un servicio multihilo flexible y escalable, un
analizador de línea de comandos y una utilidad para la actualización
automática via Internet. Los programas están basados en una librería
distribuida con el paquete Clam AntiVirus, la cual puede ser usada por su
propio software. Y lo más importante, la base de datos se mantiene actualizada
constantemente.

SpamAssassin es un filtro de correo que trata de identificar el spam mediante


el análisis del texto y el uso en tiempo real de algunas listas negras a través de
Internet. A partir de su base de datos de reglas, utiliza un amplio abanico de
pruebas heurísticas en las cabeceras y el cuerpo de los correos para identificar
el spam, también conocido como correo electrónico comercial no solicitado.
Una vez identificado, el correo puede ser opcionalmente marcado como spam o
más tarde filtrado usando el cliente de correo del usuario.

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;

A continuación añadir el usuario clamav al grupo amavis y reiniciar


amavis y ClamAV.

Ejecutamos:
adduser clamav amavis

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

32. Spamassassin
En este paso tendremos que habilitar plugins adicionales para aumentar
la detención de spam.
Vamos al archivo de configuracion
nano /etc/spamassassin/local.cf
Y agregamos el siguiente contenido en el fichero

# 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
use_bayes_rules 1
bayes_auto_learn 1

Luego vamos al archivo


nano /etc/spamassassin/v310.pre
Des comentamos la línea para el DCC-plugin.
Debe tener un aspecto como este

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
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

Ahora configuramos spamassassin para correr como demonio.

Vamos al archivo de configuracion


nano /etc/default/spamassassin
Modificamos y debe tener un aspecto como este.

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

33. Configuración del BIND (DEMONIO DNS)


En primer lugar copiamos un archivo de configuración personalizada en
el directorio BIND.

Ejecutamos el comando
cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/

Luego cambiamos el punto de partida slapd que comienza antes del BIND.

update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 .

Después vamos a configurar el resolv


Ejecutamos nano /etc/resolv.conf
Debe tener un aspecto como este
search sergio.com
nameserver 127.0.0.1
nameserver 192.168.0.10

34. Configuracion del DHCP


Primero copiamos el archivo de configuración personalizada en el
directorio dhcp3.

cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/

Luego vamos al archivo de configuracion


nano /etc/dhcp3/dhcpd.conf

Editamos el archivo que se ajuste a nuestras necesidades - que debe ser


similar a este.
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=sergio, dc=com";
ldap-password "contraseña";
ldap-base-dn "dc=sergio, dc=com";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
35. El certificado SSL (SECURITY SOCKET LAYER Ofrece tanto cifrado de la
comunicación “frenando las escuchas” como autenticación fuerte “asegurando
que ambas partes de una comunicación son correctamente identificadas y que
la comunicación no puede ser alterada”)

Ejecutamos los siguientes comandos


Creamos un archivo para guardar el certificado

mkdir /etc/apache2/ssl/
openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out
/etc/apache2/ssl/server.crt -days 365 –nodes

Aquí nos pedirán uno parámetros personales y los respondemos de


cuerdo a nuestras necesidades.

Country Name (2 letter code) [AU]:


State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:
Email Address []: postma

Ejecutamos los siguientes comandos


chmod 600 /etc/apache2/ssl/server.key
cp /etc/apache2/ssl/* /etc/cups/ssl/

36. MMC
Crearemos dos host virtuales - uno para las conexiones http y otro para
las conexiones https.

http vhost
Vamos a nano
/etc/apache2/sites-available/http
Y Agregamos la siguiente configuracion

<VirtualHost 192.168.0.10:80>

ServerName debian.sergio.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}

</VirtualHost>

https vhost
Vamos a
nano /etc/apache2/sites-available/https
Agregamos la siguiente configuracion

NameVirtualHost 192.168.0.10:443

<VirtualHost 192.168.0.10: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 192.168.0.0/24
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>

Agregamos el puerto de escucha para HTTPS a la configuración de


apache.

nano /etc/apache2/ports.conf
Agregamos la siguiente linea:

Listen 443

37. Módulos y sitios


Habilitamos los nuevos sitios, ejecutando los siguientes comandos.

a2ensite http
a2ensite https

El módulo de reescritura

a2enmod rewrite

Y el módulo de ssl

a2enmod ssl
Ahora reiniciamos apache
/etc/init.d/apache2 restart

38. MMC PLUGINS

Configuracion del plugin mmc base (Es el principal complemento para la


administración ldap.Tiene como base de operaciones gestión de LDAP
(usuarios, grupos, etc), la autenticación de usuarios y provisión).

Editamos el archivo de configuración del plugin base para MMC.


nano /etc/mmc/plugins/base.ini

Editamos la baseDN de modo que concuerde con nuestro dominio, insertamos


la contraseña correcta del administrador ldap y cambiamos la ruta de destino
para los archivos.

El contenido debería verse como este


[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

Configuracion del plugin mmc network (Permite en la MMC administrar host


y zonas DNS, host y subredes DHCP dentro del LDAP)
Editamos el archivo de configuración del plugin de red para MMC.
nano /etc/mmc/plugins/network.ini

Editamos el dominio de modo que concuerde con el nuestro


El contenido debería verse como este

[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

Configuracion del plugin mmc mail (Permite por medio de la MMC añadir/
eliminar atributos de administración de entrega de correo a los usuarios y
grupos, correos electrónicos y dominios virtuales)

Editamos el archivo de configuración del plugin de correo para MMC.


nano /etc/mmc/plugins/mail.ini

Editamos el vDomainDN de modo que concuerde con nuestro dominio,


comentamos la linea para entrega postfix y descomentamos la linea para
entrega dovecot - el contenido debería verse como este

[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 0
# 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

Configuración del plugin mmc samba (Permite a la MMC añadir/eliminar


Atributos compartidos de usuarios y grupos SAMBA).

Editamos el archivo de configuración del plugin de samba para MMC.


nano /etc/mmc/plugins/samba.ini
Lo editamos y el contenido debería verse como este

[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

# Default value when adding samba attributes to an user


# DELETE means the attibute is removed from the user LDAP entry
[userDefault]
sambaPwdMustChange = DELETE

39. Arranque inicial del agente mmc (Este se comunica con el MMC Web
para la gestión de servicios, recursos y directorios LDAP).

En este punto el agente mmc se encuentra listo para el arranque inicial.

/etc/init.d/mmc-agent start

Durante el arranque inicial el agente mmc escribiremos algunas


configuraciones relacionadas con bind y dhcp en el LDAP de modo que es
necesario que reiniciemos el bind (el servidor dhcp no está corriendo de
momento).

/etc/init.d/bind9 restart

40. mmc Web interface (Esta interfaz permite administrar vía Web los módulos
del MDS).

Ahora podemos acceder a la interfaz web del MMC vía http://127.0.0.1/mmc o


http://localhost/mmc, Ingresamos como root. (Pues anteriormente le habíamos dado
los permisos de administrador).
Esta es la plataforma de Administración de Mandriva Directory Server en
debían. (MMC).
Ahora vamos a configurar el modulo de Network
41. Primeros pasos para la configuración DNS.
Hacemos clic en "Network" en el menú principal y luego en "Add DNS Zone" en
el menu de la izquierda. Editamos la configuración de acuerdo a lo que se
muestra en la imagen inferior. Hacemos clic en "Create" para guardar los
cambios.
Ahora podemos ver como quedo creada la zona DNS, con el dominio y su
identificador de red, y luego damos clic en la lupa que aparece en la parte
derecha de la pantalla.

Como podemos apreciar ahora, hemos creado también un miembro en la zona


DNS en este caso nuestro servidor.
Nombre del equipo: debían
IP address: 192.168.0.10
42. Primeros pasos para la configuración DHCP.

Ahora debemos editar la subred DHCP. Hacemos click en "DCHP subnets" en


el lado izquierdo y luego en el símbolo del "lápiz & papel" junto a la entrada de
la subred.

Editamos la configuración de acuerdo a la imagen inferior. Hacemos clic en


"Create" para guardar los cambios realizados.
Ahora la configuración de DHCP está completa y podemos arrancar el servidor
DHCP. Hacemos clic en "Network services management" sobre el lado
izquierdo y luego clic en el triángulo verde para iniciar el servidor DHCP. Nota:
Siempre que creemos/eliminemos/cambiemos subredes DHCP debemos
reiniciar el servidor DHCP.
42. Pasos para crear usuarios.
Ahora crearemos dos usuarios.
Vamos al modulo de User and Group.
Y damos clic en “Users”.
Hacemos clic en "Users" en el menú principal y luego en "Add" en el menu de
la izquierda, para crear los usuarios.
Y llenamos los campos necesarios como aparecen el la imagen inferior.
Y por ultimo damos clic en “confirm” para crear el usuario.
Lo mismo hacemos para crear el otro usuario, damos clic "Add" en el menu de
la izquierda. Y llenamos los campos necesarios como aparecen el la imagen
inferior. Y por ultimo damos clic en “confirm” para crear el usuario.
Ahora damos clic en “list” en la parte izquierda de la pantalla, y como podemos
observar en la lista de usuarios, han sido creados los dos usuarios con éxito.
COMO UNIR UN EQUIPO WINDOWS XP A UN DOMINIO.

Ahora uniremos un equipo Windows XP al MDS en el dominio Sergio.com


Vamos a inicio damos clic en Ejecutar y nos aparecerá un recuadro como el
siguiente.
Copiamos cmd para abrir el Símbolo del sistema, y damos aceptar.

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 aparecerá un recuadro donde nos autentificaremos con un usuario y


contraseña que tenga permiso para unirse al dominio. Damos aceptar.
Y como podemos apreciar ha sido unido el Equipo al dominio SERGIO. Damos
aceptar.

Y nos pedirá que reiniciemos el Equipo para que los cambios tengan efectos.
Damos aceptar.

Al reiniciar el Equipo damos clic en Opciones, y nos conectamos al dominio


SERGIO.
Y por ultimo nos autentificamos con un usuario valido dentro del dominio
Sergio.com, en este caso será alexis. Y damos aceptar.
43. Ahora instalaremos unos paquetes para poder ver el entorno grafico
del squirrelmail.

EL SQUIRRELMAIL es una aplicación Webmail, escrita en PHP, que le permite


al cliente de un servidor de correo electrónico acceder por un interfaz Web
para su autenticación.

Vamos a la terminal y ejecutamos


apt-get install squirrelmail

El archivo de configuración
Squirrelmail-configure

Para poder acceder a la interfaz squirrelmail es necesario crear un enlace entre


el archivo apache.conf del squirellmail y el archivo /etc/apache2/apache.conf,
de este modo cuando tratemos de ingresar a nuestro correo por medio del
navegador Web, el apache2 cargara la aplicación del squirrelmail.

Nos paramos en /etc/apache2/conf.d/ y ejecutamos:


ln -s /usr/share/squirrelmail/config/apache.conf /etc/apache2/apache.conf

Ahora vamos a nuestro navegador web, e ingresamos a


http://localhost/src/webmail.php o http://localhost/src/login.php y nos
autentificamos con uno de los usuarios que creamos en el MDS en este caso
será alexis@sergio.com y la contraseña que le asignamos.
Ahora hemos entrado al buzón del correo electrónico del usuario alexis y
damos clic en compose para enviar un correo de prueba al otro usurio creado.
Luego editamos los campos necesarios para enviar el mensaje de práctica.
Llenamos el campo “To”: cano@sergio.com quien va ser el que le llegue el
correo. Y le copiamos un mesaje.
Para enviarlo damos clic en “Send”.

En la opción “sent” podemos ver el correo fue enviado a cano@sergio.com


Ahora ingresamos con el otro usuario creado en este caso es
cano@sergio.com y su contraseña.

Ahora hemos ingresado, damos clic en Inbox (bandeja de entrada) y como


podemos observar en la imagen inferior el mesaje ha llegado con éxito.
Damos clic en el mensaje.
Y veremos una serie de parámetros que nos dice por quien fue enviado, la hora
y fecha que fue enviado, a quien se dirigía y con su respectivo mensaje. En
este caso es “Hola este es un correo de practica”.

COMO CREAR USUARIOS Y DOMINIO VIRTUALES

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
Y copiamos las siguientes lineas y las llevamos al archivo de
configuración
/etc/postfix/main.cf

# Virtual Domains Control


virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf

El archivo /etc/postfix/main.cf
debe quedar de la siguiente manera
# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)


biff = no

# appending .domain is the MUA's job.


append_dot_mydomain = yes
append_at_myorigin = yes

# Uncomment the next line to generate "delayed mail" warnings


#delay_warning_time = 4h

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

# Virtual Domains Control


virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf
virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf
virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf
virtual_mailbox_base = /
virtual_alias_domains =
virtual_minimum_uid = 100
virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf
virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf

# Use Maildir
home_mailbox = Maildir/

# Wait until the RCPT TO command before evaluating restrictions


smtpd_delay_reject = yes

# 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

# Requirements for the HELO statement


smtpd_helo_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_hostname,
reject_invalid_hostname,
permit

# Requirements for the sender address


smtpd_sender_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_sender,
reject_unknown_sender_domain,
permit

# Requirement for the recipient address


smtpd_recipient_restrictions =
permit_mynetworks,
permit_sasl_authenticated,
reject_non_fqdn_recipient,
reject_unknown_recipient_domain,
reject_unauth_destination,
permit

# Enable SASL authentication for the smtpd daemon


smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth

# Fix for outlook


broken_sasl_auth_clients = yes

# Reject anonymous connections


smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =

# 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

-rw-r--r-- 1 root root 211 2007-09-10 03:20 ldap-accounts.cf


-rw-r--r-- 1 root root 175 2007-09-10 03:20 ldap-aliases.cf
-rw-r--r-- 1 root root 196 2007-09-10 03:20 ldap-domains.cf
-rw-r--r-- 1 root root 213 2007-09-10 03:20 ldap-gid.cf
-rw-r--r-- 1 root root 192 2007-09-10 03:20 ldap-maildrop.cf
-rw-r--r-- 1 root root 218 2008-04-02 06:53 ldap-transport.cf
-rw-r--r-- 1 root root 213 2007-09-10 03:20 ldap-uid.cf
-rw-r--r-- 1 root root 959 2007-09-10 03:20 main.cf

copiamos cada uno de los archivos.

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/

Ahora modificaremos cada archivo que copiamos


nos paramos en
cd /etc/postfix/

vamos cada uno de los archivos.

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 nuestro navegador web


http://localhost/mmc
ingresamos como root

Y como podemos ver ya nos aparece el modulo de configuracion grafica del


Mail service.
Ahora vamos a crear un dominio virtual.
vamos al modulo del mail service , damos clic en el enlace mail y al lado
izquierdo damos clic en add domain , alli especificaremos el nombre del
domino virtual (grupinho.com), una breve descripcion , y el numero maximo de
usuarios que contendra el dominio (ulimited quota), damos crear.
Ahora damos clic en la parte izquierda de la pantalla, en la pestaña “Mail
Domain list”, y como podemos apreciar en la imagen, el dominio virtual fue
creado.

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.

Luego especificamos el dominio virtual al que se le enviara el correo como


podemos ver a continuacion.
damos send y listo.
Luego especificamos el usuario virtual al que se le enviara el correo como
podemos ver a continuacion.
damos send y listo.
Ahora verificamos si los correos han llegado correctamente, vamos al
squirrelmail ingresamos como un usuario valido dentro del dominio original
(balbin@sergio.com).

Y como podemos ver los dos correos tanto el del usuario virtual como el del
dominio virtual han llegado al buzon del usuario (balbin@sergio.com).
Archivos de modificación para el SPAM

El archivo que se necesita configurar para el spamassassin, donde definiremos


la forma como trabajara el spam

nano /etc/amavis/conf.d/20-debian_defaults

Des comentamos la siguiente línea para saber como mostrara el spam

$sa_spam_subject_tag = '***SPAM*** ';

Y cambiamos las siguientes líneas, deben quedar de la siguiente manera


donde especificaremos el nivel de búsqueda del spam.

$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

Agregamos las dos siguientes líneas

$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;

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 )
$sa_spam_subject_tag. Esto lo hacemos para comprobar el acierto, es decir,
para ver si detecta todos los mensajes con spam o falla en algunos. Cuando
tengamos ya ’refinado’ nuestro sistema, lo normal es cambiar el D_PASS por
D_REJECT para que rechace los mensajes con spam.

Debe quedar de la siguiente manera.


$final_spam_destiny = D_PASS;

Vamos al siguiente archivo de configuración


nano /etc/amavis/conf.d/05-domain_id

Donde Modificaremos y agregaremos el dominio y debe quedar de la siguiente


manera

chomp($mydomain = `sergio.com`);

Ahora vamos al archivo de configuración


nano /etc/spamassassin/local.cf

Des comentar las siguientes líneas para reescribir la cabecera asignada y


habilitar el informe de seguridad.
rewrite_header Subject *****SPAM*****
report_safe 1

Y modificar la siguiente línea que será el modo en el que el spamassassin


identificara el spam.

required_score 5.0
Por
required_score 0.3

En el archivo de configuración
nano /etc/postfix/main.cf

Modificar la siguiente línea para filtrar el amavis por el siguiente puerto:

content_filter = amavis:[127.0.0.1]:10024
Por
content_filter = amavis:[localhost]:10024

SEGURIDAD DE SITIOS WEB

En el archivo de configuración /etc/apache2/sites-available/http


Modificamos las siguientes líneas.
<VirtualHost *:80> para que escuche por todos y
RewriteRule (.*) https://debian.sergio.com/mmc para que redireccione las peticiones
a modo seguro.

http vhost

<VirtualHost *:80>

ServerName debian.sergio.com

RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://debian.sergio.com/mmc

</VirtualHost>

https vhost
Vamos al archivo de configuración
nano /etc/apache2/sites-available/https
Agregamos la siguiente configuración

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>

Ahora crearemos el certificado para la consola administrtiva mmc.


Creamos un directorio que contendra el certificado
mkdir /etc/apache2/ssl/

Después ejecutamos el siguiente comando para crearlo


openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out
/etc/apache2/ssl/server.crt -days 365 –nodes

Damos permisos al archivo y lo copiamos a la siguiente ruta.


chmod600/etc/apache2/ssl/server.key
cp /etc/apache2/ssl/* /etc/cups/ssl/

Ahora configuraremos el siguiente archivo que fue tomado de el http


anteriormente configurado, para nuestro sitio squirrelmail.
Damos
cp /etc/apache2/sites-available/http /etc/apache2/sites-available/http/webmail

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.

El archivo nano /etc/apache2/sites-available/webmail.


Debe que dar de la siguiente manera

<VirtualHost *:80>

ServerName webmail.sergio.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://webmail.sergio.com

</VirtualHost>

Ahora para configurar el siguiente archivo (webmails) es necesario mover o


copiar los parámetros de configuración encontrados en el fichero
/etc/apache2/conf.d
Damos
mv /etc/apache2/conf.d /etc/apache2/sites-available/webmails

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>

# access to configtest is limited by default to prevent information leak


<Files configtest.php>
order deny,allow
allow from all
</Files>
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>
</VirtualHost>

# redirect to https when available (thanks omen@descolada.dartmouth.edu)


#
# Note: There are multiple ways to do this, and which one is suitable for
# your site's configuration depends. Consult the apache documentation if
# you're unsure, as this example might not work everywhere.
#
#<IfModule mod_rewrite.c>
# <IfModule mod_ssl.c>
# <Location /squirrelmail>
# RewriteEngine on
# RewriteCond %{HTTPS} !^on$ [NC]
# RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L]
# </Location>
# </IfModule>
#</IfModule>

Ahora crearemos el certificado para la nuestro sitio web (MMC).

Después ejecutamos el siguiente comando para crearlo


Openssl req -new -x509 -keyout /etc/apache2/ssl/webmail.key -out
/etc/apache2/ssl/webmail.crt -days 365 –nodes

Damos permisos al archivo y lo copiamos a la siguiente ruta


chmod600/etc/apache2/ssl/webmail.key
cp /etc/apache2/ssl/* /etc/cups/ssl/

Por ultimo habilitaremos los sitios anteriormente configurados.


a2ensite http
a2ensite https
a2ensite webmail
a2ensite webmails

Ahora probaremos nuestro certificado vía web ingresamos a nuestro navegador


y copiamos la url de la mmc.
http://debian.sergio.com/mmc.Y continuación aparecerá el certificado:
Damos ok
Elegimos la opcion ver certificado
Damos ok y como podemos ver nos a redireccionado a una pagina segura.

Ahora tendremos que crear un alias para nuestro sitio Web (squirrelmail).
Vamos al modulo network.
Y editamos la opcion debian de hostmane.
En la opción para el alias agregamos nuestro sitio “webmail” y confirmamos.

Y como podemos ver se a agregado satisfactoriamente.


Ahora podemos ingresar desde nuestro navegedor web, al squirrelmail nos
mostrara el certificado y como vemos nos redirecciona a una pagina segura.