miércoles, 30 de septiembre de 2009

Acceso a la documentacion de wikijc virtual

Wikijc:Sistemas

  • Página Principal

  • Portal de la comunidad

  • Powered by MediaWiki

    Instalar y configurar VSFTP

    Para instalar el servidor ftp lanzamos el comando siguiente

    $sudo apt-get install vsftpd
    El fichero que tiene toda la configuracion es:
    $sudo vi /etc/vsftpd.conf

    Deberiamos tener algo asi para que nos funcionara:

    # Example config file /etc/vsftpd.conf
    #
    # The default compiled in settings are fairly paranoid. This sample file
    # loosens things up a bit, to make the ftp daemon more usable.
    # Please see vsftpd.conf.5 for all compiled in defaults.
    #
    # READ THIS: This example file is NOT an exhaustive list of vsftpd options.
    # Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
    # capabilities.
    #
    #
    # Run standalone? vsftpd can run either from an inetd or as a standalone
    # daemon started from an initscript.
    listen=YES
    #
    # Run standalone with IPv6?
    # Like the listen parameter, except vsftpd will listen on an IPv6 socket
    # instead of an IPv4 one. This parameter and the listen parameter are mutually
    # exclusive.
    listen_ipv6=NO
    #
    # Allow anonymous FTP? (Beware - allowed by default if you comment this out).
    anonymous_enable=NO
    #
    # Uncomment this to allow local users to log in.
    local_enable=YES
    #
    # Uncomment this to enable any form of FTP write command.
    write_enable=YES
    #
    # Default umask for local users is 077. You may wish to change this to 022,
    # if your users expect that (022 is used by most other ftpd's)
    #local_umask=022
    #
    # Uncomment this to allow the anonymous FTP user to upload files. This only
    # has an effect if the above global write enable is activated. Also, you will
    # obviously need to create a directory writable by the FTP user.
    #anon_upload_enable=YES
    #
    # Uncomment this if you want the anonymous FTP user to be able to create
    # new directories.
    #anon_mkdir_write_enable=YES
    #
    # Activate directory messages - messages given to remote users when they
    # go into a certain directory.
    dirmessage_enable=YES
    #
    # Activate logging of uploads/downloads.
    xferlog_enable=YES
    #
    # Make sure PORT transfer connections originate from port 20 (ftp-data).
    connect_from_port_20=YES
    #
    # If you want, you can arrange for uploaded anonymous files to be owned by
    # a different user. Note! Using "root" for uploaded files is not
    # recommended!
    #chown_uploads=YES
    #chown_username=whoever
    #
    # You may override where the log file goes if you like. The default is shown
    # below.
    dual_log_enable=YES
    vsftpd_log_file=/var/log/vsftpd.log
    xferlog_file=/var/log/xferlog
    #
    # If you want, you can have your log file in standard ftpd xferlog format
    xferlog_std_format=YES
    #
    # You may change the default value for timing out an idle session.
    idle_session_timeout=600
    #
    # You may change the default value for timing out a data connection.
    #data_connection_timeout=120
    #
    # It is recommended that you define on your system a unique user which the
    # ftp server can use as a totally isolated and unprivileged user.
    nopriv_user=ftpsecure
    #
    # Enable this and the server will recognise asynchronous ABOR requests. Not
    # recommended for security (the code is non-trivial). Not enabling it,
    # however, may confuse older FTP clients.
    #async_abor_enable=YES
    #
    # By default the server will pretend to allow ASCII mode but in fact ignore
    # the request. Turn on the below options to have the server actually do ASCII
    # mangling on files when in ASCII mode.
    # Beware that on some FTP servers, ASCII support allows a denial of service
    # attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
    # predicted this attack and has always been safe, reporting the size of the
    # raw file.
    # ASCII mangling is a horrible feature of the protocol.
    #ascii_upload_enable=YES
    #ascii_download_enable=YES
    #
    # You may fully customise the login banner string:
    ftpd_banner=Bienvenido al servidor FTP.
    #
    # You may specify a file of disallowed anonymous e-mail addresses. Apparently
    # useful for combatting certain DoS attacks.
    #deny_email_enable=YES
    # (default follows)
    #banned_email_file=/etc/vsftpd.banned_emails
    #
    # You may restrict local users to their home directories. See the FAQ for
    # the possible risks in this before using chroot_local_user or
    # chroot_list_enable below.
    chroot_local_user=YES
    #
    # You may specify an explicit list of local users to chroot() to their home
    # directory. If chroot_local_user is YES, then this list becomes a list of
    # users to NOT chroot().
    chroot_list_enable=YES
    # (default follows)
    chroot_list_file=/etc/vsftpd.chroot_list
    #
    # You may activate the "-R" option to the builtin ls. This is disabled by
    # default to avoid remote users being able to cause excessive I/O on large
    # sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
    # the presence of the "-R" option, so there is a strong case for enabling it.
    #ls_recurse_enable=YES
    #
    #
    # Debian customization
    #
    # Some of vsftpd's settings don't fit the Debian filesystem layout by
    # default. These settings are more Debian-friendly.
    #
    # This option should be the name of a directory which is empty. Also, the
    # directory should not be writable by the ftp user. This directory is used
    # as a secure chroot() jail at times vsftpd does not require filesystem
    # access.
    secure_chroot_dir=/var/run/vsftpd
    #
    # This string is the name of the PAM service vsftpd will use.
    pam_service_name=vsftpd
    #
    # This option specifies the location of the RSA certificate to use for SSL
    # encrypted connections.
    rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
    # This option specifies the location of the RSA key to use for SSL
    # encrypted connections.
    rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
    #
    #Esto lo incluyo para el tema de la velocidad y las conexiones
    userlist_enable=YES
    tcp_wrappers=YES
    userlist_deny=NO
    anon_max_rate=5100
    local_max_rate=0
    max_clients=20
    max_per_ip=10
    syslog_enable=YES
    session_support=YES
    #ya veremos si funciona

    Para iniciar tu servidor FTP en modo standalone (individual, no iniciado por inetd) ejecuta el comando /usr/sbin/vsftpd & (recuerda quitar el comentario a la linea listen=YES de vsftpd.conf para que no te de error)
    Si quieres que cada vez que tu ordenador suba, el servicio FTP inicie automaticamente, simplemente edita el archivo /etc/inetd.conf y descomenta la linea que dicen lo siguiente:

    ftp stream tcp nowait root /usr/sbin/tcpd vsftpd

    Y listo, subira automaticamente siempre

    No olvides crear el archivo /etc/vsftpd.chroot_list si utilizaste esta opcion. Puedes crear uno vacio de la siguiente forma (como root, claro esta):
    $touch /etc/vsftpd.chroot_list

    Por defecto la instalacion crea el directorio /home/ftp como ruta para la creacion de los sitios
    Se puede cambiar y crear otro directorio que contenga los ftp
    $sudo mkdir /ftp

    Creamos el grupo que va ha contener los usuarios para el FTP y que llamamos ftpusers
    $sudo groupadd ftpusers

    En /etc/passwd tenemos que tener la siguiente linea o parecida para que nos funcione
    $sudo vi /etc/passwd
    ...
    ftpsecure:x:107:65534::/tmp:/bin/false
    ...
    Ahora creamos un usuario
    $sudo adduser prueba1 --ingroup ftpusers --home /ftp/prueba1 --shell /bin/false
    automaticamente se crea el directorio /ftp/prueba1

    Ejemplo:
    $sudo adduser --ingroup ftpusers --home /ftp/prueba4 -c "usuario de prueba4" prueba4 --shell /bin/false
    adduser: `usuario de prueba4' no existe. Usando valores por defecto.
    Añadiendo usuario 'prueba4' ...
    Agregando nuevo usuario `prueba4' (1003) con grupo `ftpusers' ...
    Creando el directorio personal '/ftp/prueba4' ...
    Copiando archivos desde '/etc/skel' ...
    Introduzca la nueva contraseña de UNIX:
    Vuelva a escribir la nueva contraseña de UNIX:
    passwd: contraseña actualizada correctamente
    Cambiando la información de usuario para prueba4
    Introduzca el nuevo valor, o presione ENTER para el predeterminado

    Nombre completo []: prueba4
    
           Número de habitación []: la suya
    
           Teléfono del trabajo []: el tel
    
           Teléfono de casa []: tel_cas
    
           Otro []: nose
    
    
    ¿Es correcta la información? [y/N] y

    Si vemos el fichero /etc/passwd tendria esta nueva linea
    prueba4:x:1003:1001:prueba4,la suya,el tel,tel_cas,nose:/ftp/prueba4:/bin/false

    El directorio que se crea tiene los siguientes permisos
    $ls -l /ftp
    drwxr-xr-x 2 prueba4 ftpusers 4096 2007-11-21 12:36 prueba4

    Para que funcione con /bin/false tenemos que tener esa shell en el fichero /etc/shells y sino tenemos que ponerla
    $vi /etc/shells
    # /etc/shells: valid login shells
    /bin/csh
    /bin/sh
    /usr/bin/es
    /usr/bin/ksh
    /bin/ksh
    /usr/bin/rc
    /usr/bin/tcsh
    /bin/tcsh
    /usr/bin/esh
    /bin/bash
    /bin/rbash
    /bin/false

    Se puede crear un usuario que tenga acceso a todas las carpetas que hay en el FTP
    $sudo adduser --ingroup ftpusers --home /ftp -c "usuario moderador" ftpmoderador --shell /bin/false

    Siempre que se crea un usuario se copia el contenido de /etc/skel al nuevo home del usuario creado (en este caso en /ftp/prueba4)
    Se puede poner un enlace en /etc/skel para que todos los usuarios que hagamos tengan acceso a la ruta que digamos, y lo vean cuando arranquen con su usuario.
    Ejemplo:
    $cd /etc/skel
    $sudo ln -s /tmp temporal
    $ls -l /etc/skel
    total 0
    lrwxrwxrwx 1 root root 26 2007-11-07 10:29 Examples -> /usr/share/example-content
    lrwxrwxrwx 1 root root 4 2007-11-21 12:53 temporal -> /tmp


    Para asignar una contraseña a un usuario
    $sudo passwd prueba1

    Para borrar un usuario
    $sudo userdel prueba1

    Como el shell que usamos para los usuarios es /bin/false tenemos que ponerlo en el fichero de shell
    $sudo vi /etc/shells

    # /etc/shells: valid login shells
    /bin/csh
    /bin/sh
    /usr/bin/es
    /usr/bin/ksh
    /bin/ksh
    /usr/bin/rc
    /usr/bin/tcsh
    /bin/tcsh
    /usr/bin/esh
    /bin/dash
    /usr/bin/screen
    /bin/bash
    /bin/rbash
    /bin/false

    Mediante 2 ficheros controlamos la lista de usuarios que pueden acceder al FTP y los que no.
    Pongo unos ejemplos de como quedarian.
    $vi /etc/vsftpd.chroot_list

    1. Usuarios que no pueden acceder al ftp
    root
    daemon
    bin
    sys
    sync
    games
    man
    lp
    mail
    news
    uucp
    proxy
    www-data
    backup
    list
    irc
    gnats
    nobody
    dhcp
    syslog
    klog
    messagebus
    hplip
    avahi-autoipd
    avahi
    haldaemon
    gdm
    jc
    sshd
    ftp

    $sudo vi /etc/vsftpd.user_list
    #usuarios que pueden usar el ftp
    prueba1
    prueba2
    prueba3
    prueba4
    ftpmoderador

    Una vez que tengamos todo configurado no nos olvidemos de reiniciar el servidor
    $sudo /etc/init.d/vsftpd restart

    Otras cosas:
    $grep pru /etc/passwd
    $sudo tail -f /var/log/vsftpd.log

    Para conectar desde un navegador usamos lo siguiente:
    ftp://tuusuario:tupassword@tudominio.com



    Scripts para crear usuarios y sitios ftp asignados a una persona

    En el directorio /home tenemos los siguientes scrip
    $vi /home/create_pers_ftp.sh
    #!/bin/sh
    #Create persistent ftp account under /share/ftp_persistent_data
    #$1 stores ftp_name
    clear

    LISTADO="/home/ftp_owner.txt"

    if [ $# -ne 3 ]
    then
       echo "Error in $0 - Invalid Argument Count"
       echo "Syntax: $0 ftp_name [permanente|temporal] nombre.apellido(del solicitante)"
       exit
    fi

    if [ $2 = "permanente" ]
    then
      RUTA_BASE="/share/ftp_persistent_data/"
    fi

    if [ $2 = "temporal" ]
    then
      RUTA_BASE="/share/ftp/"
      fi

    if ( [ $2 != "temporal" ] && [ $2 != "permanente" ] )
    then
      echo "Error in $0 - Invalid Argument Systaxis"
      echo "Syntax: $0 ftp_name (permanente|temporal)"
      exit 1
    fi

    propietario=$3

    useradd -d ${RUTA_BASE}$1/ -s /bin/false $1
    if [ $? = 9 ]
    then
    echo "Error: El usuario $1 ya existe. Intente otro nombre de usuario distinto"
    exit
    fi
    passwd $1

    mkdir ${RUTA_BASE}$1/
    if [ $2 = "temporal" ]
    then
    mkdir ${RUTA_BASE}$1/LOS_DATOS_SE_BORRAN_AUTOMATICAMENTE_PASADOS_15_DIAS
    mkdir ${RUTA_BASE}$1/THE_DATA_WILL_BE_DELETED_AUTOMATICALLY_AFTER_15_DAYS
    fi
    groupadd $3
    echo "Se creo un nuevo sitio ftp en "${RUTA_BASE}$1/
    chown -R $1:$3 ${RUTA_BASE}$1
    echo "${1}:${3}" >> $LISTADO

    echo $1 >> /etc/vsftpd.user_list
    if [ $2 = "temporal" ]
    then
    chown root:root ${RUTA_BASE}$1/LOS_DATOS_SE_BORRAN_AUTOMATICAMENTE_PASADOS_15_DIAS
    chown root:root ${RUTA_BASE}$1/THE_DATA_WILL_BE_DELETED_AUTOMATICALLY_AFTER_15_DAYS
    chmod 444 ${RUTA_BASE}$1/LOS_DATOS_SE_BORRAN_AUTOMATICAMENTE_PASADOS_15_DIAS
    chmod 444 ${RUTA_BASE}$1/THE_DATA_WILL_BE_DELETED_AUTOMATICALLY_AFTER_15_DAYS
    fi


    $vi /home/set_ftp_owner.sh
    #!/bin/sh
    # Este script recibe el nombre de una cuenta de ftp y el propietario de dicha cuenta (la persona que solicito la cuenta). Posteriormente cambia el grupo al que pertenece la carpeta home de dicho usuario (fichero /etc/passwd).
    clear
    if [ $# = 2 ]
    then
      grep "^${1}:" /etc/passwd > /dev/null
      if [ $? != 0 ]
      then
       echo "ERROR: El usuario '$1' no existe en el sistema"
       exit
      fi
      RUTA=`grep "^${1}:" /etc/passwd | cut -d ":" -f 6`
      groupadd $2
      chown ${1}:${2} $RUTA
      if [ $? = 0 ]
      then
       echo "Exito al cambiar el grupo a la carpeta de usuario del ftp"
      else
       echo "Error! No se pudo cambiar el grupo a la carpeta de usuario del ftp"
      fi
    else
      echo "Error! El numero de parametros no es correcto."
      echo " Introdujo $# parametros y deben ser 2: \"usuario_ftp nombre.apellido(solicitante de la cuenta ftp)\""
    fi


    Estos scripts modifican los siguientes ficheros
    $ vi /etc/vsftpd.user_list
    $ vi ftp_owner.txt
    $ vi /etc/passwd
    $ vi /etc/group


    Controlar los ficheros del servidor FTP

    $find /ftp/ -ctime +15 -type f -exec ls -l {} \; | tee - | wc -l
    $find /ftp/ -ctime +15 -type f -exec ls -l {} \; | tee trash | wc -l
    $find /ftp/panama -atime +30 -type f -exec ls -l {} \; > panama
    Borra del ftp lo que tenga mas de 30 dias sin acceder
    $find /ftp/ -atime +30 -type f -exec rm -f {} \;
    $touch /ftp/usuarios-ftp.txt
    Para que no nos borre los ficheros de un directorio los podemos cambiar el atributo (los tocamos)
    $find /ftp/panama -type f -exec touch{} \;
    Para poner un comando en segundo plano ctrl+z
    $bg
    $tail -f trash
    $grep " Jul " trash
    $grep " Jul " trash | grep -v 2007
    $grep " Jul " trash | grep -v 2007 | less
    $jobs
    Para volver el comando a primer plano
    $fg
    $cat trash | wc -l
    $grep daniel trash > dani.lst
    $less dani.ls
    $grep daniel trash | mail -s "List de borrados de Dani" juc@correo.es
    $grep daniel trash | mailx -s "List de borrados de Dani" juc@correo.es

    Tenemos un script en el servidor ftp con el cual controlamos que los ficheros que tengan mas de 30 dias sin ser modificados o accedidos (incluso de lectura) se borren
    $sudo vi /etc/cron.daily/limpia_ftp30
    ...
    #! /bin/bash

    startdir=/ftp
    max_atime=30

    touch $startdir/usuarios_ftp.txt

    [ -d $startdir ] || exit -1

    find $startdir/ -atime +$max_atime -type f -exec rm -f {} \;

    for dir in `find ${startdir}/* -maxdepth 0 -type d || exit`; do [ -z $dir ] && exit ; find ${dir}/* -depth -type d -empty -exec rmdir {} \; ; done > /dev/null 2>&1
    ...
    Los permisos que tiene que tener son:
    chmod 755 limpia_ftp30

    Algunos comandos de interes
    $tree /ftp
    $pstree ls
    $strace ls
    $du -h --max-depth 1 /ftp
    $du -h --max-depth 1 /ftp | cut -f 1
    Para ver quien esta accediendo al servidor lo hacemos con tcpdump
    $tcpdump -i eth0 tcp and port 21



    Crear nuevo FTP o borrar usuario

    Asi creamos el usuario
    $sudo adduser prueba1 --ingroup ftpusers --home /ftp/prueba1 --shell /bin/false
    automaticamente se crea el directorio /ftp/prueba1
    Si nos falla y no nos deja hacer login en el servidor desde los clientes ftp, podemos poner otra shell
    $sudo adduser prueba1 --ingroup ftpusers --home /ftp/prueba1 --shell /bin/sh
    Siempre que se crea un usuario se copia el contenido de /etc/skel al nuevo home del usuario creado
    Para asignar una contraseña a un usuario
    $sudo passwd prueba1
    Para borrar un usuario
    $sudo userdel prueba1
    Despues borramos el directorio que tenia si ya no accede nadie
    $rm -fr /ftp/prueba1
    Mediante 2 ficheros controlamos la lista de usuarios que pueden acceder al FTP y los que no.
    Usuarios que no pueden acceder al ftp
    $vi /etc/vsftpd.chroot_list
    Usuarios que pueden usar el ftp
    $sudo vi /etc/vsftpd.user_list
    Una vez que tengamos todo configurado no nos olvidemos de reiniciar el servidor
    $sudo /etc/init.d/vsftpd restart

    Si queremos usar el navegador iexplorer, firefox... en su barra de direcciones tenemos que poner lo siguiente:

    ftp://tuusuario:tupassword@tudominio.com


    Salud para todos.



    ©jc_2009

    M0n0wall

    Installation on a standard PC (CD-ROM version)
    Installation on a standard PC with the CD-ROM (+ floppy disk) version requires the following steps:
    • download the ISO image http://m0n0.ch/wall/download.php?file=cdrom-1.235.iso
      Podemos hacerlo desde wikijc Monowall_cdrom-1.235.rar
    • burn the ISO image onto a CD-R (or -RW)
      • FreeBSD (ATAPI recorder): burncd -s max -e data cdrom-xxx.iso fixate
      • Windows: use your favorite burning program (e.g. Nero) to record the ISO image (2048 bytes/sector, Mode-1)
    • take a standard 1.44 MB diskette or a USB flash drive (m0n0wall 1.3b only) and format it (with an MS-DOS/FAT file system!)
      • 1.44 MB floppy disk
        • FreeBSD: fdformat -f 1440 /dev/fd0 && newfs_msdos -L "m0n0wallcfg" -f 1440 /dev/fd0
          Note: you can omit the fdformat step if the floppy disk is already (low-level) formatted
        • Windows: format A:
      • USB flash drive
        • Windows: use Windows Explorer to format the drive (FAT32)
    • power up your PC, enter the BIOS and make sure that booting from CD-ROM is enabled and booting from floppy disk is disabled
    • insert CD-ROM and floppy disk (do not write-protect the floppy disk!)
    • boot
    • wait for the console menu to appear, select 1. (assign network ports)
    • assign functions (LAN/WAN/OPT) to your interfaces (hint: use auto-detection, or let the MAC addresses tell you which card is which one)
    • change the LAN IP address, or use the default (192.168.1.1; m0n0wall acts as a DHCP server by default)
    • access the webGUI (user: 'admin', default password: 'mono')
    • make the necessary changes to the default configuration



    1.1. Características

    m0n0wall es un proyecto destinado a crear un completo paquete de software de servidor de seguridad integrado que, cuando se utiliza junto con un PC integrado, proporciona todas las características importantes de las cajas comerciales de cortafuegos (incluyendo la facilidad de uso) a una fracción del precio (software libre). m0n0wall se basa en una versión básica de FreeBSD, junto con un servidor web, PHP y algunas otras empresas de servicios públicos. La configuración completa del sistema se almacena en un único archivo de texto XML para que las cosas sean transparentes.

    m0n0wall es probablemente el primer sistema UNIX que tiene su tiempo de arranque de configuración hecho con PHP, en lugar de los scripts de shell es habitual, y que tiene la configuración completa del sistema se almacenan en formato XML.

    m0n0wall ya ofrece muchas de las características de los costosos servidores de seguridad comercial, incluyendo:

    * interfaz web (soporta SSL)
    * interfaz de consola en serie para la recuperación de la dirección IP de LAN de restablecimiento de contraseña restaurar los valores predeterminados de fábrica Reinicio del sistema
    * Soporte inalámbrico (punto de acceso con tarjetas de PRISM-II/2.5/3, BSS / BSS con otras tarjetas incluidas Cisco)
    * Portal Cautivo
    * Soporte 802.1Q VLAN
    * de filtrado de paquetes con estado bloquear / pasar las normas tala
    * NAT / PAT (incluido 1:1)
    * Cliente DHCP, PPPoE, PPTP y Telstra BigPond Cable support en la interfaz WAN
    * De túneles VPN IPSec (IKE, con soporte para tarjetas de cifrado de hardware, los clientes móviles y de los certificados)
    * PPTP VPN (con soporte de servidor RADIUS)
    * rutas estáticas
    * Servidor DHCP y relé de almacenamiento en caché de DNS forwarder
    * Cliente de DynDNS y RFC 2136 DNS updater
    * Agente SNMP
    * formador de tráfico
    * SVG basada en el tráfico Grapher
    * la actualización del firmware a través del navegador web
    * Wake on LAN del cliente
    * configuración de copia de seguridad / restauración de
    * Host / alias de red

    1.2. Introducción a m0n0wall en el PC

    La m0n0wall Guía de inicio rápido está destinada a conseguir que la puesta en funcionamiento con m0n0wall en una interfaz de dos (LAN y WAN) de instalación. La m0n0wall Manual contiene la información que necesita para seguir configurando la instalación m0n0wall después de completar esta guía.

    Esta versión de la Guía de inicio rápido está específicamente adaptado a la plataforma PC. Si está utilizando hardware Soekris, consulte el Soekris Quick Start Guide y para el hardware WRAP, consulte el WRAP Quick Start Guide.

    Además, existe una versión de VMware para probar o incluso utilizar junto a un equipo cliente. Más información sobre esta versión se puede encontrar en el sitio web m0n0wall.

    Hay un número de configuraciones de ejemplo en el capítulo 9 del Manual de m0n0wall. Estas configuraciones se describe cómo configurar varias cosas como las interfaces LAN múltiples, la creación de interfaces de zona de distensión, las interfaces inalámbricas, etc La base para añadir las características adicionales será la base de LAN / WAN de configuración de esta guía describe.
    1.2.1. ¿Por qué usar un PC?

    A continuación se presentan algunas razones por las que podría optar por utilizar un PC en vez de un sistema embebido.
    * Gratis si tiene equipos de computación extra por ahí
    * Múltiples interfaces PCI para tarjetas de red de alta calidad de
    * De mayor potencia de la CPU para aumentar la velocidad de procesamiento de VPN o el tráfico de red

    1.3. Requisitos

    En este capítulo se pasará por el hardware y la red de información que necesita reunir para proceder a través de esta guía.
    1.3.1. Hardware Necesario

    En primer lugar, es necesario asegurarse de que tiene el siguiente hardware.
    * PC de destino con un 486 o mejor a partir de la CPU
    * Medio de almacenamiento de arranque: la unidad de disco, unidad USB, CD-ROM / Floppy, una unidad flash compacta ...
    * 64 MB de RAM o más
    * Dos interfaces de red Ethernet
    * Un equipo de cliente con la red o de la consola serie el acceso a su m0n0wall nuevo, una pantalla y el teclado para hacer que su configuración inicial

    Nota

    Consulte el manual que viene con su PC de destino para ver qué tipo de dispositivos de almacenamiento de arranque se pueden usar.

    Un teclado y la tarjeta de vídeo es necesario para la configuración inicial. La consola serie puede ser habilitado en el WebGUI después de esta configuración inicial, permitiendo que el sistema para funcionar sin un teclado y de vídeo.
    1.3.2. Hardware Opcional

    VLAN tagging: Los siguientes controladores / tarjetas de red o de soporte de VLAN tagging en el hardware o los marcos de tiempo correctamente. Todos los demás conductores / software de tarjetas de red utiliza la emulación que provoca una reducción de MTU (que puede conducir a problemas).
    * soporte de hardware: BGE, em, GX, ESN, ti, Txp
    * marco de apoyo a largo: fxp DC,, SIS, ste, TL, TX, XL (la mayoría)

    Sondeo: Los siguientes controladores / tarjetas de red compatible con el modo de sondeo para mejorar el rendimiento mediante la reducción de gastos de interrupción (a expensas de un ligero aumento del retardo de envío). De interrogación pueden activarse en el sistema: página de configuración avanzada en m0n0wall.
    * apoyo de votación: em DC, FXP, ESN, RL, SIS, ste, VR

    Wireless: La m0n0wall 1.2x serie sólo admiten algunos adaptadores inalámbricos 802.11b / chipsets (especialmente Lucent Hermes y Intersil Prism II/2.5. 1.3b m0n0wall, que se basa en FreeBSD 6, soporta (casi) todas basadas en Atheros 802.11 / b / g, así como las tarjetas (y algunas tarjetas Ralink también).
    1.3.3. Red de Información requerida

    Tendrá alguna información sobre su conexión a Internet. Usted necesita saber qué categoría de la lista por debajo de su conexión a Internet se divide en, y los detalles apropiados. Generalmente, usted puede encontrar los detalles en el sitio web de su ISP, y / o en el papeleo que usted recibe cuando se registra para el servicio. También puede llamar al soporte técnico de su ISP para obtener esta información.
    * IP estática. - Si usted tiene una conexión con una dirección IP estática, tendrá que tomar nota de su dirección IP, máscara de subred, puerta de enlace predeterminada y servidor DNS de IP.
    * DHCP. - Si tiene una conexión a Internet que utiliza DHCP, no es necesario reunir más información a menos que el ISP requiere que se pase un valor determinado nombre de host DHCP (esto es poco frecuente). Si este es el caso, tendrá que consultar con su ISP para determinar el nombre de host.
    * PPPoE. - Muchos proveedores de DSL proporcionar PPPoE o PPPoA servicio. Cualquiera de estos es compatible con la opción de la WAN PPPoE. Usted necesita saber su nombre de usuario y contraseña PPPoE y posiblemente su nombre de servicio (aunque esto se puede dejar en blanco).
    * PPTP. - A pocos ISPs requieren conectarse a ellos a través de PPTP. Si su ISP requiere de esto, usted necesitará un nombre de usuario, contraseña, dirección IP local, y la dirección IP remota de su ISP.
    * BigPond. - Esta opción es para las conexiones de cable BigPond. Necesitará su nombre de usuario, contraseña, y, posiblemente, el servidor de autenticación y de dominio.

    Usted también necesita saber si está conectado directamente a Internet o si estás detrás de un módem u otro dispositivo que esté conectado a Internet. Por ejemplo, tal vez tu conexión a Internet utiliza PPPoE, pero tiene un módem PPPoE que recibe la dirección IP de su proveedor de Internet y ofrece los servicios de red a la red interna por medio de DHCP o IP estático.
    Advertencia

    Las instrucciones para usar el dispositivo m0n0wall están escritos con la idea de que su m0n0wall tiene acceso directo a Internet. Si tiene otro dispositivo entre el m0n0wall y de Internet que ofrece seguridad o de otra manera afecta el tráfico de red (como un servicio de proxy, el dispositivo NAT o limitaciones de uso del puerto por su proveedor de Internet) las instrucciones de configuración y solución de problemas no se pueden aplicar a su caso.

    Tome nota de la información adecuada para su tipo de conexión para su uso posterior.
    Importante

    Asegúrese de que usted escriba todas de la configuración de Internet existentes antes de realizar cambios para utilizar el dispositivo m0n0wall. Una vez que se hayan desconectado a ti mismo desde Internet perderá el acceso a las numerosas fuentes de ayuda en línea hasta que haya restablecido la conexión.

    1.4. Elección de su hardware

    El hardware que usted elija dependerá de las características que usted va a utilizar, la cantidad de ancho de banda que tiene, y algunas cuestiones de preferencia personal (de dispositivos integrados vs PC estándar). Desde m0n0wall se basa en FreeBSD 4, la mayoría del hardware que funciona con FreeBSD también funciona con m0n0wall. Véanse las notas de Hardware FreeBSD/i386 para obtener una lista detallada de hardware soportado.
    Nota

    El m0n0wall 1,3 comunicados se basan en FreeBSD 6.2-RELEASE. Las Notas de hardware para esta versión es diferente de la de más edad FreeBSD 4.xy versiones.

    La fiabilidad de hardware

    Mientras m0n0wall se ejecutará en hardware muy viejo, tenga en cuenta la fiabilidad de hardware antiguo es sin duda cuestionable. Si el tiempo de actividad no es de importancia crítica, no dude en utilizar el viejo hardware. Si esto es en un entorno de negocios de producción, un Soekris o pensión WRAP podría ahorrar un poco de explicar por el camino de por qué su conexión a Internet se redujo.

    Si está utilizando hardware antiguo, asegúrese de que tiene un plan de contingencia en caso de que falle. Mantenimiento de una máquina de repuesto con su configuración actual m0n0wall cargado, listo para ser utilizado en caso necesario, sería una buena idea.

    Procesador

    Para las conexiones más de banda ancha, las 486 o más rápido será suficiente. Si usted tiene menos de 10 Mb de ancho de banda de Internet (subir combinado y la velocidad de descarga), un dispositivo integrado como el WRAP Soekris o plataformas, o un viejo 486 será suficiente. Para los 10 Mb, hasta un completo T3 o más, un Pentium II o III del sistema de PC o de dispositivos integrados como un NEXCOM es más apropiado. Véase el capítulo 2 de la Guía del usuario para más detalles sobre el hardware compatible.

    Para las conexiones más rápido que una T3 utilizando muchas sesiones VPN, es probable que desee utilizar una versión personalizada de m0n0wall construido específicamente para sus necesidades, y de gama alta Pentium 4, Xeon o hardware similar. Esto está más allá del alcance de este documento.

    RAM

    Se recomienda 64 MB de RAM como mínimo. 32 MB de RAM se ha informado que funcionan bien en un CD / disquete de instalación sin configuraciones VPN. Se ha reportado que funciona fuera de memoria RAM con algunos túneles VPN activa. Disco duro o instala CF no se recomiendan con menos de 64 MB de RAM, ya que probablemente se quedará durante las actualizaciones de memoria RAM y m0n0wall no tiene ningún intercambio, así que la actualización fallará.

    Tamaño de hardware

    Tenga en cuenta que no hay norma "si usted tiene conexión a Internet y X Y número de máquinas en su red, entonces usted necesita hardware Z". Esto varía dependiendo de qué servicios va a usar, y características de su tráfico de Internet. Lo único que requerirá mucho más de la CPU, y / o una tarjeta aceleradora de VPN, es que si usted requiere más que un par de Mbps de tráfico VPN durante períodos prolongados.

    Algunos ejemplos de no-rendimiento de la red encriptada se puede encontrar más adelante, cuando se utiliza la configuración predeterminada. Tenga en cuenta que algunos de estos resultados fueron reportados por los usuarios y no oficialmente con un desarrollador del código m0n0wall. Información adicional se puede encontrar en esta FAQ.
    * Soekris net4501, WAN <-> LAN rendimiento de TCP de cerca de 17 Mbps, incluyendo NAT
    * Soekris net4801, el rendimiento de más de 50 Mbps
    * PC Engines ALIX.1, el rendimiento de más de 90 Mbps
    * Soekris net5501-70 a 500 MHz 512 MB de RAM, 84 Mb / s
    * Liantec 5842 con OpenBSD 4.0, 395Mbps
    * Nueva PC estándar,> 100 Mbps (dependiendo de las tarjetas de Ethernet usado)
    * Sempron 2800 + (1.6GHz) con Intel Pro 1000 PT PCI-E Card, 760Mbps
    * Sempron 2800 + (1.6GHz) con Intel Pro 1000 GT PCI tarjeta de 400Mbps

    Algunas velocidades de cifrado se muestra a continuación. Tenga en cuenta que la velocidad cambiará en función del número de conexiones simultáneas y el tipo de cifrado que se utiliza.
    * Soekris net4801, 3DES, MD5 cifrado IPSec, 3.5Mb / s

    Tarjetas de red

    Usted necesitará por lo menos dos tarjetas de red en el hardware que está utilizando. La mayoría de las tarjetas basadas en PCI son compatibles, consulte la Guía del Usuario para más detalles. Las tarjetas ISA son mucho más problemáticas que las tarjetas PCI, y las tarjetas PCI son fácilmente disponibles y baratos, si usted necesita comprar.

    Para este documento, vamos a suponer que hay dos interfaces de Ethernet. Usted puede tener interfaces adicionales instalados en el sistema, pero no configurar durante estos procedimientos de instalación rápida. Documentación en la Guía del Usuario pronto estará disponible para ayudarle en la creación de interfaces de red adicional, DMZ interfaces, configuraciones inalámbricas, etc
    Consejo

    Usted debe escribir las direcciones MAC de hardware de cada tarjeta de interfaz de Ethernet, si es posible. Durante la configuración de m0n0wall, las interfaces Ethernet se identificarán con estas direcciones. Si usted no sabe de antemano que usted puede necesitar hacer algunas pruebas para averiguar qué tarjeta de red ha sido seleccionado para la LAN y la red que ha sido seleccionado por la WAN. Estas direcciones aspecto 00:1 C: B3: BB: 80:42.
    1.4.1. Medio de almacenamiento

    m0n0wall se escurra de un disco duro, CD-ROM y disquetes, o una tarjeta CompactFlash. Los pros y los contras de cada uno de seguir. Elegir el más apropiado para su situación, teniendo en hardware disponible y otros factores en cuenta.

    Disco duro

    Los discos duros son fácilmente disponibles, y si está utilizando un PC estándar, lo más probable es tener uno en ella. La instalación del disco duro es actualizable de forma remota a través de la WebGUI, así que es una mejor opción en un CD / disquete de instalación en muchos casos. La probabilidad de un fallo del disco duro es bastante alto, dado que se utiliza el hardware es probable que de edad. Un adaptador de CompactFlash a IDE se debe considerar que un fallo de hardware no se puede tolerar, ya que la probabilidad de fracaso es mucho menos con una tarjeta CompactFlash. Este adaptador puede ser comprado nuevo por alrededor de $ 10 USD. PC Engines vende, entre otros proveedores.

    De CD / disquete de instalación

    El CD / obras de instalación de disquete m0n0wall arrancando desde el CD y el almacenamiento de la configuración en un disquete formateado con FAT. Esta es una buena solución en los sistemas que están físicamente muy cerca de la frecuencia (actualizaciones remotas a través de WebGUI no es posible). Los discos flexibles son conocidos por ser corruptos, por lo que es aún más importante para asegurarse de que mantener una copia de seguridad de su configuración. Los discos flexibles tienen problemas mucho más en ambientes que son polvorientos o sucios, por lo que en aquellas situaciones que recomendaría altamente elegir una configuración diferente.

    La máquina que está utilizando debe soportar el arranque de CD (unos 486 y los sistemas Pentium no). También debe establecer la unidad de CD-ROM como primer dispositivo de arranque en el orden de arranque en el BIOS del sistema para que no intente arrancar el disquete de configuración. Consulte a su sistema o manual de la placa para obtener información sobre cómo configurar esto.

    CompactFlash

    CompactFlash (CF) es una buena opción para la mayoría de cualquier despliegue. Las tarjetas CF son más fiables que los discos duros y las unidades de disquetes que contienen la configuración en el CD / disquete de instalación, y son de forma remota actualizable a través de la WebGUI. El inconveniente es que usted puede gastar más dinero conseguir un trabajo de instalación CF. Si usted no está utilizando un dispositivo embebido con adaptador a bordo de un CF, que tendrá que gastar alrededor de $ 10 USD en un adaptador de CF a IDE. Tendrás que comprar una tarjeta CF de al menos 16 MB de tamaño.

    Puedo comprar utiliza tarjetas CF de 16 MB fuera de eBay a utilizar las instalaciones de m0n0wall, y conseguir que por $ 5 - $ 10 USD cada uno. Usted también puede necesitar un lector de CF en su PC para escribir la imagen m0n0wall a la tarjeta CF. Estos son aproximadamente $ 30 USD. Así que podríamos estar ante un gasto total de alrededor de $ 50 USD. Pero la mayoría de cualquier entorno empresarial debe ser capaz de justificar un gasto pequeño para el aumento de la fiabilidad.

    1.5. Comprender la notación CIDR Máscara de subred

    m0n0wall utiliza un formato de máscara de subred que no estén familiarizados con. En lugar de la 255.xxx común, que utiliza CIDR (Classless InterDomain Routing) notación.
    1.5.1. Cuadro CIDR

    Puede referirse a la tabla siguiente para encontrar el equivalente CIDR de su máscara de subred.

    Tabla 1.1. Tabla de subred CIDR
    Utilizable IP Máscara de subred IP CIDR Prefijo total de Número de la clase C redes de
    255.255.255.255 / 32 1 1 1/256th
    255.255.255.254 / 31 2 0 1/128th
    255.255.255.252 / 30 4 2 1/64th
    255.255.255.248 / 29 8 6 1/32nd
    255.255.255.240 / 28 16 14 1/16th
    255.255.255.224 / 27 32 30 1/8th
    255.255.255.192 / 26 64 62 1/4th
    255.255.255.128 / 25 128 126 1 medio
    255.255.255.0 / 24 256 254 1
    255.255.254.0 / 23 512 510 2
    255.255.252.0 / 22 1024 1022 4
    255.255.248.0 / 21 2048 2046 8
    255.255.240.0 / 20 4096 4094 16
    255.255.224.0 / 19 8192 8190 32
    255.255.192.0 / 18 16.384 16.382 64
    255.255.128.0 / 17 32.768 32.766 128
    255.255.0.0 / 16 65.536 65.534 256
    255.254.0.0 / 15 131.072 131.070 512
    255.252.0.0 / 14 262.144 262.142 1024
    255.248.0.0 / 13 524.288 524.286 2048
    255.240.0.0 / 12 1.048.576 1.048.574 4096
    255.224.0.0 / 11 2.097.152 2.097.150 8192
    255.192.0.0 / 10 4.194.304 4.194.302 16.384
    255.128.0.0 / 9 8.388.608 8.388.606 32.768
    255.0.0.0 / 8 16.777.216 16.777.214 65.536
    254.0.0.0 / 7 33.554.432 33.554.430 131.072
    252.0.0.0 / 6 67.108.864 67.108.862 262.144
    248.0.0.0 / 5 134.217.728 134.217.726 1.048.576
    240.0.0.0 / 4 268.435.456 268.435.454 2.097.152
    224.0.0.0 / 3 536.870.912 536.870.910 4.194.304
    192.0.0.0 / 2 1.073.741.824 1.073.741.822 8.388.608
    128.0.0.0 / 1 2.147.483.648 2.147.483.646 16.777.216
    0.0.0.0 / 0 4.294.967.296 4.294.967.294 33.554.432


    1.5.2. Entonces, ¿dónde estas cifras CIDR provienen de todos modos?

    El número de CIDR proviene de la cantidad de 1 en la máscara de subred cuando se convierte a binario.

    La máscara de subred 255.255.255.0 es común 11111111.11111111.11111111.00000000 en binario. Esto se suma a 24 1, o / 24 (pronunciado "barra veinticuatro ').

    Una máscara de subred de 255.255.255.192 es 11111111.11111111.11111111.11000000 en binario, o 26 1, de aquí a 26 /.

    2.1. La elección de su Media

    m0n0wall ofrece dos opciones para los usuarios de PC, ya sea un CD y un disquete de instalación o una configuración de disco duro. En cualquier caso, usted necesitará un equipo existente para escribir en la tarjeta Compact Flash o CD-ROM. En ambos casos, se descarga un archivo llamado m0n0wall una imagen que contiene el sistema operativo de inicio. Esta imagen se escribirá en un medio de comunicación que su equipo m0n0wall elegido puede arrancar.

    Sus cambios adaptados a la configuración por defecto se almacenan en la memoria activa de la computadora m0n0wall. En un CD o disquete de instalación, el disco se almacena esta configuración personalizada. En un disco duro o la tarjeta CF de instalación, los medios de comunicación en sí también es modificable y puede almacenar la configuración. En todos los casos el archivo de configuración se pueden descargar desde la interfaz web para el almacenamiento externo.
    Consejo

    Se recomienda que guarde siempre una copia de seguridad externa de su archivo de configuración en caso de emergencias.
    2.1.1. De CD / disquete de instalación de

    m0n0wall puede ejecutar desde un CD, con un disquete para guardar la configuración. Esta suele ser una buena forma de tratar m0n0wall sin llegar a sobrescribir el disco duro. Sin embargo, no se recomienda para uso en producción, debido a la probabilidad de un disquete o fallo del disco. Un disco duro es mucho más fiable, y Compact Flash es mucho más fiable todavía.

    A partir de la versión 1.3 de una unidad flash se puede utilizar en lugar de un disco para almacenar el archivo de configuración.
    2.1.2. Unidad de disco duro o Configuración de la tarjeta CF

    Muchos usuarios encuentran que una tarjeta Compact Flash ofrece mayor fiabilidad que un disco duro viejo. Una tarjeta Compact Flash se puede utilizar para arrancar un PC tradicional cuando se utiliza una tarjeta Compact Flash a IDE adaptador.

    También puede instalar m0n0wall a cualquier unidad de disco duro de tamaño suficiente (> = 8 MB en la versión 1.2 y> 10 MB en la versión 1.3 y posteriores), así que básicamente cualquier unidad de disco duro IDE de la historia).

    Las instrucciones para escribir la imagen m0n0wall son lo mismo que escribir en un disco duro a menos que se indique lo contrario.

    2.2. Cómo obtener e instalar el software

    Para descargar la imagen genérica PC o ISO de CD, seleccione su navegador web para http://www.m0n0.ch/wall/downloads.php y seleccione el enlace de descarga genérico de PC de esa página. Descarga el archivo a la computadora que va a utilizar para escribir en la tarjeta CompactFlash o disco duro.
    2.2.1. Instalación de la PC estándar de disco duro

    La instalación en un PC estándar requiere los siguientes pasos:

        1. descargar el crudo CF / IDE de la imagen (general-PC)
        2. escribir la imagen en una tarjeta CF (> 5 MB) o un disco duro IDE, ya sea con dd en FreeBSD o en Windows con physdiskwrite. Una descripción más detallada de la escritura de la imagen a estos medios de comunicación se encuentra en la siguiente sección
        3. poner la tarjeta CF / HD en el PC destino
        4. conectar el PC en la red (LAN / WAN /...).
           Precaución

           Si usted tiene un servidor DHCP existentes, y / o desea utilizar una subred IP diferente en su LAN, usted tendrá que conectarse primero a través del teclado de la PC y monitor o consola serie de interfaz como se describe en el capítulo de configuración inicial.
        5. encender el PC

    Ahora que su sistema ha arrancado con el software m0n0wall continúe con la sección Sección 2.3, "Preparación final".
    2.2.2. Escribir el archivo de imagen

    Si está instalando a un PC estándar utilizando un disco IDE o CF, necesita escribir la imagen en una tarjeta CF lo suficientemente grande o un disco duro (por lo menos 10 MB para la imagen genérica-PC en la versión 1.3). Espacio adicional en la tarjeta CF o en la unidad se tiene en cuenta, no hay ventaja de utilizar uno de mayor tamaño de 8 MB que no sea posible la compatibilidad en versiones futuras.

    Las siguientes secciones cubren la manera de escribir la tarjeta CF en Windows, FreeBSD y Linux. Un resumen a continuación con los siguientes datos para cada sistema operativo.

    * Windows:
    (use la opción-u Si el disco de destino es> 800 MB - hacen que sea muy seguro de que ha seleccionado el disco de la derecha!)

    [physdiskwrite-u] generic-pc-xxx.img
    (usted debe usar v0.3 o posterior!)
    * FreeBSD:
           gzcat genéricos-pc-xxx.img | dd of = / dev / rad [n] bs = 16k

           donde n = el número de anuncios de dispositivo de tu tarjeta CF (marque dmesg) (caso omiso de la advertencia sobre el final de basura - es a causa de la firma digital)
    * Linux:

           gunzip-c generic-pc-xxx.img | dd of = / dev / hdX bs = 16k

           donde X = el nombre del dispositivo IDE de la tarjeta HD / CF (marque con hdparm-i / dev / hdX) - algunos adaptadores de CF, en particular, USB, puede aparecer bajo emulación SCSI como / dev / sdX (ignorar la advertencia sobre la final de basura - es a causa de la firma digital)

    2.2.2.1. Windows

    Para Windows se le physdiskwrite descargar desde el sitio web m0n0wall. Este es un pequeño Windows NT/2000/XP línea de comando herramienta que hace posible escribir las imágenes de disco en discos primas, como las tarjetas CF. Actualmente cuenta con una bordes pocos áspero, sobre todo en la selección del dispositivo a ser escrito - usted tiene que decidir qué aparato es el derecho de mirar a la C / H / S valores (aunque si la tarjeta CF es el último dispositivo a ser conectados al sistema, por lo general se presenta como el último en la lista).

    Tenga en cuenta que el C / H / S valores puede ser incorrecto para tarjetas CF - Parece que este es un error en Windows. Hay una cierta protección contra sobrescribir accidentalmente el disco duro, pero de nuevo, NO PUEDO TOMAR CUALQUIER RESPONSABILIDAD POR LA PÉRDIDA DE DATOS - Este programa se utiliza SOBRE SU PROPIO RIESGO.

    (Manuel Kasper autor de m0n0wall) physdiskwrite se debe utilizar en Windows para escribir la tarjeta CF. Descarga desde la página physdiskwrite el sitio web de m0n0wall's.
    Nota

    Nota para los usuarios de Windows Vista: physdiskwrite funciona con Vista, pero debe asegurarse de ejecutarlo como administrador (simplemente tener derechos de administrador no es suficiente), o no se encuentra ningún disco. Una forma de hacerlo es crear un acceso directo a cmd.exe, a continuación, pulse el botón derecho y selecciona "Ejecutar como administrador". Entonces usted puede iniciar physdiskwrite de la ventana que aparece, y debería funcionar bien.

    Physdiskwrite.exe Guardar y la imagen m0n0wall descargados en el mismo directorio en el disco duro, a continuación, abra un símbolo del sistema de Windows (haga clic en Inicio, Ejecutar, escriba cmd y haga clic en Aceptar).

    Conecte el lector de tarjetas CF / escritor e inserte la tarjeta CF. Si se conecta el disco duro puede conectarse directamente a su ordenador oa través de un cable de fuego o el adaptador USB para unidades externas.

    'cd' al directorio que contiene physdiskwrite y la imagen m0n0wall y ejecute el siguiente:

    physdiskwrite genéricos-pc-xxx.img

    Sustitución de genéricos-pc-xxx.img con el nombre de la imagen genérica-pc que ha descargado.
    Consejo

    Los usuarios de Windows puede simplemente arrastrar y soltar el archivo de imagen en el icono physdiskwrite.exe.

    Usted verá una salida similar a lo siguiente:

    physdiskwrite v0.5 por Manuel Kasper

    La búsqueda de unidades físicas ...

    Información para \ \. \ PhysicalDrive0:
        Windows: cil: 14593
                       TPC: 255
                       SPT: 63
        C / H / S: 16383/16/63
        Modelo: ST3120026A
        Número de serie: 3JT1V2FS
        Firmware rev.: 3,06

    Información para \ \. \ PhysicalDrive1:
        Windows: cil: 1
                       TPC: 255
                       SPT: 63

    Usted podrá ver todas las unidades de disco duro en su sistema en la lista, así como la tarjeta Compact Flash. Puesto que no se ejecutó physdiskwrite-u, physdiskwrite se niegan a escribir a cualquier unidad de más de 2 GB. Esta es una protección para no sobreescribir accidentalmente su disco duro.
    Advertencia

    Si está utilizando physdiskwrite.exe para escribir en un segundo disco duro tener mucho cuidado con que se identifica el disco correcto antes de escribir en él (es decir, no escribir la imagen al disco de arranque de su equipo propio).
    2.2.2.2. FreeBSD

    Los procedimientos para la imagen de una tarjeta CompactFlash dependerá del tipo de adaptador que esté utilizando. La tarjeta CF o bien aparecerá como una unidad SCSI o IDE.

    Ejecute el comando de la lista atacontrol. Obtendrá un resultado similar al siguiente:

    SU-3.00 # lista atacontrol
    Canal ATA 0:
    Master: ad0 ATA / ATAPI revisión 5
    Esclavo: ad1 ATA / ATAPI revisión 5
    Canal ATA 1:
    Master: acd0 <_NEC CD-RW NR-7800A/10DA> ATA / ATAPI revisión 0
    Esclavo: no hay ningún dispositivo actual
                

    A continuación, ejecute el comando devlist CamControl. Usted verá una salida similar a lo siguiente:

    SU-2.05b # CamControl devlist
    en scbus2 objetivo 0 lun 0 (pass0, da0)
    en scbus2 objetivo del 3 lun 0 (pass1, DA1)
    en scbus2 objetivo 6 lun 0 (contrasenya2)
                
    Va a encontrar tu tarjeta CF en alguna parte del resultado anterior. Tome nota de su nombre de dispositivo (ADX o Dax).

    Ejecute el siguiente comando, reemplazando adx con el dispositivo CF como se determinó anteriormente, y genérica-pc-xxx.img con el nombre de la imagen m0n0wall descargado.
    gzcat genéricos-pc-xxx.img | dd of = / dev / adx bs = 16k

    No haga caso de la advertencia sobre la final de basura - es a causa de la firma digital.
    2.2.2.3. Linux

    gunzip-c generic-pc-xx-xxx.img | dd of = / dev / hdX bs = 16k

    donde X = el nombre de dispositivo IDE de la tarjeta CF (consulte con hdparm-i / dev / hdX) - algunos adaptadores, en particular, USB, puede aparecer bajo emulación SCSI como / dev / sdX.

    No haga caso de la advertencia sobre la final de basura - es a causa de la firma digital.
    2.2.3. Instalación de la PC estándar de CD-ROM

    Si está instalando en un PC estándar con un CD-ROM y disquetes, tendrá que escribir el CD-ROM de arranque y formatear el disco.

    La instalación en un PC estándar con el CD-ROM (+ disco) versión requiere los siguientes pasos:

    1. Descargar la imagen ISO
    2. Quemar la imagen ISO en un CD-R (o-RW)

    FreeBSD (grabadora ATAPI): burncd-s max-e CD-ROM de datos xxx.iso fixate

    Windows: utilizar el programa de grabación favorito (por ejemplo, Nero) para grabar la imagen ISO (2048 bytes / sector, Mode-1)
    3. Tome un disquete estándar de 1,44 MB o una unidad flash USB (1.3b m0n0wall solamente) y el formato es (con un sistema de archivos MS-DOS/FAT!)
    * Disquete de 1,44 MB

    FreeBSD: fdformat-f 1440 / dev/fd0 & & newfs_msdos-L "m0n0wallcfg"-f 1440 / dev/fd0 Nota: puede omitir el paso fdformat si el disquete ya está (bajo nivel) con formato

    Windows: format a:
    * Unidad flash USB

    Windows: Use el Explorador de Windows para formatear la unidad (FAT32)
    4. Conecte el PC en la red (LAN / WAN /...).
    Precaución

    Si usted tiene un servidor DHCP existentes, y / o desea utilizar una subred IP diferente en su LAN, usted tendrá que conectarse primero a través del teclado de la PC y monitor o consola serie de interfaz como se describe en el capítulo de configuración inicial.
    5. Potencia a tu PC, entrar en la BIOS y asegúrese de que el arranque desde el CD-ROM está habilitada y arrancar desde un disquete está desactivado
    6. Inserte el CD-ROM y en disquete (no de protección contra escritura el disco!)
    7. Continuar el proceso de arranque

    Ahora que su sistema ha arrancado con el software m0n0wall continúe con la sección Sección 2.3, "Preparación final". 


    2.3. Preparación final

    Ahora pon tu disco duro por escrito, la tarjeta CF o CD-ROM en su sistema de arranque de la PC y como se describe anteriormente. El monitor debe mostrar la salida de texto durante el arranque y, finalmente, el menú de la consola esperando para iniciar la configuración.

    Estas últimas medidas se asignan funciones a las interfaces y cambiar la dirección IP de la LAN si es necesario.

    1. Espere a que el menú de la consola que aparezca, seleccione 1. (asigna los puertos de red)
    2. Asignar funciones (LAN / WAN / OPT) para sus interfaces (pista: el uso de auto-detección, o dejar que las direcciones MAC decirle qué tarjeta es la que uno)
    3. Cambiar la dirección IP de la LAN, o utilizar la opción predeterminada (192.168.1.1; m0n0wall actúa como un servidor DHCP por defecto)
    4. Acceda a la WebGUI (user: 'admin', la contraseña por defecto: 'mono')
    5. Haga los cambios necesarios para la configuración por defecto

    2.3.1. La conexión de las interfaces de red

    Conecte la interfaz LAN en el concentrador o un conmutador que está conectada a su LAN. Conecte la interfaz WAN en su conexión a Internet (DSL o cable módem, router, etc) Interfaces adicionales de red, opcionalmente, se puede conectar a otros routers, hubs o un dispositivo Ethernet capaz.
    Consejo

    Si sus dispositivos de Ethernet han incorporado en LEDs para mostrar la conectividad, verificar que los enlaces relacionados están mostrando un LED verde cuando los dispositivos están físicamente encendido. Si no se muestra verde entonces puede haber un problema con el cable (dañados o cableado) o con una de las interfaces Ethernet.

    3.1. Configuración inicial

    De forma predeterminada, m0n0wall permite a su servidor DHCP en su interfaz LAN y configura la interfaz LAN con la dirección IP 192.168.1.1. Si usted tiene un servidor DHCP existentes, y / o desea utilizar una subred IP diferente en su LAN, usted tendrá que conectarse primero a través del teclado de la PC y monitor o consola serie de interfaz.
    Nota
    A menos que sepas lo que estás haciendo, le recomendamos no cambiar la dirección IP de la LAN o pre-configurado la configuración de DHCP para evitar las dificultades causadas por una mala configuración.

    Si usted no es necesario cambiar las asignaciones de interfaz, dirección IP LAN, o la configuración del servidor DHCP, puede avanzar al siguiente capítulo. De lo contrario, a continuación están los pasos para realizar cambios a la configuración predeterminada utilizando el teclado de su PC m0n0wall's / monitor o consola serie de interfaz.

    En general, la conexión a un PC m0n0wall con un teclado / monitor resultará más fácil para los usuarios de primera vez de conectarse a la interfaz de la consola serie. Esto es porque hay muchos diferentes posibles configuraciones de la consola para cualquier PC determinado, a veces con los puentes, a veces en el BIOS del sistema.
    Nota

    La configuración predeterminada para m0n0wall no activar una interfaz inalámbrica, incluso si uno está instalado. Eso significa que usted no puede cambiar la configuración predeterminada utilizando sólo una conexión inalámbrica. Usted debe estar conectado mediante Ethernet o Serial cable de la consola para hacer el cambio de configuración en primer lugar.

    3.2. Conexión con el teclado / monitor

    Si el PC m0n0wall ya cuenta con un teclado y un monitor que será fácil de verificar que el arranque ha ido bien y hacer los cambios necesarios en la configuración predeterminada. Durante la puesta en marcha de la computadora m0n0wall el estado será de salida a la pantalla. Cuando el proceso de arranque se haya realizado un cursor del sistema parpadeará y en espera de su comando.

    Suponiendo que todo ha ido como se explicó anteriormente, ahora se puede proceder a la Sección 3.4, "m0n0wall configuración de la consola".

    3.3. Conexión a la consola serie

    Acceso a un ordenador PC mediante su interfaz serie es útil para PC m0n0wall sin un teclado o ratón conectado a ellos o para solucionar problemas. La configuración más sencilla sin embargo, es simplemente conectar un PC cliente temporalmente a la PC m0n0wall como un cliente DHCP y que su configuración inicial utilizando la interfaz web.

    Sin embargo, las instrucciones están por debajo de aquellos que aún deseen conectarse a través de una consola serie de interfaz.
    3.3.1. Cómo el cable adecuado

    Primero necesitas un cable de módem nulo, no una recta a través de cable serie. Para el caso pin-out, ver esta página. Usted puede comprar un cable de módem nulo en la mayoría de cualquier tienda que lleva los cables de computadora, o de una variedad de fuentes en línea. (Enlace de Froogle para los cables de módem nulo)

    Conecte el cable de módem nulo en el dispositivo incrustado y el PC.
    3.3.2. Conexión a la consola serie

    Para usuarios de Windows, HyperTerminal no es grande, pero se hace el trabajo. Lo puede encontrar en Inicio, Programas, Comunicaciones, HyperTerminal. Si usted no puede encontrar en su sistema, puede descargarlo gratuitamente aquí.

    Después de abrir HyperTerminal, podrás ver la pantalla de conexión nueva.

    Escriba algo por el nombre de conexión y haga clic en Aceptar.

    A continuación, verás la opción "Conectar a" en pantalla. Seleccione el número de puerto COM del puerto serie en su PC. Si usted no sabe qué es, de prueba y error podría ser la forma más fácil de determinar esto. Comience con COM1, y tratar otros puertos si es necesario. En este caso, sé que mi puerto serie es COM1.

    Ahora verás la pantalla Propiedades de conexión. Si ha cambiado la velocidad de la consola en el PC, usted tendrá que cambiar el "bits por segundo campo" en consecuencia.

    Bits por segundo: 9600
    Data bits: 8
    Parity: none
    Stop bits: 1
    Flow control: hardware

    Haga clic en Aceptar después de rellenar las propiedades de conexión adecuadamente, y usted tendrá una pantalla de HyperTerminal en blanco. Ahora el poder en su dispositivo.

    3.4. m0n0wall configuración de la consola

    Para recapitular anteriores, el sistema está ahora listo para ser configurado. Usted es capaz de ver el teclado / salida de vídeo o una consola serie a 38400 bps (oa través de una tarjeta de video y el monitor) y tener los medios de comunicación que ha cargado con m0n0wall anterior instalado en la máquina objetivo.

    Cuando el sistema termine de arrancar, podrás ver las m0n0wall consola.

    *** Esta es m0n0wall, versión 1.2
         construido el Dom Ago 22 11:41:15 CEST 2004 para WRAP
         Copyright (C) 2002-2005 por Manuel Kasper. Todos los derechos reservados.
         Visita http://m0n0.ch/wall para las actualizaciones.
        
        
         Dirección IP LAN: 192.168.1.1
        
         Configuración del puerto:
        
         LAN -> sis0
         WAN -> sis1


    m0n0wall configuración de la consola
    **********************
    1) Interfaces: asignar los puertos de red
    2) Establecer la dirección IP LAN
    3) Restablecer contraseña WebGUI
    4) Restablecer los valores predeterminados de fábrica
    Reinicie el sistema 5)
            

    Aunque este ejemplo muestra sis0 y sis1 como las dos interfaces Ethernet estos nombres dependen de la tarjeta Ethernet que se instalan. Estos 4 personajes simplemente identificar al conductor utiliza para acceder a la tarjeta Ethernet y el número de tarjetas que utilizan el mismo controlador. Otros posibles nombres de las interfaces Ethernet incluyen, pero no están limitados a: BGE, em, GX, ESN, ti, txp, DC, FXP, SIS, ste, TL, TX, XL.
    3.4.1. Opciones del menú de configuración de la consola

    En primer lugar voy a explicar el propósito de cada opción de menú.

    Opción 1 le permite asignar las interfaces de red que se utilizará para LAN, WAN, y redes de territorio palestino ocupado, así como que le permite configurar la VLAN.

    Opción 2 le permite configurar la dirección IP de la LAN a algo distinta de la predeterminada 192.168.1.1.

    Opción 3 permite restablecer la contraseña WebGUI si la ha olvidado.

    Opción 4 le permite restablecer el sistema a la configuración predeterminada de fábrica. Si te quedas atascado en algún momento durante la configuración, a veces es más fácil empezar de cero.

    Opción 5 le permite reiniciar el sistema.

    3.5. Interfaces de Asignación de

    Pulse 1 en la pantalla de la consola de configuración si desea volver a asignar sus interfaces de red.

    A continuación están los pasos para cambiar la asignación de la tarjeta Ethernet que se utiliza para que la conexión de red. Por ejemplo, si tiene tanto una tarjeta de 10 Mbps y 100 Mbps Ethernet normalmente se desea que la carta más alta velocidad de las tarjetas (o) en la LAN y el más lento las cartas sobre la WAN (suponiendo que su conexión a Internet es inferior a WAN 10 Mbps).

    Introduzca un número: 1

    Interfaces válidos son:

    sis0 00:0 C: 29:96:5 E: de
    sis1 00:0 C: 29:96:53: E8

    ¿Quieres crear redes VLAN en primer lugar?
    Si no vas a utilizar VLAN, o sólo para interfaes opcional, usted
    debería decir que no aquí y utilice el WebGUI a las VLAN configurar más tarde, si es necesario.

    ¿Quieres crear redes VLAN ahora? (y / n)
        

    En esta guía sólo conduce a través de una configuración sencilla interfaz de dos, pulsaremos n y el golpe entra aquí para saltarse la configuración de VLAN. Si necesita soporte VLAN, configurar en el WebGUI después de esta configuración inicial se completa. Usted puede utilizar el Valid interfaces lista para ver cómo sus tarjetas Ethernet instalado son identificados por el sistema operativo m0n0wall.

    Si usted no sabe los nombres de sus interfaces, puede optar por utilizar
    auto-detección. En ese caso, desconecte todos los interfaces antes de empezar,
    y volver a conectar cada uno de ellos cuando se le pida hacerlo.

    Introduzca el nombre de la interfaz LAN o 'a' para la detección automática:
        

    Introduzca el nombre de la interfaz LAN que desee seleccionando uno de los nombres de tarjeta de red Ethernet, tales como "sis0" y pulse Enter.

    Introduzca el nombre de la interfaz WAN o 'a' para la detección automática
    (o nada si acabados):

    Introduzca una de las restantes interfaces disponibles y pulse Enter.

    A continuación se le pedirá la asignación de interfaces opcionales. Usted puede hacer esto más tarde a través de la WebGUI si es necesario. Sin entrar en nada, pulse Enter en este sistema.

    Introduzca el nombre de la interfaz opcional de 1 o 'a' para la detección automática
    (o nada si acabados):

    Ahora verá cómo sus interfaces se han configurado.

    Las interfaces serán asignados de la siguiente manera:

    LAN -> sis1
    WAN -> sis0

    El cortafuegos se reiniciará después de guardar los cambios.

    ¿Desea continuar? (y / n)
        

    Esto confirma cómo las interfaces se le asignará. Y de Prensa y el golpe entra aquí para reiniciar el servidor de seguridad para que los cambios surtan efecto. Para descartar los cambios, escriba N y presione Enter. Si todo el hardware y los cables están correctamente instalado, usted debería ser capaz de llegar a la m0n0wall en la dirección 192.168.1.1 la IP de un equipo cliente.

    3.6. Cambiar la IP de la LAN y / o la configuración del servidor DHCP.

    Ver este tutorial en línea de cómo en el cambio de la dirección IP LAN y / o la configuración del servidor DHCP.
    Advertencia

    Si usted ya tiene un servidor DHCP en su red LAN NO conecte el m0n0wall a su red inalámbrica hasta que primero haya desactivado el servidor DHCP en la m0n0wall. De lo contrario su m0n0wall podría responder a un equipo cliente DHCP en su red antes de que su servidor normal y por lo tanto dar información incorrecta a la computadora solicitante.

    Ahora tiene que conseguir uno de sus equipos cliente configurados para que pueda acceder a la WebGUI para terminar la configuración. Una máquina cliente es cualquier dispositivo Ethernet (como un ordenador, impresora de red o el escáner, cámara de red ...) que está conectado a la red LAN de la PC m0n0wall. Estos dispositivos utilizan el PC m0n0wall para llegar a la Internet y que estarán protegidos por la configuración de su m0n0wall.

    Si está utilizando el servidor DHCP integrado en el sistema m0n0wall, estas máquinas cliente va a recibir todos los de su configuración IP de la PC m0n0wall, aunque no se espera para conectarse a Internet.
    Consejo

    Si tiene alguna servidores de la red LAN como un archivo o servidor de impresión, se quiere que tengan de tipo fijo, que cambia las direcciones IP. Cualquiera de asignarles una dirección DHCP fijo o una dirección IP estática.
    4.1. Usando DHCP para los equipos cliente

    Si usted no está familiarizado con la creación de redes, lo más fácil que hacer es poner todas las máquinas cliente para obtener su dirección IP de DHCP. m0n0wall permite a su servidor DHCP en la interfaz LAN de manera predeterminada.
    4.1.1. LAN con m0n0wall como servidor DHCP

    Si va a utilizar su m0n0wall como un servidor DHCP, configure el equipo cliente que va a utilizar para acceder a la WebGUI para obtener su dirección IP utilizando DHCP. Luego, liberar y renovar su contrato de arrendamiento de DHCP y obtendrá un contrato de arrendamiento de m0n0wall. Los procedimientos para liberar y renovar varían según el sistema operativo del equipo cliente, pero si usted no sabe cómo hacer esto, reiniciar el equipo cliente logre el mismo resultado.
    4.1.2. LAN con el servidor DHCP existentes

    Si usted tiene un servidor DHCP existente en su LAN, usted sólo necesita establecer su LAN m0n0wall la dirección IP como la puerta de enlace predeterminada la dirección asignada por el servidor DHCP. Esto es debido a su tráfico de internet se espera que se va a través de la interfaz LAN de su PC m0n0wall para que m0n0wall puede proteger su tráfico de red.

    Al entrar en el WebGUI, tendrás que m0n0wall desactivar el servidor DHCP. También puede desactivarlo desde la consola como se describe en el capítulo anterior.

    4.2. Direcciones IP estáticas para los equipos cliente

    Si desea utilizar una dirección IP estática en equipos cliente, asegúrese de configurar en la misma subred que la interfaz LAN m0n0wall, usando los servidores de DNS adecuado m0n0wall y la dirección IP de la LAN como la puerta de enlace predeterminada.

    Le recomendamos seguir con DHCP, al menos inicialmente para reducir la probabilidad de problemas.

    Ahora que tenemos los equipos cliente configurados adecuadamente, las interfaces LAN y asigna direcciones IP configuradas y el m0n0wall se ha reiniciado con su nueva configuración, vamos a registrar en el WebGUI y terminar la configuración.
    5.1. Inicio de sesión en el WebGUI

    Abra su navegador Web y vaya a http://192.168.1.1 (si ha cambiado la dirección IP LAN en la configuración de la consola, reemplace 192.168.1.1 con LAN PC m0n0wall de la PI en todo el resto de la documentación).

    Se le pedirá un nombre de usuario y contraseña. Ingrese nombre de usuario admin y mono contraseña. Ahora está conectado a la WebGUI.

    5.2. WebGUI Sistema -> Configuración General pantalla

    Primero haz click en "Configuración general".

    Nombre de host y de dominio

    Si desea cambiar el nombre de host y de dominio de su m0n0wall, puede hacerlo en las dos primeras casillas en esta pantalla. Si utiliza m0n0wall como su servidor DNS, el nombre se resuelve a su dirección IP de la LAN. es decir, puede acceder a su WebGUI utilizando http://m0n0wall.local o lo que establece el nombre de host y el dominio a.

    Servidores DNS

    Si usted tiene una dirección IP estática de su ISP, es necesario introducir las direcciones IP de los servidores DNS del ISP en estos dos cuadros. Utilice una dirección IP por caja. Si usted recibe su dirección IP de su proveedor de Internet a través de DHCP, deje estos cuadros en blanco. Si desea utilizar los servidores DNS de su red local, introduzca las direcciones IP aquí. Sólo se puede utilizar un servidor DNS, rellenando la casilla superior y dejando la parte inferior un espacio en blanco.

    Si su ISP utiliza DHCP y desea utilizar los servidores DNS del ISP servidor DHCP proporciona, deje la opción "Permitir lista de servidores DNS a ser anulado por el DHCP / PPP WAN" casilla de verificación. Si está utilizando DHCP en la WAN, y desea utilizar los servidores DNS que no sean los previstos por el ISP, desactive esta casilla.

    Nombre de Usuario y Contraseña

    Si desea cambiar el nombre de usuario por defecto "admin", cambie el cuadro de nombre de usuario adecuadamente.
    Importante

    Es importante que usted cambie su contraseña por defecto "mono", escriba una contraseña de su elección en el campo de contraseña y escribiendo de nuevo para confirmar en el segundo campo.

    WebGUI protocolo y el puerto

    Aquí tiene que cambiar el protocolo de HTTP a HTTPS para que su nombre de usuario y contraseña y los detalles de configuración están cifradas en el tránsito sobre su LAN.

    Si desea hacer un poco más difícil de encontrar su página de inicio de sesión WebGUI, cambiar el número de puerto aquí. Sólo recuerde que usted tendrá que poner ese número de puerto en la URL al iniciar sesión en el WebGUI. Por ejemplo, si establece este puerto para 5555, y cambiar a HTTPS, tendrá que utilizar https: / / 192.168.1.1:5555 para acceder a la WebGUI.

    Zona Horaria

    Seleccione su zona horaria de este cuadro desplegable. Esto incluye todas las zonas horarias de FreeBSD. Estoy en Louisville, Kentucky, EE.UU., que tiene su propia entrada en America / Louisville que se seleccione. Usted probablemente puede encontrar una ciudad en la misma zona horaria, o al menos encontrar el nombre de su zona horaria.

    Tiempo de Intervalo de actualización

    m0n0wall tiene un cliente NTP construido en el que por defecto se sincronizará su tiempo a un servidor NTP cada 300 minutos (5 horas). Para cambiar la frecuencia de esta actualización, cambio de este cuadro. Introduzca 0 para desactivar NTP de sincronización de reloj (no recomendado).

    NTP Time Server

    Esto especifica que m0n0wall servidor NTP se utiliza para sincronizar su tiempo. Usted puede dejar a pool.ntp.org a menos que tenga una razón para cambiarlo. Es posible que desee cambiar esto, por ejemplo, para sincronizar con un servidor NTP central de su LAN.

    Ahora a revisar todos los cambios en esta pantalla, y cuando esté satisfecho con ellos, haga clic en Guardar. Verá la notificación de que los cambios se aplicaron con éxito.

    5.3. Configurar la interfaz WAN

    Ahora vamos a configurar la interfaz WAN. En este punto, usted necesitará alguna información de su ISP. Los tipos de conexión WAN disponibles son DHCP, IP estático, PPPoE, PPTP, y Bigpond. Es probable que usted va a usar DHCP, IP estática, o PPPoE.
    5.3.1. WAN pantalla de configuración de
    5.3.2. Tipo

    En el desplegable Tipo de caja, usted tiene cinco opciones. Elige en consecuencia a la información recogida anteriormente, y complete la información necesaria para su tipo de conexión.
    5.3.3. Opciones de configuración generales

    En "Configuración general" en esta pantalla, puede cambiar la dirección MAC de la interfaz WAN y el cambio de la MTU.

    Dirección MAC

    Algunos ISP mantienen la dirección MAC del dispositivo que ha conectado a su red, y sólo permiten que el acceso del dispositivo. Normalmente existe un proceso para registrar un nuevo dispositivo, aunque a veces que pueden requerir ponerse en contacto con el ISP. Para evitar esto, se puede introducir la dirección MAC de la tarjeta de red que utilizó anteriormente en su conexión de banda ancha para que su ISP cree que todavía tiene el mismo dispositivo conectado.

    MTU

    A menos que tenga una muy buena razón para cambiar, deja la MTU solo.
    5.3.4. Bloque de redes privadas

    A menos que su subred WAN se encuentra en el espacio de direcciones IP privadas, deje esta casilla marcada. Te protege de algunos intentos de suplantación de IP.
    5.3.5. Guardar y aplicar cambios

    Ahora haga clic en Guardar en la parte inferior de la página de la WAN. Sus cambios tendrán efecto inmediatamente, y de inmediato debe ser capaz de navegar por Internet desde su LAN. Si no puede, consulte la sección de solución de problemas.

    5.4. ¿Qué sigue?

    Así que ahora ha configurado m0n0wall y de trabajo - ¿y ahora qué sigue?
    5.4.1. Lista de Anuncios m0n0wall

    Si está ejecutando m0n0wall, le recomendamos suscribirse a los anuncios de la lista de correo mediante el envío de un mensaje en blanco a . Esta es una lista muy bajo volumen que sólo puede ser publicado por Manuel Kasper. Puede ser que consiga 10 mensajes al año. Es importante para suscribirse de manera que se mantengan al día sobre las nuevas versiones, y sabrá si se descubren problemas de seguridad.
    5.4.2. m0n0wall Documentación lista de anuncios

    Usted lo desea también puede suscribirse a la lista de actualizaciones de la documentación si desea mantenerse al día sobre los cambios importantes a la documentación m0n0wall. Enviar un mensaje en blanco a para suscribirte. Esta lista sólo puede ser publicado por Chris Buechler, y es el volumen muy bajo por regla general de menos de 10 mensajes al año.
    5.4.3. Explorar las posibilidades

    m0n0wall es capaz de mucho más que la interfaz de dos básicos de internet / WAN de configuración que tienen ahora en marcha. Leer atentamente el Manual de m0n0wall para obtener información sobre la aplicación de más de las capacidades de m0n0wall's.


    Capítulo 6. Solución de problemas

    Algunos de los problemas es posible que encuentre en el proceso de seguir esta guía, y sus pasos de solución de problemas asociados a seguir.

    Las interfaces de red no se detectan

    No puedo acceder a Internet desde la LAN después de configurar la interfaz WAN

    No se puede acceder WebGUI de LAN

    No se puede obtener luz de conexión en la interfaz o interfaces de re.

    Glosario
    DHCP

         Dynamic Host Configuration Protocol.
    LAN

         Red de área local. Una red que normalmente incluye los equipos que están físicamente cerca, como en una oficina, por lo general relacionado con los concentradores y conmutadores en lugar de los routers.
    NIC

         Network Interface Card. Alias tarjeta de red, o tarjeta Ethernet.
    NAT

         Network Address Translation. Una técnica por la cual el tráfico IP de múltiples direcciones IP detrás de un firewall se hacen para mirar hacia el exterior, como si todas ellas proceden de una única dirección IP pública.

         Ver también la página Wikipedia de traducción de direcciones de red.
    WAN

         Red de área extensa. Una red que abarca un área extensa, que típicamente incluyen routers, gateways y diferentes redes IP.

         En el contexto de los cortafuegos, la interfaz WAN es el conectado directamente a Internet.


    Este articulo a sido copiado de esta direccion
    http://doc.m0n0.ch/quickstartpc/index.html
    y su traduccion fue cedida por google

    viernes, 25 de septiembre de 2009

    Asignar LUN como unidad local con iscsi

    Primero tenemos que instalar en el cliente (windows) el MS iscsi Initiator, que lo podemos descargar desde las paginas de Microsoft.

    lunes, 21 de septiembre de 2009

    Problema al instalar en Windows 2003

    No puedo instalar nada en Windows 2003

    Hoy me he encontrado con un problema de esos extraños que aparecen de vez en cuando. La cosa es que tengo un Windows 2003 nuevecito pero en el que no puede ejecutar ningún exe. Cuando lo intento me aparece el siguiente mensaje:

    "Windows no tiene acceso al dispositivo, ruta de acceso o archivo especificado. Puede que no tenga los permisos apropiados para tener acceso al elemento."

    Después de revisar mil y una historias, he dado con la solución:

    - En agregar o quitar componentes de Windows, quitar el IE Enhanced Security (Seguridad Mejorada de Internet Explorer)

    - Añadir la IP/nombre del server desde donde se ejecuta el exe en las zonas de confianza del Internet Explorer.

    Y con esto ha funcionado a las mil maravillas

    Mapear unidades con SUBST

    Syntax
    Associates a path with a drive letter.
    SUBST [drive1: [drive2:]path]
    SUBST drive1: /D
    drive1:Specifies a virtual drive to which you want to assign a path.
    [drive2:]pathSpecifies a physical drive and path you want to assign to a virtual drive.
    /DDeletes a substituted (virtual) drive.
    Type SUBST with no parameters to display a list of current virtual drives.
    Examples
    SUBST a: .
    Sets the directory you are in and subdirectories thereafter into the A: drive. So if you were to type A: after doing this command you would see everything in the directory that you typed this command in.
    If you were to reboot your computer this will clear the SUBST command and put your drives back to original letters (unless command placed into the autoexec.bat).
    Note: You cannot subst network drives.


    el comando "SUBST", que permite "mapear" un directorio al cual uno accede mucho y que es tan largo que acceder a el a veces se hace muy tedioso.
    El problema: tengo una carpeta a la cual accedo mucho pero que tiene un camino (path) un tanto engorroso:
    "C:\Documents and Settings\Administrador\Datos de programa\Mozilla\Firefox\Profiles\equ4gb5s.default\ScrapBook"
    Y quiero que el sistema reconozca esta carpeta como H:\

    1. Inicio >> Ejecutar >> Regedit
    2. Localizar "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
    3. En la parte derecha, clic derecho, Nuevo >> Valor alfanumérico
    4. Lo llamamos "SUBST" (o lo que quieras), información del valor:
      SUBST H: "C:\Documents and Settings\Administrador\Datos de programa\Mozilla\Firefox\Profiles\equ4gb5s.default\ScrapBook"
    5. Cierras Regedit, cierras sesión, vuelves a entrar, et voilà.

    Instalar CYGWIN

    Instalar CYGWIN

    Nos descargamos el paquete para instalar cygwin de internet http://www.cygwin.com/
    Ejecutamos el fichero .exe que nos hemos descargado y elegimos los paquetes que queremos instalar.
    En windows nos creamos un usuario local y lo metemos en el grupo de administradores (nosotros creamos sysadmin con la contraseña de siempre).

    Una vez instalado el paquete lo lanzamos dando doble click en el acceso directo que nos ha creado.
    Tenemos que pasar los usuarios y los grupos locales de la maquina windows al fichero passwd y group de cygwin
    $mkpasswd -l > /etc/passwd
    $mkgroup -l > /etc/group

    Editamos las variables de sistema de windows, modificamos el PATH y agregamos la siguiente variable
    PATH=$PATH$;c:\cygwin\bin CYGWIN=ntsec tty

    Verificamos que tenemos los ficheros siguientes con estos permisos
    $chmod +r /etc/passwd
    $chmod +r /etc/group
    $chmod +x -R /var
    Para configurar en CYGWIN ssh y crear el servicio que se arranque automaticamente ejecutamos el siguiente comando
    $ssh-host-config -y
    Tambien podemos arrancar el servicio a mano con el comando
    net start sshd
    o
    cygrunsrv -S sshd
    Si por alguna causa no arranca el servicio con estos comandos lo solucionamos
    $chown system /etc/ssh*
    $chown system /etc/empty

    Para acceder a unidades de windows hay que poner cygdrive y la letra de unidad
    /cygdrive/c
    Si queremos que siempre que iniciemos cygwin nos aparezca en una ruta tenemos que editar el fichero /etc/profile y añadir al final esta sentencia
    ...
    cd /cygdrive/w
    ...
    w es una unidad mapeada en windows

    Por ultimo para que funcione en el firewall de windows tenemos que abrir el puerto 22.

    Este enlace esta muy bien http://es.kioskea.net/faq

    Instalar LDAP

    Instalar y configurar LDAP

    La version que vamos a usar para la instalacion es Ubuntu 8.04 LTS
    Instalamos ubuntu normal, el nombre de maquina que ponemos es mrldap, creamos un usuario syadmin y ponemos como ip 192.168.37.100.
    Esta maquina ademas de LDAP se usara como DNS, DHCP, SAMBA, POSFIX.
    Actualizamos el sistema operativo, para ello quitamos los comentarios de los repositorios multiverse en el fichero sources.list
    $apt-get update
    $apt-get upgrade
    El siguiente paso ya lo hicimos en la instalacion de ubuntu
    $apt-get install openssh-server
    $vim /etc/hosts
    127.0.0.1 localhost
    127.0.1.1 ldap2.vablom.lan ldap2

    # The following lines are desirable for IPv6 capable hosts

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

    $vim /etc/hostname
    ldap2.vablom.lan

    La configuracion de ntp nos la saltamos de momento
    $apt-get install ntp
    $vim /etc/ntp.conf
    # /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

    driftfile /var/lib/ntp/ntp.drift

    # Enable this if you want statistics to be logged.
    #statsdir /var/log/ntpstats/

    statistics loopstats peerstats clockstats
    filegen loopstats file loopstats type day enable
    filegen peerstats file peerstats type day enable
    filegen clockstats file clockstats type day enable

    # You do need to talk to an NTP server or two (or three).
    server ntp.ubuntu.com
    server pool.ntp.org

    # Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
    # details. The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
    # might also be helpful.
    #
    # Note that "restrict" applies to both servers and clients, so a configuration
    # that might be intended to block requests from certain clients could also end
    # up blocking replies from your own upstream servers.

    # By default, exchange time with everybody, but don't allow configuration.
    restrict -4 default kod notrap nomodify nopeer noquery
    restrict -6 default kod notrap nomodify nopeer noquery

    # Local users may interrogate the ntp server more closely.
    restrict 127.0.0.1
    restrict ::1

    # Clients from this (example!) subnet have unlimited access, but only if
    # cryptographically authenticated.
    #restrict 192.168.123.0 mask 255.255.255.0 notrust

    # If you want to provide time to your local subnet, change the next line.
    # (Again, the address is an example only.)
    #broadcast 192.168.123.255

    # If you want to listen to time broadcasts on your local subnet, de-comment the
    # next lines. Please do this only if you trust everybody on the network!
    #disable auth
    #broadcastclient

    $ shutdown -r now

    Estos 2 directorios los podremos usar si queremos para la instalacion de ldap
    $ mkdir /ldaphome
    $ mkdir /ldap_data

    $ apt-get install postfix mailx
    Durante la instalacion nos pregunta

    Tipo generico de configuracion de correo: Sitio de internet
    
    Nombre del sistema de correo: ldap2.vablom.lan
    
    

    Pasamos a instalar LDAP
    $ apt-get install slapd ldap-utils migrationtools
    Nos pregunta lo siguiente:

    Contraseña administrador: 12345
    
    Confirmar contraseña: 12345
    
    

    $ dpkg-reconfigure slapd

    Desea omitir la configuracion del servidor OpenLDAp?
    
    
    NO


    DNS domain name
    
    
    blom.es


    Organization name:
    
    
    blom.es


    Contraseña administrador:
    
    
    12345

    Verificacion de contraseña:
    
    
    12345


    Database backend to use:
    
    
    BDB


    Desea que se borre..
    
    
    NO


    Desea mover la base de datos antigua:
    
    
    YES


    Allow LDAPv2 protocol
    
    
    NO

    Instalamos SAMBA
    $ apt-get install samba smbldap-tools smbclient samba-doc
    Integramos el schema de samba dentro de ldap
    $ cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/
    $ gzip -d /etc/ldap/schema/samba.schema.gz
    $ vim /etc/ldap/slapd.conf
    # 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/samba.schema
    include /etc/ldap/schema/misc.schema

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

    # 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

    #######################################################################
    # 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=lanva"

    # rootdn directive for specifying a superuser on the database. This is needed
    # for syncrepl.
    # rootdn "cn=admin,dc=lanva"

    # Where the database file are physically stored for database #1
    directory "/var/lib/ldap"

    # The dbconfig settings are used to generate a DB_CONFIG file the first
    # time slapd starts. They do NOT override existing an existing DB_CONFIG
    # file. You should therefore change these settings in DB_CONFIG directly
    # or remove DB_CONFIG and restart slapd for changes to take effect.

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

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

    # Checkpoint the BerkeleyDB database periodically in case of system
    # failure and to speed slapd shutdown.
    checkpoint 512 30

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

           by dn="cn=admin,dc=vablom,dc=lan" write
    
           by anonymous auth
    
           by self write
    
           by * none
    
    
    1. Ensure read access to the base for things like
    2. 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=lanva" 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=lanva" 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"

    Ahora nos toca configurar samba
    $ cd /etc/samba/
    salvamos el fichero original
    $ cp smb.conf smb.conf.original
    $ vim smb.conf
    #
    # 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
    #
    # Any line which starts with a ; (semi-colon) or a # (hash)
    # is a comment and is ignored. In this example we will use a #
    # for commentary and a ; for parts of the config file that you
    # may wish to enable
    #
    # NOTE: Whenever you modify this file you should run the command
    # "testparm" to check that you have not made any basic syntactic
    # errors.
    #

    #======================= Global Settings =======================

    [global]

    ## Browsing/Identification ###

    # Change this to the workgroup/NT-domain name your Samba server will part of

      workgroup = VABLOM
    
    

    # server string is the equivalent of the NT Description field

      server string = %h server (Samba, Ubuntu)
    
    

    # 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.
    ## not protected by a firewall or is a firewall itself. However, this
    # option cannot handle dynamic or non-broadcast interfaces correctly.

    bind interfaces only = true

    #### 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 = ldapsam:ldap://localhost/
    
    


      obey pam restrictions = no
    
    

    #######################################################################
    #
    # Begin: Custom LDAP Entries
    #
    ldap admin dn = cn=admin,dc=lanva
    ldap suffix = dc=lanva
    ldap group suffix = ou=Groups
    ldap user suffix = ou=Users
    ldap machine suffix = ou=Computers
    ldap idmap suffix = ou=Users

    Do ldap passwd sync
    ldap passwd sync = Yes
    passwd program = /usr/sbin/smbldap-passwd %u
    passwd chat = *New*password* %n\n *Retype*new*password* %n\n *all*authentication*tokens*updated*
    add user script = /usr/sbin/smbldap-useradd -m "%u"
    ldap delete dn = Yes
    delete user script = /usr/sbin/smbldap-userdel "%u"
    add machine script = /usr/sbin/smbldap-useradd -w "%u"
    add group script = /usr/sbin/smbldap-groupadd -p "%g"
    delete group script = /usr/sbin/smbldap-groupdel "%g"
    add user to group script = /usr/sbin/smbldap-groupmod -m "%u" "%g"
    delete user from group script = /usr/sbin/smbldap-groupmod -x "%u" "%g"
    set primary group script = /usr/sbin/smbldap-usermod -g "%g" "%u"
    domain logons = yes
    #
    # End: Custom LDAP Entries
    #
    #####################################################


    guest account = nobody
    invalid users = root

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

    # This option controls how nsuccessful authentication attempts are mapped
    # to anonymous connections
    map to guest = bad user


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

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

    # 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

    # Allow users who've been granted usershare privileges to create
    # public shares, not just authenticated ones

      usershare allow guests = yes
    
    

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

    # Un-comment the following (and tweak the other settings below to suit)
    # to enable the default home directory shares. This will share each
    # user's home directory as \\server\username

    [homes]
    comment = Home Directories
    browseable = no

    ## 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. Un-comment the following parameter
    # to make 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
    #
    ## is mounted on /cdrom
    #

    preexec = /bin/mount /cdrom
    postexec = /bin/umount /cdrom

    $ /etc/init.d/samba restart
    $ smbpasswd -w 12345
    la contraseña se guarda en secrets.tdb

    $ reboot now

    Configuramos los SMBLDAP-TOOLS que son los scripts para la gestion de LDAP
    $ cd /usr/share/doc/smbldap-tools/examples/
    $ cp smbldap_bind.conf /etc/smbldap-tools/
    $ cp smbldap.conf.gz /etc/smbldap-tools/
    $ gzip -d /etc/smbldap-tools/smbldap.conf.gz

    $ cd /etc/smbldap-tools/
    $ net getlocalsid
    SID for domain MRLDAP is: S-1-5-21-1445362342-3606539027-2252629484

    Editamos el fichero
    $ vi /etc/smbldap-tools/smbldap.conf
    # $Source: $
    # $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-1976967689-3255277978-196997638"

    # Domain name the Samba server is in charged.
    # If not defined, parameter is taking from smb.conf configuration file
    # Ex: sambaDomain="IDEALX-NT"
    sambaDomain="VABLOM"

    ##############################################################################
    #
    # 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
    #
    # $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-1976967689-3255277978-196997638"

    # Domain name the Samba server is in charged.
    # If not defined, parameter is taking from smb.conf configuration file
    # Ex: sambaDomain="IDEALX-NT"
    sambaDomain="LANVA"

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

    # Notes: to use to dual ldap servers backend for Samba, you must 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="require"

    # CA certificate
    # see "man Net::LDAP" in start_tls section for more details
    cafile="/etc/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/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/smbldap-tools/smbldap-tools.key"

    # LDAP Suffix
    # Ex: suffix=dc=IDEALX,dc=ORG
    suffix="dc=vablom,dc=lan"

    # 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=Computers,${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=${sambaDomain},${suffix}"

    # Default scope Used
    scope="sub"

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

    # 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="/ldaphome/%U"
    # Default mode used for user homeDirectory
    userHomeDirectoryMode="700"

    # Gecos
    userGecos="System User"

    # Default User (POSIX and Samba) GID
    defaultUserGid="513"

    # Default Computer (Samba) GID
    defaultComputerGid="515"

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

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

    1. Ex: userHomeDrive="H:"
    userHomeDrive=

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

    # Domain appended to the users "mail"-attribute
    # when smbldap-useradd -M is used
    # Ex: mailDomain="idealx.com"
    mailDomain="lanva"

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

    Editamos otro fichero
    $ vi /etc/smbldap-tools/smbldap_bind.conf
    ############################
    # Credential Configuration #
    ############################
    # Notes: you can specify two differents configuration if you use a
    # master ldap for writing access and a slave ldap server for reading access
    # By default, we will use the same DN (so it will work for standard Samba
    # release)
    slaveDN="cn=admin,dc=lanva"
    slavePw="12345"
    masterDN="cn=admin,dc=lanva"
    masterPw="12345"

    Cambiamos los permisos a los ficheros
    $ chmod 0644 /etc/smbldap-tools/smbldap.conf
    $ chmod 0600 /etc/smbldap-tools/smbldap_bind.conf

    Ahora creamos los usuarios y los grupos dentro de LDAP
    $ smbldap-populate -u 30000 -g 30000

    Verificamos los cambios en ldap
    $ ldapsearch -x -b dc=lanva | less

    añadimos usuarios a ldap
    $ smbldap-useradd -a -m -M jcga -c "juan carlos" jcga
    Explicacion de las opciones
    -a allows Windows as well as Linux login
    -m makes a home directory, leave this off if you do not need local access. PAM will be configured to automatically create a home directory.
    -M sets up the username part of their email address
    -c specifies their full name

    Cambio la contraseña
    $ smbldap-passwd jcga

    Nos metemos con la autenticacion
    $ apt-get install auth-client-config libpam-ldap libnss-ldap

    Las preguntas son:

    LDAP server Uniform Resource Identifier
    
    ldapi://127.0.0.1/
    
    


    Distinguished name of the search base:
    
    dc=vablom,dc=lan
    
    


    Ldap version:
    
    3
    
    


    Make local root database admin:
    
    YES
    
    


    Does the LDAP database require login?
    
    NO
    
    


    Ldap account for root:
    
    cn=admin,dc=vablom,dc=lan
    
    


    Ldap root account password
    
    *****
    
    
    
    
    Hacemos un backup del fichero antes de editar
    $ cp /etc/ldap.conf /etc/ldap.conf.original

    $ vim /etc/ldap.conf
    ###DEBCONF###
    ##
    ## Configuration of this file will be managed by debconf as long as the
    ## first line of the file says '###DEBCONF###'
    ##
    ## You should use dpkg-reconfigure to configure this file via debconf
    ##

    #
    # @(#)$Id: ldap.conf,v 1.38 2006/05/15 08:13:31 lukeh Exp $
    #
    # This is the configuration file for the LDAP nameservice
    # switch library and the LDAP PAM module.
    #
    # PADL Software
    # http://www.padl.com
    #

    # Your LDAP server. Must be resolvable without using LDAP.
    # Multiple hosts may be specified, each separated by a
    # space. How long nss_ldap takes to failover depends on
    # whether your LDAP client library supports configurable
    # network or connect timeouts (see bind_timelimit).
    host 127.0.0.1

    # The distinguished name of the search base.
    base dc=vablom,dc=lan

    # Another way to specify your LDAP server is to provide an
    uri ldap://127.0.0.1/
    # Unix Domain Sockets to connect to a local LDAP Server.
    #uri ldap://127.0.0.1/
    #uri ldaps://127.0.0.1/
    #uri ldapi://%2fvar%2frun%2fldapi_sock/
    # Note: %2f encodes the '/' used as directory separator

    # The LDAP version to use (defaults to 3
    # if supported by client library)
    ldap_version 3

    # The distinguished name to bind to the server with.
    # Optional: default is to bind anonymously.
    #binddn cn=proxyuser,dc=padl,dc=com

    # The credentials to bind with.
    # Optional: default is no credential.
    #bindpw secret

    # The distinguished name to bind to the server with
    # if the effective user ID is root. Password is
    # stored in /etc/ldap.secret (mode 600)
    rootbinddn cn=admin,dc=vablom,dc=lan

    # The port.
    # Optional: default is 389.
    #port 389

    # The search scope.
    #scope sub
    #scope one
    #scope base

    # Search timelimit
    #timelimit 30

    # Bind/connect timelimit
    #bind_timelimit 30

    # Reconnect policy: hard (default) will retry connecting to
    # the software with exponential backoff, soft will fail
    # immediately.
    bind_policy soft

    # Idle timelimit; client will close connections
    # (nss_ldap only) if the server has not been contacted
    # for the number of seconds specified below.
    #idle_timelimit 3600

    # Filter to AND with uid=%s
    #pam_filter objectclass=account

    # The user ID attribute (defaults to uid)
    #pam_login_attribute uid

    # Search the root DSE for the password policy (works
    # with Netscape Directory Server)
    #pam_lookup_policy yes

    # Check the 'host' attribute for access control
    # Default is no; if set to yes, and user has no
    # value for the host attribute, and pam_ldap is
    # configured for account management (authorization)
    # then the user will not be allowed to login.
    #pam_check_host_attr yes

    # Check the 'authorizedService' attribute for access
    # control
    # Default is no; if set to yes, and the user has no
    # value for the authorizedService attribute, and
    # pam_ldap is configured for account management
    # (authorization) then the user will not be allowed
    # to login.
    #pam_check_service_attr yes

    # Group to enforce membership of
    #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com

    # Group member attribute
    #pam_member_attribute uniquemember

    # Specify a minium or maximum UID number allowed
    #pam_min_uid 0
    #pam_max_uid 0

    # Template login attribute, default template user
    # (can be overriden by value of former attribute
    # in user's entry)
    #pam_login_attribute userPrincipalName
    #pam_template_login_attribute uid
    #pam_template_login nobody

    # HEADS UP: the pam_crypt, pam_nds_passwd,
    # and pam_ad_passwd options are no
    # longer supported.
    #
    # Do not hash the password at all; presume
    # the directory server will do it, if
    # necessary. This is the default.
    pam_password md5

    # Hash password locally; required for University of
    # Michigan LDAP server, and works with Netscape
    # Directory Server if you're using the UNIX-Crypt
    # hash mechanism and not using the NT Synchronization
    # service.
    #pam_password crypt

    # Remove old password first, then update in
    # cleartext. Necessary for use with Novell
    # Directory Services (NDS)
    #pam_password clear_remove_old
    #pam_password nds

    # RACF is an alias for the above. For use with
    # IBM RACF
    #pam_password racf

    # Update Active Directory password, by
    # creating Unicode password and updating
    # unicodePwd attribute.
    #pam_password ad

    # Use the OpenLDAP password change
    # extended operation to update the password.
    #pam_password exop

    # Redirect users to a URL or somesuch on password
    # changes.
    #pam_password_prohibit_message Please visit http://internal to change your password.

    # RFC2307bis naming contexts
    # Syntax:
    # nss_base_XXX base?scope?filter
    # where scope is {base,one,sub}
    # and filter is a filter to be &'d with the
    # default filter.
    #You can omit the suffix eg:
    # nss_base_passwd ou=People,
    # to append the default base DN but this
    # may incur a small performance impact.
    #nss_base_passwd ou=People,dc=padl,dc=com?one
    #nss_base_shadow ou=People,dc=padl,dc=com?one
    #nss_base_group ou=Group,dc=padl,dc=com?one
    #nss_base_hosts ou=Hosts,dc=padl,dc=com?one
    #nss_base_services ou=Services,dc=padl,dc=com?one
    #nss_base_networks ou=Networks,dc=padl,dc=com?one
    #nss_base_protocols ou=Protocols,dc=padl,dc=com?one
    #nss_base_rpc ou=Rpc,dc=padl,dc=com?one
    #nss_base_ethers ou=Ethers,dc=padl,dc=com?one
    #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne
    #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one
    #nss_base_aliases ou=Aliases,dc=padl,dc=com?one
    #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one

    # attribute/objectclass mapping
    # Syntax:
    #nss_map_attribute rfc2307attribute mapped_attribute
    #nss_map_objectclass rfc2307objectclass mapped_objectclass

    # configure --enable-nds is no longer supported.
    # NDS mappings
    #nss_map_attribute uniqueMember member

    # Services for UNIX 3.5 mappings
    #nss_map_objectclass posixAccount User
    #nss_map_objectclass shadowAccount User
    #nss_map_attribute uid msSFU30Name
    #nss_map_attribute uniqueMember msSFU30PosixMember
    #nss_map_attribute userPassword msSFU30Password
    #nss_map_attribute homeDirectory msSFU30HomeDirectory
    #nss_map_attribute homeDirectory msSFUHomeDirectory
    #nss_map_objectclass posixGroup Group
    #pam_login_attribute msSFU30Name
    #pam_filter objectclass=User
    #pam_password ad

    # configure --enable-mssfu-schema is no longer supported.
    # Services for UNIX 2.0 mappings
    #nss_map_objectclass posixAccount User
    #nss_map_objectclass shadowAccount user
    #nss_map_attribute uid msSFUName
    #nss_map_attribute uniqueMember posixMember
    #nss_map_attribute userPassword msSFUPassword
    #nss_map_attribute homeDirectory msSFUHomeDirectory
    #nss_map_attribute shadowLastChange pwdLastSet
    #nss_map_objectclass posixGroup Group
    #nss_map_attribute cn msSFUName
    #pam_login_attribute msSFUName
    #pam_filter objectclass=User
    #pam_password ad

    # RFC 2307 (AD) mappings
    #nss_map_objectclass posixAccount user
    #nss_map_objectclass shadowAccount user
    #nss_map_attribute uid sAMAccountName
    #nss_map_attribute homeDirectory unixHomeDirectory
    #nss_map_attribute shadowLastChange pwdLastSet
    #nss_map_objectclass posixGroup group
    #nss_map_attribute uniqueMember member
    #pam_login_attribute sAMAccountName
    #pam_filter objectclass=User
    #pam_password ad

    # configure --enable-authpassword is no longer supported
    # AuthPassword mappings
    #nss_map_attribute userPassword authPassword

    # AIX SecureWay mappings
    #nss_map_objectclass posixAccount aixAccount
    #nss_base_passwd ou=aixaccount,?one
    #nss_map_attribute uid userName
    #nss_map_attribute gidNumber gid
    #nss_map_attribute uidNumber uid
    #nss_map_attribute userPassword passwordChar
    #nss_map_objectclass posixGroup aixAccessGroup
    #nss_base_group ou=aixgroup,?one
    #nss_map_attribute cn groupName
    #nss_map_attribute uniqueMember member
    #pam_login_attribute userName
    #pam_filter objectclass=aixAccount
    #pam_password clear

    # Netscape SDK LDAPS
    #ssl on

    # Netscape SDK SSL options
    #sslpath /etc/ssl/certs

    # OpenLDAP SSL mechanism
    # start_tls mechanism uses the normal LDAP port, LDAPS typically 636
    #ssl start_tls
    #ssl on

    # OpenLDAP SSL options
    # Require and verify server certificate (yes/no)
    # Default is to use libldap's default behavior, which can be configured in
    # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for
    # OpenLDAP 2.0 and earlier is "no", for 2.1 and later is "yes".
    #tls_checkpeer yes

    # CA certificates for server certificate verification
    # At least one of these are required if tls_checkpeer is "yes"
    #tls_cacertfile /etc/ssl/ca.cert
    #tls_cacertdir /etc/ssl/certs

    # Seed the PRNG if /dev/urandom is not provided
    #tls_randfile /var/run/egd-pool

    # SSL cipher suite
    # See man ciphers for syntax
    #tls_ciphers TLSv1

    # Client certificate and key
    # Use these, if your server requires client authentication.
    #tls_cert
    #tls_key

    # Disable SASL security layers. This is needed for AD.
    #sasl_secprops maxssf=0

    # Override the default Kerberos ticket cache location.
    #krb5_ccname FILE:/etc/.ldapcache

    # SASL mechanism for PAM authentication - use is experimental
    # at present and does not support password policy control
    #pam_sasl_mech DIGEST-MD5
    nss_initgroups_ignoreusers backup,bin,daemon,dhcp,games,gnats,irc,klog,libuuid,list,lp,mail,man,news,ntp,openldap,postfix,proxy,root,sshd,sync,sys,syslog,uucp,www-data


    $ cp /etc/ldap/ldap.conf /etc/ldap/ldap.conf.original
    $ cp /etc/ldap.conf /etc/ldap/ldap.conf

    $ vim /etc/auth-client-config/profile.d/open_ldap
    [open_ldap]
    nss_passwd=passwd: compat ldap
    nss_group=group: compat ldap
    nss_shadow=shadow: compat ldap
    pam_auth=auth required pam_env.so

    auth       sufficient   pam_unix.so likeauth nullok
    
    auth       sufficient   pam_ldap.so use_first_pass
    
    auth       required     pam_deny.so
    
    
    pam_account=account sufficient pam_unix.so

    account    sufficient   pam_ldap.so
    
    account    required     pam_deny.so
    
    
    pam_password=password sufficient pam_unix.so nullok md5 shadow use_authtok

    password   sufficient   pam_ldap.so use_first_pass
    
    password   required     pam_deny.so
    
    
    pam_session=session required pam_limits.so

    session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0077
    
    session    required     pam_unix.so
    
    session    optional     pam_ldap.so
    
    


    $ cp /etc/nsswitch.conf /etc/nsswitch.conf.original
    $ cd /etc/pam.d/
    $ mkdir backup
    $ cp * backup/

    Para usar LDAP como autenticacion de clientes tenemos que usar este comando
    $ auth-client-config -a -p open_ldap

    $ reboot now





    [editar]

    Instalar el servidor BIND DNS

    $ apt-get install bind9
    Instalamos un servidor NFS
    $ apt-get install nfs-kernel-server nfs-common portmap
    $ dpkg-reconfigure portmap

    Deberia enlazarse pormat a la direccion de la interfaz de red local?
    
    NO
    
    

    Se reinicia
    $ /etc/init.d/portmap restart

    $ vim /etc/exports
    # /etc/exports: the access control list for filesystems which may be exported
    # to NFS clients. See exports(5).
    #
    # Example for NFSv2 and NFSv3:
    # /srv/homes hostname1(rw,sync) hostname2(ro,sync)
    #
    # Example for NFSv4:
    # /srv/nfs4 gss/krb5i(rw,sync,fsid=0,crossmnt)
    # /srv/nfs4/homes gss/krb5i(rw,sync)
    #
    /ldaphome *(rw,async)

    Reiniciamos el servicio NFS
    $ /etc/init.d/nfs-kernel-server restart


    [editar]

    Instalamos webmin

    Descargamos el fichero de instalacion. Podemos conectarnos a la pagina web http://superb-east.dl.sourceforge.net/sourceforge/webadmin/ antes para ver la version por la que van
    $ wget http://superb-east.dl.sourceforge.net/sourceforge/webadmin/webmin_1.400_all.deb
    Necesitamos instalar algunos paquetes
    $ apt-get install openssl libauthen-pam-perl libio-pty-perl libmd5-perl libnet-ssleay-perl
    Instalamos el fichero descargado
    $ dpkg -i webmin_1.400_all.deb
    "Webmin install complete. You can now login to https://mrldap.lanva:10000/
    as root with your root password,
    or as any user who can use sudo to run commands as root."

    Configure BIND9 and the Primary DNS Zone

    Top

    We now want to create our DNS zone so that we are in charge of it and can make use of it. I prefer using a GUI to do this as opposed to editing the zone files.

    In a web browser navigate to: https://192.168.0.60:10000 (Please use the IP address that YOU assigned to your server.)
    Login as "sysadmin" and "12345
    El menu que seguimos es
    Servers > BIND DNS Server
    Under "Existing DNS Zones" click "Create master zone"

    Enter in the following information (customize to your needs!):

    Zone type: Forward (Names to Addresses)
    Domain name / Network: example.local
    Records file: Automatic
    Master server: dc01-ubuntu.example.local
    Email address: sysadmin@example.local

    Click "Create" button

    Click "Apply Changes" button

    Click "Address (0)" at the top

    Fill in with this information (customize to your needs!):

    Name: dc01-ubuntu
    Address: 192.168.0.60
    Click "Create" button
    Click "Return to record types"

    Click "Apply Changes" button.

    Configure the Server to use Itself for DNS

    Top

    DNS doesn't do a whole lot of good if we don't use it. In this section we point our /etc/resolv.conf file to ourselves. I also recommend leaving in a known working DNS server as the seconday source just in case something screws up. In some of my trials I did notice that the server would hang trying to start BIND9.

    Backup the /etc/resolv.conf file before editing it!

    $ cp /etc/resolv.conf /etc/resolv.conf.original

    Open the /etc/resolv.conf file for editing:

    $ vim /etc/resolv.conf
    search lanva
    nameserver 192.168.37.100


    $ reboot now

    En este punto hemos sido capaces de meter una maquina windows en el dominio vablom con el usuario (vablom\root) y hemos iniciado sesion con un usuario ldap creado antes (jcgutierrez)
    solo hemos puesto una direccion dns 192.168.37.100 y una ip fija local 192.168.37.10


    [editar]

    Instalamos phpldapadmin

    $apt-get install apache2 php5 php5-ldap ldap-utils db4.2-util gq ldap-account-manager phpldapadmin

    $vim /etc/apache2/httpd.conf
    ServerName mrldap.lanva

    $/etc/init.d/apache2 restart

    Editamos esta linea para que funcione phpldapadmin
    $vim /etc/php5/apache2/php.ini

    memory_limit = 128M 
    
    

    $/etc/init.d/apache2 restart

    Configure SAMBA to Share /ldaphome
    Editamos /etc/samba/smb.conf
    Add the following lines to the bottom of the /etc/samba/smb.conf file:


    1. LDAPHOME share definition
    [ldaphome]
    path = /ldaphome
    writeable = yes
    browseable = yes
    security mask = 0777
    force security mode = 0
    directory security mask = 0777
    force directory security mode = 0

    $vi /etc/samba/smb.conf
    Configure SAMBA - Enable the 'Netlogon' Share

    Top

    Create a directory for the netlogon share to use:

    mkdir /home/samba
    mkdir /home/samba/netlogon

    Open the file /etc/samba/smb.conf for editing:

    vim /etc/samba/smb.conf

    Uncomment the netlogon lines by changing:


    [netlogon]
    comment = Network Logon Service
    path = /home/samba/netlogon
    guest ok = yes
    writable = no
    share modes = no

    To:

    [netlogon]

    comment = Network Logon Service
    
      path = /home/samba/netlogon
    
      guest ok = yes
    
      writable = no
    
      share modes = no
    
    

    Create a Simple Windows Logon Script

    Top

    We will create the logon script in the new Netlogon shared folder.

    vim /home/samba/netlogon/allusers.bat
    Copy and paste the following lines into that new file. Customize as necessary!

    @echo off
    REM # SYNC THE TIME WITH THE SERVER
    net time \\mrldap.lanva /set /y
    REM # DELETE ALL MAPPED DRIVES
    net use h: /delete
    REM # MAP ALL NECESSARY DRIVES
    net use h: "\\mrldap.lanva\ldaphome\%username%"

    We need to install an extra program to convert this file to a file that Windows can use.

    $apt-get install flip

    Use this program to convert the file:

    $flip -m /home/samba/netlogon/allusers.bat

    Now we need to tell Samba about this logon script.

    $vim /etc/samba/smb.conf

    Change the line: ; logon script = logon.cmd

    To: logon script = allusers.bat

    Please note that I removed the semicolon (;) and changed the name of the file.

    Now when Windows clients log in to the domain the script will run.

    Para que el usuario pueda acceder necesitamos cambiar los permisos de su directorio home

    $sudo chown -R alej:Domain\ Users /ldaphome/alej/



    $reboot now



    [editar]

    Instalacion de NFS en un cliente ubuntu

    $apt-get install portmap nfs-common
    $/etc/init.d/portmap restart
    $/etc/init.d/nfs-common restart

    Este manual esta sacado de http://www.rrcomputerconsulting.com/view.php?article_id=3





    [editar]

    Generar entidad certificadora personal con OpenSSL


    Gracias a OpenSSL podemos tener comunicación encriptadas entre diferentes máquinas utilizando criptología asimetrica, es decir, claves públicas y privadas. Además, es posible montar entidades certificadoras que se encarguen de asegurar que una llave pertenece a quien dice pertenecer, de esta forma conseguimos encriptación y autentificación.

    Las entidades certificadoras actuales cobrán por el servicio de firma de llaves y no suele ser precisamente asequible. Por otro lado, montar una entidad certificadora oficial también resulta muy costoso ya que se demandan unas ciertas garantias que destrás del negocio hay una cierta seguridad. Por tanto, es habitual que los administradores de pequeñas redes se creen su propios certificados para firmar sus claves. De esta forma podremos disponer de comunicaciones encriptadas sin necesidad de entidades certificadoras.

    Estas entidades oficiales pagan para que aparezcan por defecto sus certificados en navegadores como Mozilla Firefox o Internet Explorer. De esta forma el propio navegador puede comprobar automáticamente que cuando se conecta a un sitio seguro, el certificado que recibe ha sido realmente firmado por una entidad oficial. Eso implica que nuestros certificados no serán reconocidos automáticamente por los navegadores a no ser que los añadamos manualmente, el único inconveniente que aporta esto es que el navegador mostrará un aviso extra al usuario (dependiendo de la configuración) advirtiendo que no reconoce la entidad certificadora.

    Vamos a ver como configurar OpenSSL para montar nuestro servicio de certificación personal. Lo primero es tener OpenSSL instalado en el sistema (aptitude install openssl), la configuración la encontraremos en “/etc/ssl” y será allí donde editemos el fichero “openssl.cnf”. Os pongo un extracto del archivo con lo más importante:

    ...

    [ ca ]
    default_ca = CA_default

    [ CA_default ]
    dir = /etc/ssl/marblestationCA # Where everything is kept
    certs = $dir/certs # Where the issued certs are kept
    crl_dir = $dir/crl # Where the issued crl are kept
    database = $dir/index.txt # database index file.
    new_certs_dir = $dir/newcerts # default place for new certs

    certificate = $dir/MSca.crt # The CA certificate
    serial = $dir/serial # The current serial number
    crl = $dir/crl.pem # The current CR

    private_key = $dir/private/MSca.key # The private key

    default_days = 3650

    ...

    En esta sección del fichero se define donde se va a almacenar toda la información, en mi caso lo guardaré todo en “/etc/ssl/marblestationCA”. Dentro de ese directorio creare toda una serie de subdirectorios que guardaran la información necesaria e imprescindible como por ejemplo el certificado o clave de la entidad (tanto privada como pública). También he puesto que por defecto se generen claves con un periodo de caducidad de 10 años ya que quiero olvidarme de renovar por una buena temporada.

    Tendremos que crear la estructura de directorios y ficheros:

    mkdir /etc/ssl/marblestationCA/
    mkdir /etc/ssl/marblestationCA/certs
    mkdir /etc/ssl/marblestationCA/private
    mkdir /etc/ssl/marblestationCA/newcerts
    mkdir /etc/ssl/marblestationCA/crl
    echo "01" > /etc/ssl/marblestationCA/serial
    touch /etc/ssl/marblestationCA/index.txt

    A continuación crearemos la clave pública/privada de nuestra entidad certificadora:

    cd /etc/ssl/marblestationCA/
    openssl req -nodes -new -x509 -keyout private/MSca.key -out MSca.crt -days 3650

    Es importante especificar el mismo nombre para la clave privada (MSca.key) y pública (MSca.crt) que pusimos en nuestra configuración de OpenSSL. En cuanto a las preguntas que nos haga para generar la clave:

    Country Name (2 letter code) [ES]:
    State or Province Name (full name) [Catalunya]:
    Locality Name (eg, city) []:Tarragona
    Organization Name (eg, company) [Marble Station]:
    Organizational Unit Name (eg, section) []:Ejemplo
    Common Name (eg, YOUR name) []:midominio.com
    Email Address []:admin@midominio.com

    Cabe destacar que en “Common Name” debemos poner el nombre de dominio correspondiente a la máquina donde estará la entidad certificadora.

    Ahora ya tenemos nuestro servicio de certificaciones montado, las claves que hemos generado nos serviran para firmar terceras claves que serán utilizadas por ejemplo por los diferentes ordenadores de nuestra red.

    Imaginemos que en el mismo servidor donde hemos montado nuestros certificados para firmar, tenemos un servidor web Apache seguro (SSL) y necesitamos un certificado firmado por nuestra entidad personal. Lo primero que tendremos que hacer será crear una petición de certificado junto a una clave privada:

    openssl req -nodes -new -keyout midominio.key -out midominio.csr

    Nos volverá a realizar las respectivas preguntas, debemos responder acorde para la máquina donde se va a utilizar la clave. En “midominio.key” tendremos la clave privada generada y en “midominio.csr” la petición de certificado. La entidad certificadora solo necesita acceso al segundo, vamos a generar ahora el certificado firmado por nuestra entidad personal:

    openssl ca -out midominio.crt -in midominio.csr

    Esto generará el archivo “midominio.crt” con el certificado firmado listo para ser usado por el solicitante. Además se guardará información referente al certificado firmado en “/etc/ssl/marblestationCA/” de forma que siempre tendremos un listado de todo lo que hemos firmado, también podremos revocar firmas (man openssl) en caso de que sea necesario.

    Como comenté, ibamos a utilizarlo para nuestro servidor Apache pero también podria ser compartido por otros servicios en la misma máquina, como por ejemplo un servicio de POP3/IMAP (recomiendo dovecot) y SMTP (recomiendo exim). Es importante asegurarnos que estas aplicaciones tengan acceso de lectura al certificado y que el resto de usuarios del sistema no puedan leerlo (sobretodo la llave privada .key).

    Habitualmente suelo ubicar los certificados de servicios en /etc/ssl/certs y /etc/ssl/private de la máquina que los vaya a usar:

    mv midominio.crt /etc/ssl/certs
    mv midominio.key /etc/ssl/private

    La petición de certificado midominio.csr no lo vamos a necesitar más puesto que ya hemos generado el certificado.

    Ahora podriamos seguir generando nuevos certificados para después firmarlos y repartirlos entre las máquinas de nuestra red que dispongan de servicios con conexión segura.

    En resumen, hemos llevado a cabo dos acciones:

    1. Generación de los certificados de nuestra entidad certificadora no oficial (clave pública “MSca.crt” y clave privada “MSca.key”), se guardará toda la información en “/etc/ssl/marblestationCA/”
    2. Generación de certificados firmados para los servicios o máquinas de nuestra red, se guardará automáticamente la información necesaria en “/etc/ssl/marblestationCA/” y la clave pública/certificado firmado se guardarán en la máquina que los vaya a usar (”/etc/ssl/certs”, “/etc/ssl/private” respectivamente):

    1. Generación de una clave privada (midominio.key) con peticion de certificado (midominio.csr).
    
      2. Firma de la petición con nuestro certificado de entidad.
    
      3. El solicitante recibirá su certificado firmado (midominio.crt) que usará en conjunto con su clave privada para su servicio (podremos eliminar la petición midominio.csr).
    
    

    Podemos revisar el contenido del certificado con este comando:


    $ openssl x509 -text -in /etc/ssl/certs/lanva.crt
    
    

    Configuración

    Hay que indicarle al servidor de ldap, /etc/ldap/slapd.conf esto:

    TLSCipherSuite HIGH:MEDIUM:+SSLv2:RSA
    TLSCACertificateFile /etc/openldap/cacerts/slapd.crt
    TLSCertificateFile /etc/openldap/cacerts/slapd.crt
    TLSCertificateKeyFile /etc/openldap/cacerts/slapd.key
    referral ldaps://midominio.org


    Al cliente, /etc/ldap/slapd.conf:


    TLS_CACERT /etc/ssl/certs/cacert.pem
    
    

    y en /etc/libnss-ldap.conf:


    ssl start_tls
    
       tls_cacertfile /etc/ssl/certs/cacert.pem
    
       tls_ciphers HIGH:MEDIUM:+SSLv2:RSA
    
    

    Es indispensable que todos los ficheros de claves y certificados tengan permisos de acceso de solo lectura para el usuario ldap:

    chown ldap.ldap /etc/openldap/cacerts/slapd.*
    chmod 400 /etc/openldap/cacerts/slapd.*

    Parámetros de /etc/openldap/slapd.conf.

    Se deben descomentar los parámetros TLSCACertificateFile, TLSCertificateFile y TLSCertificateKeyFile establecendo las rutas hacia el certificado y clave. Opcionalmente se puede descomentar la directiva referral para indicar el URI (Uniform Resource Identifier o Identificador Uniforme de Recursos) del servicio de directorio superior como ldaps en lugar de ldap.

    A fin de que surtan efecto los cambios, es necesario reiniciar el servicio ldap.


    [editar]

    POSFIX Y SPAMASSASIN

    Postfix is a widely used mail transport agent (MTA) used on many popular Unix/Linux systems. Nowadays, networks are overwhelmed by SPAM mail, fortunately, there is a way to filter them with software such as spamassassin.
    This articles is not going to go through postfix installation. Instead, you might refer to a previous article on How-to run postfix with virtual domains. 1. Getting Started
    By now, you should have a running SMTP server running postfix. There is a couple of package we need to install: spamassassin and its client spamc
    $sudo apt-get install spamassassin spamc
    spamassassin package includes a daemon which can be called by user programs such as procmail... but can also be integrated into a Mail Transport Agent such as postfix. 2. Using spamassassin as a standalone daemon
    In this part of the tutorial, we are going to make spamassassin run as its own user (default on debian sarge is root), configure some settings and make postfix use spamassassin as an after-queue content filter, which means that the content is going to be filters through spamassassin after postfix has dealt with the delivery. 2.1. Setting up spamassassin
    Okie, so you installed spamassassin from debian repository, on default settings, spamassassin runs as root user and is not started. To avoid that, we are going to create a specific user and group for spamassassin. As root user, run the following commands:
    #groupadd -g 5001 spamd #useradd -u 5001 -g spamd -s /sbin/nologin -d /var/lib/spamassassin spamd #mkdir /var/lib/spamassassin #chown spamd:spamd /var/lib/spamassassin
    Now, we need to change some settings in /etc/default/spamassassin and make sure you get the following values:
    ENABLED=1 SAHOME="/var/lib/spamassassin/" OPTIONS="--create-prefs --max-children 5 --username spamd --helper-home-dir ${SAHOME} -s ${SAHOME}spamd.log" PIDFILE="${SAHOME}spamd.pid"
    What happen here, is that we are going to run spamd daemon as user spamd and make it use its own home dir (/var/lib/spamassassin/) and is going to output its logs in /var/lib/spamassassin/spamd.log 2.2. Configuring spamassassin
    Now, we need to give spamassassin some rules. The default settings are quite fine, but you might tweak them up a bit. So let's edit /etc/spamassassin/local.cf and make it looks like that:
    rewrite_header Subject [***** SPAM _SCORE_ *****] required_score 2.0 #to be able to use _SCORE_ we need report_safe set to 0 #If this option is set to 0, incoming spam is only modified by adding some "X-Spam-" headers and no changes will be made to the body. report_safe 0
    # Enable the Bayes system use_bayes 1 use_bayes_rules 1 # Enable Bayes auto-learning bayes_auto_learn 1
    # Enable or disable network checks skip_rbl_checks 0 use_razor2 0 use_dcc 0 use_pyzor 0
    Here, we set spamassassin' spamd default settings to rewrite email subject to [***** SPAM _SCORE_ *****], where _SCORE_ is the score attributed to the email by spamassassin after running different tests, only if the actual score is greater or equal to 2.0. So email with a score lower than 2 won't be modified.
    To be able to use the _SCORE_ in the rewrite_header directive, we need to set report_safe to 0.
    In the next section, we tell spamassassin to use bayes classifier and to improve itself by auto-learning from the messages it will analyse.
    In the last section, we disable collaborative network such as pyzor, razor2 and dcc. Those collaborative network keep an up-to-date catalogue of know mail checksum to be recognized as spam. Those might be interresting to use, but I'm not going to use them here as I found it took long enough to spamassassin to deal with spams only using it rules.
    Now, start spamd with the following command line:
    #/etc/init.d/spamassassin start
    We are almost done, we still need to configure postfix in such a way that it will pass all mails delivered to local mailboxes to spamassassin. 3. Make Postfix call Spamassassin
    Now, we need to tell postfix to use spamassassin. In our case, spamassassin will be invoked only once postfix has finished with the email.
    To tell postfix to use spamassassin, we are going to edit /etc/postfix/master.cf and change the line:
    smtp inet n - - - - smtpd
    to:
    smtp inet n - - - - smtpd
    -o content_filter=spamassassin
    
    and then, at the end of master.cf, let's add:
    spamassassin unix - n n - - pipe
    user=spamd argv=/usr/bin/spamc -f -e    
           /usr/sbin/sendmail -oi -f ${sender} ${recipient}
    

    and here we go, our spam filter is setted up, we need to reload postfix settings and everything should be ready.
    #/etc/init.d/postfix reload 4. Conclusion
    This is an easy to set up alternative which will filter spams using spamassassin and postfix.
    There is actually other way to do so (which I will cover later on), like using amavis for instance, which will use spamassassin without needing spamassassin daemon (spamd).
    The presented alternative will still send all emails to their recipient (which is something I actually prefer to rejecting and dumping email spotted as spam). One can then make up rule using either its webmail or mail client, filtering all emails having subject like "[***** SPAM" to be moved to a specific place in the client so you can easily move them away from your precious emails, but still in the end, there will be there, so you won't have any emails discarded because they seemed to be spammed when there actually where real important mails.
    In the end, this will behave a bit like famous mail providers such as yahoo, google, hotmail ... do, you will have "Bulk Mails" and "Mails".

    Instalar posfix con dovecot y ldap


    Postfix Virtual Hosting With LDAP Backend With Dovecot As IMAP/POP3 Server On Ubuntu Hardy Heron 8.04 TLS
    I've been running with a MySQL backend for virtual hosting for some time, but when I discovered Phamm and the added FTP feature (amongst others) I decided to switch to LDAP as backend for Postfix with virtual hosting.
    In view of the fact that the installation and configuration guide of Phamm is lacking some basic information it took me quite some time (including crying, swearing, getting depressed, ...) to put it all together and get it working. Long live google to find hints or explanations for problems and configuration issues. Piecing it all together wasn't simple so I would like to share how I configured it and got it all working toghether (as I like), but I think that it will benefit other users as well.
    Software to be used in this how to:
    Postfix (logical), Postfix-ldap, Dovecot IMAP / POP3, Openldap, Apache2, php5-ldap, phpldapadmin and gnarwl.
    Note: this how to also uses dovecot deliver as maildrop agent and dovecot sasl for smtp sasl authentication. For one: postfix maildrop doesn't support ldap and I didn'd want to use courier (maildrop, authdaemon and sasl) if dovecot coud do the trick and also provide sieve support.
    Assumtions:
    This how to assumes the following configurations, if your installtion differs from this, than replace the entries below with your actual configuration.
    Mail delivery (mailboxes) path:
    /home/vmail/domains
    User vmail:
    UID:1000, GID:1000
    User postfix:
    UID: 108, GID:108
    Openldap base dn:
    dc=example,dc=tld
    Openldap admin account:
    cn=admin,dc=example,dc=tld
    Phamm search dn:
    o=hosting,dc=example,dc=tld

    Step 1: Install and configure an ubuntu server
    I recommend following one of the guides below for this (I do not need to rewrite or reinvent what others did bether than me):
    The Perfect Server - Ubuntu Hardy Heron (Ubuntu 8.04 LTS Server)
    or my favourite:
    The Perfect SpamSnake - Ubuntu 8.04 LTS
    In both cases, skip the installtion of the courier packages.
    So let's get started:

    [editar] Instalar postfix-ldap

    $ apt-get install postfix-ldap
    Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes extras:
    openssl openssl-blacklist postfix ssl-cert
    
    Paquetes sugeridos:
    ca-certificates openssl-doc mail-reader postfix-cdb postfix-mysql postfix-pcre postfix-pgsql procmail
     resolvconf sasl2-bin
    
    Se instalarán los siguientes paquetes NUEVOS:
    openssl openssl-blacklist postfix postfix-ldap ssl-cert
    
    0 actualizados, 5 se instalarán, 0 para eliminar y 7 no actualizados. Necesito descargar 7938kB de archivos. After this operation, 16,3MB of additional disk space will be used. ¿Desea continuar [S/n]? s Des:1 http://es.archive.ubuntu.com hardy-updates/main openssl 0.9.8g-4ubuntu3.4 [385kB] Des:2 http://es.archive.ubuntu.com hardy-updates/main openssl-blacklist 0.3.3+0.4-0ubuntu0.8.04.3 [6333kB] Des:3 http://es.archive.ubuntu.com hardy-updates/main ssl-cert 1.0.14-0ubuntu2.1 [12,3kB] Des:4 http://es.archive.ubuntu.com hardy-updates/main postfix 2.5.1-2ubuntu1.2 [1160kB] Des:5 http://es.archive.ubuntu.com hardy-updates/main postfix-ldap 2.5.1-2ubuntu1.2 [46,9kB] Descargados 7938kB en 1min18s (101kB/s) Preconfigurando paquetes ... Seleccionando el paquete openssl previamente no seleccionado. (Leyendo la base de datos ... 16748 ficheros y directorios instalados actualmente.) Desempaquetando openssl (de .../openssl_0.9.8g-4ubuntu3.4_i386.deb) ... Seleccionando el paquete openssl-blacklist previamente no seleccionado. Desempaquetando openssl-blacklist (de .../openssl-blacklist_0.3.3+0.4-0ubuntu0.8.04.3_all.deb) ... Seleccionando el paquete ssl-cert previamente no seleccionado. Desempaquetando ssl-cert (de .../ssl-cert_1.0.14-0ubuntu2.1_all.deb) ... Seleccionando el paquete postfix previamente no seleccionado. Desempaquetando postfix (de .../postfix_2.5.1-2ubuntu1.2_i386.deb) ... Seleccionando el paquete postfix-ldap previamente no seleccionado. Desempaquetando postfix-ldap (de .../postfix-ldap_2.5.1-2ubuntu1.2_i386.deb) ... Configurando openssl (0.9.8g-4ubuntu3.4) ...
    Configurando openssl-blacklist (0.3.3+0.4-0ubuntu0.8.04.3) ... Configurando ssl-cert (1.0.14-0ubuntu2.1) ...
    Configurando postfix (2.5.1-2ubuntu1.2) ... Adding group `postfix' (GID 115) ... Done. Adding system user `postfix' (UID 106) ... Adding new user `postfix' (UID 106) with group `postfix' ... Not creating home directory `/var/spool/postfix'. Creating /etc/postfix/dynamicmaps.cf Adding tcp map entry to /etc/postfix/dynamicmaps.cf Adding group `postdrop' (GID 116) ... Done. setting myhostname: ldap1.blom.lan setting alias maps setting alias database changing /etc/mailname setting myorigin setting destinations: blom.lan, ldap1.blom.lan, localhost.blom.lan, localhost setting relayhost: setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 setting mailbox_size_limit: 0 setting recipient_delimiter: + setting inet_interfaces: all
    Postfix is now set up with a default configuration. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1).
    After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
    Running newaliases
    * Stopping Postfix Mail Transport Agent postfix
      ...done.
    * Starting Postfix Mail Transport Agent postfix
      ...done.
    
    Configurando postfix-ldap (2.5.1-2ubuntu1.2) ... Adding ldap map entry to /etc/postfix/dynamicmaps.cf
    Processing triggers for libc6 ... ldconfig deferred processing now taking place

    [editar] Instalar php5-ldap

    $ apt-get install php5-ldap
    Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes extras:
    apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libpcre3 libpq5
     libxml2 php5-common
    
    Paquetes sugeridos:
    apache2-doc php-pear
    
    Paquetes recomendados
    xml-core
    
    Se instalarán los siguientes paquetes NUEVOS:
    apache2-mpm-prefork apache2-utils apache2.2-common libapache2-mod-php5 libapr1 libaprutil1 libpcre3 libpq5
     libxml2 php5-common php5-ldap
    
    0 actualizados, 11 se instalarán, 0 para eliminar y 7 no actualizados. Necesito descargar 5391kB de archivos. After this operation, 13,9MB of additional disk space will be used. ¿Desea continuar [S/n]? s Des:1 http://es.archive.ubuntu.com hardy/main libapr1 1.2.11-1 [115kB] Des:2 http://es.archive.ubuntu.com hardy-updates/main libpq5 8.3.6-0ubuntu8.04 [287kB] Des:3 http://es.archive.ubuntu.com hardy/main libaprutil1 1.2.12+dfsg-3 [70,0kB] Des:4 http://es.archive.ubuntu.com hardy-updates/main apache2-utils 2.2.8-1ubuntu0.3 [139kB] Des:5 http://es.archive.ubuntu.com hardy-updates/main apache2.2-common 2.2.8-1ubuntu0.3 [754kB] Des:6 http://es.archive.ubuntu.com hardy-updates/main libpcre3 7.4-1ubuntu2.1 [206kB] Des:7 http://es.archive.ubuntu.com hardy-updates/main apache2-mpm-prefork 2.2.8-1ubuntu0.3 [230kB] Des:8 http://es.archive.ubuntu.com hardy-updates/main libxml2 2.6.31.dfsg-2ubuntu1.3 [786kB] Des:9 http://es.archive.ubuntu.com hardy-updates/main php5-common 5.2.4-2ubuntu5.5 [316kB] Des:10 http://es.archive.ubuntu.com hardy-updates/main libapache2-mod-php5 5.2.4-2ubuntu5.5 [2471kB] Des:11 http://es.archive.ubuntu.com hardy-updates/main php5-ldap 5.2.4-2ubuntu5.5 [18,1kB] Descargados 5391kB en 25s (210kB/s) Seleccionando el paquete libapr1 previamente no seleccionado. (Leyendo la base de datos ... 17014 ficheros y directorios instalados actualmente.) Desempaquetando libapr1 (de .../libapr1_1.2.11-1_i386.deb) ... Seleccionando el paquete libpq5 previamente no seleccionado. Desempaquetando libpq5 (de .../libpq5_8.3.6-0ubuntu8.04_i386.deb) ... Seleccionando el paquete libaprutil1 previamente no seleccionado. Desempaquetando libaprutil1 (de .../libaprutil1_1.2.12+dfsg-3_i386.deb) ... Seleccionando el paquete apache2-utils previamente no seleccionado. Desempaquetando apache2-utils (de .../apache2-utils_2.2.8-1ubuntu0.3_i386.deb) ... Seleccionando el paquete apache2.2-common previamente no seleccionado. Desempaquetando apache2.2-common (de .../apache2.2-common_2.2.8-1ubuntu0.3_i386.deb) ... Seleccionando el paquete libpcre3 previamente no seleccionado. Desempaquetando libpcre3 (de .../libpcre3_7.4-1ubuntu2.1_i386.deb) ... Seleccionando el paquete apache2-mpm-prefork previamente no seleccionado. Desempaquetando apache2-mpm-prefork (de .../apache2-mpm-prefork_2.2.8-1ubuntu0.3_i386.deb) ... Seleccionando el paquete libxml2 previamente no seleccionado. Desempaquetando libxml2 (de .../libxml2_2.6.31.dfsg-2ubuntu1.3_i386.deb) ... Seleccionando el paquete php5-common previamente no seleccionado. Desempaquetando php5-common (de .../php5-common_5.2.4-2ubuntu5.5_i386.deb) ... Seleccionando el paquete libapache2-mod-php5 previamente no seleccionado. Desempaquetando libapache2-mod-php5 (de .../libapache2-mod-php5_5.2.4-2ubuntu5.5_i386.deb) ... Seleccionando el paquete php5-ldap previamente no seleccionado. Desempaquetando php5-ldap (de .../php5-ldap_5.2.4-2ubuntu5.5_i386.deb) ... Configurando libapr1 (1.2.11-1) ...
    Configurando libpq5 (8.3.6-0ubuntu8.04) ...
    Configurando libaprutil1 (1.2.12+dfsg-3) ...
    Configurando apache2-utils (2.2.8-1ubuntu0.3) ... Configurando apache2.2-common (2.2.8-1ubuntu0.3) ... Module alias installed; run /etc/init.d/apache2 force-reload to enable. Module autoindex installed; run /etc/init.d/apache2 force-reload to enable. Module dir installed; run /etc/init.d/apache2 force-reload to enable. Module env installed; run /etc/init.d/apache2 force-reload to enable. Module mime installed; run /etc/init.d/apache2 force-reload to enable. Module negotiation installed; run /etc/init.d/apache2 force-reload to enable. Module setenvif installed; run /etc/init.d/apache2 force-reload to enable. Module status installed; run /etc/init.d/apache2 force-reload to enable. Module auth_basic installed; run /etc/init.d/apache2 force-reload to enable. Module authz_default installed; run /etc/init.d/apache2 force-reload to enable. Module authz_user installed; run /etc/init.d/apache2 force-reload to enable. Module authz_groupfile installed; run /etc/init.d/apache2 force-reload to enable. Module authn_file installed; run /etc/init.d/apache2 force-reload to enable. Module authz_host installed; run /etc/init.d/apache2 force-reload to enable.
    Configurando libpcre3 (7.4-1ubuntu2.1) ...
    Configurando apache2-mpm-prefork (2.2.8-1ubuntu0.3) ...
    * Starting web server apache2
      ...done.
    
    Configurando libxml2 (2.6.31.dfsg-2ubuntu1.3) ...
    Configurando php5-common (5.2.4-2ubuntu5.5) ... Configurando libapache2-mod-php5 (5.2.4-2ubuntu5.5) ...
    Creating config file /etc/php5/apache2/php.ini with new version
    * Reloading web server config apache2
      ...done.
    
    Configurando php5-ldap (5.2.4-2ubuntu5.5) ...
    Processing triggers for libc6 ... ldconfig deferred processing now taking place

    [editar] Instalar openldap

    $ apt-get install slapd ldap-utils migrationtools

    Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes extras: libdb4.2 libltdl3 libperl5.8 libslp1 odbcinst1debian1 unixodbc Paquetes sugeridos: openslp-doc slpd libct1 libmyodbc odbc-postgresql Se instalarán los siguientes paquetes NUEVOS: ldap-utils libdb4.2 libltdl3 libperl5.8 libslp1 migrationtools odbcinst1debian1 slapd unixodbc 0 actualizados, 9 se instalarán, 0 para eliminar y 7 no actualizados. Necesito descargar 3145kB de archivos. After this operation, 8040kB of additional disk space will be used. ¿Desea continuar [S/n]? s
    Nos pregunta la contraseña para el administrador: 12345
    y la verificamos: 12345
    
    Des:1 http://es.archive.ubuntu.com hardy/main libdb4.2 4.2.52+dfsg-4 [400kB] Des:2 http://es.archive.ubuntu.com hardy/main libltdl3 1.5.26-1ubuntu1 [178kB] Des:3 http://es.archive.ubuntu.com hardy-updates/main libperl5.8 5.8.8-12ubuntu0.4 [535kB] Des:4 http://es.archive.ubuntu.com hardy/main libslp1 1.2.1-7.1 [50,1kB] Des:5 http://es.archive.ubuntu.com hardy/main odbcinst1debian1 2.2.11-16build1 [66,2kB] Des:6 http://es.archive.ubuntu.com hardy/main unixodbc 2.2.11-16build1 [289kB] Des:7 http://es.archive.ubuntu.com hardy-updates/main slapd 2.4.9-0ubuntu0.8.04.2 [1355kB] Des:8 http://es.archive.ubuntu.com hardy-updates/main ldap-utils 2.4.9-0ubuntu0.8.04.2 [246kB] Des:9 http://es.archive.ubuntu.com hardy/main migrationtools 47-3ubuntu2 [26,8kB] Descargados 3145kB en 5s (550kB/s) Preconfigurando paquetes ... Seleccionando el paquete libdb4.2 previamente no seleccionado. (Leyendo la base de datos ... 17627 ficheros y directorios instalados actualmente.) Desempaquetando libdb4.2 (de .../libdb4.2_4.2.52+dfsg-4_i386.deb) ... Seleccionando el paquete libltdl3 previamente no seleccionado. Desempaquetando libltdl3 (de .../libltdl3_1.5.26-1ubuntu1_i386.deb) ... Seleccionando el paquete libperl5.8 previamente no seleccionado. Desempaquetando libperl5.8 (de .../libperl5.8_5.8.8-12ubuntu0.4_i386.deb) ... Seleccionando el paquete libslp1 previamente no seleccionado. Desempaquetando libslp1 (de .../libslp1_1.2.1-7.1_i386.deb) ... Seleccionando el paquete odbcinst1debian1 previamente no seleccionado. Desempaquetando odbcinst1debian1 (de .../odbcinst1debian1_2.2.11-16build1_i386.deb) ... Seleccionando el paquete unixodbc previamente no seleccionado. Desempaquetando unixodbc (de .../unixodbc_2.2.11-16build1_i386.deb) ... Seleccionando el paquete slapd previamente no seleccionado. Desempaquetando slapd (de .../slapd_2.4.9-0ubuntu0.8.04.2_i386.deb) ... Seleccionando el paquete ldap-utils previamente no seleccionado. Desempaquetando ldap-utils (de .../ldap-utils_2.4.9-0ubuntu0.8.04.2_i386.deb) ... Seleccionando el paquete migrationtools previamente no seleccionado. Desempaquetando migrationtools (de .../migrationtools_47-3ubuntu2_all.deb) ... Configurando libdb4.2 (4.2.52+dfsg-4) ... Configurando libltdl3 (1.5.26-1ubuntu1) ...
    Configurando libperl5.8 (5.8.8-12ubuntu0.4) ...
    Configurando libslp1 (1.2.1-7.1) ...
    Configurando odbcinst1debian1 (2.2.11-16build1) ...
    Configurando unixodbc (2.2.11-16build1) ...
    Configurando slapd (2.4.9-0ubuntu0.8.04.2) ...
    Creating new user openldap... done.
    Creating initial slapd configuration... done.
    Creating initial LDAP directory... done.
    
    Reloading AppArmor profiles : done. Starting OpenLDAP: slapd.
    Configurando ldap-utils (2.4.9-0ubuntu0.8.04.2) ... Configurando migrationtools (47-3ubuntu2) ... Processing triggers for libc6 ... ldconfig deferred processing now taking place
    Hacemos la configuracion para ldap
    $dpkg-reconfigure slapd

    Desea omitir la configuracion del servidor OpenLDAp?
    NO
    


    DNS domain name
    blom.lan
    


    Organization name:
    blom.lan
    


    Contraseña administrador:
    12345
    Verificacion de contraseña:
    12345
    


    Database backend to use: BDB
    


    Desea que se borre la base de datos cuando se purgue el paquete slapd?
    NO
    


    Desea mover la base de datos antigua:
    YES
    


    Allow LDAPv2 protocol
    NO
    

    Stopping OpenLDAP: slapd. Moving old database directory to /var/backups: - directory unknown... done. Creating initial slapd configuration... done. Creating initial LDAP directory... done. Reloading AppArmor profiles : done. Starting OpenLDAP: slapd.

    [editar] Instalar apache y phpldapadmin

    $ apt-get install apache2
    Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes NUEVOS:
    apache2
    
    0 actualizados, 1 se instalarán, 0 para eliminar y 7 no actualizados. Necesito descargar 44,6kB de archivos. After this operation, 102kB of additional disk space will be used. Des:1 http://es.archive.ubuntu.com hardy-updates/main apache2 2.2.8-1ubuntu0.3 [44,6kB] Descargados 44,6kB en 0s (83,2kB/s) Seleccionando el paquete apache2 previamente no seleccionado. (Leyendo la base de datos ... 17968 ficheros y directorios instalados actualmente.) Desempaquetando apache2 (de .../apache2_2.2.8-1ubuntu0.3_all.deb) ... Configurando apache2 (2.2.8-1ubuntu0.3) ...
    $ apt-get install phpldapadmin
    Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Se instalarán los siguientes paquetes NUEVOS:
    phpldapadmin
    
    0 actualizados, 1 se instalarán, 0 para eliminar y 7 no actualizados. Necesito descargar 922kB de archivos. After this operation, 4805kB of additional disk space will be used. Des:1 http://es.archive.ubuntu.com hardy/universe phpldapadmin 1.1.0.4-2ubuntu1 [922kB] Descargados 922kB en 15s (60,2kB/s) Preconfigurando paquetes ... Seleccionando el paquete phpldapadmin previamente no seleccionado. (Leyendo la base de datos ... 17975 ficheros y directorios instalados actualmente.) Desempaquetando phpldapadmin (de .../phpldapadmin_1.1.0.4-2ubuntu1_all.deb) ... Configurando phpldapadmin (1.1.0.4-2ubuntu1) ...
    * Restarting web server apache2
      ...done.
    

    $vi /etc/apache2/httpd.conf
    ServerName ldap1.blom.lan

    Editamos esta linea para que funcione phpldapadmin
    $vim /etc/php5/apache2/php.ini
    memory_limit = 64M

    $/etc/init.d/apache2 restart

    • Restarting web server apache2
    ...done.

    [editar] Importar schemas de openldap

    $ cd /etc/ldap/schema
    $ wget http://open.rhx.it/phamm/schema/ISPEnv2.schema
    --17:58:53-- http://open.rhx.it/phamm/schema/ISPEnv2.schema
    => `ISPEnv2.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 9,071 (8.9K) [text/plain] 100%[=======================================================================>] 9,071 --.--K/s 17:58:53 (75.96 KB/s) - `ISPEnv2.schema' saved [9071/9071]
    $ wget http://open.rhx.it/phamm/schema/amavis.schema
    --17:59:51-- http://open.rhx.it/phamm/schema/amavis.schema
    => `amavis.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 24,405 (24K) [text/plain] 100%[=======================================================================>] 24,405 109.16K/s 17:59:52 (109.01 KB/s) - `amavis.schema' saved [24405/24405]
    $ wget http://open.rhx.it/phamm/schema/dnsdomain2.schema
    --18:00:46-- http://open.rhx.it/phamm/schema/dnsdomain2.schema
    => `dnsdomain2.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 3,848 (3.8K) [text/plain] 100%[=======================================================================>] 3,848 --.--K/s 18:00:46 (198.35 KB/s) - `dnsdomain2.schema' saved [3848/3848]
    $ wget http://open.rhx.it/phamm/schema/pureftpd.schema
    --18:01:27-- http://open.rhx.it/phamm/schema/pureftpd.schema
    => `pureftpd.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 2,474 (2.4K) [text/plain] 100%[=======================================================================>] 2,474 --.--K/s 18:01:27 (279.09 KB/s) - `pureftpd.schema' saved [2474/2474]
    $ wget http://open.rhx.it/phamm/schema/radius.schema
    --18:02:08-- http://open.rhx.it/phamm/schema/radius.schema
    => `radius.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 13,259 (13K) [text/plain] 100%[=======================================================================>] 13,259 34.71K/s 18:02:08 (34.63 KB/s) - `radius.schema' saved [13259/13259]
    $ wget http://open.rhx.it/phamm/schema/samba.schema
    --18:02:54-- http://open.rhx.it/phamm/schema/samba.schema
    => `samba.schema' Connecting to 192.168.33.86:3128... connected. Proxy request sent, awaiting response... 200 OK Length: 16,927 (17K) [text/plain] 100%[=======================================================================>] 16,927 104.62K/s 18:02:54 (103.97 KB/s) - `samba.schema' saved [16927/16927]
    El directorio de schemas queda con los siguientes elementos
    $ ls -l
    total 240
    -rw-r--r-- 1 root root 24405 2007-12-21 15:01 amavis.schema
    -rw-r--r-- 1 root root 2180 2008-08-05 22:21 collective.schema
    -rw-r--r-- 1 root root 2084 2008-08-05 22:21 corba.schema
    -rw-r--r-- 1 root root 21175 2008-08-05 22:21 core.ldif
    -rw-r--r-- 1 root root 20346 2008-08-05 22:21 core.schema
    -rw-r--r-- 1 root root 12089 2008-08-05 22:21 cosine.ldif
    -rw-r--r-- 1 root root 14030 2008-08-05 22:21 cosine.schema
    -rw-r--r-- 1 root root 3848 2007-12-21 15:01 dnsdomain2.schema
    -rw-r--r-- 1 root root 10474 2008-08-05 22:21 duaconf.schema
    -rw-r--r-- 1 root root 3378 2008-08-05 22:21 dyngroup.schema
    -rw-r--r-- 1 root root 3571 2008-08-05 22:21 inetorgperson.ldif
    -rw-r--r-- 1 root root 6360 2008-08-05 22:21 inetorgperson.schema
    -rw-r--r-- 1 root root 9071 2007-12-21 15:01 ISPEnv2.schema
    -rw-r--r-- 1 root root 3295 2008-08-05 22:21 java.schema
    -rw-r--r-- 1 root root 2471 2008-08-05 22:21 misc.schema
    -rw-r--r-- 1 root root 5996 2008-08-05 22:21 nadf.schema
    -rw-r--r-- 1 root root 6889 2008-08-05 22:21 nis.ldif
    -rw-r--r-- 1 root root 7723 2008-08-05 22:21 nis.schema
    -rw-r--r-- 1 root root 3393 2008-08-05 22:21 openldap.ldif
    -rw-r--r-- 1 root root 1602 2008-08-05 22:21 openldap.schema
    -rw-r--r-- 1 root root 4678 2008-08-05 22:21 ppolicy.schema
    -rw-r--r-- 1 root root 2474 2007-12-21 15:01 pureftpd.schema
    -rw-r--r-- 1 root root 13259 2007-12-21 15:01 radius.schema
    -rw-r--r-- 1 root root 3591 2008-08-05 22:21 README
    -rw-r--r-- 1 root root 16927 2007-12-21 15:01 samba.schema

    Descargamos y extraemos el phamm.schema
    $cd /usr/src
    $wget http://open.rhx.it/phamm/phamm-0.5.15.tar.gz
    $tar xvzf phamm0.5.15.tar.gz
    Siempre tenemos que ver que version de phamm hay disponible para descargar y lo podemos ver en esta direccion http://www.phamm.org/download.php
    $cd /etc/ldap/schema
    $cp /usr/src/phamm0.5.15/schema/phamm.schema .

    Editamos slapd.conf para incluir los schemas que necesitemos para phamm:
    $vi /etc/ldap/slapd.conf
    ...

    include /etc/ldap/schema/ISPEnv2.schema
    include /etc/ldap/schema/amavis.schema
    include /etc/ldap/schema/pureftpd.schema
    ...
    Estos schemas son solo para el correo y el ftp. Podemos incluir otros schemas que necesitemos para otras funciones que ya veremos mas adelante
    Reiniciamos openldap para que se carguen los nuevos schemas
    $/etc/init.d/slapd restart
    Stopping OpenLDAP: slapd.
    Starting OpenLDAP: slapd.


    [editar] Configuracion con phpldapadmin

    Iniciamos sesion en phpldapadmin y creamos la organizacion.

    Click en dc=blom,dc=lan.
    Click en Crear nuevo objeto.
    Click en Default.
    En la siguiente pantalla buscar organization en el scroll box.
    Click Crear objeto. En la siguiente pantalla cambiar a o(o) en el desplegable. Escribir el nombre del hosting (ldap1) en el primer campo y pulsar Crear objeto.

    [editar] Configurar postfix

    Para usar dovecot sasl nosotros necesitamos lo siguiente:
    $postconf -e "smtpd_sasl_type = dovecot"
    $postconf -e "smtpd_sasl_path = private/auth"

    Para habilitar dovecot como servidor de entrega necesitamos ejecutar lo siguiente:
    $postconf -e "mailbox_transport = dovecot"
    $postconf -e "dovecot_destination_recipient_limit = 1"
    $postconf -e "mailbox_command = /usr/lib/dovecot/deliver"

    Ahora necesitamos configurar los protocolos para la entrega con dovecot y gnarwl:
    $vi /etc/postfix/master.cf
    Insertar lo siguiente: ...
    dovecot unix - n n - - pipe
    flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -d ${recipient)
    gnarwl unix - n n - - pipe
    flags=F user=vmail argv=/usr/bin/gnarwl -a ${user}@${nexthop} -s ${sender}

    1. To allow sasl authenticad users to send mail through postfix add the following to the entry
    smtpd_recipient_restrictions = permit_mynetworks
    ...
    Añadimos la siguiente lineas de configuracion para postfix
    $vi /etc/postfix/main.cf
    ...
    permit_sasl_authenticated
    # Configuramos postfix para que funcione con ldap
    ldap_bind_dn = cn=admin,dc=blom,dc=lan ldap_bind_pw = secret ldap_search_base = o=ldap1,dc=blom,dc=lan ldap_domain = dc=blom,dc=lan ldap_server_host = localhost ldap_server_port = 389 ldap_version = 3
    # aliases aliases_server_host = $ldap_server_host aliases_search_base = $ldap_search_base aliases_query_filter = (&(&(objectClass=VirtualMailAlias)(mail=%s))(accountActive=TRUE)) aliases_result_attribute = maildrop aliases_bind = yes aliases_cache = no aliases_bind_dn = $ldap_bind_dn aliases_bind_pw = $ldap_bind_pw aliases_version = $ldap_version
    # VirtualForward virtualforward_server_host = $ldap_server_host virtualforward_search_base = $ldap_search_base virtualforward_query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(vacationActive=FALSE)(forwardActive=TRUE)(accountActive=TRUE)(delete=FALSE)) virtualforward_result_attribute = maildrop virtualforward_bind = yes virtualforward_cache = no virtualforward_bind_dn = $ldap_bind_dn virtualforward_bind_pw = $ldap_bind_pw virtualforward_version = $ldap_version
    # Accounts accounts_server_host = $ldap_server_host accounts_search_base = $ldap_search_base accounts_query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE)) accounts_result_attribute = mailbox accounts_cache = no accounts_bind = yes accounts_bind_dn = $ldap_bind_dn accounts_bind_pw = $ldap_bind_pw accounts_version = $ldap_version accountsmap_server_host = $ldap_server_host accountsmap_search_base = $ldap_search_base accountsmap_query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE)) accountsmap_result_attribute = mail accountsmap_cache = no accountsmap_bind = yes accountsmap_bind_dn = $ldap_bind_dn accountsmap_bind_pw = $ldap_bind_pw accountsmap_version = $ldap_version
    # virtual quota quota_server_host = $ldap_server_host quota_search_base = $ldap_search_base quota_query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(accountActive=TRUE)(delete=FALSE)) quota_result_attribute = quota quota_cache = no quota_bind = yes quota_bind_dn = $ldap_bind_dn quota_bind_pw = $ldap_bind_pw quota_version = $ldap_version
    # Mail to reply for gnarwl and mail to forward during vacation recipient_bcc_maps = ldap:vfm vfm_server_host = $ldap_server_host vfm_search_base = $ldap_search_base vfm_query_filter = (&(&(objectClass=VirtualMailAccount)(mail=%s))(vacationActive=TRUE)(forwardActive=FALSE)(accountActive=TRUE)(delete=FALSE)) vfm_result_attribute = mailAutoreply vfm_cache = no vfm_bind = yes vfm_bind_dn = $ldap_bind_dn vfm_bind_pw = $ldap_bind_pw vfm_version = $ldap_version
    # transport_maps maildrop_destination_concurrency_limit = 2 maildrop_destination_recipient_limit = 1 gnarwl_destination_concurrency_limit = 1 gnarwl_destination_recipient_limit = 1 transport_maps = hash:/etc/postfix/transport, ldap:transport mydestination = $transport_maps, localhost, $myhostname, localhost.$mydomain, $mydomain virtual_alias_maps = hash:/etc/postfix/virtual, ldap:virtualforward, ldap:aliases, ldap:accountsmap
    # virtual accounts for delivery virtual_mailbox_base = /home/vmail virtual_mailbox_maps = ldap:accounts virtual_minimum_uid = 1000 virtual_uid_maps = static:1000 virtual_gid_maps = static:1000
    local_recipient_maps = proxy:unix:passwd.byname, $alias_maps, $virtual_mailbox_maps ...
    Añadimos el protocolo para el transporte por gnarwl:
    $ vi /etc/postfix/transport
    ...
    .autoreply  :gnarwl ...
    Compilamos el transport db:
    $postmap /etc/postfix/transport
    Con esto finaliza la configuracion de postfix. Tendremos que reiniciar los servicios mas tarde.

    [editar] Instalar y configurar dovecot

    Esto instalara dovecot con todos los archivos necesarios y creara el estandar de certificados SSL para IMAP y POP3.
    $ apt-get install dovecot-imapd dovecot-pop3d
    Leyendo lista de paquetes... Hecho
    Creando árbol de dependencias
    Leyendo la información de estado... Hecho
    Se instalarán los siguientes paquetes extras:
    dovecot-common libmysqlclient15off mysql-common
    Se instalarán los siguientes paquetes NUEVOS:
    dovecot-common dovecot-imapd dovecot-pop3d libmysqlclient15off mysql-common
    0 actualizados, 5 se instalarán, 0 para eliminar y 7 no actualizados.
    Necesito descargar 4818kB de archivos.
    After this operation, 10,0MB of additional disk space will be used.
    ¿Desea continuar [S/n]? s
    Des:1 http://es.archive.ubuntu.com hardy-updates/main mysql-common 5.0.51a-3ubuntu5.4 [60,3kB]
    Des:2 http://es.archive.ubuntu.com hardy-updates/main libmysqlclient15off 5.0.51a-3ubuntu5.4 [1837kB]
    Des:3 http://es.archive.ubuntu.com hardy-updates/main dovecot-common 1:1.0.10-1ubuntu5.1nowiki> [1696kB]
    Des:4 http://es.archive.ubuntu.com hardy-updates/main dovecot-imapd 1:1.0.10-1ubuntu5.1 [630kB]
    Des:5 http://es.archive.ubuntu.com hardy-updates/main dovecot-pop3d 1:1.0.10-1ubuntu5.1 [596kB]
    Descargados 4818kB en 28s (167kB/s)
    Seleccionando el paquete mysql-common previamente no seleccionado.
    (Leyendo la base de datos ...
    18571 ficheros y directorios instalados actualmente.)
    Desempaquetando mysql-common (de .../mysql-common_5.0.51a-3ubuntu5.4_all.deb) ...
    Seleccionando el paquete libmysqlclient15off previamente no seleccionado.
    Desempaquetando libmysqlclient15off (de .../libmysqlclient15off_5.0.51a-3ubuntu5.4_i386.deb) ...
    Seleccionando el paquete dovecot-common previamente no seleccionado.
    Desempaquetando dovecot-common (de .../dovecot-common_1%3a1.0.10-1ubuntu5.1_i386.deb) ...
    Seleccionando el paquete dovecot-imapd previamente no seleccionado.
    Desempaquetando dovecot-imapd (de .../dovecot-imapd_1%3a1.0.10-1ubuntu5.1_i386.deb) ...
    Seleccionando el paquete dovecot-pop3d previamente no seleccionado.
    Desempaquetando dovecot-pop3d (de .../dovecot-pop3d_1%3a1.0.10-1ubuntu5.1_i386.deb) ...
    Configurando mysql-common (5.0.51a-3ubuntu5.4) ...
    Configurando libmysqlclient15off (5.0.51a-3ubuntu5.4) ...

    Configurando dovecot-common (1:1.0.10-1ubuntu5.1) ...

    Creating config file /etc/dovecot/dovecot.conf with new version

    Creating config file /etc/dovecot/dovecot-ldap.conf with new version

    Creating config file /etc/dovecot/dovecot-sql.conf with new version
    adduser: Warning: The home directory `/usr/lib/dovecot' does not belong to the user you are currently creating.
    Adding user `dovecot' to group `mail' ...
    Adding user dovecot to group mail
    Done.
    You already have ssl certs for dovecot.

    Configurando dovecot-imapd (1:1.0.10-1ubuntu5.1) ...

    • Restarting IMAP/POP3 mail server dovecot
    ...done.

    Configurando dovecot-pop3d (1:1.0.10-1ubuntu5.1) ...

    • Restarting IMAP/POP3 mail server dovecot
    ...done.

    Processing triggers for libc6 ...
    ldconfig deferred processing now taking place
    Hacemos una copia de seguridad del archivo de configuración original.
    $ mv /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bck
    $ mv /etc/dovecot/dovecot-ldap.conf /etc/dovecot/dovecot-ldap.conf.bck
    Creamos unos ficheros de configuracion nuevos
    $ vi /etc/dovecot/dovecot.conf
    auth_verbose = yes
    mail_debug = yes

    base_dir = /var/run/dovecot/
    protocols = imap imaps pop3 pop3s
    protocol lda {
    postmaster_address = postmaster@example.tld
    auth_socket_path = /var/run/dovecot/auth-master
    log_path = /var/log/dovecot-deliver.log
    info_log_path = /var/log/dovecot-deliver.log
    }
    listen = *
    shutdown_clients = yes
    log_path = /var/log/dovecot.log
    info_log_path = /var/log/mail.log
    log_timestamp = "%b %d %H:%M:%S "
    syslog_facility = mail
    disable_plaintext_auth = no
    ssl_disable = no
    ssl_cert_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
    ssl_key_file = /etc/ssl/certs/ssl-cert-snakeoil.pem
    login_chroot = yes
    login_user = postfix
    login_process_per_connection = yes
    login_processes_count = 2
    login_max_processes_count = 128
    login_max_connections = 256
    login_greeting = Welkom bij Webhabitat's Dovecot eMail Server.
    login_log_format_elements = user=<%u> method=%m rip=%r lip=%l %c
    login_log_format = %$: %s
    default_mail_env = maildir:/home/vmail/domains/%d/%u
    first_valid_uid = 108 # REMEBER THIS MUST BE CHANGED TO YOUR UID FOR "postfix" FROM /etc/passwd
    pop3_uidl_format = %08Xu%08Xv
    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 = 0600
    user = vmail
    group = vmail
    }
    client {
    path = /var/spool/postfix/private/auth
    mode = 0660
    user = postfix
    group = postfix
    }
    }
    user = vmail
    }

    $ vi /etc/dovecot/dovecot-ldap.conf

    hosts = localhost auth_bind = yes auth_bind_userdn = mail=%u,vd=%d,o=hosting,dc=example,dc=tld ldap_version = 3 base = dc=example,dc=tld dn = cn=admin,dc=example,dc=tld dnpass = secret deref = never scope = subtree user_filter = (&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u)) pass_filter = (&(objectClass=VirtualMailAccount)(accountActive=TRUE)(mail=%u)) default_pass_scheme = MD5 # the uid of your vmail user user_global_uid = 1000 # the guid of your vmail group user_global_gid = 1000
    Note: Remember to change example.tld to your own domain.tld see assumptions.
    The follwoing entry in dovecot.conf enables sasl:
    socket listen {
    master {
                           path = /var/run/dovecot/auth-master
                                   mode = 0600
                           user = vmail
                           group = vmail
                   }
                   client {
                           path = /var/spool/postfix/private/auth
                           mode = 0660
                           user = postfix
                           group = postfix
                   }
           }
           user = vmail
    
    }
    The following entry in dovecot.conf provides session and logging for dovecot deliver:
    protocol lda {
    postmaster_address = postmaster@example.tld
     auth_socket_path = /var/run/dovecot/auth-master
     log_path = /var/log/dovecot-deliver.log
     info_log_path = /var/log/dovecot-deliver.log
     }
    
    At this moment I haven't gotten dovecot to use the quota entries provided by phamm, this will be an addon in the (very, hopefully :) ) future.
    This concludes the dovecot configuration. Step 5: Installing and configuring phamm:
    Since we downloaded and extracted the phamm archive before, we can directly begin with the installation and configuration of the phamm interface.
    Note: I hacked into the phamm configuration and .php script files to accomplish the following:
    * Maildrop to to postmaster@example.tld rather than postmaster wich is a unix account
       * Maildrop for abuse to postmaster@example.tld rather than postmaster
       * %domain% for the welcome message to reflect postmaster@domain.tld rather than postmaster
       * cc for the welcome message to postmaster@example.tld to have an idea of the number of mailboxes created by the virtual mail domain admins. ==> defoult maps to postmaster so your unix account will get the mails or rather root.
    
    The other hacks are just to define other defaults:
    * Setting smtp auth to default
       * Setting the quota number form mail
       * Setting the default home directory for ftp
       * setting the default quota for ftp
    
    In any case I believe that these changes are an improvement rather than customisation so I will list them here before we go into the actual installation and configuration of phamm. For those who do not care about these features can skip the following until the actual phamm configuration and installation.
    My hacks:
    The hacks are done on the source, not the actual (see later installation).
    First we will do the welcome message part.
    cd /usr/src/phammphamm-0.5.12 vi config.inc.php
    Change (starting line 94):
    // Welcome message define ('SEND_WELCOME',0); $welcome_msg = '../welcome_message.txt'; $welcome_subject = 'Welcome!'; $welcome_sender = 'root@localhost'; $welcome_bcc = 'root@localhost';
    To
    // Welcome message define ('SEND_WELCOME',1); $welcome_msg = '../welcome_message.txt'; $welcome_subject = 'Welcome!'; $welcome_sender = 'postmaster@%domain%'; $welcome_bcc = 'postmaster@example.tld';
    This will send the welcome email as from postmaster@domain.tld (domain.tld being the mail domain (virtual) and send a bcc to postmaster@example.tld where example.tld represents the technical domain.
    Next we will set the defaults for email and domain creation:
    vi plugins/mail.xml
    Change (line 288):
    $entry["maildrop"] = "postmaster";
    To
    $entry["mail"] = "postmaster@".$domain_new;
    And also (line 307) from:
    $entry_abuse["maildrop"] = "postmaster";
    To
    $entry_abuse["maildrop"] = "postmaster@".$domain_new;
    OK these were my cuntom hacks, now let's go to the installation and configuration of phamm.
    mkdir /yourwwwroot/phamm cp -R * /yourwwwroot/pham/. chown -R www-data:www-data /yourwwwroot/pham cd /yourwwwroot/phamm rm -R examples rm -R doc rm -R DTD rm -R schema
    This in order to remove files that are not needed in the www directory.
    Now we will configure phamm for actual use.
    vi config.inc.php
    Change the ldap connection parameters to fit your actual configuration.
    // *============================* // *=== LDAP Server Settings ===* // *============================*
    // The server address (IP or FQDN) define ('LDAP_HOST_NAME','127.0.0.1');
    // The protocol version [2,3] define ('LDAP_PROTOCOL_VERSION','3');
    // The server port define ('LDAP_PORT','389');
    // The container define ('SUFFIX','dc=example,dc=tld');
    // The admin bind dn (could be rootdn) define ('BINDDN','cn=admin,dc=example,dc=tld');
    // The Phamm container define ('LDAP_BASE','o=hosting,dc=example,dc=tld');
    Enable the fpt plugin (line 172) by removing the //
    And on line 215 change CRYPT to MD5. Most other software that use LDAP use MD5 hashing, so it is therefore a good thing to have phamm use MD5.
    Since the transport maildrop: is hardcoded in phamm we need to change this in order to enable dovecot deliver.
    vi plugins/mail.xml
    Replace each entry with maildrop: with dovecot: (do no forget the semicolon). In ordinary situations, the commands in postfix's main.cf would do (that we added before), but ldap transport as used and implemented by phamm overrides this and implements maildrop.
    This has to be done for line 62. This will substitute maildrop for dovecot deliver.
    That's it for the configuration.
    You can edit plugins/mail.xml to change the defaults for smtp and quota, modify them to your needs.
    You can edit plugins/ftp.xml to change the defaults for default ftp (base) directory and quoata, modify them to your needs.
    OK we're almost there.
    Now execute the following commands:
    /etc/init.d/postfix restart /etc/init.d/dovecot restart
    Next browse to http://yourdoamin.tld/phamm and log in with the account admin and your openldap password.
    Add the email domain, next add a mailbox and you should be up and running.
    Use the following command to see if there are any errors:
    tail -f /var/log/mail.log
    Hey we're up and runnung.
    Well almost, one last thing to do if everything wotks is to add the acl for phamm to openldap in order for domain admins to administer their domains and users to change their passwords and/or vacation, forwards.
    vi /etc/ldap/slapd.conf
    Comment the following entries:
    # The admin dn has full write access, everyone else # can read everything. #access to * # by dn="cn=admin,dc=example,dc=tld" 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=tld" write # by dnattr=owner write
    And add the following above (change if your configuration is different from the assumptions)
    # acl specific for phamm
    # Copyright (c) 2005 Alessandro De Zorzi, Mirko Grava # http://phamm.rhx.it/ # # Permission is granted to copy, distribute and/or modify this document # under the terms of the GNU Free Documentation License, Version 1.2 # or any later version published by the Free Software Foundation; # A copy of the license in DOCS.LICENSE file.
    # First of all # acl for pdns access to dn.regex="^(.+,)?cn=([^,]+),ou=dns,dc=example,dc=tld$"
    by dn="cn=admin,dc=example,dc=tld" write
           by anonymous auth
           by dn.exact="cn=dnsldap,ou=dns,dc=example,dc=tld" read
           by dn.exact,expand="cn=postmaster,vd=$2,o=hosting,dc=example,dc=tld" write
    
    access to dn.regex="^(.+,)?dc=([^,]+),ou=dns,dc=example,dc=tld$"
    by dn="cn=admin,dc=example,dc=tld" write
           by anonymous auth
           by dn.exact="cn=dnsldap,ou=dns,dc=example,dc=tld" read
           by dn.exact,expand="cn=postmaster,vd=$2,o=hosting,dc=example,dc=tld" write
    
    access to dn.exact="ou=dns,dc=example,dc=tld"
    by dn="cn=admin,dc=example,dc=tld" write
           by anonymous auth
           by dn.exact="cn=dnsldap,ou=dns,dc=example,dc=tld" read
    
    # now mail service # account must edit his password, spam level, forward, vacation, his name # postmaster with editAccounts=FALSE do the same thing for his domain # postmaster with editAccounts=TRUE can add account/alias and edit also amavisBypassVirusChecks, quota and smtpAuth # vadmin could do the same as postmaster with editAccounts=TRUE for some domains access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=userPassword,sambaNTPassword,sambaLMPassword
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by anonymous auth
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" write
           by set="user/vd & [$1]" write
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=amavisBypassVirusChecks,quota,smtpAuth,accountActive
    by dn="cn=admin,dc=example,dc=tld" write
           by self read
           by set="user/editAccounts & [TRUE]" write
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" read
           by set="user/vd & [$1]" write
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=cn,sn,forwardActive,vacationActive,vacationInfo,vacationStart,vacationEnd,vacationForward,amavisSpamTagLevel,amavisSpamTag2Level,amavisSpamKillLevel
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" write
           by set="user/vd & [$1]" write
    
    access to dn.regex="^.*,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=editAccounts
    by dn="cn=admin,dc=example,dc=tld" write
           by self read
           by set="user/editAccounts & [TRUE]" write
           by * none
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=objectClass,entry
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by anonymous read
           by set="user/editAccounts & [TRUE]" write
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" read
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=amavisBypassSpamChecks,accountActive,delete
    by dn="cn=admin,dc=example,dc=tld" write
           by self read
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" write
           by set="user/vd & [$1]" write
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=FTPQuotaMBytes,FTPStatus,FTPQuotaFiles,uid,otherPath
    by dn="cn=admin,dc=example,dc=tld" write
           by anonymous read
           by self read
           by dn.exact,expand="cn=postmaster,vd=$1,o=hosting,dc=example,dc=tld" read
           by set="user/vd & [$1]" write
    
    access to dn.regex=".+,vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=uidNumber,gidNumber,createMaildir,vdHome,mailbox,otherTransport
    by dn="cn=admin,dc=example,dc=tld" write
           by self read
           by set="user/vd & [$1]" read
    
    access to dn.regex="^(.+,)?vd=([^,]+),o=hosting,dc=example,dc=tld$" attrs=vd
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by dn.exact,expand="cn=postmaster,vd=$2,o=hosting,dc=example,dc=tld" write
           by set="user/vd & [$2]" write
    
    access to dn.regex="^(.+,)?vd=([^,]+),o=hosting,dc=example,dc=tld$"
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by set="user/editAccounts & [FALSE]" read
           by dn.exact,expand="cn=postmaster,vd=$2,o=hosting,dc=example,dc=tld" write
           by set="user/vd & [$2]" write
    
    access to dn.regex=".+,o=hosting,dc=example,dc=tld$"
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by anonymous auth
    
    access to dn.regex=".+,dc=tld$"
    by dn="cn=admin,dc=example,dc=tld" write
           by anonymous auth
    
    access to dn.regex=".+,ou=admin,dc=example,dc=tld$" attrs=userPassword
    by dn="cn=admin,dc=example,dc=tld" write
           by self write
           by anonymous auth
    
    access to dn.regex=".+,ou=admin,dc=example,dc=tld$" attrs=vd
    by dn="cn=admin,dc=example,dc=tld" write
           by self read
    
    Restart slapd and if you don't get errors the acl is implemented.
    /etc/init.d/slapd restart
    To thest the acl you can log in to phamm usein as uid/pmd the credentials for the virtual mail domain you created, eg: example.tld pwd
    If you can log in and add/change/delete mail accounts the acl is ok. Step 6: install and configure gnarwl
    Well after the last pages you're in for a surprise. If you tought that configuring everything before was difficult you're in for a treat.
    Let's install gnarwl:
    apt-get install gnarwl
    Now let's configure gnarwl.
    First we're going to backup the original configuration file and replace it with a new one.
    mv /etc/gnarwl.conf /etc/gnarwl.conf.bck
    Now we create the new conf file:
    vi /etc/gnarwl.conf
    And insert the following:
    map_sender $sender map_receiver $recepient map_subject $subject map_field $begin vacationStart map_field $end vacationEnd map_field $fullname cn map_field $deputy vacationForward map_field $reply mail server localhost port 389 scope sub login cn=admin,dc=example,dc=tld password secret protocol 0 base dc=example,dc=tld queryfilter (&(mailAutoreply=$recepient)(vacationActive=TRUE)) result vacationInfo blockfiles /var/lib/gnarwl/block/ umask 0644 blockexpire 48 mta /usr/sbin/sendmail -F $recepient -t $sender maxreceivers 64 maxheader 512 charset ISO8859-1 badheaders /var/lib/gnarwl/badheaders.db blacklist /var/lib/gnarwl/blacklist.db forceheader /var/lib/gnarwl/header.txt forcefooter /var/lib/gnarwl/footer.txt recvheader To Cc loglevel 3
    Change the default to your actual configuration.
    Last but not least execute the following command to make gnarwl work:
    chown -R vmail:vmail /var/lib/gnarwl/
    Well that's it. You should now have a postfix, dovecot, gnarwl working with an LDAP backend and Phamm as management interface.
    For additonal configuration see the respective sites of the software developers to further tune or adapt this to your requirements and needs.



    [editar]

    Replicar BD ldap en 2 servidores

    Yo tengo el PDc y BDc de la siguiente forma en el slapd.conf

    en el PDC:
    Esto es una sola linea corrida: $vim /etc/ldap/slapd.conf
    replica host=192.168.2.12:389 binddn="cn=admin,dc=pdc,dc=ovmc" credentials=Aing5a bindmethod=simple

    en el BDC:

    $vim /etdc/ldap/slapd.conf
    updatedn "cn=admin,dc=pdc,dc=ovmc"
    updateref ldap://ip_o_nombre_de_equipo_del_PDC

    Tengo como usuario a admin, otros usan Manager, es lo mismo, pero no me hico falta crear un usuario en especifico para realizar replicas, con el mismo usuario que administra el arbol ldap es suficiente, si quieres aplicar seguridad, solo aplicar listar de control de acceso (ACL) en el slapd.conf del PDC

    Este tipo de replica es llamado "Slurpd"

    La replica se hace en menos se un segundo, al agregar un usuario en el pdc me voy rapido a un consola del bdc y al hacer gentent passwd ya veo el usuario agregado.

    otra forma de hacer replica es por medio de "Syncrepl" pero por ese metodo no he probado.
    ---

    [editar]

    LDAP v2.0

    Instalamos Ubuntu server 9.04 solo con openssh en las opciones
    Nos logeamos en el sistema y empezamos a trabajar
    $ apt-get update
    $ apt-get upgrade
    $ apt-get install vim-nox
    $ apt-get install heimdal-kdc
    En servidores kerberos del dominio no he puesto nada por no saber que poner
    $ apt-get install ldap-utils
    $ apt-get install libnss-ldap
    LDAP server Uniform Resource Identifier:
    ldap://correo.blom.lan
    Distinguished name of the search base:
    dc=blom,dc=lan
    LDAP version to use:
    3
    Make local root Database admin:
    SI
    Does the LDAP database require login?:
    NO
    LDAP account for root:
    cn=admin,dc=blom,dc=lan
    LDAP root account password:
    sistemas
    $ apt-get install libpam-cracklib
    $ apt-get install libpam-foreground
    $ apt-get install libpam-ldap
    $ apt-get install libpam-modules
    $ apt-get install migrationtools
    $ apt-get install nfs-common
    $ apt-get install nfs-kernel-server
    $ apt-get install phpldapadmin
    $ apt-get install samba
    $ apt-get install samba-common
    $ apt-get install samba-doc
    $ apt-get install slapd
    Contraseña administrador en el directorio LDAP
    sistemas
    $ apt-get install smbclient
    $ apt-get install smbldap-tools
    Una vez instalados los paquetes tenemos que modificar los ficheros de configuracion
    Esta guia tiene los conocimientos que he ido sacando y combinando de multiples tutoriales y si quieres un tutorial completo puedes visitar la siguiente URL: http://ubuntuforums.org/showthread.php?t=640760 . $ vi /etc/hostname
    correo.blom.lan
    $ vi hosts
    127.0.0.1 localhost
    192.168.33.188 correo.blom.lan correo


    1. The following lines are desirable for IPv6 capable hosts
    1 localhost ip6-localhost ip6-loopback
    fe00::0 ip6-localnet
    ff00::0 ip6-mcastprefix
    ff02::1 ip6-allnodes
    ff02::2 ip6-allrouters
    ff02::3 ip6-allhosts
    Ubuntu installed
    Creamos el directorio donde va ha estar LDAP instalado y donde estaran los datos
    $ mkdir /ldaphome
    $ mkdir /ldap_data
    Si vamos a dejar el directorio por defecto para la instalacion de LDAP no hace falta crear el directorio ldap_data
    Instalamos postfix
    $ apt-get install postfix mailx
    Tipo generico de configuracion de correo
    Sitio de internet
    System mail name:
    correo.blom.lan
    Instalacion de LDAP en el directorio por defecto
    $ apt-get install slapd ldap-utils migrationtools
    $ dpkg-reconfigure slapd
    ¿Desea omitir la ocnfiguracion del servidor OpenLDAP?
    NO
    DNS domain name
    blom.lan
    Organization name:
    blom.lan
    Database backend to use:
    BDB
    ¿Desea que se borre la base de datos cuando se purgue el paquete slapd?
    NO
    ¿Desea mover la base de datos antigua?
    SI
    Contraseña del administrador:
    sistemas
    Verificacion de contraseña:
    sistemas
    Allow LDAPv2 protocol?
    NO


    Get root permission sudo bashEdit /etc/hosts file vim /etc/hostsupdate to: 127.0.0.1 localhost 127.0.1.1 pdc pdc.example.local
    1. The following lines are desirable for IPv6 capable hosts
    1 ip6-localhost ip6-loopback
    fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts

    Update /etc/hostname file vim /etc/hostname update to: pdc.example.local
    Install needed package apt-get install slapd ldap-utils samba smbldap-tools samba-doc During the installation, you might get prompt to setup openLDAP admin password, just enter you one you like
    Update openLDAP dpkg-reconfigure slapdSettings: No DNS domain name: example.local Name of your organization: example.local Admin password: (Enter again from last step) Confirm password: (Enter again from last step) OK BDB No Yes No
    Copy samba.schema to openLDAP folder cp /usr/share/doc/samba-doc/examples/LDAP/samba.schema.gz /etc/ldap/schema/ gzip -d /etc/ldap/schema/samba.schema.gz
    Edit /etc/ldap/slapd.conf vim /etc/ldap/slapd.conf Add include /etc/ldap/schema/samba.schema Update access to attrs=userPassword,shadowLastChange,sambaNTPasswor d,sambaLMPassword This step you might see "access to attribute", change to attrs.
    Restart openLDAP /etc/init.d/slapd restart
    Copy required files cp /usr/share/doc/smbldap-tools/examples/smbldap_bind.conf /etc/smbldap-tools/ cp /usr/share/doc/smbldap-tools/examples/smbldap.conf.gz /etc/smbldap-tools/ gzip -d /etc/smbldap-tools/smbldap.conf.gz
    Get domain SID net getlocalsid
    Edit smbldap.conf vim /etc/smbldap-tools/smbldap.conf Update SID="(Copy from last step)" sambaDomain="EXAMPLE" ldapTLS="0" suffix="dc=example,dc=local" sambaUnixIdPooldn="sambaDomainName=${sambaDomain},${suffix}" userSmbHome= userProfile= userHomeDrive= userScript=
    mailDomain="IDEALX.ORG"
    All lines are included, you just have to update them.
    Edit smbldap_bind.conf file vim /etc/smbldap-tools/smbldap_bind.conf Update slaveDN="cn=admin,dc=example,dc=local" slavePw="(Your openLDAP password)" masterDN="cn=admin,dc=example,dc=local" masterPw="(Your openLDAP password)" All lines are included, you just have to update them.
    Set file permission chmod 0600 /etc/smbldap-tools/smbldap_bind.conf
    Populate to openLDAP server smbldap-populate You might get prompt for openLDAP password, just enter the one you set.
    Edit /etc/samba/smb.conf file vim /etc/samba/smb.conf Update workgroup = EXAMPLE security = user passdb backend = ldapsam:ldap://localhost/ obey pam restrictions = no
    invalid users = root
    domain logons = yes Add ldap admin dn = cn=admin,dc=example,dc=local ldap suffix = dc=example, dc=local ldap group suffix = ou=Groups ldap user suffix = ou=Users ldap machine suffix = ou=Computers ldap idmap suffix = ou=Users If root is not your manager account, add another line admin users = USER_NAME
    Restart samba /etc/init.d/samba restart
    Set openLDAP password for samba smbpasswd -w (Your openLDAP password)
    Until here, you are pretty much done.
    Here is how to add users, you can use the text mode or GUI mode like phpldapadmin.
    Text Mode: Add user smbldap-useradd -a -m USER_NAME useradd -g GROUP USER_NAME smbldap-passwd USER_NAME
    Add machine account smbldap-useradd -a -m MACHINE_NAME$ useradd –-g GROUP -–d /dev/null -–s /dev/null MACHINE_NAME$ Notice there is a $ sign after machine name.
    Install GUI Mode: apt-get install apache2 phpldapadmin Edit /etc/apache2/httpd.conf vim /etc/apache2/httpd.conf Add ServerName pdc.example.local Restart apache /etc/init.d/apache2 restart Copy phpldapadmin to apache www directory cp -R /usr/share/phpldapadmin/ /var/www/phpldapadmin GUI Mode is really simple, you just have to open up the browser and go to http://localhost/phpldapadmin/ . Login as username cn=admin,dc=example,dc=local and your openLDAP password. Then you may add user or machine account throught the left side of the menu. If you are trying to add machine account. Click on "Create new entry here" under "ou=Computers", and select "Samba3 Machine".
    After all the procedures, you may login your Windows client into the doamin. Right click on "My Computer" -> Properties -> Computer Name -> Either "Network ID" or "Change..."
    If you have any question, I will try to answer you when I'm free. But since I am new to this too. My answer will be very limited. This tutorial I have tried myself on several computers. So I am pretty sure it works unless I missed something. There are lots of settings you need to study yourself since this is the easiest way of setting up. So I do not want to include them. For example the samba's netlogon and shares settings in smb.conf.