Repository 32bit  Forum
Repository 64bit  Wiki

Autenticazione con LDAP per Samba: differenze tra le versioni

Da Slacky.eu.
(Installazione degli smbldap-tools)
(Installazione degli smbldap-tools)
Riga 156: Riga 156:
* ''IO::Socket::SSL'';
* ''IO::Socket::SSL'';
* ''Net::SSLeay''.
* ''Net::SSLeay''.
  +
#.
# Scompattare gli archivi appena scaricati con tar:
# Scompattare gli archivi appena scaricati con tar:
for archivio in *; do tar -xvzf $archivio; done
for archivio in *; do tar -xvzf $archivio; done

Versione delle 09:59, 25 set 2006


WORK IN PROGRESS

Indice

Introduzione

Come installare e configurare samba come controllore di dominio di primo livello.

Questa guida descrive come installare e configurare Samba come PDC autenticando gli utenti con LDAP. Il sistema imposta un potente e sicuro file/print server oltre ad un robusto Directory Server.

Inoltre il server samba fa anche da logon server per i client Windows® che con l'aiuto dei “logons script” accedono automaticamente ai propri dischi condivisi in base al base al gruppo di appartenenza.

Prima di cominciare

Questa guida descrive come integrare ldap in Samba, quindi mostra:

  • come installare e configurare ldap (installando e configurando OpenLDAP, gli script IDEALX per samba, i file slapd.conf e /etc/ldap.conf, Pluggable Authentication Modules (PAM) e infine avvio di OpenLDAP);
  • come installare e configurare samba (installazione e avvio di samba, creazione delle cartelle e dei dischi condivisi, configurazione del file smb.conf e impostazione del database delle password LDAP, inizializzazione del database e integrazione di PAM, aggiunta di utenti e workstation windows® nella Directory;
  • come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).

Prerequisiti

Sono necessari una buona conoscenza dei sistemi UNIX®/LINUX® dal punto di vista della shell (riga di comando) e nozioni anche di base di networking e di prommazione in python o perl (per la creazione degli logon script, qui è stato usato python).

La distribuzione di riferimento è una Fedora Core 5, però la procedura qui descritta funziona su tutte le altre distribuzioni (es. Slackware®) e le varianti UNIX® come AIX e HP-UX.

È racomandato procurasi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).

I programmi usati sono i seguenti:

  • OpenSSL;
  • OpenLDAP;
  • Samba;
  • Modulo Perl Crypt::SmbHash;
  • Module Perl Digest::SHA1;
  • Modulo Perl IO::Socket::SSL;
  • Modulo Perl Net::SSLeay.

Schema della rete

La semplicità della rete in esame la rende facilmente adattabile ad una piccola rete domestica. E' stato usato un router a banda larga con firewall integrato.

     +------------+
     |  PC LINUX  |
     | con Server |
     |    Samba   |
     +------+-----+        +----------+               __________
            |              |  ROUTER  |              |          |
-----+------+------+-------+    +     +---- >> --- >>| INTERNET |
     |             |       | FIREWALL |              |__________|
+----+----+   +----+----+  +----------+
| WINDOWS |   | WINDOWS |
| CLIENT  |   | CLIENT  |
+---------+   +---------+

Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione.

Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo accesso alle condivisioni del proprio gruppo.

Gli utenti del gruppo amministrazione hanno dei dischi accessibili solo dgli amministratori, hanno però dei privileggi che consentono loro di accedere alle condivisioni sia di finanze sia di ricerca.

Introduzione a LDAP

LDAP : Lightweight Directory Access Protocol, è un protollo per far comunicare più computer con un Directory Server (rfc 1777 e 2251); è stato progettato per permettere un accesso leggero ad alberi derivati da Directory X.500 OSI Directory Access Protocol (DAP).

I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali.

Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.

Esempio di Directory:

              _
             (_) dc=vicenza, dc=linux, dc=it

              |
              |
    +---------+---------+
    |         |         |
    |         |         |
    _         _         _
   (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it

                        |
                        |
              +---------+---------+
              |         |         |
              |         |         |
              _         _         _
             (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it

Integrazione LDAP - SAMBA

Esistono tre principali punti d'integrazione di Samba in un server LDAP:

  • il primo è l'inclusione dello schema samba nel server LDAP;
  • il secondo è la configurazione di samba per autenticare via il server LDAP, grazie all'utility PAM che crea uno strato di astrazione nel processo di autenticazione, nascondendone la complessità (decidendo ad esempio se usare un file, LDAP, oppure un altro meccanismo di autenticazione);
  • il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba” prodotti da terzi, ma rilasciati sotto licenza GPL.

Configurazione di LDAP

Installazione di OpenLDAP

Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi:

rpm -qa | grep ldap

se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei mirror e installarlo con il comando:

rpm -ivh openladp-2.3.24-2.i386.rpm 

oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).

Questo è un esempio output che ottengo sulla mia Slackware:

root@chrix:~# ls /var/log/packages/ | grep -i ldap
nss_ldap-244-i486-1wsa
openldap-2.3.24-i486-2kjz

in caso contrario è possibile scaricare il pacchetto precompilato su uno dei repository di Slackware oppure installarlo direttamente con swaret o altri strumenti di aggiornamento online.

Installazione degli smbldap-tools

Essi sono richiesti per automatizzare la maggior parte delle interazioni tra samba e il server LDAP, contengono ad esempio script che samba richiama automaticamente per aggiungere/rimuovere utenti e/o gruppi, agiungere computer... Sono scritti in perl e quindi eseguibili da shell. Di solito sono già inclusi in vari distribuzioni col pacchetto samba, questo è l'output che ottengo sulla mia Slackware:

root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1
root@chrix:~# ls
CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf
COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm
ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod
FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow
INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf

per installare gli IDEALX toolkit:

  • andare sul sito e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);
  • scompattare l'archivio in una cartella temporanea col comando:
tar -xvzf smbldap-tool-0.9.1.tar.gz
  • creare una cartella per gli script quindi impostare i permessi giusti:
mkdir -p /var/lib/samba/sbin
chmod -R 755 /var/lib/samba/
  • entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:
cd smbldap-tool-0.9.1
cp smbldap* configure.pl /var/lib/samba/sbin
  • impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:
chmod 755 *
chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm
  • infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.

Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.

  1. Andare sul sito e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):
  • Crypt::SmbHash;
  • Digest::SHA1;
  • IO::Socket::SSL;
  • Net::SSLeay.
  1. .
  2. Scompattare gli archivi appena scaricati con tar:
for archivio in *; do tar -xvzf $archivio; done
  1. Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:
perl Makefile.PL
make test
make install

Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP

Chi usa un pacchetto precompilato ( rpm o tgz ) avrà la cartella /etc/openldap contenente il file di configurazione slapd.conf, prima di editare quel file è necessario copiare il file samba.schema nella cartella /etc/openldap/schema se non già presente! E impostare i permessi corretti:

chmod 644 /etc/openldap/schema/samba.schema

Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:

root@chrix:~# cd /etc/openldap
root@chrix:~# locate samba.schema
/etc/samba/samba.schema.oc.IBM-ds
/etc/samba/samba.schema.at.IBM-ds
/etc/samba/samba.schema
/etc/openldap/schema/samba.schema
/usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds
/usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds
/usr/doc/samba-3.0.21c/examples/LDAP/samba.schema
Strumenti personali
Namespace

Varianti