Вы находитесь на странице: 1из 75

SERVIDOR DE CORREO EN LINUX DEBIAN.

Lo primero que haremos sera escribir los repositorios que usaremos para descargar
nuestros paquetes en la ruta /etc/apt/suorces.list.

#nano /etc/apt/sources.list

Los repositorios que nosotros usamos son:

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


deb http://ftp2.de.debian.org/debian-volatile sarge/volatile main
deb http://security.debian.org/ stable/updates main contrib
deb http://ftp.es.debian.org/debian/ stable main contrib non-free
deb http://ftp.rediris.es/debian/ stable main contrib non-free
deb ftp://ftp.dat.etsit.upm.es/debian/ stable main contrib non-free
deb http://jane.uab.es/debian/ stable main contrib non-free
deb-src http://ftp.es.debian.org/debian/ sid main
deb http://ftp.de.debian.org/debian/ etch main contrib non-free
deb http://mds.mandriva.org/pub/mds/debian etch main
deb http://volatile.debian.org/debian-volatile etch/volatile main contrib non-f$
deb http://www.backports.org/debian etch-backports main
deb ftp://ftp.us.debian.org/debian sarge main contrib non-free

Antes de actualizar debemos crear las llaves para permitir las descargas de los paquetes
necesarios de los repositorios backports.

#wget -O - http://backports.org/debian/archive.key | apt-key add -

ahora actuallizamos los repositorios.

#apt-get update

#apt-get upgrade.
SERVIDOR DNS.

Antes de empezar a configurar nuestro servidor de correo debemos hacer unas


configuraciones previas como tener un servidor dns que resuelva nuestro nuestro
dominio y resuelva el nombre de nuestro servidor de correo.

Instalación:

#apt-get install bind9

Ahora procedemos a configurar los archivo de configuración del bind se encuentra en


/etc/bind/ hay se encuentra el archivo named.conf procedemos a cambiar las lineas de tal
manera que quede de la siguiente manera.

zone "mundoredes.com" {
type master;
file "/etc/bind/directa.";
};

zone "1.168.192.in-addr.arpa" {
type master;
file "/etc/bind/inversa.";
};

Nuestro dominio se llamara mundoredes.com.


Ahora crearemos las zonas estos son archivos donde configuraremos las opciones de
nuestro servidor.

Vamos ala ruta donde están los archivos de configuración del dns.

#cd /etc/bind

copiamos los archivos de muestra para nuestras zonas estas archivos de muestra son
para la inversa db.127 y para la directa db.local.

Copiamos:

#cp db.127 inversa

#cp db.local directa

editamos la zona inversa

#pico /etc/bind/inversa

Esta zona nos debe quedar de esta manera.

Editamos la zona directa

#pico /etc/bind/directa
Configuramos normalmente el dns y lo mas importante es agregar el host de nuestro
servidor de correo y su nombre sera mail y la dirección ip sera 192.168.1.1, agregamos e l
registro mx con una prioridad de 10.
ya creadas las zonas reiniciamos nuestro servidor dns

#/etc/init.d/bind9 restart

prueba:

vamos a sistema, luego administración, y por ultimo damos clic en red, aquí configuramos
nuestra interfaz de red le ponemos una ip fija la ip de nuestro servidor en mi caso sera
192.168.1.1 y en la pestaña dns escribimos nuestro nombre de dominio en dominios de
búsqueda que en este ejemplo sera mundoredes.com y en servidores dns escribimos la
dirección ip del servidor que sera 192.168.1.1.
Luego
abrimos la
consola y escribimos el comando nslookup.

#nslookup

> set q=any

> mundoredes.com
Al escribir las dos lineas anteriores me debe mostrar toda la configuración de mi dominio,
miremos que aparezca la configuración de nuestro servidor de correo como en la imagen
anterior.

Si la prueba sale satisfactoria mente ya tenemos listo nuestro servidor dns.

INSTALACIÓN Y CONFIGURACIÓN BÁSICA DE POSTFIX.

Lo primero que haremos es la instalación de nuestro servidor de correo en este ejemplo


usaremos postfix que es un Agente de Transporte de Correo (MTA) libre.
miramos en la cache de los repositorios haber si se encuentra el paquete con el siguiente
comando.

#apt-cache search postfix

ya verificamos y si se encuentra el paquete procedemos a instalar.

#apt-get install postfix


Ya instalamos postfix que es nuestro mta (agente de transferencia de correo).

los archivos de configuracion de postfix están en la ruta /etc/postfix, editaremos el archivo


main.cf
#pico /etc/postfix/main.cf

modificamos las siguientes lineas:

myhostname = mail.mundoredes.com

Este es el nombre del host que tiene nuestro correo este debe ser el que le configuramos
en nuestro dns.

mydomain = mundoredes.com

Este es el dominio con el cual recibiremos los correos.

mydestination = mundoredes.com, localhost.mundoredes.com, localhost

Esta opcion es para poder recibir correos en nuestra maquina local aquí realizaremos
nuestras primeras pruebas.

mynetworks = 192.168.1.0/24, 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Definimos la direccion de red donde deseemos que entren y salgan los correos.
Ahora no queda si no reiniciar el servicio

#/etc/init.d/postfix restart

para probar el servidor nos conectamos directamente al servidor así.

#telnet 127.0.0.1 25
#telnet mail.mundoredes.com 25
Si el servidor no contesta eso quiere decir que vamos por buen camino.

Ahora probaremos enviando mensajes, primero que todo creamos usuarios en el sistema.

#useradd -m carlos

#passwd carlos

#useradd -m jeison

#passwd jeison

despues instalamos el mutt que es un software con el cual podemos enviar y recibir
correos.

#apt-get install mutt

Para abrir el mutt debemos estar logueados como root y escribimos el comando

#mutt

me dice que el usuario no existe y deseo crear el directorio tecleamos la letra s y enter,
cuando abrimos por primera ves el mutt nos aparece vacio ya que no se ha enviado
ningun mensaje entonces enviamos un mensaje con la tecla m para enviar el mensaje en
el lado superior e inferior de la pantalla encontramos las opciones.

Aquí escribimos el Asunto del mensaje.


Este sera el mensaje que llegara al usuario al cual se lo enviamos.

Al usuario al que enviaremos el correo sera jeison@mundoredes.com damos enter y


escribimos el mensaje y pulsamos las teclas ctrl+x nos pregunta que si deseamos guardar
los cambios escribimos la letra y damos enter
nos saldrá un encabezado con toda la información de envío del correo

después nos logueamos en el mutt con el usuario del sistema jeison y hay vemos el
mensaje.

#su jeison

luego de estar en jeison solo escribimos mutt.

ALMACENAMIENTO DEL CORREO.

En este manual hablaremos de dos formas de almacenar el correo y ellas son maildir y
mailbox.

Maildir es un formato de spool de correo electrónico que no bloquea los ficheros para
mantener la integridad del mensaje, porque los mensajes se almacenan en ficheros
distintos con nombres únicos. Maildir es un directorio (usualmente llamado Maildir) con
tres subdirectorios llamados tmp, new, y cur. Todos los subdirectorios deben residir en el
mismo sistema de archivos.
Mailbox al contrario de maildir guarda los mensajes en un solo archivo y este es que usa
el dovecot.
Cuando recivimos un correo electrónico se almacena en la ruta /var/mail y encambio
cuando usamos un formato maildir todos los ficheros se guardan en /var/spool/mail.

CONFIGURACIÓN DE IMAP Y POP3.

El servidor que escogimos para instalar los protocolos imap y pop3 fue el dovecot por
defecto dovecot utiliza solamente imap pero se puede configurar para que trabaje con
pop3.

Miramos que los paquetes se encuentren en la cache de los repositorios.

#apt-cache search dovecot

y procedemos a instalarlos.

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


El principal archivo de configuracion del dovecot se encuentra en

#/etc/dovecot/dovecot.conf

Las princpales lineas que vamos a configurar son:

protocols = pop3 pop3s imap


Serán los protocolos que usara el dovecot.

Listen = *
por cual puerto escuchara. Como tenemos el signo * quiere decir que tomara el puerto por
defecto.

disable_plaintext_auth = no
esta linea quiere decir que si deshabilitaremos la autenticacion en texto plano ponemos no
por que la vamos a utilizar.

ssl_disable = yes
esto nos dece que se queremos deshabilitar ssl

mail_location = mbox:~/mail:INBOX=/var/mail/%u
esto nos indica el lugar donde se alojaran los correos que por defecto es la carpeta
/var/mail/

AUTENTICACIÓN POR MEDIO DE PAM.

Nos autenticaremos por medio de un servidor asi sea imap o pop3 contra PAM.
En las distribuciones modernas de Linux el mecanismo de autenticación de los usuarios
es un servicio modular, proporcionado a las aplicaciones por el propio sistema.
Por ejemplo, cuando una aplicación como "login" requiere la autenticación de un usuario,
no la realiza ella misma sino que "solicita" al sistema que autentique al usuario. La parte
del sistema que realiza la autenticación es una pila de módulos PAM, que se van
ejecutando encadenadamente hasta devolver el resultado del proceso (autenticación OK
o incorrecta) a la aplicación. Una vez que la aplicación obtiene este resultado, puede
seguir realizando acciones (mostrar un mensaje de rechazo o ejecutar los scripts de
arranque del usuario autenticado.
Para habilitar la autenticaron por texto plano solo basta con agrgar las siguientes lineas al
final del archivo de configuracion.
auth default {

mechanisms = plain login


passdb pam {
}

userdb passwd {
}
socket listen {
client {

# Assuming the default Postfix $queue_directory setting


path = /var/spool/postfix/private/auth
mode = 0660

# Assuming the default Postfix user and group


user = postfix
group = postfix

Ahora solo queda reiniciar el servicio al princiopio nos saldrán algunos errores por lineas
repetidas las comentamos # y guardamos los cambios y reiniciamos

#/etc/init.d/dovecot restart

CONFIGURACIÓN DE EVOLUTION.

Es un MDA (Agente de Entrega de Correo) el cual almacena el correo electrónico


mientras espera que el usuario lo acepte. El evolution es un usuario de correo electrónico,
viene integrado a linux este nos permite revisar nuestros correos. Hay otros usuarios de
correo que podemos utilizar como Thunderbird, squirrelmail y otros en nuestro caso
usaremos el evolution.

Para configurar el evolution primero cerramos cesión y nos logueamos como usuarios del
sistema.
El evolution esta en Aplicaciones, internet, y cliente de correo evolution.

Cuando lo abrimos por primera vez nos pide algunos datos que hay que llenar.

Empezamos en la primera pantalla es la de bienvenida hay nos da una breve introducción


del evolution pulsamos adelante.

En la siguiente plantilla llenamos los siguientes campos. En informacion requerida nos


pide el nombre completo y la direccion de correo-e
Nombre completo: carlos contreras.
direccion de correo-e : carlos@mundoredes.com.

En informacion opcional nos aparece, responder a y organización

responder a: carlos@mundoredes.com
organización lo podemos dejar en blanco

chuleamos hace que esta sea mi cuenta predetermina hacemos clic en adelante.

En la plantilla recepción de correo ponemos tipo de servidor imap y llenamos los otros
campos . En configuración servidor ponemos la dirección de nuestro servidor en usuario
ponemos la dirección de correo electrónico.

Servidor: 192.168.1.1
usuario: carlos@mundoredes.com

En seguridad usar conexión segura usar cifrado ssl.

En tipo de autentificaron ponemos contraseña, clic en adelante.

En opciones de recepción.
En esta plantilla solo activamos comprobar si hay correo nuevo cada 2 minutos o el valor
que le deseemos dar pulsamos adelante.

La plantilla que sigue es envío de correo. En esta escogemos en la opción tipo de servidor
smtp,
en configuración del servidor en la opción servidor escribimos la dirección ip de nuestro
servidor y chuleamos el servidor requiere autenticación. En seguridad en la opción usar
conexión segura escogemos sin cifrado, en autenticación tipo PLAIN y llenamos la casilla
usuario pulsamos adelante.
Servidor: 192.168.1.0
usuario: mailcarlos

En la plantilla administración de cuentas información de la cuenta llenamos la casilla


nombre y pulsamos adelante.
Nombre: Carlos
y por ultimo escogemos la zona horaria donde estamos y finalizamos.

Ya entramos a evolution y nos pedirá la contraseña por el mecanismo pam que es que ya
hemos configurado introducimos la contraseña y el usuario.

Ahora probaremos nuestro servidor. Nos enviaremos un correo a nuestra propia cuenta
de correo.

Buscamos la opción nuevo en el entorno le damos clic se nos desplegan barias opciones
elegimos mensaje de correo.
Ahora escribimos la dirección de la persona a quien le mandaremos el correo como es
una prueba local y es la primera que haremos lo vamos a enviar a nosotros mismos.

Ahora buscamos la opción enviar y le damos clic esto bastara para enviar el mensaje.

Ahora en las opciones generales buscamos bandeja de entrada y encontramos una


entrada damos clic en bandeja de entrada y vemos que hay esta nuestro mensaje.

MOZILLA THUNDERBIRD.

Primero que todo usaremos es Mozilla Thunderbird o Thunderbird (anteriormente


Minotaur) es un cliente de correo electrónico de la Fundación Mozilla. El objetivo de
Thunderbird es desarrollar un Mozilla más liviano y rápido Es multiplataforma, Thunderbird
soporta IMAP/POP, correo HTML, noticias, RSS, etiquetas, corrector ortográfico
incorporado, soporte de extensiones y skins, buscadores, cifrado PGP, un filtro bayesiano
de correo basura (spam), etc. Su principal problema contra rivales como Evolution (sobre
plataformas Linux) o, en Windows, Windows Mail (anteriormente llamado Outlook
Express) estriba en su carencia de un calendario usable, aunque existe una extensión
llamada Lightning que implementa un calendario con casi el mismo nivel de funcionalidad
de Mozilla Sunbird.

Comenzaremos con su instalación

Primero que todo miraremos si esta en nuestros repositorios lo que necesitamos:

#apt-cache search mozila thunderbird

Al ver que si lo tenemos en nuestra lista de repositorios nos disponemos a instalarlo :

#apt-get install mozilla thunderbird

Después de que ejecutamos el comando esperamos un momento la descarga, fijamos


que no a ocurrido ningún tipo de error durante el proceso.

Ahora para comenzar con la configuración del mozila thunderbird nos dirigimos al meno
principal : aplicaciones/internet /mozila thunderbird.

Cuando iniciamos Mozilla Thunderbird por primera vez nos aparece la siguiente pantalla.
Escogemos la opción email account y pulsamos siguiente. A continuación se nos solicitan
los datos de nuestra identidad. Introducimos nuestro nombre y nuestra dirección de correo
Creamos una cuenta nueva de correo en nuestro servidor utilizando el Mozilla
Thunderbird en la opción que dice email account o cuenta de correo nueva.

Luego de seleccionamos next y nos disponemos a llenar los dos campos que nos piden
en esta parte de nuestra configuración el your name (nombre que te identifique o usuario)
y en el segundo campo colocaremos la dirección de correo electrónico.
Son solo datos de identidad

Después de esto siguiente para continuar


En el diálogo que se muestra a continuación lo único que haremos es seleccionar el
protocolo que usaremos para acceder a nuestros correos almacenados en el servidor…
el tipo de servidor entrante. POP e IMAP. El primero está ideado para descargar los
mensajes de correo electrónico a nuestra máquina y el segundo para descargarlos bajo
demanda (únicamente cuando sea necesario). En el ejemplo se muestra la manera de
configurar el cliente para el uso del servidor IMAP. luego en el segundo campo del
recuadro colocaremos la dirección que tiene nuestro servidor imap que en este caso es la
192.168.1.1.

Acontinuación se nos solicitaios para el correo entrante y saliente. En ambos debemos


introducir nuestro nombre de usuario para el sistema de correo (parte de la dirección que
aparece antes de la ‘@’) y nuevamente pulsamos siguiente.

Esta última opción permite modificar el nombre que le dará Thunderbird a la cuenta que
estamos creando. Normalmente la opción por defecto es aceptable. Podemos aceptar la
sugerencia de Thunderbir pulsando el botón de siguiente pero seguiremos como el
usuario con el que venimos trabajando.
Esta ventana resume toda la configuración que hemos hecho hasta el momento, si vemos
algún dato que no es correcto estamos a tiempo de pulsar cuantas veces sea necesario el
botón de “Anterior” y solucionar el problema. Si la configuración es correcta pulsamos
“Terminar”.

A continuación se nos solicitará la contraseña de nuestra cuenta de correo para


conectarnos al servidor entrante. Si marcamos la opción “Use el administrador de
contraseñas para recordar esta contraseña” no se nos volverá a solicitar esta información,
Thunderbird se encargará de recordarla por nosotros. Pero como la idea es que nos pida
autenticación lo que haremos es colocar la contraseña del usuario con el que queremos
ingresar que en este caso es new……….

Después de que cumplamos con esto podemos ingresar a nuestro mua y empezar a
utilizar sus múltiples funciones
AUTENTICACION ATRAVES DEL SASL.

Es un protocolo que que nos permite autenticarnos con un servidor imap o pop3
configuramos el archivo principal de configuración de postfix.
#nano /etc/postfix/main.cf

Añadimos las siguientes lineas.


smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions =permit_sasl_authenticated,reject
smtpd_sasl_authenticated_header = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = no
smtpd_sasl_security_options =

Guardaremos y cerramos.
Reiniciamos el servidor

#/etc/init.d/postfix restart

Nos validaremos atraves de base64

#printf “\0%s\0%s” new carlosem | base64

Base64 = Es un sistema para la codificacion de los datos, aunque podemos utlizar otros.

Habrimos nuestro MTA y nos daremos cuenta que nuestros que nos estamos
autenticando a traves de sasl cuando enviamos un correo nos debe salir un menu de
autenticacion.
Escribimos la contraseña para poder enviar el correo.
TLS PARA POSTFIX

#openssl req -new -x509 -nodes -out certificado.pem -keyout postfix.pem -days 3000

El certificado ha sido creado.

Estos certificado se crean en /etc/ssl/

#cd /etc/ssl/
certificado.pem cert openssl.cnf postfix.pem private

Editamos el archivo principal de postfix.

#nano /etc/postifx/main.cf

y agregaremos las siguientes lineas.

# TLS Parameters

smtpd_tls_cert_file=/etc/ssl/certificado.pem
smtpd_tls_key_file=/etc/ssl/postfix.pem
smtp_use_tls = yes
smtp_tls_loglevel = 0
smtp_tls_session_cache_timeout = 3600s
smtp_tls_note_starttls_offer = yes
smtp_starttls_timeout = 300s

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

En la configuración de nuestro MTA podemos agregar el soporte tls.

LDAP

Ldap es un protocolo a nivel de aplicación que permite el acceso a un servicio de


directorio ordenado y distribuido para buscar diversa información en un entorno de red.
LDAP también es considerado una base de datos (aunque su sistema de almacenamiento
puede ser diferente) a la que pueden realizarse consultas.
Habitualmente, almacena la información de login (usuario y contraseña) y es utilizado
para autentificarse aunque es posible almacenar otra información (datos de contacto del
usuario, ubicación de diversos recursos de la red, permisos, certificados, etc).
Instalación.
primero que todo vemos que el paquete este en la cache de los repositorios.
#apt-cache search ldap-utils

#apt-cache search slapd


Ahora instalamos los paquetes.

#apt-get install ldap-utils


#apt-get install migrationtools
#apt-get install slapd

Cuando se esta instalando este ultimo paquete nos pedira la contraseña del administrador
de ldap.
Despues de instalarlo lo configuraremos de la siguiente forma:
escribimos el siguiente comando:

#dpkg-reconfigure slapd
y se iniciara un asistente.
En esta primera opcion decimos NO por que la configuración de nuestro ldap va ser
básica.
Escribimos el nombre de nuestro dominio.
En esta plantilla escribimos la contraseña del administrador que es que va a realizar los
cambios en la configuracion si deseamos cambiar la configuracion de nuestro servidor
debemos estar logueados como administradores.

Aquí verifica la contraseña.


El motor de base de datos que utilizaremos sera el DBD.

Nos preguntara que deseamos borrar la base de datos cuando se purgue el paquete
slapd. Escogemos la opción NO para que la base de datos quede en el sistema después
de que se elimine el paquete de instalación.
En esta plantilla nos preguntara si deseamos mover la base de datos antigua en esta
opcion le decimos SI.

En esta ultima opción nos preguntara si deseamos el protocolo LDAPv2 decimos que no
ya que los servidores que tenemos son compatibles es con LDAPv3.
Ahora configuraremos el servidor para que se autentique con LDAP.
Miramos si los paquetes se encuentran en la cache de los repositorios

#apt-cache search auth-client-config


#apt-cache search libnss-ldap
#apt-cache search libpam-ldap server

Ahora instalamos los paquetes.

#apt-get install auth-client-config libnss-ldap


#apt-get install libpam-ldap

Cuando instalamos el paquete libpam-ldap nos pedira los siguientes parámetros de


configuración.
Identificador de recursos para el servidor LDAP
ldapi://127.0.0.1/

El nombre distintivo (DN) de la base de búsquedas


dc=mundoredes,dc=com
Versión de LDAP a utilizar 3

Crear un administrador de la base de datos local SI


¿Hace falta un usuario par acceder a la base de datos LDAP? NO

Cuenta LDAP para root


cn=admin,dc=mundoredes,dc=com
Contraseña para la cuenta LDAP de root.
Comprobamos la instalacion:

#idapsearch -x -b “dc=mundoredes,dc=com”

resultado correcto.
Si no tenemos apache instalado lo instalamos.

#apt-get install apache

Ahora procedemos a instalar el paquete smbldap-tools.

#apt-get install smbldap-tools

También necesitaremos el paquete phpldapadmin.


#apt-get install phpldapadmin
Ahora instalaremos MKNTPWD que es una utilidad que requiere Phpldapadmin requiere
para crear los hashes de las claves Samba. Esto solía estar incluido en smbldap-tools
pero no parece estar en Debian.
Vamos al fichero opt
#cd /opt
Escrtibimos el siguiente comando para descargar el archivo comprimido de la pagina
donde esta.

wget http://www.silcom.com.pe/soft/mkntpwd.tar.gz

Descomprimimos el archivo que acabamos de descargar con el comando.

#tar -zxf mkntpwd.tar.gz

Nos ubicamos en el directorio.

#cd mkntpwd

Automatizamos o compilamos el codigo con.

#make

Copiamos el archivo mkntpwd a la ruta /usr/local/bin

#cp mkntpwd /usr/local/bin

y verificamos, solo tenemos que escribir en la consola mkntpwd


nos debe salir lo siguiente:
Empezamos con la instalación de samba.
Instalamos los apaquetes samba samba-doc

#apt-get install samba samba-doc

En nombre del domonimio o grupo de trabajo escribimos mundoredes.com y en la opcion


modificar smb.conf para que use la configuración WINS proveniente de DHCP decimos
NO
pasamos a la creación de las carpetas para samba.

#mkdir /home/samba/
#mkdir /home/samba/netlogon
#mkdir /home/samba/profiles

CONFIGURACION DE LDAP

vamos al directorio donde esta el schema /usr/share/doc/samba-doc/examples/LDAP


#cd /usr/share/doc/samba-doc/examples/LDAP

descomprimimos:

#gunzip samba.schema.gz

Copiamos el archivo samba.schema ala ruta /etc/ldap/schema

#cp samba.schema /etc/ldap/schema

Ahora agregaremos el schema de samba entramos a /etc/ldap/slapd.conf

nano /etc/ldap/slapd.conf

y agragamos el schema
#include /etc/ldap/schema/samba.schema

Guardamos Ctrl+x Si

por ultimo reiniciamos ldap:


#/etc/init.d/slapd restart
CREACION DEL ARBOL LDAP.

CONFIGURACIÓN DE SAMBA

#cd /etc/samba
#cp smb.conf smb.conf.bkp
#nano smb.conf

Modificamos el archivo /etc/samba/smb.conf


teniendo en cuenta nuestro dominio el archivo debe quedar asi.
#
# Sample configuration file for the Samba suite for Debian GNU/Linux.
#
#
# This is the main Samba configuration file. You should read the
# smb.conf(5) manual page in order to understand the options listed
# here. Samba has a huge number of configurable options most of which
# are not shown in this example
#
# Some options that are often worth tuning have been included as
# commented-out examples in this file.
# - When such options are commented with ";", the proposed setting
# differs from the default Samba behaviour
# - When commented with "#", the proposed setting is the default
# behaviour of Samba but the option is considered important
# enough to be mentioned here
#
# NOTE: Whenever you modify this file you should run the command
# "testparm" to check that you have not made any basic syntactic
# errors.
# A well-established practice is to name the original file
# "smb.conf.master" and create the "real" config file with
# testparm -s smb.conf.master >smb.conf
# This minimizes the size of the really used smb.conf file
# which, according to the Samba Team, impacts performance
#
#======================= Global Settings =======================
[global]
## Browsing/Identification ###
# Change this to the workgroup/NT-domain name your Samba server will part of
workgroup = mundoredes.com

# server string is the equivalent of the NT Description field


server string = %h server

# Windows Internet Name Serving Support Section:


# WINS Support - Tells the NMBD component of Samba to enable its WINS Server
# wins support = no

# WINS Server - Tells the NMBD components of Samba to be a WINS Client


# Note: Samba can be either a WINS Server, or a WINS Client, but NOT both
; wins server = w.x.y.z

# This will prevent nmbd to search for NetBIOS names through DNS.
dns proxy = no

# What naming service and in what order should we use to resolve host names
# to IP addresses
; name resolve order = lmhosts host wins bcast

#### Networking ####

# The specific set of interfaces / networks to bind to


# This can be either the interface name or an IP address/netmask;
# interface names are normally preferred
; interfaces = 127.0.0.0/8 eth0

# Only bind to the named interfaces and/or networks; you must use the
# 'interfaces' option above to use this.
# It is recommended that you enable this feature if your Samba machine is
# not protected by a firewall or is a firewall itself. However, this
# option cannot handle dynamic or non-broadcast interfaces correctly.
; bind interfaces only = yes

#### Debugging/Accounting ####

# This tells Samba to use a separate log file for each machine
# that connects
log file = /var/log/samba/log.%m

# Cap the size of the individual log files (in KiB).


max log size = 1000

# If you want Samba to only log through syslog then set the following
# parameter to 'yes'.
# syslog only = no

# We want Samba to log a minimum amount of information to syslog. Everything


# should go to /var/log/samba/log.{smbd,nmbd} instead. If you want to log
# through syslog you should set the following parameter to something higher.
syslog = 0

# Do something sensible when Samba crashes: mail the admin a backtrace


panic action = /usr/share/samba/panic-action %d

####### Authentication #######

# "security = user" is always a good idea. This will require a Unix account
# in this server for every user accessing the server. See
# /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/ServerType.html
# in the samba-doc package for details.
# security = user

# You may wish to use password encryption. See the section on


# 'encrypt passwords' in the smb.conf(5) manpage before enabling.
encrypt passwords = true
# If you are using encrypted passwords, Samba will need to know what
# password database type you are using.
passdb backend = tdbsam

obey pam restrictions = yes

# This boolean parameter controls whether Samba attempts to sync the Unix
# password with the SMB password when the encrypted SMB password in the
# passdb is changed.
unix password sync = yes

# For Unix password sync to work on a Debian GNU/Linux system, the following
# parameters must be set (thanks to Ian Kahan <<kahan@informatik.tu-muenchen.de>
for
# sending the correct chat script for the passwd program in Debian Sarge).
passwd program = /usr/bin/passwd %u
passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n
*password\supdated\ssuccessfully* .

# This boolean controls whether PAM will be used for password changes
# when requested by an SMB client instead of the program listed in
# 'passwd program'. The default is 'no'.
pam password change = yes

########## Domains ###########

# Is this machine able to authenticate users. Both PDC and BDC


# must have this setting enabled. If you are the BDC you must
# change the 'domain master' setting to no
#
; domain logons = yes
#
# The following setting only takes effect if 'domain logons' is set
# It specifies the location of the user's profile directory
# from the client point of view)
# The following required a [profiles] share to be setup on the
# samba server (see below)
; logon path = \\%N\profiles\%U
# Another common choice is storing the profile in the user's home directory

# (this is Samba's default)


# logon path = \\%N\%U\profile

# The following setting only takes effect if 'domain logons' is set


# It specifies the location of a user's home directory (from the client
# point of view)
; logon drive = H:
# logon home = \\%N\%U

# The following setting only takes effect if 'domain logons' is set


# It specifies the script to run during logon. The script must be stored
# in the [netlogon] share
# NOTE: Must be store in 'DOS' file format convention
; logon script = logon.cmd

# This allows Unix users to be created on the domain controller via the SAMR
# RPC pipe. The example command creates a user account with a disabled Unix
# password; please adapt to your needs
; add user script = /usr/sbin/adduser --quiet --disabled-password --gecos "" %u

########## Printing ##########

# If you want to automatically load your printer list rather


# than setting them up individually then you'll need this
# load printers = yes

# lpr(ng) printing. You may wish to override the location of the


# printcap file
; printing = bsd
; printcap name = /etc/printcap

# CUPS printing. See also the cupsaddsmb(8) manpage in the


# cupsys-client package.
; printing = cups
; printcap name = cups

############ Misc ############

# Using the following line enables you to customise your configuration


# on a per machine basis. The %m gets replaced with the netbios name
# of the machine that is connecting
; include = /home/samba/etc/smb.conf.%m

# Most people will find that this option gives better performance.
# See smb.conf(5) and /usr/share/doc/samba-doc/htmldocs/Samba3-HOWTO/speed.html
# for details
# You may want to add the following on a Linux system:
# SO_RCVBUF=8192 SO_SNDBUF=8192
# socket options = TCP_NODELAY

# The following parameter is useful only if you have the linpopup package
# installed. The samba maintainer and the linpopup maintainer are
# working to ease installation and configuration of linpopup and samba.
; message command = /bin/sh -c '/usr/bin/linpopup "%f" "%m" %s; rm %s' &

# Domain Master specifies Samba to be the Domain Master Browser. If this


# machine will be configured as a BDC (a secondary logon server), you
# must set this to 'no'; otherwise, the default behavior is recommended.
# domain master = auto

# Some defaults for winbind (make sure you're not using the ranges
# for something else.)
; idmap uid = 10000-20000
; idmap gid = 10000-20000
; template shell = /bin/bash

# The following was the default behaviour in sarge,


# but samba upstream reverted the default because it might induce
# performance issues in large organizations.
# See Debian bug #368251 for some of the consequences of *not*

# having this setting and smb.conf(5) for details.


; winbind enum groups = yes
; winbind enum users = yes

# Setup usershare options to enable non-root users to share folders


# with the net usershare command.

# Maximum number of usershare. 0 (default) means that usershare is disabled.


; usershare max shares = 100

#======================= Share Definitions =======================

[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change the


# next parameter to 'no' if you want to be able to write to them.
read only = yes

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700

# By default, \\server\username shares can be connected to by anyone


# with access to the samba server.
# The following parameter makes sure that only "username" can connect
# to \\server\username
# This might need tweaking when using external authentication schemes
valid users = %S

# Un-comment the following and create the netlogon directory for Domain Logons
# (you need to configure Samba to act as a domain controller too.)
;[netlogon]
; comment = Network Logon Service
; path = /home/samba/netlogon
; guest ok = yes
; read only = yes
; share modes = no

# Un-comment the following and create the profiles directory to store


# users profiles (see the "logon path" option above)
# (you need to configure Samba to act as a domain controller too.)
# The path below should be writable by all users so that their
# profile directory may be created the first time they log on
;[profiles]
; comment = Users profiles
; path = /home/samba/profiles
; guest ok = no
; browseable = no
; create mask = 0600
; directory mask = 0700

[printers]
comment = All Printers
browseable = no
path = /var/spool/samba
printable = yes
guest ok = no
read only = yes
create mask = 0700

# Windows clients look for this share name as a source of downloadable


# printer drivers

[print$]
comment = Printer Drivers
path = /var/lib/samba/printers
browseable = yes
read only = yes
guest ok = no
# Uncomment to allow remote administration of Windows print drivers.
# Replace 'ntadmin' with the name of the group your admin users are
# members of.
; write list = root, @ntadmin

# A sample share for sharing your CD-ROM with others.


;[cdrom]
; comment = Samba server's CD-ROM
; read only = yes
; locking = no
; path = /cdrom
; guest ok = yes

# The next two parameters show how to auto-mount a CD-ROM when the
# cdrom share is accesed. For this to work /etc/fstab must contain
# an entry like this:
#
# /dev/scd0 /cdrom iso9660 defaults,noauto,ro,user 0 0
#
# The CD-ROM gets unmounted automatically after the connection to the
#
# If you don't want to use auto-mounting/unmounting make sure the CD
# is mounted on /cdrom
#
; preexec = /bin/mount /cdrom
; postexec = /bin/umount /cdrom

NOTA:
- el archivo esta ajustado para la configuración de este caso
- si copian el archivo directamente hay que darle permisos de lectura al grupo y a others
- modificaciones :chmod u-x smb.conf chmod g+r smb.conf chmod o+r smb.conf
- ajustar en el smb.conf : hosts allow = 127.0.0.1 169.254.0.0/255.255.255.0 a su red

PROBAR LA CONFIGURACIÓN

#testparm
Load smb config files from /etc/samba/smb.conf
Processing section “[netlogon]“
Processing section “[homes]“
Processing section “[profiles]“
Loaded services file OK.
Server role: ROLE_DOMAIN_PDC
Press enter to see a dump of your service definitions

Si nos responde de esta forma entonces todo esta correcto hasta ahora
Le damos a contraseña de ldap a samba.

#smbpasswd -w carlosem

reiniciamos
#/etc/init.d/samba restart

VOLVER A PHPLDAPADMIN Y VERIFICAR LA ENTRADA

#sambaDomainName=mundoredes

Identificar el sid del dominio ejem : S-1-5-21-2942057963-2745721404-394493152

CREACIÓN DE GRUPOS DE DOMINIO.

dentro de phpldapadmin en contenedor “groups” elegir crear “new samba3 group


mapping” y crear os siguientes grupos:
Group Windows Name Gid samba sid
sambaadmins Domain Admins 20000 512
sambausers Domain Users 20001 513
sambaguests Domain Guests 20002 514
sambamachines Domain Computers 20003 515

INTEGRACIÓN DE LA AUTENTIFICACION Y LDAP

INSTALACIÓN NSS LDAP

#apt-get install libnss-ldap


#dpkg-reconfigure libnss-ldap

Servidor LDAP : 127.0.0.1


Nombre distintivo (DN) : dc=mundoredes,dc=com
Vercion de LDAP a utilizar : 3
Hace falta un usuario para acceder a la base de datos ldap : No
Dar privilegios especiales de ldap para root : SI
Desea hacer que la configuracion solo pueda leer o escribir el propietario : SI
Cuenta ldap para root : cn=admin,dc=mundoredes,dc=com
contraseña ldap para root : carlosem
CONFIGURACION

#nano /etc/nsswitch.conf

Comentar estas lineas.

passwd: compat
group: compat
shadow: compat

Agregar estas otras.

passwd: compat ldap


group: compat ldap
shadow: compat ldap

Comprobar.

#getent group

Debe mostrar

sambaadmins:*:20000:
sambausers:*:20001:
sambaguests:*:20002:
sambamachines:*:20003:

INSTALACION PAM LDAP

#apt-get install libpam-ldap


#dpkg-reconfigure libpam-ldap

Servidor ldap : 127.0.0.1


Nombre distintivo : dc=mundoredes,dc=com
Vercion de ldap : 3
Make local root Database admin : si
Hace falta un usuario para la base de datos LDAP : no
Ldap account for root : cn=admin,dc=mundoredes,dc=com
contraseña para la cuenta ldap de root : carlosem
Local crypt to use when changing passwords : md5
Entrar a estos archivo de configuración.

#nano /etc/pam.d/common-account

Comentar.

account required pam_unix.so

Y agregar.

account sufficient pam_ldap.so


account required pam_unix.so try_first_pass

#nano /etc/pam.d/common-auth

Comentar.
auth required pam_unix.so nullok_secure

Y agregar.

auth sufficient pam_ldap.so


auth required pam_unix.so nullok_secure use_first_pass

#nano /etc/pam.d/common-password
Comentar.

password required pam_unix.so nullok obscure min=4 max=8 md5

Y agregar al final.

password sufficient pam_ldap.so


password required pam_unix.so nullok obscure min=4 max=8 md5 use_first_pass
INSTALACION DE NSCD.

#apt-get install nscd

Reiniciar samba.

#/etc/init.d/samba restart

AGREGAR USUARIOS.

En la “UO” users crear un nuevo “Samba3 Account” se creara el usuario “administrator”


que tendra permisos para ingresar maquinas al dominio
y otro usuario “carlos” que pertenecera al grupo adminstradores y otro llamado “sebastian”
que solo sera un usuario de dominio , esto se hara de la siguiente forma :
Fist Name : Administrator
Last Name : Global
Comon Name : administrator
User ID : administrator
UID Number : 0
Samba SID : 512
Password : carlosem
Verify Password : carlosem
Home Directory : /home/administrator
Fist Name : carlos
Last Name : User
Comon Name : carlos
User ID : carlos
UID Number : 10000
Samba SID : 512
Password : carlos123
Verify Password : carlos123
Home Directory : /home/carlos
Fist Name : Sebastian
Last Name : User
Comon Name : sebastian
User ID : sebastian
UID Number : 10001
Samba SID : 513
Password : 147852
Verify Password : 147852
Gid number : sambausers
Primary Group ID : sambausers
Home Directory : /home/sebastian

VERIFICAR LA CREACIÓN DE USUARIOS EN LINUX

#getent passwd
administrator:*:0:20000:administrator:/home/administrator:
carlos:*:10000:20000:carlos:/home/carlos:
sebastian:*:10001:20001:sebastian:/home/sebastian:

CREACION DE HOME

#mkdir /home/carlos
#cp /etc/skel/.* /home/carlos/

chown -R carlos /home/carlos


chgrp -R sambaadmins /home/carlos

AUTOMATIZANDO INGRESO DE CUENTAS MAQUINA A LDAP

#cd /usr/share/doc/smbldap-tools/examples
#cp smbldap.conf.gz smbldap_bind.conf /etc/smbldap-tools
#cd /etc/smbldap-tools
#gunzip smbldap.conf.gz
#chown root:root *
#chmod 600 *
Hay que editar 2 archivos.
#nano /etc/smbldap-tools/smbldap_bind.conf
slaveDN=”cn=admin,dc=mundoredes,dc=com”
slavePw=”carlosem″
masterDN=”cn=admin,dc=mundoredes,dc=com”
masterPw=”carlosem″

smbldap.conf

#nano /etc/smbldap-tools/smbldap.conf

El archivo smbldap.conf debería quedar así:


# $Source: /opt/cvs/samba/smbldap-tools/smbldap.conf,v $
# $Id: smbldap.conf,v 1.18 2005/05/27 14:28:47 jtournier Exp $
#
# smbldap-tools.conf : Q & D configuration file for smbldap-tools

# This code was developped by IDEALX (http://IDEALX.org/) and


# contributors (their names can be found in the CONTRIBUTORS file).
#
# Copyright (C) 2001-2002 IDEALX
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,

# but WITHOUT ANY WARRANTY; without even the implied warranty of


# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
# USA.

# Purpose :
# . be the configuration file for all smbldap-tools scripts

#######################################################################
#######
#
# General Configuration
#
#######################################################################
#######

# Put your own SID. To obtain this number do: "net getlocalsid".
# If not defined, parameter is taking from "net getlocalsid" return
SID="S-1-5-21-94669559-3115132172-2268991497"

# Domain name the Samba server is in charged.


# If not defined, parameter is taking from smb.conf configuration file
# Ex: sambaDomain="IDEALX-NT"
sambaDomain="mundoredes"

#######################################################################
#######
#
# LDAP Configuration
#
#######################################################################
#######

# Notes: to use to dual ldap servers backend for Samba, you must patch
# Samba with the dual-head patch from IDEALX. If not using this patch
# just use the same server for slaveLDAP and masterLDAP.
# Those two servers declarations can also be used when you have
# . one master LDAP server where all writing operations must be done
# . one slave LDAP server where all reading operations must be done
# (typically a replication directory)

# Slave LDAP server


# Ex: slaveLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
slaveLDAP="127.0.0.1"

# Slave LDAP port


# If not defined, parameter is set to "389"
slavePort="389"

# Master LDAP server: needed for write operations


# Ex: masterLDAP=127.0.0.1
# If not defined, parameter is set to "127.0.0.1"
masterLDAP="127.0.0.1"

# Master LDAP port


# If not defined, parameter is set to "389"
masterPort="389"

# Use TLS for LDAP


# If set to 1, this option will use start_tls for connection
# (you should also used the port 389)
# If not defined, parameter is set to "1"
ldapTLS="0"

# How to verify the server's certificate (none, optional or require)


# see "man Net::LDAP" in start_tls section for more details
verify="none"
# CA certificate
# see "man Net::LDAP" in start_tls section for more details
#cafile="/etc/opt/IDEALX/smbldap-tools/ca.pem"

# certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
#clientcert="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.pem"

# key certificate to use to connect to the ldap server


# see "man Net::LDAP" in start_tls section for more details
#clientkey="/etc/opt/IDEALX/smbldap-tools/smbldap-tools.key"

# LDAP Suffix
# Ex: suffix=dc=IDEALX,dc=ORG
suffix="dc=silcom,dc=com"

# Where are stored Users


# Ex: usersdn="ou=Users,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for usersdn
usersdn="ou=users,${suffix}"

# Where are stored Computers


# Ex: computersdn="ou=Computers,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for computersdn
computersdn="ou=machines,${suffix}"

# Where are stored Groups


# Ex: groupsdn="ou=Groups,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for groupsdn
groupsdn="ou=groups,${suffix}"

# Where are stored Idmap entries (used if samba is a domain member server)
# Ex: groupsdn="ou=Idmap,dc=IDEALX,dc=ORG"
# Warning: if 'suffix' is not set here, you must set the full dn for idmapdn
#idmapdn="ou=Idmap,${suffix}"
# Where to store next uidNumber and gidNumber available for new users and groups
# If not defined, entries are stored in sambaDomainName object.
# Ex: sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}"
# Ex: sambaUnixIdPooldn="cn=NextFreeUnixId,${suffix}"
sambaUnixIdPooldn="sambaDomainName=SILCOM,${suffix}"

# Default scope Used


scope="sub"

# Unix password encryption (CRYPT, MD5, SMD5, SSHA, SHA, CLEARTEXT)


hash_encrypt="MD5"

# if hash_encrypt is set to CRYPT, you may set a salt format.


# default is "%s", but many systems will generate MD5 hashed
# passwords if you use "$1$%.8s". This parameter is optional!
crypt_salt_format="%s"

#######################################################################
#######
#
# Unix Accounts Configuration
#
#######################################################################
#######

# Login defs
# Default Login Shell
# Ex: userLoginShell="/bin/bash"
userLoginShell="/bin/bash"

# Home directory
# Ex: userHome="/home/%U"
userHome="/home/%U"

# Default mode used for user homeDirectory


userHomeDirectoryMode="700"

# Gecos
userGecos="System User"

# Default User (POSIX and Samba) GID


defaultUserGid="512"

# Default Computer (Samba) GID


defaultComputerGid="20003"

# Skel dir
skeletonDir="/etc/skel"

# Default password validation time (time in days) Comment the next line if
# you don't want password to be enable for defaultMaxPasswordAge days (be
# careful to the sambaPwdMustChange attribute's value)
#defaultMaxPasswordAge="45"

#######################################################################
#######
#
# SAMBA Configuration
#
#######################################################################
#######

# The UNC path to home drives location (%U username substitution)


# Just set it to a null string if you want to use the smb.conf 'logon home'
# directive and/or disable roaming profiles
# Ex: userSmbHome="\\PDC-SMB3\%U"
userSmbHome=""
# The UNC path to profiles locations (%U username substitution)
# Just set it to a null string if you want to use the smb.conf 'logon path'
# directive and/or disable roaming profiles
# Ex: userProfile="\\PDC-SMB3\profiles\%U"
userProfile=""

# The default Home Drive Letter mapping


# (will be automatically mapped at logon time if home directory exist)
# Ex: userHomeDrive="H:"
userHomeDrive="H:"

# The default user netlogon script name (%U username substitution)

# if not used, will be automatically username.cmd


# make sure script file is edited under dos
# Ex: userScript="startup.cmd" # make sure script file is edited under dos
userScript="logon.bat"

# Domain appended to the users "mail"-attribute


# when smbldap-useradd -M is used
# Ex: mailDomain="idealx.com"
#mailDomain="idealx.com"

#######################################################################
#######
#
# SMBLDAP-TOOLS Configuration (default are ok for a RedHat)
#
#######################################################################
#######

# Allows not to use smbpasswd (if with_smbpasswd == 0 in smbldap_conf.pm) but


# prefer Crypt::SmbHash library
with_smbpasswd="0"
smbpasswd="/usr/bin/smbpasswd"
# Allows not to use slappasswd (if with_slappasswd == 0 in smbldap_conf.pm)
# but prefer Crypt:: libraries
with_slappasswd="0"
slappasswd="/usr/sbin/slappasswd"

# comment out the following line to get rid of the default banner
# no_banner="1"

Nota : cuidado si copian directamente smbldap.conf lo que hay que modificar el nro sid de
su implementación además por seguridad hay que hacer esto : chmod u-x smbldap.conf
ahora copiamos algunos archivos a etc.

#cp smbldap_bind.conf /etc/


#cp smbldap.conf /etc/

AGREGANDO OBJECTCLASS.

Tenemos que ir al phpldapadmin el atributo sambaunixidpool para el dominio samba así


que le damos click a la entrada sambadomainname=silcom y en el espacio de la derecha
vamos a buscar donde está el o los atributos tipo objectclass, le damos click en donde
dice add value, escogemos sambaunixidpool y en la siguiente página digitamos los
valores de uid y gid iniciales con los que vamos a arrancar para nuestros efectos.

EL GID 20003 corresponde al grupo sambamachines


EL UID 30000 es el número inicial que yo quise utilizar para las cuentas de máquinas.
una vez echo esto ya podemos registrar nuestras maquinas win$ al dominio.

Creación de homes por defecto, para esto hay que insertar una linea dentro de smb.conf
en la seccion [homes]
root preexec = /etc/samba/mk_sambadir “/home/%u” “%u” “%g”

Y crear el archivo mk_sambadir con las siguientes lineas.


#!/bin/bash
if [ ! -d $1 ]
then
mkdir $1
fi
chmod 770 $1 -R
chown $2 $1 -R
chgrp $3 $1 -R
###############

Y reiniciar

#/etc/init.d/samba restart

Pasaremos a hacer las pruebas.

Primer prueba.

Poder validar por ssh al pdc, si bien es cierto los usuarios del dominio no tienen shell
deberia ser posible hacer un inicio via SSH

#ssh -l administrator 192.168.1.1


#ssh -l carlos 192.168.1.1

Segunda prueba.

Poder validar desde un win$ aun asi no se halla unido al dominio, sin pertenecer al
dominio debería poder validar como un simple server de archivos

\\pdc\carlos

POSTFIX MAS LDAP.


Instalamos el paquete que integra ldap con postfix.

#apt-get install postfix-ldap

creamos un schema para realizar usuarios y grupos virtuales que ese puedan validar con
LDAP.

#nano /etc/ldap/slapd.conf

agregaremos el siguiente schema.

Include /etc/ldap/schema/postfix.schema

creamos la carpeta que contendra el schema.

#touch /etc/ldap/schema/postfix.schema

touch postfix.schemaldaptransport_search_base = ou=Transport,dc=mundoredes,dc=com


ldaptransport_bind = no
ldaptransport_timeout = 30
ldaptransport_query_filter =
(&(cn=%s)(!(cn=server.mydomain.com))(objectclass=mailuser))
ldaptransport_result_attribute = maildrop

virtual _mailbox_domains=mundoredes.com
virtual_mailbox_base=/vmail/correos
virtual_mailbox_maps=ldap:/etc/postfix/ldap.conf
virtual_uid_maps= stactics:5000
virtual_gid_maps=stactics:5000

#useradd -m -d /vmail -s /bin/false -U -u 5000 vmail (vmail es el nombre de usuario)

Con sus respectivo directorio

#mkdir /vmail/correos chown 5000:5000 /vmail/correos.

Luego agregamos los siguientes schemas.


#Extensions to support Postfix MTA using Openldap experimental OID's
attributetype ( 1.3.6.1.4.1.15347.2.102
NAME 'transport'
SUP name)

attributetype ( 1.3.6.1.4.1.15347.2.101
NAME 'mailRoutingAddress'
SUP mail )

attributetype ( 1.3.6.1.4.1.15347.2.110 NAME 'maildest'


DESC 'Restricted to send only to local network'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 1.3.6.1.4.1.15347.2.111 NAME 'mailaccess'


DESC 'Can be mailed to restricted groups'
EQUALITY caseIgnoreMatch
SUBSTR caseIgnoreSubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.15{32768} )

attributetype ( 1.3.6.1.4.1.15347.2.100
NAME ( 'maildrop' )
DESC 'RFC1274: RFC822 Mailbox'
EQUALITY caseIgnoreIA5Match
SUBSTR caseIgnoreIA5SubstringsMatch
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26{256} )

attributetype ( 1.3.6.1.4.1.10018.1.1.1 NAME 'mailbox'


DESC 'The absolute path to the mailbox for a mail account in a non-default
location'
EQUALITY caseExactIA5Match
SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

objectclass ( 1.3.6.1.4.1.15347.2.1
NAME 'mailUser'
DESC 'E-Mail User'
SUP top
AUXILIARY
MUST ( uid $ mail $ maildrop )
MAY ( cn $ mailbox $ maildest $ mailaccess )
)

objectclass ( 1.3.6.1.4.1.15347.2.2
NAME 'mailGroup'
DESC 'E-Mail Group'
SUP top
STRUCTURAL
MUST ( cn $ mail )
MAY ( mailRoutingAddress $ member $ description )
)

objectclass ( 1.3.6.1.4.1.15347.2.3
NAME 'transportTable'
DESC 'MTA Transport Table'
SUP top
STRUCTURAL
MUST ( cn $ transport )
)

ahora vamos al archivo:


#nano /etc/postfix/main.cf

# LDAP settings

virtual_maps = ldap:ldapgroups, ldap:ldapalias


ldapgroups_server_host = localhost
ldapgroups_server_port = 389
ldapgroups_search_base = ou=Groups,dc=mundoredes,dc=com
ldapgroups_bind = no
ldapgroups_timeout = 30
ldapgroups_query_filter = (&(mail=%s)(objectclass=mailGroup))
ldapgroups_special_result_attribute = member

ldapalias_server_host = localhost
ldapalias_server_port = 389
ldapalias_search_base = ou=Users,dc=mundoredes,dc=com
ldapalias_bind = no
ldapalias_timeout = 30
ldapalias_query_filter = (&(mail=%s)(objectclass=mailUser))
ldapalias_result_attribute = maildrop

transport_maps = ldap:ldaptransport

ldaptransport_server_host = localhost
ldaptransport_server_port = 389
ldaptransport_search_base = ou=Transport,dc=mundoredes,dc=com
ldaptransport_bind = no
ldaptransport_timeout = 30
ldaptransport_query_filter =
(&(cn=%s)(!(cn=server.mydomain.com))(objectclass=transportTable))

ldaptransport_result_attribute = transport

Ahora reiniciamos los servicios postfix, slapd.

#/etc/init.d/postfix restart
#/etc/init.d/slapd restart
ANTIVIRUS Y ANTISPAM.

Función que cumplen:

El filtro antispam: examina todo mensaje remitido a las direcciones de correo electrónico
de su dominio y les asigna una probabilidad de que sean mensajes de SPAM, aplicando
una serie de reglas internas. Posteriormente usted podrá crear unas reglas de actuación
en su WebMail para eliminar los mensajes marcados como SPAM.

El filtro antivirus: se encarga de eliminar todo mensaje infectado remitido a cualquiera de


las direcciones de correo de su dominio de manera que usted solo reciba en sustitución
del mensaje infectado y en la misma dirección a la que iba remitido el mismo, un mensaje
automático informándole de dicha actuación

Primero lo que debemos hacer es mirar si tenemos en nuestros repositorios los paquetes
que necesitamos para comensar con la instalación de nuestro antivirus, utilizamos este
por que para este anti-virus hay buena documentación :

#apt-cache search clamav


Y procedemos a la instalación:
#apt-get install clamav

Después y de la misma forma como instalmos este paquete instalaremos otros paquetes
adicionales que nos facilitara la integración con nuestro servidor anti-virus.

#apt-get install clamsmtp

Primero lo que debemos hacer es mirar si tenemos en nuestros repositorios los paquetes
que necesitamos para comensar con la instalación de nuestro antivirus, utilizamos este
por que para este anti-virus hay buena documentación :
Y lo mismo haremos con los demas paquetes para no extendernos mucho

#apt-get install clamav-freshclam


#apt-get install clamav-docs

(este ultimo paquete es opcional ya que en el podemos encontrar documentación si


queremos lo descargamos y si no buscaremos mas información de otras fuentes en
internet ).
Listo después de esto ingressaremos al archivo de configuración principal:
#nano /etc/clamsmtpd.conf
Después de ingresar al archivo principal de configuración nos dirigimos a modificar la
dirección donde van a ser mandados nuestros correos electrónicos por defecto el valor
con el que viene este archivo de configuración es el 10025 lo que haremos es modificarla
y en vez de esta colocar:
OutAddress: 10026

Luego nos dispondremos a cambiar el puerto por el que escucha nuestro servidor anti-
virus.
Listen: 127.0.0.1:10025
Ahora Colocaremos La ruta donde estará el archivo de clamd.
ClamAddress: /var/run/clamav/clamd.ctl

Colocaremos un encabezado para saber cuales son los correos que han sido analizados
correctamente por nuestro sistema anti virus.
Header: X-AV-Checked: ClamAV using ClamSMTP. (En este espacio colocas el mensaje
que quieres que salga cuando el antivirus analice tus correos ).
Este será la localización del pid (el pidfile es el archivo en el servidor que registra el
identificador de proceso del demonio. El PidFile sólo se utiliza en modo autónomo. A
menudo es útil para poder enviar la señal de un servidor, de manera que luego se cierra y
reabre su ErrorLog y TransferLog, y vuelve a leer sus archivos de configuración. Esto se
realiza mediante el envío de un SIGHUP (matar -1) señal para el proceso de identificación
del capitán demonio que figuran en el PidFile.
PidFile: /var/run/clamsmtp/clamsmtpd.pid
Lugar donde dejar los ficheros temporales
TempDirectory: /var/spool/clamsmtp
El usuario con el que lanzarlo
User: clamsmtp

Acción a realizar en caso de detectar virus.


VirusAction: /usr/local/bin/virusalert.sh
En este fichero adicionaremos unas líneas las cuales son un script que definirá lo que
hará el sistema antivirus en caso de detectar un virus en nuestro servidor de correo.

#touch virusalert.sh
#nano virusalert.sh

Después de que estemos dentro de este archivo lo que haremos será pegar las siguientes
líneas:

TS
MAILER='/usr/sbin/sendmail -it'
SUBJECT=`/bin/echo "El correo contiene un virus" | /usr/bin/nkf -jMB`
$MAILER <<EOM
From: $FROM

To: $TO
Subject: =?ISO-2022-JP?B?$SUBJECT?=
Se ha detectado codigo malicioso en el adjunto que contenía el correo. Pongase en
contacto con el administrador de su sistema mundo redes si está seguro/a de que no es
un virus, pida a la persona que le envía el fichero que por favor lo ponga en un fichero
comprimido protegido por una contraseña. Que pena con usted.
[Virus]
$VIRUS
[De]
$SENDER
[Para]
$RECIPIENTS
EOM
exit 0

Al modificar este archivo lo hacemos es con el fin de que si de pronto por algún motivo el
sistema anti virus clamav mira que hay algún tipo de archivo sospechoso o algún virus el
automáticamente le hara saber al administrador por medio de un mail, diciéndole
simplemente que hay alun archivo sospechoso o un virus y que lo ha detectado, y estos
serán almacenados en un lugar especial
Después de esto lo que haremos es decirle a postfix que todos los correos que entren y
que salgan sean analizados por un sistema antivirus en este caso clamav.
Vamos al archivo de configuración del postfix :

#nano /etc/postfix/master.cf

Después de estar en el final del archivo agregamos estas cuantas lineas :

## FILTRO ANTIVIRUS
## Filtro antivirus usado por content filter
scan unix - - n - 16 smtp
-o smtp_send_xforward_command=yes
-o smtp_enforce_tls=no
# Para inyectar el correo a postfix una vez analizado
127.0.0.1:10026 inet n - n - 16 smtpd
-o content_filter=
-o receive_override_options=no_unknown_recipient_checks,no_header_body_checks
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks_style=host
-o smtpd_authorized_xforward_hosts=127.0.0.0/8
Nos dirigimos al archivo main.cf y adicionamos unas cuantas lineas del filtro y el escaneo.
#nano /etc/postfix/main.cf
content_filter = scan: [127.0.0.1]:10025

reiniciamos para que acepte los cambios.

#/etc/init.d/clamsmtp restart
#/etc/init.d/postfix restart
Llegado a este punto, ya tendremos configurado postfix con un sistema de seguridad
completo como es con antivirus y probaremos que los mensajes sean analizados con el
mutt.

Вам также может понравиться