MANDRIVA DIRECTORY SERVER ON DEBIAN ETCH En este documento encontraremos la Instalación del MDS (Mandrila Directory Services) en Debían Etch, con el Servicio de Postfix (Correo) mas interfaz grafica (Squirrelmail) y con protección de Antivirus y Antispam. Explicaremos un poco de los pasos que debemos de efectuar y los comandos que debemos de efectuar, también tratar de aclarar los posibles errores que podemos encontrar durante y después de la Inhalación y Configuración del Servidor (PDC). Debemos de configurar nuestro equipo con las siguientes especificaciones para todo el transcurso de la Instalación de lo contrario no podrá funcionar correctamente el Servidor, será así en nuestro caso: • • • • 1.
Nombre del Equipo: server1.example.com Dominio con el cual trabajaremos: example IP para el Servidor: 192.168.0.100 Contraseñas para el Sistema: Sena.2008admon Configuración 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, así: # vim /etc/hosts Agregaremos los parámetros para nuestro Host, debe tener un aspecto como este (los parámetros que se encuentran mas abajo son para IP versión 6, estos no los tocaremos): 127.0.0.1 192.168.0.100
localhost.localdomain localhost server1.example.com server1
Modificaremos el archivo correspondiente al nombre de equipo, con el nombre que queremos asignar (en nuestro casi server1.example.com) con el siguiente comando: # echo server1.example.com > /etc/hostname Después 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 Después 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 –f El comando hostname nos dará el nombre completo del equipo, pero, hostname –f nos dará 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 server1.example.com.
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 añadir el soporte para ACLS al correspondiente punto de montaje, en este caso la raíz del sistema, entraremos a editar el archivo fstab en la ruta /etc/, así: # vim /etc/fstab Añadiremos la opción acl en el punto de montaje (raíz) donde el SAMBA almacenara los directorios donde los usuarios tendrán su Home. Buscaremos el punto de montaje del sistema, en otras palabras donde esta instalado nuestro Debían y agregaremos la línea, debe de quedar así (en nuestro caso): # /etc/fstab: static file system information. # #
<mount point> <pass> Proc /proc proc defaults 0 0 /dev/sda1 / ext3 defaults,acl,errors=remount-ro 01 /dev/sda5 none swap sw 0 0 /dev/hdc /media/cdrom0 udf,iso9660 user,noauto 0 0 /dev/fd0 /media/floppy0 auto rw,user,noauto 0 0
Después 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 dará los datos del punto de montaje, así: # mount -l Nos debe de Mostar la línea que agregamos anteriormente, así: # /dev/sda1 on / type ext3 (rw,acl,errors=remount-ro) 3.
Configuracion de los Repositorios para la Instalación
Ahora debemos de agregar los repositorios necesarios para la instalacion de todos los paquetes para el MDS, debemos de ingresar a editar el archivo sources.list en la ruta /etc/apt/ y agregar al final del archivo los repositorios (Recordemos que si tenemos descomentadas la lineas que nos mandan al CD de instalacón de Debian las debemos de comentar para que no haya conflicto), entraremos a editar el archivo así: # vim /etc/apt/sources.list Agregaremos los siguientes repositorios al final del archivo (Cada repositorio es necesario para diferentes paquetes y aplicaciones): deb http://mds.mandriva.org/pub/mds/debian etch main deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-free deb http://www.backports.org/debian etch-backports main deb http://ftp.de.debian.org/debian/ 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 - http://backports.org/debian/archive.key | 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=http://172.20.49.52:80 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 MDS: mmc-web-base mmc-web-mail mmc-web-network mmc-webproxy mmc-web-samba mmc-agent • Paqutes y Librerias necesarios para la interpretacion de la MMC: python-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 LDAP: postfix postfix-ldap • Paquetes para el Servicio POP3 e IMAP dovecot-common dovecot-imapd dovecot-pop3d • Paqutes de autenticacion y autorizacion para determinados protocolos: sasl2-bin libsasl2 libsasl2-modules • Intermediario entre el Postfix, Spamassassin y el Clamav amavisd-new • Paquetes para el Servidor DHCP integrado con el LDAP: dhcp3-server dhcp3-server-ldap • Paquetes para el Servidor LDAP y sus librerias: slapd ldap-utils libnss-ldap libpam-ldap • Paquete para el Servidor DNS: bind9
• • • • • •
5.
Paquetes para el Servidor Samba (Servidor y Cliente): samba smbclient smbldap-tools Paquetes de utilidades de compresion para el sistema: lzop nomarch zoo gzip bzip2 unzip unrar-free unzoo arj Paquete del Servidor Antispam para el Postfix: spamassassin 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 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, Contraseñas, etc. Los cuales explicarmos mas adelante), así: # apt-get install mmc-web-base mmc-web-mail mmc-web-network mmc-web-proxy mmc-web-samba mmc-agent python-mmc-pluginstools python-mmc-base python-mmc-mail python-mmc-network pythonmmc-proxy python-mmc-samba postfix postfix-ldap sasl2-bin libsasl2 libsasl2-modules amavisd-new libdbd-ldap-perl libnet-ph-perl libnetsnpp-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 Configuración Durante la instalación de los nuevos paquetes nos pedirá una serie de preguntas que deberemos de responder de la siguiente forma: LDAP •
Ingresar la contraseña para el servidor LDAP “Sena.2008admon”
•
Confirmamos la Contraseña:
SAMBA •
Ingresamos el nombre de nuestro Dominio “example”:
•
Seleccionaremos “No” cuando se nos pregunte si el archivo smb.conf debe ser modificado para utilizar WINS en la configuración del DHCP.
POSTFIX •
Aquí nos Informara que solo podremos entregar Correo local con la configuración por defecto:
•
Seleccionaremos "Sitio de Internet" como tipo genérico de la configuración:
•
Pondremos el nombre de nuestro equipo "server1.example.com" como nombre de correo:
LIBNSS – LDAP •
En esta ventana copiaremos “127.0.0.1” donde le diremos que el Localhost sera el identificador de recursos:
•
En el Nombre Distintivo DN (Nombre del Dominio) ira en nuestro caso example.com:
•
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 “cn=admin,dc=example,dc=com”:
•
Por ultimo la Contraseña “Sena2008admon”, así:
para
el
Root
del
LDAP
LIBPAM – LDAP • •
Diremos que “Si” para que la base de Datos sea la raiz local. Le diremos que “No” 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 “cn=admin,dc=example,dc=com”:
•
6.
Y la Contraseña para el Administrador LDAP “Sena.2008admon”:
Configuración 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 /etc/ldap/schema/ para el funcionamiento de la MMC. Los copiaremos con el siguiente comando: # cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema /etc/ldap/schema/ # cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema /etc/ldap/schema/ Los demás esquemas están en comprimidos en archivos .gz los cuales debemos de desempaquetarlos con el siguiente comando: # zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz > /etc/ldap/schema/samba.schema # zcat /usr/share/doc/python-mmcbase/contrib/ldap/dnszone.schema.gz > /etc/ldap/schema/dnszone.schema # zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz > /etc/ldap/schema/dhcp.schema
El siguiente paso será incluir en el archivo de configuración del LDAP slapd.conf los esquemas que acabamos de copiar, editaremos el archivo de la siguiente forma: # vim /etc/ldap/slapd.conf Buscaremos la siguiente línea y agregaremos la ruta de los esquemas que copiamos anteriormente, esta es la línea: include /etc/ldap/schema/inetorgperson.schema Agregaremos las siguientes líneas debajo de esta (Con la línea schemacheck on estamos activando el esquema de control, también la agregamos), así: include include include include
/etc/ldap/schema/samba.schema /etc/ldap/schema/mail.schema /etc/ldap/schema/dnszone.schema /etc/ldap/schema/dhcp.schema
schemacheck 7.
on
Configuracion Basica
Aqui bamos a cifrar la contraseña del Administrador del LDAP con SSHA para tener una mayor seguridad y no puedan leer la contraseña en el archive de configuracion, (Sera la Contraseña que definimos anteriormente “Sena.2008admon”), lo haremos con el siguiente commando, así: # slappasswd -s Sena.2008admon La salida de este comando debe de ser así: # {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A En el archivo de configuración slapd.conf debemos de agregar la línea del password (Contraseña) para el Admin del LDAP, así: # vim /etc/ldap/slapd.conf Buscaremos la siguiente linea que se encuentra comentada, la descomentamos y agregaremos los datos de nuestro Dominio, debe de quedar así:
rootdn
"cn=admin,dc=example,dc=com"
Debajo de esta línea debemos de agregar la siguiente línea, será el password (Contraseña) para el Administrador del LDAP, recordemos que la Contraseña la ciframos con SSHA, la copiaremos y la pondremos ahí, debe de quedar así: rootpw
{SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Este password encriptado es la Contraseña del Administrador del LDAP que nos fue arrojado con el comando “slappasswd –s Sena.2008admon”. Este bloque debe de quedar así: rootdn rootpw
"cn=admin,dc=example,dc=com" {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indización (Registrar los datos) para la base de datos. Buscar en la siguiente linea: # Indexing options for database #1 Borraremos la línea que esta debajo, esta: index objectClass eq Y luego agregaremos las siguientes líneas que serán el registro para la base de datos: Index index index index index index
objectClass,uidNumber,gidNumber eq cn,sn,uid,displayName pres,sub,eq memberUid,mail,givenname eq,subinitial sambaSID,sambaPrimaryGroupSID,sambaDomainName eq zoneName,relativeDomainName eq dhcpHWAddress,dhcpClassData eq
Ahora debemos de añadir le lista de acceso para la base de datos del SAMBA, buscaremos la siguiente línea: access to attrs=userPassword,shadowLastChange La borramos y agregaremos la siguiente línea: access to attrs=userPassword,sambaLMPassword,sambaNTPassword
En este punto el archivo de configuración del LDAP debe de tener esta apariencia: # This is the main slapd configuration file. See slapd.conf(5) for more # info on the configuration options. ############################################# ########################## # Global Directives: # Features to permit #allow bind_v2 # Schema and objectClass definitions include /etc/ldap/schema/core.schema include /etc/ldap/schema/cosine.schema include /etc/ldap/schema/nis.schema include /etc/ldap/schema/inetorgperson.schema include /etc/ldap/schema/mmc.schema include /etc/ldap/schema/samba.schema include /etc/ldap/schema/printer.schema include /etc/ldap/schema/mail.schema include /etc/ldap/schema/dnszone.schema include /etc/ldap/schema/dhcp.schema schemacheck
on
# Where the pid file is put. The init.d script # will not stop the server if you change this. pidfile /var/run/slapd/slapd.pid # List of arguments that were passed to the server argsfile /var/run/slapd/slapd.args # Read slapd.conf(5) for possible values loglevel 0 # Where the dynamically loaded modules are stored modulepath /usr/lib/ldap moduleload back_bdb # The maximum number of entries that is returned for a search
operation sizelimit 500 # The tool-threads parameter sets the actual amount of cpu's that is used # for indexing. tool-threads 1 ############################################# ########################## # Specific Backend Directives for bdb: # Backend specific directives apply to this backend until another # 'backend' directive occurs backend bdb checkpoint 512 30 ############################################# ########################## # Specific Backend Directives for 'other': # Backend specific directives apply to this backend until another # 'backend' directive occurs #backend ############################################# ########################## # Specific Directives for database #1, of type bdb: # Database specific directives apply to this databasse until another # 'database' directive occurs database bdb # The base of your directory in database #1 suffix "dc=example,dc=com" # rootdn directive for specifying a superuser on the database. This is needed # for syncrepl. rootdn "cn=admin,dc=example,dc=com" rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A # Where the database file are physically stored for database #1 directory "/var/lib/ldap" # For the Debian package we use 2MB as default but be sure to update this
# value if you have plenty of RAM dbconfig set_cachesize 0 2097152 0 # Sven Hartge reported that he had to set this value incredibly high # to get slapd running at all. See http://bugs.debian.org/303057 # for more information. # Number of objects that can be locked at the same time. dbconfig set_lk_max_objects 1500 # Number of locks (both requested and granted) dbconfig set_lk_max_locks 1500 # Number of lockers dbconfig set_lk_max_lockers 1500 # Indexing options for database #1 index objectClass,uidNumber,gidNumber eq index cn,sn,uid,displayName pres,sub,eq index memberUid,mail,givenname eq,subinitial index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq index zoneName,relativeDomainName eq index dhcpHWAddress,dhcpClassData eq # Save the time that the entry gets modified, for database #1 lastmod on # Where to store the replica logs for database #1 # replogfile /var/lib/ldap/replog # The userPassword by default can be changed # by the entry owning it if they are authenticated. # Others should not be able to see it, except the # admin entry below # These access lines apply to database #1 only access to attrs=userPassword,sambaLMPassword,sambaNTPassword by dn="cn=admin,dc=example,dc=com" write by anonymous auth by self write by * none # # # # #
Ensure read access to the base for things like supportedSASLMechanisms. Without this you may have problems with SASL not knowing what mechanisms are available and the like. Note that this is covered by the 'access to *'
# ACL below too but if you change that as people # are wont to do you'll still need this if you # want SASL (and possible other things) to work # happily. access to dn.base="" by * read # The admin dn has full write access, everyone else # can read everything. access to * by dn="cn=admin,dc=example,dc=com" write by * read # For Netscape Roaming support, each user gets a roaming # profile for which they have write access to #access to dn=".*,ou=Roaming,o=morsnet" # by dn="cn=admin,dc=example,dc=com" write # by dnattr=owner write ############################################# ########################## # Specific Directives for database #2, of type 'other' (can be bdb too): # Database specific directives apply to this databasse until another # 'database' directive occurs #database # The base of your directory for database #2 #suffix "dc=debian,dc=org" Guardaremos y salimos del editor. Ahora debemos de editar el archivo ldap.conf en la ruta /etc/ldap/, así: # vim /etc/ldap/ldap.conf En el final del archiva agregaremos las siguiente lineas, donde le estamos diciendo el nombre del nuestro Dominio y que es local (127.0.0.1), así: host 127.0.0.1 base dc=example,dc=com Por último debemos de reiniciar el servidor LDAP, no nos debe de salir ningún error, lo haremos con el siguiente comando:
# /etc/init.d/slapd restart
8.
Configuración SAMBA
Para la configuración del SAMBA lo pararemos, lo haremos con el siguiente comando: # /etc/init.d/samba stop Ahora copiaremos un archivo de configuración del SAMBA que se agrega en la Instalación, 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 /etc/samba/smb.conf /etc/samba/smb.conf_Respaldo Despues de esto ahora si copiaremos el archivo del SAMBA que se encuentra en la ruta /usr/share/doc/python-mmcbase/contrib/samba/ con el siguiente comando: # cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf /etc/samba/ Entraremos a editar el archivo smb.conf que acabamos de copiar, así: # vim /etc/samba/smb.conf En el archivo debemos de establecer los siguientes valores en la sección que dice [global] estos valores serán los respectivos a nuestro Dominio: workgroup = EXAMPLE netbiosname = PDC-SRV-EXAMPLE ldap admin dn = cn=admin,dc=example,dc=com ldap suffix = dc=example,dc=com logon path = \\%N\profiles\%U Ademas debemos de añadir las siguientes líneas en la misma sección [global] debajo de las demás:
preferred master = yes os level = 65 wins support = yes timeserver = yes socket options = SO_KEEPALIVE IPTOS_LOWDELAY SO_SNDBUF=8192 SO_RCVBUF=8192 logon drive = H: passwd program = /usr/sbin/smbldap-passwd -u %u passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n add user script = /usr/sbin/smbldap-useradd -m "%u" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u" add group script = /usr/sbin/ambldap-groupadd -p "%g" delete user script = /usr/sbin/smbldap-userdel "%u" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" obey pam restrictions = no ldap idmap suffix = ou=Users ldap delete dn = yes security = user En este archivo debemos de agregar las siguientes líneas en las respectivas secciones, son: En la seccion [homes]: hide files = /Maildir/ En la sección [profiles]: hide files = /desktop.ini/ntuser.ini/NTUSER.*/ En la sección [archives]: path = /home/samba/archives En este punto, el archivo de configuración 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 = \\%N\profiles\%U logon script = logon.bat logon drive = H: map acl inherit = yes nt acl support = yes passdb backend = ldapsam:ldap://127.0.0.1/ obey pam restrictions = no ldap ldap ldap ldap ldap ldap ldap ldap
admin dn = cn=admin,dc=example,dc=com suffix = dc=example,dc=com group suffix = ou=Groups user suffix = ou=Users machine suffix = ou=Computers idmap suffix = ou=Users passwd sync = yes delete dn = yes
passwd program = /usr/sbin/smbldap-passwd -u %u passwd chat = "Changing password for*\nNew password*" %n\n "*Retype new password*" %n\n add user script = /usr/sbin/smbldap-useradd -m "%u" add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g" set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
add group script = /usr/sbin/ambldap-groupadd -p "%g" add machine script = /usr/lib/mmc/add_machine_script '%u' delete user script = /usr/sbin/smbldap-userdel "%u" delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g" delete group script = /usr/sbin/smbldap-groupdel "%g" [homes] comment = Home directories browseable = no writeable = yes create mask = 0700 directory mask = 0700 hide files = /Maildir/ [public] comment = Public share path = /home/samba/shares/public browseable = yes public = yes writeable = yes [archives] comment = Backup share path = /home/samba/archives browseable = yes public = no writeable = no [printers] comment = Printers path = /tmp browseable = no public = yes guest ok = yes writeable = no printable = yes [print$] comment = Drivers path = /var/lib/samba/printers browseable = yes guest ok = yes read only = yes
write list = Administrator,root,@lpadmin [netlogon] path = /home/samba/netlogon public = no writeable = no browseable = no [profiles] path = /home/samba/profiles writeable = yes create mask = 0700 directory mask = 0700 browseable = no hide files = /desktop.ini/ntuser.ini/NTUSER.*/ [partage] comment = aucun path = /home/samba/partage browseable = yes public = no writeable = yes Para verificar el estado de la configuración del SAMBA ejecutaremos el siguiente comando en el cual no nos debe de sacar ningún error (Este comando nos da el resumen del archivo de configuración del SAMBA), así: # testparm Ahora en el SAMBA debemos de crear las credenciales para autenticarse con el LDAP, lo haremos con el siguiente comando: # smbpasswd -w Sena.2008admon Al ejecutar este comando nos debe aparecer algo como esto que nos indica que las credenciales fueron asignadas correctamente: # Setting stored password for "cn=admin,dc=example,dc=com" in secrets.tdb 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 configuración): # SID for domain EXAMPLE is: S-1-5-21-3159899821-12388239254881133 Debemos de comprobar si el SID a sido registrado con éxito en el LDAP, para ello ejecutaremos el siguiente comando, en el cual estamos filtrando (grep) y buscando la parte de sambaDomainName, así: # slapcat | grep sambaDomainName La salida debe de ser como esta: # dn: sambaDomainName=EXAMPLE,dc=example,dc=com sambaDomainName: EXAMPLE Ya podemos iniciar el Servidor SAMBA con el siguiente comando, no debe de salir error: # /etc/init.d/samba start 9.
Directorio LDAP
Tenemos que crear un archivo con el nombre de smbldap_bind.conf 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 /etc/smbldap-tools/smbldap_bind.conf El contenido debe ser como este (cambiaremos todos los parámetros por los de nuestro Dominio): slaveDN="cn=admin,dc=example,dc=com" slavePw="Sena.2008admon"
masterDN="cn=admin,dc=example,dc=com" masterPw="Sena.2008admon"
Ahora debemos de crear el archivo smbldap.conf con el siguiente comando:
de
configuración
principal,
# vim /etc/smbldap-tools/smbldap.conf En este archivo debemos de agregar las siguientes líneas. 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), así: SID="S-1-5-21-3159899821-123882392-54881133" sambaDomain="EXAMPLE" ldapTLS="0" suffix="dc=example,dc=com" usersdn="ou=Users,${suffix}" computersdn="ou=Computers,${suffix}" groupsdn="ou=Groups,${suffix}" idmapdn="ou=Idmap,${suffix}" sambaUnixIdPooldn="sambaDomainName=EXAMPLE,${suffix}" scope="sub" hash_encrypt="SSHA" userLoginShell="/bin/bash" userHome="/home/%U" userHomeDirectoryMode="700" userGecos="System User" defaultUserGid="513" defaultComputerGid="515" skeletonDir="/etc/skel" defaultMaxPasswordAge="45" userSmbHome="\\PDC-SRV-EXAMPLE\%U" userProfile="\\PDC-SRV-EXAMPLE\profiles\%U" userHomeDrive="H:" userScript="logon.bat" mailDomain="example.com" smbpasswd="/usr/bin/smbpasswd" 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), así:
# smbldap-populate -m 512 -a Administrator NOTA: Se le pedirá que introduzca una contraseña para la cuenta de Administrador de Dominio “Sena.2008admon” Después tenemos que modificar el UID número de la cuenta, de lo contrario no será capaz de utilizar el Servidor de Correo con esta cuenta. Además añadir esta cuenta al grupo "Domain Users" (No debe de salir error): # smbldap-usermod -u 3000 -G "Domain Users" Administrator 10.
NSS Configuración 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/, así: # vim /etc/nsswitch.conf El contenido de este archivo debe de ser como este: # # # # #
/etc/nsswitch.conf Example configuration of GNU Name Service Switch functionality. If you have the `glibc-doc' and `info' packages installed, try: `info libc "Name Service Switch"' for information about this file.
passwd: group: shadow: hosts: networks: protocols: services: ethers: rpc: netgroup:
compat ldap compat ldap compat ldap files dns files db files db files db files db files nis
11.
Directorio SAMBA
En este punto debemos de crear los siguientes directorios necesarios para la configuración del SAMBA, estos directorios los definimos en el archivo smb.conf, con los siguientes comandos: # # # # #
mkdir mkdir mkdir mkdir mkdir
-p /home/samba/shares/public/ /home/samba/netlogon/ /home/samba/profiles/ /home/samba/partage/ /home/samba/archives/
Cambiaremos el propietario del Directorio /home/samba/ y ajustaremos los permisos necesarios para los siguientes directorios: # # # # #
chown -R :"Domain Users" /home/samba/ chmod 777 /var/spool/samba/ /home/samba/shares/public/ chmod 755 /home/samba/netlogon/ chmod 770 /home/samba/profiles/ /home/samba/partage/ chmod 700 /home/samba/archives/
NOTA: si al ejecutar el comando chown –R:”Domain Users” /home/samba/ 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, así: # vim /etc/libnss-ldap.conf Buscamos las siguientes líneas que están comentadas y las des comentamos, además de esto las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa, debe tener un aspecto como el siguiente: nss_base_passwd nss_base_group
ou=users,dc=example,dc=com ou=groups,dc=example,dc=com
Ahora entraremos al archivo de configuración pam_ldap.conf, así: # vim /etc/pam_ldap.conf
Buscamos las siguientes líneas que están comentadas y las des comentamos, además de esto también las modificaremos con los valores correspondientes a nuestro Dominio y unidad organizativa, debe tener un aspecto como este: nss_base_passwd nss_base_shadow nss_base_group
ou=users,dc=example,dc=com?one ou=users,dc=example,dc=com?one ou=groups,dc=example,dc=com?one
Despues tenemos que reconfigurar el paquete libnss-ldap y libpamldap con el siguiente comando (Debemos de configurarlo con los mismos parámetros que utilizamos en el Punto número 5), así: # dpkg-reconfigure libnss-ldap # dpkg-reconfigure libpam-ldap 12.
Configuración PAM LDAP
Aquí agregaremos el modulo del LDAP al PAM, los cuales serán utilizados para la autenticación con el LDAP. Entraremos a editar los siguientes archivos: # vim /etc/pam.d/common-account El contenido del archivo debe de ser como este: # # /etc/pam.d/common-account - authorization settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authorization modules that define # the central access policy for use on the system. The default is to # only deny service to users whose accounts are expired in /etc/shadow. #
account required account sufficient
pam_unix.so pam_ldap.so
Editaremos el siguiente archivo: # vi /etc/pam.d/common-auth El contenido del archivo debe de ser como este: # # /etc/pam.d/common-auth - authentication settings common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of the authentication modules that define # the central authentication scheme for use on the system # (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the # traditional Unix authentication mechanisms. # auth sufficient pam_unix.so nullok_secure auth sufficient pam_ldap.so use_first_pass auth required pam_deny.so Editaremos el siguiente archivo: # vi /etc/pam.d/common-password El contenido del archivo debe de ser como este: # # /etc/pam.d/common-password - password-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define the services to be #used to change user passwords. The default is pam_unix # The "nullok" option allows users to change an empty password, else # empty passwords are treated as locked accounts. # # (Add `md5' after the module name to enable MD5 passwords) # # The "obscure" option replaces the old `OBSCURE_CHECKS_ENAB' option in # login.defs. Also the "min" and "max" options enforce the length of the
# new password. password sufficient pam_unix.so nullok obscure min=4 max=8 md5 password sufficient pam_ldap.so use_first_pass use_authtok password required pam_deny.so # Alternate strength checking for password. Note that this # requires the libpam-cracklib package to be installed. # You will need to comment out the password line above and # uncomment the next two in order to use this. # (Replaces the `OBSCURE_CHECKS_ENAB', `CRACKLIB_DICTPATH') # # password required pam_cracklib.so retry=3 minlen=6 difok=3 # password required pam_unix.so use_authtok nullok md5 Editaremos el siguiente archivo: # vim /etc/pam.d/common-session El contenido del archivo debe de ser como este: # # /etc/pam.d/common-session - session-related modules common to all services # # This file is included from other service-specific PAM config files, # and should contain a list of modules that define tasks to be performed # at the start and end of sessions of *any* kind (both interactive and # non-interactive). The default is pam_unix. # session required pam_unix.so session optional pam_ldap.so Después 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 añadir máquinas 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 'EXAMPLE\Domain Admins'
SeMachineAccountPrivilege
13.
SSL para el POSTFIX (Correo Electrónico)
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, así: # vim /etc/ssl/mail.cnf Y le agregaremos las siguientes lineas: [ req ] default_bits = 2048 default_keyfile = privkey.pem distinguished_name = req_distinguished_name prompt = no string_mask = nombstr x509_extensions = server_cert [ req_distinguished_name ] countryName = DE stateOrProvinceName = Niedersachsen localityName = Lueneburg organizationName = Projektfarm GmbH organizationalUnitName = IT commonName = server1.example.com emailAddress = [email protected] [ server_cert ] basicConstraints = critical, CA:FALSE 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 /etc/ssl/mail.cnf -out
/etc/ssl/certs/mail.pem -keyout /etc/ssl/private/mail.key -days 365 -nodes -batch
Ajustaremos los derechos de la clave para que sólo el root los pueda leer, con el siguiente comando: # chmod 600 /etc/ssl/private/mail.key
8 CONFIGURACIÓN DE SASL Postfix utilizará SASL para autenticar a los usuarios contra el servidor LDAP. mkdir -p /var/spool/postfix/var/run/saslauthd/ Ajustar la configuración predeterminada. vim /etc/default/saslauthd Se debe tener este aspecto: START=yes MECHANISMS="ldap" MECH_OPTIONS="" THREADS=5 OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
vim /etc/saslauthd.conf Se debe tener este aspecto: ldap_servers: ldap://127.0.0.1 ldap_search_base: ou=Users,dc=example,dc=com ldap_filter: (&(objectClass=mailAccount)(mail=%u@%r)(mailenable=OK)) vim /etc/postfix/sasl/smtpd.conf Se debe tener este aspecto: pwcheck_method: saslauthd mech_list: plain login Añadir postfix al grupo adduser postfix sasl
y reiniciar SASL /etc/init.d/saslauthd restart
9. CONFIGURACION POSTFIX
9.2 CONFIGURACIÓN PRINCIPAL En primer lugar ajustar el archivo de configuración principal. vim /etc/postfix/main.cf Editar el archivo para que se ajuste a tu dominio y; además, añadir algunas restricciones y la configuración de autenticación - el contenido debe ser parecido a este: # See /usr/share/postfix/main.cf.dist for a commented, more complete version smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU) biff = no # appending .domain is the MUA's job. append_dot_mydomain = yes append_at_myorigin = yes # Uncomment the next line to generate "delayed mail" warnings #delay_warning_time = 4h myhostname = server1.example.com mydomain = example.com alias_maps = ldap:/etc/postfix/ldap-aliases.cf, hash:/etc/aliases alias_database = hash:/etc/aliases myorigin = /etc/mailname mydestination = server1.example.com,example.com,localhost.localdomain,localhost mail_destination_recipient_limit = 1 mailbox_command = /usr/lib/dovecot/deliver -d "$USER"@"$DOMAIN" relayhost = mynetworks = 127.0.0.0/8
mailbox_size_limit = 0 recipient_delimiter = + inet_interfaces = all # Use Maildir home_mailbox = Maildir/ # Wait until the RCPT TO command before evaluating restrictions smtpd_delay_reject = yes # Basics Restrictions smtpd_helo_required = yes strict_rfc821_envelopes = yes # Requirements for the connecting server smtpd_client_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_rbl_client bl.spamcop.net, reject_rbl_client dnsbl.njabl.org, reject_rbl_client cbl.abuseat.org, reject_rbl_client sbl-xbl.spamhaus.org, reject_rbl_client list.dsbl.org, permit # Requirements for the HELO statement smtpd_helo_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_hostname, reject_invalid_hostname, permit # Requirements for the sender address smtpd_sender_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_non_fqdn_sender, reject_unknown_sender_domain, permit # Requirement for the recipient address smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated,
reject_non_fqdn_recipient, reject_unknown_recipient_domain, reject_unauth_destination, permit # Enable SASL authentication for the smtpd daemon smtpd_sasl_auth_enable = yes smtpd_sasl_type = dovecot smtpd_sasl_path = private/auth # Fix for outlook broken_sasl_auth_clients = yes # Reject anonymous connections smtpd_sasl_security_options = noanonymous smtpd_sasl_local_domain = # SSL/TLS smtpd_tls_security_level = may smtpd_tls_loglevel = 1 smtpd_tls_cert_file = /etc/ssl/certs/mail.pem smtpd_tls_key_file = /etc/ssl/private/mail.key smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache # Amavis content_filter = amavis:[127.0.0.1]:10024 receive_override_options = no_address_mappings 9.3 CONFIGURACIÓN ALIAS EN EL LDAP Ahora usted tiene que editar la configuración de los alias. vim /etc/postfix/ldap-aliases.cf Editar el archivo que se ajuste a tu dominio - que debe tener este aspecto: server_host = 127.0.0.1 search_base = ou=Users,dc=example,dc=com query_filter = (&(objectClass=mailAccount)(mailalias=%s)(mailenable=OK)) result_attribute = maildrop
version = 3 9.4 CONFIGURACIÓN MASTER El maestro de configuración es la última parte de la configuración de postfix vim /etc/postfix/master.cf
Añadir las siguientes lineas # SMTPS smtps inet n - - - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes # Dovecot dovecot unix - n n - - pipe flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d $recipient # Mail to Amavis amavis unix - - - - 10 smtp -o smtp_data_done_timeout=1200 -o smtp_send_xforward_command=yes -o disable_dns_lookups=yes -o max_use=20 # Mail from Amavis 127.0.0.1:10025 inet n - - - - smtpd -o content_filter= -o local_recipient_maps= -o relay_recipient_maps= -o smtpd_restriction_classes= -o smtpd_delay_reject=no -o smtpd_client_restrictions=permit_mynetworks,reject -o smtpd_helo_restrictions= -o smtpd_sender_restrictions= -o smtpd_recipient_restrictions=permit_mynetworks,reject -o smtpd_data_restrictions=reject_unauth_pipelining -o smtpd_end_of_data_restrictions= -o mynetworks=127.0.0.0/8
-o smtpd_error_sleep_time=0 -o smtpd_soft_error_limit=1001 -o smtpd_hard_error_limit=1000 -o smtpd_client_connection_count_limit=0 -o smtpd_client_connection_rate_limit=0 -o receive_override_options=no_header_body_checks,no_unknown_recipie nt_checks Reinicie Postfix: /etc/init.d/postfix restart 10 DOVECOT Dovecot proporcionará POP3-(SSL / TLS), IMAP-(SSL / TLS) y de contingentes de apoyo al servidor de correo. 10.1 CONFIGURACION PRINCIPAL echo "" > /etc/dovecot/dovecot.conf vim /etc/dovecot/dovecot.conf El contenido debe ser parecida a esta: protocols = imap imaps pop3 pop3s listen = 0.0.0.0 login_greeting = example.com mailserver ready. mail_location = maildir:~/Maildir disable_plaintext_auth = no ssl_cert_file = /etc/ssl/certs/mail.pem ssl_key_file = /etc/ssl/private/mail.key log_path = /var/log/dovecot.log info_log_path = /var/log/dovecot.log # IMAP configuration protocol imap { mail_plugins = quota imap_quota } # POP3 configuration protocol pop3 { pop3_uidl_format = %08Xu%08Xv
mail_plugins = quota } # LDA configuration protocol lda { postmaster_address = postmaster auth_socket_path = /var/run/dovecot/auth-master mail_plugins = quota }
# LDAP authentication auth default { mechanisms = plain login passdb ldap { args = /etc/dovecot/dovecot-ldap.conf } userdb ldap { args = /etc/dovecot/dovecot-ldap.conf } socket listen { master { path = /var/run/dovecot/auth-master mode = 0660 user = dovecot group = mail } client { path = /var/spool/postfix/private/auth mode = 0660 user = postfix group = postfix } } }
10.2 CONFIGURACION LDAP echo "" > /etc/dovecot/dovecot-ldap.conf vim /etc/dovecot/dovecot-ldap.conf
El contenido debe ser parecida a esta: hosts = 127.0.0.1auth_bind = yes ldap_version = 3 base = dc=example,dc=com scope = subtree user_attrs = homeDirectory=home,uidNumber=uid,mailbox=mail,mailuserquota=quo ta=maildir:storage user_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) pass_attrs = mail=user,userPassword=password
pass_filter = (&(objectClass=mailAccount)(mail=%u)(mailenable=OK)) default_pass_scheme = CRYPT user_global_gid = mail 10.3 DELIVER Siguiente ajustar los derechos para dovevot deliver – 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 /usr/lib/dovecot/deliver Despues reiniciar el Dovecot /etc/init.d/dovecot restart
11 AMAVIS Postfix pasará el correo a Amavis. Amavis por otra parte pasará a Spamassassin un ClamAV. Después de que los correos han sido verificados será aprobado de nuevo a Postfix. vim /etc/amavis/conf.d/15-content_filter_mode Se debe tener este aspecto: use strict; @bypass_virus_checks_maps = ( \%bypass_virus_checks, \@bypass_virus_checks_acl, \$bypass_virus_checks_re);
@bypass_spam_checks_maps = ( \%bypass_spam_checks, \@bypass_spam_checks_acl, \$bypass_spam_checks_re); 1; vim /etc/amavis/conf.d/50-user Se debe tener este aspecto: use strict; $pax='pax'; 1; Después agregue el usuario clamav al grupo amavis y reiniciar amavis y ClamAV. adduser clamav amavis /etc/init.d/amavis restart /etc/init.d/clamav-daemon restart /etc/init.d/clamav-freshclam restart
12 SPAMASSASSIN En este paso se implentaran plugins adicionales para aumentar la detección de spam. vim /etc/spamassassin/local.cf Añadir el siguiente contenido al archivo: # dcc use_dcc 1
dcc_path /usr/bin/dccproc #pyzor use_pyzor 1 pyzor_path /usr/bin/pyzor #razor use_razor2 1 razor_config /etc/razor/razor-agent.conf #bayes use_bayes 1 use_bayes_rules 1 bayes_auto_learn 1 vim /etc/spamassassin/v310.pre Descomentar la línea para el DCC-plugin. Se debe tener este aspecto: loadplugin loadplugin loadplugin loadplugin loadplugin loadplugin loadplugin loadplugin loadplugin
Mail::SpamAssassin::Plugin::DCC Mail::SpamAssassin::Plugin::Pyzor Mail::SpamAssassin::Plugin::Razor2 Mail::SpamAssassin::Plugin::SpamCop Mail::SpamAssassin::Plugin::AWL Mail::SpamAssassin::Plugin::AutoLearnThreshold Mail::SpamAssassin::Plugin::WhiteListSubject Mail::SpamAssassin::Plugin::MIMEHeader Mail::SpamAssassin::Plugin::ReplaceTags
Ahora configurar spamassassin para que se ejecute como demonio. vim /etc/default/spamassassin Establecer Enabled = 1. Se debe tener este aspecto: ENABLED=1 OPTIONS="--create-prefs --max-children 5 --helper-home-dir" PIDFILE="/var/run/spamd.pid" #NICE="--nicelevel 15"
CRON=0 Debemos de modificar estos parametros para que el spammasasim pueda detectar los Spam Entramos en el archivo de configuacion Vim /etc/amavis/conf.d/05-domain_id Comentamos esta linea #chomp($mydomain = `head -n 1 /etc/mailname`); Y agregamos esta linea chomp($mydomain = `example.com`); y Luego entramos en el archivo de configuracion vim /etc/amavis/conf.d/20-debian_defaults DEBAJO DE ESTA LINEA MODIFICAMOS LOS PARAMETROS SUBRAYADOS $sa_spam_subject_tag = '***SPAM*** '; $sa_tag_level_deflt = 0.2; # add spam info headers if at, or above that level $sa_tag2_level_deflt = 0.2; # add 'spam detected' headers at that level $sa_kill_level_deflt = 0.1; # triggers spam evasive actions $sa_dsn_cutoff_level = 10; # spam level beyond which a DSN is not sent BUSCAR EL SIGUIENTE BLOQUE EN EL MISMO ARCHIVO DE CONFIGURACION SU CONTENIDO DEBE SIMILAR A ESTE $forward_method = 'smtp:127.0.0.1:10025'; $notify_method = $forward_method; $final_virus_destiny = D_DISCARD; # (data not lost, see virus quarantine) $final_banned_destiny = D_BOUNCE; # D_REJECT when front-end MTA $final_spam_destiny = D_PASS; $final_bad_header_destiny = D_PASS; # False-positive prone (for spam)
Luego en el Spammasasim entramos en el archivo de configuracion vim /etc/spamassassin/local.cf Descomentamos estas lineas y a required_score 5.0 le cambiamos el valor que viene por defecto que es 5.0 a 0.3 que es el valor con el que se califican los spam (si el contenido del mensaje supera 0.3) lo califica como spam rewrite_header Subject *****SPAM***** report_safe 1 required_score 0.3 Luego en el archivo de configuracion vim /etc/postfix/master.cf Debemos de verificar que este bloque tenga el siguiente contenido ifmail unix n n pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix n n pipe flags=Fq. user=bsmtp argv=/usr/lib/bsmtp/bsmtp -t$nexthop -f$sender $recipient scalemail-backend unix n n 2 pipe flags=R user=scalemail argv=/usr/lib/scalemail/bin/scalemail-store ${nexthop} ${user} ${extensio$mailman unix n n pipe flags=FR user=list argv=/usr/lib/mailman/bin/postfix-to-mailman.py ${nexthop} ${user}
Después iniciar spamassassin y reiniciar amavis. /etc/init.d/spamassassin start /etc/init.d/amavis restart
Podemos probar esto con lo siguiente por ejemplo para detectar un virus intentamos enviar un archive.exe 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 CONFIGURACIÓN DE BIND Copiamos el archivo de configuración named.conf a /etc/bind/
cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf /etc/bind/ Después cambiar el punto de partida del sldap para que inicie antes que el bind update-rc.d -f slapd remove && update-rc.d slapd start 14 2 3 4 5 . stop 86 0 1 6 . Modificar la configuración resolv. vim /etc/resolv.conf debe tener este aspecto: search example.com nameserver 127.0.0.1 nameserver 192.168.0.100 Nota: Si colocando la direccion del loopback no funciona lo podemos quitar o comentar 14 CONFIGURACIÓN DE DHCP Copiamos el archivo de configuración dhcp3 cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf /etc/dhcp3/ vim /etc/dhcp3/dhcpd.conf Editar el archivo que se ajuste a sus necesidades - que debe tener este aspecto: ldap-server "localhost"; ldap-port 389; ldap-username "cn=admin, dc=example, dc=com"; ldap-password "howtoforge"; ldap-base-dn "dc=example, dc=com"; ldap-method dynamic; ldap-debug-file "/var/log/dhcp-ldap-startup.log";
16 WEBINTERFACE CONFIGURACIÓN 16.1 CERTIFICADO SSL (es creado para https) Ahora crearemos el directorio donde se alojara el certificado ssl mkdir /etc/apache2/ssl/ openssl req -new -x509 -keyout /etc/apache2/ssl/server.key -out /etc/apache2/ssl/server.crt -days 365 -nodes chmod 600 /etc/apache2/ssl/server.key cp /etc/apache2/ssl/* /etc/cups/ssl/ 16.3 MMC Vamos a crear dos hostvirtuales – uno para las conexiones http-y uno para las conexiones https. 16.3.1 HTTP VHost vim /etc/apache2/sites-available/http Añadir la siguiente configuración ServerName server1.example.com RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI}
16.3.2 HTTPS VHost vim /etc/apache2/sites-available/https NameVirtualHost 192.168.0.100:443 ServerName server1.example.com ServerAdmin [email protected] DocumentRoot /usr/share/mmc/ SSLEngine on SSLCertificateKeyFile ssl/server.key SSLCertificateFile ssl/server.crt SSLProtocol all SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EX P:+eNULL AllowOverride None Order allow,deny Allow from 192.168.0.0/24 php_flag short_open_tag on SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 ErrorLog /var/log/apache2/mmc_error.log CustomLog /var/log/apache2/mmc_access.log combined LogLevel warn Agregue el puerto HTTPS por el cual va a escuchar a la configuración de Apache vim /etc/apache2/ports.conf Añada la siguiente línea: Listen 443
16.3.3 MODULOS Y SITIOS Despues debemos permitir los nuevo sitios (crear los enlaces) a2ensite http a2ensite https reescribir el módulo a2enmod rewrite y el módulo SSL a2enmod ssl Ahora reinicie el apache /etc/init.d/apache2 restart
17 MMC PLUGINS 17.1 CONFIGURACION PLUGIN MMC BASE-PLUGIN Editar el archivo de configuracion del base.ini vim /etc/mmc/plugins/base.ini Modificar la baseDN que se ajuste a tu dominio, la contraseña 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 to host = 127.0.0.1
# LDAP base DN baseDN = dc=example, dc=com # Users location in the LDAP baseUsersDN = ou=Users, %(basedn)s # Groups location in the LDAP baseGroupsDN = ou=Groups, %(basedn)s # Computers Locations baseComputersDN = ou=Computers, %(basedn)s # LDAP manager rootName = cn=admin, %(basedn)s password = howtoforge # If enabled, the MMC will create/move/delete the home of the users # Else will do nothing, but only write user informations into LDAP userHomeAction = 1 # Skeleton directory to populate a new home directory skelDir = /etc/skel # If set, all new users will belong to this group when created defaultUserGroup = Domain Users # Default home directory for users defaultHomeDir = /home # user uid number start uidStart = 10000 # group gid number start gidStart = 10000 # LDAP log file path logfile = /var/log/ldap.log # FDS log file path # logfile = /opt/fedora-ds/slapd-hostname/logs/access # you can specify here where you can authorized creation of your homedir # default is your defaultHomeDir # example: # authorizedHomeDir = /home, /home2, /mnt/depot/newhome [backup-tools] # Path of the backup tools path = /usr/lib/mmc/backup-tools # Where are put the archives destpath = /home/samba/archives 17.2 CONFIGURACION PLUGIN MMC MAIL.INI Editar el archivo de configuracion mail.ini vim /etc/mmc/plugins/mail.ini 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 support vDomainSupport = 0 # If vdomain enabled, OU where the domain are stored vDomainDN = ou=mailDomains, dc=example, dc=com [userDefault] # For Postfix delivery # mailbox = %homeDirectory%/Maildir/ # For Dovecot delivery mailbox = maildir:%homeDirectory%/Maildir/ # Default quota (200 MBytes) set for user mailuserquota = 204800
17.3 CONFIGURACION PLUGIN MMC NETWORK.INI Editar el archivo de configuracion network.ini vim /etc/mmc/plugins/network.ini Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este: [main] disable = 0 [dhcp] dn = ou=DHCP,dc=example,dc=com
pidfile = /var/run/dhcpd.pid init = /etc/init.d/dhcp3-server logfile = /var/log/daemon.log leases = /var/lib/dhcp3/dhcpd.leases [dns] dn = ou=DNS,dc=example,dc=com pidfile = /var/run/bind/run/named.pid init = /etc/init.d/bind9 logfile = /var/log/daemon.log bindroot = /etc/bind/ binduser = bind # dnsreader = DNS Reader # dnsreaderpassword = DNSReaderPassword 17.3.4 CONFIGURACION MMC SAMBA.INI Editar el archivo de configuracion samba.ini vim /etc/mmc/plugins/samba.ini Modificar el nombre de dominio que se ajuste a tu dominio - el contenido debe ser parecido a este: [main] disable = 0 # Computers Locations baseComputersDN = ou=Computers, dc=jonathan57, dc=com sambaConfFile = /etc/samba/smb.conf sambaInitScript = /etc/init.d/samba sambaClamavSo = /usr/lib/samba/vfs/vscan-clamav.so # Default SAMBA shares location defaultSharesPath = /home/samba # You can specify authorized paths for share creation # Default value is the defaultSharesPath value # authorizedSharePaths = /shares, /opt, /srv # Default value when adding samba attributes to an user # DELETE means the attibute is removed from the user LDAP entry [userDefault] sambaPwdMustChange = DELETE
18 MMC AGENTE INICIAL En este punto, el MMC-agente está listo para el iniciar /etc/init.d/mmc-agent start Si al reiniciar el agente; el plugin samba no carga debemos de entrar al archivo de configuracion Vim /etc/samba/smb.conf Y moficamos el parametro ldap delete=yes por ldap delete=no Este parámetro especifica si una operación de borrado en la bse de datos ldapsam elimina toda la entrada o sólo los atributos específicos de Samba Reiniciamos el agente de Nuevo y todo estara listo para acceder a la consola Administrativa /etc/init.d/mmc-agent restart Es necesario reiniciar el bind /etc/init.d/bind restart
19 MMC WEBINTERFACE Ahora usted puede tener acceso a la MMC webinterface a través de la página https: / / 192.168.0.100 (HTTP no está funcionando por el momento). Entra como root. Más tarde, cuando los nombres y el servidor dhcp-se configuran (y usted está usando los mismos), usted debe conectarse a través de http://server1.example.com (la conexión se redirecciona automáticamente a la página https) o https: / / servidor1. example.com
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 /etc/postfix/master.cf 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 /etc/apache/conf.d Y luego creamos el enlace ln -s /usr/share/squirrelmail/config/apache.conf apache.conf Para verificar que el enlace quedo bien creado digitamos el comando ls -l y nos debe aparecer algo como apache.conf -> /usr/share/squirrelmail/config/apache.conf
Debemos de crear un Alias para la interfaz Web, para ingrear por medio de webmail.example.com 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, asì: http://server1.example.com/mmc Clic en Network, clic en Nuetra Zona DNS, clic en Eitar (Librito y un Lápiz), 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 webmail.example.com Creacion de la HostVirtual: Entraremos a la ruta /etc/apache2/conf.d/ y moveremos el archivo apache.conf a esta ruta /etc/apache2/sites-available/, asi: mv /etc/apache2/conf.d/apache.conf /etc/apache2/sites-available/ Despues la cambiaremos el nombre por webmails (Opcional, es por orden), asi: mv /etc/apache2/sites-available/apache.conf /etc/apache2/sitesavailable/webmails Editaremos
el
archivo
webmail
nano Y
para
configurarlo,
asi:
/etc/apache2/sites-available/webmails debe
Alias
de
quedar
/squirrelmail
con
este
aspecto:
/usr/share/squirrelmail
# users will prefer a simple URL like http://webmail.example.com NameVirtualHost
*:80
*:443>
DocumentRoot ServerName
/usr/share/squirrelmail webmail.example.com
SSLEngine on SSLCertificateKeyFile ssl/webmail.key SSLCertificateFile ssl/webmail.crt SSLProtocol all SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EX P:+eNULL
/usr/share/squirrelmail> FollowSymLinks php_flag register_globals off php_flag register_globals off DirectoryIndex index.php
Options
Indexes
# access to configtest is limited by default to prevent information leak order deny,allow allow from all SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128 # redirect to https when available (thanks [email protected]) # # Note: There are multiple ways to do this, and which one is suitable for # your site's configuration depends. Consult the apache documentation if # you're unsure, as this example might not work everywhere. #
# # # # RewriteEngine on # RewriteCond %{HTTPS} !^on$ [NC] # RewriteRule . https://%{HTTP_HOST}%{REQUEST_URI} [L] # # #
Guardamos los cambios y salimos, después debemos de crear un archivo mas que nos direccionará a la interfaz web pero con la seguridad SSL, pata ello copiaremos el archivo http, asi: cp /etc/apache2/sites-available/http available/webmail Entraremos
a
editar
el
archivo
vim Y
webmail
/etc/apache2/sitespara
configurarlo,
asi:
/etc/apache2/sites-available/webmail debe
de
quedar
asi:
*:80>
ServerName
webmail.example.com
RewriteEngine RewriteCond RewriteRule
(.*)
On %{HTTPS} off https://webmail.example.com
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 webmail.key y el otro con el nombre de webmail.crt los cuales al crearlos quedaran en la ruta /etc/apache2/ssl/, en este punto generaremos el certificado con en siguiente comando: openssl req -new -x509 -keyout /etc/apache2/ssl/webmail.key -out /etc/apache2/ssl/webmail.crt -days 365 -nodes
Asi generamos el certificado pero debemos de darele unos permisos espesificos y copiar todos los certificado a la carpeta /etc/cups/ssl/, asi: chmod cp
600 /etc/apache2/ssl/*
/etc/apache2/ssl/server.key /etc/cups/ssl/
Despues de esto debemos de activar los HostVirtuales, tanto el webmail como el webmails (Estando parados en la ruta /etc/apache2/sitesavalaible/), con el siguiente comando: a2ensite a2ensite Despues
webmail webmails de
esro
reiniciamos
/etc/init.d/apache2
el
servidor
apache2,
asi: restart
NOTA: Si nos sale algun error debemos de mirar bien que nos dice y mirar la sintaxis de los archivos que están en la carpeta /etc/apache2/sites-available/ - Recordemos que no podemos dejar el archivo apache.conf en la carpeta /etc/apache2/conf.d/ 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: http://webmail.example.com 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 plugin.mail Modificando algunos parametros del archivo de configuracion Entramos al archivo de configuracion Vim /etc/mmc/plugins/mail.ini Cambiamos el parametro disable=0 VdomainSupport=1 Descomentamos la linea mailbox = maildir:%homeDirectory%/Maildir/ Reiniciamos el agente /etc/init.d/mmc-agent restart Apartir de este momento el plugin del mail.ini nos debe quedar
habilitado Ahora si procederemos a configurar Los Usuarios Y Dominios Virtuales entramos al archivo de configuracion cd /usr/share/doc/python-mmc-base/contrib/postfix/with-virtualdomains Luego le damos vim main.cf Entramos en este archivo y copiamos las lineas # Virtual Domains Control virtual_mailbox_domains = ldap:/etc/postfix/ldap-domains.cf virtual_mailbox_maps = ldap:/etc/postfix/ldap-accounts.cf virtual_alias_maps = ldap:/etc/postfix/ldap-aliases.cf, ldap:/etc/postfix/ldap-maildrop.cf virtual_mailbox_base = / virtual_alias_domains = virtual_minimum_uid = 100 virtual_uid_maps = ldap:/etc/postfix/ldap-uid.cf virtual_gid_maps = ldap:/etc/postfix/ldap-gid.cf y Las pegamos en el archivo de configuracion ubicado en la ruta vim /etc/postfix/main.cf Luego copiamos todos los archivos de configuracion ubicados dentro del archivo menos el main.cf cd /usr/share/doc/python-mmc-base/contrib/postfix/with-virtualdomains Los copiamos en cd /etc/postfix 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 /etc/init.d/spamassassin restart /etc/init.d/postfix /etc/init.d/clamav-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 DOMINIO Le 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 contraseña, que será Usuario: Administrador Contraseña:(La del administrador del PDC)
Luego nos debe aparecer algo como esto en donde se nos da la bienvenida al dominio
Se nos pedirá que reiniciemos el equipo para que los cambios surjan efecto
Al restaurar el sistema en la pestaña inferior nos aparecerá el dominio al cual pertenecemos, nos logearemos con la cuenta creada por el administrador