<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://www.slacky.eu/wikislack/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="it">
		<id>http://www.slacky.eu/wikislack/api.php?action=feedcontributions&amp;user=Chrix&amp;feedformat=atom</id>
		<title>Slacky.eu - Contributi utente [it]</title>
		<link rel="self" type="application/atom+xml" href="http://www.slacky.eu/wikislack/api.php?action=feedcontributions&amp;user=Chrix&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Speciale:Contributi/Chrix"/>
		<updated>2013-05-23T15:26:50Z</updated>
		<subtitle>Contributi utente</subtitle>
		<generator>MediaWiki 1.20.3</generator>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2008-10-03T09:10:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 gruppo di appartenenza.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive il setup di un PDC con OpenLdap e Samba:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX scripts:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi popolare il database di ldap eseguendo lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-10-03T09:09:03Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-10-03T09:08:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
* [http://www.linkedin.com/in/edjenguele Visualizza il mio profilo pubblico su linkedIn]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Slackware_For_Dummies_Project</id>
		<title>Slackware For Dummies Project</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Slackware_For_Dummies_Project"/>
				<updated>2008-08-31T19:22:10Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Gli argomenti nuovi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Slackware For Dummies Project =&lt;br /&gt;
Slackware For Dummies è un progetto ideato e gestito da Mauro Sacchetto che raccoglie circa 350 pagine di esperienze testate sulla famosa distribuzione &lt;br /&gt;
GNU/Linux Slackware. Per comodità e per aumentare l'importanza di questo testo abbiamo pensato di renderlo un'opera collettiva. Autore principale e &lt;br /&gt;
capo progetto rimane sempre Mauro Sacchetto, che avrà la responsabilità dei testi. Quindi il collaboratore dovrà stendere del testo, che poi verrà, se e dove necessario, modificato nel contenuto e nella forma per garantire l'omogeneità del lavoro.&lt;br /&gt;
&lt;br /&gt;
= Formato e sorgenti =&lt;br /&gt;
Il formato finale dell'opera è il pdf, i sorgenti sono scritti in LaTeX, forse il migliore linguaggio di markup usato per la preparazione di testi &lt;br /&gt;
professionali. Di conseguenza, il risultato finale sarà un testo ben disposto, di facile lettura e adatto anche alla stampa/rilegatura. I sorgenti &lt;br /&gt;
sono disponibili a questo indirizzo http://www.slacky.eu/s4d/S4d_sources.tar.bz2, mentre l'ultimo pdf stabile è disponibile a questo indirizzo http://www.slacky.eu/s4d/S4d.pdf. Presto inseriremo anche i links delle versioni current.&lt;br /&gt;
&lt;br /&gt;
= Collaborare con nuovi capitoli =&lt;br /&gt;
Nel capitolo successivo troverete un breve elenco dei nuovi argomenti da trattare. Se siete interessati a redigere uno dei capitoli proposti dovete &lt;br /&gt;
fare richiesta all'indirizzo mail '''s4d@slacky.it''' specificando i vostri dati (nome utente del forum e nome cognome), e quindi una breve introduzione su &lt;br /&gt;
come avete pensato di pianificare il vostro lavoro. Resta inteso che tutto quello che scrivete deve essere frutto di una esperienza testata sulla &lt;br /&gt;
Slackware Current, in modo tale da garantire al momento dell'uscita della nuova release stabile di Slackware anche la relativa documentazione.&lt;br /&gt;
&lt;br /&gt;
= Gli argomenti nuovi =&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;lightblue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Capitolo:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Prenotato da:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Stato:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Nuovi servizi aggiunti in Slackware 12.0&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Configurazione del server X&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistema di montaggio dei dispositivi (hal)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistemi di aggiornamento pacchetti (slackpkg)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Loris&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Introduzione alla sicurezza&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Chrix&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;100%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Ssh&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Puzuma&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Iptables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Gruppi di default del sistema&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Manutenzione hd&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Caratteristiche e uso dei log&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Personalizzazione DVD Slackware&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sicurezza con NFS&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Dual boot con vista&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Wireless&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Bluetooth&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Qualche nuovo tip&amp;amp;trick&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Tecnica base di compilazione del kernel&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Bart&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;50%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Multimedia, gestire i file sonori, video e multimediali&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Appendice &amp;quot;come fare cosa&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Mauro Sacchetto&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Proposte di ampliamento =&lt;br /&gt;
I temi già proposti in questa pagina costituiscono un notevole aggiornamento e ampliamento della passata edizione di &amp;quot;S4d&amp;quot;. In ogni caso, è possibile &lt;br /&gt;
proporre altri temi, soprattutto da parte di coloro che volessero poi assumersi l'impegno di svilupparne la trattazione.&lt;br /&gt;
&lt;br /&gt;
= Revisione old version=&lt;br /&gt;
In linea di massima la versione attuale, basata sulla Slackware 11.0, è compatibile con la versione 12.0/current ma sicuramente ci sono delle parti che vanno modificate. Il metodo migliore per proporre le modifiche è il diff dei sorgenti, mi spiego meglio. Scaricate i sorgenti&lt;br /&gt;
 wget http://www.slacky.eu/s4d/S4d_sources.tar.bz2&lt;br /&gt;
scompattate&lt;br /&gt;
 tar xjf S4d_sources.tar.bz2&lt;br /&gt;
vi spostate all'interno della dir&lt;br /&gt;
 cd s4d_source&lt;br /&gt;
modificate il capitolo (vedi estensione .tex) con il vostro editor preferito, salvate con l'estensione .new e generate il file .diff&lt;br /&gt;
 diff -u file_originale.tex file_modificato.tex.new &amp;gt; file_originale.tex.diff&lt;br /&gt;
a questo punto dovete solo inviare il file file_originale.tex.diff a questo indirizzo '''s4d@slacky.it'''&lt;br /&gt;
&lt;br /&gt;
= Contatti e forum =&lt;br /&gt;
 Mauro Sacchetto mauro.sacchetto@gmail.com&lt;br /&gt;
&lt;br /&gt;
 Loris Vincenzi slacky@slacky.it&lt;br /&gt;
&lt;br /&gt;
 [http://www.slacky.eu/forum/viewforum.php?f=12 Wikislacky]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-08-20T13:50:54Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
* [http://www.linkedin.com/in/edjenguele Visualizza il mio profilo pubblico su linkedIn]&lt;br /&gt;
* [http://www.edjenguele.blogspot.com Visualizza il mio Blog]&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Slackware_For_Dummies_Project</id>
		<title>Slackware For Dummies Project</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Slackware_For_Dummies_Project"/>
				<updated>2008-08-20T13:48:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Gli argomenti nuovi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Slackware For Dummies Project =&lt;br /&gt;
Slackware For Dummies è un progetto ideato e gestito da Mauro Sacchetto che raccoglie circa 350 pagine di esperienze testate sulla famosa distribuzione &lt;br /&gt;
GNU/Linux Slackware. Per comodità e per aumentare l'importanza di questo testo abbiamo pensato di renderlo un'opera collettiva. Autore principale e &lt;br /&gt;
capo progetto rimane sempre Mauro Sacchetto, che avrà la responsabilità dei testi. Quindi il collaboratore dovrà stendere del testo, che poi verrà, se e dove necessario, modificato nel contenuto e nella forma per garantire l'omogeneità del lavoro.&lt;br /&gt;
&lt;br /&gt;
= Formato e sorgenti =&lt;br /&gt;
Il formato finale dell'opera è il pdf, i sorgenti sono scritti in LaTeX, forse il migliore linguaggio di markup usato per la preparazione di testi &lt;br /&gt;
professionali. Di conseguenza, il risultato finale sarà un testo ben disposto, di facile lettura e adatto anche alla stampa/rilegatura. I sorgenti &lt;br /&gt;
sono disponibili a questo indirizzo http://www.slacky.eu/s4d/S4d_sources.tar.bz2, mentre l'ultimo pdf stabile è disponibile a questo indirizzo http://www.slacky.eu/s4d/S4d.pdf. Presto inseriremo anche i links delle versioni current.&lt;br /&gt;
&lt;br /&gt;
= Collaborare con nuovi capitoli =&lt;br /&gt;
Nel capitolo successivo troverete un breve elenco dei nuovi argomenti da trattare. Se siete interessati a redigere uno dei capitoli proposti dovete &lt;br /&gt;
fare richiesta all'indirizzo mail '''s4d@slacky.it''' specificando i vostri dati (nome utente del forum e nome cognome), e quindi una breve introduzione su &lt;br /&gt;
come avete pensato di pianificare il vostro lavoro. Resta inteso che tutto quello che scrivete deve essere frutto di una esperienza testata sulla &lt;br /&gt;
Slackware Current, in modo tale da garantire al momento dell'uscita della nuova release stabile di Slackware anche la relativa documentazione.&lt;br /&gt;
&lt;br /&gt;
= Gli argomenti nuovi =&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;lightblue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Capitolo:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Prenotato da:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Stato:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Nuovi servizi aggiunti in Slackware 12.0&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Configurazione del server X&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistema di montaggio dei dispositivi (hal)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistemi di aggiornamento pacchetti (slackpkg)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Loris&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Introduzione alla sicurezza&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Chrix&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;99%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Ssh&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Puzuma&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Iptables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Gruppi di default del sistema&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Manutenzione hd&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Caratteristiche e uso dei log&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Personalizzazione DVD Slackware&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sicurezza con NFS&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Dual boot con vista&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Wireless&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Bluetooth&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Qualche nuovo tip&amp;amp;trick&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Tecnica base di compilazione del kernel&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Bart&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;50%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Multimedia, gestire i file sonori, video e multimediali&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Appendice &amp;quot;come fare cosa&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Mauro Sacchetto&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Proposte di ampliamento =&lt;br /&gt;
I temi già proposti in questa pagina costituiscono un notevole aggiornamento e ampliamento della passata edizione di &amp;quot;S4d&amp;quot;. In ogni caso, è possibile &lt;br /&gt;
proporre altri temi, soprattutto da parte di coloro che volessero poi assumersi l'impegno di svilupparne la trattazione.&lt;br /&gt;
&lt;br /&gt;
= Revisione old version=&lt;br /&gt;
In linea di massima la versione attuale, basata sulla Slackware 11.0, è compatibile con la versione 12.0/current ma sicuramente ci sono delle parti che vanno modificate. Il metodo migliore per proporre le modifiche è il diff dei sorgenti, mi spiego meglio. Scaricate i sorgenti&lt;br /&gt;
 wget http://www.slacky.eu/s4d/S4d_sources.tar.bz2&lt;br /&gt;
scompattate&lt;br /&gt;
 tar xjf S4d_sources.tar.bz2&lt;br /&gt;
vi spostate all'interno della dir&lt;br /&gt;
 cd s4d_source&lt;br /&gt;
modificate il capitolo (vedi estensione .tex) con il vostro editor preferito, salvate con l'estensione .new e generate il file .diff&lt;br /&gt;
 diff -u file_originale.tex file_modificato.tex.new &amp;gt; file_originale.tex.diff&lt;br /&gt;
a questo punto dovete solo inviare il file file_originale.tex.diff a questo indirizzo '''s4d@slacky.it'''&lt;br /&gt;
&lt;br /&gt;
= Contatti e forum =&lt;br /&gt;
 Mauro Sacchetto mauro.sacchetto@gmail.com&lt;br /&gt;
&lt;br /&gt;
 Loris Vincenzi slacky@slacky.it&lt;br /&gt;
&lt;br /&gt;
 [http://www.slacky.eu/forum/viewforum.php?f=12 Wikislacky]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Slackware_For_Dummies_Project</id>
		<title>Slackware For Dummies Project</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Slackware_For_Dummies_Project"/>
				<updated>2008-08-19T17:24:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Gli argomenti nuovi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Slackware For Dummies Project =&lt;br /&gt;
Slackware For Dummies è un progetto ideato e gestito da Mauro Sacchetto che raccoglie circa 350 pagine di esperienze testate sulla famosa distribuzione &lt;br /&gt;
GNU/Linux Slackware. Per comodità e per aumentare l'importanza di questo testo abbiamo pensato di renderlo un'opera collettiva. Autore principale e &lt;br /&gt;
capo progetto rimane sempre Mauro Sacchetto, che avrà la responsabilità dei testi. Quindi il collaboratore dovrà stendere del testo, che poi verrà, se e dove necessario, modificato nel contenuto e nella forma per garantire l'omogeneità del lavoro.&lt;br /&gt;
&lt;br /&gt;
= Formato e sorgenti =&lt;br /&gt;
Il formato finale dell'opera è il pdf, i sorgenti sono scritti in LaTeX, forse il migliore linguaggio di markup usato per la preparazione di testi &lt;br /&gt;
professionali. Di conseguenza, il risultato finale sarà un testo ben disposto, di facile lettura e adatto anche alla stampa/rilegatura. I sorgenti &lt;br /&gt;
sono disponibili a questo indirizzo http://www.slacky.eu/s4d/S4d_sources.tar.bz2, mentre l'ultimo pdf stabile è disponibile a questo indirizzo http://www.slacky.eu/s4d/S4d.pdf. Presto inseriremo anche i links delle versioni current.&lt;br /&gt;
&lt;br /&gt;
= Collaborare con nuovi capitoli =&lt;br /&gt;
Nel capitolo successivo troverete un breve elenco dei nuovi argomenti da trattare. Se siete interessati a redigere uno dei capitoli proposti dovete &lt;br /&gt;
fare richiesta all'indirizzo mail '''s4d@slacky.it''' specificando i vostri dati (nome utente del forum e nome cognome), e quindi una breve introduzione su &lt;br /&gt;
come avete pensato di pianificare il vostro lavoro. Resta inteso che tutto quello che scrivete deve essere frutto di una esperienza testata sulla &lt;br /&gt;
Slackware Current, in modo tale da garantire al momento dell'uscita della nuova release stabile di Slackware anche la relativa documentazione.&lt;br /&gt;
&lt;br /&gt;
= Gli argomenti nuovi =&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;lightblue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Capitolo:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Prenotato da:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Stato:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Nuovi servizi aggiunti in Slackware 12.0&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Configurazione del server X&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistema di montaggio dei dispositivi (hal)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistemi di aggiornamento pacchetti (slackpkg)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Loris&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Introduzione alla sicurezza&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Chrix&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;90%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Ssh&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Puzuma&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Iptables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Gruppi di default del sistema&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Manutenzione hd&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Caratteristiche e uso dei log&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Personalizzazione DVD Slackware&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sicurezza con NFS&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Dual boot con vista&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Wireless&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Bluetooth&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Qualche nuovo tip&amp;amp;trick&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Tecnica base di compilazione del kernel&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Bart&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;50%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Multimedia, gestire i file sonori, video e multimediali&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Appendice &amp;quot;come fare cosa&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Mauro Sacchetto&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Proposte di ampliamento =&lt;br /&gt;
I temi già proposti in questa pagina costituiscono un notevole aggiornamento e ampliamento della passata edizione di &amp;quot;S4d&amp;quot;. In ogni caso, è possibile &lt;br /&gt;
proporre altri temi, soprattutto da parte di coloro che volessero poi assumersi l'impegno di svilupparne la trattazione.&lt;br /&gt;
&lt;br /&gt;
= Revisione old version=&lt;br /&gt;
In linea di massima la versione attuale, basata sulla Slackware 11.0, è compatibile con la versione 12.0/current ma sicuramente ci sono delle parti che vanno modificate. Il metodo migliore per proporre le modifiche è il diff dei sorgenti, mi spiego meglio. Scaricate i sorgenti&lt;br /&gt;
 wget http://www.slacky.eu/s4d/S4d_sources.tar.bz2&lt;br /&gt;
scompattate&lt;br /&gt;
 tar xjf S4d_sources.tar.bz2&lt;br /&gt;
vi spostate all'interno della dir&lt;br /&gt;
 cd s4d_source&lt;br /&gt;
modificate il capitolo (vedi estensione .tex) con il vostro editor preferito, salvate con l'estensione .new e generate il file .diff&lt;br /&gt;
 diff -u file_originale.tex file_modificato.tex.new &amp;gt; file_originale.tex.diff&lt;br /&gt;
a questo punto dovete solo inviare il file file_originale.tex.diff a questo indirizzo '''s4d@slacky.it'''&lt;br /&gt;
&lt;br /&gt;
= Contatti e forum =&lt;br /&gt;
 Mauro Sacchetto mauro.sacchetto@gmail.com&lt;br /&gt;
&lt;br /&gt;
 Loris Vincenzi slacky@slacky.it&lt;br /&gt;
&lt;br /&gt;
 [http://www.slacky.eu/forum/viewforum.php?f=12 Wikislacky]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Slackware_For_Dummies_Project</id>
		<title>Slackware For Dummies Project</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Slackware_For_Dummies_Project"/>
				<updated>2008-08-18T13:08:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Gli argomenti nuovi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Slackware For Dummies Project =&lt;br /&gt;
Slackware For Dummies è un progetto ideato e gestito da Mauro Sacchetto che raccoglie circa 350 pagine di esperienze testate sulla famosa distribuzione &lt;br /&gt;
GNU/Linux Slackware. Per comodità e per aumentare l'importanza di questo testo abbiamo pensato di renderlo un'opera collettiva. Autore principale e &lt;br /&gt;
capo progetto rimane sempre Mauro Sacchetto, che avrà la responsabilità dei testi. Quindi il collaboratore dovrà stendere del testo, che poi verrà, se e dove necessario, modificato nel contenuto e nella forma per garantire l'omogeneità del lavoro.&lt;br /&gt;
&lt;br /&gt;
= Formato e sorgenti =&lt;br /&gt;
Il formato finale dell'opera è il pdf, i sorgenti sono scritti in LaTeX, forse il migliore linguaggio di markup usato per la preparazione di testi &lt;br /&gt;
professionali. Di conseguenza, il risultato finale sarà un testo ben disposto, di facile lettura e adatto anche alla stampa/rilegatura. I sorgenti &lt;br /&gt;
sono disponibili a questo indirizzo http://www.slacky.eu/s4d/S4d_sources.tar.bz2, mentre l'ultimo pdf stabile è disponibile a questo indirizzo http://www.slacky.eu/s4d/S4d.pdf. Presto inseriremo anche i links delle versioni current.&lt;br /&gt;
&lt;br /&gt;
= Collaborare con nuovi capitoli =&lt;br /&gt;
Nel capitolo successivo troverete un breve elenco dei nuovi argomenti da trattare. Se siete interessati a redigere uno dei capitoli proposti dovete &lt;br /&gt;
fare richiesta all'indirizzo mail '''s4d@slacky.it''' specificando i vostri dati (nome utente del forum e nome cognome), e quindi una breve introduzione su &lt;br /&gt;
come avete pensato di pianificare il vostro lavoro. Resta inteso che tutto quello che scrivete deve essere frutto di una esperienza testata sulla &lt;br /&gt;
Slackware Current, in modo tale da garantire al momento dell'uscita della nuova release stabile di Slackware anche la relativa documentazione.&lt;br /&gt;
&lt;br /&gt;
= Gli argomenti nuovi =&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;lightblue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Capitolo:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Prenotato da:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Stato:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Nuovi servizi aggiunti in Slackware 12.0&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Configurazione del server X&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistema di montaggio dei dispositivi (hal)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistemi di aggiornamento pacchetti (slackpkg)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Loris&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Introduzione alla sicurezza&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Chrix&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;80%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Ssh&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Puzuma&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Iptables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Gruppi di default del sistema&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Manutenzione hd&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Caratteristiche e uso dei log&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Personalizzazione DVD Slackware&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sicurezza con NFS&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Dual boot con vista&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Wireless&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Bluetooth&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Qualche nuovo tip&amp;amp;trick&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Tecnica base di compilazione del kernel&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Bart&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;50%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Multimedia, gestire i file sonori, video e multimediali&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Appendice &amp;quot;come fare cosa&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Mauro Sacchetto&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Proposte di ampliamento =&lt;br /&gt;
I temi già proposti in questa pagina costituiscono un notevole aggiornamento e ampliamento della passata edizione di &amp;quot;S4d&amp;quot;. In ogni caso, è possibile &lt;br /&gt;
proporre altri temi, soprattutto da parte di coloro che volessero poi assumersi l'impegno di svilupparne la trattazione.&lt;br /&gt;
&lt;br /&gt;
= Revisione old version=&lt;br /&gt;
In linea di massima la versione attuale, basata sulla Slackware 11.0, è compatibile con la versione 12.0/current ma sicuramente ci sono delle parti che vanno modificate. Il metodo migliore per proporre le modifiche è il diff dei sorgenti, mi spiego meglio. Scaricate i sorgenti&lt;br /&gt;
 wget http://www.slacky.eu/s4d/S4d_sources.tar.bz2&lt;br /&gt;
scompattate&lt;br /&gt;
 tar xjf S4d_sources.tar.bz2&lt;br /&gt;
vi spostate all'interno della dir&lt;br /&gt;
 cd s4d_source&lt;br /&gt;
modificate il capitolo (vedi estensione .tex) con il vostro editor preferito, salvate con l'estensione .new e generate il file .diff&lt;br /&gt;
 diff -u file_originale.tex file_modificato.tex.new &amp;gt; file_originale.tex.diff&lt;br /&gt;
a questo punto dovete solo inviare il file file_originale.tex.diff a questo indirizzo '''s4d@slacky.it'''&lt;br /&gt;
&lt;br /&gt;
= Contatti e forum =&lt;br /&gt;
 Mauro Sacchetto mauro.sacchetto@gmail.com&lt;br /&gt;
&lt;br /&gt;
 Loris Vincenzi slacky@slacky.it&lt;br /&gt;
&lt;br /&gt;
 [http://www.slacky.eu/forum/viewforum.php?f=12 Wikislacky]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Slackware_For_Dummies_Project</id>
		<title>Slackware For Dummies Project</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Slackware_For_Dummies_Project"/>
				<updated>2008-08-07T12:00:46Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Gli argomenti nuovi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Slackware For Dummies Project =&lt;br /&gt;
Slackware For Dummies è un progetto ideato e gestito da Mauro Sacchetto che raccoglie circa 350 pagine di esperienze testate sulla famosa distribuzione &lt;br /&gt;
GNU/Linux Slackware. Per comodità e per aumentare l'importanza di questo testo abbiamo pensato di renderlo un'opera collettiva. Autore principale e &lt;br /&gt;
capo progetto rimane sempre Mauro Sacchetto, che avrà la responsabilità dei testi. Quindi il collaboratore dovrà stendere del testo, che poi verrà, se e dove necessario, modificato nel contenuto e nella forma per garantire l'omogeneità del lavoro.&lt;br /&gt;
&lt;br /&gt;
= Formato e sorgenti =&lt;br /&gt;
Il formato finale dell'opera è il pdf, i sorgenti sono scritti in LaTeX, forse il migliore linguaggio di markup usato per la preparazione di testi &lt;br /&gt;
professionali. Di conseguenza, il risultato finale sarà un testo ben disposto, di facile lettura e adatto anche alla stampa/rilegatura. I sorgenti &lt;br /&gt;
sono disponibili a questo indirizzo http://www.slacky.eu/s4d/S4d_sources.tar.bz2, mentre l'ultimo pdf stabile è disponibile a questo indirizzo http://www.slacky.eu/s4d/S4d.pdf. Presto inseriremo anche i links delle versioni current.&lt;br /&gt;
&lt;br /&gt;
= Collaborare con nuovi capitoli =&lt;br /&gt;
Nel capitolo successivo troverete un breve elenco dei nuovi argomenti da trattare. Se siete interessati a redigere uno dei capitoli proposti dovete &lt;br /&gt;
fare richiesta all'indirizzo mail '''s4d@slacky.it''' specificando i vostri dati (nome utente del forum e nome cognome), e quindi una breve introduzione su &lt;br /&gt;
come avete pensato di pianificare il vostro lavoro. Resta inteso che tutto quello che scrivete deve essere frutto di una esperienza testata sulla &lt;br /&gt;
Slackware Current, in modo tale da garantire al momento dell'uscita della nuova release stabile di Slackware anche la relativa documentazione.&lt;br /&gt;
&lt;br /&gt;
= Gli argomenti nuovi =&lt;br /&gt;
&amp;lt;table border=&amp;quot;0&amp;quot; width=&amp;quot;100%&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;lightblue&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Capitolo:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Prenotato da:&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;div class=&amp;quot;headings&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Stato:&amp;lt;/div&amp;gt;&lt;br /&gt;
      &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Nuovi servizi aggiunti in Slackware 12.0&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Configurazione del server X&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistema di montaggio dei dispositivi (hal)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sistemi di aggiornamento pacchetti (slackpkg)&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Loris&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Introduzione alla sicurezza&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Chrix&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Ssh&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Puzuma&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Iptables&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Gruppi di default del sistema&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Manutenzione hd&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Caratteristiche e uso dei log&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Personalizzazione DVD Slackware&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Sicurezza con NFS&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Dual boot con vista&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Wireless&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Bluetooth&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Qualche nuovo tip&amp;amp;trick&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Tecnica base di compilazione del kernel&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Bart&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;50%&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Multimedia, gestire i file sonori, video e multimediali&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Nessuno&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;tr bgcolor=&amp;quot;#f5fbff&amp;quot;&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;30%&amp;quot;&amp;gt;Appendice &amp;quot;come fare cosa&amp;quot;&amp;lt;/td&amp;gt;&lt;br /&gt;
      &amp;lt;td width=&amp;quot;20%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Mauro Sacchetto&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
      &amp;lt;td width=&amp;quot;50%&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;Da fare&amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Proposte di ampliamento =&lt;br /&gt;
I temi già proposti in questa pagina costituiscono un notevole aggiornamento e ampliamento della passata edizione di &amp;quot;S4d&amp;quot;. In ogni caso, è possibile &lt;br /&gt;
proporre altri temi, soprattutto da parte di coloro che volessero poi assumersi l'impegno di svilupparne la trattazione.&lt;br /&gt;
&lt;br /&gt;
= Revisione old version=&lt;br /&gt;
In linea di massima la versione attuale, basata sulla Slackware 11.0, è compatibile con la versione 12.0/current ma sicuramente ci sono delle parti che vanno modificate. Il metodo migliore per proporre le modifiche è il diff dei sorgenti, mi spiego meglio. Scaricate i sorgenti&lt;br /&gt;
 wget http://www.slacky.eu/s4d/S4d_sources.tar.bz2&lt;br /&gt;
scompattate&lt;br /&gt;
 tar xjf S4d_sources.tar.bz2&lt;br /&gt;
vi spostate all'interno della dir&lt;br /&gt;
 cd s4d_source&lt;br /&gt;
modificate il capitolo (vedi estensione .tex) con il vostro editor preferito, salvate con l'estensione .new e generate il file .diff&lt;br /&gt;
 diff -u file_originale.tex file_modificato.tex.new &amp;gt; file_originale.tex.diff&lt;br /&gt;
a questo punto dovete solo inviare il file file_originale.tex.diff a questo indirizzo '''s4d@slacky.it'''&lt;br /&gt;
&lt;br /&gt;
= Contatti e forum =&lt;br /&gt;
 Mauro Sacchetto mauro.sacchetto@gmail.com&lt;br /&gt;
&lt;br /&gt;
 Loris Vincenzi slacky@slacky.it&lt;br /&gt;
&lt;br /&gt;
 [http://www.slacky.eu/forum/viewforum.php?f=12 Wikislacky]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-05-19T19:36:25Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
* [http://www.linkedin.com/in/edjenguele Visualizza il mio profilo pubblico su linkedIn]&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-05-19T11:56:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
* [http://www.linkedin.com/in/edjenguele Il mio profilo pubblico su linkedIn]&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-05-19T11:56:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
* [http://http://www.linkedin.com/in/edjenguele Il mio profilo pubblico su linkedIn]&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-05-19T10:44:51Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Interessi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica: Protezione Perimetrale, Web Application Secrurity, Security Assessment, Information Gathering, Network Ennumeration&lt;br /&gt;
* Linguaggi di Programmazione: Python, Java, C/C++&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2008-05-19T10:42:29Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* About Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric Edjenguele&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica (Protezione Perimetrale)&lt;br /&gt;
* Linguaggi di Programmazione&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-07-20T15:26:11Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Prima di cominciare */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 gruppo di appartenenza.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive il setup di un PDC con OpenLdap e Samba:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX scripts:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi popolare il database di ldap eseguendo lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-28T22:02:47Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Introduzione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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 gruppo di appartenenza.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX scripts:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi popolare il database di ldap eseguendo lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-20T10:49:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Inizializzazione del database di LDAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX scripts:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi popolare il database di ldap eseguendo lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-15T20:15:15Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Installazione degli smbldap-tools */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX scripts:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-15T20:12:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Introduzione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello (PDC).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX toolkit:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2007-02-12T19:49:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Interessi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica (Protezione Perimetrale)&lt;br /&gt;
* Linguaggi di Programmazione&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux</id>
		<title>Creazione di una man page sotto Linux</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux"/>
				<updated>2007-02-12T19:49:01Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Packages]]&lt;br /&gt;
= Sommario =&lt;br /&gt;
Una pagina di manuale detta « man » è l'elemento indispensabile di un programma. In effetti, essa fornisce le&lt;br /&gt;
informazioni essenziali riguardo l'uso di un programma e necessita poco spazio sul disco. questo &lt;br /&gt;
articolo vi permetterà di realizzare la votra pagina di manuale molto velocemente.&lt;br /&gt;
&lt;br /&gt;
= Avvertenza =&lt;br /&gt;
Questo articolo non è destinato a spiegarvi l'uso di ogni macro macro, per maggiori informazioni,consultare&lt;br /&gt;
la pagina di manuale denomminata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Un buon programma è sempre munito di una documentazione. in effetti il manuale è l'elemento essenziale&lt;br /&gt;
e indispensabile per l'utente finale. Imaginate la prima reazione di un utente se quello si trova nell'incapacita di capirne&lt;br /&gt;
il funczionnamento !!!&lt;br /&gt;
Scrivere un manuale d'uso, è  semplice, occupa pochissimo spazio, possibilità di converzione nei&lt;br /&gt;
formati correnti.&lt;br /&gt;
Iniziamo questo How-To con la presentazione di una pagina di manuale &amp;quot; man page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Presentazione =&lt;br /&gt;
== Le rubriche ==&lt;br /&gt;
queste sone le rubriche principali di un pagina di manuale :&lt;br /&gt;
* Nome&lt;br /&gt;
Nome del programma usato.&lt;br /&gt;
* Synopsis&lt;br /&gt;
qui si trovano la sintassi del comando del programma, le opzioni e i i parametri.&lt;br /&gt;
* Description&lt;br /&gt;
Utilizzazione del programma.&lt;br /&gt;
*     Options&lt;br /&gt;
Tutte le opzioni usate dal programma e la loro descrizione.&lt;br /&gt;
* Examples&lt;br /&gt;
Esempio d'utilizzazione dell'applicazione.&lt;br /&gt;
* Autore&lt;br /&gt;
La persona che ha realizzazato l'applicazione.&lt;br /&gt;
* Bugs&lt;br /&gt;
Permette di segnalare in caso di errore.&lt;br /&gt;
* Copyright&lt;br /&gt;
I diritti di autore.&lt;br /&gt;
&lt;br /&gt;
* Disponibilità&lt;br /&gt;
Generalmente il sito in cui è ossibile scaricare l'applicazione.&lt;br /&gt;
* Files&lt;br /&gt;
Lista dei file utilizzati dall'applicazione.&lt;br /&gt;
* See also&lt;br /&gt;
Elenca i programma che hanno un link diretto con l'applicazione.&lt;br /&gt;
* History&lt;br /&gt;
Storia delle modifiche del programma.&lt;br /&gt;
&lt;br /&gt;
== Le macro ==&lt;br /&gt;
Il linguaggio utilzzato per realizzare un manuale è relativamente semplice:i termini usati innizianno tutti con un punto&lt;br /&gt;
e sonno noti come macro. Qui sotto è riportata una lista esaustiva delle macro con le relative funzioni.&lt;br /&gt;
Macro (struttura del documento)&lt;br /&gt;
* .DT - (Tabulazione predefinita)&lt;br /&gt;
* .HP - (Inizio d'indentation)&lt;br /&gt;
* .IP - (Inizio paragrafo con parola chiave alla riga seguente)&lt;br /&gt;
* .TP - (Inizio paragrafo con parola chiave sulla stessa riga)&lt;br /&gt;
* .LP - (Inizio di un nuovo paragrafo)&lt;br /&gt;
* .PD - (Imposta la distanza al valore passato in parametro)&lt;br /&gt;
&lt;br /&gt;
* .PP - (Iniziare un nuovo paragrafo)&lt;br /&gt;
* .RE - (Fine d'indentation relativa (in un nuovo paragrafo))&lt;br /&gt;
* .RS - (Inizio d'indentation relativa (in un paragrafo))&lt;br /&gt;
* .SS - (Sotto-titolo ma per una sotto sezione)&lt;br /&gt;
* .SH - (Sotto-titolo)&lt;br /&gt;
* .TH - (Tittolo sezione data sorgente manuale)&lt;br /&gt;
* .&amp;quot;  - (Commento su una riga)&lt;br /&gt;
Macro (font per i caratteri)&lt;br /&gt;
* .B - (Grassetto)&lt;br /&gt;
* .BI - (Gras alternato con Corsivo)&lt;br /&gt;
* .BR - (Grassetto alternato con Roman)&lt;br /&gt;
* .I - (Corsivo)&lt;br /&gt;
* .IB - (Corsivo alternato con Grassetto)&lt;br /&gt;
* .IR - (Corsivo alternato con Roman)&lt;br /&gt;
* .RB - (Roman alternato con Grassetto)&lt;br /&gt;
* .RI - (Roman alternato con Corsivo)&lt;br /&gt;
* .SB - (Small alternato con Grassetto)&lt;br /&gt;
* .SM - (Small)&lt;br /&gt;
Tutte quelle macro di formattazione sono riperibili nella pagine di manuale intittolata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
== Il comando groff ==&lt;br /&gt;
Il pacchetto groff include molti programmin per l'elaborazione e la formattazione del testo. Groff traduce testo&lt;br /&gt;
e comandi specifici in output formatatto, esttamente come visualizzate su una man page.&lt;br /&gt;
&lt;br /&gt;
== Lo script nroff ==&lt;br /&gt;
Lo script nroff emula il comando nroff utilizzando groff.&lt;br /&gt;
&lt;br /&gt;
== Il comando man2html ==&lt;br /&gt;
Permette di convertire le man page in formato HTML.&lt;br /&gt;
&lt;br /&gt;
= Esempio pratico =&lt;br /&gt;
== Stesura del manuale ==&lt;br /&gt;
Ora è tempo di mettere in pratica le nozioni acquisite sulle macro. supponiamo di aver realizzato un programma per il VoIP&lt;br /&gt;
chimato &amp;quot;myvoip&amp;quot;, il comando myvoip omonimo del programma consente di effettuare chiamate verso numeri di ret fissa o di cellulare&lt;br /&gt;
con le funzionalità di un normale telefono.&lt;br /&gt;
Qui sotto è riportata la lista delle macro da utilizzare:&lt;br /&gt;
* .TH - (Intestazione del manuale)&lt;br /&gt;
* .SH - (Titolo)&lt;br /&gt;
* .SS - (Sotto-titolo)&lt;br /&gt;
* .TP - (Indenta il testo)&lt;br /&gt;
* .PP - (Nuova riga)&lt;br /&gt;
* .&amp;quot; - (Commento su una riga)&lt;br /&gt;
* .B - (Carattere in grassetto)&lt;br /&gt;
Ora edittiamo il nostro file utilizzando &amp;quot;vi&amp;quot;, digittando :&lt;br /&gt;
   vi myvoip.1&lt;br /&gt;
Prendete il tempo necessario per digitare il seguente codice:&lt;br /&gt;
 .TH myvoip 1 &amp;quot;Ottobre 17, 2006&amp;quot; &amp;quot;version 1.0&amp;quot; &amp;quot;Manuale utente&amp;quot;&lt;br /&gt;
 .SH NOME&lt;br /&gt;
 yvoip \- Chiamare nel modo più semplice.&lt;br /&gt;
 .SH SYNOPSIS&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 [\-f] [\-p] \-ssl ssl invocato&lt;br /&gt;
 .SH DESCRIPTION&lt;br /&gt;
 Il programma&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 permette di chiamare i vostri amici nel modo più semplice,con funzionaltà di un telefone tradizionale &lt;br /&gt;
 faccendovi dimenticare per sempre il cellulare e il telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 Sè non ci sono parametri, la chiamata verrà effetuata automaticamente verso un telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 L'opzione&lt;br /&gt;
 .B -f&lt;br /&gt;
 la chiamate vien rediretta verso un telefono fisso.&lt;br /&gt;
 Per contattare un vicino sul cellulare l'opzione&lt;br /&gt;
 .B -p&lt;br /&gt;
 deve'esere passata.&lt;br /&gt;
 .PP&lt;br /&gt;
 SSL invocato viene utilizzato per criptare il vostro numero di telefono&lt;br /&gt;
 in modo che nessuno possa ottenre il votro numero per&lt;br /&gt;
 questo l'opzione&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 dev'esser passata in parametro.&lt;br /&gt;
 .SH OPTIONS&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -f&lt;br /&gt;
 Chiamata verso un numero fisso.&lt;br /&gt;
Prima di proseguire, ricordatevi di verificare il vostro lavoro prima di finalizzarlo digittando:&lt;br /&gt;
    nroff -man myvoip.1 | less&lt;br /&gt;
oppure&lt;br /&gt;
  groff -Tascii -man myvoip.1 | less&lt;br /&gt;
Ora proseguiamo con la formattazione del documento :&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -p&lt;br /&gt;
 Chiamta verso un cellulare.&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 Attivazione di ssl invocato.&lt;br /&gt;
 .SH FILES&lt;br /&gt;
 .SS DIPENDENZE&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 richiede la libreria&lt;br /&gt;
 .B libmMyvoip&lt;br /&gt;
 scaricabile su :&lt;br /&gt;
 ftp.chrix.org/lib/libMyvoip/&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/bin/&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/man/man1&lt;br /&gt;
 .B myvoip.1.gz&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/doc/myvoip-1.0/&lt;br /&gt;
 .B ChangeLog&lt;br /&gt;
 .B COPYING&lt;br /&gt;
 .B INSTALL&lt;br /&gt;
 .B README&lt;br /&gt;
 .SH EXAMPLES&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f -ssl&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p -ssl&lt;br /&gt;
 .SH AUTORI&lt;br /&gt;
 Christian Eric ( chrix (at) slacky.it )&lt;br /&gt;
 .SH BUGS&lt;br /&gt;
 In caso di malfunzionamento, inviare una mail a &lt;br /&gt;
 bug-myvoip@chrix.org,&lt;br /&gt;
 specificando il numero di errore e la versione del &lt;br /&gt;
 programma in uso.&lt;br /&gt;
 .SH COPYRIGHT&lt;br /&gt;
 Copyright 2005-2006 Free Software Foundation, Inc.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 (at your option) any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is distributed in the hope that it will be useful, but&lt;br /&gt;
 WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 See the GNU General Public License for more details.&lt;br /&gt;
 .PP&lt;br /&gt;
 You should have received a copy of the GNU General Public License&lt;br /&gt;
 along with groff; see the file COPYING. If not, write to the Free&lt;br /&gt;
 Software Foundation, 49 Temple Place - Suite 330, Boston, MA&lt;br /&gt;
 02111-1307, USA.&lt;br /&gt;
 .SH DISPONIBILITA'&lt;br /&gt;
 La versione la più recente di myvoip è scaricabile via &lt;br /&gt;
 ftp all'indirizzo: ftp.chrix.org/download/myvoip.&lt;br /&gt;
&lt;br /&gt;
== Risultato finale ==&lt;br /&gt;
Ora si può procedere all'installazione del manuale.&lt;br /&gt;
&lt;br /&gt;
* Ogni pagina di di manuale dev'essere compattato in .gz. &lt;br /&gt;
Per compattare il nostro file utilizzeremo il comando gzip:&lt;br /&gt;
 gzip myvoip.1&lt;br /&gt;
&lt;br /&gt;
* Ora da root copiare il file in /usr/share/man/man1, come segue:&lt;br /&gt;
&lt;br /&gt;
 cp myvoip.1.gz /usr/share/man/man1&lt;br /&gt;
&lt;br /&gt;
* Ora il file è accessibile, potete usare il vostro emulatore di terminale preferito per visualizzarlo:&lt;br /&gt;
&lt;br /&gt;
 man myvoip&lt;br /&gt;
&lt;br /&gt;
== Conversione in formati diversi ==&lt;br /&gt;
Nostro mauale ultimato, possiamo adattarlo ai formati più usati quali file&lt;br /&gt;
&amp;quot;txt&amp;quot;, &amp;quot;postscript&amp;quot; e &amp;quot;HTML&amp;quot;. Per fare ciò useremo lo script &amp;quot;nroff&amp;quot; e i comandi&lt;br /&gt;
&amp;quot;groff&amp;quot; e &amp;quot;man2html&amp;quot;.&lt;br /&gt;
* Formato (txt) con nroff :&lt;br /&gt;
    nroff -man myvoip.1 | col -b &amp;gt; myvoip.txt&lt;br /&gt;
* Formato (PostScript) con groff :&lt;br /&gt;
    groff -man -Tps myvoip.1 &amp;gt; myvoip.ps&lt;br /&gt;
* Formato (HTML) con man2html :&lt;br /&gt;
man2html myvoip.1 &amp;gt; myvoip.html&lt;br /&gt;
&lt;br /&gt;
= Bibliografia =&lt;br /&gt;
&lt;br /&gt;
* Jens Schweikhardt. The Linux Man Page Howto.&lt;br /&gt;
* Man2html. Manual page Man2html.&lt;br /&gt;
&lt;br /&gt;
= Conclusione =&lt;br /&gt;
Spero che questo articolo vi darà le basi necessarie all'elaboration dei vostri manuali.&lt;br /&gt;
questo documento non è una guida completa, ma uno strumento che vi aiuterà a realizzare velocemente una man page.&lt;br /&gt;
&lt;br /&gt;
= Glossario =&lt;br /&gt;
* gnu&lt;br /&gt;
GNU is Not Unix.&lt;br /&gt;
* groff&lt;br /&gt;
Groff traduce testo e comandi in output formattato.&lt;br /&gt;
* gzip&lt;br /&gt;
Permette di compattare file.&lt;br /&gt;
* linux&lt;br /&gt;
OS Open Source.&lt;br /&gt;
* ls&lt;br /&gt;
Lista il contenuto della directory corrente.&lt;br /&gt;
* man&lt;br /&gt;
Visualizza tutta la documentazione relativa ad un comando.&lt;br /&gt;
* macro&lt;br /&gt;
consente la formattazione di un manuale unix.&lt;br /&gt;
* man2html&lt;br /&gt;
Converte le pagine di manuale in format HTML.&lt;br /&gt;
* nroff&lt;br /&gt;
Formatta le man page, emula il comando nroff utilisando groff.&lt;br /&gt;
* su&lt;br /&gt;
Consente un acesso all'account root e ad altri account del sistema.&lt;br /&gt;
* vi&lt;br /&gt;
Editore di testo per Linux.&lt;br /&gt;
= Autore =                                                           &lt;br /&gt;
2006 [[Utente:Chrix|Chrix]]. 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; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license to : [http://www.gnu.org/licenses/fdl.txt gnu general public license]&lt;br /&gt;
                                         http://christian.africa-web.org/&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-12T19:48:11Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX toolkit:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|Chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux</id>
		<title>Creazione di una man page sotto Linux</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux"/>
				<updated>2007-02-12T19:34:03Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Packages]]&lt;br /&gt;
= Sommario =&lt;br /&gt;
Una pagina di manuale detta « man » è l'elemento indispensabile di un programma. In effetti, essa fornisce le&lt;br /&gt;
informazioni essenziali riguardo l'uso di un programma e necessita poco spazio sul disco. questo &lt;br /&gt;
articolo vi permetterà di realizzare la votra pagina di manuale molto velocemente.&lt;br /&gt;
&lt;br /&gt;
= Avvertenza =&lt;br /&gt;
Questo articolo non è destinato a spiegarvi l'uso di ogni macro macro, per maggiori informazioni,consultare&lt;br /&gt;
la pagina di manuale denomminata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Un buon programma è sempre munito di una documentazione. in effetti il manuale è l'elemento essenziale&lt;br /&gt;
e indispensabile per l'utente finale. Imaginate la prima reazione di un utente se quello si trova nell'incapacita di capirne&lt;br /&gt;
il funczionnamento !!!&lt;br /&gt;
Scrivere un manuale d'uso, è  semplice, occupa pochissimo spazio, possibilità di converzione nei&lt;br /&gt;
formati correnti.&lt;br /&gt;
Iniziamo questo How-To con la presentazione di una pagina di manuale &amp;quot; man page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Presentazione =&lt;br /&gt;
== Le rubriche ==&lt;br /&gt;
queste sone le rubriche principali di un pagina di manuale :&lt;br /&gt;
* Nome&lt;br /&gt;
Nome del programma usato.&lt;br /&gt;
* Synopsis&lt;br /&gt;
qui si trovano la sintassi del comando del programma, le opzioni e i i parametri.&lt;br /&gt;
* Description&lt;br /&gt;
Utilizzazione del programma.&lt;br /&gt;
*     Options&lt;br /&gt;
Tutte le opzioni usate dal programma e la loro descrizione.&lt;br /&gt;
* Examples&lt;br /&gt;
Esempio d'utilizzazione dell'applicazione.&lt;br /&gt;
* Autore&lt;br /&gt;
La persona che ha realizzazato l'applicazione.&lt;br /&gt;
* Bugs&lt;br /&gt;
Permette di segnalare in caso di errore.&lt;br /&gt;
* Copyright&lt;br /&gt;
I diritti di autore.&lt;br /&gt;
&lt;br /&gt;
* Disponibilità&lt;br /&gt;
Generalmente il sito in cui è ossibile scaricare l'applicazione.&lt;br /&gt;
* Files&lt;br /&gt;
Lista dei file utilizzati dall'applicazione.&lt;br /&gt;
* See also&lt;br /&gt;
Elenca i programma che hanno un link diretto con l'applicazione.&lt;br /&gt;
* History&lt;br /&gt;
Storia delle modifiche del programma.&lt;br /&gt;
&lt;br /&gt;
== Le macro ==&lt;br /&gt;
Il linguaggio utilzzato per realizzare un manuale è relativamente semplice:i termini usati innizianno tutti con un punto&lt;br /&gt;
e sonno noti come macro. Qui sotto è riportata una lista esaustiva delle macro con le relative funzioni.&lt;br /&gt;
Macro (struttura del documento)&lt;br /&gt;
* .DT - (Tabulazione predefinita)&lt;br /&gt;
* .HP - (Inizio d'indentation)&lt;br /&gt;
* .IP - (Inizio paragrafo con parola chiave alla riga seguente)&lt;br /&gt;
* .TP - (Inizio paragrafo con parola chiave sulla stessa riga)&lt;br /&gt;
* .LP - (Inizio di un nuovo paragrafo)&lt;br /&gt;
* .PD - (Imposta la distanza al valore passato in parametro)&lt;br /&gt;
&lt;br /&gt;
* .PP - (Iniziare un nuovo paragrafo)&lt;br /&gt;
* .RE - (Fine d'indentation relativa (in un nuovo paragrafo))&lt;br /&gt;
* .RS - (Inizio d'indentation relativa (in un paragrafo))&lt;br /&gt;
* .SS - (Sotto-titolo ma per una sotto sezione)&lt;br /&gt;
* .SH - (Sotto-titolo)&lt;br /&gt;
* .TH - (Tittolo sezione data sorgente manuale)&lt;br /&gt;
* .&amp;quot;  - (Commento su una riga)&lt;br /&gt;
Macro (font per i caratteri)&lt;br /&gt;
* .B - (Grassetto)&lt;br /&gt;
* .BI - (Gras alternato con Corsivo)&lt;br /&gt;
* .BR - (Grassetto alternato con Roman)&lt;br /&gt;
* .I - (Corsivo)&lt;br /&gt;
* .IB - (Corsivo alternato con Grassetto)&lt;br /&gt;
* .IR - (Corsivo alternato con Roman)&lt;br /&gt;
* .RB - (Roman alternato con Grassetto)&lt;br /&gt;
* .RI - (Roman alternato con Corsivo)&lt;br /&gt;
* .SB - (Small alternato con Grassetto)&lt;br /&gt;
* .SM - (Small)&lt;br /&gt;
Tutte quelle macro di formattazione sono riperibili nella pagine di manuale intittolata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
== Il comando groff ==&lt;br /&gt;
Il pacchetto groff include molti programmin per l'elaborazione e la formattazione del testo. Groff traduce testo&lt;br /&gt;
e comandi specifici in output formatatto, esttamente come visualizzate su una man page.&lt;br /&gt;
&lt;br /&gt;
== Lo script nroff ==&lt;br /&gt;
Lo script nroff emula il comando nroff utilizzando groff.&lt;br /&gt;
&lt;br /&gt;
== Il comando man2html ==&lt;br /&gt;
Permette di convertire le man page in formato HTML.&lt;br /&gt;
&lt;br /&gt;
= Esempio pratico =&lt;br /&gt;
== Stesura del manuale ==&lt;br /&gt;
Ora è tempo di mettere in pratica le nozioni acquisite sulle macro. supponiamo di aver realizzato un programma per il VoIP&lt;br /&gt;
chimato &amp;quot;myvoip&amp;quot;, il comando myvoip omonimo del programma consente di effettuare chiamate verso numeri di ret fissa o di cellulare&lt;br /&gt;
con le funzionalità di un normale telefono.&lt;br /&gt;
Qui sotto è riportata la lista delle macro da utilizzare:&lt;br /&gt;
* .TH - (Intestazione del manuale)&lt;br /&gt;
* .SH - (Titolo)&lt;br /&gt;
* .SS - (Sotto-titolo)&lt;br /&gt;
* .TP - (Indenta il testo)&lt;br /&gt;
* .PP - (Nuova riga)&lt;br /&gt;
* .&amp;quot; - (Commento su una riga)&lt;br /&gt;
* .B - (Carattere in grassetto)&lt;br /&gt;
Ora edittiamo il nostro file utilizzando &amp;quot;vi&amp;quot;, digittando :&lt;br /&gt;
   vi myvoip.1&lt;br /&gt;
Prendete il tempo necessario per digitare il seguente codice:&lt;br /&gt;
 .TH myvoip 1 &amp;quot;Ottobre 17, 2006&amp;quot; &amp;quot;version 1.0&amp;quot; &amp;quot;Manuale utente&amp;quot;&lt;br /&gt;
 .SH NOME&lt;br /&gt;
 yvoip \- Chiamare nel modo più semplice.&lt;br /&gt;
 .SH SYNOPSIS&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 [\-f] [\-p] \-ssl ssl invocato&lt;br /&gt;
 .SH DESCRIPTION&lt;br /&gt;
 Il programma&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 permette di chiamare i vostri amici nel modo più semplice,con funzionaltà di un telefone tradizionale &lt;br /&gt;
 faccendovi dimenticare per sempre il cellulare e il telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 Sè non ci sono parametri, la chiamata verrà effetuata automaticamente verso un telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 L'opzione&lt;br /&gt;
 .B -f&lt;br /&gt;
 la chiamate vien rediretta verso un telefono fisso.&lt;br /&gt;
 Per contattare un vicino sul cellulare l'opzione&lt;br /&gt;
 .B -p&lt;br /&gt;
 deve'esere passata.&lt;br /&gt;
 .PP&lt;br /&gt;
 SSL invocato viene utilizzato per criptare il vostro numero di telefono&lt;br /&gt;
 in modo che nessuno possa ottenre il votro numero per&lt;br /&gt;
 questo l'opzione&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 dev'esser passata in parametro.&lt;br /&gt;
 .SH OPTIONS&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -f&lt;br /&gt;
 Chiamata verso un numero fisso.&lt;br /&gt;
Prima di proseguire, ricordatevi di verificare il vostro lavoro prima di finalizzarlo digittando:&lt;br /&gt;
    nroff -man myvoip.1 | less&lt;br /&gt;
oppure&lt;br /&gt;
  groff -Tascii -man myvoip.1 | less&lt;br /&gt;
Ora proseguiamo con la formattazione del documento :&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -p&lt;br /&gt;
 Chiamta verso un cellulare.&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 Attivazione di ssl invocato.&lt;br /&gt;
 .SH FILES&lt;br /&gt;
 .SS DIPENDENZE&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 richiede la libreria&lt;br /&gt;
 .B libmMyvoip&lt;br /&gt;
 scaricabile su :&lt;br /&gt;
 ftp.chrix.org/lib/libMyvoip/&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/bin/&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/man/man1&lt;br /&gt;
 .B myvoip.1.gz&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/doc/myvoip-1.0/&lt;br /&gt;
 .B ChangeLog&lt;br /&gt;
 .B COPYING&lt;br /&gt;
 .B INSTALL&lt;br /&gt;
 .B README&lt;br /&gt;
 .SH EXAMPLES&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f -ssl&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p -ssl&lt;br /&gt;
 .SH AUTORI&lt;br /&gt;
 Christian Eric ( chrix (at) slacky.it )&lt;br /&gt;
 .SH BUGS&lt;br /&gt;
 In caso di malfunzionamento, inviare una mail a &lt;br /&gt;
 bug-myvoip@chrix.org,&lt;br /&gt;
 specificando il numero di errore e la versione del &lt;br /&gt;
 programma in uso.&lt;br /&gt;
 .SH COPYRIGHT&lt;br /&gt;
 Copyright 2005-2006 Free Software Foundation, Inc.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 (at your option) any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is distributed in the hope that it will be useful, but&lt;br /&gt;
 WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 See the GNU General Public License for more details.&lt;br /&gt;
 .PP&lt;br /&gt;
 You should have received a copy of the GNU General Public License&lt;br /&gt;
 along with groff; see the file COPYING. If not, write to the Free&lt;br /&gt;
 Software Foundation, 49 Temple Place - Suite 330, Boston, MA&lt;br /&gt;
 02111-1307, USA.&lt;br /&gt;
 .SH DISPONIBILITA'&lt;br /&gt;
 La versione la più recente di myvoip è scaricabile via &lt;br /&gt;
 ftp all'indirizzo: ftp.chrix.org/download/myvoip.&lt;br /&gt;
&lt;br /&gt;
== Risultato finale ==&lt;br /&gt;
Ora si può procedere all'installazione del manuale.&lt;br /&gt;
&lt;br /&gt;
* Ogni pagina di di manuale dev'essere compattato in .gz. &lt;br /&gt;
Per compattare il nostro file utilizzeremo il comando gzip:&lt;br /&gt;
 gzip myvoip.1&lt;br /&gt;
&lt;br /&gt;
* Ora da root copiare il file in /usr/share/man/man1, come segue:&lt;br /&gt;
&lt;br /&gt;
 cp myvoip.1.gz /usr/share/man/man1&lt;br /&gt;
&lt;br /&gt;
* Ora il file è accessibile, potete usare il vostro emulatore di terminale preferito per visualizzarlo:&lt;br /&gt;
&lt;br /&gt;
 man myvoip&lt;br /&gt;
&lt;br /&gt;
== Conversione in formati diversi ==&lt;br /&gt;
Nostro mauale ultimato, possiamo adattarlo ai formati più usati quali file&lt;br /&gt;
&amp;quot;txt&amp;quot;, &amp;quot;postscript&amp;quot; e &amp;quot;HTML&amp;quot;. Per fare ciò useremo lo script &amp;quot;nroff&amp;quot; e i comandi&lt;br /&gt;
&amp;quot;groff&amp;quot; e &amp;quot;man2html&amp;quot;.&lt;br /&gt;
* Formato (txt) con nroff :&lt;br /&gt;
    nroff -man myvoip.1 | col -b &amp;gt; myvoip.txt&lt;br /&gt;
* Formato (PostScript) con groff :&lt;br /&gt;
    groff -man -Tps myvoip.1 &amp;gt; myvoip.ps&lt;br /&gt;
* Formato (HTML) con man2html :&lt;br /&gt;
man2html myvoip.1 &amp;gt; myvoip.html&lt;br /&gt;
&lt;br /&gt;
= Bibliografia =&lt;br /&gt;
&lt;br /&gt;
* Jens Schweikhardt. The Linux Man Page Howto.&lt;br /&gt;
* Man2html. Manual page Man2html.&lt;br /&gt;
&lt;br /&gt;
= Conclusione =&lt;br /&gt;
Spero che questo articolo vi darà le basi necessarie all'elaboration dei vostri manuali.&lt;br /&gt;
questo documento non è una guida completa, ma uno strumento che vi aiuterà a realizzare velocemente una man page.&lt;br /&gt;
&lt;br /&gt;
= Glossario =&lt;br /&gt;
* gnu&lt;br /&gt;
GNU is Not Unix.&lt;br /&gt;
* groff&lt;br /&gt;
Groff traduce testo e comandi in output formattato.&lt;br /&gt;
* gzip&lt;br /&gt;
Permette di compattare file.&lt;br /&gt;
* linux&lt;br /&gt;
OS Open Source.&lt;br /&gt;
* ls&lt;br /&gt;
Lista il contenuto della directory corrente.&lt;br /&gt;
* man&lt;br /&gt;
Visualizza tutta la documentazione relativa ad un comando.&lt;br /&gt;
* macro&lt;br /&gt;
consente la formattazione di un manuale unix.&lt;br /&gt;
* man2html&lt;br /&gt;
Converte le pagine di manuale in format HTML.&lt;br /&gt;
* nroff&lt;br /&gt;
Formatta le man page, emula il comando nroff utilisando groff.&lt;br /&gt;
* su&lt;br /&gt;
Consente un acesso all'account root e ad altri account del sistema.&lt;br /&gt;
* vi&lt;br /&gt;
Editore di testo per Linux.&lt;br /&gt;
= Autore =                                                           &lt;br /&gt;
2006 Chrix. 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; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license to : [http://www.gnu.org/licenses/fdl.txt gnu general public license]&lt;br /&gt;
                                         http://christian.africa-web.org/&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux</id>
		<title>Creazione di una man page sotto Linux</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Creazione_di_una_man_page_sotto_Linux"/>
				<updated>2007-02-12T19:32:56Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Packages]]&lt;br /&gt;
= Sommario =&lt;br /&gt;
Una pagina di manuale detta « man » è l'elemento indispensabile di un programma. In effetti, essa fornisce le&lt;br /&gt;
informazioni essenziali riguardo l'uso di un programma e necessita poco spazio sul disco. questo &lt;br /&gt;
articolo vi permetterà di realizzare la votra pagina di manuale molto velocemente.&lt;br /&gt;
&lt;br /&gt;
= Avvertenza =&lt;br /&gt;
Questo articolo non è destinato a spiegarvi l'uso di ogni macro macro, per maggiori informazioni,consultare&lt;br /&gt;
la pagina di manuale denomminata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Un buon programma è sempre munito di una documentazione. in effetti il manuale è l'elemento essenziale&lt;br /&gt;
e indispensabile per l'utente finale. Imaginate la prima reazione di un utente se quello si trova nell'incapacita di capirne&lt;br /&gt;
il funczionnamento !!!&lt;br /&gt;
Scrivere un manuale d'uso, è  semplice, occupa pochissimo spazio, possibilità di converzione nei&lt;br /&gt;
formati correnti.&lt;br /&gt;
Iniziamo questo How-To con la presentazione di una pagina di manuale &amp;quot; man page&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= Presentazione =&lt;br /&gt;
== Le rubriche ==&lt;br /&gt;
queste sone le rubriche principali di un pagina di manuale :&lt;br /&gt;
* Nome&lt;br /&gt;
Nome del programma usato.&lt;br /&gt;
* Synopsis&lt;br /&gt;
qui si trovano la sintassi del comando del programma, le opzioni e i i parametri.&lt;br /&gt;
* Description&lt;br /&gt;
Utilizzazione del programma.&lt;br /&gt;
*     Options&lt;br /&gt;
Tutte le opzioni usate dal programma e la loro descrizione.&lt;br /&gt;
* Examples&lt;br /&gt;
Esempio d'utilizzazione dell'applicazione.&lt;br /&gt;
* Autore&lt;br /&gt;
La persona che ha realizzazato l'applicazione.&lt;br /&gt;
* Bugs&lt;br /&gt;
Permette di segnalare in caso di errore.&lt;br /&gt;
* Copyright&lt;br /&gt;
I diritti di autore.&lt;br /&gt;
&lt;br /&gt;
* Disponibilità&lt;br /&gt;
Generalmente il sito in cui è ossibile scaricare l'applicazione.&lt;br /&gt;
* Files&lt;br /&gt;
Lista dei file utilizzati dall'applicazione.&lt;br /&gt;
* See also&lt;br /&gt;
Elenca i programma che hanno un link diretto con l'applicazione.&lt;br /&gt;
* History&lt;br /&gt;
Storia delle modifiche del programma.&lt;br /&gt;
&lt;br /&gt;
== Le macro ==&lt;br /&gt;
Il linguaggio utilzzato per realizzare un manuale è relativamente semplice:i termini usati innizianno tutti con un punto&lt;br /&gt;
e sonno noti come macro. Qui sotto è riportata una lista esaustiva delle macro con le relative funzioni.&lt;br /&gt;
Macro (struttura del documento)&lt;br /&gt;
* .DT - (Tabulazione predefinita)&lt;br /&gt;
* .HP - (Inizio d'indentation)&lt;br /&gt;
* .IP - (Inizio paragrafo con parola chiave alla riga seguente)&lt;br /&gt;
* .TP - (Inizio paragrafo con parola chiave sulla stessa riga)&lt;br /&gt;
* .LP - (Inizio di un nuovo paragrafo)&lt;br /&gt;
* .PD - (Imposta la distanza al valore passato in parametro)&lt;br /&gt;
&lt;br /&gt;
* .PP - (Iniziare un nuovo paragrafo)&lt;br /&gt;
* .RE - (Fine d'indentation relativa (in un nuovo paragrafo))&lt;br /&gt;
* .RS - (Inizio d'indentation relativa (in un paragrafo))&lt;br /&gt;
* .SS - (Sotto-titolo ma per una sotto sezione)&lt;br /&gt;
* .SH - (Sotto-titolo)&lt;br /&gt;
* .TH - (Tittolo sezione data sorgente manuale)&lt;br /&gt;
* .&amp;quot;  - (Commento su una riga)&lt;br /&gt;
Macro (font per i caratteri)&lt;br /&gt;
* .B - (Grassetto)&lt;br /&gt;
* .BI - (Gras alternato con Corsivo)&lt;br /&gt;
* .BR - (Grassetto alternato con Roman)&lt;br /&gt;
* .I - (Corsivo)&lt;br /&gt;
* .IB - (Corsivo alternato con Grassetto)&lt;br /&gt;
* .IR - (Corsivo alternato con Roman)&lt;br /&gt;
* .RB - (Roman alternato con Grassetto)&lt;br /&gt;
* .RI - (Roman alternato con Corsivo)&lt;br /&gt;
* .SB - (Small alternato con Grassetto)&lt;br /&gt;
* .SM - (Small)&lt;br /&gt;
Tutte quelle macro di formattazione sono riperibili nella pagine di manuale intittolata groff_man(7)&lt;br /&gt;
&lt;br /&gt;
== Il comando groff ==&lt;br /&gt;
Il pacchetto groff include molti programmin per l'elaborazione e la formattazione del testo. Groff traduce testo&lt;br /&gt;
e comandi specifici in output formatatto, esttamente come visualizzate su una man page.&lt;br /&gt;
&lt;br /&gt;
== Lo script nroff ==&lt;br /&gt;
Lo script nroff emula il comando nroff utilizzando groff.&lt;br /&gt;
&lt;br /&gt;
== Il comando man2html ==&lt;br /&gt;
Permette di convertire le man page in formato HTML.&lt;br /&gt;
&lt;br /&gt;
= Esempio pratico =&lt;br /&gt;
== Stesura del manuale ==&lt;br /&gt;
Ora è tempo di mettere in pratica le nozioni acquisite sulle macro. supponiamo di aver realizzato un programma per il VoIP&lt;br /&gt;
chimato &amp;quot;myvoip&amp;quot;, il comando myvoip omonimo del programma consente di effettuare chiamate verso numeri di ret fissa o di cellulare&lt;br /&gt;
con le funzionalità di un normale telefono.&lt;br /&gt;
Qui sotto è riportata la lista delle macro da utilizzare:&lt;br /&gt;
* .TH - (Intestazione del manuale)&lt;br /&gt;
* .SH - (Titolo)&lt;br /&gt;
* .SS - (Sotto-titolo)&lt;br /&gt;
* .TP - (Indenta il testo)&lt;br /&gt;
* .PP - (Nuova riga)&lt;br /&gt;
* .&amp;quot; - (Commento su una riga)&lt;br /&gt;
* .B - (Carattere in grassetto)&lt;br /&gt;
Ora edittiamo il nostro file utilizzando &amp;quot;vi&amp;quot;, digittando :&lt;br /&gt;
   vi myvoip.1&lt;br /&gt;
Prendete il tempo necessario per digitare il seguente codice:&lt;br /&gt;
 .TH myvoip 1 &amp;quot;Ottobre 17, 2006&amp;quot; &amp;quot;version 1.0&amp;quot; &amp;quot;Manuale utente&amp;quot;&lt;br /&gt;
 .SH NOME&lt;br /&gt;
 yvoip \- Chiamare nel modo più semplice.&lt;br /&gt;
 .SH SYNOPSIS&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 [\-f] [\-p] \-ssl ssl invocato&lt;br /&gt;
 .SH DESCRIPTION&lt;br /&gt;
 Il programma&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 permette di chiamare i vostri amici nel modo più semplice,con funzionaltà di un telefone tradizionale &lt;br /&gt;
 faccendovi dimenticare per sempre il cellulare e il telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 Sè non ci sono parametri, la chiamata verrà effetuata automaticamente verso un telefono fisso.&lt;br /&gt;
 .PP&lt;br /&gt;
 L'opzione&lt;br /&gt;
 .B -f&lt;br /&gt;
 la chiamate vien rediretta verso un telefono fisso.&lt;br /&gt;
 Per contattare un vicino sul cellulare l'opzione&lt;br /&gt;
 .B -p&lt;br /&gt;
 deve'esere passata.&lt;br /&gt;
 .PP&lt;br /&gt;
 SSL invocato viene utilizzato per criptare il vostro numero di telefono&lt;br /&gt;
 in modo che nessuno possa ottenre il votro numero per&lt;br /&gt;
 questo l'opzione&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 dev'esser passata in parametro.&lt;br /&gt;
 .SH OPTIONS&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -f&lt;br /&gt;
 Chiamata verso un numero fisso.&lt;br /&gt;
Prima di proseguire, ricordatevi di verificare il vostro lavoro prima di finalizzarlo digittando:&lt;br /&gt;
    nroff -man myvoip.1 | less&lt;br /&gt;
oppure&lt;br /&gt;
  groff -Tascii -man myvoip.1 | less&lt;br /&gt;
Ora proseguiamo con la formattazione del documento :&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -p&lt;br /&gt;
 Chiamta verso un cellulare.&lt;br /&gt;
 .TP&lt;br /&gt;
 .B -ssl&lt;br /&gt;
 Attivazione di ssl invocato.&lt;br /&gt;
 .SH FILES&lt;br /&gt;
 .SS DIPENDENZE&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 richiede la libreria&lt;br /&gt;
 .B libmMyvoip&lt;br /&gt;
 scaricabile su :&lt;br /&gt;
 ftp.chrix.org/lib/libMyvoip/&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/bin/&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/man/man1&lt;br /&gt;
 .B myvoip.1.gz&lt;br /&gt;
 .TP&lt;br /&gt;
 /usr/share/doc/myvoip-1.0/&lt;br /&gt;
 .B ChangeLog&lt;br /&gt;
 .B COPYING&lt;br /&gt;
 .B INSTALL&lt;br /&gt;
 .B README&lt;br /&gt;
 .SH EXAMPLES&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un fisso con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -f -ssl&lt;br /&gt;
 .TP&lt;br /&gt;
 Chiamata verso un cellulare con ssl invocato:&lt;br /&gt;
 .B myvoip&lt;br /&gt;
 .B -p -ssl&lt;br /&gt;
 .SH AUTORI&lt;br /&gt;
 Christian Eric ( chrix (at) slacky.it )&lt;br /&gt;
 .SH BUGS&lt;br /&gt;
 In caso di malfunzionamento, inviare una mail a &lt;br /&gt;
 bug-myvoip@chrix.org,&lt;br /&gt;
 specificando il numero di errore e la versione del &lt;br /&gt;
 programma in uso.&lt;br /&gt;
 .SH COPYRIGHT&lt;br /&gt;
 Copyright 2005-2006 Free Software Foundation, Inc.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 (at your option) any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is free software; you can redistribute it and/or modify&lt;br /&gt;
 it under the terms of the GNU General Public License as&lt;br /&gt;
 published by the Free Software Foundation; either version 2, or&lt;br /&gt;
 any later version.&lt;br /&gt;
 .PP&lt;br /&gt;
 myvoip is distributed in the hope that it will be useful, but&lt;br /&gt;
 WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.&lt;br /&gt;
 See the GNU General Public License for more details.&lt;br /&gt;
 .PP&lt;br /&gt;
 You should have received a copy of the GNU General Public License&lt;br /&gt;
 along with groff; see the file COPYING. If not, write to the Free&lt;br /&gt;
 Software Foundation, 49 Temple Place - Suite 330, Boston, MA&lt;br /&gt;
 02111-1307, USA.&lt;br /&gt;
 .SH DISPONIBILITA'&lt;br /&gt;
 La versione la più recente di myvoip è scaricabile via &lt;br /&gt;
 ftp all'indirizzo: ftp.chrix.org/download/myvoip.&lt;br /&gt;
&lt;br /&gt;
== Risultato finale ==&lt;br /&gt;
Ora si può procedere all'installazione del manuale.&lt;br /&gt;
&lt;br /&gt;
* Ogni pagina di di manuale dev'essere compattato in .gz. &lt;br /&gt;
Per compattare il nostro file utilizzeremo il comando gzip:&lt;br /&gt;
 gzip myvoip.1&lt;br /&gt;
&lt;br /&gt;
* Ora da root copiare il file in /usr/share/man/man1, come segue:&lt;br /&gt;
&lt;br /&gt;
 cp myvoip.1.gz /usr/share/man/man1&lt;br /&gt;
&lt;br /&gt;
* Ora il file è accessibile, potete usare il vostro emulatore di terminale preferito per visualizzarlo:&lt;br /&gt;
&lt;br /&gt;
 man myvoip&lt;br /&gt;
&lt;br /&gt;
== Conversione in formati diversi ==&lt;br /&gt;
Nostro mauale ultimato, possiamo adattarlo ai formati più usati quali file&lt;br /&gt;
&amp;quot;txt&amp;quot;, &amp;quot;postscript&amp;quot; e &amp;quot;HTML&amp;quot;. Per fare ciò useremo lo script &amp;quot;nroff&amp;quot; e i comandi&lt;br /&gt;
&amp;quot;groff&amp;quot; e &amp;quot;man2html&amp;quot;.&lt;br /&gt;
* Formato (txt) con nroff :&lt;br /&gt;
    nroff -man myvoip.1 | col -b &amp;gt; myvoip.txt&lt;br /&gt;
* Formato (PostScript) con groff :&lt;br /&gt;
    groff -man -Tps myvoip.1 &amp;gt; myvoip.ps&lt;br /&gt;
* Formato (HTML) con man2html :&lt;br /&gt;
man2html myvoip.1 &amp;gt; myvoip.html&lt;br /&gt;
&lt;br /&gt;
= Bibliografia =&lt;br /&gt;
&lt;br /&gt;
* Jens Schweikhardt. The Linux Man Page Howto.&lt;br /&gt;
* Man2html. Manual page Man2html.&lt;br /&gt;
&lt;br /&gt;
= Conclusione =&lt;br /&gt;
Spero che questo articolo vi darà le basi necessarie all'elaboration dei vostri manuali.&lt;br /&gt;
questo documento non è una guida completa, ma uno strumento che vi aiuterà a realizzare velocemente una man page.&lt;br /&gt;
&lt;br /&gt;
= Glossario =&lt;br /&gt;
* gnu&lt;br /&gt;
GNU is Not Unix.&lt;br /&gt;
* groff&lt;br /&gt;
Groff traduce testo e comandi in output formattato.&lt;br /&gt;
* gzip&lt;br /&gt;
Permette di compattare file.&lt;br /&gt;
* linux&lt;br /&gt;
OS Open Source.&lt;br /&gt;
* ls&lt;br /&gt;
Lista il contenuto della directory corrente.&lt;br /&gt;
* man&lt;br /&gt;
Visualizza tutta la documentazione relativa ad un comando.&lt;br /&gt;
* macro&lt;br /&gt;
consente la formattazione di un manuale unix.&lt;br /&gt;
* man2html&lt;br /&gt;
Converte le pagine di manuale in format HTML.&lt;br /&gt;
* nroff&lt;br /&gt;
Formatta le man page, emula il comando nroff utilisando groff.&lt;br /&gt;
* su&lt;br /&gt;
Consente un acesso all'account root e ad altri account del sistema.&lt;br /&gt;
* vi&lt;br /&gt;
Editore di testo per Linux.&lt;br /&gt;
= Autore =                                                           &lt;br /&gt;
2006 [[Chrix]]. 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; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. Read the full license to : [http://www.gnu.org/licenses/fdl.txt gnu general public license]&lt;br /&gt;
                                         http://christian.africa-web.org/&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-12T19:29:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Impostare la password per l'accesso al database LDAP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX toolkit:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
     ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
     hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
     idx = idx + 1 # increment the counter to move to the next line.&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
     print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
     script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
     x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
     line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
     varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
     varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
     print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
     print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
     print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
     macros[varname] = varsub&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
     continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
     line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
     macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
     print line&lt;br /&gt;
 if pause:&lt;br /&gt;
     print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
     script.append(line)&lt;br /&gt;
     idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
     break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
     idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
     print ''&lt;br /&gt;
 else:&lt;br /&gt;
     script.append('')&lt;br /&gt;
     return script&lt;br /&gt;
&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
     if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
         configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
     group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
     ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
     user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
     machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
     outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
     debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
     pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
     print version&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
     print __doc__&lt;br /&gt;
     sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
     iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
     print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     try:&lt;br /&gt;
         oFile = open(outdir + outfile, 'w')&lt;br /&gt;
     except IOError:&lt;br /&gt;
         print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
         sys.exit(1)&lt;br /&gt;
     buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
     for ln in script:&lt;br /&gt;
         oFile.write(ln + '\r\n')&lt;br /&gt;
     if pause:&lt;br /&gt;
         if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
             oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 &lt;br /&gt;
 if __name__ == '__main__':&lt;br /&gt;
     run()&lt;br /&gt;
 else:&lt;br /&gt;
     print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
     print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
     print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
&lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-07T20:02:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Prerequisiti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I seguenti pacchetti sono necessari:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX toolkit:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
 ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
 idx = idx + 1 # increment the counter to move to the next&lt;br /&gt;
 # line.&lt;br /&gt;
 x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
 print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
 script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
 x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
 line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
 varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
 varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
 print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
 print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
 print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
 macros[varname] = varsub&lt;br /&gt;
 idx = idx + 1&lt;br /&gt;
 continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
 line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
 macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
 print line&lt;br /&gt;
 if pause:&lt;br /&gt;
 print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
 script.append(line)&lt;br /&gt;
 idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
 break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
 idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
 print ''&lt;br /&gt;
 else:&lt;br /&gt;
 script.append('')&lt;br /&gt;
 return script&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
 if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
 configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
 group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
 ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
 user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
 machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
 outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
 debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
 pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
 print version&lt;br /&gt;
 sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
 print __doc__&lt;br /&gt;
 sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
 iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
 print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
 try:&lt;br /&gt;
 oFile = open(outdir + outfile, 'w')&lt;br /&gt;
 except IOError:&lt;br /&gt;
 print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
 for ln in script:&lt;br /&gt;
 oFile.write(ln + '\r\n')&lt;br /&gt;
 if pause:&lt;br /&gt;
 if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
 oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 #i&lt;br /&gt;
 f __name__ == '__main__':&lt;br /&gt;
 run()&lt;br /&gt;
 else:&lt;br /&gt;
 print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
 print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
 print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2007-02-07T19:59:57Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Interessi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica nelle reti (Perimetrale)&lt;br /&gt;
* Linguaggi di Programmazione&lt;br /&gt;
* Reti, DataBase e Sistemi Oprerativi&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba</id>
		<title>Autenticazione con LDAP per Samba</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Autenticazione_con_LDAP_per_Samba"/>
				<updated>2007-02-07T19:57:23Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Autore */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Scritti_misti]]&lt;br /&gt;
&lt;br /&gt;
== Introduzione ==&lt;br /&gt;
&lt;br /&gt;
Come installare e configurare samba come controllore di dominio di primo livello.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Prima di cominciare ==&lt;br /&gt;
&lt;br /&gt;
Questa guida descrive come integrare ldap in Samba, quindi mostra:&lt;br /&gt;
&lt;br /&gt;
* 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);&lt;br /&gt;
* 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;&lt;br /&gt;
* come abilitare e testare la sicurezza del sistema (TLS per OpenLDAP, PAM e Samba).&lt;br /&gt;
&lt;br /&gt;
== Prerequisiti ==&lt;br /&gt;
&lt;br /&gt;
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 programmazione in python o perl (per la creazione degli logon script, qui è stato usato python).&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
È raccomandato procurarsi una versione precompilata dei pacchetti per la propria distribuzione (es .rpm per Red Hat® e derivati oppure .tgz per Slackware® e derivati).&lt;br /&gt;
&lt;br /&gt;
I programmi usati sono i seguenti:&lt;br /&gt;
&lt;br /&gt;
* OpenSSL;&lt;br /&gt;
* OpenLDAP;&lt;br /&gt;
* Samba;&lt;br /&gt;
* Modulo Perl ''Crypt::SmbHash'';&lt;br /&gt;
* Module Perl ''Digest::SHA1'';&lt;br /&gt;
* Modulo Perl ''IO::Socket::SSL'';&lt;br /&gt;
* Modulo Perl ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
== Schema della rete ==&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
 &lt;br /&gt;
      +------------+&lt;br /&gt;
      |  PC LINUX  |&lt;br /&gt;
      | con Server |&lt;br /&gt;
      |    Samba   |&lt;br /&gt;
      +------+-----+        +----------+               __________&lt;br /&gt;
             |              |  ROUTER  |              |          |&lt;br /&gt;
 -----+------+------+-------+    +     +---- &amp;gt;&amp;gt; --- &amp;gt;&amp;gt;| INTERNET |&lt;br /&gt;
      |             |       | FIREWALL |              |__________|&lt;br /&gt;
 +----+----+   +----+----+  +----------+&lt;br /&gt;
 | WINDOWS |   | WINDOWS |&lt;br /&gt;
 | CLIENT  |   | CLIENT  |&lt;br /&gt;
 +---------+   +---------+&lt;br /&gt;
 &lt;br /&gt;
Questa picola rete ha tre gruppi: finanze, ricerca e amministrazione. &lt;br /&gt;
&lt;br /&gt;
Gli utenti dei gruppi finanze e ricerca hanno dei dischi condivisi in cui salvare i propri file; i membri dei due gruppi hanno solo&lt;br /&gt;
accesso alle condivisioni del proprio gruppo. &lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
== Introduzione a LDAP ==&lt;br /&gt;
&lt;br /&gt;
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).&lt;br /&gt;
&lt;br /&gt;
I dati sono organizzati in una struttura gerarchica (con supporto nativo della replicazione) e non di tabelle come nei DBMS relazionali, quali oracle oppure postgresql. &lt;br /&gt;
&lt;br /&gt;
Una Directory è una collezione gerarchica di oggetti e di attributi associati agli ogetti stessi.&lt;br /&gt;
&lt;br /&gt;
Esempio di Directory:&lt;br /&gt;
 &lt;br /&gt;
               _&lt;br /&gt;
              (_) dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
               |&lt;br /&gt;
               |&lt;br /&gt;
     +---------+---------+&lt;br /&gt;
     |         |         |&lt;br /&gt;
     |         |         |&lt;br /&gt;
     _         _         _&lt;br /&gt;
    (_)       (_)       (_) ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
 &lt;br /&gt;
                         |&lt;br /&gt;
                         |&lt;br /&gt;
               +---------+---------+&lt;br /&gt;
               |         |         |&lt;br /&gt;
               |         |         |&lt;br /&gt;
               _         _         _&lt;br /&gt;
              (_)       (_)       (_) cn=ottavio, ou=soci, dc=vicenza, dc=linux, dc=it&lt;br /&gt;
&lt;br /&gt;
== Integrazione LDAP - SAMBA ==&lt;br /&gt;
&lt;br /&gt;
Esistono tre principali punti d'integrazione di Samba in un server LDAP:&lt;br /&gt;
&lt;br /&gt;
* il primo è l'inclusione dello schema samba nel server LDAP;&lt;br /&gt;
* 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);&lt;br /&gt;
* il terzo consiste nel usare un insieme di strumenti: i così detti “ IDEALX LDAP toolkit per Samba”, noti anche come gli &amp;quot;smbldap-tools&amp;quot;, prodotti da terzi, ma rilasciati sotto licenza GPL.&lt;br /&gt;
&lt;br /&gt;
== Configurazione di LDAP ==&lt;br /&gt;
&lt;br /&gt;
=== Installazione di OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
Per installare OpenLDAP verificare che nella propria distribuzione non sia già installato, con i seguenti comandi (per fedora):&lt;br /&gt;
&lt;br /&gt;
 rpm -qa | grep ldap&lt;br /&gt;
&lt;br /&gt;
se non si ottiene un risultato simile a openladp-2.3.24 o superiore sarà necessario scaricarlo su uno dei&lt;br /&gt;
mirror e installarlo con il comando: &lt;br /&gt;
&lt;br /&gt;
 rpm -ivh openladp-2.3.24-2.i386.rpm &lt;br /&gt;
&lt;br /&gt;
oppure usando YUM (il sistema di aggiornamento online di fedora, qui non ne parleremo).&lt;br /&gt;
&lt;br /&gt;
Questo è un esempio di output che ottengo sulla mia Slackware:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# ls /var/log/packages/ | grep -i ldap&lt;br /&gt;
 nss_ldap-244-i486-1wsa&lt;br /&gt;
 openldap-2.3.24-i486-2kjz&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
=== Installazione degli smbldap-tools ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /usr/share/doc/samba-3.0.21c/examples/LDAP/smbldap-tools-0.9.1&lt;br /&gt;
 root@chrix:~# ls&lt;br /&gt;
 CONTRIBUTORS  INSTALL       doc/              smbldap-groupshow   smbldap-userdel   smbldap_bind.conf&lt;br /&gt;
 COPYING       Makefile      smb.conf          smbldap-passwd      smbldap-userinfo  smbldap_tools.pm&lt;br /&gt;
 ChangeLog     README        smbldap-groupadd  smbldap-populate    smbldap-usermod&lt;br /&gt;
 FILES         TODO          smbldap-groupdel  smbldap-tools.spec  smbldap-usershow&lt;br /&gt;
 INFRA         configure.pl  smbldap-groupmod  smbldap-useradd     smbldap.conf&lt;br /&gt;
&lt;br /&gt;
per installare gli IDEALX toolkit:&lt;br /&gt;
&lt;br /&gt;
* andare sul [http://samba.idealx.org/dist/ sito] e scaricare la versione 0.9.1 o superiore (smbldaptool-0.9.1.tar.gz);&lt;br /&gt;
* scompattare l'archivio in una cartella temporanea col comando:&lt;br /&gt;
 tar -xvzf smbldap-tool-0.9.1.tar.gz&lt;br /&gt;
* creare una cartella per gli script quindi impostare i permessi giusti:&lt;br /&gt;
 mkdir -p /var/lib/samba/sbin&lt;br /&gt;
 chmod -R 755 /var/lib/samba/&lt;br /&gt;
* entrare nella cartella scompattata e copiare gli script nella cartella precedentemente creata, all'invito di comandi scrivere:&lt;br /&gt;
 cd smbldap-tool-0.9.1&lt;br /&gt;
 cp smbldap* configure.pl /var/lib/samba/sbin&lt;br /&gt;
* impostare i permessi corretti nella cartella /var/lib/samba/sbin, impartendo i seguenti comandi:&lt;br /&gt;
 chmod 755 *&lt;br /&gt;
 chmod 640 smbldap_bind.conf smbldap.conf smbldap_tools.pm&lt;br /&gt;
* infine rimuovere la cartella temporanea in cui è stato scompattato l'archivio.&lt;br /&gt;
&lt;br /&gt;
Il toolkit IDEALX richiede moduli perl aggiuntivi che di default non sono sempre installati nel sistema.&lt;br /&gt;
&lt;br /&gt;
* Andare sul [http://cpan.org sito] e scaricare i seguenti moduli perl (è disponibile un motore di ricerca interno):&lt;br /&gt;
&lt;br /&gt;
** ''Crypt::SmbHash'';&lt;br /&gt;
** ''Digest::SHA1'';&lt;br /&gt;
** ''IO::Socket::SSL'';&lt;br /&gt;
** ''Net::SSLeay''.&lt;br /&gt;
&lt;br /&gt;
* Scompattare tutti gli archivi appena scaricati usando questo comando:&lt;br /&gt;
&lt;br /&gt;
 for archivio in *; do tar -xvzf $archivio; done&lt;br /&gt;
&lt;br /&gt;
* Compilare ed installare ( da root) ognuno dei quattro moduli, entrando ogni volta nella rispettiva cartella con i comandi:&lt;br /&gt;
&lt;br /&gt;
 perl Makefile.PL&lt;br /&gt;
 make test&lt;br /&gt;
 make install&lt;br /&gt;
&lt;br /&gt;
=== Configurazione degli schema, delle chiavi ssl e delle cartelle usate da OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
 chmod 644 /etc/openldap/schema/samba.schema&lt;br /&gt;
&lt;br /&gt;
Potete usare locate oppure find per trovarlo, sulla mia Slackaware usando locate:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:~# cd /etc/openldap&lt;br /&gt;
 root@chrix:~# locate samba.schema&lt;br /&gt;
 /etc/samba/samba.schema.oc.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema.at.IBM-ds&lt;br /&gt;
 /etc/samba/samba.schema&lt;br /&gt;
 /etc/openldap/schema/samba.schema&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.oc.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema.at.IBM-ds&lt;br /&gt;
 /usr/doc/samba-3.0.21c/examples/LDAP/samba.schema&lt;br /&gt;
&lt;br /&gt;
Ora creare una cartella per il database di LDAP&lt;br /&gt;
&lt;br /&gt;
 mkdir -p /var/lib/ldap/miodominio.com&lt;br /&gt;
 chmod 700 /var/lib/ldap/miodominio.com&lt;br /&gt;
 chown ldap:ldap /var/lib/ldap/miodominio.com&lt;br /&gt;
&lt;br /&gt;
In Fedora l'utente ldap viene creato all'installazione di OpenLDAP, in altre distribuzioni bisogna spesso crearlo a mano!&lt;br /&gt;
&lt;br /&gt;
Infine creare le chiavi che OpenLDAP usa per la criptazione dei dati, per fare ciò è necessario il pacchetto OpenSSL già incluso nella maggior parte delle distribuzioni; altrimenti potete scaricarlo dal [http://www.openssl.org/ sito].&lt;br /&gt;
&lt;br /&gt;
Questo howto descrive come autofirmare i propri cerficati (cioè essere una Certificate Authority: CA).&lt;br /&gt;
&lt;br /&gt;
* Con il comando locate openssl.cnf individuare il file openssl.cnf ed editarlo a secondo la vostra configurazione, ad esempio cambiare il paese in IT, il nome dell'orgarnizazione in miodominio.com ( di default si trova in /etc/ssl/openssl.cnf );&lt;br /&gt;
* Nella stessa cartella di openssl.cnf digittare i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 mkdir -p CA/certs CA/crl CA/newcerts CA/private&lt;br /&gt;
 chmod 700 CA/private&lt;br /&gt;
 touch CA/index.txt&lt;br /&gt;
 echo 01 &amp;gt; CA/serial&lt;br /&gt;
&lt;br /&gt;
* Creare il certificato della CA e la chiave con il comando:&lt;br /&gt;
&lt;br /&gt;
 openssl req -nodes -config openssl.cnf -new -x509 -keyout CA/private/cakey.pem -out CA/cacert.pem -days 3650&lt;br /&gt;
&lt;br /&gt;
* Creare la chiave per OpenLDAP con questi comandi:&lt;br /&gt;
&lt;br /&gt;
 openssl req -config openssl.cnf -nodes -new -keyout /etc/openldap/slapd-key.pem -out slapd.csr&lt;br /&gt;
 openssl ca -config openssl.cnf -out /etc/openldap/slapd-cert.pem -in slapd.csr&lt;br /&gt;
&lt;br /&gt;
* Impostare i permessi corretti:&lt;br /&gt;
&lt;br /&gt;
 chown root:ldap /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 640 /etc/openldap/slapd-key.pem&lt;br /&gt;
 chmod 644 /etc/openldap/slapd-cert.pem&lt;br /&gt;
&lt;br /&gt;
* Copiare il certificato CA nella cartella di configurazione in modo vari apllicazioni possano accedervi:&lt;br /&gt;
&lt;br /&gt;
 cp CA/cacert.pem /etc/openldap&lt;br /&gt;
 chmod 644 /etc/openldap/cacert.pem&lt;br /&gt;
&lt;br /&gt;
* Configurare il file slapd.conf. Il demone di OpenLDAP si chiama slapd, e legge le configurazioni dal file slapd.conf, prima di editare quel file bisogna generare l'impronta della password per l'admin rootdn (root distinguished name), per fare ciò usare l'utility slappasswd come segue:&lt;br /&gt;
&lt;br /&gt;
 slappasswd -h {SSHA} -s password_desiderata&lt;br /&gt;
 &lt;br /&gt;
Salvare l'output di quel comando in un file ad esempio utilizzando le redirezioni “&amp;gt;”, perché verrà usato in seguito.&lt;br /&gt;
&lt;br /&gt;
Con la mia Slackware ottengo:&lt;br /&gt;
&lt;br /&gt;
 root@chrix:/etc/openldap# slappasswd -h {SSHA} -s slacky123&lt;br /&gt;
 {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 root@chrix:/etc/openldap#&lt;br /&gt;
&lt;br /&gt;
esempio di file /etc/openldap/slapd.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #&lt;br /&gt;
 # See slapd.conf(5) for details on configuration options.&lt;br /&gt;
 # This file should NOT be world readable.&lt;br /&gt;
 #include /etc/openldap/schema/core.schema&lt;br /&gt;
 include /etc/openldap/schema/samba.schema&lt;br /&gt;
 # Define global ACLs to disable default read access.&lt;br /&gt;
 # Do not enable referrals until AFTER you have a working directory&lt;br /&gt;
 # service AND an understanding of referrals.&lt;br /&gt;
 #referral ldap://root.openldap.org&lt;br /&gt;
 pidfile /var/run/slapd.pid&lt;br /&gt;
 argsfile /var/run/slapd.args&lt;br /&gt;
 # Load dynamic backend modules:&lt;br /&gt;
 # modulepath /usr/libexec/openldap&lt;br /&gt;
 # moduleload back_bdb.la&lt;br /&gt;
 # moduleload back_ldap.la&lt;br /&gt;
 # moduleload back_ldbm.la&lt;br /&gt;
 # moduleload back_passwd.la&lt;br /&gt;
 # moduleload back_shell.la&lt;br /&gt;
 # Sample security restrictions&lt;br /&gt;
 # Require integrity protection (prevent hijacking)&lt;br /&gt;
 # Require 112-bit (3DES or better) encryption for updates&lt;br /&gt;
 # Require 63-bit encryption for simple bind&lt;br /&gt;
 # security ssf=1 update_ssf=112 simple_bind=64&lt;br /&gt;
 # Sample access control policy:&lt;br /&gt;
 # Root DSE: allow anyone to read it&lt;br /&gt;
 # Subschema (sub)entry DSE: allow anyone to read it&lt;br /&gt;
 # Other DSEs:&lt;br /&gt;
 # Allow self write access&lt;br /&gt;
 # Allow authenticated users read access&lt;br /&gt;
 # Allow anonymous users to authenticate&lt;br /&gt;
 # Directives needed to implement policy:&lt;br /&gt;
 # access to dn.base=&amp;quot;&amp;quot; by * read&lt;br /&gt;
 # access to dn.base=&amp;quot;cn=Subschema&amp;quot; by * read&lt;br /&gt;
 # access to *&lt;br /&gt;
 # by self write&lt;br /&gt;
 # by users read&lt;br /&gt;
 # by anonymous auth&lt;br /&gt;
 #&lt;br /&gt;
 # if no access controls are present, the default policy&lt;br /&gt;
 # allows anyone and everyone to read anything but restricts&lt;br /&gt;
 # updates to rootdn. (e.g., &amp;quot;access to * by * read&amp;quot;)&lt;br /&gt;
 #&lt;br /&gt;
 # rootdn can always read and write EVERYTHING!&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 # BDB database definitions&lt;br /&gt;
 #######################################################################&lt;br /&gt;
 database bdb&lt;br /&gt;
 suffix &amp;quot;dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 rootdn &amp;quot;cn=Manager,dc=chrix,dc=lan&amp;quot;&lt;br /&gt;
 # Cleartext passwords, especially for the rootdn, should&lt;br /&gt;
 # be avoid. See slappasswd(8) and slapd.conf(5) for details.&lt;br /&gt;
 # Use of strong authentication encouraged.&lt;br /&gt;
 # qui la password con slappasswd&lt;br /&gt;
 rootpw {SSHA}edkSLDngACZohmpeSlzsz7/P8u3Hr4jD&lt;br /&gt;
 # The database directory MUST exist prior to running slapd AND&lt;br /&gt;
 # should only be accessible by the slapd and slap tools.&lt;br /&gt;
 # Mode 700 recommended.&lt;br /&gt;
 directory /var/openldap-data&lt;br /&gt;
 # Indices to maintain&lt;br /&gt;
 index objectClass eq&lt;br /&gt;
&lt;br /&gt;
=== Configurare /etc/ldap.conf ===&lt;br /&gt;
&lt;br /&gt;
il file /etc/ldap.conf è usato dai client LDAP sul computer locale quali PAM che è l'interfaccia usata da samba per l'autenticazione via il server LDAP, il file ldap.conf da usare è quello impostato per funzionare con PAM, per sapere quale configurazione usare impartire i seguenti comandi:&lt;br /&gt;
&lt;br /&gt;
 strings /lib/libnss_ldap.so.2 | grep conf&lt;br /&gt;
&lt;br /&gt;
il valore ritornato dovrebbe essere:&lt;br /&gt;
&lt;br /&gt;
 /etc/ldap.conf&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/ldap.conf da modificare in funzione della propria configurazione:&lt;br /&gt;
&lt;br /&gt;
 #$Id: ldap.conf,v 2.43 2005/05/25 00:05:08 lukeh Exp $&lt;br /&gt;
 #&lt;br /&gt;
 # This is the configuration file for the LDAP nameservice&lt;br /&gt;
 # switch library and the LDAP PAM module.&lt;br /&gt;
 #&lt;br /&gt;
 # PADL Software&lt;br /&gt;
 # http://www.padl.com&lt;br /&gt;
 #&lt;br /&gt;
 # Your LDAP server. Must be resolvable without using LDAP.&lt;br /&gt;
 # Multiple hosts may be specified, each separated by a&lt;br /&gt;
 # space. How long nss_ldap takes to failover depends on&lt;br /&gt;
 # whether your LDAP client library supports configurable&lt;br /&gt;
 # network or connect timeouts (see bind_timelimit).&lt;br /&gt;
 host 127.0.0.1&lt;br /&gt;
 # The distinguished name of the search base.&lt;br /&gt;
 base dc=chrix,dc=lan&lt;br /&gt;
 # Another way to specify your LDAP server is to provide an&lt;br /&gt;
 # uri with the server name. This allows to use&lt;br /&gt;
 # Unix Domain Sockets to connect to a local LDAP Server.&lt;br /&gt;
 #uri ldap://127.0.0.1/&lt;br /&gt;
 uri ldaps://127.0.0.1/&lt;br /&gt;
 #uri ldapi://%2fvar%2frun%2fldapi_sock/&lt;br /&gt;
 # Note: %2f encodes the '/' used as directory separator&lt;br /&gt;
 # The LDAP version to use (defaults to 3&lt;br /&gt;
 # if supported by client library)&lt;br /&gt;
 #ldap_version 3&lt;br /&gt;
 # The distinguished name to bind to the server with.&lt;br /&gt;
 # Optional: default is to bind anonymously.&lt;br /&gt;
 binddn cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 # The credentials to bind with.&lt;br /&gt;
 # Optional: default is no credential.&lt;br /&gt;
 bindpw {SSHA}gk/Q2Imacloss8Kobm6MvQF3MrHVZNnJ&lt;br /&gt;
 # The distinguished name to bind to the server with&lt;br /&gt;
 # if the effective user ID is root. Password is&lt;br /&gt;
 # stored in /etc/ldap.secret (mode 600)&lt;br /&gt;
 rootbinddn cn=manager,dc=chrix,dc=lan&lt;br /&gt;
 # The port.&lt;br /&gt;
 # Optional: default is 389.&lt;br /&gt;
 port 389&lt;br /&gt;
 # The search scope.&lt;br /&gt;
 #scope sub&lt;br /&gt;
 #scope one&lt;br /&gt;
 #scope base&lt;br /&gt;
 # Search timelimit&lt;br /&gt;
 #timelimit 30&lt;br /&gt;
 # Bind/connect timelimit&lt;br /&gt;
 #bind_timelimit 30&lt;br /&gt;
 # Reconnect policy:&lt;br /&gt;
 # hard_open: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # opening connection failed&lt;br /&gt;
 # hard_init: reconnect to DSA with exponential backoff if&lt;br /&gt;
 # initializing connection failed&lt;br /&gt;
 # hard: alias for hard_open&lt;br /&gt;
 # soft: return immediately on server failure&lt;br /&gt;
 #bind_policy hard&lt;br /&gt;
 # Idle timelimit; client will close connections&lt;br /&gt;
 # (nss_ldap only) if the server has not been contacted&lt;br /&gt;
 # for the number of seconds specified below.&lt;br /&gt;
 #idle_timelimit 3600&lt;br /&gt;
 # Pagesize: when configured with --enable-paged-results allow&lt;br /&gt;
 # to set the pagesize to a custom value&lt;br /&gt;
 #pagesize 1000&lt;br /&gt;
 # Filter to AND with uid=%s&lt;br /&gt;
 pam_filter objectclass=account&lt;br /&gt;
 # The user ID attribute (defaults to uid)&lt;br /&gt;
 pam_login_attribute uid&lt;br /&gt;
 # Search the root DSE for the password policy (works&lt;br /&gt;
 # with Netscape Directory Server)&lt;br /&gt;
 #pam_lookup_policy yes&lt;br /&gt;
 # Check the 'host' attribute for access control&lt;br /&gt;
 # Default is no; if set to yes, and user has no&lt;br /&gt;
 # value for the host attribute, and pam_ldap is&lt;br /&gt;
 # configured for account management (authorization)&lt;br /&gt;
 # then the user will not be allowed to login.&lt;br /&gt;
 #pam_check_host_attr yes&lt;br /&gt;
 # Check the 'authorizedService' attribute for access&lt;br /&gt;
 # control&lt;br /&gt;
 # Default is no; if set to yes, and the user has no&lt;br /&gt;
 # value for the authorizedService attribute, and&lt;br /&gt;
 # pam_ldap is configured for account management&lt;br /&gt;
 # (authorization) then the user will not be allowed&lt;br /&gt;
 # to login.&lt;br /&gt;
 #pam_check_service_attr yes&lt;br /&gt;
 # Group to enforce membership of&lt;br /&gt;
 #pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com&lt;br /&gt;
 # Group member attribute&lt;br /&gt;
 #pam_member_attribute uniquemember&lt;br /&gt;
 # Specify a minium or maximum UID number allowed&lt;br /&gt;
 #pam_min_uid 0&lt;br /&gt;
 #pam_max_uid 0&lt;br /&gt;
 # Template login attribute, default template user&lt;br /&gt;
 # (can be overriden by value of former attribute&lt;br /&gt;
 # in user's entry)&lt;br /&gt;
 #pam_login_attribute userPrincipalName&lt;br /&gt;
 #pam_template_login_attribute uid&lt;br /&gt;
 #pam_template_login nobody&lt;br /&gt;
 # HEADS UP: the pam_crypt, pam_nds_passwd,&lt;br /&gt;
 # and pam_ad_passwd options are no&lt;br /&gt;
 # longer supported.&lt;br /&gt;
 #&lt;br /&gt;
 # If you are using XAD, you can set pam_password&lt;br /&gt;
 # to racf, ad, or exop. Make sure that you have&lt;br /&gt;
 # SSL enabled.&lt;br /&gt;
 # Do not hash the password at all; presume&lt;br /&gt;
 # the directory server will do it, if&lt;br /&gt;
 # necessary. This is the default.&lt;br /&gt;
 #pam_password clear&lt;br /&gt;
 # Hash password locally; required for University of&lt;br /&gt;
 # Michigan LDAP server, and works with Netscape&lt;br /&gt;
 # Directory Server if you're using the UNIX-Crypt&lt;br /&gt;
 # hash mechanism and not using the NT Synchronization&lt;br /&gt;
 # service.&lt;br /&gt;
 pam_password crypt&lt;br /&gt;
 # Remove old password first, then update in&lt;br /&gt;
 # cleartext. Necessary for use with Novell&lt;br /&gt;
 # Directory Services (NDS)&lt;br /&gt;
 #pam_password nds&lt;br /&gt;
 # RACF is an alias for the above. For use with&lt;br /&gt;
 # IBM RACF&lt;br /&gt;
 #pam_password racf&lt;br /&gt;
 # Update Active Directory password, by&lt;br /&gt;
 # creating Unicode password and updating&lt;br /&gt;
 # unicodePwd attribute.&lt;br /&gt;
 pam_password ad&lt;br /&gt;
 # Use the OpenLDAP password change&lt;br /&gt;
 # extended operation to update the password.&lt;br /&gt;
 #pam_password exop&lt;br /&gt;
 # Redirect users to a URL or somesuch on password&lt;br /&gt;
 # changes.&lt;br /&gt;
 #pam_password_prohibit_message Please visit http://internal to change your password.&lt;br /&gt;
 # RFC2307bis naming contexts&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 # nss_base_XXX base?scope?filter&lt;br /&gt;
 # where scope is {base,one,sub}&lt;br /&gt;
 # and filter is a filter to be &amp;amp;'d with the&lt;br /&gt;
 # default filter.&lt;br /&gt;
 # You can omit the suffix eg:&lt;br /&gt;
 # nss_base_passwd ou=People,&lt;br /&gt;
 # to append the default base DN but this&lt;br /&gt;
 # may incur a small performance impact.&lt;br /&gt;
 nss_base_passwd ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_passwd ou=Computers,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_shadow ou=Users,dc=chrix,dc=lan?one&lt;br /&gt;
 nss_base_group ou=Groups,dc=chrix,dc=lan?one&lt;br /&gt;
 #nss_base_hosts ou=Hosts,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_services ou=Services,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_networks ou=Networks,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_protocols ou=Protocols,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_rpc ou=Rpc,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_ethers ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netmasks ou=Networks,dc=padl,dc=com?ne&lt;br /&gt;
 #nss_base_bootparams ou=Ethers,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_aliases ou=Aliases,dc=padl,dc=com?one&lt;br /&gt;
 #nss_base_netgroup ou=Netgroup,dc=padl,dc=com?one&lt;br /&gt;
 # attribute/objectclass mapping&lt;br /&gt;
 # Syntax:&lt;br /&gt;
 #nss_map_attribute rfc2307attribute mapped_attribute&lt;br /&gt;
 #nss_map_objectclass rfc2307objectclassmapped_objectclass&lt;br /&gt;
 # configure --enable-nds is no longer supported.&lt;br /&gt;
 # NDS mappings&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 # Services for UNIX 3.5 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount User&lt;br /&gt;
 #nss_map_attribute uid msSFU30Name&lt;br /&gt;
 #nss_map_attribute uniqueMember msSFU30PosixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFU30Password&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFU30HomeDirectory&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #pam_login_attribute msSFU30Name&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-mssfu-schema is no longer supported.&lt;br /&gt;
 # Services for UNIX 2.0 mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount User&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid msSFUName&lt;br /&gt;
 #nss_map_attribute uniqueMember posixMember&lt;br /&gt;
 #nss_map_attribute userPassword msSFUPassword&lt;br /&gt;
 #nss_map_attribute homeDirectory msSFUHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup Group&lt;br /&gt;
 #nss_map_attribute cn msSFUName&lt;br /&gt;
 #pam_login_attribute msSFUName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # RFC 2307 (AD) mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount user&lt;br /&gt;
 #nss_map_objectclass shadowAccount user&lt;br /&gt;
 #nss_map_attribute uid sAMAccountName&lt;br /&gt;
 #nss_map_attribute homeDirectory unixHomeDirectory&lt;br /&gt;
 #nss_map_attribute shadowLastChange pwdLastSet&lt;br /&gt;
 #nss_map_objectclass posixGroup group&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute sAMAccountName&lt;br /&gt;
 #pam_filter objectclass=User&lt;br /&gt;
 #pam_password ad&lt;br /&gt;
 # configure --enable-authpassword is no longer supported&lt;br /&gt;
 # AuthPassword mappings&lt;br /&gt;
 #nss_map_attribute userPassword authPassword&lt;br /&gt;
 # AIX SecureWay mappings&lt;br /&gt;
 #nss_map_objectclass posixAccount aixAccount&lt;br /&gt;
 #nss_base_passwd ou=aixaccount,?one&lt;br /&gt;
 #nss_map_attribute uid userName&lt;br /&gt;
 #nss_map_attribute gidNumber gid&lt;br /&gt;
 #nss_map_attribute uidNumber uid&lt;br /&gt;
 #nss_map_attribute userPassword passwordChar&lt;br /&gt;
 #nss_map_objectclass posixGroup aixAccessGroup&lt;br /&gt;
 #nss_base_group ou=aixgroup,?one&lt;br /&gt;
 #nss_map_attribute cn groupName&lt;br /&gt;
 #nss_map_attribute uniqueMember member&lt;br /&gt;
 #pam_login_attribute userName&lt;br /&gt;
 #pam_filter objectclass=aixAccount&lt;br /&gt;
 pam_password md5&lt;br /&gt;
 # For pre-RFC2307bis automount schema&lt;br /&gt;
 #nss_map_objectclass automountMap nisMap&lt;br /&gt;
 #nss_map_attribute automountMapName nisMapName&lt;br /&gt;
 #nss_map_objectclass automount nisObject&lt;br /&gt;
 #nss_map_attribute automountKey cn&lt;br /&gt;
 #nss_map_attribute automountInformation nisMapEntry&lt;br /&gt;
 # Netscape SDK LDAPS&lt;br /&gt;
 #ssl on&lt;br /&gt;
 # Netscape SDK SSL options&lt;br /&gt;
 #sslpath /etc/ssl/certs/cert7.db&lt;br /&gt;
 # OpenLDAP SSL mechanism&lt;br /&gt;
 # start_tls mechanism uses the normal LDAP port, LDAPS typically 636&lt;br /&gt;
 #ssl start_tls&lt;br /&gt;
 ssl off&lt;br /&gt;
 # OpenLDAP SSL options&lt;br /&gt;
 # Require and verify server certificate (yes/no)&lt;br /&gt;
 # Default is to use libldap's default behavior, which can be configured in&lt;br /&gt;
 # /etc/openldap/ldap.conf using the TLS_REQCERT setting. The default for&lt;br /&gt;
 # OpenLDAP 2.0 and earlier is &amp;quot;no&amp;quot;, for 2.1 and later is &amp;quot;yes&amp;quot;.&lt;br /&gt;
 #tls_checkpeer yes&lt;br /&gt;
 # CA certificates for server certificate verification&lt;br /&gt;
 # At least one of these are required if tls_checkpeer is &amp;quot;yes&amp;quot;&lt;br /&gt;
 #tls_cacertfile /etc/ssl/ca.cert&lt;br /&gt;
 #tls_cacertdir /etc/ssl/certs&lt;br /&gt;
 # Seed the PRNG if /dev/urandom is not provided&lt;br /&gt;
 #tls_randfile /var/run/egd-pool&lt;br /&gt;
 # SSL cipher suite&lt;br /&gt;
 # See man ciphers for syntax&lt;br /&gt;
 #tls_ciphers TLSv1&lt;br /&gt;
 # Client certificate and key&lt;br /&gt;
 # Use these, if your server requires client authentication.&lt;br /&gt;
 #tls_cert&lt;br /&gt;
 #tls_key&lt;br /&gt;
 # Disable SASL security layers. This is needed for AD.&lt;br /&gt;
 #sasl_secprops maxssf=0&lt;br /&gt;
 # Override the default Kerberos ticket cache location.&lt;br /&gt;
 #krb5_ccname FILE:/etc/.ldapcache&lt;br /&gt;
&lt;br /&gt;
=== Configurare PAM ===&lt;br /&gt;
&lt;br /&gt;
La Fedora core include un tool a riga di comando per la configurazione di PAM chiamato authconfig, gli utenti di altre distribuzioni possono usare il tool webmin, esiste un modulo perl per la configurazione di PAM.&lt;br /&gt;
oppure quelli più esperti possono editare a mano il file di configurazione.&lt;br /&gt;
Da shell digitare (per fedora core):&lt;br /&gt;
&lt;br /&gt;
 authconfig&lt;br /&gt;
&lt;br /&gt;
e selezionare Use LDAP, Use MD5 Passwords, Use shadow Passwords e Use LDAP Authentication nelle impostazioni di LDAP, abilitare TLS, alla voce Server mettere l'indirizzo 127.0.0.1, e infine nella voce Base DN mettere i valori relativi alla vostra configurazione ad esempio: dc=miodominio,dc=com (sostituite “miodominio” e “com” con i valori che desiderate!)&lt;br /&gt;
&lt;br /&gt;
Per Slackware:&lt;br /&gt;
;&lt;br /&gt;
spostarsi nella cartella /etc/pam.d&lt;br /&gt;
;&lt;br /&gt;
creare il file common-auth se già non esiste, e aggiungerci le seguenti righe:&lt;br /&gt;
 #Autencicazione pam per ldap&lt;br /&gt;
 auth    required    pam_env.so&lt;br /&gt;
 auth    sufficient  pam_unix.so likeauth nullok shadow&lt;br /&gt;
 auth    sufficient  pam_ldap.so use_first_pass&lt;br /&gt;
 auth    required    pam_deny.so&lt;br /&gt;
 #Account&lt;br /&gt;
 account requisite  pam_unix.so&lt;br /&gt;
 account sufficient pam_localuser.so&lt;br /&gt;
 account required   pam_ldap.so&lt;br /&gt;
 #Password&lt;br /&gt;
 password    required pam_cracklib.so retry=3&lt;br /&gt;
 password    sufficient pam_unix.so nullok use_authtok shadow md5&lt;br /&gt;
 password    sufficient pam_ldap.so use_authtok use_first_pass&lt;br /&gt;
 password    required pam_deny.so&lt;br /&gt;
 #Session&lt;br /&gt;
 session required    pam_limits.so&lt;br /&gt;
 session required    pam_unix.so&lt;br /&gt;
 session required    pam_mkhomedir.so skel=/etc/skel/ umask=0066&lt;br /&gt;
 session optional    pam_ldap.so&lt;br /&gt;
&lt;br /&gt;
ora configuare /etc/nsswitch.conf, perché possa usare ldap per autenticare gli utenti&lt;br /&gt;
 passwd:         files ldap&lt;br /&gt;
 group:          files ldap&lt;br /&gt;
 shadow:         files ldap&lt;br /&gt;
&lt;br /&gt;
=== Avviare OpenLDAP ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/ldap start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.ldap start&lt;br /&gt;
&lt;br /&gt;
== Configurazione di Samba ==&lt;br /&gt;
&lt;br /&gt;
Se non è già presente nel sistema, è possibile scaricarlo dal [http://samba.org sito] oppure prelevare la versione precompilata per la propria distribuzione nei repository.&lt;br /&gt;
&lt;br /&gt;
Esempio di file /etc/samba/smb.conf completo da modificare a seconda della vostra configurazione (ad esempio cambiare il percorso da /opt/IDEALX a /var/lib/samba/... )&lt;br /&gt;
&lt;br /&gt;
 # Global parameters&lt;br /&gt;
 [global]&lt;br /&gt;
 workgroup = TUX-NET&lt;br /&gt;
 netbios name = PDC-SRV&lt;br /&gt;
 security = user&lt;br /&gt;
 enable privileges = yes&lt;br /&gt;
 server string = Samba Server %v&lt;br /&gt;
 encrypt passwords = Yes&lt;br /&gt;
 min passwd length = 3&lt;br /&gt;
 unix password sync = Yes&lt;br /&gt;
 passwd program = /var/lib/samba/sbin/smbldap-passwd -u %u&lt;br /&gt;
 passwd chat = &amp;quot;Changing password for*\nNew password*&amp;quot; %n\n &amp;quot;*Retype new password*&amp;quot; %n\n&amp;quot;&lt;br /&gt;
 log level = 0&lt;br /&gt;
 syslog = 0&lt;br /&gt;
 log file = /var/log/samba/log.%m&lt;br /&gt;
 max log size = 100000&lt;br /&gt;
 time server = Yes&lt;br /&gt;
 socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;
 mangling method = hash2&lt;br /&gt;
 Dos charset = 850&lt;br /&gt;
 Unix charset = ISO8859-1&lt;br /&gt;
 logon drive = H:&lt;br /&gt;
 logon home =&lt;br /&gt;
 logon path =&lt;br /&gt;
 domain logons = Yes&lt;br /&gt;
 domain master = Yes&lt;br /&gt;
 os level = 65&lt;br /&gt;
 preferred master = Yes&lt;br /&gt;
 wins support = yes&lt;br /&gt;
 passdb backend = ldapsam:ldap://127.0.0.1/&lt;br /&gt;
 ldap admin dn = cn=Manager,dc=chrix,dc=lan&lt;br /&gt;
 ldap suffix = dc=chrix,dc=lan&lt;br /&gt;
 ldap group suffix = ou=Groups&lt;br /&gt;
 ldap user suffix = ou=Users&lt;br /&gt;
 ldap machine suffix = ou=Computers&lt;br /&gt;
 add user script = /var/lib/samba/sbin/smbldap-useradd -m &amp;quot;%u&amp;quot;&lt;br /&gt;
 delete user script = /var/lib/samba/sbin/smbldap-userdel &amp;quot;%u&amp;quot;&lt;br /&gt;
 add machine script = /var/lib/samba/sbin/smbldap-useradd -t 0 -w &amp;quot;%u&amp;quot;&lt;br /&gt;
 add group script = /var/lib/samba/sbin/smbldap-groupadd -p &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete group script = /var/lib/samba/sbin/smbldap-groupdel &amp;quot;%g&amp;quot;&lt;br /&gt;
 add user to group script = /var/lib/samba/sbin/smbldap-groupmod -m &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 delete user from group script = /var/lib/samba/sbin/smbldap-groupmod -x &amp;quot;%u&amp;quot; &amp;quot;%g&amp;quot;&lt;br /&gt;
 set primary group script = /var/lib/samba/sbin/smbldap-usermod -g '%g' '%u'&lt;br /&gt;
 # printers configuration&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 load printers = Yes&lt;br /&gt;
 create mask = 0640&lt;br /&gt;
 directory mask = 0750&lt;br /&gt;
 nt acl support = No&lt;br /&gt;
 printing = cups&lt;br /&gt;
 printcap name = cups&lt;br /&gt;
 deadtime = 10&lt;br /&gt;
 guest account = nobody&lt;br /&gt;
 map to guest = Bad User&lt;br /&gt;
 dont descend = /proc,/dev,/etc,/lib,/lost+found,/initrd&lt;br /&gt;
 show add printer wizard = yes&lt;br /&gt;
 ; to maintain capital letters in shortcuts in any of the profile folders:&lt;br /&gt;
 preserve case = yes&lt;br /&gt;
 short preserve case = yes&lt;br /&gt;
 case sensitive = no&lt;br /&gt;
 [netlogon]&lt;br /&gt;
 path = /home/netlogon/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = yes&lt;br /&gt;
 #lo script logon.py permette di montare automaticamente i dischi all'accesso verrà discusso più avanti&lt;br /&gt;
 root preexec = /home/netlogon/logon.py %U %I&lt;br /&gt;
 [finanze]&lt;br /&gt;
 path = /home/finanze&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [ricerca]&lt;br /&gt;
 path = /home/ricerca&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [amministrazione]&lt;br /&gt;
 path = /home/amministrazione&lt;br /&gt;
 force group = amministrazione&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0770&lt;br /&gt;
 directory mask = 0770&lt;br /&gt;
 browsable = no&lt;br /&gt;
 [profiles]&lt;br /&gt;
 path = /home/profiles&lt;br /&gt;
 read only = no&lt;br /&gt;
 create mask = 0600&lt;br /&gt;
 directory mask = 0700&lt;br /&gt;
 browseable = No&lt;br /&gt;
 guest ok = Yes&lt;br /&gt;
 profile acls = yes&lt;br /&gt;
 csc policy = disable&lt;br /&gt;
 # next line is a great way to secure the profiles&lt;br /&gt;
 #force user = %U&lt;br /&gt;
 # next line allows administrator to access all profiles&lt;br /&gt;
 #valid users = %U &amp;quot;Domain Admins&amp;quot;&lt;br /&gt;
 [printers]&lt;br /&gt;
 comment = Network Printers&lt;br /&gt;
 printer admin = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 guest ok = yes&lt;br /&gt;
 printable = yes&lt;br /&gt;
 path = /home/spool/&lt;br /&gt;
 browseable = No&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 printable = Yes&lt;br /&gt;
 print command = /usr/bin/lpr -P%p -r %s&lt;br /&gt;
 lpq command = /usr/bin/lpq -P%p&lt;br /&gt;
 lprm command = /usr/bin/lprm -P%p %j&lt;br /&gt;
 [print$]&lt;br /&gt;
 path = /home/printers&lt;br /&gt;
 guest ok = No&lt;br /&gt;
 browseable = Yes&lt;br /&gt;
 read only = Yes&lt;br /&gt;
 valid users = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 write list = @&amp;quot;Print Operators&amp;quot;&lt;br /&gt;
 create mask = 0664&lt;br /&gt;
 directory mask = 0775&lt;br /&gt;
 &lt;br /&gt;
=== Impostare la password per l'accesso al database LDAP ===&lt;br /&gt;
&lt;br /&gt;
 smbpasswd -w la_vostra_password&lt;br /&gt;
&lt;br /&gt;
Dovreste avere una risposta simile a questa:&lt;br /&gt;
&lt;br /&gt;
 setting stored password for “cn=Manager,dc=chrix,dc=lan” in secrets.tdb&lt;br /&gt;
&lt;br /&gt;
Esempio di script scritto in python per montare automaticamente le home degli utenti/gruppi dopo all'accesso al dominio, da modificare a seconda della vostra configurazione!&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 ntlogon.py written by Timothy (rhacer) Grant&lt;br /&gt;
 Copyright 1999 - 2002 by Timothy Grant&lt;br /&gt;
 is distributed under the terms of the GNU Public License.&lt;br /&gt;
 The format for the configuration file is as follows:&lt;br /&gt;
 While there is some room for confusion, we attempt to process things in&lt;br /&gt;
 order of specificity: Global first, Group second, User third, OS Type&lt;br /&gt;
 forth. This order can be debated forever, but it seems to make the most&lt;br /&gt;
 sense.&lt;br /&gt;
 # Everything in the Global section applies to all users logging on to the&lt;br /&gt;
 # network&lt;br /&gt;
 [Global]&lt;br /&gt;
 @ECHO &amp;quot;Welcome to our network!!!&amp;quot;&lt;br /&gt;
 NET TIME \\\\servername /SET /YES&lt;br /&gt;
 NET USE F: \\\\servername\\globalshare /YES&lt;br /&gt;
 # Map the private user area in the global section so we don't have to&lt;br /&gt;
 # create individual user entries for each user!&lt;br /&gt;
 NET USE U: \\\\servername\\%U /YES&lt;br /&gt;
 # Group entries, User entries and OS entries each start with the&lt;br /&gt;
 # keyword followed by a dash followed by--appropriately enough the Group&lt;br /&gt;
 # name, the User name, or the OS name.&lt;br /&gt;
 [Group-admin]&lt;br /&gt;
 @ECHO &amp;quot;Welcome administrators!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\adminshare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [Group-peons]&lt;br /&gt;
 @ECHO &amp;quot;Be grateful we let you use computers!&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\peonshare1 /YES&lt;br /&gt;
 [Group-hackers]&lt;br /&gt;
 @ECHO &amp;quot;What can I do for you today great one?&amp;quot;&lt;br /&gt;
 NET USE G: \\\\servername\\hackershare1 /YES&lt;br /&gt;
 NET USE I: \\\\servername\\adminshare2 /YES&lt;br /&gt;
 [User-fred]&lt;br /&gt;
 @ECHO &amp;quot;Hello there Fred!&amp;quot;&lt;br /&gt;
 NET USE F: \\\\servername\\fredsspecialshare /YES&lt;br /&gt;
 [OS-WfWg]&lt;br /&gt;
 @ECHO &amp;quot;Time to upgrade it?&amp;quot;&lt;br /&gt;
 # End configuration file&lt;br /&gt;
 usage: ntlogon [-g | --group=groupname]&lt;br /&gt;
 [-u | --user=username]&lt;br /&gt;
 [-o | --os=osname]&lt;br /&gt;
 [-m | --machine=netbiosname]&lt;br /&gt;
 [-f | --templatefile=filename]&lt;br /&gt;
 [-d | --dir=netlogon directory]&lt;br /&gt;
 [-v | --version]&lt;br /&gt;
 [-h | --help]&lt;br /&gt;
 [--pause]&lt;br /&gt;
 [--debug]&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 #&amp;quot; This quote mark is an artifact of the inability of my editor to&lt;br /&gt;
 # correctly colour code anything after the triple-quoted docstring.&lt;br /&gt;
 # if your editor does not have this flaw, feel free to remove it.&lt;br /&gt;
 import sys&lt;br /&gt;
 import getopt&lt;br /&gt;
 import re&lt;br /&gt;
 import string&lt;br /&gt;
 import os&lt;br /&gt;
 version = &amp;quot;ntlogon.py v0.8&amp;quot;&lt;br /&gt;
 def buildScript(buf, sections, group, user, ostype, machine, debug, pause):&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 buildScript() Takes the contents of the template file and builds&lt;br /&gt;
 a DOS batch file to be executed as an NT logon script. It does this&lt;br /&gt;
 by determining which sections of the configuration file should be included&lt;br /&gt;
 and creating a list object that contains each line contained in each&lt;br /&gt;
 included section. The list object is then returned to the calling&lt;br /&gt;
 routine.&lt;br /&gt;
 All comments (#) are removed. A REM is inserted to show&lt;br /&gt;
 which section of the configuration file each line comes from.&lt;br /&gt;
 We leave blanklines as they are sometimes useful for debugging&lt;br /&gt;
 We also replace all of the Samba macros (e.g., %U, %G, %a, %m) with their&lt;br /&gt;
 expanded versions which have been passed to us by smbd&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 hdrstring = ''&lt;br /&gt;
 script = []&lt;br /&gt;
 #&lt;br /&gt;
 # These are the Samba macros that we currently know about.&lt;br /&gt;
 # any user defined macros will also be added to this dictionary.&lt;br /&gt;
 # We do not store the % sign as part of the macro name.&lt;br /&gt;
 # The replace routine will prepend the % sign to all possible&lt;br /&gt;
 # replacements.&lt;br /&gt;
 #&lt;br /&gt;
 macros = {&lt;br /&gt;
 'U': user,&lt;br /&gt;
 'G': group,&lt;br /&gt;
 'a': ostype,&lt;br /&gt;
 'm': machine&lt;br /&gt;
 }&lt;br /&gt;
 #&lt;br /&gt;
 # Process each section defined in the list sections&lt;br /&gt;
 #&lt;br /&gt;
 for s in sections:&lt;br /&gt;
 # print 'searching for: ' + s&lt;br /&gt;
 idx = 0&lt;br /&gt;
 while idx &amp;lt; len(buf):&lt;br /&gt;
 ln = buf[idx]&lt;br /&gt;
 #&lt;br /&gt;
 # We need to set up a regex for each possible section we&lt;br /&gt;
 # know about. This is slightly complicated due to the fact&lt;br /&gt;
 # that section headers contain user defined text.&lt;br /&gt;
 #&lt;br /&gt;
 if s == 'Global':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *\]'&lt;br /&gt;
 elif s == 'Group':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + group + ' *\]'&lt;br /&gt;
 elif s == 'User':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + user + ' *\]'&lt;br /&gt;
 elif s == 'OS':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + ostype + ' *\]'&lt;br /&gt;
 elif s == 'Machine':&lt;br /&gt;
 hdrstring = '\[ *' + s + ' *- *' + machine + ' *\]'&lt;br /&gt;
 #&lt;br /&gt;
 # See if we have found a section header&lt;br /&gt;
 #&lt;br /&gt;
 if re.search(r'(?i)' + hdrstring, ln):&lt;br /&gt;
 idx = idx + 1 # increment the counter to move to the next&lt;br /&gt;
 # line.&lt;br /&gt;
 x = re.match(r'([^#\r\n]*)', ln) # Determine the section&lt;br /&gt;
 # name and strip out CR/LF&lt;br /&gt;
 # and comment information&lt;br /&gt;
 if debug:&lt;br /&gt;
 print 'rem ' + x.group(1) + ' commands'&lt;br /&gt;
 else:&lt;br /&gt;
 # create the rem at the beginning of each section of the&lt;br /&gt;
 # logon script.&lt;br /&gt;
 script.append('rem ' + x.group(1) + ' commands')&lt;br /&gt;
 #&lt;br /&gt;
 # process each line until we have found another section&lt;br /&gt;
 # header&lt;br /&gt;
 #&lt;br /&gt;
 while not re.search(r'.*\[.*\].*', buf[idx]):&lt;br /&gt;
 #&lt;br /&gt;
 # strip comments and line endings&lt;br /&gt;
 #&lt;br /&gt;
 x = re.match(r'([^#\r\n]*)', buf[idx])&lt;br /&gt;
 if string.strip(x.group(1)) != '' :&lt;br /&gt;
 # if there is still content after stripping comments and&lt;br /&gt;
 # line endings then this is a line to process&lt;br /&gt;
 line = x.group(1)&lt;br /&gt;
 #&lt;br /&gt;
 # Check to see if this is a macro definition line&lt;br /&gt;
 #&lt;br /&gt;
 vardef = re.match(r'(.*)=(.*)', line)&lt;br /&gt;
 if vardef:&lt;br /&gt;
 varname = string.strip(vardef.group(1)) # Strip leading and&lt;br /&gt;
 varsub = string.strip(vardef.group(2)) # and trailing spaces&lt;br /&gt;
 if varname == '':&lt;br /&gt;
 print &amp;quot;Error: No substition name specified line: %d&amp;quot; % idx&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 if varsub == '':&lt;br /&gt;
 print &amp;quot;Error: No substitution text provided line: %d&amp;quot; % idx&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 if macros.has_key(varname):&lt;br /&gt;
 print &amp;quot;Warning: macro %s redefined line: %d&amp;quot; % (varname, idx)&lt;br /&gt;
 macros[varname] = varsub&lt;br /&gt;
 idx = idx + 1&lt;br /&gt;
 continue&lt;br /&gt;
 #&lt;br /&gt;
 # Replace all the macros that we currently&lt;br /&gt;
 # know about.&lt;br /&gt;
 #&lt;br /&gt;
 # Iterate over the dictionary that contains all known&lt;br /&gt;
 # macro substitutions.&lt;br /&gt;
 #&lt;br /&gt;
 # We test for a macro name by prepending % to each dictionary&lt;br /&gt;
 # key.&lt;br /&gt;
 #&lt;br /&gt;
 for varname in macros.keys():&lt;br /&gt;
 line = re.sub(r'%' + varname + r'(\W)',&lt;br /&gt;
 macros[varname] + r'\1', line)&lt;br /&gt;
 if debug:&lt;br /&gt;
 print line&lt;br /&gt;
 if pause:&lt;br /&gt;
 print 'pause'&lt;br /&gt;
 else:&lt;br /&gt;
 script.append(line)&lt;br /&gt;
 idx = idx + 1&lt;br /&gt;
 if idx == len(buf):&lt;br /&gt;
 break # if we have reached the end of the file&lt;br /&gt;
 # stop processing.&lt;br /&gt;
 idx = idx + 1 # increment the line counter&lt;br /&gt;
 if debug:&lt;br /&gt;
 print ''&lt;br /&gt;
 else:&lt;br /&gt;
 script.append('')&lt;br /&gt;
 return script&lt;br /&gt;
 # End buildScript()&lt;br /&gt;
 def run():&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 run() everything starts here. The main routine reads the command line&lt;br /&gt;
 arguments, opens and reads the configuration file.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 configfile = '/etc/ntlogon.conf' # Default configuration file&lt;br /&gt;
 group = '' # Default group&lt;br /&gt;
 user = '' # Default user&lt;br /&gt;
 ostype = '' # Default os&lt;br /&gt;
 machine = '' # Default machine type&lt;br /&gt;
 outfile = 'logon.bat' # Default batch file name&lt;br /&gt;
 # this file name WILL take on the form&lt;br /&gt;
 # username.bat if a username is specified&lt;br /&gt;
 debug = 0 # Default debugging mode&lt;br /&gt;
 pause = 0 # Default pause mode&lt;br /&gt;
 outdir = '/usr/local/samba/netlogon/' # Default netlogon directory&lt;br /&gt;
 sections = ['Global', 'Machine', 'OS', 'Group', 'User'] # Currently supported&lt;br /&gt;
 # configuration file&lt;br /&gt;
 # sections&lt;br /&gt;
 options, args = getopt.getopt(sys.argv[1:], 'd:f:g:ho:u:m:v',&lt;br /&gt;
 ['templatefile=',&lt;br /&gt;
 'group=',&lt;br /&gt;
 'help',&lt;br /&gt;
 'os=',&lt;br /&gt;
 'user=',&lt;br /&gt;
 'machine=',&lt;br /&gt;
 'dir=',&lt;br /&gt;
 'version',&lt;br /&gt;
 'pause',&lt;br /&gt;
 'debug'])&lt;br /&gt;
 #&lt;br /&gt;
 # Process the command line arguments&lt;br /&gt;
 #&lt;br /&gt;
 for i in options:&lt;br /&gt;
 # template file to process&lt;br /&gt;
 if (i[0] == '-f') or (i[0] == '--templatefile'):&lt;br /&gt;
 configfile = i[1]&lt;br /&gt;
 # print 'configfile = ' + configfile&lt;br /&gt;
 # define the group to be used&lt;br /&gt;
 elif (i[0] == '-g') or (i[0] == '--group'):&lt;br /&gt;
 group = i[1]&lt;br /&gt;
 # print 'group = ' + group&lt;br /&gt;
 # define the os type&lt;br /&gt;
 elif (i[0] == '-o') or (i[0] == '--os'):&lt;br /&gt;
 ostype = i[1]&lt;br /&gt;
 # print 'os = ' + os&lt;br /&gt;
 # define the user&lt;br /&gt;
 elif (i[0] == '-u') or (i[0] == '--user'):&lt;br /&gt;
 user = i[1]&lt;br /&gt;
 outfile = user + '.bat' # Setup the output file name&lt;br /&gt;
 # print 'user = ' + user&lt;br /&gt;
 # define the machine&lt;br /&gt;
 elif (i[0] == '-m') or (i[0] == '--machine'):&lt;br /&gt;
 machine = i[1]&lt;br /&gt;
 # define the netlogon directory&lt;br /&gt;
 elif (i[0] == '-d') or (i[0] == '--dir'):&lt;br /&gt;
 outdir = i[1]&lt;br /&gt;
 # print 'outdir = ' + outdir&lt;br /&gt;
 # if we are asked to turn on debug info, do so.&lt;br /&gt;
 elif (i[0] == '--debug'):&lt;br /&gt;
 debug = 1&lt;br /&gt;
 # print 'debug = ' + debug&lt;br /&gt;
 # if we are asked to turn on the automatic pause functionality, do so&lt;br /&gt;
 elif (i[0] == '--pause'):&lt;br /&gt;
 pause = 1&lt;br /&gt;
 # print 'pause = ' + pause&lt;br /&gt;
 # if we are asked for the version number, print it.&lt;br /&gt;
 elif (i[0] == '-v') or (i[0] == '--version'):&lt;br /&gt;
 print version&lt;br /&gt;
 sys.exit(0)&lt;br /&gt;
 # if we are asked for help print the docstring.&lt;br /&gt;
 elif (i[0] == '-h') or (i[0] == '--help'):&lt;br /&gt;
 print __doc__&lt;br /&gt;
 sys.exit(0)&lt;br /&gt;
 #&lt;br /&gt;
 # open the configuration file&lt;br /&gt;
 #&lt;br /&gt;
 try:&lt;br /&gt;
 iFile = open(configfile, 'r')&lt;br /&gt;
 except IOError:&lt;br /&gt;
 print 'Unable to open configuration file: ' + configfile&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 #&lt;br /&gt;
 # open the output file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
 try:&lt;br /&gt;
 oFile = open(outdir + outfile, 'w')&lt;br /&gt;
 except IOError:&lt;br /&gt;
 print 'Unable to open logon script file: ' + outdir + outfile&lt;br /&gt;
 sys.exit(1)&lt;br /&gt;
 buf = iFile.readlines() # read in the entire configuration file&lt;br /&gt;
 #&lt;br /&gt;
 # call the script building routine&lt;br /&gt;
 #&lt;br /&gt;
 script = buildScript(buf, sections, group, user, ostype, machine, debug, pause)&lt;br /&gt;
 #&lt;br /&gt;
 # write out the script file&lt;br /&gt;
 #&lt;br /&gt;
 if not debug:&lt;br /&gt;
 for ln in script:&lt;br /&gt;
 oFile.write(ln + '\r\n')&lt;br /&gt;
 if pause:&lt;br /&gt;
 if string.strip(ln) != '': # Because whitespace&lt;br /&gt;
 oFile.write('pause' + '\r\n') # is a useful tool, we&lt;br /&gt;
 # don't put pauses after&lt;br /&gt;
 # an empty line.&lt;br /&gt;
 # End run()&lt;br /&gt;
 #&lt;br /&gt;
 # immediate-mode commands, for drag-and-drop or execfile() execution&lt;br /&gt;
 #i&lt;br /&gt;
 f __name__ == '__main__':&lt;br /&gt;
 run()&lt;br /&gt;
 else:&lt;br /&gt;
 print &amp;quot;Module ntlogon.py imported.&amp;quot;&lt;br /&gt;
 print &amp;quot;To run, type: ntlogon.run()&amp;quot;&lt;br /&gt;
 print &amp;quot;To reload after changes to the source, type: reload(ntlogon)&amp;quot;&lt;br /&gt;
 #&lt;br /&gt;
 # End NTLogon.py&lt;br /&gt;
 #&lt;br /&gt;
 &lt;br /&gt;
=== Avviare Samba ===&lt;br /&gt;
&lt;br /&gt;
su Fedora:&lt;br /&gt;
&lt;br /&gt;
 /etc/init.d/samba start&lt;br /&gt;
&lt;br /&gt;
su Slackware:&lt;br /&gt;
&lt;br /&gt;
 /etc/rc.d/rc.samba start&lt;br /&gt;
&lt;br /&gt;
== Inizializzazione del database di LDAP ==&lt;br /&gt;
&lt;br /&gt;
Eseguire lo script configure.PL in /var/lib/samba/sbin ( o comunque dove avete scelto di salvarlo) poi eseguire lo script smbldap-populate per creare l'amminstratore del dominio, alcuni gruppi e vari altri elementi.&lt;br /&gt;
&lt;br /&gt;
Creare i dischi condivisi e gli utenti per l'amministrazione di quelle condivisioni:&lt;br /&gt;
&lt;br /&gt;
 cd /var/lib/samba/sbin&lt;br /&gt;
 ./smbldap-groupadd ricerca&lt;br /&gt;
 ./smbldap-groupadd finanze&lt;br /&gt;
 ./smbldap-groupadd amministrazione&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g ricerca ricerca&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g finanze finanze&lt;br /&gt;
 ./smbldap-useradd -s /sbin/nologin -m -g amministrazione amministrazione&lt;br /&gt;
&lt;br /&gt;
Aggiungere l'utente samba alla Directory con:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -s /bin/false -d /dev/null -P samba.&lt;br /&gt;
&lt;br /&gt;
Impostare la password quando richiesta, nel file ldap.conf modificare il campo binddn con&lt;br /&gt;
&lt;br /&gt;
 uid=samba,ou=Users,dc=miodominio,dc=com e bindpw con la password di prima,&lt;br /&gt;
&lt;br /&gt;
(cambaiate i parametri a seconda della vostra configurazione! io ho dc=chrix,dc=lan)&lt;br /&gt;
&lt;br /&gt;
Dopo aver aggiunto alcuni utenti al sistema, potete aggiungere una workstation windows xp professional o windows 2000 al dominio.&lt;br /&gt;
&lt;br /&gt;
Per semplicità potete usare un tool grafico come phpLdapAdmin per amministrare la Directory, Da shell, per aggiungere l'utente pippo al gruppo ricerca, la sintassi è la seguente:&lt;br /&gt;
&lt;br /&gt;
 smbldap-useradd -a -G “Domain Users”, ricerca pippo&lt;br /&gt;
 smbldap-passwd pippo&lt;br /&gt;
&lt;br /&gt;
Ora godetevi il vostro nuovo Directory Server! Soluzione meno costosa di RHEL... (Red Hat Enterprise Linux)&lt;br /&gt;
&lt;br /&gt;
== Autore ==&lt;br /&gt;
&lt;br /&gt;
Spero di esser stato abbastanza esauriente sull'argomento. Per qualsiasi suggerimento o segnalazione, potete inviarmi una mail all'indirizzo: [mailto:chrix@slacky.it chrix@slacky.it]&lt;br /&gt;
&lt;br /&gt;
è garantito il permesso di copiare e/o modifiacre questo documento secondo i termini della licenza per documentazione libera GNU v.1.1 o successiva pubblicata dalla Free Software Foundation.&lt;br /&gt;
&lt;br /&gt;
autore: [[Utente:Chrix|chrix]]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2006-11-27T21:04:13Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* contatti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica&lt;br /&gt;
* Programmazione&lt;br /&gt;
* Progettazione Reti, DataBase, Configurazione Router&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;br /&gt;
--[[Utente:Chrix|chrix]] 22:04, 27 Nov 2006 (CET)&lt;br /&gt;
&lt;br /&gt;
[mailto:chrix@slacky.it chrix@slacky.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2006-11-27T21:00:30Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Interessi */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
* Sicurezza Informatica&lt;br /&gt;
* Programmazione&lt;br /&gt;
* Progettazione Reti, DataBase, Configurazione Router&lt;br /&gt;
&lt;br /&gt;
= contatti =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2006-11-27T20:56:53Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* About Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
= contatti =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2006-11-27T20:56:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* About Me */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
Nome: Christian Eric&lt;br /&gt;
Sopranome: Chrix&lt;br /&gt;
&lt;br /&gt;
= Interessi =&lt;br /&gt;
= contatti =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Utente:Chrix</id>
		<title>Utente:Chrix</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Utente:Chrix"/>
				<updated>2006-11-27T20:55:36Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= About Me =&lt;br /&gt;
= Interessi =&lt;br /&gt;
= contatti =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-24T15:19:58Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Installazione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il programma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni BSD-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''&amp;quot;&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''&amp;quot;&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
Questo documento era partito per essere la traduzione non ufficiale del manuale (ufficiale) di firestarter.&lt;br /&gt;
disponibile presso http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
quando mi sono accorto che in realtà il manuale non è aggiornato, ho abbandonato e sono passato ad una spiegazione molto &lt;br /&gt;
più pratica, derivata dalla mia personale esperienza. Spero di non aver fatto torto a nessuno, tutti i diritti sono&lt;br /&gt;
dei rispettivi proprietari e non era assolutamente mia intenzione violare diritti/proprietà appartenenti ad altri.&lt;br /&gt;
questa guida non ha come obbietivo la perfezione (è impossibile) ma credo costituisca un'ottima base di partenza,&lt;br /&gt;
per sviluppare poi un sistema completamente personalizzato e adatto a difendere l'utente medio da attachi&lt;br /&gt;
e intrusioni estranee. La traduzione non è perfetta (scusatemi :/ ma non sono davvero nato per scrivere/parlare/tradurre l'inglese :/)&lt;br /&gt;
Ma credo di aver dato una buona interpretazione delle parole contenute nel sito ufficiale.&lt;br /&gt;
Mi raccomando prendete sempre per vere le informazioni o le istruzioni presenti in quel sito:&lt;br /&gt;
 http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
Per suggerimenti, critiche o ringraziamenti, il mio indirizzo email è jjdanimoth@gmail.com&lt;br /&gt;
Se avete problemi complessi,postaeli sul forum,non tempestate la mia casella ^_^&lt;br /&gt;
Naturalmente sono a vostra disposizione se non avete capito alcuni passaggi della mia guida.&lt;br /&gt;
Ho personalmente eseguito tutti i passaggi ( e devo dire che funziona tutto alla perfezione) su una macchina con &lt;br /&gt;
installata la Slackware 10.1 aggiornata alla current, senza particolari pacchetti/librerie installate.&lt;br /&gt;
&lt;br /&gt;
versione: 0.23 - Creato da jjDaNiMoth&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-24T15:18:10Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Installazione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni BSD-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''&amp;quot;&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''&amp;quot;&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
Questo documento era partito per essere la traduzione non ufficiale del manuale (ufficiale) di firestarter.&lt;br /&gt;
disponibile presso http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
quando mi sono accorto che in realtà il manuale non è aggiornato, ho abbandonato e sono passato ad una spiegazione molto &lt;br /&gt;
più pratica, derivata dalla mia personale esperienza. Spero di non aver fatto torto a nessuno, tutti i diritti sono&lt;br /&gt;
dei rispettivi proprietari e non era assolutamente mia intenzione violare diritti/proprietà appartenenti ad altri.&lt;br /&gt;
questa guida non ha come obbietivo la perfezione (è impossibile) ma credo costituisca un'ottima base di partenza,&lt;br /&gt;
per sviluppare poi un sistema completamente personalizzato e adatto a difendere l'utente medio da attachi&lt;br /&gt;
e intrusioni estranee. La traduzione non è perfetta (scusatemi :/ ma non sono davvero nato per scrivere/parlare/tradurre l'inglese :/)&lt;br /&gt;
Ma credo di aver dato una buona interpretazione delle parole contenute nel sito ufficiale.&lt;br /&gt;
Mi raccomando prendete sempre per vere le informazioni o le istruzioni presenti in quel sito:&lt;br /&gt;
 http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
Per suggerimenti, critiche o ringraziamenti, il mio indirizzo email è jjdanimoth@gmail.com&lt;br /&gt;
Se avete problemi complessi,postaeli sul forum,non tempestate la mia casella ^_^&lt;br /&gt;
Naturalmente sono a vostra disposizione se non avete capito alcuni passaggi della mia guida.&lt;br /&gt;
Ho personalmente eseguito tutti i passaggi ( e devo dire che funziona tutto alla perfezione) su una macchina con &lt;br /&gt;
installata la Slackware 10.1 aggiornata alla current, senza particolari pacchetti/librerie installate.&lt;br /&gt;
&lt;br /&gt;
versione: 0.23 - Creato da jjDaNiMoth&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-24T15:15:44Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Configurazione del kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''&amp;quot;&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''&amp;quot;&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
Questo documento era partito per essere la traduzione non ufficiale del manuale (ufficiale) di firestarter.&lt;br /&gt;
disponibile presso http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
quando mi sono accorto che in realtà il manuale non è aggiornato, ho abbandonato e sono passato ad una spiegazione molto &lt;br /&gt;
più pratica, derivata dalla mia personale esperienza. Spero di non aver fatto torto a nessuno, tutti i diritti sono&lt;br /&gt;
dei rispettivi proprietari e non era assolutamente mia intenzione violare diritti/proprietà appartenenti ad altri.&lt;br /&gt;
questa guida non ha come obbietivo la perfezione (è impossibile) ma credo costituisca un'ottima base di partenza,&lt;br /&gt;
per sviluppare poi un sistema completamente personalizzato e adatto a difendere l'utente medio da attachi&lt;br /&gt;
e intrusioni estranee. La traduzione non è perfetta (scusatemi :/ ma non sono davvero nato per scrivere/parlare/tradurre l'inglese :/)&lt;br /&gt;
Ma credo di aver dato una buona interpretazione delle parole contenute nel sito ufficiale.&lt;br /&gt;
Mi raccomando prendete sempre per vere le informazioni o le istruzioni presenti in quel sito:&lt;br /&gt;
 http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
Per suggerimenti, critiche o ringraziamenti, il mio indirizzo email è jjdanimoth@gmail.com&lt;br /&gt;
Se avete problemi complessi,postaeli sul forum,non tempestate la mia casella ^_^&lt;br /&gt;
Naturalmente sono a vostra disposizione se non avete capito alcuni passaggi della mia guida.&lt;br /&gt;
Ho personalmente eseguito tutti i passaggi ( e devo dire che funziona tutto alla perfezione) su una macchina con &lt;br /&gt;
installata la Slackware 10.1 aggiornata alla current, senza particolari pacchetti/librerie installate.&lt;br /&gt;
&lt;br /&gt;
versione: 0.23 - Creato da jjDaNiMoth&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-24T15:15:26Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Configurazione del kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''&amp;quot;&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''2&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
Questo documento era partito per essere la traduzione non ufficiale del manuale (ufficiale) di firestarter.&lt;br /&gt;
disponibile presso http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
quando mi sono accorto che in realtà il manuale non è aggiornato, ho abbandonato e sono passato ad una spiegazione molto &lt;br /&gt;
più pratica, derivata dalla mia personale esperienza. Spero di non aver fatto torto a nessuno, tutti i diritti sono&lt;br /&gt;
dei rispettivi proprietari e non era assolutamente mia intenzione violare diritti/proprietà appartenenti ad altri.&lt;br /&gt;
questa guida non ha come obbietivo la perfezione (è impossibile) ma credo costituisca un'ottima base di partenza,&lt;br /&gt;
per sviluppare poi un sistema completamente personalizzato e adatto a difendere l'utente medio da attachi&lt;br /&gt;
e intrusioni estranee. La traduzione non è perfetta (scusatemi :/ ma non sono davvero nato per scrivere/parlare/tradurre l'inglese :/)&lt;br /&gt;
Ma credo di aver dato una buona interpretazione delle parole contenute nel sito ufficiale.&lt;br /&gt;
Mi raccomando prendete sempre per vere le informazioni o le istruzioni presenti in quel sito:&lt;br /&gt;
 http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
Per suggerimenti, critiche o ringraziamenti, il mio indirizzo email è jjdanimoth@gmail.com&lt;br /&gt;
Se avete problemi complessi,postaeli sul forum,non tempestate la mia casella ^_^&lt;br /&gt;
Naturalmente sono a vostra disposizione se non avete capito alcuni passaggi della mia guida.&lt;br /&gt;
Ho personalmente eseguito tutti i passaggi ( e devo dire che funziona tutto alla perfezione) su una macchina con &lt;br /&gt;
installata la Slackware 10.1 aggiornata alla current, senza particolari pacchetti/librerie installate.&lt;br /&gt;
&lt;br /&gt;
versione: 0.23 - Creato da jjDaNiMoth&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:55:20Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Note finali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''2&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''2&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
Questo documento era partito per essere la traduzione non ufficiale del manuale (ufficiale) di firestarter.&lt;br /&gt;
disponibile presso http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
quando mi sono accorto che in realtà il manuale non è aggiornato, ho abbandonato e sono passato ad una spiegazione molto &lt;br /&gt;
più pratica, derivata dalla mia personale esperienza. Spero di non aver fatto torto a nessuno, tutti i diritti sono&lt;br /&gt;
dei rispettivi proprietari e non era assolutamente mia intenzione violare diritti/proprietà appartenenti ad altri.&lt;br /&gt;
questa guida non ha come obbietivo la perfezione (è impossibile) ma credo costituisca un'ottima base di partenza,&lt;br /&gt;
per sviluppare poi un sistema completamente personalizzato e adatto a difendere l'utente medio da attachi&lt;br /&gt;
e intrusioni estranee. La traduzione non è perfetta (scusatemi :/ ma non sono davvero nato per scrivere/parlare/tradurre l'inglese :/)&lt;br /&gt;
Ma credo di aver dato una buona interpretazione delle parole contenute nel sito ufficiale.&lt;br /&gt;
Mi raccomando prendete sempre per vere le informazioni o le istruzioni presenti in quel sito:&lt;br /&gt;
 http://firestarter.sourceforge.net/manual/index.php&lt;br /&gt;
Per suggerimenti, critiche o ringraziamenti, il mio indirizzo email è jjdanimoth@gmail.com&lt;br /&gt;
Se avete problemi complessi,postaeli sul forum,non tempestate la mia casella ^_^&lt;br /&gt;
Naturalmente sono a vostra disposizione se non avete capito alcuni passaggi della mia guida.&lt;br /&gt;
Ho personalmente eseguito tutti i passaggi ( e devo dire che funziona tutto alla perfezione) su una macchina con &lt;br /&gt;
installata la Slackware 10.1 aggiornata alla current, senza particolari pacchetti/librerie installate.&lt;br /&gt;
&lt;br /&gt;
versione: 0.23 - Creato da jjDaNiMoth&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:54:40Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Ringraziamenti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''2&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''2&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
* Tutto lo staff di slacky.it&lt;br /&gt;
* ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
* A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:53:33Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Ringraziamenti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''2&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''2&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
tutto lo staff di slacky.it&lt;br /&gt;
- ROB x avermi aiutato a tradurre ^_^&lt;br /&gt;
- A chi creato questo splendido Frontend&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:53:05Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* APPENDICE B */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
Firestarter richiede che alcuni moduli del kernel siano presenti per poter funzionare a dovere. [le maggiori distribuzioni&lt;br /&gt;
nei loro kernel, hanno già attivato quello che firestsrter richiede]. In ogni caso, se si sta ricompilando&lt;br /&gt;
un kernel personalizzato. la sezione seguente dovrebbe essere utile.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
Queste istruzioni sono stste scritte per funzionare con un kernel 2.6.x firestarter funziona anche con un kernel&lt;br /&gt;
2.4.x, nel qual caso la configurazione di base è la stessa, ma le opzioni del kernel sono mostrate in maniera&lt;br /&gt;
leggermente diversa nel menu di configurazione. si assume che l'utente già sappia come compilare un kernel, in caso&lt;br /&gt;
contrario, leggere il &amp;quot;Kernel Build HOWTO&amp;quot; ufficiale o i numerosi HOWTO presenti in rete&lt;br /&gt;
(si consigliano vivamente quelli presenti su slacky.it).&lt;br /&gt;
tutte le opzioni del kernel che concernono firestarter si trovano nel menu &lt;br /&gt;
 Device Driver &amp;gt;&amp;gt; Networking Support&lt;br /&gt;
Per prima cosa, l'opzione &amp;quot;'''l'opzione Networking support'''&amp;quot; deve essere abilitata. Poi, nel sottomenu&lt;br /&gt;
 Networking options &amp;gt;&amp;gt; Network Packet filtering&lt;br /&gt;
l'opzione &amp;quot;'''Network Packet filtering'''&amp;quot; deve essere abilitata. Infine, il sotto menu &amp;quot;IP:Netfilter configuration&amp;quot;&lt;br /&gt;
presenterà una lunga lista di moduli,l'esatto contenuto della quale dipende dalla specifica versione del kernel in uso.&lt;br /&gt;
Qui si potrà scegliere se compilare queste funzioni come moduli oppure staticamente nel kernel. E' però&lt;br /&gt;
raccomandato compilare tutte le funzioni in maniera modulare. sempre che non si voglia fare un kernel totalmente&lt;br /&gt;
monolitico. Compilando in maniera modulare.quando non si sta usando una particolare funzione non si occuperà memoria.&lt;br /&gt;
NOTA: Le versioni di firestarter precedenti alla 0.9.4 mostrano i messaggi di errore su console se si compilano&lt;br /&gt;
le funzioni richieste, firestarter funzionerà bene in ogni caso. non sono richieste tutte le funzioni di Netfilter.&lt;br /&gt;
comunque consigliamo di abilitarle tutte come moduli per consentire alle prossime versioni di firestarter di poterole&lt;br /&gt;
usare se necessario. Per ultimissima cosa, le funzioni &amp;quot;'''conectio tracking'''&amp;quot;, &amp;quot;'''Full NAT'''&amp;quot; e &amp;quot;'''LOG target support'''2&lt;br /&gt;
devono essere presenti. Qualche altra funzione,se rilevata essere presente in fase di esecuzione, abiliterà funzionalità&lt;br /&gt;
 addizionali in Firestarter. Le uniche funzioni che raccomandiamo di non includere sono le vecchie &amp;quot;'''ipchains support'''2&lt;br /&gt;
e &amp;quot;'''ipfwadm'''&amp;quot; support.&lt;br /&gt;
&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
Locazione delle funzioni del kernel&lt;br /&gt;
&lt;br /&gt;
- Device driver&lt;br /&gt;
 - Networking support&lt;br /&gt;
 - [Y] Networking support&lt;br /&gt;
  - Networking options&lt;br /&gt;
  - Network packet filtering&lt;br /&gt;
    - [Y] Network packet filtering&lt;br /&gt;
    - IP: Netfilter configuration (*)&lt;br /&gt;
     -[Y/M] Connection tracking&lt;br /&gt;
     -[Y/M] IP tables support&lt;br /&gt;
     -[Y/M] Connection state match support&lt;br /&gt;
     -[Y/M] Connection tracking match support&lt;br /&gt;
     -[Y/M] Packet filtering&lt;br /&gt;
     -[Y/M] Full NAT&lt;br /&gt;
     -[Y/M] LOG support&lt;br /&gt;
&lt;br /&gt;
(*) Raccomandiamo di abilitare tutto come modulo in questo menu, eccetto &amp;quot;'''ipchain support'''&amp;quot; e &amp;quot;'''ipfwadm support'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE C =&lt;br /&gt;
elenco delle porte generalmente utili per un utente medio.&lt;br /&gt;
&lt;br /&gt;
* in ingresso:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 4662 TCP - UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
* in uscita:&lt;br /&gt;
 6667 - 6668 - 6669 -6670 TCP		per IRC&lt;br /&gt;
 80 - 21 - 25 -110 - 443		HHTP,FTP,SMTP,POP,HTTPS&lt;br /&gt;
 4662 TCP -UDP				Edonkey - aMule&lt;br /&gt;
&lt;br /&gt;
Molte altre porte io le ho configurate manualmente: sono cioè diverse dagli standard ed è inutile dirvele :(&lt;br /&gt;
&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:50:43Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Requisiti del kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:50:22Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* APPENDICE A */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
NAT - Condivisione della connessione a Internet&lt;br /&gt;
&lt;br /&gt;
Network Adress Translator (traduzione degli indirizzi di rete) è una tecnica grazie alla&lt;br /&gt;
quale svariate macchine possono accedere a internet attraverso una singola connessione&lt;br /&gt;
condivisa. verso il mondo esterno queste macchine appariranno come una sola macchina&lt;br /&gt;
con un singolo indirizzo IP.&lt;br /&gt;
Per fare funzionare il NAT c'è bisogno di due o più interfacce di rete su un computer.&lt;br /&gt;
In questo esempio assumeremo una configurazione di due computer, ma la procedura è&lt;br /&gt;
essenzialmente la stessa quando si conette il firewall a un hub di retre che connette&lt;br /&gt;
svariati computer. Assumiamo inoltre che il dispositivo &amp;quot;'''esterno'''&amp;quot; è una scheda di rete,&lt;br /&gt;
ma andrà ugualmente bene con un modem.&lt;br /&gt;
Se tutto l'Hardware è configurato bene, abilitare il NAT dovrebbe essere molto facile e&lt;br /&gt;
ricchiedere solo pochi minuti.&lt;br /&gt;
&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
Il computer firewall/gateway connesso a internet avrà due schede di rete e il client ne avrà una.&lt;br /&gt;
La prima scheda di rete è solitamente configurata tramite DHCP. La seconda seconda scheda&lt;br /&gt;
di rete nel firewall sarà collegata al client tramite un cavo Ethernet incrociato. Se si&lt;br /&gt;
ha l'intenzione di frapporre un hub tra firewall e il client, il cavo dovrà invece essere dritto.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
Ci sono molti modi per configuare un'interfaccia di rete, e dipendono dalla distribuzione&lt;br /&gt;
che si usa. Le maggiori distribuzioni offrono un semplice tool chiamto '''netconfig''',&lt;br /&gt;
molto comodo e veloce da usare. Questo è il modo in cui configuare le schede di rete:&lt;br /&gt;
&lt;br /&gt;
Il dispositivo esterno (generalmente eth0):&lt;br /&gt;
* abilitare la configurazione dell'IP dinamico&lt;br /&gt;
* tutto qui, non si dovra toccare questa scheda oltre.&lt;br /&gt;
Il dispositivo interno (generalmente eth1):&lt;br /&gt;
* disabilitare la configuarzione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.1&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway (IP): &amp;lt;lasciare vuoto&amp;gt;&lt;br /&gt;
* Nameserver primario: settarlo uguale al nameserver del dispositivo esterno. come sapere&lt;br /&gt;
quale sia? se il dispositivo esterno è in funzione, il nameserver apparirà in &amp;quot;'''/etc/resolv.conf'''&amp;quot;.&lt;br /&gt;
Qualsiasi cambiamento che fai avrà effetto dopo il reboot o il riavvio dei servizi di rete.&lt;br /&gt;
Se ci riferiamo alla Slackware, guardate i numerosi howto presenti su slacky.it su come&lt;br /&gt;
configurare un gateway.&lt;br /&gt;
&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
Si configuri la scheda di rete del client con le seguenti impostazioni:&lt;br /&gt;
* disabilitare la configurazione dell'IP dinamico&lt;br /&gt;
* indirizzo IP: 192.168.0.2&lt;br /&gt;
* Netmask: 255.255.255.0&lt;br /&gt;
* Default gateway:(IP): 192.168.0.1&lt;br /&gt;
* nameserver primario: configuralo come quello usato dal gateway. si possono vedere le&lt;br /&gt;
impostazioni corrette dal file '''/etc/resolv.conf''' del gateway.&lt;br /&gt;
Riavvia la rete, procedura finita.&lt;br /&gt;
&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
I due computer dovrebbero ora essere connessi e la configurazione a livello hardware&lt;br /&gt;
essere terminata. Per testare che ogni cosa sia a posto, si provi a pingare il gateway&lt;br /&gt;
dal client e viceversa.&lt;br /&gt;
&lt;br /&gt;
Se qualcosa non funziona il problema risiede nella configurazione hardware. Forse si tratta&lt;br /&gt;
di dettagli sbagliati del gateway, comunque si controlli nuovamente.&lt;br /&gt;
a questo punto:&lt;br /&gt;
* il gateway dovrebbe raggiungere internet&lt;br /&gt;
* il client e il gateway si dovrebbero pingare&lt;br /&gt;
* il client non dovrebbe essere in grado di raggiungere internet&lt;br /&gt;
(potrebbe anche essere in grado di farlo, ma non è comunque un problema)&lt;br /&gt;
&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
Lanciare firestarter sul gateway/firewalkl e iniziare il wizard. Sulla terza pagina del &lt;br /&gt;
wizard. quella della &amp;quot;'''internet Connection sharing'''&amp;quot; (&amp;quot;condivisione connessione internet&amp;quot;)&lt;br /&gt;
selezionare &amp;quot;'''Enable Network Address Trasnlation'''&amp;quot; (&amp;quot;Abilitare NAT&amp;quot;).&lt;br /&gt;
Assicurarsi che la scheda di rete interna sia stata rilevata correttamente (solitamente eth1)&lt;br /&gt;
e completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora dovrebbe essere tutto funzionante. I client dovrebbero essere in grado di raggiungere&lt;br /&gt;
internet e funzioni avanzzate come il port fowarding saranno possibli con firestarter.&lt;br /&gt;
Se abbiamo bisogno di condividere la connessione con un PC Windows(R),è consigliato andare nella&lt;br /&gt;
sezione Howto di slacky.it nella categoria relativa al Networking, l'howto dettagliato di&lt;br /&gt;
DaNiMoTh.&lt;br /&gt;
&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:47:45Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Configurare firestarter */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
Eccoci alla parte più interessante dell'Howto. Abbiamo già visto come è possibile utilizzare il wizard:&lt;br /&gt;
ore ci addenteremo nella configurazione più avanzzata.&lt;br /&gt;
Partiamo subito:&lt;br /&gt;
 Edit--&amp;gt; Preferences.&lt;br /&gt;
Tralascio le configurazioni per l'interfaccia grafica (comandi facilmente intuibili e assolutamente ininfluenti&lt;br /&gt;
sulla configurazione anti-lamer del firewall.) pasiamo quindi alla sezione &amp;quot;'''firewall'''&amp;quot;&lt;br /&gt;
Io direi di abilitare senza ombra di dubbio &amp;quot;'''Start/Restart firewall on program startup'''&amp;quot;.&lt;br /&gt;
così quando avviamo (da root) l'interfaccia grafica, il firewall vero e proprio partirà automaticamente.&lt;br /&gt;
Le altre 2 le lascio a vostra discrezione: riguardano sempre l'avvio e l'arresto delle regole.&lt;br /&gt;
Passiamo a&lt;br /&gt;
 Network Settings &lt;br /&gt;
Le due device (rispettivamente per l aLAN e per internet) dovrebbero già essere settate (ricordate il wizard?)&lt;br /&gt;
e quindi non ci soffermeremo più di tanto.&lt;br /&gt;
Importante notare che, se vi servite di un server DHCP, dovete assolutamente settare &amp;quot;'''enable DHCP for the local network'''&amp;quot;&lt;br /&gt;
(vedi APPENDICE A)&lt;br /&gt;
Ora diamo un'occhiata a &lt;br /&gt;
 ICMP Filtering&lt;br /&gt;
Io consiglio vivamente di attivare il filtro per i pacchetti ICMP. Attenzione però: se non abilitiamo&lt;br /&gt;
&amp;quot;'''Echo request'''&amp;quot; e &amp;quot;'''Echo reply'''&amp;quot; non potremo effettuare il &amp;quot;'''ping'''&amp;quot;. &lt;br /&gt;
Gli altri servizi sono a vostra discrezione: se vi servono, lasciateli passare mettendo un tick nel quadratino relativo.&lt;br /&gt;
Se non sapete neanche cosa sono lasciateli stare.&lt;br /&gt;
 ToS Filtering&lt;br /&gt;
Permette invece di ottimizzare la rete privileggiando determinati programmi, in modo tale da ottimizzare la connessione.&lt;br /&gt;
Io personalmente non l'ho attivato, non ne sento la necessità.&lt;br /&gt;
 Advanced Options&lt;br /&gt;
qui possiamo scegliere come effettuare il &amp;quot;'''reject'''&amp;quot; (letteralmente rifuitare i pacchetti): con un '''Drop silently'''&lt;br /&gt;
o con un messaggio. sceglierei senza ombra di dubbio un &amp;quot;'''Drop silently'''&amp;quot;.&lt;br /&gt;
 Broadcast traffic&lt;br /&gt;
Blocca o permette TUTTO il traffico verso la rete esterna o interna. Li ho disabilitati tutti i due...&lt;br /&gt;
voglio navigare e fare da gateway. se non avete la necessità di fare da gateway potete mettere il tick accanto a &lt;br /&gt;
&amp;quot;'''Block Broadcast from internal network'''&amp;quot;. Dobbiamo abilitare, per forza&lt;br /&gt;
il &amp;quot;'''Block traffic from reversed addresses on public interfaces'''&amp;quot; per abilitare il MASQUERADING&lt;br /&gt;
(rimando agli howto presenti su slacky.it per il maggiori informazioni du di esso -'''VEDI APPANDICE A''')&lt;br /&gt;
&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
Andiamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Editiamo &amp;quot;'''outbound traffic policy'''&amp;quot;, e abilitiamo &amp;quot;'''Restrictive by default,whitelist traffic&amp;quot;&lt;br /&gt;
che in sintesi blocca tutto: saremo noi che andremo ad abilitare, ad uno ad uno, iltraffico&lt;br /&gt;
che può passare. L'altra opzione (&amp;quot;'''Permissive by default'''&amp;quot;) è meno difficile da settare,&lt;br /&gt;
ma è sconsigliata visto che in pratica non effettua nessun nessun controllo&lt;br /&gt;
(anzi dovremo andare a settare tutto ciò che non è consentito).&lt;br /&gt;
Ora nel menù policy (in alto) applichiamo le regole con &amp;quot;'''apply'''&amp;quot;. se tutto è andato bene,&lt;br /&gt;
non dovremmo essere in grado di fare nulla: non riusciremo a navigare, ne a chattare...&lt;br /&gt;
ma andiamo nella linguetta &amp;quot;'''Events'''&amp;quot; vedete i vostri tentativi loggati? Se per&lt;br /&gt;
esempio aprite il browser, dovreste vedere una voce con &amp;quot;'''port'''&amp;quot; settato ad &amp;quot;'''80'''&amp;quot; e&lt;br /&gt;
protocol &amp;quot;'''TCP'''&amp;quot;. Ci basta fare click con il pulsante destro del mouse e scegliere&lt;br /&gt;
&amp;quot;'''Allow inbound/outbound service'''&amp;quot;: decidendo se abilitarlo solo per la LAN, solo per l'IP&lt;br /&gt;
sorgente/destinazione o per tutti quanti &amp;quot;'''Evryone'''&amp;quot;.&lt;br /&gt;
Con &amp;quot;'''lookup hostnam'''&amp;quot; potete vedere il nome dell'host sorgente o destinazione.&lt;br /&gt;
Con il pulsantino &amp;quot;'''Clear'''&amp;quot; potrete cancellare tutta la lista (utile se diventa troppo lunga).&lt;br /&gt;
Ora applichiamo la regola con &amp;quot;'''Apply Policy'''&amp;quot; e torniamo nella linguetta &amp;quot;'''Policy'''&amp;quot;.&lt;br /&gt;
Uau! vedete la vostra regola,in basso? e provate ad utilizzare il browser sulla porta 80...&lt;br /&gt;
funziona!!!&lt;br /&gt;
Ora proviamo a vedere di editare le &amp;quot;'''inbound traffic policy'''&amp;quot;, cioè le regole che&lt;br /&gt;
gesticono chi entra nel nostro PC.&lt;br /&gt;
L'interfaccia è praticamente la stessa, il funzionamento pure:quando ci servirà abilitare&lt;br /&gt;
un servizio, basta farlo dalla linguetta &amp;quot;'''Events'''&amp;quot; e in seguito abilitarlo.&lt;br /&gt;
Ricordo che tutto deve essere esplicitamente concesso, altrimenti non funzionarà nulla.&lt;br /&gt;
e' un pò come avere un router. E se poi vi dilettate nel fileshare&lt;br /&gt;
(mi raccomando,solo distribuzioni Linux, niente materiale coperto da copyright) bisogna&lt;br /&gt;
stare l' e ragionarci, perché spesso si &amp;quot;'''apropriano'''&amp;quot; di porte stranissime...&lt;br /&gt;
e in questo caso il mio consiglio spassionato è di aprire solo quelle che sono esplicitamente&lt;br /&gt;
scritte nelle configurazioni dei vari programmi (VEDI APPENDICE B)&lt;br /&gt;
&lt;br /&gt;
Nella linguetta status invece, possiamo vedere le statistiche relative alla nostra connessione:&lt;br /&gt;
i MB ricevuti e inviati, la banda utilizzata e i servizi attualmente in uso.&lt;br /&gt;
Per fermare il firewall, basta cliccare sul pulsante &amp;quot;'''Stop firewall'''&amp;quot;. Per bloccare&lt;br /&gt;
TUTTO, basta dare un &amp;quot;'''Lock Firewall'''&amp;quot; (mmm... molto panic mode ^_^).&lt;br /&gt;
Ora,piano piano dovrete andare ad aprire le porte che vi servono... un bel lavoretto,eh?&lt;br /&gt;
Ma almeno sarete ben protetti ^_^&lt;br /&gt;
&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:46:32Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Concetti Avanzzati del Firewalling */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
* Ha preimpostate delle regole interne, ma accetta anche quelle prestabilite dall'utente&lt;br /&gt;
* Filtrazione incorporata delle backdoors conosciute e dei Trojan&lt;br /&gt;
* Contributo alla configurazione dei servizi&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri dell'ICMP per arrestare gli attachi di interruzione del servizio (DOS)&lt;br /&gt;
* Sostegno per la sintonizzazione dei parametri del TOS per migliorare i servizi per i calcolatori collegati in rete&lt;br /&gt;
* Sostegno per le funzioni di NAT e port fowarding&lt;br /&gt;
&lt;br /&gt;
Caratteristiche di sintonia del Kernel Avanzzate&lt;br /&gt;
&lt;br /&gt;
* Sostiene &amp;quot;Sysctl&amp;quot; dei glibc per la protezione del firewall contro il flooding, broadcasting e spoofing&lt;br /&gt;
* Kernel supportati: 2.4.x e 2.6.x&lt;br /&gt;
&lt;br /&gt;
E molto più&lt;br /&gt;
&lt;br /&gt;
= Installazione =&lt;br /&gt;
&lt;br /&gt;
Installazione dei pacchetti precompilati&lt;br /&gt;
Firestarter è convenientemente disponibile in un pacchetto precompilato per le distribuzioni di Linux basate su precompilato come Red Hat, Mandriva e Slackware.&lt;br /&gt;
Una volta che avete trasferito il pacchetto di firestater dal server, aprite un termila e andate nella directory dove avete scaricato il precompilato. Scivete i&lt;br /&gt;
seguenti comandi per installare il pacchetto:&lt;br /&gt;
&lt;br /&gt;
 [bash]$ su &lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# rpm -Uvh firestarter*.rpm&lt;br /&gt;
&lt;br /&gt;
Eccetto tutte le dipendenze insolute o altri problemi, firestarter dovrebbe ora essere installato.&lt;br /&gt;
&lt;br /&gt;
Installando dai .DEB&lt;br /&gt;
Firestarter è stao creato in Debiam e può essere trasferito ed installato per mezzo di apt-get semplicemente scrivendo&lt;br /&gt;
 apt-get install firestarter&lt;br /&gt;
&lt;br /&gt;
Installando in Gentoo&lt;br /&gt;
Firestarter è completamente sostenuto nella distribuzione Gentoo dal sistema '''portage''', per installare il programma, eseguite:&lt;br /&gt;
 emerge firestarter&lt;br /&gt;
&lt;br /&gt;
compilando ed installando dal sorgente&lt;br /&gt;
Scompattare il tarball ed entrare nella directory appena creata:&lt;br /&gt;
 [bash]$ tar -xvzf firestarter-versione.tar.gz&lt;br /&gt;
 [bash]$ cd firestarter&lt;br /&gt;
 eseguite lo script '''configure&amp;quot;, digittando '''./configure --help''' verrano mostrate tutte le opzioni disponibili.&lt;br /&gt;
 [bash]$ ./configure --sysconfdir=/etc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Con l'opzione impostata, firestarter installerà i file di configurazione in '''/etc/firestarter'''. Di default, firestarter sarà installato nella directory '''/usr/local'''&lt;br /&gt;
Se la fase di compilazione viene completata senza problemi potete compilare ed installare il program,ma:&lt;br /&gt;
 [bash]$ make&lt;br /&gt;
 [bash]$ su&lt;br /&gt;
 Password [vostra password di root seguita dalla pressine del tasto &amp;quot;invio&amp;quot;]&lt;br /&gt;
 [bash]# make install&lt;br /&gt;
&lt;br /&gt;
Il passaggio '''make instaòll''' è opzionale, potete tranquillamente eseguire firestarter dalla directory '''src'''.&lt;br /&gt;
se volete usufruire degli stessi privilegi che potete avere installando dai pacchetti, ma avete compiltato a mano, eseuite '''./postinstall'''. E' uno script &lt;br /&gt;
che aggiunge firestarter ai processi caricati all'avvio.&lt;br /&gt;
&lt;br /&gt;
Installare in Slackware&lt;br /&gt;
Io personalmente, consiglio di usare '''swaret''' come tool d'intallazione. E' molto semplice da usare e da configurare, ed inoltre risolve in modo automatico&lt;br /&gt;
eventuali dipendenze. Se avete settato come repository '''slacky.it''' (vi rimando al sito per maggiori informazioni e dettagli per come fare http://www.slacky.it).&lt;br /&gt;
dopo un &lt;br /&gt;
 # swaret --update&lt;br /&gt;
Possiamo installare firestarter con questo comando:&lt;br /&gt;
 # swaret --install firestarter&lt;br /&gt;
&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
Se avete installato firestarter da un pacchetto binario come il DEB o il TGZ, ci sarà un icona del programma di firestarter nel menu di applicazioni di GNOME,&lt;br /&gt;
sotto il menu internet. se non avate questa icona, eseguite '''firestarter''' da un terminale o dal menu di funzionamento di GNOME (ALT-F2).&lt;br /&gt;
&lt;br /&gt;
1. Dare la password di root quando fate partire firestarter, il sistema può chiedervi la parola d'accesso per l'utente root. se non riuscite ad inserire la password&lt;br /&gt;
di root (o non la conoscete) bisognerà far partire firestarter direttamente dal terminale di root. ciò si fa solitamente con '''su -'''. usate &amp;quot;'''man'''&amp;quot;&lt;br /&gt;
per maggiori informazioni. Per una maggiore versatilità, in KDE possiamo cliccare sull'icona &amp;quot;'''K'''&amp;quot; e inserire come comando, &amp;quot;'''kdesu firestarter'''&amp;quot;&lt;br /&gt;
per evitare di occupare una shell.&lt;br /&gt;
&lt;br /&gt;
2. Finestra di configurazione automatica&lt;br /&gt;
La prima volta che avviate firestarter dovreste trovarvi davanti alla finestra di configurazione automatica. Premi il tasto foward per continuare.&lt;br /&gt;
&lt;br /&gt;
3. Configurazione dell'interfaccia di rete collegata all'esterno&lt;br /&gt;
L'interfaccia di rete collegata all'esterno, è quella collegata ad internet. Se non avete le schede di rete multiple, modem o configurazioni VPN, va bene il valore suggerito&lt;br /&gt;
Gli utenti collegati a voi (LAN, DSL o CAVO) dovrebbero permettere l'opzione di rilevamento del DHCP. ci sono molte altre opzioni nel wizard,&lt;br /&gt;
che conoscerete quando diventerete più esperti. Per la vostra prima volta tuttavvia potete continuare a semplicemente premere il tasto di andata fino a &lt;br /&gt;
completare il wizard.&lt;br /&gt;
&lt;br /&gt;
Ora l'interfaccia grafica principale del programma vi sarà mostrata, e sarete liberi di esplorare le funzioni principali del programma ed iniziare a modificare il firewall.&lt;br /&gt;
O anche sedersi comodo e guardare il firewall fare il suo lavoro :)&lt;br /&gt;
&lt;br /&gt;
Se non avete nessun link nel menu, potete aprire una shell e dare &amp;quot;'''kdesu firestarter'''&amp;quot; o loggarvi come root e dare &amp;quot;'''firestarter'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
L'interfaccia grafica principale di firestarter è divisa in sottosezioni denominate linguette. Attualmente tre linguette sono disponibili:&lt;br /&gt;
* La linguetta dove è possibile vedere le hits:&lt;br /&gt;
cioè dove i pacchetti di dati che si ottengono vengono arrestati dal firewall sono annotati. Potete realizzare le azioni su una hit, come ad esempio&lt;br /&gt;
trasformarlo in una regola che interesserà tutti i pacchetti futuri.&lt;br /&gt;
&lt;br /&gt;
* La linguetta delle regole&lt;br /&gt;
è la sezione che modella il firewall, la sala di controllo di tutto il trafico della rete.&lt;br /&gt;
&lt;br /&gt;
Oltre l'interfaccia principale ci sono altre due sezioni di interesse:&lt;br /&gt;
&lt;br /&gt;
Il wizard è la prima cosa che vedete quando avviate per la prima volta firestarter. Permette il cambiamento rapido di un'ampia varietà di tregolazioni che&lt;br /&gt;
controllano il firewall&lt;br /&gt;
Le prferenze, che contengono tutte le opzioni necessarie a modificare/personalizzare il firewall. Sia l'interfaccia utente che la parte refrattaria possono&lt;br /&gt;
essere modificate di qui.&lt;br /&gt;
&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
Una domanda frequente è: in che stato è il firewall quando non viene lanciato firestarter? La risposta breve è: dipende. se firestarter è stato installato con&lt;br /&gt;
pacchetti precompilati il firewall rimarrà sempre in esecuzione (tranne per gli utenti dial-up), perfino dopo un reboot. In questi casi il firewall è in esecuzione come &lt;br /&gt;
un servizio e può essere gestito usando il servizio standard di sistema Linux e i tool di gestione dei runlevel.&lt;br /&gt;
se firestarter è stato compilato ed installato da sorgente e si sta usando una distribuzione come Red Hat o Mandriva, bisognerebbe eseguire il &amp;quot;postinstall&amp;quot; script,&lt;br /&gt;
disponibile tra i sorgenti di firestarter, ottenendo gli stessi effetti di un'installazione tramite pacchetti precompilato o DEB.&lt;br /&gt;
Il firewall rimarrà persistente dopo un reboot e sarà generato uno script di init.&lt;br /&gt;
Se firestarter è stato compilato da sorgente ma non si usa una distribuzione come Red Hat o Mandriva, il firewall sarà attivo dal suo avvio fino al reboot successivo.&lt;br /&gt;
Vedere più avanti la sezione riguardante l'avvio manuale di firestarter per aumentare la copertura del firewall.&lt;br /&gt;
In aggiunta ai componenti descritti sopra, l'uso di un demone DHCP aumenta ulteriormente la copertura.Quando al disposito di rete collegato al sevizio DHCP viene&lt;br /&gt;
assegnato un indirizzo ip ( sia quando si connette per la prima volta sia quando l'indirizzo viene rinnovato) il firewall viene aggiornato. Da notare che questo&lt;br /&gt;
succede persino se il firewall è stato precedentemente stoppato da firestarter o dagli script di init. attualmente questo servizio è usufruibile usando DHCPD&lt;br /&gt;
oppure un programma '''dhcp-client''' (forniti dalla maggioranza delle distribuzioni).&lt;br /&gt;
&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
Firestarter è distribuito con uno script nello stile SysV per gestire il firewall. Gli script forniscono le seguenti funzioni:&lt;br /&gt;
* Start: avvia il firewall&lt;br /&gt;
* Stop: ferma il firewall&lt;br /&gt;
* Status: dà un'accurata descrizione dello stato interno del firewall&lt;br /&gt;
* restart: ferma, poi avvia il firewall&lt;br /&gt;
* panic: blocca il firewall&lt;br /&gt;
&lt;br /&gt;
Queste funzioni possono essere invocate aggiungendole come parametri allo script. Ad esempio, è possibile avviare&lt;br /&gt;
firestarter con &amp;quot;firestarter start&amp;quot;. La maggior parte delle distribuzioni, inoltre includono dei tpools come&lt;br /&gt;
&amp;quot;chkconfig&amp;quot;, per gestire gli script di  servizio. Questi tools consentono di cambiare la priotà d'avvio e molti parametri&lt;br /&gt;
dei servizi.&lt;br /&gt;
&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
Aggiungere la riga &amp;quot;'''/usr/bin/firestarter -s&amp;quot;. che rappresenta lo script di attivazione del firewall.&lt;br /&gt;
Sulle distribuzioni SysV-based (come slackware) questo script è il file &amp;quot;'''/etc/rc.d/rc.local'''&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
Il firewall deve essere avviato dopo che è stata stabilita la connessione con il proprio ISP.&lt;br /&gt;
Nel wizard di firestarter esiste un'opzione per avviare automaticamente il firewall.&lt;br /&gt;
Quest'opzione non funziona con qualche dialer. Per esempio,se si sta usando l'applicazione dialer Kppp si dovrà&lt;br /&gt;
settare il dialer per fargli avviare firestarter dopo che la connessione è stata stabilita.&lt;br /&gt;
Kppp include un'opzione per lanciare gli script solo quando la connessione è stata stabilita.&lt;br /&gt;
&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:40:24Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Introduzione */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Firestater è un frontend grafico basato su GTK+/gnome ai vari sottoinsiemi per il firewalling disponibili nel kernel di Linux, per esempio Netfilter. E' nato per&lt;br /&gt;
fornire  un funzionale pratico ma tuttavia semplice approccio per le tecnologie di firewalling avanzzate.&lt;br /&gt;
Questo documento descrive le versioni 1.0 e successivamente di firestarter. Dovrebbeessere considerato come &amp;quot;work in progress&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
&lt;br /&gt;
I firewall sono perlopiù usati nei PC che fungono da gateway per le connessioni ad internet. Uno dei requisiti fondamentali del firewall deve essere quella di protegere da una serie di attacchi i calcolatori. Firestarter può essere installato su una macchina diversa dal gateway per fornire le funzioni di firewalling anche solo per un segmento di LAN, o può essere installato su singole stazioni di lavoro Linux.&lt;br /&gt;
La sicurezza è un processo non un prodotto. Un firewall non garantisce la sicurezza ma è nella maggior parte degli ambienti la prima linea di difesa contro i crackers.&lt;br /&gt;
&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
Facile da usare, tuttavia potente.&lt;br /&gt;
* interfaccia grafica facile da usare e ottimizzata per GNOME 2&lt;br /&gt;
* wizard ed assistenti per essere utile sia ai principianti che agli esperti&lt;br /&gt;
* Temi e regolazioni globali per GNOME&lt;br /&gt;
* Traduzione disponibili per molte lingue (25 lingue a partire da luglio del 2002)&lt;br /&gt;
&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Introduzione_a_Firestarter</id>
		<title>Introduzione a Firestarter</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Introduzione_a_Firestarter"/>
				<updated>2006-11-16T13:38:41Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
== Firewalls in una nutshell ==&lt;br /&gt;
== Caratteristiche di Firestarter ==&lt;br /&gt;
= Concetti Avanzzati del Firewalling =&lt;br /&gt;
== Iniziare ==&lt;br /&gt;
== I componenti di firestarter ==&lt;br /&gt;
== Esecuzione del Firewall ==&lt;br /&gt;
== Gli script di init del sistema ==&lt;br /&gt;
== Lanciare il firewall all'avvio ==&lt;br /&gt;
== Dial-Up ==&lt;br /&gt;
= Configurare firestarter =&lt;br /&gt;
== Abilitare/Disabilitare il traffico ==&lt;br /&gt;
= APPENDICE A =&lt;br /&gt;
== NAT - Condivisione della connessione a Internet ==&lt;br /&gt;
== Il Setup Fisico ==&lt;br /&gt;
== Configurazione del Gateway ==&lt;br /&gt;
== Configurazione del client ==&lt;br /&gt;
== Testare la configurazione ==&lt;br /&gt;
== abilitare NAT in firestarter ==&lt;br /&gt;
= APPENDICE B =&lt;br /&gt;
== Requisiti del kernel ==&lt;br /&gt;
== Configurazione del kernel ==&lt;br /&gt;
== Locazione delle funzioni del kernel ==&lt;br /&gt;
= Ringraziamenti =&lt;br /&gt;
= Note finali =&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Djbdns_on_Slackware:_l%27alternativa_al_BIND</id>
		<title>Djbdns on Slackware: l'alternativa al BIND</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Djbdns_on_Slackware:_l%27alternativa_al_BIND"/>
				<updated>2006-11-09T20:34:08Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Note finali */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Mi è capitato di dover utilizzare su di sistema con distribuzione 9.0 Djbdns, programma alter alternativo al BIND&lt;br /&gt;
scritto dal noto Daniel J. Bernstein. Mi sono un pò documentato e ho inizialmente pensato che gestire questo programma &lt;br /&gt;
come dns server fosse complesso ( i DNS in genere lo sono, almeno per me!).&lt;br /&gt;
In realtà la complessità di questo programma è dovuta alla poca documentazione e alla sua scarsa diffusione, &lt;br /&gt;
ma in realtà il suo funzionamento è abbastanza semplice specie per chi ha dimestichezza con i programmi del noto &lt;br /&gt;
Daniel J. Bernstein, come Qmail e daemontools ad esempio.&lt;br /&gt;
E' vero, rispetto al Bind manca di molte features, e la sua licenza non è GPL (un limite non da poco), ma chi volesse &lt;br /&gt;
utilizzarlo potrebbe puntare su di un aspetto non secondario, la sicurezza. Sul sito ufficiale trovate una pagina &lt;br /&gt;
&amp;quot;The djbdns security guarantee&amp;quot; dove DJB offre in maniera esplicita 500$ a chi gli segnala dei bugs di sicurezza del programma,&lt;br /&gt;
citto testualmente:&lt;br /&gt;
http://cr.yp.to/djbdns/guarantee.html&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I offer $500 to the first person to publicly report a verifiable security hole in the latest version of djbdns.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Questo sembra essere un buon motivo, anche se in realtà credo che molto dipenda dalle abitudini e dalle necessità di chi&lt;br /&gt;
attiva il servizio, il quale sceglie il programma che meglio conosce o che meglio si adatta alla situazione che deve affrontare.&lt;br /&gt;
In realtà alla fine della configurazione, mi sono accorto che questo programma è abbastanza semplice &lt;br /&gt;
(almeno per un uso standard) e molto leggero per il sistema, inoltre abbinandolo a daemontools abbiamo la sicurezza che in &lt;br /&gt;
caso di caduta, il servizio venga rilanciato.&lt;br /&gt;
&lt;br /&gt;
Un pò al pari di Qmail, altro prodotto famoso di DJB, djbdns si caratterizza per un'archetettura strutturale completamente&lt;br /&gt;
diversa al BIND, che con un solo demone e alcuni file di configurazione fa tutto. Qui invece, come per lo stesso Qmail,&lt;br /&gt;
abbiamo diversi programmi, ognuno per una funzione specifica.&lt;br /&gt;
Prima di iniziare mi sono letto l'HOWTO pubblicato da Luca Morettoni&lt;br /&gt;
&lt;br /&gt;
http://morettoni.net/docs/djbdns.html&lt;br /&gt;
&lt;br /&gt;
indispensabile per capèirne il funzionamento, da cui ho tratto alcuni spunti per scrivere questo breve documento.&lt;br /&gt;
&lt;br /&gt;
Il mio interesse era semplificare al minimo i passaggi e quindi la documentazione necessaria per arrivare a raggiungere&lt;br /&gt;
il mio obbiettivo, ovvero quello di impostare un resolver per una rete locale che fosse anche autoritativo su di un dominio&lt;br /&gt;
interno (zona). Autoritativo per una zona, come sappiamo, significa essere il responsabile della risoluzione finale degli host&lt;br /&gt;
per quel dominio.&lt;br /&gt;
Quindi il compito è duplice il primo forse più semplice del secondo, prevede un pò più di conoscenze teoriche sull'utilizzo dei DNS.&lt;br /&gt;
Per far funzionare il tutto nella maniera più coretta, le risorse necessarie sono rappresentate da due pacchetti:&lt;br /&gt;
'''djbdns''' e '''daemontools''' reperibili su&lt;br /&gt;
http://cr.yp.to/djbdns.html&lt;br /&gt;
http://cr.yp.to/daemontools.html&lt;br /&gt;
&lt;br /&gt;
Daemontoools è necessario per l'avvio e la gestione del demone, consente di monitorarlo e di averlo sempre attivo.&lt;br /&gt;
L'uso di daemontools è già descritto in questo breve documento che trovate su&lt;br /&gt;
http://www.sistemistiindipendenti.org/modules/news/article.php?storyid=47&lt;br /&gt;
&lt;br /&gt;
== Installare daemontools ==&lt;br /&gt;
L'istallazione di daemontools è semplice dopo aver scompattato il pacchetto basta eseguire&lt;br /&gt;
&lt;br /&gt;
 root@box:/usr/src/admin/daemontools-0.76# ./package/install&lt;br /&gt;
&lt;br /&gt;
In pratica daemontools fa partire in modalità &amp;quot;respawn&amp;quot; dall'inttab il programma '''svscanboot''' (per tutti i run level), &lt;br /&gt;
il quale a sua volta esegue e controlla il programma '''svscan'''. Quest'ultimo analizza il contenuto della directory /service,&lt;br /&gt;
che viene creata anch'essa sul sistema all'atto dell'installazione di daemontools, e grazie al programma supervise potrà&lt;br /&gt;
controllare i processi che abbiamo deciso di monitorare e li rieseguirà nel caso in cui questi non dovessero più essere in esecuzione.&lt;br /&gt;
Ovviamente il fatto di utilizzare l'inittab è legato al fatto che '''init''' il padre di tutti i processi, riavvia in automatico tutti i processi&lt;br /&gt;
che sono sotto il suo diretto controllo&lt;br /&gt;
&lt;br /&gt;
 SV:123456:respawn:/command/svscanboot&lt;br /&gt;
&lt;br /&gt;
Questo programma controlla ogni 5 secondi le directory (link simbolici alle directory radice dei programmi da monitorare)&lt;br /&gt;
contenute in /service che contengono, a loro volta, i file di configurazione per eseguire i vari servizi.&lt;br /&gt;
Appena svscan trova una nuova directory e quindi un nuovo servizio da gestire, '''svscan''' lancia un nuovo processo,&lt;br /&gt;
supervice. Ogni demone supervice esegue il servizio cui è associato e lo fa ripartire nel caos in cui questo terminasse &lt;br /&gt;
in modo imprevisto.&lt;br /&gt;
&lt;br /&gt;
== Installare Djbdns ==&lt;br /&gt;
L'installazione di djbdns non è complessa, ma al pari della sua configurazione, molto diversa dal bind.&lt;br /&gt;
 cd /usr/src&lt;br /&gt;
 tar zxvf djbdns-1.05.tar.gz&lt;br /&gt;
&lt;br /&gt;
 make - compila&lt;br /&gt;
 make setup check - installa&lt;br /&gt;
&lt;br /&gt;
Gli eseguibili vengono installati in /usr/local/bin&lt;br /&gt;
&lt;br /&gt;
 root@box:/service# which tinydns&lt;br /&gt;
 /usrlocal/bin/tinydns&lt;br /&gt;
 tinydns tinydns-conf tinydns-data tinydns-edit tinydns-get&lt;br /&gt;
&lt;br /&gt;
L'uso del servizio si basa sostanzialmente su due di questi eseguibili:&lt;br /&gt;
&lt;br /&gt;
* dnscache: è un DNS cache server che consente la risoluzione di domini esterni effettuandone la cache sul sistema&lt;br /&gt;
* tinydns: è il DNS vero e proprio con cui poter gestire le zone di un dominio.&lt;br /&gt;
&lt;br /&gt;
Il nostro obbiettivo preveda come prima cosa l'installazione di un resolver (dns cache server) in grado di fornire il servizio &lt;br /&gt;
per i client della rete locale. Per prima cosa abbiamo installato e configurato dnscache, il programma che nel pacchetto&lt;br /&gt;
consente di abilitare questo servizio&lt;br /&gt;
&lt;br /&gt;
= Installazione di Dnscache =&lt;br /&gt;
Per prima cosa creiamo sul sistema l'utente ed il gruppo con cui girerà il DNS cache server. Questa operazione è &lt;br /&gt;
importante e viene descritta in maiera dettagliata sull'HOWTO ufficiale&lt;br /&gt;
&lt;br /&gt;
 root@box:/service# groupadd dns&lt;br /&gt;
 root@box:/service# useradd -g dns -s /bin/false -d /dev/null dnscache&lt;br /&gt;
 root@box:/service# useradd -g dns -s /bin/false -d /dev/null dnslog&lt;br /&gt;
&lt;br /&gt;
Adesso si può lanciare il dns cache server:&lt;br /&gt;
 dnscache-conf dnscache dnslog /usr/local/etc/dnscache&lt;br /&gt;
&lt;br /&gt;
Questo crea la dir /usr/local/etc/dnscache in cui vengono depositati tutti i file necessari al funzionamento del cache server.&lt;br /&gt;
&lt;br /&gt;
  root@box:/usr/local/etc/dnscache# ls&lt;br /&gt;
 env/ log/ run* seed&lt;br /&gt;
&lt;br /&gt;
Per poter far partire dns cache basta sfruttare daemontolls creando il link simbolico nella directory /service&lt;br /&gt;
 ln -s /usr/local/etc/dnscache /service&lt;br /&gt;
&lt;br /&gt;
A questo punto possiamo provare una risoluzione dal nostro sistema&lt;br /&gt;
&lt;br /&gt;
 root@box:/usr/local/etc/dnscache/log/main# dig www.linux.it localhost&lt;br /&gt;
 ; &amp;lt;&amp;lt;&amp;gt;&amp;gt; DiG 9.2.1 &amp;lt;&amp;lt;&amp;gt;&amp;gt; www.linux.it localhost&lt;br /&gt;
 ;; QUESTION SECTION:&lt;br /&gt;
 ;www.linux.it.		IN	A&lt;br /&gt;
 ;; ANSWER SECTION:&lt;br /&gt;
 www.linux.it	85381   	IN	CANME picard.linux.it&lt;br /&gt;
 picard.linux.it     85381	IN	A	62.177.1.107&lt;br /&gt;
&lt;br /&gt;
oppure&lt;br /&gt;
 root@box:/usr/local/etc/dnscache/log/main# nslookup www.linux.it localhost&lt;br /&gt;
 Server:		localhost&lt;br /&gt;
 Address: 	127.0.0.1#53&lt;br /&gt;
 Non-authoritative answer:&lt;br /&gt;
 Name: www.linux.com&lt;br /&gt;
 Address 66.35.250.170&lt;br /&gt;
&lt;br /&gt;
Il nostro dns cache server funziona regolarmente per la risoluzione dei nomi esterni e può essere impostato &lt;br /&gt;
nel file resolv.conf del nostro host locale. In questo modo comincerà a funzionare come dns cache server vero e proprio.&lt;br /&gt;
I log delle richieste dns possono essere analizzati nella directory '''/usr/local/etc/dnscache/log/main&lt;br /&gt;
Il dns in questo modo è utilizzabile solo dal localhost, ma se volessimo aprire il servizio a host esterni, ad esempio ai client&lt;br /&gt;
della rete locale, occore effettuare l'operazione di &amp;lt;&amp;lt;external cache for your network&amp;gt;&amp;gt;, &lt;br /&gt;
come viene definita nella documentazione ufficiale consultabile su:&lt;br /&gt;
http://cr.yp.to/djbdns/run-cache-x.html&lt;br /&gt;
&lt;br /&gt;
L'operazione è simile alla precedente, occore solo avere l'indirizzo del network verso cui effettuare l'apertura e l'indirizzo IP&lt;br /&gt;
del server, per cui avremo:&lt;br /&gt;
 dnscache-conf dnscache dnslog /usr/local/etc/dnscache_external 192.168.17.224&lt;br /&gt;
In questo caso viene anche specificato l'indirizzo IP del dns cache server per la rete locale.&lt;br /&gt;
Ovviamente per attivare il servizio occore creare il solito link simbolico:&lt;br /&gt;
 ln -s /usr/local/etc/dnscache_external /service&lt;br /&gt;
Per ultimo occore abilitare le richieste dei client della rete per cui occore creare un file&lt;br /&gt;
 touch /usr/local/etc/dnscache_external/root/ip/192.168.17&lt;br /&gt;
Nella directory ip era ovviamente presente solo il file 127.0.0.1 ora invece tutti gli host del network 192.168.17 possono&lt;br /&gt;
effettuare richieste al server dns e sfruttarne appieno le potenzialità di risolutore.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 root@box:/usr/local/etc/dnscache/log/main# nslookup www.ibm.com 192.168.17.224&lt;br /&gt;
 Server:		192.168.17.224&lt;br /&gt;
 Address: 	192.168.17.224#53&lt;br /&gt;
 Non-authoritative answer:&lt;br /&gt;
 Name: www.ibm.com&lt;br /&gt;
 Address 129.42.19.99&lt;br /&gt;
 Name: www.ibm.com&lt;br /&gt;
 Address 129.42.16.99&lt;br /&gt;
 Name: www.ibm.com&lt;br /&gt;
 Address 129.42.17.99&lt;br /&gt;
 Name: www.ibm.com&lt;br /&gt;
 Address 129.42.18.99&lt;br /&gt;
&lt;br /&gt;
= Installazione di Tinydns =&lt;br /&gt;
La seconda necessità consiteva nel rendere il dns in grado di gestire un dominio, in pratica essere autoritario per la zona.&lt;br /&gt;
In questo caso sitratta quindi di risolvere i nomi di host interni ad una specifica zona, operazione per cui viene utilizzato&lt;br /&gt;
'''tinydns''', il cui compito specifico è proprio questo.&lt;br /&gt;
Questo programma è forse il più importante, ed è quello del pacchetto djbdns, che ci consente di svolgere pienamente&lt;br /&gt;
le funzioni di un dns server. ovviamente di far girare tinydns e dnscache sullo stesso sistema può creare un problema dovuto&lt;br /&gt;
al fatto che entrambi sono in ascolto sulla stessa porta, per cui è bene creare un '''ip alias''' su cui far girare tinydns.&lt;br /&gt;
Quindi avremo:&lt;br /&gt;
 ifconfig eth1:0 192.168.17.227 netmask 255.255.255.0&lt;br /&gt;
come per dnscache si crea un account specifico&lt;br /&gt;
 useradd -g dns -s /bin/false -d /dev/null tinydns &lt;br /&gt;
Il servizio tinydns viene creato con tinydns-conf in modo simile a quanto visto prima per dnscache:&lt;br /&gt;
 tinydns-conf tinydns dnslog /usr/local/etc/tinydns 192.168.17.227&lt;br /&gt;
il servizio si avvia con il solito link simbolico:&lt;br /&gt;
 ln -s /usr/local/etc/tinydns /service&lt;br /&gt;
&lt;br /&gt;
I servizi attivi che dovremmo avere sono questi:&lt;br /&gt;
&lt;br /&gt;
 root@box:/# ps -ax | grep dns&lt;br /&gt;
 4616 ?		S	0:00 supervise dnscache&lt;br /&gt;
 4618 ?		S	0:00 /usr/local/bin/dnscache&lt;br /&gt;
 6172 ?		S 	0:00 supervise dnscache_external&lt;br /&gt;
 6174 ?		S	0:00 /usr/local/bin/dnscache&lt;br /&gt;
 6191 ?		S	0:00 supervise tinydns&lt;br /&gt;
&lt;br /&gt;
A questo punto dobbiamo costruire i nostri file di zona, un pò come avremmo fatto con il BIND. In realtà la sintassi è un pò&lt;br /&gt;
diversa, anche se tutto sommato la logica resta quella. In più djbdns ci mette a disposizione una serie di comandi che&lt;br /&gt;
semplificano la creazione delle nostre zone.&lt;br /&gt;
Sotto '''/usr/local/etc/tinydns/root''' troveremo una serie di script specifici:&lt;br /&gt;
&lt;br /&gt;
* add-ns: aggiunge il record per il Name Server&lt;br /&gt;
* add-host: aggiunge un host&lt;br /&gt;
* add-mx: aggiunge un record MX (Mail eXchanger)&lt;br /&gt;
* add-alias: aggiunge un alias per un host&lt;br /&gt;
* add-childdns&lt;br /&gt;
proviamo ad inserire qualche host della rete&lt;br /&gt;
&lt;br /&gt;
 cd /usr/local/etc/tinydns/root&lt;br /&gt;
&lt;br /&gt;
 #Aggiungo il record per il Name Server&lt;br /&gt;
 ./add-ns .192.168.17.227 # è il Name Server&lt;br /&gt;
&lt;br /&gt;
 #Aggiungo un host della mia rete&lt;br /&gt;
 ./add-host server2.dominio.it 192.168.17.9&lt;br /&gt;
&lt;br /&gt;
 #Aggiungo un IP di un host della rete (Reversal)&lt;br /&gt;
 ./add-host .0.17.168.192.in-add.arpa 192.168.17.227&lt;br /&gt;
&lt;br /&gt;
 #Aggiungo un alias per un IP della mia rete&lt;br /&gt;
 ./add-alias www.dominio.it 192.168.17.9&lt;br /&gt;
&lt;br /&gt;
 #Compilo il file di zona&lt;br /&gt;
 make&lt;br /&gt;
&lt;br /&gt;
Il comando make da lanciare alla fine, compila il file di zona con un formato '''.cdb''' specifico di tinydns, che rende &lt;br /&gt;
la lettura dei file di zona molto più veloce rispetto ai normali file di testo del BIND&lt;br /&gt;
&lt;br /&gt;
A questo punto per poter utilizzare entrambi i servizi sul sistema ed avviare sia la risoluzione per i domini esterni che per&lt;br /&gt;
gli host della zona interna occore far dialogare dnscache e tinydns, in modo che uno passi le query all'altro. Per fare questo&lt;br /&gt;
occore creare i seguenti file nelle root directory di dnscache e dnscache_external, in modo che questo consulti anche &lt;br /&gt;
il dns server che risponde sull'IP alias, nel nostro caso 192.168.17.227:&lt;br /&gt;
&lt;br /&gt;
  echo 192.168.17.227 &amp;gt; /usr/local/etc/dnscache/root/servers/dominio.it&lt;br /&gt;
  echo 192.168.17.227 &amp;gt; /usr/local/etc/dnscache/root/servers/17.168.192.in-addr.arpa&lt;br /&gt;
  echo 192.168.17.227 &amp;gt; /usr/local/etc/dnscache_external/root/servers/dominio.it&lt;br /&gt;
  echo 192.168.17.227 &amp;gt; /usr/local/etc/dnscache_external/root/servers/17.168.192.in-addr.arpa&lt;br /&gt;
&lt;br /&gt;
A questo punto occore riavviare i servizi&lt;br /&gt;
 svc -t /service/dnscache&lt;br /&gt;
 svc -t /service/dnscache_external&lt;br /&gt;
 svc -t /service/tinydns&lt;br /&gt;
&lt;br /&gt;
Adesso possiamo provare a risolvere gli host della nostra rete&lt;br /&gt;
 root@box:/# nslookup -silent www.dominio.it&lt;br /&gt;
 Server:	127.0.0.1	&lt;br /&gt;
 Address: 	127.0.0.1#53&lt;br /&gt;
 Non-authoritative answer:&lt;br /&gt;
 Name: www.dominio.it&lt;br /&gt;
 Address 192.168.17.9&lt;br /&gt;
&lt;br /&gt;
 root@box:/# nslookup -silent www.linux.com&lt;br /&gt;
 Server:	127.0.0.1	&lt;br /&gt;
 Address: 	127.0.0.1#53&lt;br /&gt;
 Non-authoritative answer:&lt;br /&gt;
 Name: www.linux.com&lt;br /&gt;
 Address 66.35.250.170&lt;br /&gt;
&lt;br /&gt;
Un ultimo strumento che mi sento di consigliarvi e che ho utilizzato è '''axfr-get''', in abbinamento con '''tcpclient'''&lt;br /&gt;
che fa parte del pacchetto '''ucspi-tcp''' ed è prelevabile  da:&lt;br /&gt;
http://cr.yp.to/ucspi-tcp.html&lt;br /&gt;
&lt;br /&gt;
Questo programma consente di trasferire una zona da un server DNS (BIND) che consenta lo zone transfer, &lt;br /&gt;
generando un file contenente le informazioni della zona, in un formato compatibile con tinydns:&lt;br /&gt;
&lt;br /&gt;
 root@box:/etc/tinydns/root# 	tcpclient nameserver 53 axfr-get zona_int zona_int.txt zona_int.tmp&lt;br /&gt;
&lt;br /&gt;
 * nameserver - sara il nameserver da cui prelevare le informazioni di zona&lt;br /&gt;
 * zona_int - è il nome della zona di cui voglio prelevare le informazioni (host)&lt;br /&gt;
 * zona_int.txt - conterrà le informazioni da caricare in tinydns, già nel suo formato originale.&lt;br /&gt;
&lt;br /&gt;
Il file avrà un formato di questo tipo:&lt;br /&gt;
&lt;br /&gt;
 #Nome host:IP Host:TTL&lt;br /&gt;
 Cpop3.dominio.it:server2.dominio.it.:86400&lt;br /&gt;
 Cproxy.dominio.it:server2.dominio.it.:86400&lt;br /&gt;
 Cra.dominio.it:server2.dominio.it.:86400&lt;br /&gt;
 +rh.dominio.it:192.168.17.76:86400&lt;br /&gt;
 Crh7.dominio.it:rh.dominio.it.:86400&lt;br /&gt;
 +router.dominio.it:212.110.6.169:86400&lt;br /&gt;
 +sco.dominio.it:192.168.17.61:86400&lt;br /&gt;
&lt;br /&gt;
* C -&amp;gt; è un Cname&lt;br /&gt;
* + -&amp;gt; è un host da aggiungere&lt;br /&gt;
&lt;br /&gt;
A questo punto per caricare le informazioni:&lt;br /&gt;
 root@box:/usr/local/etc/tinydns/root# cat zona.txt &amp;gt;&amp;gt; data&lt;br /&gt;
 make&lt;br /&gt;
Senza dover riavviare tinydns possiamo risolvere i nuovi host della zona&lt;br /&gt;
&lt;br /&gt;
 root@box:/etc/tinydns/root# nslookup rh&lt;br /&gt;
 Server:	127.0.0.1	&lt;br /&gt;
 Address: 	127.0.0.1#53&lt;br /&gt;
 Non-authoritative answer:&lt;br /&gt;
 Name: rh.dominio.it&lt;br /&gt;
 Address 192.168.17.76&lt;br /&gt;
&lt;br /&gt;
Anche per la diagnosi il pacchetto offre delle utility specifiche da utilizzare al posto dei classici dig e nslookup&lt;br /&gt;
ad esempio:&lt;br /&gt;
&lt;br /&gt;
* dnsip - restituisce l'IP da un dato nome di dominio&lt;br /&gt;
 root@box:/tmp# dnsip www.linux.it&lt;br /&gt;
 62.177.1.107&lt;br /&gt;
* dnsipq - restituisce l'IP e nome per un nome di dominio&lt;br /&gt;
 root@box:/tmp# dnsipq www.linux.it&lt;br /&gt;
 www.linux.it 62.177.1.107&lt;br /&gt;
* dnsname - restituisce il nome per un nome per un dato IP&lt;br /&gt;
 root@box:/tmp# dnsname 62.177.1.107&lt;br /&gt;
 picard.linux.it&lt;br /&gt;
* dnsmx - restituisce l'MX (Mail eXchanger) per il dominio richiesto&lt;br /&gt;
 root@box:/tmp# dnsmx www.netlink.it&lt;br /&gt;
 10 mail.netlink.it&lt;br /&gt;
&lt;br /&gt;
= Note =&lt;br /&gt;
Questo breve documento può essere di aiuto per una prima installazione e per capire le funzionalità di questo&lt;br /&gt;
programma, ma per una sua completa configurazione, onde evitare errori che possono compromettere il sistema,&lt;br /&gt;
ricordiamo la lettura della documentazione ufficiale: http://cr.yp.to/djbdns.html&lt;br /&gt;
&lt;br /&gt;
e dell'HOWTO di Luca Morettoni: http://morettoni.net/docs/djbdns.html&lt;br /&gt;
&lt;br /&gt;
e anche di &amp;quot;Life with djbdns&amp;quot; by Bennett Todd: http://www.lifewithdjbdns.org &lt;br /&gt;
dove si trovano informazioni sulle altre funzionalità di djbdns non trattata in questo breve documento&lt;br /&gt;
&lt;br /&gt;
= Note finali =&lt;br /&gt;
* Il presente documento è a semplice scopo divulgativo &lt;br /&gt;
* L'autore non si assume la responsabilità di eventuali danni diretti o indiretti derivanti dall'uso dei programmi, o dall'applicazione delle configurazioni menzionate nel seguente articolo &lt;br /&gt;
* I marchi citati sono di proprietà dei rispettivi proprietari e sono stati utilizzati solo a scopo didattico o divulgativo. &lt;br /&gt;
* L'uso o il riutilizzo del presente articolo è liberamente consentito per scopi didattici o informativi previa citazione della fonte &lt;br /&gt;
* Sono possibili errori o imprecisioni, segnalatemele a [mailto:pavan@netlink.it pavan@netlink.it]&lt;br /&gt;
* Chi volesse integrare il presente documento, può scrivere a [mailto:pavan@netlink.it pavan@netlink.it]&lt;/div&gt;</summary>
		<author><name>Chrix</name></author>	</entry>

	<entry>
		<id>http://www.slacky.eu/slacky/Djbdns_on_Slackware:_l%27alternativa_al_BIND</id>
		<title>Djbdns on Slackware: l'alternativa al BIND</title>
		<link rel="alternate" type="text/html" href="http://www.slacky.eu/slacky/Djbdns_on_Slackware:_l%27alternativa_al_BIND"/>
				<updated>2006-11-09T20:32:48Z</updated>
		
		<summary type="html">&lt;p&gt;Chrix: /* Note */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:Networking]]&lt;br /&gt;
= Introduzione =&lt;br /&gt;
Mi è capitato di dover utilizzare su di sistema con distribuzione 9.0 Djbdns, programma alter alternativo al BIND&lt;br /&gt;
scritto dal noto Daniel J. Bernstein. Mi sono un pò documentato e ho inizialmente pensato che gestire questo programma &lt;br /&gt;
come dns server fosse complesso ( i DNS in genere lo sono, almeno per me!).&lt;br /&gt;
In realtà la complessità di questo programma è dovuta alla poca documentazione e alla sua scarsa diffusione, &lt;br /&gt;
ma in realtà il suo funzionamento è abbastanza semplice specie per chi ha dimestichezza con i programmi del noto &lt;br /&gt;
Daniel J. Bernstein, come Qmail e daemontools ad esempio.&lt;br /&gt;
E' vero, rispetto al Bind manca di molte features, e la sua licenza non è GPL (un limite non da poco), ma chi volesse &lt;br /&gt;
utilizzarlo potrebbe puntare su di un aspetto non secondario, la sicurezza. Sul sito ufficiale trovate una pagina &lt;br /&gt;
&amp;quot;The djbdns security guarantee&amp;quot; dove DJB offre in maniera esplicita 500$ a chi gli segnala dei bugs di sicurezza del programma,&lt;br /&gt;
citto testualmente:&lt;br /&gt;
http://cr.yp.to/djbdns/guarantee.html&lt;br /&gt;
&lt;br /&gt;
&amp;quot;I offer $500 to the first person to publicly report a verifiable security hole in the latest version of djbdns.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Questo sembra essere un buon motivo, anche se in realtà credo che molto dipenda dalle abitudini e dalle necessità di chi&lt;br /&gt;
attiva il servizio, il quale sceglie il programma che meglio conosce o che meglio si adatta alla situazione che deve affrontare.&lt;br /&gt;
In realtà alla fine della configurazione, mi sono accorto che questo programma è abbastanza semplice &lt;br /&gt;
(almeno per un uso standard) e molto leggero per il sistema, inoltre abbinandolo a daemontools abbiamo la sicurezza che in &lt;br /&gt;
caso di caduta, il servizio venga rilanciato.&lt;br /&gt;
&lt;br /&gt;
Un pò al pari di Qmail, altro prodotto famoso di DJB, djbdns si caratterizza per un'archetettura strutturale completamente&lt;br /&gt;
diversa al BIND, che con un solo demone e alcuni file di configurazione fa tutto. Qui invece, come per lo stesso Qmail,&lt;br /&gt;
abbiamo diversi programmi, ognuno per una funzione specifica.&lt;br /&gt;
Prima di iniziare mi sono letto l'HOWTO pubblicato da Luca Morettoni&lt;br /&gt;
&lt;br /&gt;
http://morettoni.net/docs/djbdns.html&lt;br /&gt;
&lt;br /&gt;
indispensabile per capèirne il funzionamento, da cui ho tratto alcuni spunti per scrivere questo breve documento.&lt;br /&gt;
&lt;br /&gt;
Il mio interesse era semplificare al minimo i passaggi e quindi la documentazione necessaria per arrivare a raggiungere&lt;br /&gt;
il mio obbiettivo, ovvero quello di impostare un resolver per una rete locale che fosse anche autoritativo su di un dominio&lt;br /&gt;
interno (zona). Autoritativo per una zona, come sappiamo, significa essere il responsabile della risoluzione finale degli host&lt;br /&gt;
per quel dominio.&lt;br /&gt;
Quindi il compito è duplice il primo forse più semplice del secondo, prevede un pò più di conoscenze teoriche sull'utilizzo dei DNS.&lt;br /&gt;
Per far funzionare il tutto nella maniera più coretta, le risorse necessarie sono rappresentate da due pacchetti:&lt;br /&gt;
'''djbdns''' e '''daemontools''' reperibili su&lt;br /&gt;
http://cr.yp.to/djbdns.html&lt;br /&gt;
http://cr.yp.to/daemontools.html&lt;br /&gt;
&lt;br /&gt;
Daemontoools è necessario per l'avvio e la gestione del demone, consente di monitorarlo e di averlo sempre attivo.&lt;br /&gt;
L'uso di daemontools è già descritto in questo breve documento che trovate su&lt;br /&gt;
http://www.sistemistiindipendenti.org/modules/news/article.php?storyid=47&lt;br /&gt;
&lt;br /&gt;
== Installare daemontools ==&lt;br /&gt;
L'istallazione di daemontools è semplice dopo aver scompattato il pacchetto basta eseguire&lt;br /&gt;
&lt;br /&gt;
 root@box:/usr/src/admin/daemontools-0.76# ./package/install&lt;br /&gt;
&lt;br /&gt;
In pratica daemontools fa partire in modalità &amp;quot;respawn&amp;quot;