Dominio Samba + LDAP en Slackware 13

Dominio Samba + LDAP en Slackware 13

      • 27
      • mensajes
      • miembro desde
      • 14/08/08
    #1 [Guia] Dominio Samba + LDAP en Slackware 13
    Dominio Samba + LDAP en Slackware 13


    Bien, la razón de este tutorial, es que las veces que busque como realizar esto para Slackware nunca encontré un Tutorial o Howto que hablara de como configurar un Dominio con Samba en dicha distribución. La mayoria de los tutoriales se basan en Debian o RedHat. Como mi distribución preferida es Slackware, decidi armar este manual.


    Software Utilizado:

    Sistema Operativo: Slackware 13
    OpenLDAP: 2.4.21
    Cyrus-SASL: 2.1.23
    Linux-PAM: 1.1.1
    CVSTools: 10.3.1
    pam_ldap: 185
    nss_ldap: 265
    Samba: 3.2.13
    PHP: 5.3.1
    LDAP Account Manager: 2.9.0
    smbldaptools: 0.9.2

    Instalación


    OpenLDAP


    root@domainsrv:~/Dominio# wget ftp://ftp.openldap.org/pub/OpenLDAP/...e-20100219.tgz
    root@domainsrv:~/Dominio# tar -zxvf openldap-stable-20100219.tgz
    root@domainsrv:~/Dominio# cd openldap-2.4.21/
    root@domainsrv:~/Dominio/openldap-2.4.21# ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-crypt --without-cyrus-sasl --with-tls
    root@domainsrv:~/Dominio/openldap-2.4.21# make depend
    root@domainsrv:~/Dominio/openldap-2.4.21# make
    root@domainsrv:~/Dominio/openldap-2.4.21# make install


    Creamos el archivo de inicio del servicio rc.openldap en /etc/rc.d/ con el siguiente contenido:

    #=============== Begin Script=================
    #!/bin/sh
    ## Slackware Script to initialize LDAP Server

    ldap_start() {
    if [ -x /usr/libexec/slapd ]; then
    echo "Starting LDAP Server"
    /usr/libexec/slapd -4
    fi
    }
    ldap_stop() {
    killall slapd
    killall slapd
    }
    ldap_restart() {
    sh $0 stop
    sleep 1
    sh $0 start
    }
    case "$1" in
    'start')
    ldap_start
    ;;
    'stop')
    ldap_stop
    ;;
    'restart')
    ldap_restart
    ;;
    *)
    echo "Usage $0 start|stop|restart"

    #============== End Script =================


    Darle permisos de ejecución al script de inicio de LDAP:

    chmod +x /etc/rc.d/rc.openldap

    Editar el archivo /etc/rc.d/rc.M, buscar donde esta la ejecución del script de LDAP, copiarlo y pegarlo justo antes del script del messagebus. Esto es necesario ya que dicho script necesita que el LDAP este ejecutandose.

    Copiar el esquema de Samba para LDAP:

    root@domainsrv:~/Dominio# cp /usr/doc/samba-3.2.13/examples/LDAP/samba.schema /etc/openldap/schema/

    Cyrus-Sasl


    root@domainsrv:~/Dominio# wget http://ftp.andrew.cmu.edu/pub/cyrus-...-2.1.23.tar.gz
    root@domainsrv:~/Dominio# tar -zxvf cyrus-sasl-2.1.23.tar.gz
    root@domainsrv:~/Dominio# cd cyrus-sasl-2.1.23
    root@domainsrv:~/Dominio/cyrus-sasl-2.1.23# ./configure –prefix=/usr
    root@domainsrv:~/Dominio/cyrus-sasl-2.1.23# make
    root@domainsrv:~/Dominio/cyrus-sasl-2.1.23# make install

    Linux-PAM


    root@domainsrv:~/Dominio# wget http://www.us.kernel.org/pub/linux/l...M-1.1.1.tar.gz
    root@domainsrv:~/Dominio# tar -zxvf Linux-PAM-1.1.1.tar.gz
    root@domainsrv:~/Dominio# cd Linux-PAM-1.1.1
    root@domainsrv:~/Dominio/Linux-PAM-1.1.1# ./configure --prefix=/usr
    root@domainsrv:~/Dominio/Linux-PAM-1.1.1# make
    root@domainsrv:~/Dominio/Linux-PAM-1.1.1# make install


    CVSTools


    root@domainsrv:~/Dominio# wget http://www.padl.com/download/CVSTools.tar.gz
    root@domainsrv:~/Dominio# cd CVSTools-10.3.1/
    root@domainsrv:~/Dominio/CVSTools-10.3.1# make


    pam_ldap


    root@domainsrv:~/Dominio# wget http://www.padl.com/download/pam_ldap.tgz
    root@domainsrv:~/Dominio# tar -zxvf pam_ldap.tgz
    root@domainsrv:~/Dominio# cd pam_ldap-185/
    root@domainsrv:~/Dominio/pam_ldap-185# ./configure --prefix=/usr –sysconfdir=/etc
    root@domainsrv:~/Dominio/pam_ldap-185# make
    root@domainsrv:~/Dominio/pam_ldap-185# make install
    root@domainsrv:~/Dominio/pam_ldap-185# cp -r pam.d /etc/


    nss_ldap


    root@domainsrv:~/Dominio# wget http://www.padl.com/download/nss_ldap.tgz
    root@domainsrv:~/Dominio# tar -zxvf nss_ldap.tgz
    root@domainsrv:~/Dominio# cd nss_ldap-265/
    root@domainsrv:~/Dominio/nss_ldap-265# ./configure --prefix=/usr –sysconfdir=/etc
    root@domainsrv:~/Dominio/nss_ldap-265# make
    root@domainsrv:~/Dominio/nss_ldap-265# make install

    Modificar las siguientes lineas en el archivo /etc/nsswitch.conf:

    passwd: compat
    group: compat


    cambiarlas por:

    passwd: files ldap
    group: files ldap


    y agregar:

    shadow: files ldap

    De esta manera el sistema va a poder usar los usuarios de LDAP como de sistema.


    PHP


    root@domainsrv:~/Dominio# wget http://ar2.php.net/get/php-5.3.1.tar...om/this/mirror
    root@domainsrv:~/Dominio# tar -zxvf php-5.3.1.tar.gz
    root@domainsrv:~/Dominio# cd php-5.3.1
    root@domainsrv:~/Dominio/php-5.3.1# ./configure --with-apxs2=/usr/sbin/apxs --with-pear --with-mysql --prefix=/usr --with-config-file-path=/etc/httpd/php --disable-cgi --with-zlib --with-gettext –with-gdbm --with-ldap
    root@domainsrv:~/Dominio/php-5.3.1# make
    root@domainsrv:~/Dominio/php-5.3.1# make test
    root@domainsrv:~/Dominio/php-5.3.1# make install


    LDAP Account Manager


    root@domainsrv:~/Dominio# wget http://downloads.sourceforge.net/pro...se_mirror=ufpr
    root@domainsrv:~/Dominio# tar -zxvf ldap-account-manager-2.9.0.tar.gz
    root@domainsrv:~/Dominio# cd ldap-account-manager-2.9.0
    root@domainsrv:~/Dominio/ldap-account-manager-2.9.0# mkdir /var/www/htdocs/lam
    root@domainsrv:~/Dominio/ldap-account-manager-2.9.0# cp -r . /var/www/htdocs/lam/.
    root@domainsrv:~/Dominio/ldap-account-manager-2.9.0# cd /var/www/htdocs/lam/config
    root@domainsrv:/var/www/htdocs/lam/config# cp config.cfg_sample config.cfg
    root@domainsrv:/var/www/htdocs/lam/config# chown -R apache.apache /var/www/htdocs/lam


    smbldaptools


    root@domainsrv:~/Dominio# wget http://downloads.sourceforge.net/pro...se_mirror=ufpr
    root@domainsrv:~/Dominio# tar -zxvf smbldap-tools-0.9.2a.tgz
    root@domainsrv:~/Dominio# cd smbldap-tools-0.9.2

    Copiar todos los scripts en /usr/sbin/

    Crear el directorio /etc/smbldap=tools y copiar dentro los archivos smbldap.conf y smbldap-bind.conf.

    Configurar los 2 archivos de acuerdo a su arbol LDAP.

    Setear los permisos de los 2 archivos de la manera siguiente:

    chmod 644 /etc/smbldap-tools/smbldap.conf
    chmod 600 /etc/smbldap-tools/smbldap-bind.conf

    Instalar los siguientes modulos de PERL:

    Jcode, Unicode::Map, Unicode::Map8, Unicode::MapUTF8, Unicode::String y Net::Ldap

    La instalación de los módulos de PERL se pueden realizar desde Webmin o desde la página de CPAN (http://search.cpan.org/)

    Ejecutar smbldap-populate para que se cree la estructura dentro del Directorio LDAP para el Dominio.




    Configuración



    OpenLDAP


    Crear el archivo slapd.conf en /etc/openldap/ similar al siguiente:

    #================= Begin File==================

    # See slapd.conf(5) for details on configuration options.
    # This file should NOT be world readable.
    #
    include /etc/openldap/schema/core.schema
    include /etc/openldap/schema/cosine.schema
    include /etc/openldap/schema/nis.schema
    include /etc/openldap/schema/inetorgperson.schema
    include /etc/openldap/schema/samba.schema


    # Define global ACLs to disable default read access.

    # Do not enable referrals until AFTER you have a working directory
    # service AND an understanding of referrals.
    #referral ldap://root.openldap.org

    pidfile /var/run/slapd.pid
    argsfile /var/run/slapd.args

    password-hash {CRYPT}

    loglevel 128

    # Load dynamic backend modules:
    # modulepath /usr/libexec/openldap
    # moduleload back_bdb.la
    # moduleload back_hdb.la
    # moduleload back_ldap.la

    # Sample security restrictions
    # Require integrity protection (prevent hijacking)
    # Require 112-bit (3DES or better) encryption for updates
    # Require 63-bit encryption for simple bind
    # security ssf=1 update_ssf=112 simple_bind=64

    # Sample access control policy:
    # Root DSE: allow anyone to read it
    # Subschema (sub)entry DSE: allow anyone to read it
    # Other DSEs:
    # Allow self write access
    # Allow authenticated users read access
    # Allow anonymous users to authenticate
    # Directives needed to implement policy:
    # access to dn.base="" by * read
    # access to dn.base="cn=Subschema" by * read
    # access to *
    # by self write
    # by users read
    # by anonymous auth
    #
    # if no access controls are present, the default policy
    # allows anyone and everyone to read anything but restricts
    # updates to rootdn. (e.g., "access to * by * read"
    #
    # rootdn can always read and write EVERYTHING!

    ################################################## #####################
    # BDB database definitions
    ################################################## #####################

    backend bdb
    database bdb
    suffix "dc=dominioprueba"
    rootdn "cn=admin,dc=dominioprueba"
    # Cleartext passwords, especially for the rootdn, should
    # be avoid. See slappasswd(8) and slapd.conf(5) for details.
    # Use of strong authentication encouraged.
    rootpw {CRYPT}kB5RQDcB2VYP6
    # The database directory MUST exist prior to running slapd AND
    # should only be accessible by the slapd and slap tools.
    # Mode 700 recommended.
    directory /var/openldap-data
    # Indices to maintain
    index objectClass eq
    index cn pres,sub,eq
    index sn pres,sub,eq
    index uid pres,sub,eq
    index displayName pres,sub,eq
    index uidNumber eq
    index gidNumber eq
    index memberUID eq
    index sambaSID eq
    index sambaPrimaryGroupSID eq
    index sambaDomainName eq
    index default sub

    #==================== End File =================


    Obtener la clave {CRYPT} de la siguiente manera:

    root@domainsrv:~/Dominio# slappasswd -c {CRYPT}
    New password:
    Re-enter new password:
    {CRYPT}{CYFPLOayMlVo


    Modificar las variables de "base" y "host" en /etc/openldap/ldap.conf y /etc/ldap.conf acorde con la configuracion de su server LDAP.


    Samba


    Editar el archivo /etc/samba/smb.conf para que quede similar al siguiente:

    #===================== Begin File========================

    [global]

    interfaces = eth0
    bind interfaces only = true
    hosts allow = 192.168. 127.

    workgroup = DOMINIOPRUEBA
    netbios name = PDC
    server string = PDC Server

    log level = 4
    log file = /var/log/samba/%m.log
    max log size = 100000

    deadtime = 15
    socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192

    time server = yes
    dos charset = 850
    unix charset = UTF8

    domain logons = yes
    domain master = yes
    local master = yes
    preferred master = yes
    os level = 255
    wins support = yes
    acl compatibility = win2k
    nt acl support = yes
    map acl inherit = yes
    inherit acls = yes

    security = user
    #min password length = 5
    encrypt passwords = yes


    admin users = Administrador
    passdb backend = ldapsam:ldap://localhost

    ldap admin dn = cn=admin,dc=dominioprueba
    ldap delete dn = yes
    ldap suffix = dc=dominioprueba
    ldap user suffix = ou=Users
    ldap idmap suffix = ou=Idmap
    ldap group suffix = ou=Groups
    ldap machine suffix = ou=Computers

    ldap ssl = off
    ldap passwd sync = yes

    add group script = /usr/sbin/smbldap-groupadd -p
    delete user from group script = /usr/sbin/smbldap-groudel -p
    add machine script = /usr/sbin/smbldap-useradd -w %u

    # root preexec = /usr/local/bin/genlogon.pl %m %U %a %g %L
    logon script = logon.bat
    # logon script = scripts\%m%U.bat
    logon drive = L:
    logon path =
    logon home =

    admin users = Administrador
    create mask = 0640
    directory mask = 0750
    case sensitive = No
    dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd

    # 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

    # Do something sensible when Samba crashes: mail the admin a backtrace
    # panic action = /usr/share/samba/panic-action %d

    # Cups

    load printers = Yes
    printing = cups
    printcap name = cups
    use client driver = no

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

    [homes]
    comment = Directorios de usuarios
    path = %H
    valid users = %S
    read only = No
    browseable = No
    create mask = 0600
    directory mask = 0700

    [netlogon]
    comment = Network Logon Service
    path = /opt/samba/netlogon
    locking = No
    write list = @"Domain Admins"

    # FIXME
    [printers]
    comment = All Printers
    valid users =
    browseable = no
    path = /var/spool/samba
    printable = yes
    public = no
    writable = no
    create mode = 0700
    printer admin = @"Domain Admins"

    # FIXME
    # Windows clients look for this share name as a source of downloadable
    # printer drivers
    [print$]
    comment = Printer Drivers
    path = /usr/share/cups/drv
    browseable = yes
    read only = yes
    guest ok = no
    write list = @"Domain Admins"

    #===================== End File =========================


    Agregar la cuenta Admin del Directorio LDAP al Samba:

    root@domainsrv:~# smbpasswd -w CLAVE-ADMIN-DEL-LDAP
    Setting stored password for "cn=admin,dc=dominioprueba" in secrets.tdb


    Ldap Account Manager


    ingresar en la dirección http://ipdelserver/lam, y luego en "LAM Configuration" o "Configuración LAM", dependiendo de en que idioma este seteado. La clave por defecto para ingresar en la edición de configuraciones es "lam".

    Elegir "Editar la configuracion general "o ""Edit general settings" para editar las configuraciones globales del LAM o para cambiar el master password.

    Elegir "Editar perfil del servidor" o "Edit server profiles" para agregar el perfil para su Directorio LDAP.


    File System con ACL


    Editar el archivo /etc/fstab para agregar al sistema de archivos que usen la posibilidad de dar permisos por ACL. Los permisos con ACL son permisos mejorados, ya que son permisos extendidos que mejoran el tipico permiso de owner,group,other estandar de todo sistema Linux.

    File System sin ACL:
    /dev/hda2 / ext4 defaults 1 1

    File System con ACL:
    /dev/hda2 / ext4 defaults,acl 1 1


    Notas Finales


    Con esto ya tienen un Dominio Samba, sobre Slackware 13 con autenticación LDAP. Les aconsejo instalar el Webmin, que es una aplicación Web desde la cual se pueden configurar muchos aspectos del Servidor, y les va a servir mas que nada para configurar los recursos compartidos por Samba, sean directorios o impresoras, y los permisos de los mismos, para lo cual recomiendo le instalen el módulo de ACLs.

    Espero les sirva y por cualquier consulta no duden en preguntar
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    8 comentarios / 23822 Visitas

      • 97
      • mensajes
      • miembro desde
      • 08/07/04
    02/03/2010
    #2 Re: Dominio Samba + LDAP en Slackware 13

    wow excelente el aporte! ya mismo me lo estoy guardando!

      • 507
      • mensajes
      • miembro desde
      • 04/06/07
    • Senior Member
    07/03/2010
    #3 Re: Dominio Samba + LDAP en Slackware 13

    Algo asi me andaba buscando, gracias

    Saludos

      • 111
      • mensajes
      • miembro desde
      • 15/02/06
    17/03/2010
    #4 Re: Dominio Samba + LDAP en Slackware 13

    hola gente.. consulta: necesito crear alguna politica en LDAP para que los usuarios de Windows XP cuando se logeen les deshabilite el USB. LDAP esta corriendo en un rhel 5.2.

    Saludos y gracias por el aporte!
    D.

      • 27
      • mensajes
      • miembro desde
      • 14/08/08
    17/03/2010
    #5 Re: Dominio Samba + LDAP en Slackware 13
    Cita Escrito por Danieliten Ver mensaje
    hola gente.. consulta: necesito crear alguna politica en LDAP para que los usuarios de Windows XP cuando se logeen les deshabilite el USB. LDAP esta corriendo en un rhel 5.2.

    Saludos y gracias por el aporte!
    D.
    El administrador del dominio tiene acceso a los clientes windows?, porque de ser asi el caso, podes configurarlo en los clientes. Ahora, si es una empresa grande donde no se tiene control de los clientes windows, habria ahi si, que ver alguna politica de LDAP o de Samba para bloquear el acceso a los USB, lo cual por el momento no he encontrado.
      • 111
      • mensajes
      • miembro desde
      • 15/02/06
    17/03/2010
    #6 Re: Dominio Samba + LDAP en Slackware 13

    olvidalo!!! son unas 600 pcs.. la idea es que cuando se logueen al dominio segun el perfil de usuario les habilite o no el uso de USB... en AD se como es... pero en LDAP con linux ni idea!!
    saludos y gracias..
    D.

      • 27
      • mensajes
      • miembro desde
      • 14/08/08
    17/03/2010
    #7 Re: Dominio Samba + LDAP en Slackware 13
    Cita Escrito por Danieliten Ver mensaje
    olvidalo!!! son unas 600 pcs.. la idea es que cuando se logueen al dominio segun el perfil de usuario les habilite o no el uso de USB... en AD se como es... pero en LDAP con linux ni idea!!
    saludos y gracias..
    D.
    Ok, recien estuve investigando, porque la verdad nunca se me habia presentado el caso, y veo que Samba tiene la posibilidad de bloquear todo tipo de accesos en los clientes windows, para lo cual hay que crear un archivo de politicas con una aplicacion que venia con Windows98, el poledit.exe, y el archivo de politicas hay que ponerlo en la carpeta NETLOGON del Samba. He visto que hay bastante info en Google de como implementar las politicas en Samba con poledit. Espero eso te sirva, de paso voy a investigar yo tambien porque me parece una muy buena utilidad.
      • 27
      • mensajes
      • miembro desde
      • 14/08/08
    22/03/2010
    #8 Re: Dominio Samba + LDAP en Slackware 13
    Cita Escrito por Danieliten Ver mensaje
    olvidalo!!! son unas 600 pcs.. la idea es que cuando se logueen al dominio segun el perfil de usuario les habilite o no el uso de USB... en AD se como es... pero en LDAP con linux ni idea!!
    saludos y gracias..
    D.
    Daniel, estuve viendo mas a fondo y llegue a la solución para tu tema. En primera instancia estaba correcto, es necesario usar el poledit, solo que para los clientes XP se necesita usar el poledit de Windows 2000. Hice pruebas con politicas simples como que el usuario no vea los discos de la PC, o no poder acceder al Panel de Control, y anduvo de 10, el archivo .pol que generas con el poledit tenes que nombrarlo como NTConfig.POL y colocarlo en la carpeta que samba tiene configurada para el NETLOGON. Puntualizando sobre el bloqueo de USB, encontre en google un articulo donde alguien mostraba como realizar ese bloqueo, creando un nuevo archivo de politicas (.adm), que luego lo podes cargar con el poledit y asi agregarle esa funcionalidad a la restriccion de politicas.
      • 1
      • mensajes
      • miembro desde
      • 09/09/10
    09/09/2010
    #9 Re: Dominio Samba + LDAP en Slackware 13

    Olá parabens pelo artigo.

    Desculpe mas sou brasileiro e não falo espanhol, mas consegui entender seu artigo.

    Gostaria de saber quais séries você utilizou na instalação do slackware, pois acredito que você não realizou uma instalação completa.

    Muito Obrigado!

    Google Translator:

    Hola felicitaciones sobre el artículo.

    Lo siento pero yo soy brasileño y yo no hablo español, pero yo podía entender su artículo.

    ¿Quiere saber lo que diferencia a que utilizó en la instalación de Slackware, porque considero que no ha realizado una instalación completa.

    ¡Gracias!