Upload
bluder
View
651
Download
5
Embed Size (px)
Citation preview
MANDRIVA DIRECTORY SERVER ON DEBIAN ETCH
En este documento encontraremos la Instalacioacuten del MDS (Mandrila Directory Services) en Debiacutean Etch con el Servicio de Postfix (Correo) mas interfaz grafica (Squirrelmail) y con proteccioacuten de Antivirus y Antispam Explicaremos un poco de los pasos que debemos de efectuar y los comandos que debemos de efectuar tambieacuten tratar de aclarar los posibles errores que podemos encontrar durante y despueacutes de la Inhalacioacuten y Configuracioacuten del Servidor (PDC)
Debemos de configurar nuestro equipo con las siguientes especificaciones para todo el transcurso de la Instalacioacuten de lo contrario no podraacute funcionar correctamente el Servidor seraacute asiacute en nuestro caso
Nombre del Equipo server1examplecom Dominio con el cual trabajaremos example IP para el Servidor 1921680100 Contrasentildeas para el Sistema Sena2008admon
1 Configuracioacuten del Host
Entraremos a editar el archivo hosts en la ruta etc para asignar el nombre del Host (Equipo) y la IP del Servidor o PDC en este caso nuestro Host y nuestra IP asiacute
vim etchosts
Agregaremos los paraacutemetros para nuestro Host debe tener un aspecto como este (los paraacutemetros que se encuentran mas abajo son para IP versioacuten 6 estos no los tocaremos)
127001 localhostlocaldomain localhost1921680100 server1examplecom server1
Modificaremos el archivo correspondiente al nombre de equipo con el nombre que queremos asignar (en nuestro casi server1examplecom) con el siguiente comando
echo server1examplecom gt etchostname
Despueacutes de este comando debemos de reiniciar el equipo para que nos tome los cambios que realizamos con respecto al nombre del equipo lo reiniciamos normalmente o con el siguiente comando reboot
Despueacutes que se reinicie el sistema comprobaremos si se realizaron bien los cambios que hicimos con el nombre del equipo para ello ejecutaremos el siguiente comando
hostname hostname ndashf
El comando hostname nos daraacute el nombre completo del equipo pero hostname ndashf nos daraacute el FQDN (Que es el nombre del equipo y el nombre del Dominio asociados al equipo) el resultado de estos dos comandos en nuestro caso debe de ser server1examplecom
2 ACLS (Listas de control de acceso) del Sistema de Archivos
Con el fin de que SAMBA sea capaz de aplicar las ACLS entre el servidor Linux y los clientes Windows lo que necesita es antildeadir el soporte para ACLS al correspondiente punto de montaje en este caso la raiacutez del sistema entraremos a editar el archivo fstab en la ruta etc asiacute
vim etcfstab
Antildeadiremos la opcioacuten acl en el punto de montaje (raiacutez) donde el SAMBA almacenara los directorios donde los usuarios tendraacuten su Home Buscaremos el punto de montaje del sistema en otras palabras donde esta instalado nuestro Debiacutean y agregaremos la liacutenea debe de quedar asiacute (en nuestro caso)
etcfstab static file system information ltfile systemgt ltmount pointgt lttypegt ltoptionsgt ltdumpgt ltpassgtProc proc proc defaults 0 0devsda1 ext3 defaultsaclerrors=remount-ro 0 1devsda5 none swap sw 0 0devhdc mediacdrom0 udfiso9660 usernoauto 0 0devfd0 mediafloppy0 auto rwusernoauto 0 0
Despueacutes debemos de remontar el punto de montaje (Actualizar) para que los cambios tengan efecto con el siguiente comando
mount -o remount
Debemos de verificar si los cambios si se efectuaron correctamente para ello ejecutaremos el siguiente comando en el cual nos daraacute los datos del punto de montaje asiacute
mount -l
Nos debe de Mostar la liacutenea que agregamos anteriormente asiacute
devsda1 on type ext3 (rwaclerrors=remount-ro)
3 Configuracion de los Repositorios para la Instalacioacuten
Ahora debemos de agregar los repositorios necesarios para la instalacion de todos los paquetes para el MDS debemos de ingresar a editar el archivo sourceslist en la ruta etcapt y agregar al final del archivo los repositorios (Recordemos que si tenemos descomentadas la lineas que nos mandan al CD de instalacoacuten de Debian las debemos de comentar para que no haya conflicto) entraremos a editar el archivo asiacute
vim etcaptsourceslist
Agregaremos los siguientes repositorios al final del archivo (Cada repositorio es necesario para diferentes paquetes y aplicaciones)
deb httpmdsmandrivaorgpubmdsdebian etch maindeb httpvolatiledebianorgdebian-volatile etchvolatile main contrib non-freedeb httpwwwbackportsorgdebian etch-backports maindeb httpftpdedebianorgdebian etch main contrib non-free
Despues de agregarlos debemos de generar una llave para que se puedan actualizar y descargar paqutes desde Debian Backports para ello le daremos el siguiente comando
wget -O - httpbackportsorgdebianarchivekey | apt-key add -
Tenemos que tener muy en cuenta si estamos trabajando en una Red que utiliza Servidor Proxy (Como la de nuestro caso) que debemos de Exportar el Proxy para que podamos actualizar y descargar los paquetes lo haremos de la siguiente forma
export proxy_http=http17220495280
Despues de todo esto actualizaremos la base de Datos de los repositorios con la ayuda del comando
apt-get update
No nos debe de salir ningun error de lo contrario lo bolbemos a ejecutar o a mirar la sintaxis de los repositorios o por la conexion (Dependiendo de la velocidad de nuestra red se puede demorar un poco)
4 Paquetes necesarios para la Instalacion del MDS
Ahora instalaremos los paquetes que necesitamos para la configuracion del MDS los paquetes son
Paquetes necesarios para la interfaz y administracion grafica del MDSmmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent
Paqutes y Librerias necesarios para la interpretacion de la MMCpython-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba
Paquete para el Correo (MTA) y comprender el Correo con el LDAPpostfix postfix-ldap
Paquetes para el Servicio POP3 e IMAPdovecot-common dovecot-imapd dovecot-pop3d
Paqutes de autenticacion y autorizacion para determinados protocolossasl2-bin libsasl2 libsasl2-modules
Intermediario entre el Postfix Spamassassin y el Clamavamavisd-new
Paquetes para el Servidor DHCP integrado con el LDAPdhcp3-server dhcp3-server-ldap
Paquetes para el Servidor LDAP y sus libreriasslapd ldap-utils libnss-ldap libpam-ldap
Paquete para el Servidor DNSbind9
Paquetes para el Servidor Samba (Servidor y Cliente)samba smbclient smbldap-tools
Paquetes de utilidades de compresion para el sistemalzop nomarch zoo gzip bzip2 unzip unrar-free unzoo arj
Paquete del Servidor Antispam para el Postfixspamassassin
Paquetes que contienen la base de datos para los Spam (En Internet)razor pyzor dcc-client
Paquetes para el Antivirus del Postfix
clamav-daemon clamav Paquetes y librerias del sistema
libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl libnet-dns-perl
5 Instalacion y Configuracion de los Paquetes
Pasaremos a intalar los paquetes anteriormente mencionados con el siguiente coamando (En la instalacion nos preguntara informacion acerca del Dominio Usuario Contrasentildeas etc Los cuales explicarmos mas adelante) asiacute
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
Configuracioacuten
Durante la instalacioacuten de los nuevos paquetes nos pediraacute una serie de preguntas que deberemos de responder de la siguiente forma
LDAP
Ingresar la contrasentildea para el servidor LDAP ldquoSena2008admonrdquo
Confirmamos la Contrasentildea
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Despueacutes que se reinicie el sistema comprobaremos si se realizaron bien los cambios que hicimos con el nombre del equipo para ello ejecutaremos el siguiente comando
hostname hostname ndashf
El comando hostname nos daraacute el nombre completo del equipo pero hostname ndashf nos daraacute el FQDN (Que es el nombre del equipo y el nombre del Dominio asociados al equipo) el resultado de estos dos comandos en nuestro caso debe de ser server1examplecom
2 ACLS (Listas de control de acceso) del Sistema de Archivos
Con el fin de que SAMBA sea capaz de aplicar las ACLS entre el servidor Linux y los clientes Windows lo que necesita es antildeadir el soporte para ACLS al correspondiente punto de montaje en este caso la raiacutez del sistema entraremos a editar el archivo fstab en la ruta etc asiacute
vim etcfstab
Antildeadiremos la opcioacuten acl en el punto de montaje (raiacutez) donde el SAMBA almacenara los directorios donde los usuarios tendraacuten su Home Buscaremos el punto de montaje del sistema en otras palabras donde esta instalado nuestro Debiacutean y agregaremos la liacutenea debe de quedar asiacute (en nuestro caso)
etcfstab static file system information ltfile systemgt ltmount pointgt lttypegt ltoptionsgt ltdumpgt ltpassgtProc proc proc defaults 0 0devsda1 ext3 defaultsaclerrors=remount-ro 0 1devsda5 none swap sw 0 0devhdc mediacdrom0 udfiso9660 usernoauto 0 0devfd0 mediafloppy0 auto rwusernoauto 0 0
Despueacutes debemos de remontar el punto de montaje (Actualizar) para que los cambios tengan efecto con el siguiente comando
mount -o remount
Debemos de verificar si los cambios si se efectuaron correctamente para ello ejecutaremos el siguiente comando en el cual nos daraacute los datos del punto de montaje asiacute
mount -l
Nos debe de Mostar la liacutenea que agregamos anteriormente asiacute
devsda1 on type ext3 (rwaclerrors=remount-ro)
3 Configuracion de los Repositorios para la Instalacioacuten
Ahora debemos de agregar los repositorios necesarios para la instalacion de todos los paquetes para el MDS debemos de ingresar a editar el archivo sourceslist en la ruta etcapt y agregar al final del archivo los repositorios (Recordemos que si tenemos descomentadas la lineas que nos mandan al CD de instalacoacuten de Debian las debemos de comentar para que no haya conflicto) entraremos a editar el archivo asiacute
vim etcaptsourceslist
Agregaremos los siguientes repositorios al final del archivo (Cada repositorio es necesario para diferentes paquetes y aplicaciones)
deb httpmdsmandrivaorgpubmdsdebian etch maindeb httpvolatiledebianorgdebian-volatile etchvolatile main contrib non-freedeb httpwwwbackportsorgdebian etch-backports maindeb httpftpdedebianorgdebian etch main contrib non-free
Despues de agregarlos debemos de generar una llave para que se puedan actualizar y descargar paqutes desde Debian Backports para ello le daremos el siguiente comando
wget -O - httpbackportsorgdebianarchivekey | apt-key add -
Tenemos que tener muy en cuenta si estamos trabajando en una Red que utiliza Servidor Proxy (Como la de nuestro caso) que debemos de Exportar el Proxy para que podamos actualizar y descargar los paquetes lo haremos de la siguiente forma
export proxy_http=http17220495280
Despues de todo esto actualizaremos la base de Datos de los repositorios con la ayuda del comando
apt-get update
No nos debe de salir ningun error de lo contrario lo bolbemos a ejecutar o a mirar la sintaxis de los repositorios o por la conexion (Dependiendo de la velocidad de nuestra red se puede demorar un poco)
4 Paquetes necesarios para la Instalacion del MDS
Ahora instalaremos los paquetes que necesitamos para la configuracion del MDS los paquetes son
Paquetes necesarios para la interfaz y administracion grafica del MDSmmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent
Paqutes y Librerias necesarios para la interpretacion de la MMCpython-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba
Paquete para el Correo (MTA) y comprender el Correo con el LDAPpostfix postfix-ldap
Paquetes para el Servicio POP3 e IMAPdovecot-common dovecot-imapd dovecot-pop3d
Paqutes de autenticacion y autorizacion para determinados protocolossasl2-bin libsasl2 libsasl2-modules
Intermediario entre el Postfix Spamassassin y el Clamavamavisd-new
Paquetes para el Servidor DHCP integrado con el LDAPdhcp3-server dhcp3-server-ldap
Paquetes para el Servidor LDAP y sus libreriasslapd ldap-utils libnss-ldap libpam-ldap
Paquete para el Servidor DNSbind9
Paquetes para el Servidor Samba (Servidor y Cliente)samba smbclient smbldap-tools
Paquetes de utilidades de compresion para el sistemalzop nomarch zoo gzip bzip2 unzip unrar-free unzoo arj
Paquete del Servidor Antispam para el Postfixspamassassin
Paquetes que contienen la base de datos para los Spam (En Internet)razor pyzor dcc-client
Paquetes para el Antivirus del Postfix
clamav-daemon clamav Paquetes y librerias del sistema
libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl libnet-dns-perl
5 Instalacion y Configuracion de los Paquetes
Pasaremos a intalar los paquetes anteriormente mencionados con el siguiente coamando (En la instalacion nos preguntara informacion acerca del Dominio Usuario Contrasentildeas etc Los cuales explicarmos mas adelante) asiacute
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
Configuracioacuten
Durante la instalacioacuten de los nuevos paquetes nos pediraacute una serie de preguntas que deberemos de responder de la siguiente forma
LDAP
Ingresar la contrasentildea para el servidor LDAP ldquoSena2008admonrdquo
Confirmamos la Contrasentildea
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
mount -o remount
Debemos de verificar si los cambios si se efectuaron correctamente para ello ejecutaremos el siguiente comando en el cual nos daraacute los datos del punto de montaje asiacute
mount -l
Nos debe de Mostar la liacutenea que agregamos anteriormente asiacute
devsda1 on type ext3 (rwaclerrors=remount-ro)
3 Configuracion de los Repositorios para la Instalacioacuten
Ahora debemos de agregar los repositorios necesarios para la instalacion de todos los paquetes para el MDS debemos de ingresar a editar el archivo sourceslist en la ruta etcapt y agregar al final del archivo los repositorios (Recordemos que si tenemos descomentadas la lineas que nos mandan al CD de instalacoacuten de Debian las debemos de comentar para que no haya conflicto) entraremos a editar el archivo asiacute
vim etcaptsourceslist
Agregaremos los siguientes repositorios al final del archivo (Cada repositorio es necesario para diferentes paquetes y aplicaciones)
deb httpmdsmandrivaorgpubmdsdebian etch maindeb httpvolatiledebianorgdebian-volatile etchvolatile main contrib non-freedeb httpwwwbackportsorgdebian etch-backports maindeb httpftpdedebianorgdebian etch main contrib non-free
Despues de agregarlos debemos de generar una llave para que se puedan actualizar y descargar paqutes desde Debian Backports para ello le daremos el siguiente comando
wget -O - httpbackportsorgdebianarchivekey | apt-key add -
Tenemos que tener muy en cuenta si estamos trabajando en una Red que utiliza Servidor Proxy (Como la de nuestro caso) que debemos de Exportar el Proxy para que podamos actualizar y descargar los paquetes lo haremos de la siguiente forma
export proxy_http=http17220495280
Despues de todo esto actualizaremos la base de Datos de los repositorios con la ayuda del comando
apt-get update
No nos debe de salir ningun error de lo contrario lo bolbemos a ejecutar o a mirar la sintaxis de los repositorios o por la conexion (Dependiendo de la velocidad de nuestra red se puede demorar un poco)
4 Paquetes necesarios para la Instalacion del MDS
Ahora instalaremos los paquetes que necesitamos para la configuracion del MDS los paquetes son
Paquetes necesarios para la interfaz y administracion grafica del MDSmmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent
Paqutes y Librerias necesarios para la interpretacion de la MMCpython-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba
Paquete para el Correo (MTA) y comprender el Correo con el LDAPpostfix postfix-ldap
Paquetes para el Servicio POP3 e IMAPdovecot-common dovecot-imapd dovecot-pop3d
Paqutes de autenticacion y autorizacion para determinados protocolossasl2-bin libsasl2 libsasl2-modules
Intermediario entre el Postfix Spamassassin y el Clamavamavisd-new
Paquetes para el Servidor DHCP integrado con el LDAPdhcp3-server dhcp3-server-ldap
Paquetes para el Servidor LDAP y sus libreriasslapd ldap-utils libnss-ldap libpam-ldap
Paquete para el Servidor DNSbind9
Paquetes para el Servidor Samba (Servidor y Cliente)samba smbclient smbldap-tools
Paquetes de utilidades de compresion para el sistemalzop nomarch zoo gzip bzip2 unzip unrar-free unzoo arj
Paquete del Servidor Antispam para el Postfixspamassassin
Paquetes que contienen la base de datos para los Spam (En Internet)razor pyzor dcc-client
Paquetes para el Antivirus del Postfix
clamav-daemon clamav Paquetes y librerias del sistema
libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl libnet-dns-perl
5 Instalacion y Configuracion de los Paquetes
Pasaremos a intalar los paquetes anteriormente mencionados con el siguiente coamando (En la instalacion nos preguntara informacion acerca del Dominio Usuario Contrasentildeas etc Los cuales explicarmos mas adelante) asiacute
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
Configuracioacuten
Durante la instalacioacuten de los nuevos paquetes nos pediraacute una serie de preguntas que deberemos de responder de la siguiente forma
LDAP
Ingresar la contrasentildea para el servidor LDAP ldquoSena2008admonrdquo
Confirmamos la Contrasentildea
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Despues de todo esto actualizaremos la base de Datos de los repositorios con la ayuda del comando
apt-get update
No nos debe de salir ningun error de lo contrario lo bolbemos a ejecutar o a mirar la sintaxis de los repositorios o por la conexion (Dependiendo de la velocidad de nuestra red se puede demorar un poco)
4 Paquetes necesarios para la Instalacion del MDS
Ahora instalaremos los paquetes que necesitamos para la configuracion del MDS los paquetes son
Paquetes necesarios para la interfaz y administracion grafica del MDSmmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent
Paqutes y Librerias necesarios para la interpretacion de la MMCpython-mmc-plugins-tools python-mmc-base python-mmc-mail python-mmc-network python-mmc-proxy python-mmc-samba
Paquete para el Correo (MTA) y comprender el Correo con el LDAPpostfix postfix-ldap
Paquetes para el Servicio POP3 e IMAPdovecot-common dovecot-imapd dovecot-pop3d
Paqutes de autenticacion y autorizacion para determinados protocolossasl2-bin libsasl2 libsasl2-modules
Intermediario entre el Postfix Spamassassin y el Clamavamavisd-new
Paquetes para el Servidor DHCP integrado con el LDAPdhcp3-server dhcp3-server-ldap
Paquetes para el Servidor LDAP y sus libreriasslapd ldap-utils libnss-ldap libpam-ldap
Paquete para el Servidor DNSbind9
Paquetes para el Servidor Samba (Servidor y Cliente)samba smbclient smbldap-tools
Paquetes de utilidades de compresion para el sistemalzop nomarch zoo gzip bzip2 unzip unrar-free unzoo arj
Paquete del Servidor Antispam para el Postfixspamassassin
Paquetes que contienen la base de datos para los Spam (En Internet)razor pyzor dcc-client
Paquetes para el Antivirus del Postfix
clamav-daemon clamav Paquetes y librerias del sistema
libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl libnet-dns-perl
5 Instalacion y Configuracion de los Paquetes
Pasaremos a intalar los paquetes anteriormente mencionados con el siguiente coamando (En la instalacion nos preguntara informacion acerca del Dominio Usuario Contrasentildeas etc Los cuales explicarmos mas adelante) asiacute
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
Configuracioacuten
Durante la instalacioacuten de los nuevos paquetes nos pediraacute una serie de preguntas que deberemos de responder de la siguiente forma
LDAP
Ingresar la contrasentildea para el servidor LDAP ldquoSena2008admonrdquo
Confirmamos la Contrasentildea
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
clamav-daemon clamav Paquetes y librerias del sistema
libdbd-ldap-perl libnet-ph-perl libnet-snpp-perl libnet-telnet-perl libnet-dns-perl
5 Instalacion y Configuracion de los Paquetes
Pasaremos a intalar los paquetes anteriormente mencionados con el siguiente coamando (En la instalacion nos preguntara informacion acerca del Dominio Usuario Contrasentildeas etc Los cuales explicarmos mas adelante) asiacute
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
Configuracioacuten
Durante la instalacioacuten de los nuevos paquetes nos pediraacute una serie de preguntas que deberemos de responder de la siguiente forma
LDAP
Ingresar la contrasentildea para el servidor LDAP ldquoSena2008admonrdquo
Confirmamos la Contrasentildea
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
SAMBA
Ingresamos el nombre de nuestro Dominio ldquoexamplerdquo
Seleccionaremos ldquoNordquo cuando se nos pregunte si el archivo smbconf debe ser modificado para utilizar WINS en la configuracioacuten del DHCP
POSTFIX
Aquiacute nos Informara que solo podremos entregar Correo local con la configuracioacuten por defecto
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Seleccionaremos Sitio de Internet como tipo geneacuterico de la configuracioacuten
Pondremos el nombre de nuestro equipo server1examplecom como nombre de correo
LIBNSS ndash LDAP
En esta ventana copiaremos ldquo127001rdquo donde le diremos que el Localhost sera el identificador de recursos
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso examplecom
En la version del LDAP sera 3
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Por ultimo la Contrasentildea para el Root del LDAP ldquoSena2008admonrdquo asiacute
LIBPAM ndash LDAP
Diremos que ldquoSirdquo para que la base de Datos sea la raiz local Le diremos que ldquoNordquo cuando nos pregunte si la base de Datos LDAP require Ingreso
En la cuenta del LDAP para el Root cambiaremos el cn por admin que sera el Usuario (Si no habra conflicto mas adelante) y lo demas con nuestro dominio ldquocn=admindc=exampledc=comrdquo
Y la Contrasentildea para el Administrador LDAP ldquoSena2008admonrdquo
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
6 Configuracioacuten del LDAP
Copiar los esquemas de la MMC
Debemos de copiar el esquema para la MMC los esquemas son MMC Mail Samba DNS y DHCP Debemos de copiar estos archivos al directorio etcldapschema para el funcionamiento de la MMC Los copiaremos con el siguiente comando
cp usrsharedocpython-mmc-basecontribldapmmcschema etcldapschema cp usrsharedocpython-mmc-basecontribldapmailschema etcldapschema
Los demaacutes esquemas estaacuten en comprimidos en archivos gz los cuales debemos de desempaquetarlos con el siguiente comando
zcat usrsharedocpython-mmc-basecontribldapsambaschemagz gt etcldapschemasambaschema zcat usrsharedocpython-mmc-basecontribldapdnszoneschemagz gt etcldapschemadnszoneschema zcat usrsharedocpython-mmc-basecontribldapdhcpschemagz gt etcldapschemadhcpschema
El siguiente paso seraacute incluir en el archivo de configuracioacuten del LDAP slapdconf los esquemas que acabamos de copiar editaremos el archivo de la siguiente forma
vim etcldapslapdconfBuscaremos la siguiente liacutenea y agregaremos la ruta de los esquemas que copiamos anteriormente esta es la liacutenea
include etcldapschemainetorgpersonschema
Agregaremos las siguientes liacuteneas debajo de esta (Con la liacutenea schemacheck on estamos activando el esquema de control tambieacuten la agregamos) asiacute
include etcldapschemasambaschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschemainclude etcldapschemadhcpschema
schemacheck on
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
7 Configuracion Basica
Aqui bamos a cifrar la contrasentildea del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contrasentildea en el archive de configuracion (Sera la Contrasentildea que definimos anteriormente ldquoSena2008admonrdquo) lo haremos con el siguiente commando asiacute
slappasswd -s Sena2008admon
La salida de este comando debe de ser asiacute
SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
En el archivo de configuracioacuten slapdconf debemos de agregar la liacutenea del password (Contrasentildea) para el Admin del LDAP asiacute
vim etcldapslapdconf
Buscaremos la siguiente linea que se encuentra comentada la descomentamos y agregaremos los datos de nuestro Dominio debe de quedar asiacute
rootdn cn=admindc=exampledc=com
Debajo de esta liacutenea debemos de agregar la siguiente liacutenea seraacute el password (Contrasentildea) para el Administrador del LDAP recordemos que la Contrasentildea la ciframos con SSHA la copiaremos y la pondremos ahiacute debe de quedar asiacute
rootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contrasentildea del Administrador del LDAP que nos fue arrojado con el comando ldquoslappasswd ndashs Sena2008admonrdquo Este bloque debe de quedar asiacute
rootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indizacioacuten (Registrar los datos) para la base de datos Buscar en la siguiente linea
Indexing options for database 1
Borraremos la liacutenea que esta debajo esta
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
index objectClass eq
Y luego agregaremos las siguientes liacuteneas que seraacuten el registro para la base de datos
Index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eqindex dhcpHWAddressdhcpClassData eq
Ahora debemos de antildeadir le lista de acceso para la base de datos del SAMBA buscaremos la siguiente liacutenea
access to attrs=userPasswordshadowLastChange
La borramos y agregaremos la siguiente liacutenea
access to attrs=userPasswordsambaLMPasswordsambaNTPassword
En este punto el archivo de configuracioacuten del LDAP debe de tener esta apariencia
This is the main slapd configuration file See slapdconf(5) for more
info on the configuration options Global Directives Features to permitallow bind_v2 Schema and objectClass definitionsinclude etcldapschemacoreschemainclude etcldapschemacosineschemainclude etcldapschemanisschemainclude etcldapschemainetorgpersonschemainclude etcldapschemammcschemainclude etcldapschemasambaschemainclude etcldapschemaprinterschemainclude etcldapschemamailschemainclude etcldapschemadnszoneschema
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
include etcldapschemadhcpschema
schemacheck on
Where the pid file is put The initd script will not stop the server if you change thispidfile varrunslapdslapdpid
List of arguments that were passed to the serverargsfile varrunslapdslapdargs
Read slapdconf(5) for possible valuesloglevel 0
Where the dynamically loaded modules are storedmodulepath usrlibldapmoduleload back_bdb
The maximum number of entries that is returned for a search operationsizelimit 500
The tool-threads parameter sets the actual amount of cpus that is used for indexingtool-threads 1
Specific Backend Directives for bdb Backend specific directives apply to this backend until another backend directive occursbackend bdbcheckpoint 512 30
Specific Backend Directives for other Backend specific directives apply to this backend until another backend directive occursbackend ltothergt
Specific Directives for database 1 of type bdb Database specific directives apply to this databasse until another
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
database directive occursdatabase bdb
The base of your directory in database 1suffix dc=exampledc=com
rootdn directive for specifying a superuser on the database This is needed for syncreplrootdn cn=admindc=exampledc=comrootpw SSHAkPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Where the database file are physically stored for database 1directory varlibldap
For the Debian package we use 2MB as default but be sure to update this value if you have plenty of RAMdbconfig set_cachesize 0 2097152 0
Sven Hartge reported that he had to set this value incredibly high to get slapd running at all See httpbugsdebianorg303057 for more information Number of objects that can be locked at the same timedbconfig set_lk_max_objects 1500
Number of locks (both requested and granted)dbconfig set_lk_max_locks 1500
Number of lockersdbconfig set_lk_max_lockers 1500
Indexing options for database 1index objectClassuidNumbergidNumber eqindex cnsnuiddisplayName pressubeqindex memberUidmailgivenname eqsubinitialindex sambaSIDsambaPrimaryGroupSIDsambaDomainName eqindex zoneNamerelativeDomainName eq index dhcpHWAddressdhcpClassData eq
Save the time that the entry gets modified for database 1lastmod on
Where to store the replica logs for database 1 replogfile varlibldapreplog 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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
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 onlyaccess to attrs=userPasswordsambaLMPasswordsambaNTPassword by dn=cn=admindc=exampledc=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 youll still need this if you want SASL (and possible other things) to work happilyaccess to dnbase= by read
The admin dn has full write access everyone else can read everythingaccess to by dn=cn=admindc=exampledc=com write by read
For Netscape Roaming support each user gets a roaming profile for which they have write access toaccess to dn=ou=Roamingo=morsnet by dn=cn=admindc=exampledc=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 occursdatabase ltothergt
The base of your directory for database 2suffix dc=debiandc=org
Guardaremos y salimos del editor Ahora debemos de editar el archivo ldapconf en la ruta etcldap asiacute
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
vim etcldapldapconf
En el final del archiva agregaremos las siguiente lineas donde le estamos diciendo el nombre del nuestro Dominio y que es local (127001) asiacute
host 127001base dc=exampledc=com
Por uacuteltimo debemos de reiniciar el servidor LDAP no nos debe de salir ninguacuten error lo haremos con el siguiente comando
etcinitdslapd restart
8 Configuracioacuten SAMBA
Para la configuracioacuten del SAMBA lo pararemos lo haremos con el siguiente comando
etcinitdsamba stop
Ahora copiaremos un archivo de configuracioacuten del SAMBA que se agrega en la Instalacioacuten este archivo es una especie de resumen del archivo original del SAMBA pero contiene todo lo necesario para el funcionamiento del SAMBA Podemos hacer un respaldo del archivo original con el Siguiente comando
cp etcsambasmbconf etcsambasmbconf_Respaldo
Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta usrsharedocpython-mmc-basecontribsamba con el siguiente comando
cp usrsharedocpython-mmc-basecontribsambasmbconf etcsamba
Entraremos a editar el archivo smbconf que acabamos de copiar asiacute
vim etcsambasmbconf
En el archivo debemos de establecer los siguientes valores en la seccioacuten
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
que dice [global] estos valores seraacuten los respectivos a nuestro Dominio
workgroup = EXAMPLEnetbiosname = PDC-SRV-EXAMPLEldap admin dn = cn=admindc=exampledc=comldap suffix = dc=exampledc=comlogon path = NprofilesU
Ademas debemos de antildeadir las siguientes liacuteneas en la misma seccioacuten [global] debajo de las demaacutes
preferred master = yesos level = 65wins support = yestimeserver = yessocket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192logon drive = Hpasswd program = usrsbinsmbldap-passwd -u upasswd chat = Changing password fornNew password nn Retype new password nnadd user script = usrsbinsmbldap-useradd -m uadd user to group script = usrsbinsmbldap-groupmod -m u gset primary group script = usrsbinsmbldap-usermod -g g uadd group script = usrsbinambldap-groupadd -p gdelete user script = usrsbinsmbldap-userdel udelete user from group script = usrsbinsmbldap-groupmod -x u gdelete group script = usrsbinsmbldap-groupdel gobey pam restrictions = noldap idmap suffix = ou=Usersldap delete dn = yessecurity = user
En este archivo debemos de agregar las siguientes liacuteneas en las respectivas secciones son
En la seccion [homes]
hide files = Maildir
En la seccioacuten [profiles]
hide files = desktopinintuseriniNTUSER
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
En la seccioacuten [archives]
path = homesambaarchives En este punto el archivo de configuracioacuten de SAMBA debe tener este aspecto
[global] workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE 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 = NprofilesU logon script = logonbat logon drive = H map acl inherit = yes nt acl support = yes passdb backend = ldapsamldap127001 obey pam restrictions = no
ldap admin dn = cn=admindc=exampledc=com ldap suffix = dc=exampledc=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 = yes
passwd program = usrsbinsmbldap-passwd -u u
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
passwd chat = Changing password fornNew password nn Retype new password nn add user script = usrsbinsmbldap-useradd -m u add user to group script = usrsbinsmbldap-groupmod -m u g set primary group script = usrsbinsmbldap-usermod -g g u add group script = usrsbinambldap-groupadd -p g add machine script = usrlibmmcadd_machine_script u delete user script = usrsbinsmbldap-userdel u delete user from group script = usrsbinsmbldap-groupmod -x u g delete group script = usrsbinsmbldap-groupdel g
[homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = Maildir
[public] comment = Public share path = homesambasharespublic browseable = yes public = yes writeable = yes
[archives] comment = Backup share path = homesambaarchives 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 = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
comment = Drivers path = varlibsambaprinters browseable = yes guest ok = yes read only = yes write list = Administratorrootlpadmin
[netlogon] path = homesambanetlogon public = no writeable = no browseable = no
[profiles] path = homesambaprofiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = desktopinintuseriniNTUSER
[partage] comment = aucun path = homesambapartage browseable = yes public = no writeable = yes
Para verificar el estado de la configuracioacuten del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ninguacuten error (Este comando nos da el resumen del archivo de configuracioacuten del SAMBA) asiacute
testparm
Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP lo haremos con el siguiente comando
smbpasswd -w Sena2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente
Setting stored password for cn=admindc=exampledc=com in secretstdb
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Ahora debemos de crear un SID para el grupo de trabajo para el SAMBA el SID lo generamos con el siguiente comando
net getlocalsid EXAMPLE
La salida debe ser parecida a esta (Debemos de guardar este SID para agregarlo mas adelante en otro punto de la configuracioacuten)
SID for domain EXAMPLE is S-1-5-21-3159899821-123882392-54881133
Debemos de comprobar si el SID a sido registrado con eacutexito en el LDAP para ello ejecutaremos el siguiente comando en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName asiacute
slapcat | grep sambaDomainName
La salida debe de ser como esta
dn sambaDomainName=EXAMPLEdc=exampledc=com sambaDomainName EXAMPLE
Ya podemos iniciar el Servidor SAMBA con el siguiente comando no debe de salir error
etcinitdsamba start
9 Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bindconf el cual define la forma de comunicarse con el Servidor LDAP lo crearemos en el directorio etc smbldap-tools con el siguiente comando (Este archivo no existe lo crearemos asi y despues le agregaremos una lineas)
vim etcsmbldap-toolssmbldap_bindconf
El contenido debe ser como este (cambiaremos todos los paraacutemetros por los de nuestro Dominio)
slaveDN=cn=admindc=exampledc=com
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
slavePw=Sena2008admonmasterDN=cn=admindc=exampledc=commasterPw=Sena2008admon
Ahora debemos de crear el archivo de configuracioacuten principal smbldapconf con el siguiente comando
vim etcsmbldap-toolssmbldapconf
En este archivo debemos de agregar las siguientes liacuteneas El contenido de este archivo debe de ser como este (Recordemos que tenemos que cambiar el SID por el que nos dio en el paso anterior) asiacute
SID=S-1-5-21-3159899821-123882392-54881133sambaDomain=EXAMPLEldapTLS=0suffix=dc=exampledc=comusersdn=ou=Users$suffixcomputersdn=ou=Computers$suffixgroupsdn=ou=Groups$suffixidmapdn=ou=Idmap$suffixsambaUnixIdPooldn=sambaDomainName=EXAMPLE$suffixscope=subhash_encrypt=SSHAuserLoginShell=binbashuserHome=homeUuserHomeDirectoryMode=700userGecos=System UserdefaultUserGid=513defaultComputerGid=515skeletonDir=etcskeldefaultMaxPasswordAge=45userSmbHome=PDC-SRV-EXAMPLEUuserProfile=PDC-SRV-EXAMPLEprofilesUuserHomeDrive=HuserScript=logonbatmailDomain=examplecomsmbpasswd=usrbinsmbpasswd
Ahora poblaremos el Directorio del LDAP Con este comando crearemos la cuenta de Administrador de Dominio (Administrator) con la cual podremos agregar los Equipos al Dominio (El 512 es el numero del Grupo Administradores) asiacute
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
smbldap-populate -m 512 -a Administrator
NOTA Se le pediraacute que introduzca una contrasentildea para la cuenta de Administrador de Dominio ldquoSena2008admonrdquo
Despueacutes tenemos que modificar el UID nuacutemero de la cuenta de lo contrario no seraacute capaz de utilizar el Servidor de Correo con esta cuenta Ademaacutes antildeadir esta cuenta al grupo Domain Users (No debe de salir error)
smbldap-usermod -u 3000 -G Domain Users Administrator
10 NSS Configuracioacuten LDAP
En este paso configuraremos el Sistema para que se pueda utilizar el directorio LDAP para obtener usuario y listas de grupos Modificaremos el archivo nsswitch en la ruta etc asiacute
vim etcnsswitchconf
El contenido de este archivo debe de ser como este
etcnsswitchconf 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 ldapgroup compat ldapshadow compat ldaphosts files dnsnetworks filesprotocols db filesservices db filesethers db filesrpc db filesnetgroup nis
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
11 Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuracioacuten del SAMBA estos directorios los definimos en el archivo smbconf con los siguientes comandos
mkdir -p homesambasharespublic mkdir homesambanetlogon mkdir homesambaprofiles mkdir homesambapartage mkdir homesambaarchives
Cambiaremos el propietario del Directorio homesamba y ajustaremos los permisos necesarios para los siguientes directorios
chown -R Domain Users homesamba chmod 777 varspoolsamba homesambasharespublic chmod 755 homesambanetlogon chmod 770 homesambaprofiles homesambapartage chmod 700 homesambaarchives
NOTA si al ejecutar el comando chown ndashRrdquoDomain Usersrdquo homesamba nos aparece un error que dice que el grupo Domain Users no existe debemos de entrar a editar el siguiente archivo en la siguiente ruta asiacute
vim etclibnss-ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como el siguiente
nss_base_passwd ou=usersdc=exampledc=comnss_base_group ou=groupsdc=exampledc=com
Ahora entraremos al archivo de configuracioacuten pam_ldapconf asiacute
vim etcpam_ldapconf
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Buscamos las siguientes liacuteneas que estaacuten comentadas y las des comentamos ademaacutes de esto tambieacuten las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa debe tener un aspecto como este
nss_base_passwd ou=usersdc=exampledc=comonenss_base_shadow ou=usersdc=exampledc=comonenss_base_group ou=groupsdc=exampledc=comone
Despues tenemos que reconfigurar el paquete libnss-ldap y libpam-ldap con el siguiente comando (Debemos de configurarlo con los mismos paraacutemetros que utilizamos en el Punto nuacutemero 5) asiacute
dpkg-reconfigure libnss-ldap dpkg-reconfigure libpam-ldap
12 Configuracioacuten PAM LDAP
Aquiacute agregaremos el modulo del LDAP al PAM los cuales seraacuten utilizados para la autenticacioacuten con el LDAP Entraremos a editar los siguientes archivos
vim etcpamdcommon-account
El contenido del archivo debe de ser como este
etcpamdcommon-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 etcshadowaccount required pam_unixsoaccount sufficient pam_ldapso
Editaremos el siguiente archivo
vi etcpamdcommon-authEl contenido del archivo debe de ser como este
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
etcpamdcommon-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 (eg etcshadow LDAP Kerberos etc) The default is to use the traditional Unix authentication mechanismsauth sufficient pam_unixso nullok_secureauth sufficient pam_ldapso use_first_passauth required pam_denyso
Editaremos el siguiente archivo
vi etcpamdcommon-password
El contenido del archivo debe de ser como este
etcpamdcommon-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 beused 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 logindefs Also the min and max options enforce the length of the new passwordpassword sufficient pam_unixso nullok obscure min=4 max=8 md5password sufficient pam_ldapso use_first_pass use_authtokpassword required pam_denyso 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_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
(Replaces the `OBSCURE_CHECKS_ENAB `CRACKLIB_DICTPATH) password required pam_cracklibso retry=3 minlen=6 difok=3 password required pam_unixso use_authtok nullok md5
Editaremos el siguiente archivo
vim etcpamdcommon-session
El contenido del archivo debe de ser como este
etcpamdcommon-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_unixsession required pam_unixsosession optional pam_ldapso
Despueacutes de editar estos archivos debemos de reiniciar el sistema con el siguiente comando
reboot
Cuando el equipo se inicie de nuevo debemos de darle al Grupo de Domain Admins el derecho a antildeadir maacutequinas al dominio con el siguiente comando (En la parte de EXAMPLE ira el Dominio con el cual estamos trabajando)
net -U Administrator rpc rights grant EXAMPLEDomain Admins SeMachineAccountPrivilege
13 SSL para el POSTFIX (Correo Electroacutenico)
En primer lugar debemos de crear un archivo de configuracion con la informacion de nuestro Dominio y del Admin para el Correo Crearemos el siguiente archivo asiacute
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
vim etcsslmailcnf
Y le agregaremos las siguientes lineas
[ req ] default_bits = 2048 default_keyfile = privkeypem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert[ req_distinguished_name ] countryName = DE stateOrProvinceName = NiedersachsenlocalityName = LueneburgorganizationName = Projektfarm GmbHorganizationalUnitName = ITcommonName = server1examplecomemailAddress = postmasterexamplecom[ server_cert ] basicConstraints = critical CAFALSE subjectKeyIdentifier = hash keyUsage = digitalSignature keyEncipherment extendedKeyUsage = serverAuth clientAuth nsCertType = server nsComment = mailserver
Ahora crearemos el certificado SSL para la seguridad en las paginas Web con el siguiente commando
openssl req -x509 -new -config etcsslmailcnf -out etcsslcertsmailpem -keyout etcsslprivatemailkey -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que soacutelo el root los pueda leer con el siguiente comando
chmod 600 etcsslprivatemailkey
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
8 CONFIGURACIOacuteN DE SASL
Postfix utilizaraacute SASL para autenticar a los usuarios contra el servidor LDAP
mkdir -p varspoolpostfixvarrunsaslauthd
Ajustar la configuracioacuten predeterminada
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
vim etcdefaultsaslauthd
Se debe tener este aspecto
START=yesMECHANISMS=ldapMECH_OPTIONS=THREADS=5OPTIONS=-c -m varspoolpostfixvarrunsaslauthd -r
vim etcsaslauthdconfSe debe tener este aspecto
ldap_servers ldap127001ldap_search_base ou=Usersdc=exampledc=comldap_filter (amp(objectClass=mailAccount)(mail=ur)(mailenable=OK))
vim etcpostfixsaslsmtpdconf
Se debe tener este aspectopwcheck_method saslauthdmech_list plain login
Antildeadir postfix al grupo
adduser postfix sasl
y reiniciar SASL
etcinitdsaslauthd restart
9 CONFIGURACION POSTFIX
92 CONFIGURACIOacuteN PRINCIPAL
En primer lugar ajustar el archivo de configuracioacuten principal
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
vim etcpostfixmaincf
Editar el archivo para que se ajuste a tu dominio y ademaacutes antildeadir algunas restricciones y la configuracioacuten de autenticacioacuten - el contenido debe ser parecido a este
See usrsharepostfixmaincfdist for a commented more complete versionsmtpd_banner = $myhostname ESMTP $mail_name (DebianGNU)biff = no
appending domain is the MUAs jobappend_dot_mydomain = yesappend_at_myorigin = yes
Uncomment the next line to generate delayed mail warningsdelay_warning_time = 4h
myhostname = server1examplecommydomain = examplecomalias_maps = ldapetcpostfixldap-aliasescf hashetcaliasesalias_database = hashetcaliasesmyorigin = etcmailnamemydestination = server1examplecomexamplecomlocalhostlocaldomainlocalhostmail_destination_recipient_limit = 1mailbox_command = usrlibdovecotdeliver -d $USER$DOMAINrelayhost = mynetworks = 1270008mailbox_size_limit = 0recipient_delimiter = +inet_interfaces = all
Use Maildirhome_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 blspamcopnet
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
reject_rbl_client dnsblnjablorg reject_rbl_client cblabuseatorg reject_rbl_client sbl-xblspamhausorg reject_rbl_client listdsblorg 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 = privateauth
Fix for outlookbroken_sasl_auth_clients = yes
Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain =
SSLTLSsmtpd_tls_security_level = may smtpd_tls_loglevel = 1
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
smtpd_tls_cert_file = etcsslcertsmailpem smtpd_tls_key_file = etcsslprivatemailkeysmtpd_tls_session_cache_database = btree$queue_directorysmtpd_scache
Amaviscontent_filter = amavis[127001]10024receive_override_options = no_address_mappings
93 CONFIGURACIOacuteN ALIAS EN EL LDAP
Ahora usted tiene que editar la configuracioacuten de los alias
vim etcpostfixldap-aliasescf
Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto
server_host = 127001search_base = ou=Usersdc=exampledc=comquery_filter = (amp(objectClass=mailAccount)(mailalias=s)(mailenable=OK))result_attribute = maildropversion = 3
94 CONFIGURACIOacuteN MASTER
El maestro de configuracioacuten es la uacuteltima parte de la configuracioacuten de postfix
vim etcpostfixmastercf
Antildeadir las siguientes lineas
SMTPSsmtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
Dovecotdovecot unix - n n - - pipe flags=DRhu user=dovecotmail argv=usrlibdovecotdeliver -d $recipient
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Mail to Amavisamavis 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 Amavis12700110025 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_mynetworksreject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworksreject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=1270008 -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_checksno_unknown_recipient_checks
Reinicie Postfixetcinitdpostfix restart
10 DOVECOT
Dovecot proporcionaraacute POP3-(SSL TLS) IMAP-(SSL TLS) y de contingentes de apoyo al servidor de correo
101 CONFIGURACION PRINCIPAL
echo gt etcdovecotdovecotconf
vim etcdovecotdovecotconf
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
El contenido debe ser parecida a esta
protocols = imap imaps pop3 pop3s listen = 0000login_greeting = examplecom mailserver ready mail_location = maildir~Maildirdisable_plaintext_auth = nossl_cert_file = etcsslcertsmailpem ssl_key_file = etcsslprivatemailkeylog_path = varlogdovecotloginfo_log_path = varlogdovecotlog
IMAP configurationprotocol imap mail_plugins = quota imap_quota
POP3 configurationprotocol pop3 pop3_uidl_format = 08Xu08Xv mail_plugins = quota
LDA configuration protocol lda postmaster_address = postmaster auth_socket_path = varrundovecotauth-master mail_plugins = quota
LDAP authentication auth default mechanisms = plain login passdb ldap args = etcdovecotdovecot-ldapconf userdb ldap args = etcdovecotdovecot-ldapconf
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
socket listen master path = varrundovecotauth-master mode = 0660 user = dovecot group = mail
client path = varspoolpostfixprivateauth mode = 0660 user = postfix group = postfix
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
102 CONFIGURACION LDAP
echo gt etcdovecotdovecot-ldapconfvim etcdovecotdovecot-ldapconf
El contenido debe ser parecida a esta
hosts = 127001auth_bind = yesldap_version = 3base = dc=exampledc=comscope = subtreeuser_attrs = homeDirectory=homeuidNumber=uidmailbox=mailmailuserquota=quota=maildirstorageuser_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))pass_attrs = mail=useruserPassword=passwordpass_filter = (amp(objectClass=mailAccount)(mail=u)(mailenable=OK))default_pass_scheme = CRYPTuser_global_gid = mail
103 DELIVER
Siguiente ajustar los derechos para dovevot deliver ndash con el fin de que dovecot utilice el derecho uid y gid cuando se almacenan los mensajes en el maildirs
dpkg-statoverride --update --add root dovecot 4755 usrlibdovecotdeliver
Despues reiniciar el Dovecot
etcinitddovecot restart
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
11 AMAVIS
Postfix pasaraacute el correo a Amavis Amavis por otra parte pasaraacute a Spamassassin un ClamAV Despueacutes de que los correos han sido verificados seraacute aprobado de nuevo a Postfix
vim etcamavisconfd15-content_filter_mode
Se debe tener este aspecto
use strictbypass_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
vim etcamavisconfd50-user
Se debe tener este aspecto
use strict$pax=pax1
Despueacutes agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV
adduser clamav amavisetcinitdamavis restartetcinitdclamav-daemon restartetcinitdclamav-freshclam restart
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
12 SPAMASSASSIN
En este paso se implentaran plugins adicionales para aumentar la deteccioacuten de spam
vim etcspamassassinlocalcf
Antildeadir el siguiente contenido al archivo
dccuse_dcc 1dcc_path usrbindccproc
pyzoruse_pyzor 1pyzor_path usrbinpyzor
razoruse_razor2 1razor_config etcrazorrazor-agentconf
bayesuse_bayes 1use_bayes_rules 1bayes_auto_learn 1
vim etcspamassassinv310pre
Descomentar la liacutenea para el DCC-plugin Se debe tener este aspecto
loadplugin MailSpamAssassinPluginDCCloadplugin MailSpamAssassinPluginPyzorloadplugin MailSpamAssassinPluginRazor2loadplugin MailSpamAssassinPluginSpamCoploadplugin MailSpamAssassinPluginAWLloadplugin MailSpamAssassinPluginAutoLearnThresholdloadplugin MailSpamAssassinPluginWhiteListSubjectloadplugin MailSpamAssassinPluginMIMEHeaderloadplugin MailSpamAssassinPluginReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Ahora configurar spamassassin para que se ejecute como demonio
vim etcdefaultspamassassin
Establecer Enabled = 1 Se debe tener este aspectoENABLED=1OPTIONS=--create-prefs --max-children 5 --helper-home-dirPIDFILE=varrunspamdpidNICE=--nicelevel 15CRON=0
Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam
Entramos en el archivo de configuacion
Vim etcamavisconfd05-domain_id
Comentamos esta linea chomp($mydomain = `head -n 1 etcmailname`)
Y agregamos esta lineachomp($mydomain = `examplecom`)
y Luego entramos en el archivo de configuracion
vim etcamavisconfd20-debian_defaults
DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS
$sa_spam_subject_tag = SPAM
$sa_tag_level_deflt = 02 add spam info headers if at or above that level$sa_tag2_level_deflt = 02 add spam detected headers at that level$sa_kill_level_deflt = 01 triggers spam evasive actions$sa_dsn_cutoff_level = 10 spam level beyond which a DSN is not sent
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE
$forward_method = smtp12700110025$notify_method = $forward_method$final_virus_destiny = D_DISCARD (data not lost see virus quarantine)$final_banned_destiny = D_BOUNCE D_REJECT when front-end MTA$final_spam_destiny = D_PASS$final_bad_header_destiny = D_PASS False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion
vim etcspamassassinlocalcf
Descomentamos estas lineas y a required_score 50 le cambiamos el valor que viene por defecto que es 50 a 03 que es el valor con el que se califican los spam (si el contenido del mensaje supera 03) lo califica como spam
rewrite_header Subject SPAMreport_safe 1required_score 03Luego en el archivo de configuracion
vim etcpostfixmastercf
Debemos de verificar que este bloque tenga el siguiente contenido
ifmail unix - n n - - pipe flags=F user=ftn argv=usrlibifmailifmail -r $nexthop ($recipient)bsmtp unix - n n - - pipe flags=Fq user=bsmtp argv=usrlibbsmtpbsmtp -t$nexthop -f$sender $recipientscalemail-backend unix - n n - 2 pipe flags=R user=scalemail argv=usrlibscalemailbinscalemail-store $nexthop $user $extensio$mailman unix - n n - - pipe flags=FR user=list argv=usrlibmailmanbinpostfix-to-mailmanpy $nexthop $user
Despueacutes iniciar spamassassin y reiniciar amavis
etcinitdspamassassin start
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
etcinitdamavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archiveexe y nos debe de aparecer algo como esto
Para detector los spam podemos hacer pruebas enviando algun spam a otro usuario de la siguiente forma
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Asi se detectaran los Spam
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
13 CONFIGURACIOacuteN DE BIND
Copiamos el archivo de configuracioacuten namedconf a etcbind
cp usrsharedocpython-mmc-basecontribbindnamedconf etcbind
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Despueacutes cambiar el punto de partida del sldap para que inicie antes que el bind
update-rcd -f slapd remove ampamp update-rcd slapd start 14 2 3 4 5 stop 86 0 1 6
Modificar la configuracioacuten resolv
vim etcresolvconf
debe tener este aspecto
search examplecomnameserver 127001nameserver 1921680100
Nota Si colocando la direccion del loopback no funciona lo podemos quitar o comentar
14 CONFIGURACIOacuteN DE DHCP
Copiamos el archivo de configuracioacuten dhcp3
cp usrsharedocpython-mmc-basecontribdhcpddhcpdconf etcdhcp3vim etcdhcp3dhcpdconf
Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto
ldap-server localhostldap-port 389ldap-username cn=admin dc=example dc=comldap-password howtoforgeldap-base-dn dc=example dc=comldap-method dynamicldap-debug-file varlogdhcp-ldap-startuplog
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
16 WEBINTERFACE CONFIGURACIOacuteN
161 CERTIFICADO SSL (es creado para https)
Ahora crearemos el directorio donde se alojara el certificado ssl
mkdir etcapache2ssl
openssl req -new -x509 -keyout etcapache2sslserverkey -out etcapache2sslservercrt -days 365 -nodes
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
163 MMC
Vamos a crear dos hostvirtuales ndash uno para las conexiones http-y uno para las conexiones https
1631 HTTP VHost
vim etcapache2sites-availablehttp
Antildeadir la siguiente configuracioacuten
ltVirtualHost 192168010080gt
ServerName server1examplecom
RewriteEngine On RewriteCond HTTPS off RewriteRule () httpsHTTP_HOSTREQUEST_URI
ltVirtualHostgt
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
1632 HTTPS VHost
vim etcapache2sites-availablehttps
NameVirtualHost 1921680100443
ltVirtualHost 1921680100443gt
ServerName server1examplecom ServerAdmin Administratorexamplecom DocumentRoot usrsharemmc
SSLEngine on SSLCertificateKeyFile sslserverkey SSLCertificateFile sslservercrt SSLProtocol all SSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharemmcgt AllowOverride None Order allowdeny Allow from 1921680024 php_flag short_open_tag on SSLRequire SSL_CIPHER_USEKEYSIZE gt= 128 ltDirectorygt
ErrorLog varlogapache2mmc_errorlog CustomLog varlogapache2mmc_accesslog combined LogLevel warn
ltVirtualHostgt
Agregue el puerto HTTPS por el cual va a escuchar a la configuracioacuten de Apache
vim etcapache2portsconf
Antildeada la siguiente liacutenea
Listen 443
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
1633 MODULOS Y SITIOS
Despues debemos permitir los nuevo sitios (crear los enlaces)
a2ensite httpa2ensite https
reescribir el moacutedulo
a2enmod rewrite
y el moacutedulo SSL
a2enmod ssl
Ahora reinicie el apache
etcinitdapache2 restart
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
17 MMC PLUGINS
171 CONFIGURACION PLUGIN MMC BASE-PLUGIN
Editar el archivo de configuracion del baseini
vim etcmmcpluginsbaseini
Modificar la baseDN que se ajuste a tu dominio la contrasentildea del administrador del LDAP y cambiar la ruta de destino para los archivos - el contenido debe ser parecido a este
[ldap]
LDAP we are connected tohost = 127001 LDAP base DNbaseDN = dc=example dc=com Users location in the LDAPbaseUsersDN = ou=Users (basedn)s Groups location in the LDAPbaseGroupsDN = ou=Groups (basedn)s Computers LocationsbaseComputersDN = ou=Computers (basedn)s LDAP managerrootName = cn=admin (basedn)spassword = howtoforge If enabled the MMC will createmovedelete the home of the users Else will do nothing but only write user informations into LDAPuserHomeAction = 1 Skeleton directory to populate a new home directoryskelDir = etcskel If set all new users will belong to this group when createddefaultUserGroup = Domain Users Default home directory for usersdefaultHomeDir = home user uid number startuidStart = 10000 group gid number startgidStart = 10000 LDAP log file pathlogfile = varlogldaplog FDS log file path
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
logfile = optfedora-dsslapd-hostnamelogsaccess you can specify here where you can authorized creation of your homedir default is your defaultHomeDir example authorizedHomeDir = home home2 mntdepotnewhome[backup-tools] Path of the backup toolspath = usrlibmmcbackup-tools Where are put the archivesdestpath = homesambaarchives
172 CONFIGURACION PLUGIN MMC MAILINI
Editar el archivo de configuracion mailini
vim etcmmcpluginsmailini
Modificar la vDomainDN que se ajuste a tu dominio comentar la linea For Postfix y comentar la linea For Dovecot delivery - el contenido debe ser parecido a este
[main]
disable = 0 Enable virtual domain supportvDomainSupport = 0 If vdomain enabled OU where the domain are storedvDomainDN = ou=mailDomains dc=example dc=com[userDefault] For Postfix delivery mailbox = homeDirectoryMaildir For Dovecot deliverymailbox = maildirhomeDirectoryMaildir Default quota (200 MBytes) set for usermailuserquota = 204800
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
173 CONFIGURACION PLUGIN MMC NETWORKINI
Editar el archivo de configuracion networkini
vim etcmmcpluginsnetworkini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0[dhcp]dn = ou=DHCPdc=exampledc=compidfile = varrundhcpdpidinit = etcinitddhcp3-serverlogfile = varlogdaemonlogleases = varlibdhcp3dhcpdleases[dns]dn = ou=DNSdc=exampledc=compidfile = varrunbindrunnamedpidinit = etcinitdbind9logfile = varlogdaemonlogbindroot = etcbindbinduser = bind dnsreader = DNS Reader dnsreaderpassword = DNSReaderPassword
1734 CONFIGURACION MMC SAMBAINI
Editar el archivo de configuracion sambaini
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
vim etcmmcpluginssambaini
Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este
[main]disable = 0 Computers LocationsbaseComputersDN = ou=Computers dc=jonathan57 dc=comsambaConfFile = etcsambasmbconfsambaInitScript = etcinitdsambasambaClamavSo = usrlibsambavfsvscan-clamavso Default SAMBA shares locationdefaultSharesPath = homesamba 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
18 MMC AGENTE INICIAL
En este punto el MMC-agente estaacute listo para el iniciar
etcinitdmmc-agent start
Si al reiniciar el agente el plugin samba no carga debemos de entrar al archivo de configuracion
Vim etcsambasmbconf
Y moficamos el parametro
ldap delete=yes porldap delete=no
Este paraacutemetro especifica si una operacioacuten de borrado en la bse de datos ldapsam elimina toda la entrada o soacutelo los atributos especiacuteficos de Samba
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa
etcinitdmmc-agent restart
Es necesario reiniciar el bind
etcinitdbind restart
19 MMC WEBINTERFACE
Ahora usted puede tener acceso a la MMC webinterface a traveacutes de la paacutegina https 1921680100 (HTTP no estaacute funcionando por el momento) Entra como root Maacutes tarde cuando los nombres y el servidor dhcp-se configuran (y usted estaacute usando los mismos) usted debe conectarse a traveacutes de httpserver1examplecom (la conexioacuten se redirecciona automaacuteticamente a la paacutegina https) o https servidor1 examplecom
En esta parte nos logearemos para poder acceder a la Consola Administrativa
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Bienvenidos a la Consola Administrativa
En este paso procederemos a crear el servidor DNS
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Ahora procederemos a crear el servidor DHCP
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
COMO INSTALAR INTERFAZ WEB SQUIRRELMAIL
Descargamos la Herramienta squirrelmail para el servidor de correo
apt-get install squirrelmail
Para habilitar su interfaz grafica entramos al archivo de configuracion
vim etcpostfixmastercf
y descomentamos dos lineas
-o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
que por defecto vienen comentadas
Tambien es necesario crear un enlace de la siguiente forma
Primero debemos de estar parado en
cd etcapacheconfd
Y luego creamos el enlace
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
ln -s usrsharesquirrelmailconfigapacheconf apacheconf
Para verificar que el enlace quedo bien creado digitamos el comando
ls -l
y nos debe aparecer algo como
apacheconf -gt usrsharesquirrelmailconfigapacheconf
Debemos de crear un Alias para la interfaz Web para ingrear por medio de webmailexamplecom y no por la IP del Servidor (Clientes) Entraremos a la MMC para crearle un alias al equipo en nuestro caso (server1) para poder crear un host virtual para acceder a la interfaz Web del Squirrelmail Tendremos que seguir los siguientes pasos
Entraremos por medio del navegador Web a la consola MMC asigrave
httpserver1examplecommmc
Clic en Network clic en Nuetra Zona DNS clic en Eitar (Librito y un Laacutepiz) y agregaremos el nombre de nuestro alias en nuestro caso es webmail por ultimo clic en Confirmar y listo En nuestro caso el host virtual quedara con el nombre de webmailexamplecom
Creacion de la HostVirtual
Entraremos a la ruta etcapache2confd y moveremos el archivo apacheconf a esta ruta etcapache2sites-available asi
mv etcapache2confdapacheconf etcapache2sites-available
Despues la cambiaremos el nombre por webmails (Opcional es por orden) asi
mv etcapache2sites-availableapacheconf etcapache2sites-availablewebmails
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Editaremos el archivo webmail para configurarlo asi
nano etcapache2sites-availablewebmails
Y debe de quedar con este aspecto
Alias squirrelmail usrsharesquirrelmail
users will prefer a simple URL like httpwebmailexamplecom
NameVirtualHost 80
ltVirtualHost 443gt
DocumentRoot usrsharesquirrelmailServerName webmailexamplecom
SSLEngine onSSLCertificateKeyFile sslwebmailkeySSLCertificateFile sslwebmailcrtSSLProtocol allSSLCipherSuite ALLADHEXPORT56RC4+RSA+HIGH+MEDIUM+LOW+SSLv2+EXP+eNULL
ltDirectory usrsharesquirrelmailgt Options Indexes FollowSymLinks ltIfModule mod_php4cgt php_flag register_globals off ltIfModulegt ltIfModule mod_php5cgt php_flag register_globals off ltIfModulegt ltIfModule mod_dircgt DirectoryIndex indexphp ltIfModulegt
access to configtest is limited by default to prevent information leak ltFiles configtestphpgt order denyallow allow from all ltFilesgtSSLRequire SSL_CIPHER_USEKEYSIZE gt= 128ltDirectorygt
ltVirtualHostgt
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
redirect to https when available (thanks omendescoladadartmouthedu) Note There are multiple ways to do this and which one is suitable for your sites configuration depends Consult the apache documentation if youre unsure as this example might not work everywhereltIfModule mod_rewritecgt ltIfModule mod_sslcgt ltLocation squirrelmailgt RewriteEngine on RewriteCond HTTPS ^on$ [NC] RewriteRule httpsHTTP_HOSTREQUEST_URI [L] ltLocationgt ltIfModulegtltIfModulegt
Guardamos los cambios y salimos despueacutes debemos de crear un archivo mas que nos direccionaraacute a la interfaz web pero con la seguridad SSL pata ello copiaremos el archivo http asi
cp etcapache2sites-availablehttp etcapache2sites-availablewebmail
Entraremos a editar el archivo webmail para configurarlo asi
vim etcapache2sites-availablewebmail
Y debe de quedar asi
ltVirtualHost 80gt
ServerName webmailexamplecom
RewriteEngine OnRewriteCond HTTPS offRewriteRule () httpswebmailexamplecom
ltVirtualHostgt
Gurdamos y listo Nos falta una parte muy importante para que nos pueda funcionar el HostVistual que es generar el sertificado para la inferfaz web del Squirrelmail en el archivo webmails especificamos dos
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
nombres uno con el nombre de webmailkey y el otro con el nombre de webmailcrt los cuales al crearlos quedaran en la ruta etcapache2ssl en este punto generaremos el certificado con en siguiente comando
openssl req -new -x509 -keyout etcapache2sslwebmailkey -out etcapache2sslwebmailcrt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta etccupsssl asi
chmod 600 etcapache2sslserverkeycp etcapache2ssl etccupsssl
Despues de esto debemos de activar los HostVirtuales tanto el webmail como el webmails (Estando parados en la ruta etcapache2sites-avalaible) con el siguiente comando
a2ensite webmaila2ensite webmails
Despues de esro reiniciamos el servidor apache2 asi
etcinitdapache2 restart
NOTA Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que estaacuten en la carpeta etcapache2sites-available
- Recordemos que no podemos dejar el archivo apacheconf en la carpeta etcapache2confd por eso lo movimos para la otra ruta si esta en esta ruta pondra conflicto
Ahora debemos de probar en el navegador web el Squirrelmail (Recordemos no trabajar con servidor proxy en el Navegador) asi
httpwebmailexamplecom
Nos debe de salir una ventana del certificado le daremos el segundo parametro que es el que trae por defecto y clic en Aceptar si nos sale otra ventana daremos clic en Continuar o Aceptar y Listo podremos ingresar a la vandeja de cualquier Usuario de nistre LDAP
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
En esta parte crearemos el alias en el DNS para poder conectarnos con el nombre webmail en el navegador
La interfaz grafica del squirrelmail es algo como esto
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
En esta parte se muestra como debemos acceder al webmail
DOMINIOS VIRTUALES Y USUARIOS VIRTUALES EN POSTFIX
Primero activamos el pluginmail
Modificando algunos parametros del archivo de configuracion
Entramos al archivo de configuracion
Vim etcmmcpluginsmailini
Cambiamos el parametro
disable=0VdomainSupport=1
Descomentamos la linea
mailbox = maildirhomeDirectoryMaildir
Reiniciamos el agente
etcinitdmmc-agent restart
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Apartir de este momento el plugin del mailini nos debe quedar habilitado
Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Luego le damos
vim maincf
Entramos en este archivo y copiamos las lineas Virtual Domains Controlvirtual_mailbox_domains = ldapetcpostfixldap-domainscfvirtual_mailbox_maps = ldapetcpostfixldap-accountscfvirtual_alias_maps = ldapetcpostfixldap-aliasescf ldapetcpostfixldap-maildropcfvirtual_mailbox_base = virtual_alias_domains =virtual_minimum_uid = 100virtual_uid_maps = ldapetcpostfixldap-uidcfvirtual_gid_maps = ldapetcpostfixldap-gidcf
y Las pegamos en el archivo de configuracion ubicado en la ruta
vim etcpostfixmaincf
Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el maincf
cd usrsharedocpython-mmc-basecontribpostfixwith-virtual-domains
Los copiamos en
cd etcpostfix
Al copiarlos procedemos a modificarlos con los parametros de nuestro dominio respectivamente
Entramos en la consola Administrativa y procedemos a crear los respectivos alias para el usuario y el dominio
Luego reiniciamos el spamassasin el postfix y el clamav-daemon
etcinitdspamassassin restart
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
etcinitdpostfixetcinitdclamav-daemon
En esta parte proderemos a crear el alias para el usuario virtual
En este paso estamos creando el Dominio Virtual
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
En esta parte procederemos a crear usuarios y dominios virtuales
PARA UNIR UN EQUIPO AL DOMINIOLe damos inicio mi PC clic derecho propiedades nombre de equipo cambiar elijo dominio ingreso el nombre del dominio aceptar y listo
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Luego para unirnos al dominio se nos pide un usuario y una contrasentildea que seraacute Usuario AdministradorContrasentildea(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pediraacute que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador
Al restaurar el sistema en la pestantildea inferior nos apareceraacute el dominio al cual pertenecemos nos logearemos con la cuenta creada por el administrador