Manual Mandriva Directory Server en Debian Etch
Manual Mandriva Directory Server en Debian Etch
Manual Mandriva Directory Server en Debian Etch
ASESOR
MAURICIO ORTIZ
• RoundCube
• SquirrelMail
• Horde
• Openwebmail
• Ilohamail
• BlogMail
• Zimbra
• Gmail
• Yahoo
• Hotmail
• AOL
Por lo tanto, no olvide que el espacio en disco destinado para los mensa-
jes en el servidor es limitado y puede llenarse, impidiendo la entrada de
nuevos mensajes.
Introducion
Conceptos teoricos
# vim /etc/hosts
# reboot
# hostname
# hostname –f
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
# mount -o remount /
# mount -l
# vim /etc/apt/sources.list
# apt-get update
Configuración
LDAP
• Confirmamos la Contraseña:
SAMBA
POSTFIX
• Aquí nos Informara que solo podremos entregar Correo local con
la configuración por defecto:
LIBNSS – LDAP
• Diremos que “Si” para que la base de Datos sea la raíz local. Le
diremos que “No” cuando nos pregunte si la base de Datos LDAP
requiere Ingreso.
• En la cuenta del LDAP para el Root cambiaremos el cn por admin
que será el Usuario (Si no habrá conflicto más adelante) y lo
demás con nuestro dominio “cn=admin,dc=example,dc=com”:
# cp /usr/share/doc/python-mmc-base/contrib/ldap/mmc.schema
/etc/ldap/schema/
# cp /usr/share/doc/python-mmc-base/contrib/ldap/mail.schema
/etc/ldap/schema/
# zcat /usr/share/doc/python-mmc-base/contrib/ldap/samba.schema.gz
> /etc/ldap/schema/samba.schema
# zcat /usr/share/doc/python-mmc-
base/contrib/ldap/dnszone.schema.gz >
/etc/ldap/schema/dnszone.schema
# zcat /usr/share/doc/python-mmc-base/contrib/ldap/dhcp.schema.gz
> /etc/ldap/schema/dhcp.schema
# vim /etc/ldap/slapd.conf
include /etc/ldap/schema/inetorgperson.schema
include /etc/ldap/schema/mmc.schema
include /etc/ldap/schema/samba.schema
include /etc/ldap/schema/mail.schema
include /etc/ldap/schema/dnszone.schema
include /etc/ldap/schema/dhcp.schema
schemacheck on
7. Configuración Básica
Aquí vamos 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 configuración, (Sera la Contraseña que definimos
anteriormente “Sena.2008admon”), lo haremos con el siguiente
comando, así:
# slappasswd -s Sena.2008admon
# {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
# vim /etc/ldap/slapd.conf
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
rootdn "cn=admin,dc=example,dc=com"
rootpw {SSHA}kPd9OeiwGx4lyZUiQ2NFmzXV0JWyLV9A
Luego tenemos que modificar las opciones de indización (Registrar los
datos) para la base de datos. Buscar en la siguiente línea:
index objectClass eq
index objectClass,uidNumber,gidNumber eq
index cn,sn,uid,displayName pres,sub,eq
index memberUid,mail,givenname eq,subinitial
index sambaSID,sambaPrimaryGroupSID,sambaDomainName eq
index zoneName,relativeDomainName eq
index dhcpHWAddress,dhcpClassData eq
access to attrs=userPassword,shadowLastChange
access to attrs=userPassword,sambaLMPassword,sambaNTPassword
# This is the main slapd configuration file. See slapd.conf(5) for more
# info on the configuration options.
#############################################
##########################
# Global Directives:
# Features to permit
#allow bind_v2
# 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
#############################################
##########################
# Specific Backend Directives for bdb:
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
backend bdb
checkpoint 512 30
#############################################
##########################
# Specific Backend Directives for 'other':
# Backend specific directives apply to this backend until another
# 'backend' directive occurs
#backend <other>
#############################################
##########################
# Specific Directives for database #1, of type bdb:
# Database specific directives apply to this databasse until another
# 'database' directive occurs
database bdb
# For the Debian package we use 2MB as default but be sure to update
this
# value if you have plenty of RAM
dbconfig set_cachesize 0 2097152 0
# Sven Hartge reported that he had to set this value incredibly high
# to get slapd running at all. See http://bugs.debian.org/303057
# for more information.
# Number of objects that can be locked at the same time.
dbconfig set_lk_max_objects 1500
# Number of lockers
dbconfig set_lk_max_lockers 1500
# Save the time that the entry gets modified, for database #1
lastmod on
#############################################
##########################
# Specific Directives for database #2, of type 'other' (can be bdb too):
# Database specific directives apply to this databasse until another
# 'database' directive occurs
#database <other>
# vim /etc/ldap/ldap.conf
host 127.0.0.1
base dc=example,dc=com
# /etc/init.d/slapd restart
8. Configuración SAMBA
# /etc/init.d/samba stop
# cp /etc/samba/smb.conf /etc/samba/smb.conf_Respaldo
Después de esto ahora si copiaremos el archivo del SAMBA que se
encuentra en la ruta /usr/share/doc/python-mmc-
base/contrib/samba/ con el siguiente comando:
# cp /usr/share/doc/python-mmc-base/contrib/samba/smb.conf
/etc/samba/
# vim /etc/samba/smb.conf
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
En la sección [homes]:
En la sección [profiles]:
En la sección [archives]:
path = /home/samba/archives
[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
[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
# testparm
# smbpasswd -w Sena.2008admon
Al ejecutar este comando nos debe aparecer algo como esto que nos
indica que las credenciales fueron asignadas correctamente:
La salida debe ser parecida a esta (Debemos de guardar este SID para
agregarlo más adelante en otro punto de la configuración):
# dn: sambaDomainName=EXAMPLE,dc=example,dc=com
sambaDomainName: EXAMPLE
# /etc/init.d/samba start
9. Directorio LDAP
# vim /etc/smbldap-tools/smbldap_bind.conf
slaveDN="cn=admin,dc=example,dc=com"
slavePw="Sena.2008admon"
masterDN="cn=admin,dc=example,dc=com"
masterPw="Sena.2008admon"
# vim /etc/smbldap-tools/smbldap.conf
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"
# vim /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.
# mkdir -p /home/samba/shares/public/
# mkdir /home/samba/netlogon/
# mkdir /home/samba/profiles/
# mkdir /home/samba/partage/
# mkdir /home/samba/archives/
# 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 ou=users,dc=example,dc=com
nss_base_group ou=groups,dc=example,dc=com
# 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 ou=users,dc=example,dc=com?one
nss_base_shadow ou=users,dc=example,dc=com?one
nss_base_group ou=groups,dc=example,dc=com?one
# dpkg-reconfigure libnss-ldap
# dpkg-reconfigure libpam-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
#
# /etc/pam.d/common-account - authorization settings common to all
services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authorization modules that define
# the central access policy for use on the system. The default is to
# only deny service to users whose accounts are expired in
/etc/shadow.
#
account required pam_unix.so
account sufficient pam_ldap.so
# vi /etc/pam.d/common-auth
#
# /etc/pam.d/common-auth - authentication settings common to all
services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of the authentication modules that define
# the central authentication scheme for use on the system
# (e.g., /etc/shadow, LDAP, Kerberos, etc.). The default is to use the
# traditional Unix authentication mechanisms.
#
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so
# vi /etc/pam.d/common-password
#
# /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
# vim /etc/pam.d/common-session
#
# /etc/pam.d/common-session - session-related modules common to all
services
#
# This file is included from other service-specific PAM config files,
# and should contain a list of modules that define tasks to be performed
# at the start and end of sessions of *any* kind (both interactive and
# non-interactive). The default is pam_unix.
#
session required pam_unix.so
session optional pam_ldap.so
# reboot
# vim /etc/ssl/mail.cnf
[ req ]
default_bits = 2048
default_keyfile = privkey.pem
distinguished_name = req_distinguished_name
prompt = no
string_mask = nombstr
x509_extensions = server_cert
[ req_distinguished_name ]
countryName = DE
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 páginas
Web, con el siguiente comando:
Ajustaremos los derechos de la clave para que sólo el root los pueda
leer, con el siguiente comando:
# mkdir -p /var/spool/postfix/var/run/saslauthd/
# vim /etc/default/saslauthd
START=yes
MECHANISMS="ldap"
MECH_OPTIONS=""
THREADS=5
OPTIONS="-c -m /var/spool/postfix/var/run/saslauthd -r"
# vim /etc/saslauthd.conf
Este archivo debe de tener este aspecto, con los datos de nuestro
Dominio (el servidor LDAP será 127.0.0.1 por que es local):
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
El archivo debe tener este aspecto, en el cual le diremos que tome como
método de autenticación el Servidor SALS y que será en Texto plano
porque no le hemos dado seguridad (SSL) el Servidor de Correo:
pwcheck_method: saslauthd
mech_list: plain login
# /etc/init.d/saslauthd restart
# vim /etc/postfix/main.cf
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/
# 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
# 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
# vim /etc/postfix/ldap-aliases.cf
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
# vim /etc/postfix/master.cf
# SMTPS
smtps inet n - - - - smtpd
-o smtpd_tls_wrappermode=yes
-o smtpd_sasl_auth_enable=yes
# Dovecot
dovecot unix - n n - - pipe
flags=DRhu user=dovecot:mail argv=/usr/lib/dovecot/deliver -d
$recipient
# Mail to Amavis
amavis unix - - - - 10 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
-o disable_dns_lookups=yes
-o max_use=20
# /etc/init.d/postfix restart
# vim /etc/dovecot/dovecot.conf
# 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
}
}
}
# vim /etc/dovecot/dovecot-ldap.conf
# /etc/init.d/dovecot restart
# vim /etc/amavis/conf.d/15-content_filter_mode
use strict;
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl,
\$bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl,
\$bypass_spam_checks_re);
1;
# vim /etc/amavis/conf.d/50-user
use strict;
$pax='pax';
1;
Después debemos de agregar el usuario Clamav al Grupo del Amavis,
con el siguiente comando:
# vim /etc/spamassassin/local.cf
# 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
loadplugin Mail::SpamAssassin::Plugin::DCC
loadplugin Mail::SpamAssassin::Plugin::Pyzor
loadplugin Mail::SpamAssassin::Plugin::Razor2
loadplugin Mail::SpamAssassin::Plugin::SpamCop
loadplugin Mail::SpamAssassin::Plugin::AWL
loadplugin Mail::SpamAssassin::Plugin::AutoLearnThreshold
loadplugin Mail::SpamAssassin::Plugin::WhiteListSubject
loadplugin Mail::SpamAssassin::Plugin::MIMEHeader
loadplugin Mail::SpamAssassin::Plugin::ReplaceTags
# vim /etc/default/spamassassin
ENABLED=1
OPTIONS="--create-prefs --max-children 5 --helper-home-dir"
PIDFILE="/var/run/spamd.pid"
#NICE="--nicelevel 15"
CRON=0
# vim /etc/amavis/conf.d/20-debian_defaults
$forward_method = 'smtp:127.0.0.1:10025';
$notify_method = $forward_method;
$final_virus_destiny = D_DISCARD; # (data not lost, see
virus quarantine)
$final_banned_destiny = D_BOUNCE; # D_REJECT when front-
end MTA
$final_spam_destiny = D_PASS;
$final_bad_header_destiny = D_PASS; # False-positive prone
(for spam)
# /etc/init.d/spamassassin start
# /etc/init.d/amavis restart
# cp /usr/share/doc/python-mmc-base/contrib/bind/named.conf
/etc/bind/
# vim /etc/resolv.conf
search example.com
nameserver 192.168.0.100
# vim /etc/bind9/named.conf.ldap
# cp /usr/share/doc/python-mmc-base/contrib/dhcpd/dhcpd.conf
/etc/dhcp3/
# vim /etc/dhcp3/dhcpd.conf
ldap-server "localhost";
ldap-port 389;
ldap-username "cn=admin, dc=example, dc=com";
ldap-password "Sena.2008admon";
ldap-base-dn "dc=example, dc=com";
ldap-method dynamic;
ldap-debug-file "/var/log/dhcp-ldap-startup.log";
# mkdir /etc/apache2/ssl/
Ahora Vamos a crear dos Host Virtuales para la MMC, uno que será el
Host Virtual que contendrá la ruta de la Pagina Web de al MMC (https) y
el otro será el que nos redireccionara a la pagina segura (http), esto
será para cuando tratemos de ingresar a la MMC con http nos mande a
https que es el modo seguro (SSL).
Crearemos el archivo http en la ruta /etc/apache2/sites-available/
con el siguiente comando:
# vim /etc/apache2/sites-available/http
NameVirtualHost *:80
<VirtualHost *:80>
ServerName server1.example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://server1.example.com/mmc
</VirtualHost>
# vim /etc/apache2/sites-available/https
NameVirtualHost *:443
<VirtualHost *: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
<Directory /usr/share/mmc/>
AllowOverride None
Order allow,deny
Allow from all
php_flag short_open_tag on
SSLRequire %{SSL_CIPHER_USEKEYSIZE} >= 128
</Directory>
ErrorLog /var/log/apache2/mmc_error.log
CustomLog /var/log/apache2/mmc_access.log combined
LogLevel warn
</VirtualHost>
# vim /etc/apache2/ports.conf
Listen 443
Después debemos permitir los nuevos Host Virtual (Crear los enlaces
con la ruta /etc/apache2/sites-enable/) es muy importante de lo
contrario no servirán, así:
# a2ensite http
# a2ensite https
# a2enmod rewrite
# a2enmod ssl
# /etc/init.d/apache2 restart
Plugin BASE
Ahora debemos de configurar los plugins necesarios para el
funcionamiento, lo que haremos es activarlos, editándolos y colocando
los datos respectivos de nuestro Dominio, si no los configuramos no
podrá arrancar la MMC, todos los plugins son importantes pero uno se
destaca mas sobre ellos por que los demás dependen de el. Entraremos
a editar el Plugin Base que se encuentra en la ruta
/etc/mmc/plugins/ con la ayuda del siguiente comando:
# vim /etc/mmc/plugins/base.ini
[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 = Sena.2008admon
# 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
Plugin MAIL
Con este plugin podremos crear los Dominios y Usuarios Virtuales para
el Correo (Postfix), lo activaremos editando el siguiente archivo:
# vim /etc/mmc/plugins/mail.ini
En el archivo debemos de cambiar los parámetros con los de nuestro
Dominio y Activar los Dominios y Usuarios Virtuales en la línea
vDomainSupport colocando el valor en 1, así debe de quedar el
archivo de configuración (Verificaremos que las líneas For Postfix, For
Dovecot delivery estén comentadas y que la linea mailbox = este des
comentada para el buen funcionamiento del Plugin), debe de ser así:
[main]
disable = 0
# Enable virtual domain support
vDomainSupport = 1
# 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
Plugin NETWORK
También debemos de configurar este plugin el cual será el que permitirá
la comunicación para el Servidor DHCP y el Servidor DNS, para la
creación de Zonas y Rangos. Editaremos el siguiente archivo:
# vim /etc/mmc/plugins/network.ini
[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
Plugin SAMBA
En este plugins también lo configuraremos con los parámetros de
nuestro Domino en el cual le estamos diciendo el Dominio para que
almacene a los Usuarios del LDAP, de lo contrario no podremos Agregar
ningún equipo de la Red al Servidor, editaremos el siguiente archivo con
el comando:
# vim /etc/mmc/plugins/samba.ini
[main]
disable = 0
# Computers Locations
baseComputersDN = ou=Computers, dc=example, 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
Iniciar la MMC
Ya configuramos los plugins necesarios para que se pueda Iniciar
(Arrancar) la MMC, lo haremos con el siguiente comando:
# /etc/init.d/mmc-agent start
# vim /etc/samba/smb.conf
ldap delete=no
# /etc/init.d/mmc-agent restart
Es necesario reiniciar el Servidor BIND9 para que tome los cambios, así:
# /etc/init.d/bind9 restart
# vim /etc/postfix/master.cf
Buscaremos las siguientes líneas y las des comentamos, las líneas son:
-o smtpd_enforce_tls=yes
-o smtpd_sasl_auth_enable=yes
Que por defecto vienen comentadas. También es necesario crear un
enlace entre el archivo apache.conf (Que será el Host Virtual para la
Pagina Web del Squirrelmail), de la siguiente forma. Primero debemos
de estar parado en la siguiente ruta:
# cd /etc/apache2/conf.d
# ln -s /usr/share/squirrelmail/config/apache.conf apache.conf
# ls -l
http://server1.example.com/mmc
Daremos Clic en Network, Clic en Nuestra Zona DNS y Clic en Editar:
# mv /etc/apache2/conf.d/apache.conf /etc/apache2/sites-available/
# mv /etc/apache2/sites-available/apache.conf /etc/apache2/sites-
available/webmails
# vim /etc/apache2/sites-available/webmails
NameVirtualHost *:80
<VirtualHost *:443>
DocumentRoot /usr/share/squirrelmail
ServerName 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
<Directory /usr/share/squirrelmail>
Options Indexes FollowSymLinks
<IfModule mod_php4.c>
php_flag register_globals off
</IfModule>
<IfModule mod_php5.c>
php_flag register_globals off
</IfModule>
<IfModule mod_dir.c>
DirectoryIndex index.php
</IfModule>
# cp /etc/apache2/sites-available/http /etc/apache2/sites-
available/webmail
Entraremos a editar el archivo Webmail para configurarlo con los datos
del nuevo Host Virtual, así:
# vim /etc/apache2/sites-available/webmail
<VirtualHost *:80>
ServerName webmail.example.com
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule (.*) https://webmail.example.com
</VirtualHost>
Nos falta una parte muy importante para que nos pueda funcionar el
Host Vistual, que es generar el certificado para la Interfaz 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 nuevo certificado
con en siguiente comando:
# a2ensite webmail
# a2ensite webmails
# /etc/init.d/apache2 restart
# /etc/init.d/bind9 restart
NOTA: Si nos sale algún 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/.
http://webmail.example.com
Aquí nos debe de salir las imágenes del Certifcado SSL (recordemos que
nos redirecciona a https) a las cuales le daremos Clic en OK y lito:
Clic en OK:
# vim /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/main.cf
# vim /etc/postfix/main.cf
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
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-domains.cf /etc/Postfix/
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-accounts.cf /etc/postfix/
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-aliases.cf /etc/postfix/
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-maildrop.cf /etc/postfix/
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-uid.cf /etc/postfix/
# cp /usr/share/doc/python-mmc-base/contrib/postfix/with-virtual-
domains/ldap-gid.cf/etc/postfix/
Ahora que los copiamos debemos de entrar a modificarlos con los datos
de nuestro Dominio, lo haremos con el siguiente comando:
# vim /etc/postfix/ldap-domains.cf
# vim /etc/postfix/ldap-accounts.cf
# vim /etc/postfix/ldap-aliases.cf
# vim /etc/postfix/ldap-maildrop.cf
# vim /etc/postfix/ldap-uid.cf
# vim /etc/postfix/ldap-gid.cf
Ahora debemos de reiniciar el Postfix para que nos tome los cambios, es
posible que el DNS tambien (Recordemos que si tenemos la MMC abierta
es posible que debamos de cerrarla y volver a entrar a ella), así:
# /etc/init.d/postfix restart
# /etc/init.d/bind9 restart
http://server1.example.com/mmc