merge with tux-join
authorsandro
Mon, 26 Apr 2021 11:16:23 +0200
changeset 5199a841a49a674
parent 518 dd367cf3930b
parent 512 6aefb43518e5
child 520 533981846633
merge with tux-join
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/.hgignore	Mon Apr 26 11:16:23 2010 +0200
     1.3 @@ -0,0 +1,23 @@
     1.4 +.backups
     1.5 +build*
     1.6 +configure-stamp
     1.7 +debian/file
     1.8 +debian/.*ex
     1.9 +debian/tmp
    1.10 +debian/isi
    1.11 +debian/isi-checkup
    1.12 +debian/isi-docs
    1.13 +debian/python-isi
    1.14 +docs/allegati/netkit
    1.15 +docs/.build
    1.16 +docs/img/icone
    1.17 +etc/isi/checkup/exclude
    1.18 +log
    1.19 +usr/share/isi-checkup/tests/TODO
    1.20 +lib/isi.egg-info.*
    1.21 +lab/srv-isi.disk
    1.22 +#web
    1.23 +lab/.*isi
    1.24 +web/local_settings.py
    1.25 +.exlude_rsync_files
    1.26 +sync_all
     2.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.2 +++ b/2dreamnet	Mon Apr 26 11:16:23 2010 +0200
     2.3 @@ -0,0 +1,18 @@
     2.4 +#!/bin/bash
     2.5 +
     2.6 +#remote_srv='isibeta6 192.168.1.220'
     2.7 +#remote_srv='192.168.5.151'
     2.8 +#remote_srv='192.168.1.233 isibeta6' # test-isi-lenny
     2.9 +remote_srv='192.168.1.218'
    2.10 +
    2.11 +path_locale='/home/dream/src/isi/isi-checkup/usr'  
    2.12 +path_remoto='/usr'  
    2.13 +
    2.14 +for srv in $remote_srv; do
    2.15 +	echo "rsync -P -r $path_locale/* root@$srv:$path_remoto/"
    2.16 +	rsync -P -r $path_locale/* root@$srv:$path_remoto/
    2.17 +	echo "ssh root@$srv isi-checkup -t isi"
    2.18 +	ssh root@$srv isi-checkup -T
    2.19 +	#echo ssh root@$srv isi-checkup
    2.20 +done
    2.21 +
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/Makefile	Mon Apr 26 11:16:23 2010 +0200
     3.3 @@ -0,0 +1,40 @@
     3.4 +# $pkg
     3.5 +.PHONY: all install clean
     3.6 +PKG=$(shell echo $(shell pwd)| sed 's/.*\///')
     3.7 +DEB=$(shell cat debian/files |cut -f 1 -d " ")
     3.8 +
     3.9 +all: 
    3.10 +	echo "nessuna compilazione"
    3.11 +
    3.12 +deb:
    3.13 +	dpkg-buildpackage -rfakeroot -us -uc -b | tee log
    3.14 +	echo pkg=$(PKG)  deb=$(DEB)
    3.15 +#	hg status
    3.16 +
    3.17 +content:  
    3.18 +	dpkg -c ../$(DEB)
    3.19 +
    3.20 +lcheck: 
    3.21 +	find -newer ../$(DEB)
    3.22 +
    3.23 +upload:
    3.24 +	upload
    3.25 +
    3.26 +lenny:
    3.27 +	upload-deb lenny/main $(DEB) 
    3.28 +
    3.29 +lenny-force:
    3.30 +	upload-deb -F lenny/main $(DEB) 
    3.31 +
    3.32 +dpkg:
    3.33 +	su root "dpkg -i ../$(DEB)"
    3.34 +
    3.35 +check:  lcheck
    3.36 +	find -newer uploaded
    3.37 +
    3.38 +ver:
    3.39 +	head -n1 debian/changelog
    3.40 +	echo dch -v
    3.41 +
    3.42 +clean:
    3.43 +	echo
     4.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.2 +++ b/TODO	Mon Apr 26 11:16:23 2010 +0200
     4.3 @@ -0,0 +1,17 @@
     4.4 +TODO (#### = fatto)
     4.5 +1. Debian: 
     4.6 +    Control
     4.7 +    ###Changelog
     4.8 +    README
     4.9 +    rules
    4.10 +
    4.11 +2. file di conf
    4.12 +    #### /etc/isi/*
    4.13 +    #### /etc/skel
    4.14 +    #### /etc/samba/smb.conf 
    4.15 +    /etc/ldap/ldap.conf
    4.16 +    /etc/ldap/slapd.conf
    4.17 +    #### samba.schema corretto
    4.18 +    /etc/smbldap-tools/*
    4.19 +    
    4.20 +3. ### Makefile (editare solo con jmacs)
     5.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.2 +++ b/checkup/isi-checkup	Mon Apr 26 11:16:23 2010 +0200
     5.3 @@ -0,0 +1,556 @@
     5.4 +#!/usr/bin/python
     5.5 +# coding: utf-8
     5.6 +"""
     5.7 +### DocString
     5.8 +Opzioni supportate
     5.9 +-------------------
    5.10 +
    5.11 +Gestire i template
    5.12 +~~~~~~~~~~~~~~~~~~
    5.13 +
    5.14 +isi-checkup -l
    5.15 +
    5.16 +* elenca i template disponibili
    5.17 +
    5.18 +isi-checkup -t NOMETEMPLATE
    5.19 +
    5.20 +* abilita tutti i test rel relativo template
    5.21 +* imposta il template scelto come template di default, salvando la preferenza
    5.22 +  nel file "/etc/isi/checkup/template-default".
    5.23 +
    5.24 +isi-checkup -T
    5.25 +
    5.26 +* Disabilita tutti i test attivi
    5.27 +* SE ESISTE "/etc/isi/checkup/template-default" abilita tutti i test del profilo
    5.28 +  impostato come default.
    5.29 +* SE NON ESISTE "/etc/isi/checkup/template-default" e dunque non è mai stato
    5.30 +  impostato un profilo di default, abilita tutti i test del profilo "isi".
    5.31 +
    5.32 +isi-checkup -r
    5.33 +
    5.34 +* disattiva tutti i test abilitati
    5.35 +
    5.36 +Tipi di test disponibili
    5.37 +~~~~~~~~~~~~~~~~~~~~~~~~
    5.38 +
    5.39 +isi-checkup -s
    5.40 +
    5.41 +* lancia SOLO i TEST DI SISTEMA (boot, servizi, ISI)
    5.42 +
    5.43 +isi-checkup -u UTENTE
    5.44 +
    5.45 +* lancia SOLO i TEST relativi all'UTENTE per l'UTENTE SPECIFICATO
    5.46 +
    5.47 +isi-checkup -U
    5.48 +
    5.49 +* lancia SOLO i test relativi all'UTENTE per TUTTI GLI UTENTI
    5.50 +
    5.51 +isi-checkup -L
    5.52 +
    5.53 +* lancia SOLO i TEST LOCALI (se creati dall'amministratore di sistema)
    5.54 +
    5.55 +isi-checkup -A
    5.56 +
    5.57 +* lancia TUTTI i test disponibili (Sistema, Utente, Locali)
    5.58 +
    5.59 +Altre opzioni
    5.60 +~~~~~~~~~~~~~
    5.61 +
    5.62 +isi-checkup -v
    5.63 +
    5.64 +* Mostra più informazioni relative ai test che vengono lanciati (verbose)
    5.65 +
    5.66 +isi-checkup -h
    5.67 +
    5.68 +* mostra le opzioni disponibili e ne fornisce una breve descrizione
    5.69 +###
    5.70 +"""
    5.71 +
    5.72 +from dry.utils import Container
    5.73 +import sys
    5.74 +
    5.75 +### isi-checkup option
    5.76 +USAGE = """
    5.77 +        usage: %prog [options]
    5.78 +        -t, --template=modello: imposta i test secondo il modello
    5.79 +        -T, --templateDefault: attiva i test del template di default
    5.80 +        -l, --list: elenca i template disponibili
    5.81 +        -r, --reset: disattiva tutti i test del template in uso
    5.82 +        -s, --system: lancia i test (boot, servizi, ISI)
    5.83 +        -u, --user=user: utente da testare
    5.84 +        -U, --users: lancia solo i test relativi agli utenti
    5.85 +        -L, --local: lancia solo i test locali
    5.86 +        -A, --all: lancia tutti i test
    5.87 +        -v, --verbose: be verbose
    5.88 +"""
    5.89 +
    5.90 +import os
    5.91 +import sys
    5.92 +sys.path.insert(0, '/usr/share/isi-checkup/lib')
    5.93 +import re
    5.94 +from dry import optionparse
    5.95 +from dry.functions import execute
    5.96 +from checkup import IsiTest, TestError
    5.97 +from colorize import Colorize
    5.98 +import inspect
    5.99 +
   5.100 +class NotAtest(Exception):
   5.101 +    pass
   5.102 +
   5.103 +class Test(object):
   5.104 +    path_tests = '/usr/share/isi-checkup/tests'
   5.105 +    path_links = '/etc/isi/checkup'
   5.106 +
   5.107 +    def __init__(self, filename):
   5.108 +        pattern = '^(?P<order>\d+)+_(?P<name>.*)(?P<extension>.sh|.py)$'
   5.109 +        m = re.search(pattern, filename)
   5.110 +        if not m:
   5.111 +            raise NotAtest
   5.112 +        m = m.groupdict()
   5.113 +        self.filename = filename
   5.114 +        self.order = m['order']
   5.115 +        self.name = m['name']
   5.116 +        self.extension = m['extension']
   5.117 +        self.path_filename = '%s/%s' % (self.path_tests, filename)
   5.118 +        self.path_link = '%s/%s' % (self.path_links, filename)
   5.119 +
   5.120 +class TestList(Container):
   5.121 +    def del_element(self, key):
   5.122 +        if key in self._attrs:
   5.123 +            j = self._attrs.index(key)
   5.124 +            # Don't shift index if deleting a 'used' test
   5.125 +            if j < self._n:
   5.126 +                return
   5.127 +            self._attrs.pop(j)
   5.128 +            
   5.129 +class TestManager(object):
   5.130 +    """
   5.131 +    files
   5.132 +
   5.133 +    # TODO : trovare modo piu elegante per passare parametri a xrange()
   5.134 +    """
   5.135 +    path_tests = '/usr/share/isi-checkup/tests'
   5.136 +    path_links = '/etc/isi/checkup'
   5.137 +    path_templates = '/usr/share/isi-checkup'
   5.138 +    file_exclude = '/etc/isi/checkup/exclude'
   5.139 +    file_template_default = '/etc/isi/checkup/template-default'
   5.140 +
   5.141 +### Priority schema
   5.142 +    range_system = (0, 499)
   5.143 +    range_user = (500, 700)
   5.144 +    range_local = (701, 2000)
   5.145 +    range_any = (0, 2000)
   5.146 +
   5.147 +    range_all_tests = (0, 2000)
   5.148 +    range_tests = (0, 499)
   5.149 +
   5.150 +    msg_passed = Colorize('[ PASSATO ]').BOLD_GREEN
   5.151 +    msg_warning = Colorize('[ ATTENZIONE ]').BOLD_YELLOW
   5.152 +    msg_error = Colorize('[ ERRORE ]').BOLD_RED
   5.153 +
   5.154 +### Constructor
   5.155 +    def __init__(self):
   5.156 +        self.failed_tests = []
   5.157 +        self.set_range()
   5.158 +        self.excluded = self.get_excluded()
   5.159 +        self.tests = self.get_tests_enabled()
   5.160 +        
   5.161 +    def set_range(self):
   5.162 +        if opts.template:
   5.163 +            # if wrong template given
   5.164 +            if self.set_template(opts.template) == True:
   5.165 +                sys.exit(1)
   5.166 +            f = open(self.file_template_default, 'w')
   5.167 +            f.write(opts.template)
   5.168 +            f.close()
   5.169 +
   5.170 +            sys.exit(0)
   5.171 +        
   5.172 +        elif opts.templateDefault:
   5.173 +            # se non viene specificato 
   5.174 +            template = 'isi'
   5.175 +            if os.path.isfile(self.file_template_default):
   5.176 +                # Using Default template file found.
   5.177 +                f = open(self.file_template_default)
   5.178 +                for line in f.readlines():
   5.179 +                    if re.search('^$', line):
   5.180 +                        continue
   5.181 +                    template = line
   5.182 +            self.reset_templates()
   5.183 +            self.set_template(template)
   5.184 +            sys.exit(0)
   5.185 +            
   5.186 +        elif opts.list:
   5.187 +            for t in self.get_templates(): print t
   5.188 +            sys.exit(0)
   5.189 +
   5.190 +        elif opts.reset:
   5.191 +            self.reset_templates()
   5.192 +            sys.exit(0)
   5.193 +
   5.194 +        else:
   5.195 +            # setting range
   5.196 +
   5.197 +            if opts.system:
   5.198 +                self.range_tests = self.range_system
   5.199 +
   5.200 +            if opts.user:
   5.201 +                self.range_tests = self.range_user
   5.202 +
   5.203 +            if opts.users:
   5.204 +                self.range_tests = self.range_user
   5.205 +
   5.206 +            if opts.local:
   5.207 +                self.range_tests = self.range_local
   5.208 +
   5.209 +            if opts.all:
   5.210 +                self.range_tests = self.range_any
   5.211 +
   5.212 +
   5.213 +### Templates Setting
   5.214 +    def get_template_tests(self, template=None):
   5.215 +	""" Returns list of tests in templates """
   5.216 +        path = self.path_templates
   5.217 +        tests = []
   5.218 +
   5.219 +        if template:
   5.220 +            templates = ('%s.conf' % template).split()
   5.221 +        else:
   5.222 +            templates = os.listdir(path)
   5.223 +        for template in templates:
   5.224 +            pattern = '^(?P<name>.*)(?P<extension>.conf)$'
   5.225 +            m = re.search(pattern, template)
   5.226 +
   5.227 +            if not m:
   5.228 +                continue
   5.229 +            if not os.path.isfile('%s/%s' % (path, template)):
   5.230 +                continue
   5.231 +
   5.232 +            f = open('%s/%s' % (path, template))
   5.233 +            for line in f.readlines():
   5.234 +		line = line.strip()
   5.235 +                if line == '':
   5.236 +                    continue
   5.237 +                tests.append(line)
   5.238 +        return tests
   5.239 +
   5.240 +    def get_templates(self):
   5.241 +        """ Returns list of the Available Templates """
   5.242 +        path = self.path_templates
   5.243 +        templates = []
   5.244 +        for template in os.listdir(path):
   5.245 +            pattern = '^(?P<name>.*)(?P<extension>.conf)$'
   5.246 +            m = re.search(pattern, template)
   5.247 +            if not m:
   5.248 +                continue
   5.249 +            m = m.groupdict()
   5.250 +            test_name = m['name']
   5.251 +            templates.append(test_name)
   5.252 +        return templates
   5.253 +
   5.254 +    def set_template(self, template):
   5.255 +        """
   5.256 +        Adds test symlinks for the given template
   5.257 +
   5.258 +        Return True if given template's wrong
   5.259 +        """        
   5.260 +	# PATH definition
   5.261 +	path_test = self.path_tests
   5.262 +        path_link = self.path_links
   5.263 +        tests = self.get_template_tests(template)
   5.264 +        linked_tests = []
   5.265 +        for test in tests:
   5.266 +            link_src =  '/'.join([path_test, test])
   5.267 +            link_dest = '/'.join([path_link, test])
   5.268 +            if os.path.isfile(link_dest):
   5.269 +                continue
   5.270 +            os.symlink(link_src, link_dest)
   5.271 +            print ' Aggiunto test "%s"' % test            
   5.272 +            linked_tests.append(test)
   5.273 +
   5.274 +        if linked_tests:
   5.275 +            #print '\n Test aggiunti: ', linked_tests
   5.276 +            pass
   5.277 +        elif tests:
   5.278 +            print '\n Nessun altro test da aggiungere per il template "%s"\n' % template
   5.279 +        else:
   5.280 +            print 'Template sconosciuto "%s"' % template
   5.281 +            return True
   5.282 +            
   5.283 +    def is_to_be_deleted(self, order_number):
   5.284 +        if int(order_number) > 1000:
   5.285 +            return False
   5.286 +        else:
   5.287 +            return True
   5.288 +                            
   5.289 +    def reset_templates(self):
   5.290 +        """ Resets template deleting links to tests """
   5.291 +        path = self.path_links
   5.292 +        files = os.listdir(path)
   5.293 +        files_removed = []
   5.294 +
   5.295 +        for f in files:
   5.296 +            path_filename = '%s/%s' % (path, f)
   5.297 +            pattern = '^(?P<order>\d+)+_(?P<name>.*)(?P<extension>.sh|.py)$'
   5.298 +            m = re.search(pattern, f)
   5.299 +            if not m:
   5.300 +                continue
   5.301 +            m = m.groupdict()
   5.302 +            order = m['order']
   5.303 +            name = m['name']
   5.304 +            extension = m['extension']
   5.305 +            if not self.is_to_be_deleted(order):
   5.306 +                continue
   5.307 +            if not os.path.islink(path_filename):
   5.308 +                continue
   5.309 +            os.remove(path_filename)
   5.310 +            files_removed.append(f)
   5.311 +
   5.312 +        print '%s test disabilitati' % files_removed.__len__()
   5.313 +        
   5.314 +### Test Run
   5.315 +    def exec_test_python(self, test):
   5.316 +        # Eseguo script python
   5.317 +        for isi_test in self.get_isitest(test):
   5.318 +            try:
   5.319 +                obj = isi_test(user=opts.user)
   5.320 +            except Exception, e:
   5.321 +                print e
   5.322 +                continue
   5.323 +            if opts.verbose:
   5.324 +                print test.order, obj
   5.325 +            for key, meth in self.get_test_methods(obj):
   5.326 +                try:
   5.327 +                    ## i metodi ritornano un booleano
   5.328 +                    if not meth():
   5.329 +                        self.failed_tests += [(obj.name, test)]
   5.330 +                        self.skip_dependant(obj)
   5.331 +                except Exception, e:
   5.332 +                    e.obj = obj
   5.333 +                    e.method = meth
   5.334 +                    print test.order, e
   5.335 +                    #raise e
   5.336 +                obj.report()
   5.337 +    def exec_test_bash(self, test):
   5.338 +        # Eseguo script bash
   5.339 +
   5.340 +        if opts.verbose:
   5.341 +            print test.order, test.name #test.name
   5.342 +        if opts.user:
   5.343 +            ret_code, out, err = execute([test.path_link, opts.user])
   5.344 +        else:
   5.345 +            ret_code, out, err = execute([test.path_link])
   5.346 +                
   5.347 +        if ret_code:
   5.348 +            print out
   5.349 +            self.failed_tests += [(test.name, test)]
   5.350 +
   5.351 +            if opts.verbose:
   5.352 +                print "ERRORI:\n"+err
   5.353 +
   5.354 +    def skip_dependant(self, obj):
   5.355 +        if isinstance(obj.skip, (str, unicode)):
   5.356 +            skip = obj.skip.split()
   5.357 +        else:
   5.358 +            skip = obj.skip
   5.359 +            
   5.360 +        for key in skip:
   5.361 +            self.tests.del_element(key)
   5.362 +
   5.363 +        for key in self.expand(obj.skip_range):
   5.364 +            key = str(key)
   5.365 +            self.tests.del_element(key)
   5.366 +
   5.367 +    def expand(self, range):
   5.368 +        ## FIXME
   5.369 +        start, stop = range
   5.370 +        return str(start)
   5.371 +    
   5.372 +    def get_test_methods(self, obj):
   5.373 +        meths = []
   5.374 +        for key in dir(obj):
   5.375 +            if not key.startswith('test'):
   5.376 +                continue
   5.377 +            attr =  getattr(obj, key)
   5.378 +            if inspect.ismethod(attr):
   5.379 +                meths += [(key, attr)]
   5.380 +        return meths
   5.381 +
   5.382 +    def get_isitest(self, test):
   5.383 +        GLOB = {}
   5.384 +        tests = []
   5.385 +        execfile(test.path_link, GLOB)
   5.386 +        for key, elem in GLOB.iteritems():
   5.387 +            if inspect.isclass(elem) and issubclass(elem, IsiTest):
   5.388 +                if elem.run:
   5.389 +                    tests += [elem]
   5.390 +        return tests
   5.391 +
   5.392 +    def is_to_be_run(self, test):
   5.393 +
   5.394 +        name = "%s%s" % (test.name, test.extension)
   5.395 +        if name in self.excluded:
   5.396 +            return False
   5.397 +        # xrange(*self.range_test) ;-) è più breve, non più leggibile...
   5.398 +        start, end = self.range_tests
   5.399 +        if not int(test.order) in xrange(start, end):  
   5.400 +            return False
   5.401 +        else:
   5.402 +            return True
   5.403 +
   5.404 +    def run(self):
   5.405 +        """ Launches tests in self.test """
   5.406 +
   5.407 +        for test in self.tests:
   5.408 +            if test.filename.endswith(".py"):
   5.409 +                self.exec_test_python(test)
   5.410 +                
   5.411 +            if test.filename.endswith(".sh"):
   5.412 +                self.exec_test_bash(test)
   5.413 +
   5.414 +    def get_excluded(self):
   5.415 +        """ Returns exclude list
   5.416 +        es.
   5.417 +        ['need_process_dansguardian.py', 'need_process_master.py']
   5.418 +        """
   5.419 +        file_exclude = self.file_exclude
   5.420 +        exclude = [] # test *NAME*
   5.421 +
   5.422 +        if not os.path.exists(file_exclude):
   5.423 +            return exclude
   5.424 +        ## Adding exclude-file tests to exclude list
   5.425 +        f  = open(file_exclude)
   5.426 +        for line in f.readlines():
   5.427 +            # skips emtpy line
   5.428 +            if re.match('^$', line):
   5.429 +                continue
   5.430 +            exclude.append(line.split()[0])
   5.431 +
   5.432 +            test_name = line.split()[0]
   5.433 +
   5.434 +        exclude_dep = self.test2exclude_dep(exclude)
   5.435 +        exclude += exclude_dep
   5.436 +
   5.437 +        return exclude
   5.438 +
   5.439 +    def get_tests_enabled(self):
   5.440 +        """
   5.441 +        Returns a dictionary composed as follows:
   5.442 +        { order : testObject }
   5.443 +        """
   5.444 +        tests = TestList()
   5.445 +        
   5.446 +        for filename in sorted(os.listdir(self.path_links)):
   5.447 +            try:
   5.448 +                test = Test(filename)
   5.449 +            except Exception:
   5.450 +                continue
   5.451 +            
   5.452 +            if self.is_to_be_run(test):
   5.453 +                tests[test.order] = test
   5.454 +                
   5.455 +        return tests
   5.456 +
   5.457 +    def _test2exclude_get_name(self, numbers):
   5.458 +        """ Returns filename list for the provided *numbers* of the test
   5.459 +            es.
   5.460 +              012_test.py
   5.461 +        """
   5.462 +
   5.463 +        path = self.path_links
   5.464 +        pattern = '^(?P<order>\d+)+_(?P<name>.*)(?P<extension>.sh|.py)$'
   5.465 +        test_dict = {}        
   5.466 +        test_list = []
   5.467 +        for filename in os.listdir(path):
   5.468 +            m = re.search(pattern, filename)
   5.469 +            if not m:
   5.470 +                continue
   5.471 +            m = m.groupdict()
   5.472 +            order, extension, name = m.itervalues()
   5.473 +            
   5.474 +            test_filename = '%s%s' % (name, extension)
   5.475 +            test_dict[order] = test_filename
   5.476 +
   5.477 +        for number in numbers:
   5.478 +            test_list += [test_dict[number]]
   5.479 +
   5.480 +        return test_list
   5.481 +
   5.482 +
   5.483 +    def _test2exclude_get_pathfilename(self, test_name_list):
   5.484 +        """ Returns *complete* path+filename for test
   5.485 +            Returns None if test not found in path
   5.486 +            es.
   5.487 +              /etc/isi/checkup/tests/112_test.py
   5.488 +        """
   5.489 +        path = self.path_links
   5.490 +        path_filename_list = []
   5.491 +        
   5.492 +        for test_name in test_name_list:
   5.493 +            pattern = '^(?P<order>\d+)+_(?P<name>.*)(?P<extension>.sh|.py)$'
   5.494 +#            test_list = {}
   5.495 +            for filename in os.listdir(path):
   5.496 +                m = re.search(pattern, filename)
   5.497 +                if not m:
   5.498 +                    continue
   5.499 +                m = m.groupdict()
   5.500 +                order, extension, name = m.itervalues()
   5.501 +                
   5.502 +                path_filename = '%s/%s_%s%s' % (path, order, name, extension) 
   5.503 +
   5.504 +                if test_name == '%s%s' % (name, extension): 
   5.505 +                    path_filename_list += [path_filename]
   5.506 +                else:
   5.507 +                    continue
   5.508 +        return path_filename_list
   5.509 +    
   5.510 +    def _test2exclude_get_skips(self, path_filename_list):
   5.511 +        """ Looks in the provided *path_filename_list* for skips
   5.512 +            returning a skip list
   5.513 +
   5.514 +            es.
   5.515 +            ['11', '22', '33', '44', '55', '66', '77', '88', '99']
   5.516 +        """
   5.517 +        GLOB = {}
   5.518 +        skip_list = []
   5.519 +
   5.520 +        for path_filename in path_filename_list:
   5.521 +            execfile(path_filename, GLOB)
   5.522 +            
   5.523 +            for key, elem in GLOB.iteritems():
   5.524 +                if inspect.isclass(elem) and issubclass(elem, IsiTest):
   5.525 +                    if hasattr(elem, 'skip') and elem.skip:
   5.526 +                        skip_list += elem.skip.split()
   5.527 +        return skip_list
   5.528 +
   5.529 +
   5.530 +    def test2exclude_dep(self, exclude):
   5.531 +        """ Creates and returns the Dependent Test path_filename list """
   5.532 +        path_filename_list = []
   5.533 +        tests_to_exclude = []
   5.534 +        
   5.535 +        path_filename_list = self._test2exclude_get_pathfilename(exclude)
   5.536 +        #['/etc/isi/checkup/266_need_process_dansguardian.py', '/etc/isi/checkup/267_need_process_master.py'
   5.537 +            
   5.538 +        skip_list = self._test2exclude_get_skips(path_filename_list)
   5.539 +        
   5.540 +        tests_to_exclude = self._test2exclude_get_name(skip_list)
   5.541 +        
   5.542 +        return tests_to_exclude
   5.543 +
   5.544 +
   5.545 +
   5.546 +### Main ####
   5.547 +opts, args = optionparse.parse(USAGE)
   5.548 +
   5.549 +isi_test = TestManager()
   5.550 +isi_test.run()
   5.551 +
   5.552 +### Print Report
   5.553 +if isi_test.failed_tests:
   5.554 +    msg = '\nI seguenti test non sono andati a buon fine'
   5.555 +    print Colorize(msg).BOLD_RED_U
   5.556 +    #print '-'*len(msg)
   5.557 +    for test_obj, test in isi_test.failed_tests:
   5.558 +        print "%-40s %s" % (test.name + test.extension, test_obj)
   5.559 +###
     6.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.2 +++ b/debian/README	Mon Apr 26 11:16:23 2010 +0200
     6.3 @@ -0,0 +1,6 @@
     6.4 +The Debian Package isi
     6.5 +----------------------------
     6.6 +
     6.7 +Comments regarding the Package
     6.8 +
     6.9 + -- Sandro Dentella <[email protected]>  Mon, 15 Feb 2022 17:18:50 +0100
     7.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.2 +++ b/debian/README.Debian	Mon Apr 26 11:16:23 2010 +0200
     7.3 @@ -0,0 +1,6 @@
     7.4 +isi for Debian
     7.5 +--------------
     7.6 +
     7.7 +<possible notes regarding this package - if none, delete this file>
     7.8 +
     7.9 + -- Sandro Dentella <[email protected]>  Mon, 15 Feb 2022 17:18:50 +0100
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/debian/changelog	Mon Apr 26 11:16:23 2010 +0200
     8.3 @@ -0,0 +1,162 @@
     8.4 +isi (2.7.3) hardy; urgency=low
     8.5 +
     8.6 +  * web for printers: fix when administrator has a different password form
     8.7 +    ldap admin
     8.8 +
     8.9 + -- Sandro Dentella <[email protected]>  Fri, 23 Apr 2021 11:32:57 +0200
    8.10 +
    8.11 +isi (2.7.2) hardy; urgency=low
    8.12 +
    8.13 +  * ora logon.pl non è più considerato un modulo di configurazione
    8.14 +
    8.15 + -- Sandro Dentella <[email protected]>  Wed, 21 Apr 2021 16:50:37 +0200
    8.16 +
    8.17 +isi (2.7.1) hardy; urgency=low
    8.18 +
    8.19 +  * fix stampanti mancanti
    8.20 +
    8.21 + -- Sandro Dentella <[email protected]>  Tue, 20 Apr 2021 16:56:06 +0200
    8.22 +
    8.23 +isi (2.7) hardy; urgency=low
    8.24 +
    8.25 +  * printers with web interface, UserPrinter/PcPrinter
    8.26 +
    8.27 + -- Sandro Dentella <[email protected]>  Mon, 19 Apr 2021 18:53:08 +0200
    8.28 +
    8.29 +isi (2.6) hardy; urgency=low
    8.30 +
    8.31 +  * grub4dos, printers, web per IE
    8.32 +
    8.33 + -- Sandro Dentella <[email protected]>  Sun, 18 Apr 2021 18:31:30 +0200
    8.34 +
    8.35 +isi (2.5.10) hardy; urgency=low
    8.36 +
    8.37 +  * fix classse minuscola + permessi isi-alulink 
    8.38 +
    8.39 + -- Sandro Dentella <[email protected]>  Wed, 14 Apr 2021 00:51:49 +0200
    8.40 +
    8.41 +isi (2.5.9) hardy; urgency=low
    8.42 +
    8.43 +  * fix in xls parser
    8.44 +
    8.45 + -- Sandro Dentella <[email protected]>  Tue, 13 Apr 2021 15:01:49 +0200
    8.46 +
    8.47 +isi (2.5.8) hardy; urgency=low
    8.48 +
    8.49 +  * important fix in dnsmasq configuration save
    8.50 +
    8.51 + -- Sandro Dentella <[email protected]>  Tue, 13 Apr 2021 12:13:05 +0200
    8.52 +
    8.53 +isi (2.5.7) hardy; urgency=low
    8.54 +
    8.55 +  * fix convert
    8.56 +
    8.57 + -- Sandro Dentella <[email protected]>  Mon, 12 Apr 2022 20:16:59 +0200
    8.58 +
    8.59 +isi (2.5.6) hardy; urgency=low
    8.60 +
    8.61 +  * fixes: new_passwd -> new_password
    8.62 +
    8.63 + -- Sandro Dentella <[email protected]>  Mon, 12 Apr 2022 19:09:33 +0200
    8.64 +
    8.65 +isi (2.5.5) hardy; urgency=low
    8.66 +
    8.67 +  * web interfaces fixes: dnsmasq + missing object template
    8.68 +
    8.69 + -- Sandro Dentella <[email protected]>  Mon, 12 Apr 2022 12:04:35 +0200
    8.70 +
    8.71 +isi (2.5.4) hardy; urgency=low
    8.72 +
    8.73 +  * minor fixes
    8.74 +
    8.75 + -- Sandro Dentella <[email protected]>  Sun, 11 Apr 2022 20:23:48 +0200
    8.76 +
    8.77 +isi (2.5.3) hardy; urgency=low
    8.78 +
    8.79 +  * web interface from code
    8.80 +
    8.81 + -- Sandro Dentella <[email protected]>  Sun, 11 Apr 2022 17:46:08 +0200
    8.82 +
    8.83 +isi (2.5.2) hardy; urgency=low
    8.84 +
    8.85 +  * migliorata gestione errori web e dipendenze. Isi-alulink in python
    8.86 +
    8.87 + -- Sandro Dentella <[email protected]>  Sun, 11 Apr 2022 13:00:31 +0200
    8.88 +
    8.89 +isi (2.5.1) hardy; urgency=low
    8.90 +
    8.91 +  * fix postinst
    8.92 +
    8.93 + -- Sandro Dentella <[email protected]>  Sat, 10 Apr 2022 23:29:13 +0200
    8.94 +
    8.95 +isi (2.5) hardy; urgency=low
    8.96 +
    8.97 +  * vari fix e migliorie all'interfaccia web
    8.98 +
    8.99 + -- Sandro Dentella <[email protected]>  Sat, 10 Apr 2022 23:17:18 +0200
   8.100 +
   8.101 +isi (2.4.2) hardy; urgency=low
   8.102 +
   8.103 +  * fix vari: cambo passwd/IsiUser -> Manager
   8.104 +
   8.105 + -- Sandro Dentella <[email protected]>  Wed, 07 Apr 2022 15:35:23 +0200
   8.106 +
   8.107 +isi (2.4.1) hardy; urgency=low
   8.108 +
   8.109 +  * navigazione
   8.110 +
   8.111 + -- Sandro Dentella <[email protected]>  Tue, 06 Apr 2022 23:11:36 +0200
   8.112 +
   8.113 +isi (2.4) hardy; urgency=low
   8.114 +
   8.115 +  * aggiunta quota e creazione link
   8.116 +
   8.117 + -- Sandro Dentella <[email protected]>  Tue, 06 Apr 2022 16:56:32 +0200
   8.118 +
   8.119 +isi (2.3) hardy; urgency=low
   8.120 +
   8.121 +  * isi-adduser + isi-convert in interfaccia web
   8.122 +
   8.123 + -- Sandro Dentella <[email protected]>  Thu, 01 Apr 2022 21:19:43 +0200
   8.124 +
   8.125 +isi (2.2.2) hardy; urgency=low
   8.126 +
   8.127 +  * qualche fix
   8.128 +
   8.129 + -- Sandro Dentella <[email protected]>  Fri, 26 Mar 2022 02:36:48 +0100
   8.130 +
   8.131 +isi (2.2.1) hardy; urgency=low
   8.132 +
   8.133 +  * defaults.py in /etc/isi + aggiunto quiet=False in get_user
   8.134 +
   8.135 + -- Sandro Dentella <[email protected]>  Wed, 24 Mar 2022 13:07:54 +0100
   8.136 +
   8.137 +isi (2.2) hardy; urgency=low
   8.138 +
   8.139 +  * fixes on isi-adduser
   8.140 +
   8.141 + -- Sandro Dentella <[email protected]>  Wed, 24 Mar 2022 12:00:22 +0100
   8.142 +
   8.143 +isi (2.1-2) hardy; urgency=low
   8.144 +
   8.145 +  * fix docs
   8.146 +
   8.147 + -- Sandro Dentella <[email protected]>  Tue, 23 Mar 2022 16:36:18 +0100
   8.148 +
   8.149 +isi (2.1) hardy; urgency=low
   8.150 +
   8.151 +  * complete rewrite of python library based on pumpkin
   8.152 +
   8.153 + -- Sandro Dentella <[email protected]>  Mon, 22 Mar 2022 16:01:15 +0100
   8.154 +
   8.155 +isi (2.0.1) hardy; urgency=low
   8.156 +
   8.157 +  * fix in isi-domain - isi-setup  (Simone)
   8.158 +
   8.159 + -- Sandro Dentella <[email protected]>  Sun, 28 Feb 2022 21:13:21 +0100
   8.160 +
   8.161 +isi (2.0) unstable; urgency=low
   8.162 +
   8.163 +  * Initial Release.
   8.164 +
   8.165 + -- Sandro Dentella <[email protected]>  Mon, 15 Feb 2022 17:18:50 +0100
     9.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.2 +++ b/debian/compat	Mon Apr 26 11:16:23 2010 +0200
     9.3 @@ -0,0 +1,1 @@
     9.4 +5
    10.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.2 +++ b/debian/control	Mon Apr 26 11:16:23 2010 +0200
    10.3 @@ -0,0 +1,56 @@
    10.4 +Source: isi
    10.5 +Section: isi
    10.6 +Priority: extra
    10.7 +Maintainer: Sandro Dentella <[email protected]>
    10.8 +Build-Depends: cdbs, debhelper (>= 5)
    10.9 +Standards-Version: 3.7.2
   10.10 +
   10.11 +Package: isi
   10.12 +Architecture: all
   10.13 +Depends: at, acl, quota, tofrodos, 
   10.14 +  procinfo, reiserfsprogs, xfsprogs, slapd, libnss-ldap, libpam-ldap,
   10.15 +  libnet-ldap-perl, samba, smbldap-tools, migrationtools, db4.2-util, 
   10.16 +  libcrack2|cracklib2, python-ldap, python-dry, python-urwid, python-smbpasswd,
   10.17 +  win-perl, isi, mercurial, nscd, python-pumpkin, lsb-release,
   10.18 +  libcompress-zlib-perl, python-xlrd, python-isi (>= 2.7.3), smbclient
   10.19 +Conflicts: isi-ldap3-def,  isi-ldap3,  isi-logon,  isi-perl, isi-setup
   10.20 +Replaces: isi-ldap3-def,  isi-ldap3,  isi-logon,  isi-perl
   10.21 +Description: all you need to setup and manage a pdc samba+ldap at school
   10.22 + 
   10.23 +Package: python-isi
   10.24 +Architecture: all
   10.25 +Provides: python-isi
   10.26 +Depends: python-ldap, python-pexpect, isi (>= 2.7.3)
   10.27 +XB-Python-Version: ${python:Versions}
   10.28 +Description: python modules for isi project
   10.29 + Questa versione dipende da python 2.5 o successivi
   10.30 +
   10.31 +Package: isi-docs
   10.32 +Architecture: all
   10.33 +Depends: 
   10.34 +Description: documentazione progetto reteisi
   10.35 + Documentazione completa del pacchetto reteisi.
   10.36 + Al momento è possibile sfogliare la documentazione dal sito:
   10.37 +    http://reteisi.argolinux.org
   10.38 +
   10.39 +Package: isi-checkup
   10.40 +Architecture: all
   10.41 +Depends: python-dry, python-isi (>= 2.7.3)
   10.42 +Description: suite di checkup per un sistema ReteIsi
   10.43 +  il sistema fornisce una struttura per potere gestire una serie di test
   10.44 +  per fare un checkup al sistema
   10.45 +
   10.46 +Package: isi-web
   10.47 +Architecture: all
   10.48 +Depends: python-django (>=1.2), python-vov (>= 0.8.5), isi (>=2.7.3),  
   10.49 +  isi-docs (>=2.7.3),
   10.50 +  libapache2-mod-fastcgi, python-dry, ipython, python-flup, apache2
   10.51 +Description: Interfaccia web per amministrazione ReteISI
   10.52 +  Interfaccia web per amministrazione ReteISI comprensivo di
   10.53 +  .
   10.54 +  * cambio nome dominio
   10.55 +  * configurazione logon.conf
   10.56 +  * gestione utenti
   10.57 +  * gestione dns/boot options
   10.58 +  * controllo navigazione classi (non squid/dansguardian)
   10.59 +
    11.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.2 +++ b/debian/copyright	Mon Apr 26 11:16:23 2010 +0200
    11.3 @@ -0,0 +1,40 @@
    11.4 +This package was debianized by Sandro Dentella <[email protected]> on
    11.5 +Mon, 15 Feb 2022 17:18:50 +0100.
    11.6 +
    11.7 +It was downloaded from <url://example.com>
    11.8 +
    11.9 +Upstream Author(s): 
   11.10 +
   11.11 +    <put author's name and email here>
   11.12 +    <likewise for another author>
   11.13 +
   11.14 +Copyright: 
   11.15 +
   11.16 +    <Copyright (C) YYYY Name OfAuthor>
   11.17 +    <likewise for another author>
   11.18 +
   11.19 +License:
   11.20 +
   11.21 +    This package is free software; you can redistribute it and/or modify
   11.22 +    it under the terms of the GNU General Public License as published by
   11.23 +    the Free Software Foundation; either version 2 of the License, or
   11.24 +    (at your option) any later version.
   11.25 + 
   11.26 +    This package is distributed in the hope that it will be useful,
   11.27 +    but WITHOUT ANY WARRANTY; without even the implied warranty of
   11.28 +    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   11.29 +    GNU General Public License for more details.
   11.30 + 
   11.31 +    You should have received a copy of the GNU General Public License
   11.32 +    along with this package; if not, write to the Free Software
   11.33 +    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
   11.34 +
   11.35 +On Debian systems, the complete text of the GNU General
   11.36 +Public License can be found in `/usr/share/common-licenses/GPL'.
   11.37 +
   11.38 +The Debian packaging is (C) 2010, Sandro Dentella <[email protected]> and
   11.39 +is licensed under the GPL, see above.
   11.40 +
   11.41 +
   11.42 +# Please also look if there are files or directories which have a
   11.43 +# different copyright/license attached and list them here.
    12.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.2 +++ b/debian/files	Mon Apr 26 11:16:23 2010 +0200
    12.3 @@ -0,0 +1,5 @@
    12.4 +isi_2.7.3_all.deb isi extra
    12.5 +python-isi_2.7.3_all.deb isi extra
    12.6 +isi-docs_2.7.3_all.deb isi extra
    12.7 +isi-checkup_2.7.3_all.deb isi extra
    12.8 +isi-web_2.7.3_all.deb isi extra
    13.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.2 +++ b/debian/isi-checkup.1	Mon Apr 26 11:16:23 2010 +0200
    13.3 @@ -0,0 +1,59 @@
    13.4 +.\"                                      Hey, EMACS: -*- nroff -*-
    13.5 +.\" First parameter, NAME, should be all caps
    13.6 +.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
    13.7 +.\" other parameters are allowed: see man(7), man(1)
    13.8 +.TH ISI-CHECKUP SECTION "aprile 11, 2008"
    13.9 +.\" Please adjust this date whenever revising the manpage.
   13.10 +.\"
   13.11 +.\" Some roff macros, for reference:
   13.12 +.\" .nh        disable hyphenation
   13.13 +.\" .hy        enable hyphenation
   13.14 +.\" .ad l      left justify
   13.15 +.\" .ad b      justify to both left and right margins
   13.16 +.\" .nf        disable filling
   13.17 +.\" .fi        enable filling
   13.18 +.\" .br        insert line break
   13.19 +.\" .sp <n>    insert n+1 empty lines
   13.20 +.\" for manpage-specific macros, see man(7)
   13.21 +.SH NAME
   13.22 +isi-checkup \- suite di test estendibile
   13.23 +.SH SYNOPSIS
   13.24 +.B isi-checkup
   13.25 +.RI [  ] " files" ...
   13.26 +.br
   13.27 +.B bar
   13.28 +.RI [ options ] " files" ...
   13.29 +.SH DESCRIPTION
   13.30 +This manual page documents briefly the
   13.31 +.B isi-checkup
   13.32 +and
   13.33 +.B bar
   13.34 +commands.
   13.35 +.PP
   13.36 +.\" TeX users may be more comfortable with the \fB<whatever>\fP and
   13.37 +.\" \fI<whatever>\fP escape sequences to invode bold face and italics, 
   13.38 +.\" respectively.
   13.39 +\fBisi-checkup\fP is a program that...
   13.40 +.SH OPTIONS
   13.41 +These programs follow the usual GNU command line syntax, with long
   13.42 +options starting with two dashes (`-').
   13.43 +A summary of options is included below.
   13.44 +For a complete description, see the Info files.
   13.45 +.TP
   13.46 +.B \-h, \-\-help
   13.47 +Show summary of options.
   13.48 +.TP
   13.49 +.B \-v, \-\-version
   13.50 +Show version of program.
   13.51 +.SH SEE ALSO
   13.52 +.BR bar (1),
   13.53 +.BR baz (1).
   13.54 +.br
   13.55 +The programs are documented fully by
   13.56 +.IR "The Rise and Fall of a Fooish Bar" ,
   13.57 +available via the Info system.
   13.58 +.SH AUTHOR
   13.59 +isi-checkup was written by <upstream author>.
   13.60 +.PP
   13.61 +This manual page was written by Alessandro Dentella <[email protected]>,
   13.62 +for the Debian project (but may be used by others).
    14.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.2 +++ b/debian/isi-checkup.install	Mon Apr 26 11:16:23 2010 +0200
    14.3 @@ -0,0 +1,2 @@
    14.4 +checkup/isi-checkup usr/sbin
    14.5 +usr/share/isi-checkup /usr/share/
    15.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.2 +++ b/debian/isi-checkup.manpages	Mon Apr 26 11:16:23 2010 +0200
    15.3 @@ -0,0 +1,1 @@
    15.4 +debian/isi-checkup.1
    16.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.2 +++ b/debian/isi-checkup.postinst	Mon Apr 26 11:16:23 2010 +0200
    16.3 @@ -0,0 +1,43 @@
    16.4 +#!/bin/sh
    16.5 +# postinst script for isi
    16.6 +#
    16.7 +# see: dh_installdeb(1)
    16.8 +
    16.9 +set -e
   16.10 +
   16.11 +# summary of how this script can be called:
   16.12 +#        * <postinst> `configure' <most-recently-configured-version>
   16.13 +#        * <old-postinst> `abort-upgrade' <new version>
   16.14 +#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
   16.15 +#          <new-version>
   16.16 +#        * <postinst> `abort-remove'
   16.17 +#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
   16.18 +#          <failed-install-package> <version> `removing'
   16.19 +#          <conflicting-package> <version>
   16.20 +# for details, see http://www.debian.org/doc/debian-policy/ or
   16.21 +# the debian-policy package
   16.22 +
   16.23 +
   16.24 +case "$1" in
   16.25 +    configure)
   16.26 +	mkdir -p /etc/isi/checkup
   16.27 +	isi-checkup -T 
   16.28 +    ;;
   16.29 +
   16.30 +    abort-upgrade|abort-remove|abort-deconfigure)
   16.31 +    ;;
   16.32 +
   16.33 +    *)
   16.34 +        echo "postinst called with unknown argument \`$1'" >&2
   16.35 +        exit 1
   16.36 +    ;;
   16.37 +esac
   16.38 +
   16.39 +# dh_installdeb will replace this with shell code automatically
   16.40 +# generated by other debhelper scripts.
   16.41 +
   16.42 +#DEBHELPER#
   16.43 +
   16.44 +exit 0
   16.45 +
   16.46 +
    17.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.2 +++ b/debian/isi-web.install	Mon Apr 26 11:16:23 2010 +0200
    17.3 @@ -0,0 +1,7 @@
    17.4 +etc/apache2 /etc/
    17.5 +etc/init.d/isiweb /etc/init.d
    17.6 +etc/default etc
    17.7 +web/logon web/samba web/dnsmasq web/navigazione web/users web/templates  usr/share/isi/isiweb
    17.8 +web/urls.py web/manage.py web/__init__.py web/logger.py web/static web/ldap-auth.py usr/share/isi/isiweb
    17.9 +
   17.10 +web/settings.py web/local_settings.py usr/share/doc/isi-web
    18.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.2 +++ b/debian/isi-web.links	Mon Apr 26 11:16:23 2010 +0200
    18.3 @@ -0,0 +1,3 @@
    18.4 +/etc/isi/web/settings.py        usr/share/isi/isiweb/settings.py  
    18.5 +/etc/isi/web/local_settings.py  usr/share/isi/isiweb/local_settings.py  
    18.6 +var/cache/isiweb/mako_modules  usr/share/isi/isiweb/mako_modules
    19.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.2 +++ b/debian/isi-web.postinst	Mon Apr 26 11:16:23 2010 +0200
    19.3 @@ -0,0 +1,73 @@
    19.4 +#!/bin/bash
    19.5 +# postinst script for isi
    19.6 +#
    19.7 +# see: dh_installdeb(1)
    19.8 +
    19.9 +set -e
   19.10 +
   19.11 +# summary of how this script can be called:
   19.12 +#        * <postinst> `configure' <most-recently-configured-version>
   19.13 +#        * <old-postinst> `abort-upgrade' <new version>
   19.14 +#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
   19.15 +#          <new-version>
   19.16 +#        * <postinst> `abort-remove'
   19.17 +#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
   19.18 +#          <failed-install-package> <version> `removing'
   19.19 +#          <conflicting-package> <version>
   19.20 +# for details, see http://www.debian.org/doc/debian-policy/ or
   19.21 +# the debian-policy package
   19.22 +
   19.23 +function start_isiweb () {
   19.24 +    a2enmod rewrite
   19.25 +    a2enmod expires
   19.26 +    a2enmod fastcgi
   19.27 +#    a2dissite 000-default || true
   19.28 +    a2dissite isiweb-all.conf
   19.29 +    a2ensite isiweb.conf
   19.30 +    /etc/init.d/apache2 reload
   19.31 +    update-rc.d isiweb start 20 2 . stop 80 2 .
   19.32 +    mkdir -p /var/cache/isiweb/mako_modules
   19.33 +    PTH_DIR=/usr/lib/python2.5/site-packages
   19.34 +    if [ -d $PTH_DIR ] ; then
   19.35 +	echo /usr/share/isi > $PTH_DIR/isi.pth
   19.36 +    fi
   19.37 +
   19.38 +    mkdir -p /etc/isi/web
   19.39 +    if [ ! -f /etc/isi/web/settings.py ] ; then
   19.40 +	cp /usr/share/doc/isi-web/settings.py /etc/isi/web
   19.41 +    fi
   19.42 +    if [ ! -f /etc/isi/web/local_settings.py ] ; then
   19.43 +	cp /usr/share/doc/isi-web/local_settings.py /etc/isi/web
   19.44 +    fi
   19.45 +    cd /usr/share/isi/isiweb
   19.46 +    ./manage.py syncdb --verbosity=0 --noinput
   19.47 +
   19.48 +    /etc/init.d/isiweb start
   19.49 +}
   19.50 +
   19.51 +case "$1" in
   19.52 +    configure)
   19.53 +	rm -f /usr/share/isi/isiweb/isi.db
   19.54 +	rm -f /etc/isi/web/settings.py
   19.55 +	if [ ! -f /usr/share/isi/isiweb/isi.db ]; then
   19.56 +	    start_isiweb
   19.57 +	fi
   19.58 +    ;;
   19.59 +
   19.60 +    abort-upgrade|abort-remove|abort-deconfigure)
   19.61 +    ;;
   19.62 +
   19.63 +    *)
   19.64 +        echo "postinst called with unknown argument \`$1'" >&2
   19.65 +        exit 1
   19.66 +    ;;
   19.67 +esac
   19.68 +
   19.69 +# dh_installdeb will replace this with shell code automatically
   19.70 +# generated by other debhelper scripts.
   19.71 +
   19.72 +#DEBHELPER#
   19.73 +
   19.74 +exit 0
   19.75 +
   19.76 +
    20.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.2 +++ b/debian/isi.install	Mon Apr 26 11:16:23 2010 +0200
    20.3 @@ -0,0 +1,5 @@
    20.4 +usr/bin /usr
    20.5 +usr/sbin /usr
    20.6 +usr/lib /usr
    20.7 +usr/share/WinActivePerl
    20.8 +
    21.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.2 +++ b/debian/isi.postinst	Mon Apr 26 11:16:23 2010 +0200
    21.3 @@ -0,0 +1,63 @@
    21.4 +#!/bin/bash
    21.5 +# postinst script for isi
    21.6 +#
    21.7 +# see: dh_installdeb(1)
    21.8 +
    21.9 +set -e
   21.10 +
   21.11 +# summary of how this script can be called:
   21.12 +#        * <postinst> `configure' <most-recently-configured-version>
   21.13 +#        * <old-postinst> `abort-upgrade' <new version>
   21.14 +#        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
   21.15 +#          <new-version>
   21.16 +#        * <postinst> `abort-remove'
   21.17 +#        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
   21.18 +#          <failed-install-package> <version> `removing'
   21.19 +#          <conflicting-package> <version>
   21.20 +# for details, see http://www.debian.org/doc/debian-policy/ or
   21.21 +# the debian-policy package
   21.22 +
   21.23 +
   21.24 +case "$1" in
   21.25 +    configure)
   21.26 +	mkdir -p /etc/isi/
   21.27 +	grep -v /etc/isi/defaults.py /usr/share/doc/isi/etc/isi/defaults.py > /etc/isi/defaults.py
   21.28 +        ### copia grub4dos nella share software
   21.29 +        if [ -d /home/shares/software ]; then
   21.30 +	    GRUP_DEST=/home/shares/software
   21.31 +	else
   21.32 +	    GRUP_DEST=/home/software
   21.33 +	fi
   21.34 +        if [ -d $GRUB_DEST ]; then
   21.35 +	    if [ ! -d $GRUB_DEST/grub4dos ]; then
   21.36 +		cp -a /usr/share/doc/isi/grub4dos $GRUB_DEST
   21.37 +	    fi
   21.38 +            find $GRUB_DEST/grub4dos -name \*gz -exec gunzip {} \;
   21.39 +        fi
   21.40 +	rm -f /etc/isi/logon.pl /etc/isi/logonupd.pl
   21.41 +	## there was a time logon.pl was in /etc/isi (before 2.7.1) and 
   21.42 +	## we pointed there from WinActivePerl
   21.43 +	WIN_PERL=/usr/share/WinActivePerl/
   21.44 +	if test -h $WIN_PERL/logon.pl  ; then
   21.45 +	    rm -f $WIN_PERL/logon.pl $WIN_PERL/logonupd.pl
   21.46 +	    cp /usr/share/doc/isi/etc/isi/{logon,logonupd}.pl $WIN_PERL
   21.47 +	fi
   21.48 +	;;
   21.49 +
   21.50 +    abort-upgrade|abort-remove|abort-deconfigure)
   21.51 +    ;;
   21.52 +
   21.53 +    *)
   21.54 +        echo "postinst called with unknown argument \`$1'" >&2
   21.55 +        exit 1
   21.56 +    ;;
   21.57 +esac
   21.58 +
   21.59 +# dh_installdeb will replace this with shell code automatically
   21.60 +# generated by other debhelper scripts.
   21.61 +
   21.62 +#DEBHELPER#
   21.63 +
   21.64 +exit 0
   21.65 +
   21.66 +
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/debian/python-isi.install	Mon Apr 26 11:16:23 2010 +0200
    22.3 @@ -0,0 +1,1 @@
    22.4 +debian/tmp/usr/lib/python2.5 /usr/lib/
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/debian/rules	Mon Apr 26 11:16:23 2010 +0200
    23.3 @@ -0,0 +1,21 @@
    23.4 +#!/usr/bin/make -f
    23.5 +
    23.6 +#DEB_TAR_SRCDIR                  := python-dateutil
    23.7 +DEB_AUTO_CLEANUP_RCS            := yes
    23.8 +
    23.9 +DEB_PYTHON_SYSTEM = pysupport
   23.10 +DEB_PYTHON_CLEAN_ARGS = --all
   23.11 +
   23.12 +# Add here any variable or target overrides you need
   23.13 +include /usr/share/cdbs/1/rules/debhelper.mk
   23.14 +include /usr/share/cdbs/1/class/python-distutils.mk
   23.15 +#include /usr/share/cdbs/1/rules/patchsys-quilt.mk
   23.16 +
   23.17 +
   23.18 +
   23.19 +DEB_COMPRESS_EXCLUDE := .py
   23.20 +
   23.21 +# install/isi-docs::
   23.22 +# 	mkdir -p doc/html doc/.doctrees
   23.23 +# 	sphinx-build doc doc/html
   23.24 +# 	perl -i -p -e 's/xxxx/$(VER)/g' doc/html/sqlkit/download.html
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/docs/Makefile	Mon Apr 26 11:16:23 2010 +0200
    24.3 @@ -0,0 +1,88 @@
    24.4 +# Makefile for Sphinx documentation
    24.5 +#
    24.6 +
    24.7 +# You can set these variables from the command line.
    24.8 +SPHINXOPTS    =
    24.9 +SPHINXBUILD   = sphinx-build
   24.10 +PAPER         =
   24.11 +
   24.12 +# Internal variables.
   24.13 +PAPEROPT_a4     = -D latex_paper_size=a4
   24.14 +PAPEROPT_letter = -D latex_paper_size=letter
   24.15 +ALLSPHINXOPTS   = -d .build/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
   24.16 +
   24.17 +all: html
   24.18 +
   24.19 +.PHONY: help clean html web htmlhelp latex changes linkcheck
   24.20 +
   24.21 +help:
   24.22 +	@echo "Please use \`make <target>' where <target> is one of"
   24.23 +	@echo "  html      to make standalone HTML files"
   24.24 +	@echo "  web       to make files usable by Sphinx.web"
   24.25 +	@echo "  htmlhelp  to make HTML files and a HTML help project"
   24.26 +	@echo "  latex     to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
   24.27 +	@echo "  changes   to make an overview over all changed/added/deprecated items"
   24.28 +	@echo "  linkcheck to check all external links for integrity"
   24.29 +
   24.30 +clean:
   24.31 +	-rm -rf .build/*
   24.32 +
   24.33 +html:
   24.34 +	mkdir -p .build/html .build/doctrees
   24.35 +	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) .build/html
   24.36 +	@echo
   24.37 +	@echo "Build finished. The HTML pages are in .build/html."
   24.38 +
   24.39 +web:
   24.40 +	mkdir -p .build/web .build/doctrees
   24.41 +	$(SPHINXBUILD) -b web $(ALLSPHINXOPTS) .build/web
   24.42 +	@echo
   24.43 +	@echo "Build finished; now you can run"
   24.44 +	@echo "  python -m sphinx.web .build/web"
   24.45 +	@echo "to start the server."
   24.46 +
   24.47 +htmlhelp:
   24.48 +	mkdir -p .build/htmlhelp .build/doctrees
   24.49 +	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) .build/htmlhelp
   24.50 +	@echo
   24.51 +	@echo "Build finished; now you can run HTML Help Workshop with the" \
   24.52 +	      ".hhp project file in .build/htmlhelp."
   24.53 +
   24.54 +latex:
   24.55 +	mkdir -p .build/latex .build/doctrees
   24.56 +	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) .build/latex
   24.57 +	@echo
   24.58 +	@echo "Build finished; the LaTeX files are in .build/latex."
   24.59 +	@echo "Run \`make all-pdf' or \`make all-ps' in that directory to" \
   24.60 +	      "run these through (pdf)latex."
   24.61 +
   24.62 +changes:
   24.63 +	mkdir -p .build/changes .build/doctrees
   24.64 +	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) .build/changes
   24.65 +	@echo
   24.66 +	@echo "The overview file is in .build/changes."
   24.67 +
   24.68 +linkcheck:
   24.69 +	mkdir -p .build/linkcheck .build/doctrees
   24.70 +	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) .build/linkcheck
   24.71 +	@echo
   24.72 +	@echo "Link check complete; look for any errors in the above output " \
   24.73 +	      "or in .build/linkcheck/output.txt."
   24.74 +
   24.75 +rsync:	html
   24.76 +	rsync -r --delete --progress --stats ./.build/html/ www3:docs/reteisi
   24.77 +
   24.78 +nrsync:	html
   24.79 +	rsync -r --delete --progress --stats ./.build/html/ www3:docs/reteisi/2.0/
   24.80 +
   24.81 +pdf:    latex
   24.82 +	cd .build/latex; make all-pdf || true
   24.83 +	Print -s -o "-b 20" .build/latex/reteisi.pdf
   24.84 +	gv --orientation=seascape .build/latex/reteisi.2.ps
   24.85 +
   24.86 +galeon: 
   24.87 +	galeon ./.build/html/index.html
   24.88 +firefox: 
   24.89 +	firefox ./.build/html/index.html
   24.90 +
   24.91 +chtml:  clean html
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/docs/README	Mon Apr 26 11:16:23 2010 +0200
    25.3 @@ -0,0 +1,12 @@
    25.4 +Documentation can be generated with sphinx:
    25.5 +
    25.6 +
    25.7 +easy_install sphinx
    25.8 +make html
    25.9 +make firefox
   25.10 +
   25.11 +
   25.12 +it is available on the web:
   25.13 +
   25.14 +   http://docs.argolinux.org/jungle/index.html
   25.15 +
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/docs/_static/reteisi.css	Mon Apr 26 11:16:23 2010 +0200
    26.3 @@ -0,0 +1,520 @@
    26.4 +/**
    26.5 + * Alternate Sphinx design
    26.6 + * Originally created by Armin Ronacher for Werkzeug, adapted by Georg Brandl.
    26.7 + * modified by Sandro Dentella per ReteIsi
    26.8 + */
    26.9 +
   26.10 +body {
   26.11 +    font-family: 'Lucida Grande', 'Lucida Sans Unicode', 'Geneva', 'Verdana', sans-serif;
   26.12 +    font-size: 13px;
   26.13 +    letter-spacing: -0.01em;
   26.14 +    line-height: 130%;
   26.15 +    text-align: center;
   26.16 +    /*background-color: #AFC1C4; */
   26.17 +    background-color: #e9d56c;
   26.18 +    color: #333333;
   26.19 +    padding: 0;
   26.20 +    border: 1px solid #aaa;
   26.21 +
   26.22 +    margin: 0px 80px 0px 80px;
   26.23 +    min-width: 740px
   26.24 +    }
   26.25 +section h1 {
   26.26 +    background-color: #FDFAF3;
   26.27 +    font-size: 180%;
   26.28 +    font-weight: bold
   26.29 +    }
   26.30 +.section h2, h2 {
   26.31 +    font-size: 150%;
   26.32 +    font-weight: normal
   26.33 +    }
   26.34 +.section h1, .section h2, h1, h2 {
   26.35 +    font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
   26.36 +    border-color: #E2DCC8;
   26.37 +    border-style: solid;
   26.38 +    border-width: 0pt 0pt 1px
   26.39 +    }
   26.40 +.section h1, .section h2, .section h3, h1, h2, h3 {
   26.41 +    color: #940000
   26.42 +    }
   26.43 +a {
   26.44 +    color: #CA7900;
   26.45 +    text-decoration: none
   26.46 +    }
   26.47 +a:hover {
   26.48 +    color: #2491CF
   26.49 +    }
   26.50 +pre {
   26.51 +    font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
   26.52 +    font-size: 0.95em;
   26.53 +    letter-spacing: 0.015em;
   26.54 +    padding: 0.5em;
   26.55 +    border: 1px solid #ccc;
   26.56 +    background-color: #f8f8f8
   26.57 +    }
   26.58 +td.linenos pre {
   26.59 +    padding: 0;
   26.60 +    border: 0;
   26.61 +    background-color: transparent;
   26.62 +    color: #aaa
   26.63 +    }
   26.64 +table.highlighttable {
   26.65 +    margin-left: 0.5em
   26.66 +    }
   26.67 +table.highlighttable td {
   26.68 +    padding: 0 0.5em 0 0.5em
   26.69 +    }
   26.70 +cite, code, tt {
   26.71 +    font-family: 'Consolas', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace;
   26.72 +    font-size: 1.05em;
   26.73 +    letter-spacing: 0.01em;
   26.74 +    font-style: normal
   26.75 +    }
   26.76 +hr {
   26.77 +    border: 1px solid #abc;
   26.78 +    margin: 2em
   26.79 +    }
   26.80 +tt {
   26.81 +    /*     background-color: #f2f2f2; */
   26.82 +    /*     border-bottom: 1px solid #ddd; */
   26.83 +    color: #222;
   26.84 +    font-weight: bold
   26.85 +    }
   26.86 +tt.descname {
   26.87 +    background-color: transparent;
   26.88 +    font-weight: bold;
   26.89 +    font-size: 1.2em;
   26.90 +    border: 0
   26.91 +    }
   26.92 +tt.descclassname {
   26.93 +    background-color: transparent;
   26.94 +    border: 0
   26.95 +    }
   26.96 +tt.xref {
   26.97 +    background-color: transparent;
   26.98 +    font-weight: bold;
   26.99 +    border: 0
  26.100 +    }
  26.101 +a tt {
  26.102 +    background-color: transparent;
  26.103 +    font-weight: bold;
  26.104 +    border: 0;
  26.105 +    color: #CA7900
  26.106 +    }
  26.107 +a tt:hover {
  26.108 +    color: #2491CF;
  26.109 +}
  26.110 +
  26.111 +.field-list ul {
  26.112 +    margin: 0;
  26.113 +    padding-left: 1em;
  26.114 +}
  26.115 +
  26.116 +.field-list p {
  26.117 +    margin: 0;
  26.118 +}
  26.119 +
  26.120 +dl {
  26.121 +    margin-bottom: 15px;
  26.122 +}
  26.123 +
  26.124 +dd p {
  26.125 +    margin-top: 0px;
  26.126 +}
  26.127 +
  26.128 +dd ul, dd table {
  26.129 +    margin-bottom: 10px;
  26.130 +}
  26.131 +
  26.132 +dd {
  26.133 +    margin-top: 3px;
  26.134 +    margin-bottom: 10px;
  26.135 +    margin-left: 30px;
  26.136 +}
  26.137 +
  26.138 +.refcount {
  26.139 +    color: #060;
  26.140 +}
  26.141 +
  26.142 +dt:target,
  26.143 +.highlight {
  26.144 +    background-color: #fbe54e;
  26.145 +}
  26.146 +
  26.147 +dl.glossary dt {
  26.148 +    font-weight: bold;
  26.149 +    font-size: 1.1em;
  26.150 +}
  26.151 +
  26.152 +pre {
  26.153 +    line-height: 120%;
  26.154 +}
  26.155 +
  26.156 +pre a {
  26.157 +/*     color: inherit; */
  26.158 +    text-decoration: underline;
  26.159 +}
  26.160 +
  26.161 +.first {
  26.162 +    margin-top: 0 !important;
  26.163 +}
  26.164 +
  26.165 +div.document {
  26.166 +    background-color: white;
  26.167 +    text-align: left;
  26.168 +    background-image: url(contents.png);
  26.169 +    background-repeat: repeat-x;
  26.170 +}
  26.171 +
  26.172 +/*
  26.173 +div.documentwrapper {
  26.174 +    width: 100%;
  26.175 +}
  26.176 +*/
  26.177 +
  26.178 +div.clearer {
  26.179 +    clear: both;
  26.180 +}
  26.181 +
  26.182 +div.related h3 {
  26.183 +    display: none;
  26.184 +}
  26.185 +
  26.186 +div.related ul {
  26.187 +    background-image: url(navigation.png);
  26.188 +    height: 2em;
  26.189 +    list-style: none;
  26.190 +    border-top: 1px solid #ddd;
  26.191 +    border-bottom: 1px solid #ddd;
  26.192 +    margin: 0;
  26.193 +    padding-left: 10px;
  26.194 +}
  26.195 +
  26.196 +div.related ul li {
  26.197 +    margin: 0;
  26.198 +    padding: 0;
  26.199 +    height: 2em;
  26.200 +    float: left;
  26.201 +}
  26.202 +
  26.203 +div.related ul li.right {
  26.204 +    float: right;
  26.205 +    margin-right: 5px;
  26.206 +}
  26.207 +
  26.208 +div.related ul li a {
  26.209 +    margin: 0;
  26.210 +    padding: 0 5px 0 5px;
  26.211 +    line-height: 1.75em;
  26.212 +    color: #EE9816;
  26.213 +}
  26.214 +
  26.215 +div.related ul li a:hover {
  26.216 +    color: #3CA8E7;
  26.217 +}
  26.218 +
  26.219 +div.body {
  26.220 +    margin: 0;
  26.221 +    padding: 0.5em 20px 20px 20px;
  26.222 +}
  26.223 +
  26.224 +div.bodywrapper {
  26.225 +    margin: 0 240px 0 0;
  26.226 +    border-right: 1px solid #ccc;
  26.227 +}
  26.228 +
  26.229 +div.body a {
  26.230 +    text-decoration: underline;
  26.231 +}
  26.232 +
  26.233 +div.sphinxsidebar {
  26.234 +    margin: 0;
  26.235 +    padding: 0.5em 15px 15px 0;
  26.236 +    width: 210px;
  26.237 +    float: right;
  26.238 +    text-align: left;
  26.239 +/*    margin-left: -100%; */
  26.240 +}
  26.241 +
  26.242 +div.sphinxsidebar h4, div.sphinxsidebar h3 {
  26.243 +    margin: 1em 0 0.5em 0;
  26.244 +    font-size: 0.9em;
  26.245 +    padding: 0.1em 0 0.1em 0.5em;
  26.246 +    color: #940000;
  26.247 +    border: 1px solid #940000;
  26.248 +    background-color: #f0ae4a
  26.249 +    }
  26.250 +div.sphinxsidebar ul ul {
  26.251 +    padding-left: 1.5em;
  26.252 +    margin-top: 7px;
  26.253 +    list-style: none;
  26.254 +    padding: 0;
  26.255 +    line-height: 130%;
  26.256 +}
  26.257 +
  26.258 +div.sphinxsidebar ul ul {
  26.259 +    list-style: square;
  26.260 +    margin-left: 20px;
  26.261 +}
  26.262 +
  26.263 +p {
  26.264 +    margin: 0.8em 0 0.5em 0;
  26.265 +}
  26.266 +
  26.267 +p.rubric {
  26.268 +    font-weight: bold;
  26.269 +}
  26.270 +
  26.271 +h1 {
  26.272 +    margin: 0;
  26.273 +    padding: 0.7em 0 0.3em 0;
  26.274 +    font-size: 1.5em;
  26.275 +    color: #11557C;
  26.276 +}
  26.277 +
  26.278 +h2 {
  26.279 +    margin: 1.3em 0 0.2em 0;
  26.280 +    font-size: 1.35em;
  26.281 +    padding: 0;
  26.282 +}
  26.283 +
  26.284 +h3 {
  26.285 +    margin: 1em 0 -0.3em 0;
  26.286 +    font-size: 1.2em;
  26.287 +}
  26.288 +
  26.289 +h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  26.290 +    color: #333333
  26.291 +    }
  26.292 +h1 a.anchor, h2 a.anchor, h3 a.anchor, h4 a.anchor, h5 a.anchor, h6 a.anchor {
  26.293 +    display: none;
  26.294 +    margin: 0 0 0 0.3em;
  26.295 +    padding: 0 0.2em 0 0.2em;
  26.296 +    color: #aaa!important;
  26.297 +}
  26.298 +
  26.299 +h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor, h4:hover a.anchor,
  26.300 +h5:hover a.anchor, h6:hover a.anchor {
  26.301 +    display: inline;
  26.302 +}
  26.303 +
  26.304 +h1 a.anchor:hover, h2 a.anchor:hover, h3 a.anchor:hover, h4 a.anchor:hover,
  26.305 +h5 a.anchor:hover, h6 a.anchor:hover {
  26.306 +    color: #777;
  26.307 +    background-color: #eee;
  26.308 +}
  26.309 +
  26.310 +table {
  26.311 +    border-collapse: collapse;
  26.312 +    margin: 0 -0.5em 0 -0.5em;
  26.313 +}
  26.314 +
  26.315 +table td, table th {
  26.316 +    padding: 0.2em 0.5em 0.2em 0.5em;
  26.317 +}
  26.318 +
  26.319 +div.footer {
  26.320 +    background-color: #f0ae4a;
  26.321 +    color: #86989B;
  26.322 +    padding: 3px 8px 3px 0;
  26.323 +    clear: both;
  26.324 +    font-size: 0.8em;
  26.325 +    text-align: right;
  26.326 +}
  26.327 +
  26.328 +div.footer a {
  26.329 +    color: #86989B;
  26.330 +    text-decoration: underline;
  26.331 +}
  26.332 +
  26.333 +div.pagination {
  26.334 +    margin-top: 2em;
  26.335 +    padding-top: 0.5em;
  26.336 +    border-top: 1px solid black;
  26.337 +    text-align: center;
  26.338 +}
  26.339 +
  26.340 +div.sphinxsidebar ul.toc {
  26.341 +    margin: 1em 0 1em 0;
  26.342 +    padding: 0 0 0 0.5em;
  26.343 +    list-style: none;
  26.344 +}
  26.345 +
  26.346 +div.sphinxsidebar ul.toc li {
  26.347 +    margin: 0.5em 0 0.5em 0;
  26.348 +    font-size: 0.9em;
  26.349 +    line-height: 130%;
  26.350 +}
  26.351 +
  26.352 +div.sphinxsidebar ul.toc li p {
  26.353 +    margin: 0;
  26.354 +    padding: 0;
  26.355 +}
  26.356 +
  26.357 +div.sphinxsidebar ul.toc ul {
  26.358 +    margin: 0.2em 0 0.2em 0;
  26.359 +    padding: 0 0 0 1.8em;
  26.360 +}
  26.361 +
  26.362 +div.sphinxsidebar ul.toc ul li {
  26.363 +    padding: 0;
  26.364 +}
  26.365 +
  26.366 +div.admonition, div.warning {
  26.367 +    font-size: 0.9em;
  26.368 +    margin: 1em 0 0 0;
  26.369 +    border: 1px solid #86989B;
  26.370 +    background-color: #f7f7f7;
  26.371 +}
  26.372 +
  26.373 +div.admonition p, div.warning p {
  26.374 +    margin: 0.5em 1em 0.5em 1em;
  26.375 +    padding: 0;
  26.376 +}
  26.377 +
  26.378 +div.admonition pre, div.warning pre {
  26.379 +    margin: 0.4em 1em 0.4em 1em;
  26.380 +}
  26.381 +
  26.382 +div.admonition p.admonition-title,
  26.383 +div.warning p.admonition-title {
  26.384 +    margin: 0;
  26.385 +    padding: 0.1em 0 0.1em 0.5em;
  26.386 +    color: white;
  26.387 +    border-bottom: 1px solid #86989B;
  26.388 +    font-weight: bold;
  26.389 +    background-color: #fe6f20;
  26.390 +}
  26.391 +
  26.392 +div.warning {
  26.393 +    border: 1px solid #940000;
  26.394 +}
  26.395 +
  26.396 +div.warning p.admonition-title {
  26.397 +    background-color: #CF0000;
  26.398 +    border-bottom-color: #940000;
  26.399 +}
  26.400 +
  26.401 +div.admonition ul, div.admonition ol,
  26.402 +div.warning ul, div.warning ol {
  26.403 +    margin: 0.1em 0.5em 0.5em 3em;
  26.404 +    padding: 0;
  26.405 +}
  26.406 +
  26.407 +div.versioninfo {
  26.408 +    margin: 1em 0 0 0;
  26.409 +    border: 1px solid #ccc;
  26.410 +    background-color: #DDEAF0;
  26.411 +    padding: 8px;
  26.412 +    line-height: 1.3em;
  26.413 +    font-size: 0.9em;
  26.414 +}
  26.415 +
  26.416 +
  26.417 +a.headerlink {
  26.418 +    color: #c60f0f!important;
  26.419 +    font-size: 1em;
  26.420 +    margin-left: 6px;
  26.421 +    padding: 0 4px 0 4px;
  26.422 +    text-decoration: none!important;
  26.423 +    visibility: hidden;
  26.424 +}
  26.425 +
  26.426 +h1:hover > a.headerlink,
  26.427 +h2:hover > a.headerlink,
  26.428 +h3:hover > a.headerlink,
  26.429 +h4:hover > a.headerlink,
  26.430 +h5:hover > a.headerlink,
  26.431 +h6:hover > a.headerlink,
  26.432 +dt:hover > a.headerlink {
  26.433 +    visibility: visible;
  26.434 +}
  26.435 +
  26.436 +a.headerlink:hover {
  26.437 +    background-color: #ccc;
  26.438 +    color: white!important;
  26.439 +}
  26.440 +
  26.441 +table.indextable td {
  26.442 +    text-align: left;
  26.443 +    vertical-align: top;
  26.444 +}
  26.445 +
  26.446 +table.indextable dl, table.indextable dd {
  26.447 +    margin-top: 0;
  26.448 +    margin-bottom: 0;
  26.449 +}
  26.450 +
  26.451 +table.indextable tr.pcap {
  26.452 +    height: 10px;
  26.453 +}
  26.454 +
  26.455 +table.indextable tr.cap {
  26.456 +    margin-top: 10px;
  26.457 +    background-color: #f2f2f2;
  26.458 +}
  26.459 +
  26.460 +img.toggler {
  26.461 +    margin-right: 3px;
  26.462 +    margin-top: 3px;
  26.463 +    cursor: pointer;
  26.464 +}
  26.465 +
  26.466 +form.pfform {
  26.467 +    margin: 10px 0 20px 0;
  26.468 +}
  26.469 +
  26.470 +table.contentstable {
  26.471 +    width: 90%;
  26.472 +}
  26.473 +
  26.474 +table.contentstable p.biglink {
  26.475 +    line-height: 150%;
  26.476 +}
  26.477 +
  26.478 +a.biglink {
  26.479 +    font-size: 1.3em;
  26.480 +}
  26.481 +
  26.482 +span.linkdescr {
  26.483 +    font-style: italic;
  26.484 +    padding-top: 5px;
  26.485 +    font-size: 90%;
  26.486 +}
  26.487 +
  26.488 +ul.search {
  26.489 +    margin: 10px 0 0 20px;
  26.490 +    padding: 0;
  26.491 +}
  26.492 +
  26.493 +ul.search li {
  26.494 +    padding: 5px 0 5px 20px;
  26.495 +    background-image: url(file.png);
  26.496 +    background-repeat: no-repeat;
  26.497 +    background-position: 0 7px;
  26.498 +}
  26.499 +
  26.500 +ul.search li a {
  26.501 +    font-weight: bold;
  26.502 +}
  26.503 +
  26.504 +ul.search li div.context {
  26.505 +    color: #888;
  26.506 +    margin: 2px 0 0 30px;
  26.507 +    text-align: left;
  26.508 +}
  26.509 +
  26.510 +ul.keywordmatches li.goodmatch a {
  26.511 +    font-weight: bold
  26.512 +    }
  26.513 +div.sidebar {
  26.514 +    margin-left: 1em;
  26.515 +    margin-top: 1em;
  26.516 +    border: 1px solid orange;
  26.517 +    padding: 1em;
  26.518 +    background-color: #FFFFCC;
  26.519 +    width: 40%;
  26.520 +    float: right;
  26.521 +    clear: right;
  26.522 +    margin-bottom: 20px
  26.523 +    }
    27.1 Binary file docs/_static/reteisi.png has changed
    28.1 Binary file docs/_static/sphinx.png has changed
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/docs/_templates/index.html	Mon Apr 26 11:16:23 2010 +0200
    29.3 @@ -0,0 +1,86 @@
    29.4 +{% extends "layout.html" %}
    29.5 +{% set title = 'Overview' %}
    29.6 +{% block body %}
    29.7 +<!--  <p style="background-color: #fcc; font-size: large; border: 1px solid #f00; padding: 10px;">
    29.8 +    <b>Attention:</b> this is a preview. Sphinx is not released yet on PyPI,
    29.9 +    and the contents of this documentation are subject to change.
   29.10 +  </p> -->
   29.11 +
   29.12 +  <h1>Benvenuti</h1>
   29.13 +
   29.14 +  <p>
   29.15 +  La nuova documentazione è <a href="2.0/" >ora disponibile</a>
   29.16 +
   29.17 +  ReteIsi è una soluzione che cerca di rendere l'amministrazione di un
   29.18 +  sistema scolastico accessibile al personale scolastico senza richiedere un
   29.19 +  eccessivo sforzo. Il progetto <a href="http://www.reteisi.org">ReteIsi</a>
   29.20 +  è nato come prodotto di una associazione di scuole nel 2002, anno in cui
   29.21 +  ricevette un cospicuo finanziamento, viene costantemente aggiornato e
   29.22 +  migliorato. Nel 2008 e 2010 ha ricevuto finanziamenti dal progetto 
   29.23 +  <a href="http://www.reteidra.org">ReteIdra</a>grazie al quale fra le altre
   29.24 +  cose, è stata aggiunta una interfaccia web per la gestione utenti, dns e
   29.25 +  logon ed è stato potenziata la gestione del server come server LTSP.
   29.26 +  
   29.27 + </p>
   29.28 + <p>
   29.29 + Questo obiettivo è raggiunto
   29.30 + <ul>
   29.31 +   <li>
   29.32 +      Avendo fatto a monte una scelta degli strumenti più idonei (distribuzione,
   29.33 +       processo di autenticazione, firewall, ...)
   29.34 +   </li>
   29.35 +   <li>
   29.36 +      Avendo creato degli strumenti idonei alla gestione di utenti in massa
   29.37 +      (ad esempio l'inserimento di 5/800 utenti all'inizio dell'anno può
   29.38 +        essere fatta in una decina di minuti)
   29.39 +   </li>
   29.40 +   <li>
   29.41 +      Avendo raccolto la documentazione pertinente ai casi d'uso più
   29.42 +      frequenti
   29.43 +    </li>
   29.44 +   </ul>
   29.45 +
   29.46 +  <h2>Stiamo lavorando su...</h2>
   29.47 +
   29.48 +  I lavori appena ultimati sono:
   29.49 +  <ul>
   29.50 +    <li>Una completa riscrittura delle librerie in python che usa 
   29.51 +        <a href="http://pumpkin.prymitive.com/">pumpkin</a>come wrapper per ldap<li>
   29.52 +    <li>Una <a href="gestione/web.html">interfaccia web</a> per la gestione degli utenti, del logon (da
   29.53 +    client Windows) e del dns (con particolare attenzione a boot di macchien
   29.54 +    LTSP in modalità thin e fat)</li>
   29.55 +    <li>Sandro Dentella sta tenendo un corso per amministratori scolastici
   29.56 +      in 8 giornate. Se siete interessati alle presentazioni delle lezioni
   29.57 +      le trovate nel sito del <a href="http://tickets.reteidra.org/corsi/">corso</a>
   29.58 +    </li>
   29.59 +    </ul>
   29.60 +
   29.61 +  <h2>Documentazione</h2>
   29.62 +
   29.63 +  La documentazione è scritta con un tool chiamato <a
   29.64 +  href="http://sphinx.pocoo.org/" >Sphinx</a>, sviluppato da Georg Brandl,
   29.65 +  originariamente scritto per il nuovo sistema di documentazione di 
   29.66 +  <a href="http://docs.python.org/dev/">Python</a>. Sphinx è basato su un
   29.67 +  reST, un linguaggio di markup molto comodo da usare.
   29.68 +
   29.69 +  Qui puoi leggere maggiori informazioni sul sistema di documentazione e su
   29.70 +  come puoi contribuire a renderlo migliore.
   29.71 +
   29.72 +
   29.73 +  <table class="contentstable" align="center" style="margin-left: 30px"><tr>
   29.74 +    <td width="50%">
   29.75 +      <p class="biglink"><a class="biglink" href="{{ pathto("contents") }}">Contenuti</a><br>
   29.76 +         <span class="linkdescr">per la documentazione completa</span></p>
   29.77 +      <p class="biglink"><a class="biglink" href="{{ pathto("search") }}">Search page</a><br>
   29.78 +         <span class="linkdescr">cerca nella documentazione - non ancora configurato</span></p>
   29.79 +    </td><td width="50%">
   29.80 +      <p class="biglink"><a class="biglink" href="{{ pathto("genindex")
   29.81 + }}">Indice Generale</a><br>
   29.82 +         <span class="linkdescr">comandi, voci utili....</span></p>
   29.83 +      <p class="biglink"><a class="biglink" href="http://sphinx.pocoo.org/rest.html">Markup</a><br>
   29.84 +         <span class="linkdescr">Sistema di markup usato (reST)</span></p>
   29.85 +    </td></tr>
   29.86 +  </table>
   29.87 +
   29.88 +  
   29.89 +{% endblock %}
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/docs/_templates/indexsidebar.html	Mon Apr 26 11:16:23 2010 +0200
    30.3 @@ -0,0 +1,17 @@
    30.4 +<h3>Download</h3>
    30.5 +
    30.6 +    ReteIsi offre una distribuzione live scaricabile dal sito di  
    30.7 +    <a href="http://download.argolinux.org/isi/">Argolinux</a>
    30.8 +
    30.9 +    L'ultima versione è la 
   30.10 +    <a href="http://download.argolinux.org/isi/newisi-libata-beta6.iso">
   30.11 +    newisi-libata-beta6</a> basata su etch.
   30.12 +
   30.13 +<h3>Domande? Problemi?</h3>
   30.14 +
   30.15 +<p>Iscriviti al <a href="http://groups.google.com/group/reteisi">
   30.16 +   Google group</a>:</p>
   30.17 +<form action="http://groups.google.com/group/reteisi/boxsubscribe" style="padding-left: 1em">
   30.18 +  <input type="text" name="email" value="your@email"/>
   30.19 +  <input type="submit" name="sub" value="Subscribe" />
   30.20 +</form>
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/docs/_templates/layout.html	Mon Apr 26 11:16:23 2010 +0200
    31.3 @@ -0,0 +1,17 @@
    31.4 +{% extends "!layout.html" %}
    31.5 +
    31.6 +{% block rootrellink %}
    31.7 +        <li><a href="{{ pathto('index') }}">ReteIsi </a> | </li>
    31.8 +        <li><a href="{{ pathto('contents') }}">Documentazione </a> »</li>
    31.9 +{% endblock %}
   31.10 +
   31.11 +{% block beforerelbar %}
   31.12 +QUI
   31.13 +<div style="background-color: white; text-align: left; padding: 10px 10px 15px 15px">
   31.14 +<a href="http://www.reteisi.org" ><img src="{{ pathto("img/reteisi.png",1) }}" border="0"></a>
   31.15 +</div>
   31.16 +{% endblock %}
   31.17 +
   31.18 +{# put the sidebar before the body #}
   31.19 +{% block sidebar1 %}{{ sidebar() }}{% endblock %}
   31.20 +{% block sidebar2 %}{% endblock %}
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/docs/_templates/macros.html	Mon Apr 26 11:16:23 2010 +0200
    32.3 @@ -0,0 +1,49 @@
    32.4 +{%- macro sidebar %}
    32.5 +      {%- if builder != 'htmlhelp' %}
    32.6 +      <div class="sidebar_sphinx">
    32.7 +        <div class="sidebarwrapper">
    32.8 +          {% if display_toc %}
    32.9 +            <h3>Contentenuti</h3>
   32.10 +            {{ toc }}
   32.11 +          {% endif %}
   32.12 +          {%- if prev %}
   32.13 +            <h4>Argomento precedente</h4>
   32.14 +            <p class="topless"><a href="{{ prev.link|e }}" title="previous chapter">{{ prev.title }}</a></p>
   32.15 +          {%- endif %}
   32.16 +          {%- if next %}
   32.17 +            <h4>Argomento successivo</h4>
   32.18 +            <p class="topless"><a href="{{ next.link|e }}" title="next chapter">{{ next.title }}</a></p>
   32.19 +          {%- endif %}
   32.20 +          {% if sourcename %}
   32.21 +            <h3>Questa Pagina</h3>
   32.22 +            <ul class="this-page-menu">
   32.23 +            {% if builder == 'web' %}
   32.24 +              <li><a href="#comments">Commenti ({{ comments|length }} so far)</a></li>
   32.25 +              <li><a href="{{ pathto('@edit/' + sourcename)|e }}">Suggest Change</a></li>
   32.26 +              <li><a href="{{ pathto('@source/' + sourcename)|e }}">Sorgente della pagina</a></li>
   32.27 +      
   32.28 +            {% elif builder == 'html' %}
   32.29 +              <li><a href="{{ pathto('_sources/' + sourcename, true)|e
   32.30 +              }}">Mostra Sorgente</a></li>
   32.31 +            {% endif %}
   32.32 +            </ul>
   32.33 +          {% endif %}
   32.34 +          {% if customsidebar %}
   32.35 +          {{ rendertemplate(customsidebar) }}
   32.36 +          {% endif %}
   32.37 +          {% if current_page_name != "search" %}
   32.38 +            <h3>{{ builder == 'web' and 'Keyword' or 'Quick' }} search</h3>
   32.39 +            <form class="search" action="{{ pathto('search') }}" method="get">
   32.40 +              <input type="text" name="q" size="18"> <input type="submit" value="Go">
   32.41 +              <input type="hidden" name="check_keywords" value="yes">
   32.42 +              <input type="hidden" name="area" value="default">
   32.43 +            </form>
   32.44 +            {% if builder == 'web' %}
   32.45 +            <p style="font-size: 90%">Enter a module, class or function name.</p>
   32.46 +            {% endif %}
   32.47 +          {% endif %}
   32.48 +        </div>
   32.49 +      </div>
   32.50 +      {%- endif %}
   32.51 +{%- endmacro %}
   32.52 +
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/docs/allegati/biblioteca.rst	Mon Apr 26 11:16:23 2010 +0200
    33.3 @@ -0,0 +1,10 @@
    33.4 +=====================================
    33.5 + Supporto alla biblioteca scolastica
    33.6 +=====================================
    33.7 +
    33.8 +
    33.9 +E` possibile installare u software di gestione della biblioteca (PBM) integrato
   33.10 +nel sistema.
   33.11 +
   33.12 +
   33.13 +DOCUMENTAZIONE DA SCRIVERE
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/docs/allegati/contents.rst	Mon Apr 26 11:16:23 2010 +0200
    34.3 @@ -0,0 +1,13 @@
    34.4 +==========
    34.5 + Allegati
    34.6 +==========
    34.7 +
    34.8 +.. toctree::
    34.9 +
   34.10 +   changelog
   34.11 +   glossario
   34.12 +   debug/contents
   34.13 +   netkit/intro
   34.14 +   masterizzare
   34.15 +   biblioteca
   34.16 +   
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/docs/allegati/debug/contents.rst	Mon Apr 26 11:16:23 2010 +0200
    35.3 @@ -0,0 +1,23 @@
    35.4 +Troubleshooting
    35.5 +=================
    35.6 +
    35.7 +In questo capitolo affrontiamo alcune linee guida per il debug di
    35.8 +problemi. Lo strumento principale è :command:`isi-checkup` che però si
    35.9 +limita a fare i test che è possibile fare **dall'interno** della macchina.
   35.10 +
   35.11 +Per i test che è necessario fare dall'esterno suggeriamo di usare macchine
   35.12 +virtuali se il vostro server è sufficientemente potente per permettervelo.
   35.13 +
   35.14 +Una cosa che suggeriamo è di avere su ogni server reale anche un server
   35.15 +vmware con un client per ogni SO che usate (W98, XP, ubuntu...). Vi sarà
   35.16 +facile connettervi anche da remoto, abilitare il client e fare le prove
   35.17 +necessarie in caso di intervento. Alternativamente dovrete chiedere di
   35.18 +lasciare acceso un server con VNC attivato: è molto meno pratico.
   35.19 +
   35.20 +.. toctree:: 
   35.21 +   
   35.22 +   isi-checkup
   35.23 +   vmware
   35.24 +   faq
   35.25 +   
   35.26 +
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/docs/allegati/debug/faq.rst	Mon Apr 26 11:16:23 2010 +0200
    36.3 @@ -0,0 +1,11 @@
    36.4 +=====
    36.5 + Faq
    36.6 +=====
    36.7 +::
    36.8 + 
    36.9 + + prima installazione
   36.10 +  D: Ho inserito il cd e riavviato la macchina ma il sistema non boota da cd.
   36.11 +  
   36.12 +  R: Verificare che il bios sia configurato correttamente per boot da cdrom. 
   36.13 +  Spesso l'impostazione default è di avviare direttamente dal primo disco
   36.14 +
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/docs/allegati/debug/isi-checkup.rst	Mon Apr 26 11:16:23 2010 +0200
    37.3 @@ -0,0 +1,61 @@
    37.4 +Server
    37.5 +------
    37.6 +
    37.7 +E` appena stato terminato lo strumento :command:`isi-checkup` che renderà
    37.8 +assolutamente semplice fare ogni controllo che possa essere fatto
    37.9 +dall'interno della macchina per via di un :ref:`test`. Sarà facile per
   37.10 +intendersi verificare se una password è valida o se gli utenti hanno i
   37.11 +permessi corretti, mentre non sarà possibile verificare se un client riesce
   37.12 +a fare il :ref:`join <join>`
   37.13 +
   37.14 +
   37.15 +.. _test:
   37.16 +
   37.17 +test
   37.18 +----
   37.19 +
   37.20 +Per test si intende un piccolo codice (una script bash o una funzione in
   37.21 +python) che effettua un singolo controllo e ritorna un valore chiaro:
   37.22 +
   37.23 +* per una script di shell: 0 in caso il test sia passato e un valore
   37.24 +  positivo se il test non è passato
   37.25 +
   37.26 +* per una funzione in python: True se il test è passato ed un errore
   37.27 +  opportuno (ereditato da ``IsiCheckupError``) in caso contrario
   37.28 +
   37.29 +sarà possibile chiamare :command:`isi-checkup` in 3 modi:
   37.30 +
   37.31 +1. ``isi-checkup -s``: checkup dei test di sistema
   37.32 +2. ``isi-checkup -u user``: checkup per un singolo user
   37.33 +3. ``isi-checkup -a``: check di tutti gli utenti (lungo)
   37.34 +
   37.35 +Esempio bash
   37.36 +~~~~~~~~~~~~
   37.37 +:file:`/etc/isi/checkup/tests-enabled/test-smbd.sh` ::
   37.38 +
   37.39 +  #!/bin/bash
   37.40 +
   37.41 +  if pgrep -x smbd ; then
   37.42 +     exit 0
   37.43 +  else
   37.44 +     echo "il processo smbd non sta girando"
   37.45 +     exit 1
   37.46 +  fi
   37.47 +
   37.48 +Interoperabilità
   37.49 +----------------
   37.50 +
   37.51 +edubuntu + dominio isi
   37.52 +~~~~~~~~~~~~~~~~~~~~~~
   37.53 +
   37.54 + * gli utenti non sentono i suoni
   37.55 + * gli utenti non montano la chiavetta e ricevono il seguente messaggio 
   37.56 +   d'errore: HAL....
   37.57 +
   37.58 +windows + dominio
   37.59 +~~~~~~~~~~~~~~~~~
   37.60 +
   37.61 + * win98 + dominio isi
   37.62 + * win2k + dominio isi
   37.63 + * xp + dominio isi
   37.64 +    
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/docs/allegati/debug/vmware.rst	Mon Apr 26 11:16:23 2010 +0200
    38.3 @@ -0,0 +1,54 @@
    38.4 +
    38.5 +Vmware Server
    38.6 +=============
    38.7 +
    38.8 +Vmware è un server di virtualizzazione. La licenza è (verificare) e quindi è
    38.9 +possibile utilizzarlo anche a scuola. Ne apprezzo la struttura in quanto è
   38.10 +separato fra un server ed un client e quindi è possibile usarlo da remoto,
   38.11 +fare partire e fermare le macchine virtuali e quindi rende possibile fare
   38.12 +partire macchie virtuali su server che non siano dotati di server X.
   38.13 +
   38.14 +Installazione
   38.15 +-------------
   38.16 +
   38.17 +Il CD di Argo ha già tutto quanto serve per installare vmware-server tranne
   38.18 +vmware stesso.
   38.19 +
   38.20 +Per chi invece debba installarlo in una distribuzione debian semplice o in Argo
   38.21 +probabilmente mancheranno alcune dipendenze::
   38.22 +
   38.23 + apt-get install libx11-6 libxtst6 libxext6 libxt6 libice6 libsm6 libxrender1
   38.24 +
   38.25 +L'installazione è composta da pochi passi:
   38.26 +
   38.27 +1. scompattazione della immagine scaricata dal sito hyyp://www.vmware.com
   38.28 +2. ./vmware-install.pl
   38.29 +
   38.30 +   Questa fase pone alcune domande: si può rispondere accettando i default,
   38.31 +   a tutte le domande, compresa la configurazione della rete, tranne a
   38.32 +   quelle in cui chiede il percorso del compilatore per le API perl di
   38.33 +   Vmware (che non vi servono).
   38.34 +
   38.35 +   Nel CD Reteisi non c'è compilatore ma c'è un modulo per vmware quindi non
   38.36 +   è necessario. L installatore di Vmware se ne accorge e non vi chiede di
   38.37 +   compilarlo.
   38.38 +
   38.39 +3. installazione del sistema operativo nella macchina virtualizzata. 
   38.40 +
   38.41 +   Per fare questo in genere partirete da un CD o da una immagine iso. In
   38.42 +   questa ultima ipotesi non avete neanche bisogno di
   38.43 +   masterizzarla: configurate il CD della macchina (doppio click sulla icona
   38.44 +   del CD) perché usi l'immagine iso *come cd*
   38.45 +
   38.46 +
   38.47 +Setup
   38.48 +-----
   38.49 +
   38.50 +
   38.51 +Personalmente (Sandro) facendo molti interventi da remoto nelle scuole, lo
   38.52 +sto usando per testare la rete su macchine sicuramente ben configurate. 
   38.53 +
   38.54 +Quando installo un laboratorio, installo anche una macchina client in
   38.55 +vmware. Nel caso insorgano problemi posso usare quella macchina (virtuale)
   38.56 +per prove da remoto.
   38.57 +
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/docs/allegati/glossario.rst	Mon Apr 26 11:16:23 2010 +0200
    39.3 @@ -0,0 +1,91 @@
    39.4 +===============
    39.5 + MiniGlossario
    39.6 +===============
    39.7 +
    39.8 +editor
    39.9 +======
   39.10 +
   39.11 +.. glossary::
   39.12 +
   39.13 +   nano
   39.14 +     editor considerano normalmente molto semplice da usare
   39.15 +
   39.16 +   jmacs
   39.17 +     editor molto leggero, facile da usare secondo me (Sandro) per il fatto
   39.18 +     che ha gli stessi comandi di :term:`emacs`
   39.19 +  
   39.20 +   emacs
   39.21 +     il migliore degli editor, senza dubbi... almeno se fate programmazione,
   39.22 +     siete disposti ad essere di parte e.... siete dalla mia parte! \*:-)
   39.23 +
   39.24 +concetti
   39.25 +========
   39.26 +
   39.27 +.. glossary::
   39.28 +
   39.29 +
   39.30 +   raid
   39.31 +     sistema di uso di più dischi che vengono visti dal sistema come una sola
   39.32 +     unità allo scopo di avere una ridondanza dei dati (raid1, raid5, raid6) o
   39.33 +     una maggiore velocità di accesso al disco (raid0)
   39.34 +  
   39.35 +    
   39.36 +   raid1
   39.37 +     sistema raid che mette i dischi in mirroring. I dati vengono
   39.38 +     scritti in parallelo su due (o più) dischi. La lettura risulta più
   39.39 +     rapida che con un solo disco. In caso di guasto di un disco, il sistema
   39.40 +     esclude il disco dall'array e permette di continuare il normale
   39.41 +     lavoro. A questo punto è necessario sostituire il disco. Può essere
   39.42 +     implementato sia via software che via hardware.
   39.43 +
   39.44 +
   39.45 +   network
   39.46 +     maschera di rete.
   39.47 +   
   39.48 +       .. seealso:: http://it.wikipedia.org/wiki/Subnet_mask
   39.49 +
   39.50 +   gateway   
   39.51 +     macchina o router che permette di congiungere due reti. Spesso una rete
   39.52 +     interna ad 
   39.53 +
   39.54 +
   39.55 +
   39.56 +comandi di sistema
   39.57 +==================
   39.58 +
   39.59 +.. glossary::
   39.60 +
   39.61 +   ifconfig
   39.62 +     comando per impostare l'IP della interfaccia di rete::
   39.63 +   
   39.64 +       ifconfig eth0 192.168.5.1
   39.65 +
   39.66 +
   39.67 +   route
   39.68 +     comando di sistema che permette di impostare un instradamento, ovvero di
   39.69 +     dire al kernel che strada devono prendere i pacchetti per poter
   39.70 +     raggiungere una destinazione, il comando::
   39.71 +  
   39.72 +       route add -net default gw 192.168.5.254
   39.73 +  
   39.74 +     imposta come destinazione di default l'IP 192..168.5.254
   39.75 +  
   39.76 +   df
   39.77 +     disk free. Mostra quali partizioni sono montate e quanto spazio libero
   39.78 +     hanno. Molto comoda l'opzione ``-h`` che restituisce i dati in formato
   39.79 +     _human_ (Gbytes e non blocchi)
   39.80 +
   39.81 +   ldapsearch
   39.82 +     client ldap. l'uso è sostanzialmente limitato al debug. Ad esempio::
   39.83 +
   39.84 +       ldapsearch -xLLL uid=Administrator
   39.85 +
   39.86 +     dovrebbe sempre restituire i dati dell'utente Administrator in formato 
   39.87 +     ``ldif``
   39.88 +
   39.89 +   getent
   39.90 +     ``getent passwd``: restituisce tutti gli utenti del sistema, sia reali
   39.91 +     che ldap, secondo quanto definito nel file :file:`/etc/nsswitch`
   39.92 +     
   39.93 +     ``getent group``: analogo al precedente restituisce i gruppi
   39.94 +
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/docs/allegati/masterizzare.rst	Mon Apr 26 11:16:23 2010 +0200
    40.3 @@ -0,0 +1,26 @@
    40.4 +.. _masterizzare_iso:
    40.5 +
    40.6 +==========================
    40.7 + Masterizzare le immagini
    40.8 +==========================
    40.9 +
   40.10 +
   40.11 +Masterizzare un'immagine ISO da Windows
   40.12 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40.13 +
   40.14 ++ nero ...
   40.15 ++ altri programmi
   40.16 +
   40.17 +Masterizzare un'immagine ISO da Linux
   40.18 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   40.19 +
   40.20 +Aprire un terminale e posizionarsi nella directory contenente il file iso
   40.21 +scaricato. Dopo aver inserito un cd vuoto, lanciare il comando::
   40.22 +
   40.23 +        cdrecord -v nomefile.iso
   40.24 +
   40.25 +Qualora non fosse presente sul sistema in uso il programma *cdrecord*, lo si
   40.26 +potrà installare lanciando come super-utente *root* il seguente comando::
   40.27 +
   40.28 +        apt-get install cdrecord
   40.29 +
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/docs/conf.py	Mon Apr 26 11:16:23 2010 +0200
    41.3 @@ -0,0 +1,172 @@
    41.4 +# -*- coding: utf-8 -*-
    41.5 +#
    41.6 +# Sphinx documentation build configuration file, created by
    41.7 +# sphinx-quickstart.py on Sat Mar  8 21:47:50 2008.
    41.8 +#
    41.9 +# This file is execfile()d with the current directory set to its containing dir.
   41.10 +#
   41.11 +# The contents of this file are pickled, so don't put values in the namespace
   41.12 +# that aren't pickleable (module imports are okay, they're removed automatically).
   41.13 +#
   41.14 +# All configuration values have a default value; values that are commented out
   41.15 +# serve to show the default value.
   41.16 +
   41.17 +import sys, os, re
   41.18 +cur_dir = os.path.dirname(__file__)
   41.19 +sys.path += [cur_dir]
   41.20 +sys.path += [os.path.dirname(cur_dir)]
   41.21 +import docusage
   41.22 +extensions = ['sphinx.ext.autodoc', 'docusage']
   41.23 +
   41.24 +# If your extensions are in another directory, add it here.
   41.25 +#sys.path.append(os.path.dirname(__file__))
   41.26 +
   41.27 +# General configuration
   41.28 +# ---------------------
   41.29 +
   41.30 +# Add any Sphinx extension module names here, as strings. They can be extensions
   41.31 +# coming with Sphinx (named 'sphinx.addons.*') or your custom ones.
   41.32 +#extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest']
   41.33 +
   41.34 +# Add any paths that contain templates here, relative to this directory.
   41.35 +templates_path = ['_templates']
   41.36 +language="it"
   41.37 +# The suffix of source filenames.
   41.38 +source_suffix = '.rst'
   41.39 +
   41.40 +# The master toctree document.
   41.41 +master_doc = 'contents'
   41.42 +
   41.43 +# General substitutions.
   41.44 +project = 'ReteIsi'
   41.45 +#copyright = '2008, Sandro Dentella, Max Mancini'
   41.46 +
   41.47 +# The default replacements for |version| and |release|, also used in various
   41.48 +# other places throughout the built documents.
   41.49 +#
   41.50 +# The short X.Y version.
   41.51 +version = '0.1'
   41.52 +# The full version, including alpha/beta/rc tags.
   41.53 +release = '0.1'
   41.54 +
   41.55 +# There are two options for replacing |today|: either, you set today to some
   41.56 +# non-false value, then it is used:
   41.57 +#today = ''
   41.58 +# Else, today_fmt is used as the format for a strftime call.
   41.59 +today_fmt = '%B %d, %Y'
   41.60 +
   41.61 +# List of documents that shouldn't be included in the build.
   41.62 +#unused_docs = []
   41.63 +
   41.64 +# If true, '()' will be appended to :func: etc. cross-reference text.
   41.65 +#add_function_parentheses = True
   41.66 +
   41.67 +# If true, the current module name will be prepended to all description
   41.68 +# unit titles (such as .. function::).
   41.69 +#add_module_names = True
   41.70 +
   41.71 +show_authors = True
   41.72 +
   41.73 +# The name of the Pygments (syntax highlighting) style to use.
   41.74 +pygments_style = 'sphinx'
   41.75 +
   41.76 +
   41.77 +# Options for HTML output
   41.78 +# -----------------------
   41.79 +
   41.80 +# The style sheet to use for HTML and HTML Help pages. A file of that name
   41.81 +# must exist either in Sphinx' static/ path, or in one of the custom paths
   41.82 +# given in html_static_path.
   41.83 +#html_style = 'sphinxdoc.css'
   41.84 +html_style = 'reteisi.css'
   41.85 +
   41.86 +html_logo = 'reteisi.png'
   41.87 +
   41.88 +# Add any paths that contain custom static files (such as style sheets) here,
   41.89 +# relative to this directory. They are copied after the builtin static files,
   41.90 +# so a file named "default.css" will overwrite the builtin "default.css".
   41.91 +html_static_path = ['_static']
   41.92 +
   41.93 +# If not '', a 'Last updated on:' timestamp is inserted at every page bottom,
   41.94 +# using the given strftime format.
   41.95 +html_last_updated_fmt = '%b %d, %Y'
   41.96 +
   41.97 +#html_logo = 'reteisi.png'
   41.98 +
   41.99 +# If true, SmartyPants will be used to convert quotes and dashes to
  41.100 +# typographically correct entities.
  41.101 +#html_use_smartypants = True
  41.102 +
  41.103 +# Content template for the index page.
  41.104 +html_index = 'index.html'
  41.105 +
  41.106 +# Custom sidebar templates, maps page names to templates.
  41.107 +html_sidebars = {'index': 'indexsidebar.html'}
  41.108 +
  41.109 +# Additional templates that should be rendered to pages, maps page names to
  41.110 +# templates.
  41.111 +html_additional_pages = {'index': 'index.html'}
  41.112 +
  41.113 +# If true, the reST sources are included in the HTML build as _sources/<name>.
  41.114 +#html_copy_source = True
  41.115 +
  41.116 +# Output file base name for HTML help builder.
  41.117 +htmlhelp_basename = 'Sphinxdoc'
  41.118 +
  41.119 +
  41.120 +# Options for LaTeX output
  41.121 +# ------------------------
  41.122 +
  41.123 +# The paper size ('letter' or 'a4').
  41.124 +latex_paper_size = 'a4'
  41.125 +
  41.126 +# The font size ('10pt', '11pt' or '12pt').
  41.127 +latex_font_size = '10pt'
  41.128 +
  41.129 +# Grouping the document tree into LaTeX files. List of tuples
  41.130 +# (source start file, target name, title, author, document class [howto/manual]).
  41.131 +latex_documents = [('contents', 'reteisi.tex', 'Documentazione ReteIsi',
  41.132 +                    'Sandro Dentella, Massimo Mancini, Simone Castellazzi',
  41.133 +                    'manual')]
  41.134 +
  41.135 +# Additional stuff for the LaTeX preamble.
  41.136 +#latex_preamble = ''
  41.137 +
  41.138 +# Documents to append as an appendix to all manuals.
  41.139 +#latex_appendices = []
  41.140 +
  41.141 +automodule_skip_lines = 4
  41.142 +
  41.143 +
  41.144 +# Extension interface
  41.145 +# -------------------
  41.146 +
  41.147 +from sphinx import addnodes
  41.148 +
  41.149 +dir_sig_re = re.compile(r'\.\. ([^:]+)::(.*)$')
  41.150 +
  41.151 +def parse_directive(env, sig, signode):
  41.152 +    if not sig.startswith('.'):
  41.153 +        dec_sig = '.. %s::' % sig
  41.154 +        signode += addnodes.desc_name(dec_sig, dec_sig)
  41.155 +        return sig
  41.156 +    m = dir_sig_re.match(sig)
  41.157 +    if not m:
  41.158 +        signode += addnodes.desc_name(sig, sig)
  41.159 +        return sig
  41.160 +    name, args = m.groups()
  41.161 +    dec_name = '.. %s::' % name
  41.162 +    signode += addnodes.desc_name(dec_name, dec_name)
  41.163 +    signode += addnodes.desc_classname(args, args)
  41.164 +    return name
  41.165 +
  41.166 +
  41.167 +def parse_role(env, sig, signode):
  41.168 +    signode += addnodes.desc_name(':%s:' % sig, ':%s:' % sig)
  41.169 +    return sig
  41.170 +
  41.171 +
  41.172 +def setup(app):
  41.173 +    app.add_description_unit('directive', 'dir', 'pair: %s; directive', parse_directive)
  41.174 +    app.add_description_unit('role', 'role', 'pair: %s; role', parse_role)
  41.175 +    app.add_description_unit('confval', 'confval', 'pair: %s; configuration value')
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/docs/contents.rst	Mon Apr 26 11:16:23 2010 +0200
    42.3 @@ -0,0 +1,22 @@
    42.4 +.. ReteIsi documentation master file, created by sphinx-quickstart on Thu Apr 10 21:38:49 2008.
    42.5 +   You can adapt this file completely to your liking, but it should at least
    42.6 +   contain the root `toctree` directive.
    42.7 +
    42.8 +=================================================
    42.9 + Benvenuti nel sito di documentazione di ReteIsi
   42.10 +=================================================
   42.11 +
   42.12 +
   42.13 +.. toctree::
   42.14 +   :maxdepth: 2
   42.15 +   
   42.16 +   progetto/contents
   42.17 +   install/contents
   42.18 +   gestione/contents
   42.19 +   allegati/contents
   42.20 +
   42.21 +Indices and tables
   42.22 +==================
   42.23 +
   42.24 +* :ref:`search`
   42.25 +
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/docs/docusage.py	Mon Apr 26 11:16:23 2010 +0200
    43.3 @@ -0,0 +1,121 @@
    43.4 +# -*- coding: utf-8 -*-
    43.5 +'''
    43.6 +This module provides the ``includesh`` directive. It is implemented by
    43.7 +:class:`IncludeShellDirective` class.
    43.8 +'''
    43.9 +import os
   43.10 +import re
   43.11 +import types
   43.12 +import tempfile
   43.13 +
   43.14 +# Import required docutils modules
   43.15 +from sphinx.util.compat import Directive
   43.16 +
   43.17 +from docutils import io, nodes, statemachine, utils
   43.18 +from docutils.parsers.rst import directives
   43.19 +from docutils.parsers.rst.directives.misc import Include
   43.20 +# from docutils.parsers.rst.directives.tables import ListTable
   43.21 +
   43.22 +import sphinx
   43.23 +
   43.24 +
   43.25 +#---------------------------------------------------------#
   43.26 +class IncludePyProgramDirective(Include):
   43.27 +  '''
   43.28 +  IncludeShellDirective implements the directive. The class
   43.29 +  is registered as a directive in :func:`rusty.includesh.setup`
   43.30 +  '''
   43.31 +  required_arguments = 1
   43.32 +  optional_arguments = 0
   43.33 +  has_content = None
   43.34 +  node_class = None
   43.35 +  option_spec = {
   43.36 +      'verbatim': directives.flag,
   43.37 +      'docstring': directives.unchanged,
   43.38 +  }
   43.39 +
   43.40 +  #---------------------------------------------------------#
   43.41 +  def run(self):
   43.42 +    '''
   43.43 +    Called automatically by the docutils.
   43.44 +    '''
   43.45 +
   43.46 +    # Take the current inclusion file, read it and save in
   43.47 +    # temporary location where the actual ``Include`` directive
   43.48 +    # can read it
   43.49 +
   43.50 +    # This part is taken from docutils
   43.51 +    if not self.state.document.settings.file_insertion_enabled:
   43.52 +      raise self.warning('"%s" directive disabled.' % self.name)
   43.53 +
   43.54 +    source = self.state_machine.input_lines.source(
   43.55 +      self.lineno - self.state_machine.input_offset - 1)
   43.56 +
   43.57 +    source_dir = os.path.dirname(os.path.abspath(source))
   43.58 +    path = directives.path(self.arguments[0])
   43.59 +
   43.60 +    if path.startswith('<') and path.endswith('>'):
   43.61 +      path = os.path.join(self.standard_include_path, path[1:-1])
   43.62 +
   43.63 +    path = os.path.normpath(os.path.join(source_dir, path))
   43.64 +    path = utils.relative_path(None, path)
   43.65 +
   43.66 +    try:
   43.67 +      self.state.document.settings.record_dependencies.add(path)
   43.68 +      include_file = open(path, 'r+b')
   43.69 +    except IOError, error:
   43.70 +      raise self.severe('Problems with "%s" directive path:\n%s: %s.'
   43.71 +                        % (self.name, error.__class__.__name__, error))
   43.72 +
   43.73 +    try:
   43.74 +      include_text = include_file.read()
   43.75 +    except UnicodeError, error:
   43.76 +      raise self.severe(
   43.77 +        'Problem with "%s" directive:\n%s: %s'
   43.78 +        % (self.name, error.__class__.__name__, error))
   43.79 +
   43.80 +    if not 'docstring' in self.options:
   43.81 +      self.options['docstring'] = '__doc__'
   43.82 +      
   43.83 +    self.arguments[0] = self.get_docstring_file(path)
   43.84 +
   43.85 +    return Include.run(self)
   43.86 +
   43.87 +  def get_docstring_file(self, path):
   43.88 +    p = Program(path)
   43.89 +    tfd, target_path = tempfile.mkstemp(prefix='sd-')
   43.90 +    f = open(target_path, 'wb')
   43.91 +    text = p.docstring
   43.92 +    
   43.93 +    if 'verbatim' in self.options:
   43.94 +      f.write('::\n')
   43.95 +      pat = re.compile('^', re.MULTILINE)
   43.96 +      text = re.sub(pat, "  ", text )      
   43.97 +
   43.98 +    f.write("%s\n" % text)
   43.99 +    return target_path
  43.100 +
  43.101 +
  43.102 +def setup(app):
  43.103 +  '''
  43.104 +  Extension setup, called by Sphinx
  43.105 +  '''
  43.106 +  # Sphinx 5 support
  43.107 +  if '5' in sphinx.__version__.split('.'):
  43.108 +    app.add_directive('docusage', IncludePyProgramDirective, 0, (0,0,0))
  43.109 +  else:
  43.110 +    app.add_directive('docusage', IncludePyProgramDirective)
  43.111 +
  43.112 +class Program(object):
  43.113 +
  43.114 +    DOCSTRING = re.compile(
  43.115 +        r'''
  43.116 +        """(?P<docstring>.*?)"""
  43.117 +        ''',
  43.118 +        re.VERBOSE|re.DOTALL
  43.119 +        )
  43.120 +    def __init__(self, filename):
  43.121 +
  43.122 +        self.text = open(filename).read()
  43.123 +        self.docstring = self.DOCSTRING.search(self.text).group('docstring')
  43.124 +    
    44.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    44.2 +++ b/docs/gestione/comandi_isi.rst	Mon Apr 26 11:16:23 2010 +0200
    44.3 @@ -0,0 +1,339 @@
    44.4 +.. _gestione_comandi_isi:
    44.5 +
    44.6 +I comandi isi*
    44.7 +==============
    44.8 +
    44.9 +Come operare sul server
   44.10 +-----------------------
   44.11 +
   44.12 +E` possibile gestire gli utenti per mezzo dei comandi presentati di seguito
   44.13 +o tramite l'interfaccia web.
   44.14 +
   44.15 +comandi isi2* e isi*
   44.16 +--------------------
   44.17 +
   44.18 +Con la versione 2.0 di isi, tutti i comandi sono stati riscritti in
   44.19 +Python. In un momento di transizione ci sono state due seria di comandi isi* ed isi2*
   44.20 +ora gli unici comandi non hanno lídentificativo '2' ma sono quelli in python.
   44.21 +
   44.22 +Con questa release gli utenti vengono gestiti senza usare i tools
   44.23 +smbldap-tools, il che permette in generale una velocità maggiore di
   44.24 +esecuzione ed un controllo molto più elevato degli errori.
   44.25 +
   44.26 +Gestione utenti
   44.27 +---------------
   44.28 +
   44.29 +.. index:: isi-adduser, creazione utenti;
   44.30 +  
   44.31 +.. _isi-adduser:
   44.32 +
   44.33 +isi-adduser
   44.34 +~~~~~~~~~~~~
   44.35 +
   44.36 +.. docusage:: ../../usr/sbin/isi-adduser
   44.37 +   :verbatim:
   44.38 +
   44.39 +Utility per aggiugere utenti. Puo' essere usata sia interattivamente sia in
   44.40 +modo script leggendo da file (opzione ``-f``) che passando la definizione dell'
   44.41 +alunno da riga di comando.  
   44.42 +
   44.43 +.. note:: Formato file/formato dati
   44.44 +
   44.45 +   Non bisogna confondete il formato dei dati (la successione delle colonne)
   44.46 +   con il formato del file (.csv o .xls). Nel gergo comune entrambi sono
   44.47 +   noti come "formato di file"
   44.48 +
   44.49 +   ``csv`` (comma separated values) è un formato di testo in cui le colonne
   44.50 +   sono separate da "," o da altri caratteri (";" nel nostro caso, "Tab" a
   44.51 +   volte). Per editare un file .csv si può usare ``opencalc`` o anche un editor
   44.52 +   di testo qualunque.
   44.53 +
   44.54 +   ``xls`` è un formato binario proprietario della suite Office di
   44.55 +   Microsoft, deve essere editto con un programma come Excel, opencalc della
   44.56 +   suite OpenOffice o gnumeric. Il motivo per cui lo supportiamo qui è che
   44.57 +   il programma ministeriale ``Sissi`` esporta i dati unicamnete in ``.xls``
   44.58 +
   44.59 +   La successione delle colonne determina il modo in cui il programma
   44.60 +   interpreta i dati. E` una cosa completamente distinta (ed aggiuntiva)
   44.61 +   rispetto l formato del file, e sono descritti in modo completo di seguito.
   44.62 +
   44.63 +
   44.64 +
   44.65 +
   44.66 +Formato file .isi
   44.67 +.................
   44.68 +
   44.69 +Il formato della riga deve essere almeno::
   44.70 +
   44.71 +  logname;cognome;nome;gruppo_principale;classe;CF;password  
   44.72 +
   44.73 +possono essere accodati altri campi rispettando il seguente formato::
   44.74 +
   44.75 +  sesso;indirizzo;cap;comune;provincia;telefono  
   44.76 +
   44.77 +ogni campo puo' essere vuoto tranne ``logname``, ``cognome`` e ``gruppo 
   44.78 +principale`` che deve essere uno fra: admins, alunni, docenti, esterni,
   44.79 +segreteria, ata.  La classe ha senso per *alunni* ed *esterni* e verra'
   44.80 +usata per connettere la risorsa classe.
   44.81 +
   44.82 +Aggiornamenti
   44.83 +.............
   44.84 +
   44.85 +Se viene usata l'opzione ``--update-users`` ogni utente già esistente viene
   44.86 +semplicemente ridefinito, questa è la situazione normale che avviene ad
   44.87 +inizio anno. Se non viene usata questa opzione il programma esce con un errore.
   44.88 +
   44.89 +Ogni riga che inizi  con ``-`` corrisponde ad un utente da eliminare. Esempi::
   44.90 +
   44.91 +  -a_dntlsn
   44.92 +  -a_test;Alunno;Test
   44.93 +  d_test;Docente;test;docenti;;CF;isi
   44.94 +
   44.95 +Aggiunge un utente d_test con password *isi* ed elimina due utenti con
   44.96 +logname a_dntlsn e a_test.
   44.97 +
   44.98 +L'opzione ``-z`` indica di eliminare la home degli utenti da cancellare,
   44.99 +mentre l'opzione ``--home tar`` (default) crea un file .tgz della home.
  44.100 +
  44.101 +La forma ``isi-adduser user gruppo`` aggiunge l'utente al gruppo. Ogni nuovo
  44.102 +utente viene aggiunto ad alcuni gruppi definiti in
  44.103 +``/etc/isi/defaults.py`` nella variabile EXTRA_GROUPS: per default sono
  44.104 +gruppi necessari per i sistemi LTSP ``plugdev`` e ``audio``::
  44.105 +
  44.106 +
  44.107 +  EXTRA_GROUPS = ['plugdev','audio']
  44.108 +
  44.109 +Gestione password
  44.110 +.................
  44.111 +
  44.112 +nel momento dell'inserimento è possibile sovrascrivere la password
  44.113 +eventualmente presente nel file in formato ``.isi`` con le opzioni di
  44.114 +comando:
  44.115 +
  44.116 +:--default-passwd, -p:  ogni utente avrà quella password assegnata
  44.117 +
  44.118 +:--use-cf, -C: usa i primi o caratteri del CF con la prima lettera maiuscola
  44.119 +
  44.120 +:--passwd-random, -P: viene generata una password randomica di 8 caratteri
  44.121 +
  44.122 +:--force-change-passwd, -B: viene imposto il cambio password al primo
  44.123 +   collegamento. Questo funziona sotto Windows ma non viene forzato con linux
  44.124 +   in quanto l'interfaccia grafica GDM non permette di fare il login e quindi
  44.125 +   non si riuscirebbe ad arrivare al cambio password... Accettiamo suggerimenti
  44.126 +
  44.127 +
  44.128 +isi-deluser
  44.129 +~~~~~~~~~~~~
  44.130 +.. docusage:: ../../usr/sbin/isi-deluser
  44.131 +   :verbatim:
  44.132 +
  44.133 +
  44.134 +isi-passwd
  44.135 +~~~~~~~~~~~
  44.136 +
  44.137 +.. docusage:: ../../usr/bin/isi-passwd
  44.138 +   :verbatim:
  44.139 +
  44.140 +
  44.141 +isi-groupcat
  44.142 +~~~~~~~~~~~~~
  44.143 +.. docusage:: ../../usr/sbin/isi-groupcat
  44.144 +   :verbatim:
  44.145 +
  44.146 +
  44.147 +isi-alulink
  44.148 +~~~~~~~~~~~~~
  44.149 +.. docusage:: ../../usr/sbin/isi-alulink
  44.150 +   :verbatim:
  44.151 +
  44.152 +
  44.153 +isi-classe
  44.154 +~~~~~~~~~~~~~
  44.155 +.. docusage:: ../../usr/sbin/isi-classe
  44.156 +   :verbatim:
  44.157 +
  44.158 +
  44.159 +isi-computer
  44.160 +~~~~~~~~~~~~~
  44.161 +.. docusage:: ../../usr/sbin/isi-computer
  44.162 +   :verbatim:
  44.163 +
  44.164 +isi-quota
  44.165 +~~~~~~~~~~~~~
  44.166 +.. docusage:: ../../usr/sbin/isi-quota
  44.167 +   :verbatim:
  44.168 +
  44.169 +isi-wlg
  44.170 +~~~~~~~~~~~~~
  44.171 +.. docusage:: ../../usr/sbin/isi-wlg
  44.172 +   :verbatim:
  44.173 +
  44.174 +isi-perms
  44.175 +~~~~~~~~~~
  44.176 +
  44.177 +.. docusage:: ../../usr/sbin/isi-perms
  44.178 +   :verbatim:
  44.179 +
  44.180 +.. _isi-convert:
  44.181 +
  44.182 +isi-convert
  44.183 +~~~~~~~~~~~
  44.184 +.. docusage:: ../../usr/sbin/isi-convert
  44.185 +   :verbatim:
  44.186 +
  44.187 +A differenza di ``isi-prepusers``, ``isi-convert`` non genera file se non
  44.188 +richiesto. Analizza un file in :ref:`formato_sissi` (.csv o .xls), ovvero con colonne di nomi 
  44.189 +standard e compone un nome di login per l'utente, aggiungendo un progressivo se trova
  44.190 +doppioni. E` possibile generare nomi con schemi differenti:
  44.191 +
  44.192 +  :name: il logname viene composta con *nome.cognome*
  44.193 +         (alessandro.dentella). Opzione ``--name``
  44.194 +
  44.195 +  :cf: il logname viene compostao come identificativo gruppo seguito dal
  44.196 +       codice fiscale (a_dntlsn63d07). Opzione  ``--use-cf``
  44.197 +
  44.198 +  :id-name: il logname viene composto da identificativo gruppo seguito da
  44.199 +       nome.cognome (d_sandro.dentella). Opzion e ``--id-name``
  44.200 +
  44.201 +E possibile ottenere come output l'elenco degli utenti che verranno
  44.202 +eliminati (opt: ``--delete`` o quello degli utenti rinominati -usando un
  44.203 +progressivo- a causa di colisione con nomi esistenti (opt: ``--rename``).
  44.204 +
  44.205 +Il formato esteso è usato solo nelle scuole dove viene gestita anche la
  44.206 +biblioteca. In queste scuole è necessario che il file Sissi abbia anche i
  44.207 +dati di residenza e telefono.
  44.208 +
  44.209 +Il file prodotto da isi-convert può essere usato come input per
  44.210 +:ref:`isi-adduser`. 
  44.211 +
  44.212 +``isi-convert`` accetta come input file con dati in due formati differenti:
  44.213 +
  44.214 +:sissi: il programma di gestione alunni usato da molte scuole italiane
  44.215 +:isi:   il formato ufficiale di ReteISI. l'ultilità di convertire da .isi a
  44.216 +   .isi è di potere:
  44.217 +
  44.218 +   * gestire nomi doppi
  44.219 +   * usare file di input in formato .xls
  44.220 +
  44.221 +.. _formato_sissi:
  44.222 +
  44.223 +formato sissi
  44.224 +.............
  44.225 +
  44.226 +Il formato "Sissi" è basato su alcune colonne con nomi standard, il nome
  44.227 +della colonna deve rispettare anche nelle maiuscole/Minuscole quanto sotto
  44.228 +riportato, ed è per altro il default di Sissi.:
  44.229 +
  44.230 +:Anno di corso:  es.:  3  per la terza classe
  44.231 +:Sezione:  es.: A
  44.232 +:Corso:  es.: Programmatori Mercurio
  44.233 +:Cognome: ovvio
  44.234 +:Nome: ovvio
  44.235 +:Codice fiscale: ovvio
  44.236 +
  44.237 +Da una tabella con queste intestazioni è possibile generare la classe di
  44.238 +appartenenza solo in presenza di un opportuno file di corrispondenza fra il
  44.239 +Corso e la sigla che si vuole usare, questo file è
  44.240 +``/etc/isi/sissi-tabcorsi``::
  44.241 +
  44.242 +  progetto cinque = geo
  44.243 +  geometri        = geo
  44.244 +  indirizzo giuridico economico aziendale = ige
  44.245 +  programmatori mercurio = pro
  44.246 +
  44.247 +
  44.248 +In questo esempio la classe di appartenenza dell'alunno è ``pro3a``
  44.249 +
  44.250 +
  44.251 +isi-tools
  44.252 +~~~~~~~~~~~
  44.253 +
  44.254 +.. docusage:: ../../usr/sbin/isi-tools
  44.255 +   :verbatim:
  44.256 +
  44.257 +isi-user
  44.258 +~~~~~~~~~~~
  44.259 +
  44.260 +Il programma ``isi-user`` fa alcune funzioni che sono state reimplementate
  44.261 +nella interfaccia web. Per questioni di usabilità e di manutenzione del
  44.262 +codice raccomandiamo di usare l'interfaccia web.
  44.263 +
  44.264 +Importare utenti da sissi
  44.265 +~~~~~~~~~~~~~~~~~~~~~~~~~
  44.266 +
  44.267 +.. note:: 
  44.268 +
  44.269 +   le operazioni di importazione utenti da Sissi erano fatte nelle release
  44.270 +   precedenti da ``isi-prepusers``, un programma in perl. Nella
  44.271 +   ristrutturazione che ha portato alla nuova release di isi il prgramma è
  44.272 +   stato sostituito da ``isi-convert`` (in python) che ha alcune migliorie
  44.273 +   fra cui: l'abilità di leggere da formato ``.xls`` (formato di output di
  44.274 +   Sissi) e la maggiore estensibilità ad accettare altri formati in futuro.
  44.275 +
  44.276 +Estrazione dei dati con Open Sissi.
  44.277 +Open Sissi è il programma di utilità compreso nel pacchetto SISSI in rete messo a 
  44.278 +disposizione di tutte le scuole italiane dal MIUR per la gestione delle segreterie 
  44.279 +scolastiche (e non solo). Per quanto ci riguarda, siamo interessati alla capacità 
  44.280 +di Open Sissi di produrre un file con i dati degli studenti estraendoli dal db Sql
  44.281 +gestito da SISSI. La funzionalità da utilizzare è, dal menù di Open Sissi, Utilità,
  44.282 +Report dinamici, che ci metterà in condizione di comporre un report con i campi 
  44.283 +desiderati (per noi, oltre a nome, cognome, data di nascita, anche codice fiscale, 
  44.284 +corso, anno di corso e sezione). Open Sissi produce il report in formato Excel che 
  44.285 +viene richiamato automaticamente (non sembra ci sia la possibilità di avere un semplice
  44.286 +salvataggio del report, quindi bisogna che sulla macchina su cui gira Open Sissi
  44.287 +ci sia anche Excel - incredibile ma vero). 
  44.288 +
  44.289 +
  44.290 +Da questo momento è possibile sia procedere via interfaccia web sia come
  44.291 +descritto usando il comando :ref:`isi-convert`
  44.292 +
  44.293 +
  44.294 +isi-perms
  44.295 +~~~~~~~~~~~
  44.296 +
  44.297 +A cosa serve?
  44.298 +..............
  44.299 +
  44.300 +Le ACL solitamente vengono impostate subito dopo l'installazione del sistema e 
  44.301 +non dovrebbero richiedere alcuna manutenzione. Esperienza insegna che questo
  44.302 +non sempre è vero. Qualche imprevisto può sempre capitare e talvolta coinvolgere
  44.303 +diversi utenti. Per garantire la ricostituzione di una situazione di "coerente"
  44.304 +ci viene in aiuto isi-perms, grazie al quale è possibile impostare le acl 
  44.305 +impostate sul nostro filesystem.
  44.306 +Chi non sapesse cosa sono le acl potrà approfondire `qui <http://a2.pluto.it/a2227.htm>`_
  44.307 +
  44.308 +I file di configurazione
  44.309 +...........................
  44.310 +
  44.311 +isi-perms utilizza due file di configurazione:
  44.312 +
  44.313 +:/etc/isi/acl.conf: Configurazione di default
  44.314 +
  44.315 +:/etc/isi/acl-local.conf: Configurazione personalizzabile dall'utente; può 
  44.316 +  sovrascrivere le opzioni di default.
  44.317 +
  44.318 +.. Note::
  44.319 +
  44.320 +    Non apportare le tue modifiche a /etc/isi/acl.conf o rieschierai di perderle
  44.321 +    in fase di aggiornamento del sistema!.
  44.322 +
  44.323 +Per definire nuove acl per directory non definite nella configurazione di default,
  44.324 +si potrà usare a modello il file ``acl.conf`` ed inserire le proprie 
  44.325 +ersonalizzazioni nel file acl-local.conf.
  44.326 +Qualora si volesse sovrascrivere una particolare configurazione già definita, 
  44.327 +basterà ridefinirla (la versione inserita in acl-local.conf avrà sempre la
  44.328 +precedenza).
  44.329 +    
  44.330 +Esempi di utilizzo
  44.331 +.....................
  44.332 +
  44.333 +Inizializzare le acl per tutti gli utenti e le share::
  44.334 +
  44.335 +    isi-perms
  44.336 +
  44.337 +Risettare i permessi di una particolare directory::
  44.338 +
  44.339 +    isi-perms <directory>
  44.340 +
  44.341 +isi-perms lanciato senza specificare una directory, può impiegare molto tempo.
  44.342 +Quando possibile, lo si utilizi su directory ben precise.
    45.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.2 +++ b/docs/gestione/contents.rst	Mon Apr 26 11:16:23 2010 +0200
    45.3 @@ -0,0 +1,9 @@
    45.4 +========
    45.5 +Gestione 
    45.6 +========
    45.7 +
    45.8 +.. toctree::
    45.9 +
   45.10 +   comandi_isi.rst
   45.11 +   web.rst
   45.12 +   isi-checkup.rst
    46.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    46.2 +++ b/docs/gestione/isi-checkup.rst	Mon Apr 26 11:16:23 2010 +0200
    46.3 @@ -0,0 +1,116 @@
    46.4 +.. _isi-checkup:
    46.5 +
    46.6 +isi-checkup
    46.7 +==============
    46.8 +
    46.9 +Esiste una esperienza di laboratorio sull'uso di :ref:`lab_checkup`
   46.10 +
   46.11 +Cos'è
   46.12 +------
   46.13 +
   46.14 +``isi-checkup`` è la suite di diagnostica del progetto ReteISI. Nasce con lo scopo di 
   46.15 +rilevare e notificare i problemi di configurazione più comuni. Viene costantemente
   46.16 +aggiornata al fine di permettere di indentificare un numero sempre crescente di
   46.17 +errori.
   46.18 +Molto importanti ed apprezzati, sono quindi tutte le segnalazioni di problemi non
   46.19 +coperti dalla Suite, fatte in mailing list Rete ISI. Segnalazioni che si tradurranno
   46.20 +con tutta probabilità in un nuovi test.
   46.21 +
   46.22 +Cosa non è
   46.23 +-------------
   46.24 +
   46.25 +Non è una tool di correzione degli errori: effettua checkup, non fix!
   46.26 +
   46.27 +Installazione
   46.28 +---------------
   46.29 +
   46.30 +Chi non lo avesse già installato potrà farlo, come root, con un semplice::
   46.31 +
   46.32 +    apt-get install isi-checkup
   46.33 +
   46.34 +Le componenti
   46.35 +----------------
   46.36 +
   46.37 +Il sistema è composto principalmente da:
   46.38 +
   46.39 +- test
   46.40 +- template
   46.41 +- file di esclusione : /etc/isi/checkup/exclude
   46.42 +
   46.43 +I test
   46.44 +++++++++++
   46.45 +
   46.46 +I test presenti nel sistema, scritti principalmente in codice python( e
   46.47 +qualcuno in shell script), sono contenuti in ``/usr/share/isi-checkup/tests/``.
   46.48 +
   46.49 +Ogni script di test ha un nome che indica, con la prima parte numerica, la sua
   46.50 +appartenenza ad un particolare gruppo. I gruppi definiti ad oggi (release
   46.51 +in hg numero 119) sono i seguenti :
   46.52 +
   46.53 +-    test di sistema ( range   0 ~ 499 )
   46.54 +-    test utente     ( range 500 ~ 700 )
   46.55 +-    test locali     ( range 701 ~ 2000)
   46.56 +-    tutti i test    ( range   0 ~ 2000)
   46.57 +
   46.58 +I test di ``sistema`` si occupano principalmente di rilevare problemi di configurazione
   46.59 +legati al boot, file di configurazioni mancanti, etc...
   46.60 +
   46.61 +I test ``utente`` effettuano una serie di controlli concentrandosi esclusivamente
   46.62 +su un singolo utente o tutti gli utenti. Viene controllato, ad esempio, che l'utente
   46.63 +possa leggere, scrivere od attraversare determinati file o cartelle.
   46.64 +Sarà capitato a tutti di incappare nel famigerato messaggio di windows "Impossibile 
   46.65 +trovare il profilo". Quasi sempre, questo problema è dovuto all'impossibilità 
   46.66 +dell'utente di accedere ad alcuni file della propria home directory.
   46.67 +
   46.68 +I test ``locali`` sono test che un utente può decidere di aggiungere per conto 
   46.69 +proprio. Andranno aggiunti in :file:`/etc/isi/checkup` e dovranno appartenere al range
   46.70 +(701 ~ 2000).
   46.71 +
   46.72 +Per lanciare un particolare gruppo di test, basterà invocare il comando 
   46.73 +``isi-checkup`` con la relativa opzione. Si faccia riferimento all'help
   46.74 +del comando per le opzioni da usare.
   46.75 +
   46.76 +I template
   46.77 +++++++++++++
   46.78 +
   46.79 +In ``/usr/share/isi-checkup`` troveremo invece i file template *\*.conf*.
   46.80 +Cos'è un template? Un template è un semplice file di testo in cui vengono
   46.81 +elencati tutti i test da attivare all'attivazione del profilo. Questo
   46.82 +permette, tramite la semplice preparazione di template differenti di coprire
   46.83 +le necessità di differenti tipologie di macchine (server ReteISI, server
   46.84 +LTSP, firewall, client Linux). Al momento esiste un solo template che è
   46.85 +quello del server ReteISI.
   46.86 +
   46.87 +Volendo, ad esempio, attivare tutti i test contenuti nel profilo di default
   46.88 +``isi.conf`` ::
   46.89 +
   46.90 +    isi-checkup -t isi
   46.91 +
   46.92 +.. Note::
   46.93 +
   46.94 +    - Il template ``isi.conf`` copre la totalità dei test presenti.
   46.95 +    - Non modificate i file di template, il file viene sovrascritto ad ogni
   46.96 +      aggiornamento della suite e le vostre modifiche andranno perdute.
   46.97 +
   46.98 +Il file exclude
   46.99 ++++++++++++++++++
  46.100 +
  46.101 +E' possibile evitare che un test venga lanciato accodandone il nome al file
  46.102 +/etc/isi/checkup/exclude.
  46.103 +
  46.104 +.. Note ::
  46.105 +
  46.106 +    Con *nome* ci si riferisce al nome del file privo della parte numerica.
  46.107 +    es. squid_run_on_boot.py
  46.108 +
  46.109 +    E' inoltre possibile copiare-incollare direttamente dal report a due
  46.110 +    colonne di isi-checkup.
  46.111 +
  46.112 +
  46.113 +    Esempio::
  46.114 +
  46.115 +     I seguenti test non sono andati a buon fine
  46.116 + 
  46.117 +     squid_run_on_boot.py                     BootProcessSquid
  46.118 +
  46.119 +    (notare la riga relativa al test squid_run_on_boot.py fallito)
    47.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    47.2 +++ b/docs/gestione/phpldapadmin.rst	Mon Apr 26 11:16:23 2010 +0200
    47.3 @@ -0,0 +1,71 @@
    47.4 +.. _gestione_frontends_phpldapadmin:
    47.5 +
    47.6 +phpldapadmin
    47.7 +============
    47.8 +
    47.9 +.. figure:: ../img/frontends/phpldapadmin.jpg
   47.10 +   :align: center
   47.11 +
   47.12 +Requisiti
   47.13 +---------
   47.14 +- Server Apache2 installato e configurato.
   47.15 +- PHP5 (testata la versione versione 5).
   47.16 +
   47.17 +
   47.18 +
   47.19 +Installazione del pacchetto
   47.20 +---------------------------
   47.21 +
   47.22 +Autenticarsi nel sistema come utente root e digitare::
   47.23 +
   47.24 +    dpkg -l |grep phpldapadmin
   47.25 +
   47.26 +Se l'output mostrerà che il pacchetto è già installato (notare ``ii``) potremo
   47.27 +saltare il passaggio successivo::
   47.28 +
   47.29 +    ii  phpldapadmin  0.9.8.3-8  web based interface for administering LDAP s
   47.30 +
   47.31 +In caso contrario, dovremo installare ``phpldapadmin`` come segue::
   47.32 +
   47.33 +    apt-get install phpldapadmin
   47.34 +
   47.35 +Configurazione di apache2
   47.36 +-------------------------
   47.37 +
   47.38 +La configurazione consisterà semplicemente nel creare un `alias` che permetta
   47.39 +di raggiungere gli script php del programma ed una configurazione di default( 
   47.40 +modificabile come meglio si creda) relativa all'accesso alla risorsa, compresa
   47.41 +tra `<Directory>` e `</Directory>`.
   47.42 +
   47.43 +Modificare quindi la configurazione del proprio sito aggiungendo tra `<VirtualHost>` e
   47.44 +`</VirtualHost>` ::
   47.45 +
   47.46 +    Alias "/usr/share/phpldapadmin/" /phpldapadmin/"
   47.47 +    <Directory "/usr/share/phpldapadmin/">
   47.48 +        Options Indexes MultiViews FollowSymLinks
   47.49 +        AllowOverride None
   47.50 +        Order deny,allow
   47.51 +        Deny from all
   47.52 +        Allow from 127.0.0.0/255.0.0.0 ::1/128
   47.53 +    </Directory>
   47.54 +
   47.55 +.. Note::
   47.56 +
   47.57 +    Salvo casi particolari, la configurazione di apache da modificare dovrebbe
   47.58 +    essere contenuta nel file ``/etc/apache2/sites-available/default``.
   47.59 +    
   47.60 +    Si potrà provvedere dunque alla modifica di tale file con un editor di testo 
   47.61 +    qualunque::
   47.62 +
   47.63 +        jmacs /etc/apache2/sites-available/default
   47.64 +
   47.65 +Terminata la modifica alla configurazione, basterà farla ricaricare al servente::
   47.66 +
   47.67 +    /etc/init.d/apache2 reload
   47.68 +
   47.69 +Verifica
   47.70 +--------
   47.71 +
   47.72 +Sarà ora possibile verificare che tutto funzioni puntando il proprio browser
   47.73 +all'url ``http://ip-WebServer/phpldapadmin``.
   47.74 +
    48.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    48.2 +++ b/docs/gestione/web.rst	Mon Apr 26 11:16:23 2010 +0200
    48.3 @@ -0,0 +1,91 @@
    48.4 +.. _web:
    48.5 +
    48.6 +================
    48.7 +Interfaccia web
    48.8 +================
    48.9 +
   48.10 +Struttura
   48.11 +=========
   48.12 +
   48.13 +L'interfaccia web ha cinque sezioni:
   48.14 +
   48.15 +:utenti: permette di inserire utenti, modificarli, cancellarli, navigare fra
   48.16 +         gli utenti definiti, vedere i gruppi  e le classi, impostare la
   48.17 +         quota per ogni grupo
   48.18 +
   48.19 +:samba:  permette di rinominare il dominio
   48.20 +
   48.21 +:navigazione: gestisce il gruppo ``nowww``. Il proxy web può usare questo
   48.22 +         gruppo per interdire la navigazione agli utenti.
   48.23 +
   48.24 +:dnsmasq: questa è una interfaccia web alla configurazione del server dns e
   48.25 +         dhcp ``dnsmasq``
   48.26 +
   48.27 +:logon:  permette la configurazione della fare di logon dei client Windows
   48.28 +
   48.29 +
   48.30 +Screenshot
   48.31 +==========
   48.32 +
   48.33 +Alcune immagini in ordine sparso:
   48.34 +
   48.35 +.. image:: ../img/web/web-start.png
   48.36 +
   48.37 +.. image:: ../img/web/web-utenti.png
   48.38 +
   48.39 +.. image:: ../img/web/web-users-file.png
   48.40 +
   48.41 +.. image:: ../img/web/web-nomi.png
   48.42 +
   48.43 +.. image:: ../img/web/web-sissi.png
   48.44 +
   48.45 +.. image:: ../img/web/web-classi.png
   48.46 +
   48.47 +.. image:: ../img/web/web-dns.png
   48.48 +
   48.49 +.. image:: ../img/web/web-navigazione.png
   48.50 +
   48.51 +Accesso
   48.52 +=======
   48.53 +
   48.54 +
   48.55 +L'accesso alla interfaccia web è garantito all'utente ``admin`` con password
   48.56 +identica a quella contenuta in :file:`/etc/ldap.secret`  (leggibile solo a
   48.57 +root) o a qualunque utente del gruppo ``admins`` con la propria password. 
   48.58 +
   48.59 +I docenti hanno pure accesso all'interfaccia limitatamente alla sola
   48.60 +inibizione della navigazione.
   48.61 +
   48.62 +Installazione
   48.63 +==============
   48.64 +
   48.65 +L'interfaccia web viene lanciata da uno script di init
   48.66 +:file:`/etc/init.d/isiweb` che legge un file in :file:`/etc/defaults/isiweb`
   48.67 +dove è possibile inibire l'avviamento dell'interfaccia valorizzando a '0' la
   48.68 +variabile START_FSCGI::
   48.69 +
   48.70 +  START_FSCI=1
   48.71 +
   48.72 +l'installazione del pacchetto ``isi-web`` viene fatta nel solito modo::
   48.73 +
   48.74 +  apt-get install isi-web
   48.75 +
   48.76 +e mette la configurazione di apache in
   48.77 +:file:`/etc/apache2/site-available/isiweb.conf` in come VirtualHost con nome
   48.78 +web.isi.lan: questo significa che per potere raggiungere questa interfaccia
   48.79 +occorre avere una risoluzione corretta nel server, che risolva l'ip del
   48.80 +server. Questa risoluzioe può essere messa in :file:`/etc/hosts` del server se usate
   48.81 +il server come dns ed usate dnsmasq, ad esempio se avete il server
   48.82 +all'indirizzo 192.168.10.1::
   48.83 +
   48.84 +  192.168.10.1  web.isi.lan srv
   48.85 +  /etc/init.d/dnsmasq restart
   48.86 +
   48.87 +se non avete altre interfacce web sul server e quindi non vi serve avere i
   48.88 +VirtualHosts potete semplicemente abilitare ``isiweb-all`` che è la
   48.89 +configurazione che risponde su ogni nome::
   48.90 +
   48.91 +  a2dissite isiweb.conf
   48.92 +  a2ensite isiweb-all.conf
   48.93 +  /etc/init.d/apache2 reload
   48.94 +
    49.1 Binary file docs/img/frontends/phpldapadmin.jpg has changed
    50.1 Binary file docs/img/grub4dos/common_01_share-software.png has changed
    51.1 Binary file docs/img/grub4dos/win98_03_menu-ltsp.png has changed
    52.1 Binary file docs/img/grub4dos/win98_bat.png has changed
    53.1 Binary file docs/img/grub4dos/xp_02b01_installazione-personalizzata.png has changed
    54.1 Binary file docs/img/grub4dos/xp_02b02_installazione_personalizzata.png has changed
    55.1 Binary file docs/img/grub4dos/xp_03_menu-lst.png has changed
    56.1 Binary file docs/img/grub4dos/xp_bat.png has changed
    57.1 Binary file docs/img/join/w98_1.png has changed
    58.1 Binary file docs/img/join/w98_2.png has changed
    59.1 Binary file docs/img/join/w98_3.png has changed
    60.1 Binary file docs/img/join/w98_4.png has changed
    61.1 Binary file docs/img/join/w98_5.png has changed
    62.1 Binary file docs/img/join/w98_6.png has changed
    63.1 Binary file docs/img/join/xp1.png has changed
    64.1 Binary file docs/img/join/xp2.png has changed
    65.1 Binary file docs/img/join/xp3.png has changed
    66.1 Binary file docs/img/join/xp4.png has changed
    67.1 Binary file docs/img/join/xp5.png has changed
    68.1 Binary file docs/img/join/xp6.png has changed
    69.1 Binary file docs/img/join/xp7.png has changed
    70.1 Binary file docs/img/join/xp8.png has changed
    71.1 Binary file docs/img/rete-fwisi.png has changed
    72.1 Binary file docs/img/rete-srvisi.png has changed
    73.1 Binary file docs/img/reteisi.png has changed
    74.1 Binary file docs/img/ssh-key/big/0_accessoDominio.png has changed
    75.1 Binary file docs/img/ssh-key/big/10_putty-connessione2.png has changed
    76.1 Binary file docs/img/ssh-key/big/11_putty-connessione3.png has changed
    77.1 Binary file docs/img/ssh-key/big/12_putty-connessione4.png has changed
    78.1 Binary file docs/img/ssh-key/big/13_putty-connessione5.png has changed
    79.1 Binary file docs/img/ssh-key/big/1_estensioni1.png has changed
    80.1 Binary file docs/img/ssh-key/big/2_estensioni2.png has changed
    81.1 Binary file docs/img/ssh-key/big/3_import1.png has changed
    82.1 Binary file docs/img/ssh-key/big/4_import2.png has changed
    83.1 Binary file docs/img/ssh-key/big/5_import3.png has changed
    84.1 Binary file docs/img/ssh-key/big/6_import4.png has changed
    85.1 Binary file docs/img/ssh-key/big/7_putty-addkey1.png has changed
    86.1 Binary file docs/img/ssh-key/big/8_putty-addkey2.png has changed
    87.1 Binary file docs/img/ssh-key/big/9_putty-connessione1.png has changed
    88.1 Binary file docs/img/ssh-key/small/0_accessoDominio.jpg has changed
    89.1 Binary file docs/img/ssh-key/small/10_putty-connessione2.jpg has changed
    90.1 Binary file docs/img/ssh-key/small/11_putty-connessione3.jpg has changed
    91.1 Binary file docs/img/ssh-key/small/12_putty-connessione4.jpg has changed
    92.1 Binary file docs/img/ssh-key/small/13_putty-connessione5.jpg has changed
    93.1 Binary file docs/img/ssh-key/small/1_estensioni1.jpg has changed
    94.1 Binary file docs/img/ssh-key/small/2_estensioni2.jpg has changed
    95.1 Binary file docs/img/ssh-key/small/3_import1.jpg has changed
    96.1 Binary file docs/img/ssh-key/small/4_import2.jpg has changed
    97.1 Binary file docs/img/ssh-key/small/5_import3.jpg has changed
    98.1 Binary file docs/img/ssh-key/small/6_import4.jpg has changed
    99.1 Binary file docs/img/ssh-key/small/7_putty-addkey1.jpg has changed
   100.1 Binary file docs/img/ssh-key/small/8_putty-addkey2.jpg has changed
   101.1 Binary file docs/img/ssh-key/small/9_putty-connessione1.jpg has changed
   102.1 Binary file docs/img/web/web-classi.png has changed
   103.1 Binary file docs/img/web/web-dns.png has changed
   104.1 Binary file docs/img/web/web-navigazione.png has changed
   105.1 Binary file docs/img/web/web-nomi.png has changed
   106.1 Binary file docs/img/web/web-sissi.png has changed
   107.1 Binary file docs/img/web/web-start.png has changed
   108.1 Binary file docs/img/web/web-users-file.png has changed
   109.1 Binary file docs/img/web/web-utenti.png has changed
   110.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   110.2 +++ b/docs/install/client/client_linux.rst	Mon Apr 26 11:16:23 2010 +0200
   110.3 @@ -0,0 +1,393 @@
   110.4 +==============
   110.5 +Client Linux
   110.6 +==============
   110.7 +
   110.8 +
   110.9 +Per i sistemi Linux non esiste un'operazione analoga al join dei sistemi
  110.10 +Microsoft ma è comunque possibile avere:
  110.11 +
  110.12 + #. Autenticazione unica su server centrale: questo significa che tutti gli
  110.13 +    utenti sono riconosciuti da ogni client e la password con cui si
  110.14 +    autenticano è la medesima (che potrebbe anche essere differente da
  110.15 +    quella usata epr il logon su windows)
  110.16 +
  110.17 + #. La home è servita dal fileserver: se il server è anche PDC la home è la
  110.18 +    medesima sia sotto windows che sotto Linux. Il server esporta la HOME
  110.19 +    degli utenti via :ref:`nfs <config_nfs>`. Fare riferimento a quel capitolo per
  110.20 +    capire come configurare anche il client.
  110.21 +
  110.22 +Limitiamo la nostra trattazione ai client linux Ubuntu ed ai sistemi Debian.
  110.23 +
  110.24 +
  110.25 +Debian
  110.26 +======
  110.27 +
  110.28 +Esiste il pacchetto isi-ldap3-client che si occupa di permettere
  110.29 +l'autenticazione su server centrale. Manca la documentazione...
  110.30 +
  110.31 +Ubuntu
  110.32 +======
  110.33 +
  110.34 +
  110.35 +.. index:: 
  110.36 +   single: auth_config
  110.37 +   single: client; linux
  110.38 +
  110.39 +.. _auth_client:
  110.40 +
  110.41 +Configurazione di un client Ubuntu per l'accesso ad un dominio isi
  110.42 +------------------------------------------------------------------
  110.43 +
  110.44 +Dalla release di Ubuntu 7.10, è stato introdotto auth_client_config_ che 
  110.45 +consente di gestire agevolmente più configurazioni(profili) e di passare da 
  110.46 +uno all'altro in modo molto semplce. I procedimenti seguenti utilizzeranno 
  110.47 +tale feature.
  110.48 +
  110.49 +.. _auth_client_config: https://wiki.ubuntu.com/AuthClientConfig
  110.50 +
  110.51 +Installare i pacchetti necessari::
  110.52 +
  110.53 + root@ubuntu-desktop:~# apt-get install ldap-auth-config ldap-utils
  110.54 +
  110.55 +.. Note::
  110.56 +
  110.57 +   L'installazione del pacchetto ``ldap-utils`` non è strettamente necessaria.
  110.58 +   Torna però utile per testare le interrogazioni ldap.
  110.59 +
  110.60 +Una volta installati i pacchetti,verrà lanciato uno script di configurazione.
  110.61 +Si risponda alle domande come indicato di seguito, sostituendo i dati di 
  110.62 +esempio con i propri:
  110.63 +
  110.64 +.. container:: debconf
  110.65 +
  110.66 + ============================================  =============================
  110.67 +  Should debconf manage LDAP configuration?:     sì
  110.68 +  
  110.69 +  LDAP server Uniform Resource Identifier:       ldap://192.168.1.150
  110.70 +  
  110.71 +  Distinguished name:                               dc=isi,dc=lan
  110.72 +  
  110.73 +  LDAP account for root:                         cn=admin,dc=isi,dc=lan
  110.74 +  
  110.75 +  Password di root:                               passwordDiRoot
  110.76 +  
  110.77 + ============================================  =============================
  110.78 +
  110.79 +(Per ciò che non viene espressamente citato sopra, si accetti il valore 
  110.80 +di default proposto)
  110.81 +
  110.82 +.. Note ::
  110.83 +
  110.84 +   ``Per Ubuntu versione 8.10``
  110.85 +
  110.86 +   - ``/etc/ldap/ldap.conf`` non viene configurato automaticamente, sarà quindi necessario
  110.87 +     effettuarne la configurazione manualmente.
  110.88 +
  110.89 +   ``Per Ubuntu versione < 8.10``
  110.90 +
  110.91 +   - ``/etc/ldap/ldap.conf`` non viene configurato automaticamente, sarà quindi necessario 
  110.92 +     effettuarne la configurazione manualmente.
  110.93 +   - ``/etc/ldap.conf`` viene configurato in modo errato, sarà quindi necessario verificarne
  110.94 +     la configurazione.
  110.95 +
  110.96 +   Per le modifiche si faccia riferimento ai parametri indicati di seguito.
  110.97 +
  110.98 +``/etc/ldap.conf``
  110.99 +::
 110.100 +
 110.101 + host 192.168.1.150
 110.102 + base dc=isi,dc=lan
 110.103 + rootbinddn cn=admin,dc=isi,dc=lan
 110.104 + bind_policy soft
 110.105 +
 110.106 +controllare anche che la direttiva ldap1://192.168.150 ``sia commentata``,
 110.107 +in presenza di più modi per identificare il server ldap, l'autenticazione
 110.108 +non funzionerà.
 110.109 +
 110.110 +``/etc/ldap/ldap.conf``
 110.111 +::
 110.112 +
 110.113 + BASE    dc=isi,dc=lan     
 110.114 + URI     ldap://192.168.1.150
 110.115 +
 110.116 +
 110.117 +Creazione e aggiunta di un profilo ``auth-client-config``
 110.118 +---------------------------------------------------------
 110.119 +
 110.120 +Creare, con un editor di testo, un file chiamato ``isi``, popolandolo con le 
 110.121 +righe seguenti, e salvarlo in ``/etc/auth-client-config/profile.d/``
 110.122 +
 110.123 +Se il sistema in uso è una Ubuntu di versione inferiore alla 8.10::
 110.124 +
 110.125 + [isi-ldap]
 110.126 + nss_passwd=passwd: compat ldap
 110.127 + nss_group=group: compat ldap
 110.128 + nss_shadow=shadow: compat ldap
 110.129 + pam_auth=auth       sufficient   pam_ldap.so   
 110.130 +         auth       required     pam_unix.so nullok_secure use_first_pass
 110.131 + pam_account=account    sufficient   pam_ldap.so 
 110.132 +         account    required     pam_unix.so
 110.133 + pam_password=password   sufficient   pam_ldap.so
 110.134 +         password   required     pam_unix.so nullok obscure min=4 max=8 md5
 110.135 + pam_session=session    required     pam_unix.so
 110.136 +         session    required     pam_mkhomedir.so skel=/etc/skel/
 110.137 +         session    optional     pam_ldap.so
 110.138 +         session    optional     pam_foreground.so
 110.139 +
 110.140 + [isi-local]
 110.141 + nss_group=group:          compat 
 110.142 + nss_passwd=passwd:         compat
 110.143 + nss_shadow=shadow:         compat
 110.144 + pam_account=account     required        pam_unix.so
 110.145 + pam_auth=auth   required        pam_unix.so nullok_secure
 110.146 + pam_password=password   required   pam_unix.so nullok obscure md5
 110.147 + pam_session=session     required        pam_unix.so
 110.148 +         session optional        pam_foreground.so
 110.149 +
 110.150 +Se il sistema in uso è Ubuntu versione 8.10::
 110.151 +
 110.152 +    [isi-ldap]
 110.153 +    nss_passwd=passwd: compat ldap
 110.154 +    nss_group=group: compat ldap
 110.155 +    nss_shadow=shadow: compat ldap  
 110.156 +    nss_netgroup=netgroup: nis
 110.157 +    pam_auth=auth       sufficient   pam_ldap.so
 110.158 +            auth       required     pam_unix.so nullok_secure use_first_pass
 110.159 +    pam_account=account    sufficient   pam_ldap.so
 110.160 +            account    required     pam_unix.so
 110.161 +    pam_password=password   sufficient   pam_ldap.so
 110.162 +            password   required     pam_unix.so nullok obscure min=4 max=8 md5
 110.163 +    pam_session=session    required     pam_unix.so
 110.164 +            session    required     pam_mkhomedir.so skel=/etc/skel/
 110.165 +            session    optional     pam_ldap.so
 110.166 +            session    optional     pam_foreground.so
 110.167 +
 110.168 +    [isi-local]
 110.169 +    nss_group=group:          compat
 110.170 +    nss_netgroup=netgroup:       nis
 110.171 +    nss_passwd=passwd:         compat
 110.172 +    nss_shadow=shadow:         compat
 110.173 +    pam_account=account     [success=2 new_authtok_reqd=done default=ignore]        pam_unix.so
 110.174 +            account [success=1 default=ignore]      pam_ldap.so
 110.175 +            account requisite                       pam_deny.so
 110.176 +            account required                        pam_permit.so
 110.177 +    pam_auth=auth   [success=2 default=ignore]      pam_unix.so nullok_secure 
 110.178 +            auth    [success=1 default=ignore]      pam_ldap.so use_first_pass
 110.179 +            auth    requisite                       pam_deny.so
 110.180 +            auth    required                        pam_permit.so
 110.181 +    pam_password=password   [success=2 default=ignore]      pam_unix.so obscure sha512
 110.182 +            password        [success=1 user_unknown=ignore default=die]     pam_ldap.so use_authtok try
 110.183 +            password        requisite                       pam_deny.so
 110.184 +            password        required                        pam_permit.so
 110.185 +    pam_session=session     [default=1]                     pam_permit.so
 110.186 +            session requisite                       pam_deny.so
 110.187 +            session required                        pam_permit.so
 110.188 +            session required        pam_unix.so 
 110.189 +            session optional                        pam_ldap.so
 110.190 +            session optional                        pam_ck_connector.so nox11
 110.191 +
 110.192 +
 110.193 +Per verificare che il profilo venga rilevato correttamente si potrà
 110.194 +utilizzare il comando ``auth-client-config -l``::
 110.195 +
 110.196 + root@ubuntu-desktop:~# auth-client-config -l 
 110.197 + Available profiles are:
 110.198 +   isi-ldap
 110.199 +   isi-local
 110.200 +   kerberos_example
 110.201 +   lac_ldap
 110.202 +   ldap_example
 110.203 +
 110.204 +Come si può notare, i profili ``isi-ldap`` e ``isi-local`` aggiunti in
 110.205 +precedenza vengono trovati ed elencati. Non resta che attivare il profilo ``isi-ldap``::
 110.206 +
 110.207 + root@ubuntu-desktop:~# auth-client-config -a -p isi-ldap
 110.208 +
 110.209 +Ed effettuare un tentativo di interrogazione del database ldap::
 110.210 +
 110.211 + root@ubuntu-desktop:~# getent passwd
 110.212 + 
 110.213 +L'output del comando dovrebbe mostrare tutto il contenuto del file locale 
 110.214 +``/etc/passwd`` seguito da quello aggiuntivo fornito dal database ldap.
 110.215 +
 110.216 +.. note::
 110.217 +
 110.218 +  E' indispensabile che in ``/etc/hosts`` venga inserito un riferimento del
 110.219 +  tipo <ipserver> <nomeserver> (es. 192.168.1.150 srv-isi).  L'assenza di
 110.220 +  tale direttiva, comporterà un ritardo considerevole ad ogni interrogazione
 110.221 +  dell'albero ldap.
 110.222 +
 110.223 +Consentire ad un utente ldap l'utilizzo di stick usb e dell'audio del client ubuntu.
 110.224 +------------------------------------------------------------------------------------
 110.225 +
 110.226 +In Ubuntu un utente ldap riesce a far funzionare uno stick usb solo in
 110.227 +lettura e non ha accesso all'audio della macchina. Questo dipende dal fatto
 110.228 +che per utilizzare l'audio e vedere montato il proprio dispositivo usb in
 110.229 +lettura/scrittura l'utente deve essere membro dei gruppi locali *plugdev
 110.230 +(46)* e *audio (29)*, il che è automatico per gli utenti locali ma non
 110.231 +succede per quelli remoti.  Occorre quindi implementare un meccanismo che
 110.232 +assegni automaticamente l'appartenenza (membership) a questi gruppi agli
 110.233 +utenti autenticati dal server ldap.  Fortunatamente la cosa è piuttosto
 110.234 +semplice, anche se comporta un riprocessamento di tutti gli utenti
 110.235 +remoti. Vediamo quanto è necessario.
 110.236 +
 110.237 +LATO SERVER
 110.238 +~~~~~~~~~~~
 110.239 +
 110.240 +  1. creare i gruppi ldap *plugdev* e *audio* (attenzione, quei gruppi
 110.241 +  esistono già sul server come gruppi locali, saranno quindi duplicati come
 110.242 +  gruppi ldap
 110.243 +
 110.244 +  2. assegnare gli utenti a cui si vuole consentiro l'uso dei dispositivi
 110.245 +  usb e audio del client (potenzialmente tutti) ai gruppi plugdev e audio
 110.246 +  (eventualmente ad altri)
 110.247 +
 110.248 +La prima operazione si fa con i comandi::
 110.249 +
 110.250 +  smbldap-groupadd -o -g 46 plugdev
 110.251 +  smbldap-groupadd -o -g 29 audio
 110.252 +
 110.253 +``l'opzione -o`` è necessaria per la duplicazione dei gruppi. L'assegnazione
 110.254 +della membership può eseguirsi con i comandi::
 110.255 +
 110.256 +    isi-addgroup user_id plugdev
 110.257 +    isi-addgroup user_id audio
 110.258 +
 110.259 +LATO CLIENT
 110.260 +~~~~~~~~~~~
 110.261 +
 110.262 +Per assegnare on the fly la membership ai gruppi locali agli utenti ldap
 110.263 +occorre ricorrere a ``pam_group.so``, lo si fa aggiungedo al file
 110.264 +``/etc/pam.d/common-auth`` la linea::
 110.265 +
 110.266 +    auth     optional        pam_group.so
 110.267 +
 110.268 +A questo punto non resta che configurare ``pam_group``. Lo si fa aggiungendo
 110.269 +in testa al suo file di configurazione ``/etc/security/group.conf`` le righe
 110.270 +seguenti::
 110.271 +
 110.272 +    gdm; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev
 110.273 +    kdm; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev
 110.274 +    login; *; *; Al0000-2400; audio, video, cdrom, floppy, plugdev 
 110.275 +
 110.276 +(le prove fatte rivelano che i gruppi video, cdrom e floppy, possono essere
 110.277 +omessi, in ogni caso male non fanno)
 110.278 + 
 110.279 +Fare il reboot del client e godersi l'effetto
 110.280 +
 110.281 +
 110.282 +  
 110.283 +LTSP
 110.284 +====
 110.285 +
 110.286 +
 110.287 +una menzione particolare per i client LTSP. Per questi client non c'è molto
 110.288 +da dire, in quanto gli utenti sono definiti sul server LTSP per il quale
 110.289 +potete seguire esattamente le istruzioni scritte sopra.
 110.290 +
 110.291 +L'unica informazione aggiuntiva che voglio dare è relativa alla
 110.292 +configurazione di GRUB
 110.293 +
 110.294 +.. index:: ltsp; grub
 110.295 +
 110.296 +Un progetto alternativo a questo è il progetto drbl_ che include anche
 110.297 +clonezilla (progetto simile a ghost)
 110.298 + 
 110.299 +.. _drbl: http://drbl.sourceforge.net/
 110.300 +
 110.301 +GRUB
 110.302 +----
 110.303 +
 110.304 +capita spesso che serva configurare una macchina per il dual boot Linux come
 110.305 +client LTSP e windows. In questo caso è opportuno installare GRUB
 110.306 +direttamente su hard disk e quindi in windows. Non c'è alcun problema, GRUB
 110.307 +non è razzista, gli basta risiedere in un filesystem che riconosca al boot,
 110.308 +e fat32 va bene (al momento non so dire se va bene anche ntfs).
 110.309 +
 110.310 +il driver
 110.311 +~~~~~~~~~
 110.312 +
 110.313 +Occorre anzitutto procurarsi il driver della scheda di rete della vostra
 110.314 +macchina, potete scaricarla da questo sito:
 110.315 +http://www.rom-o-matic.net/5.4.1/ (la versione non è vincolante).
 110.316 +Per il download vi chiedono il formato del file, scegliete .zlilo.
 110.317 +
 110.318 +/boot in C:
 110.319 +~~~~~~~~~~~
 110.320 +
 110.321 +Installate ora la cartella ``boot`` con all'intero la cartella ``grub`` come
 110.322 +fareste per una normale distro linux (copiate ad esempio ``/boot/grub`` del
 110.323 +cd). Ipotizziamo ad esempio che la partizione windows (unico sistema sulla
 110.324 +macchina) sia la numero 1::
 110.325 +
 110.326 +  mount /dev/sda1 /mnt
 110.327 +  mkdir -p /boot
 110.328 +  cp -av /boot/grub /mnt/boot
 110.329 +
 110.330 +a questo punto dovete:
 110.331 +
 110.332 + 1. aggiungere il driver
 110.333 + 2. cofigurare menu.lst ad esempio come segue::
 110.334 +
 110.335 +      title LTSP (scheda 
 110.336 +      root (hd0,0)
 110.337 +      kernel /boot/eb-5.0.8-3c509.lzlilo
 110.338 +
 110.339 +      title         Windows 95/98/NT/2000
 110.340 +      root          (hd0,0)
 110.341 +      makeactive
 110.342 +      chainloader   +1
 110.343 +            
 110.344 +
 110.345 +installazione grub
 110.346 +~~~~~~~~~~~~~~~~~~
 110.347 +
 110.348 +Ultimo passo è quello di installare effettivamente grub sul MBR (Master boot
 110.349 +record) del disco. Per questo basterà partire con il cd reteisi, fermersi
 110.350 +subito (alla splash inisiale che attualmente ha i pinguini).
 110.351 +
 110.352 +Una voce dice "inizializzazione HD per RAID", che di fatto inizializza sia
 110.353 +il primo che il secondo disco. Potete usarlo anche se avete un solo
 110.354 +disco. Probabilmente si lamenta quando si accorge che manda il secondo
 110.355 +disco, ma ormai il primo lo avr`a inizializzato correttamente.
 110.356 +
 110.357 +Se invece volete fare le cose senza scorciatoie, dicitate ``c``  che vi
 110.358 +mette nella console di grub e digitate::
 110.359 +
 110.360 +  root            (hd0,0)
 110.361 +  setup           (hd0)
 110.362 +
 110.363 +Se per case a partizione non fose la prima ma la seconda, usate 
 110.364 +``root (hd0,1)``
 110.365 +
 110.366 +
 110.367 +
 110.368 +dividere il carico fra più server
 110.369 +-----------------------------------
 110.370 +
 110.371 +Qualora ci siano molti client ltsp e non sia possibile suddividere la rete,
 110.372 +è possibile suddividere il carico fra più server lasciando al server dhcp
 110.373 +il compito di assegnare non solo l'indirizzo di rete ma anche il server da
 110.374 +cui prendere il root filesystem da caricare via nfs.
 110.375 +
 110.376 +La direttiva da usare è ``next-server`` ed indica quale sia il server
 110.377 +successivo dopo quello che ha fornito il kernel. Un esemio per due macchine
 110.378 +che usino rispettivamente il server ltsp 192.168.1.1 e 192.168.1.2 potrebbe
 110.379 +essere così::
 110.380 +
 110.381 +  host ltsp01 {
 110.382 +      hardware ethernet    00:a0:24:52:5a:bc;
 110.383 +      fixed-address        192.168.1.50;
 110.384 +      next-server  192.168.1.1;
 110.385 +  }
 110.386 +  host ltsp02 {
 110.387 +      hardware ethernet    00:a0:24:52:5a:bc;
 110.388 +      fixed-address        192.168.1.51;
 110.389 +      next-server  192.168.1.2;
 110.390 +  }
 110.391 +  
 110.392 +APT
 110.393 +===
 110.394 +
 110.395 +Ricordate che per potere usare apt con apt dovrete :ref:`apt_squid`
 110.396 +
   111.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   111.2 +++ b/docs/install/client/client_microsoft.rst	Mon Apr 26 11:16:23 2010 +0200
   111.3 @@ -0,0 +1,74 @@
   111.4 +.. _join:
   111.5 +
   111.6 +Inserire client Microsoft nel dominio: Il Join
   111.7 +==============================================
   111.8 +
   111.9 +.. index:: 
  111.10 +   single: client; windows
  111.11 +
  111.12 +Esiste una esperienza di laboratorio sul :ref:`lab_join`
  111.13 +
  111.14 +XP Professional
  111.15 +---------------
  111.16 +
  111.17 +.. sidebar:: ``Eliminare la sincronizzazione``
  111.18 +
  111.19 +   Ricordati anche di eliminare la sincronizzazione dei file altrimenti
  111.20 +   ad ogni disconnessione si attendera' un tempo eterno!!!
  111.21 +   
  111.22 +
  111.23 +.. figure:: ../../img/join/xp1.png
  111.24 +   :align: center
  111.25 +
  111.26 +.. figure:: ../../img/join/xp2.png
  111.27 +   :align: center
  111.28 +
  111.29 +.. figure:: ../../img/join/xp3.png
  111.30 +   :align: center
  111.31 +
  111.32 +.. figure:: ../../img/join/xp4.png
  111.33 +   :align: center
  111.34 +
  111.35 +.. figure:: ../../img/join/xp5.png
  111.36 +   :align: center
  111.37 +
  111.38 +.. figure:: ../../img/join/xp6.png
  111.39 +   :align: center
  111.40 +
  111.41 +.. figure:: ../../img/join/xp7.png
  111.42 +   :align: center
  111.43 +
  111.44 +.. figure:: ../../img/join/xp8.png
  111.45 +   :align: center
  111.46 +
  111.47 +Windows 2000
  111.48 +------------
  111.49 +
  111.50 +La procedura è analoga a quella per i Client XP
  111.51 +
  111.52 +Windows98 SE
  111.53 +------------
  111.54 +
  111.55 +.. figure:: ../../img/join/w98_1.png
  111.56 +   :align: center
  111.57 +
  111.58 +.. figure:: ../../img/join/w98_2.png
  111.59 +   :align: center
  111.60 +
  111.61 +.. figure:: ../../img/join/w98_3.png
  111.62 +   :align: center
  111.63 +
  111.64 +.. figure:: ../../img/join/w98_4.png
  111.65 +   :align: center
  111.66 +
  111.67 +.. figure:: ../../img/join/w98_5.png
  111.68 +   :align: center
  111.69 +
  111.70 +.. figure:: ../../img/join/w98_6.png
  111.71 +   :align: center
  111.72 +
  111.73 +Sistemi non supportati
  111.74 +----------------------
  111.75 +
  111.76 ++ Windows XP Home edition
  111.77 ++ Windows 95
   112.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   112.2 +++ b/docs/install/client/grub4dos.rst	Mon Apr 26 11:16:23 2010 +0200
   112.3 @@ -0,0 +1,122 @@
   112.4 +.. _grub4dos:
   112.5 +
   112.6 +
   112.7 +=============================
   112.8 +Installazione GRUB sui client
   112.9 +=============================
  112.10 +
  112.11 +In un sistema di dual boot occorre potere partire da Linux o da Windows. Il
  112.12 +menu di scelta al boot è gestito direttamente dagli installer Linux se si
  112.13 +installa Linux come secondo sistema operativo ma in una situazione di
  112.14 +thin/fat client occorre installarlo a mano.
  112.15 +
  112.16 +Il progetto ReteISI propone una semplice soluzione basata sul software
  112.17 +``grub4dos``.  L'operazione va svolta sui singoli client ed è differente a
  112.18 +seconda che si usi Windows 98 o un sistema più recente.
  112.19 +
  112.20 +L'obiettivo di questa procedura è quella di ottenere sui client una
  112.21 +configurazione come questa:
  112.22 +
  112.23 +.. image:: ../../img/grub4dos/win98_03_menu-ltsp.png
  112.24 +   :align: right
  112.25 +   :scale: 40
  112.26 +
  112.27 +L'installazione del pacchetto ReteISI mette nella share :file:`software` una
  112.28 +cartella chiamata appunto ``grub4dos`` che contiene tutti i file necessari,
  112.29 +per cui è sufficiente eseguire il file di installazione (doppio click) per
  112.30 +ogni client per installare grub.
  112.31 +
  112.32 +La fase di boot
  112.33 +===============
  112.34 +
  112.35 +Normalmente il Master Boot Record (MBR) di un sistema Windows passa il
  112.36 +comando alla partizione dove un loader Windows carica il sistema.
  112.37 +
  112.38 +Con ``grub4dos`` invece il MBR passa la palla al comando ``grldr`` che legge
  112.39 +il file di configurazione :file:`menul.lst` che deve essere preparato per
  112.40 +proporre le varie voci di menu. A noi interessa di avere la scelta:
  112.41 +
  112.42 +1. LTSP
  112.43 +2. Windows
  112.44 +
  112.45 +Ovviamente LTSP *non* è un sistema operativo presente ma è un eseguibile che
  112.46 +a sua volta emula un PXE, ovvero una scheda di rete con boot da rete. Noi
  112.47 +abbiamo messo come default gPXE_ ed in particolare l'eseguibile con tutti i
  112.48 +driver di rete diposnibili nel sito rom-o-matic_ in modo da coprire il maggior numero possibile di schede.
  112.49 +
  112.50 +
  112.51 +.. _gPXE: http://etherboot.org/wiki/index.php
  112.52 +.. _rom-o-matic: http://rom-o-matic.net/gpxe/gpxe-1.0.0/contrib/rom-o-matic/
  112.53 +
  112.54 +Personalizziamo il menu di avvio
  112.55 +---------------------------------
  112.56 +
  112.57 +Nelle cartelle xp/c, win98/c, troverete il file :file:`menu.lst`. Questo
  112.58 +file, che verrà copiato in ``c:`` dalla script che lancerete, contiene la
  112.59 +configurazione del boot loader::
  112.60 +
  112.61 +  # imposta i colori
  112.62 +  color blue/white white/green white/blue white/blue 
  112.63 +
  112.64 +  # imposta il tempo di attesa prima di scegliere la prima voce di menù
  112.65 +  timeout 10
  112.66 +  
  112.67 +  title gPXE (LTSP)
  112.68 +  find --set-root /boot/grub/gpxe.iso
  112.69 +  map /boot/grub/gpxe.iso (0xff) || map --mem /boot/grub/gpxe.iso (0xff)
  112.70 +  map --hook
  112.71 +  chainloader (0xff)
  112.72 +  
  112.73 +  title Windows XP/2K/NT
  112.74 +  find --set-root --ignore-floppies /ntldr
  112.75 +  chainloader /ntldr
  112.76 +
  112.77 +  title halt
  112.78 +  halt
  112.79 +
  112.80 +
  112.81 +Installare grub e gPXE da un sistema microsoft
  112.82 +=================================================
  112.83 +
  112.84 +.. image:: ../../img/grub4dos/common_01_share-software.png
  112.85 +   :align: right
  112.86 +
  112.87 +
  112.88 +Prima di procedere con l'installazione di grub, assicuriamoci che, in
  112.89 +``Risorse del computer``, la share ``software`` sia montata; in caso
  112.90 +contrario le script potrebbero non funzionare correttamente.
  112.91 +
  112.92 +Grub verrà installato diversamente a seconda del sistema operativo
  112.93 +utilizzato, si segua dunque il percorso adatto alle proprie esigenze. I
  112.94 +passaggi sono molto semplici si tratta di doppioclickare su di una script
  112.95 +batch.
  112.96 +
  112.97 +
  112.98 +Lanciamo la script di installazione in W98 ed w2k, XP rispettivamente
  112.99 +
 112.100 +.. image:: ../../img/grub4dos/win98_bat.png
 112.101 +   :align: left
 112.102 +
 112.103 +
 112.104 +.. image:: ../../img/grub4dos/xp_bat.png
 112.105 +   :align: center
 112.106 +
 112.107 +
 112.108 +Installazione di grub personalizzata
 112.109 +-------------------------------------
 112.110 +
 112.111 +Chi dovesse avere esigente particolari come, ad esempio, installare il MBR
 112.112 +su di un disco che non è il primo collegato (scelta di default), potrà
 112.113 +affinare manualmente la propria installazione di grub con la seconda script
 112.114 +presente: :file:``
 112.115 +
 112.116 +Dopo aver copiato i file necessari in ``c:\`` la script lancerà ``Grub4Dos
 112.117 +Installer``, un'applicazione che permetterà in modo abbastanza semplice di
 112.118 +installare grub nel disco desiderato. Fate riferimento ai numeri in figura
 112.119 +per non saltare degli step importanti.
 112.120 +
 112.121 +.. figure:: ../../img/grub4dos/xp_02b02_installazione_personalizzata.png
 112.122 +   :scale: 50
 112.123 +   :align: center
 112.124 +
 112.125 +
   113.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   113.2 +++ b/docs/install/contents.rst	Mon Apr 26 11:16:23 2010 +0200
   113.3 @@ -0,0 +1,63 @@
   113.4 +================================
   113.5 + Installazione e configurazione
   113.6 +================================
   113.7 +
   113.8 +Installazione
   113.9 +=============
  113.10 +Scelta dei setup e della topologia della rete.
  113.11 +Installazione del sistema a partire da disco live. 
  113.12 +
  113.13 +.. toctree::
  113.14 +   :maxdepth: 2
  113.15 +
  113.16 +   intro
  113.17 +   install_base
  113.18 +
  113.19 +Configurazioni servizi server
  113.20 +=============================
  113.21 +
  113.22 +Configurazione dei servizi essenziali che devono necessariamente risiedere
  113.23 +sul server
  113.24 +
  113.25 +.. toctree::
  113.26 +   :maxdepth: 2
  113.27 +
  113.28 +   eth_dns
  113.29 +   servizi/pdc
  113.30 +   reteisi
  113.31 +   sshd_key
  113.32 +   servizi/firewall
  113.33 +   servizi/nfs
  113.34 +   servizi/ftp
  113.35 +   servizi/sarg-report
  113.36 +   servizi/apache_userdir
  113.37 +   servizi/apache_limit_pub
  113.38 +
  113.39 +Configurazione servizi firewall
  113.40 +===============================
  113.41 +
  113.42 +Configurazione dei servizi che possono essere installati sul server o su un
  113.43 +firewall a scelta dell'amministratore a seconda della topologia della rete
  113.44 +prescelta. 
  113.45 +
  113.46 +.. toctree::
  113.47 +   :maxdepth: 2
  113.48 +
  113.49 +   servizi/bind
  113.50 +   servizi/bind_server
  113.51 +   servizi/dhcpd
  113.52 +   servizi/squid_dans
  113.53 +
  113.54 +
  113.55 +
  113.56 +Configurazione Client
  113.57 +=====================
  113.58 +
  113.59 +Configurazione delle macchine client
  113.60 +
  113.61 +.. toctree::
  113.62 +   :maxdepth: 2
  113.63 +
  113.64 +   client/client_linux
  113.65 +   client/client_microsoft
  113.66 +   client/grub4dos
   114.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   114.2 +++ b/docs/install/eth_dns.rst	Mon Apr 26 11:16:23 2010 +0200
   114.3 @@ -0,0 +1,126 @@
   114.4 +.. _config_eth_dns:
   114.5 +
   114.6 +Rete e dns (come client)
   114.7 +========================
   114.8 +
   114.9 +Esiste una esperienza di laboratorio sui concetti base del
  114.10 +:ref:`lab_routing` ed una sul :ref:`lab_tinydns`
  114.11 +
  114.12 +Configurazione /etc/hosts
  114.13 +-------------------------
  114.14 +
  114.15 +Sostituire il proprio hostname e localdomain.
  114.16 +
  114.17 +A titolo di esempio è stato sostituito a::
  114.18 +
  114.19 +    127.0.0.1 argo localhost localhost.lan
  114.20 +
  114.21 +La seguente riga
  114.22 +::
  114.23 +  
  114.24 +    127.0.0.1 srv-scuolax localhost srv-scuolax.lan
  114.25 +
  114.26 +
  114.27 +interfacce di rete
  114.28 +------------------
  114.29 +
  114.30 +E' indispensabile che ogni interfaccia di rete che si intende utilizzare sia
  114.31 +configurata con il proprio indirizzo IP.
  114.32 +
  114.33 +Per visualizzare l'elenco completo delle interfacce disponibili si usi il
  114.34 +comando *ifconfig -a* ::
  114.35 +
  114.36 +    root@argo:~$ ifconfig -a
  114.37 +
  114.38 +    eth0      Link encap:Ethernet  HWaddr 03:01:12:35:84:G2
  114.39 +                UP BROADCAST MULTICAST  MTU:1500  Metric:1
  114.40 +                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  114.41 +                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  114.42 +                collisions:0 txqueuelen:1000 
  114.43 +                RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  114.44 +                Interrupt:5 Base address:0x8000 Memory:90000000-90000fff 
  114.45 +
  114.46 +    eth1      Link encap:Ethernet  HWaddr 03:02:24:14:44:A1
  114.47 +                UP BROADCAST MULTICAST  MTU:1500  Metric:1
  114.48 +                RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  114.49 +                TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  114.50 +                collisions:0 txqueuelen:1000 
  114.51 +                RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
  114.52 +                Interrupt:5 Base address:0x8000 Memory:90000000-90000fff 
  114.53 +
  114.54 +    lo        Link encap:Local Loopback  
  114.55 +              inet addr:127.0.0.1  Mask:255.0.0.0
  114.56 +              inet6 addr: ::1/128 Scope:Host
  114.57 +              UP LOOPBACK RUNNING  MTU:16436  Metric:1
  114.58 +              RX packets:382 errors:0 dropped:0 overruns:0 frame:0
  114.59 +              TX packets:382 errors:0 dropped:0 overruns:0 carrier:0
  114.60 +              collisions:0 txqueuelen:0 
  114.61 +              RX bytes:58097 (56.7 KB)  TX bytes:58097 (56.7 KB)
  114.62 +
  114.63 +    
  114.64 +Come si può notare dall'esempio sopra, sul sistema preso in esame sono
  114.65 +presenti due interfacce di rete: *eth0* ed *eth1*.
  114.66 +
  114.67 +Configurare tali interfacce è molto semplice; l'operazione viene effettuata
  114.68 +utilizzando il comando *ifconfig*.
  114.69 +
  114.70 +Si supponga di voler assegnare all'interfaccia di rete eth0 ip 192.168.1.1::
  114.71 +
  114.72 +    argo:~# ifconfig eth0 192.168.1.1 up
  114.73 +
  114.74 +Per verificare che l'interfaccia sia stata configurata correttamente è
  114.75 +possibile eseguire nuovamente il comando *ifconfig -a* od in alternativa il
  114.76 +più selettivo *ifconfig INTERFACCIA* che, diversamente, mostrerà la
  114.77 +configurazione attuale della sola interfaccia specificata, ad esempio eth0.
  114.78 +
  114.79 +Si supponga inoltre di volere impostare un gateway predefinito di ip
  114.80 +192.168.1.254, raggiungibile attraverso l'interfaccia eth0::
  114.81 +
  114.82 +    argo:~# route add -net default gw 192.168.1.254 eth0
  114.83 +
  114.84 +Sarà possibile verificare la bontà di tale configurazione con il comando *route -n*::
  114.85 +
  114.86 +                    Kernel IP routing table
  114.87 +    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
  114.88 +    192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0
  114.89 +    169.254.0.0     0.0.0.0         255.255.0.0     U     1000   0        0 eth1
  114.90 +    0.0.0.0         192.168.1.254   0.0.0.0         UG    100    0        0 eth0
  114.91 +
  114.92 +.. commento: 
  114.93 +
  114.94 +  Nota: 
  114.95 +
  114.96 +  169.254.0.0 è un indirizzo  che viene assegnato alle
  114.97 +  interfacce di rete *non* configurate quando
  114.98 +
  114.99 +Tutte le configurazione effettuate, sebbene già operative, hanno carattere
 114.100 +temporaneo. Al riavvio della macchina verranno infatti perse. Per questa
 114.101 +ragione è indispensabile "fissarle" modificando il file di sistema
 114.102 +``/etc/network/interfaces``.  Fortunatamente, un tool argo, rende questo
 114.103 +passaggio del tutto automatico. Basterà infatti lanciare il comando
 114.104 +``save-net`` per "fissare" la configurazione di rete attivata.
 114.105 +
 114.106 +
 114.107 +Dns
 114.108 +---
 114.109 +
 114.110 +Per impostare i DNS, basterà modificare il file */etc/resolv.conf*::
 114.111 +
 114.112 +        nameserver INDIRIZZO_IP_DNS1
 114.113 +        nameserver INDIRIZZO_IP_DNS2
 114.114 +
 114.115 +*Nota*: L'ordine con il quale vengono elencati i server dns da utilizzare ne
 114.116 + stabiliscono la priorità.
 114.117 +
 114.118 +
 114.119 +Qualora si decidesse di utilizzare un servente DNS attivo sulla macchina
 114.120 +stessa, basterà modificare ``/etc/resolv.conf`` come segue::
 114.121 +
 114.122 +        nameserver 127.0.0.1
 114.123 +        nameserver INDIRIZZO_IP_DNS1
 114.124 +        nameserver INDIRIZZO_IP_DNS2
 114.125 +
 114.126 +In questo modo il DNS utilizzato prioritariamente sarà quello locale.
 114.127 +
 114.128 +
 114.129 +
   115.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   115.2 +++ b/docs/install/install_base.rst	Mon Apr 26 11:16:23 2010 +0200
   115.3 @@ -0,0 +1,240 @@
   115.4 +.. _install_base:
   115.5 +
   115.6 +===========================
   115.7 + Installazione base di ISI
   115.8 +===========================
   115.9 +
  115.10 +Installazione in 3 passi
  115.11 +========================
  115.12 +
  115.13 +Installare un sistema ReteIsi dal CD live ad un PDC perfettamente
  115.14 +funzionante è molto semplice se si seguono poche linee sotto elencate che si
  115.15 +riassumono in:
  115.16 +
  115.17 +#. decidere come creare le partizioni (:term:`raid` è suggerito).  La
  115.18 +   installazione non è altro che una copia del cd live che avviene per mezzo
  115.19 +   di un comando che legge un file di configurazione. Se ne può usare uno
  115.20 +   preconfezionato (prelevandolo dalla cartella /etc/clone/examples) ed
  115.21 +   eventualmente modificarlo
  115.22 +
  115.23 +#. lanciare il comando ``clone`` e riavviare 
  115.24 +  
  115.25 +#. fare la prima configurazione con il comando::
  115.26 +
  115.27 +     isi-startup DOMINIO NOME_PDC PWD
  115.28 +
  115.29 +Il sistema a questo punto è pronto per fare il join da una macchina Windows
  115.30 +o per diventare server di autenticazione di una macchina Linux salvo le
  115.31 +ovvie configurazioni di :ref:`firewalling <config_firewall>` 
  115.32 +e :ref:`rete <config_eth_dns>`.
  115.33 +
  115.34 +
  115.35 +Note hardware
  115.36 +-------------
  115.37 +
  115.38 +Quanti hardisk utilizzare
  115.39 ++++++++++++++++++++++++++
  115.40 +
  115.41 +Talvolta, per una politica di risparmio, si preferisce utilizzare un solo
  115.42 +disco. L'attuale costo degli hardisk ed il buon senso scoraggiano tale
  115.43 +pratica in favore di una configurazione raid1(mirroring) che utilizzi due
  115.44 +dischi. Tale configurazione assicura che, in caso di rottura di uno dei due
  115.45 +dischi, il disco gemello garantisca il normale uso del sistema. Si potrà
  115.46 +inoltre collegare in seguito, in sostituzione del disco danneggiato, un
  115.47 +nuovo disco su cui riattivare il "gemellaggio".
  115.48 +
  115.49 +Procurarsi l'ultima versione di ISI
  115.50 ++++++++++++++++++++++++++++++++++++
  115.51 +
  115.52 +Si potrà scaricare la versione più recente dal sito 
  115.53 +http://download.argolinux.org/isi/. Se avete problemi potete seguire qui le
  115.54 +istruzioni per :ref:`masterizzarla <masterizzare_iso>`.
  115.55 +
  115.56 +Iniziare l'installazione
  115.57 +------------------------
  115.58 +
  115.59 +Avviare la macchina con il cd dell'ultima release di ISI nel lettore cdrom (
  115.60 +ci si assicuri preventivamente che il BIOS sia stato correttamente
  115.61 +configurato per avviare prioritariamente da cdrom).
  115.62 +
  115.63 +La procedura di boot terminerà con una richiesta di autenticazione.
  115.64 +::
  115.65 +
  115.66 +    Debian GNU/Linux 4.0 argo tty1
  115.67 +
  115.68 +    argo login: root
  115.69 +
  115.70 +Ci si autentichi inserendo come nome utente *root*; per quanto riguarda la
  115.71 +password, basterà un semplice invio.
  115.72 +
  115.73 +.. commento: img/icone/dialog-information.svg
  115.74 +
  115.75 +
  115.76 +Clone
  115.77 +=======
  115.78 +
  115.79 +*Cos'è Clone*
  115.80 +-------------
  115.81 +
  115.82 +Clone è una script (in python) che si occupa dell'intero processo di
  115.83 +installazione a partire da un file di configurazione. Argoisi viene
  115.84 +distribuita con una serie di esempi di file di configurazione e le modifiche
  115.85 +da apportare a questi esempi sono minime
  115.86 +
  115.87 +
  115.88 +Creazione del file di configurazione
  115.89 +++++++++++++++++++++++++++++++++++++
  115.90 +
  115.91 +Il file di configurazione, contiene fra le altre queste informazioni: 
  115.92 +
  115.93 +* se si vuole un RAID o no
  115.94 +* il numero di partizioni da creare
  115.95 +* gli hardisk da utilizzare 
  115.96 +* il tipo di filesystem scelto per ogni partizione
  115.97 +
  115.98 +Creazione di un file-schema ad hoc
  115.99 +++++++++++++++++++++++++++++++++++
 115.100 +
 115.101 +ISI-live mette a disposizione in "/etc/clone/examples" una serie di modelli
 115.102 +a tal proposito.  A seconda del tipo di installazione che si intende
 115.103 +effettuare potrebbe essere preferibile utilizzare un modello piuttosto che
 115.104 +un altro. Per installare il sistema verrà utilizzato il modello
 115.105 +``/etc/clone/examples/isi``. Si crei dunque copia di tale file in ``/etc/clone/isi`` e
 115.106 +lo si modifichi affinchè risponda alle proprie esigenze.  ::
 115.107 +
 115.108 +  argo:~# cp /etc/clone/examples/isi /etc/clone/
 115.109 +  
 115.110 +  argo:~# jmacs /etc/clone/isi
 115.111 +  
 115.112 +.. sidebar:: **Nota**
 115.113 +
 115.114 +   Chi non avesse molta famigliarità con l'editor di testo :term:`jmacs` potrà
 115.115 +   utilizzare un editor di testo più intuitivo come :term:`nano` ::
 115.116 +
 115.117 +    argo:~# nano /etc/clone/isi
 115.118 +
 115.119 +Aperto il file, si proceda alla modifica inserendo i dati più opportuni.
 115.120 +::
 115.121 +
 115.122 +    GRUB_DEV="hd0,0"
 115.123 +    EMAIL="[email protected]"                 
 115.124 +    RAID='raid1'
 115.125 +    PARTITIONING=1
 115.126 +    FORMATTING=1
 115.127 +    LIVE=1
 115.128 +    DISCS="/dev/sda /dev/sdb"
 115.129 +    DESCR="""
 115.130 +    mnt_p     fmt   fs              dim     part_n  overwrite opt
 115.131 +    /boot     1     ext2            24      1       0
 115.132 +    swap      1     swap            512     5       1
 115.133 +    /free     1     reiserfs        3500    6       1
 115.134 +    /         1     reiserfs        3500    7       1         defaults,acl
 115.135 +    /home     1     reiserfs        fill    8       0         defaults,acl
 115.136 +    """
 115.137 +
 115.138 +Qualche osservazione sul contenuto del file
 115.139 ++++++++++++++++++++++++++++++++++++++++++++
 115.140 +
 115.141 +.. sidebar:: Nota
 115.142 +   
 115.143 +  In caso si stia utilizzando un solo disco, rinunciando quindi alla
 115.144 +  configurazione raid1, si dovrà commentare  inserendo il simbolo # ad
 115.145 +  inizio riga) o rimuovere la riga contentente la direttiva
 115.146 +  ``RAID='raid1'`` ed impostare la direttiva ``DISCS`` con il solo disco
 115.147 +  disponibile. Un RAID hardware viene visto dal sistema come un disco unico
 115.148 +  e rientra quindi nel caso appena citato.
 115.149 +
 115.150 ++ Il parametro *DISCS* fa espresso riferimento al modo in cui gli hardisk
 115.151 +  vengono visti dal sistema. Alcuni sistemi potrebbero riferirsi a tali
 115.152 +  dispositivi utilizzando nome diversi a seconda del controller rilevato. Si
 115.153 +  potrebbe, per esempio, trovare ``/dev/hda`` al posto di ``/dev/sda``.  Per
 115.154 +  fugare ogni dubbio in merito si dovrà utilizzare il seguente comando::
 115.155 +
 115.156 +    argo:~# cat /proc/partitions 
 115.157 +    major minor  #blocks  name
 115.158 +
 115.159 +       7     1       1612 loop1
 115.160 +       7     2       2068 loop2
 115.161 +       7     3       2284 loop3
 115.162 +       7     4          4 loop4
 115.163 +       7     5      12652 loop5
 115.164 +       7     6          4 loop6
 115.165 +       7     7      59840 loop7
 115.166 +       7     8       2144 loop8
 115.167 +       7     9     133264 loop9
 115.168 +       7    10      22984 loop10
 115.169 +       8     0    3145728 sda
 115.170 +       8     0    3145728 sdb
 115.171 +
 115.172 +Come si può notare dall'output, i dischi vengono riconosciuti come come "sd*"
 115.173 +
 115.174 +.. sidebar:: Nota
 115.175 +
 115.176 +  Utilizzando il parametro ``fill``, in sostituzione della dimensione da
 115.177 +  occupare, clone assegnerà alla partizione tutto lo spazio libero
 115.178 +  rimanente. Questo parametro può essere utilizzato solo nell'ultima
 115.179 +  partizione. 
 115.180 +  
 115.181 +
 115.182 +Avvio del processo di Clonazione
 115.183 +--------------------------------
 115.184 +
 115.185 +Ora che il file di configurazione è pronto, non resterà che lanciare *clone* in modo
 115.186 +che carichi la configurazione appena creata::
 115.187 +
 115.188 +    argo:~# clone /etc/clone/isi
 115.189 +    PARTITIONING        : True
 115.190 +    FORMATTING          : True
 115.191 +    RAID                : True
 115.192 +    disc0               : sda sdb
 115.193 +    PART:  /dev/sda1 /boot ext2 defaults 0 2 (format: True)
 115.194 +    PART:  /dev/sda5 swap swap defaults 0 0 (format: True)
 115.195 +    PART:  /dev/sda6 /free reiserfs defaults 0 2 (format: True)
 115.196 +    PART:  /dev/sda7 / reiserfs defaults,acl 0 1 (format: True)
 115.197 +    PART:  /dev/sda8 /home reiserfs defaults,acl 0 2 (format: True)
 115.198 +    Continuo? [Y/n (n default)] 
 115.199 +
 115.200 +Dopo aver confermato l'avvio del processo e atteso il tempo di un caffè, non
 115.201 +resterà che scegliere una password per l'utente amministrativo root e
 115.202 +riavviare la macchina::
 115.203 +
 115.204 +    bin... boot... dev... etc... lib... home... opt... sbin... root... usr... var... 
 115.205 +    chroot /.clone mkinitramfs -o /boot/initrd-2.6.20.11argo1 -r /dev/sda6 2.6.20.11argo1
 115.206 +    Inoltro a  [email protected]
 115.207 +    grub-install --recheck --force-lba --no-floppy --root-directory=/.clone /dev/sda
 115.208 +    chroot /.clone /usr/sbin/update-grub
 115.209 +    Total clone time 3:06 minutes
 115.210 +       fdisk: 0:06
 115.211 +       copy: 2:39
 115.212 +       format: 0:00
 115.213 +    New password: 
 115.214 +    Re-enter new password: 
 115.215 +    LDAP password information changed for root
 115.216 +    passwd: password updated successfully
 115.217 +    umount  /.clone/boot
 115.218 +    umount  /.clone/
 115.219 +
 115.220 +    argo:~# reboot
 115.221 +
 115.222 +A reboot effettuato, si potrà accedere al sistema autenticandosi come utente
 115.223 +*root* ed utilizzando la password scelta in precedenza.
 115.224 +
 115.225 +Configurazione Dominio
 115.226 +----------------------
 115.227 +
 115.228 +Per installare il dominio è sufficiente  lanciare il comando::
 115.229 +
 115.230 +  isi-startup NOME_DOMINIO nome_server password_root
 115.231 +
 115.232 +questa script si occupa di fare tutto il necessario:
 115.233 +
 115.234 +* configura samba impostando il nome di dominio ed il nome server netbios
 115.235 +* imposta la password di amministratore (root) della macchina linux
 115.236 +* imposta la password di amminstratore samba (administrator) del dominio
 115.237 +* imposta la password di accesso al sottosistema di autenticazione (ldap)
 115.238 +* controlla che tutti i SID definiti in LDAP siano dello stesso dominio
 115.239 +* cambia ove necessario il nome dell'host
 115.240 +* corregge il campo dell'ID del'utente nuovo da creare
 115.241 +* imposta i permessi del filesystem (``isi-perms`` & ``isi-classe``)
 115.242 +
 115.243 +
   116.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   116.2 +++ b/docs/install/intro.rst	Mon Apr 26 11:16:23 2010 +0200
   116.3 @@ -0,0 +1,173 @@
   116.4 +=================
   116.5 + Possibili setup
   116.6 +=================
   116.7 +
   116.8 +Firewall
   116.9 +========
  116.10 +
  116.11 +.. figure:: ../img/rete-fwisi.png
  116.12 +   :align: center
  116.13 +
  116.14 ++ :ref:`La rete <config_eth_dns>`
  116.15 +
  116.16 ++ Le politiche di :ref:`firewalling <config_firewall>`
  116.17 +
  116.18 +
  116.19 +Server di dominio ISI
  116.20 +=====================
  116.21 +
  116.22 +.. figure:: ../img/rete-srvisi.png
  116.23 +   :align: center
  116.24 +
  116.25 +Questa tipologia di installazione presuppone che ci sia già un firewall a
  116.26 +protezione della rete. Il comando ``firewall`` del server, configurato per
  116.27 +considerare la zona a cui è collegato come *interna*, adotterà pertanto una
  116.28 +politica di filtraggio più permissiva.
  116.29 +
  116.30 +
  116.31 ++ :ref:`La rete <config_eth_dns>`
  116.32 +
  116.33 ++ Le politiche di :ref:`firewalling <config_firewall>`
  116.34 +
  116.35 ++ Attivare il server di Dominio
  116.36 +
  116.37 ++ I servizi principali
  116.38 +
  116.39 +    + demone nfs
  116.40 +
  116.41 +        + a cosa serve
  116.42 +
  116.43 +        + files di configurazione
  116.44 +
  116.45 +        + configurazione del servizio
  116.46 +
  116.47 +    + demone dhcp
  116.48 +
  116.49 +        + a cosa serve
  116.50 +
  116.51 +        + files di configurazione
  116.52 +
  116.53 +        + :ref:`configurazione del servizio <config_dhcpd>`
  116.54 +
  116.55 +
  116.56 +    + demone dns
  116.57 +
  116.58 +        + a cosa serve
  116.59 +
  116.60 +        + files di configurazione
  116.61 +
  116.62 +        + configurazione del servizio
  116.63 +
  116.64 +
  116.65 +    + proxy
  116.66 +
  116.67 +        + Squid
  116.68 +
  116.69 +            + a cosa serve
  116.70 +
  116.71 +            + files di configurazione
  116.72 +
  116.73 +            + configurazione del servizio
  116.74 +
  116.75 +        + Dans Guardian
  116.76 +
  116.77 +            + a cosa serve
  116.78 +
  116.79 +            + requisiti
  116.80 +
  116.81 +            + files di configurazione
  116.82 +
  116.83 +            + configurazione del servizio
  116.84 +
  116.85 +        + ClamAV
  116.86 +
  116.87 +            + a cosa serve
  116.88 +
  116.89 +            + requisiti
  116.90 +
  116.91 +            + files di configurazione
  116.92 +
  116.93 +            + configurazione del servizio
  116.94 +
  116.95 +
  116.96 +        + sarg
  116.97 +
  116.98 +            + a cosa serve
  116.99 +
 116.100 +            + requisiti
 116.101 +
 116.102 +            + files di configurazione
 116.103 +
 116.104 +            + configurazione del servizio
 116.105 +
 116.106 +    + web server: apache
 116.107 +
 116.108 +    + posta
 116.109 +    
 116.110 +        + pop3
 116.111 +
 116.112 +            popa3d
 116.113 +
 116.114 +                + a cosa serve
 116.115 +
 116.116 +                + requisiti
 116.117 +
 116.118 +                + files di configurazione
 116.119 +
 116.120 +                + configurazione del servizio
 116.121 +
 116.122 +        + smtp
 116.123 +
 116.124 +
 116.125 +
 116.126 +Aggiornare una precedente release di ISI
 116.127 +----------------------------------------
 116.128 +
 116.129 +DA COMPLETARE
 116.130 +
 116.131 ++ aggiornare un sistema ISI preesistente
 116.132 +
 116.133 +        + Principali salti di versione (e link al changelog)
 116.134 +
 116.135 +        + Aggiornare da una isi versione X ad una isi versione Y....
 116.136 +
 116.137 +
 116.138 +
 116.139 +            
 116.140 +
 116.141 +Configurare i client per il dominio
 116.142 +-----------------------------------
 116.143 +
 116.144 +
 116.145 ++ Client Windows
 116.146 +
 116.147 +    + Windows98 Second Edition
 116.148 +
 116.149 +        procedura illustrata
 116.150 +
 116.151 +    + Windows2000
 116.152 +
 116.153 +        procedura illustrata
 116.154 +
 116.155 +
 116.156 +    + Windows XP Home
 116.157 +
 116.158 +        tale versione non è in grado do accedere al dominio.
 116.159 +
 116.160 +    + Windows XP Professional
 116.161 +
 116.162 +        procedura illustrata
 116.163 +
 116.164 +
 116.165 +
 116.166 +
 116.167 ++ Client Linux
 116.168 +
 116.169 +    + Edubuntu linux
 116.170 +
 116.171 +        pacchetti aggiuntivi necessari
 116.172 +        
 116.173 +        Configurazione del client
 116.174 +        
 116.175 +
 116.176 +
   117.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   117.2 +++ b/docs/install/reteisi.rst	Mon Apr 26 11:16:23 2010 +0200
   117.3 @@ -0,0 +1,39 @@
   117.4 +.. _config_files:
   117.5 +
   117.6 +Reteisi
   117.7 +=======
   117.8 +
   117.9 +
  117.10 +/etc/isi
  117.11 +--------
  117.12 +
  117.13 +.. index:: logon.bat
  117.14 +
  117.15 +logon.bat
  117.16 +~~~~~~~~~
  117.17 +
  117.18 +.. index:: logon.conf
  117.19 +
  117.20 +logon.conf
  117.21 +~~~~~~~~~~
  117.22 +
  117.23 +.. index:: acl.conf
  117.24 +
  117.25 +acl.conf
  117.26 +~~~~~~~~
  117.27 +
  117.28 +
  117.29 +Home e share
  117.30 +============
  117.31 +
  117.32 +
  117.33 +/home/users
  117.34 +-----------
  117.35 +
  117.36 +/home/shares
  117.37 +------------
  117.38 +
  117.39 +
  117.40 +/home/samba
  117.41 +-----------
  117.42 +
   118.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   118.2 +++ b/docs/install/servizi/apache_limit_pub.rst	Mon Apr 26 11:16:23 2010 +0200
   118.3 @@ -0,0 +1,143 @@
   118.4 +Pubblicare una directory e restringerne l'accsso via Apache2
   118.5 +============================================================
   118.6 +
   118.7 +Cosa si intende con pubblicare una directory?
   118.8 +------------------------------------------------
   118.9 +
  118.10 +Pubblicare una directory del nostro filesystem via webserver ci permette
  118.11 +di poterla raggiungere remotamente con il nostro browser preferito, puntando
  118.12 +semplicemente ad un indirizzo del tipo ``http://<server>/directory``.
  118.13 +
  118.14 +Un esempio concreto : Pubblichiamo le statistiche del server proxy Squid
  118.15 +----------------------------------------------------------------------------
  118.16 +
  118.17 +Ci porremo come obiettivo la pubblicazione del contenuto della directory
  118.18 +"/var/www/squid-reports", contenente i report generati da :ref:`sarg <sarg-report>`
  118.19 +relativi al proxy.
  118.20 +Dato che le informazioni contenute nella directory in questione sono
  118.21 +riservate, l'accesso verra' limitato ad alcuni particolari network, ai quali
  118.22 +si rendera' comunque obbligatorio un processo autenticativo. 
  118.23 +
  118.24 +Prepariamo il file delle password
  118.25 +---------------------------------
  118.26 +Il file delle password contiene le credenziali necessarie per il processo di
  118.27 +autenticazione. 
  118.28 +
  118.29 +Creiamo la directory in cui mettere il nostro file::
  118.30 +
  118.31 +    mkdir /etc/apache2/htpasswd-sites/squid-reports
  118.32 +
  118.33 +Generiamo il file password ::
  118.34 +
  118.35 +    htpasswd -c /etc/apache2/htpasswd-sites/squid-reports nomeutente
  118.36 +
  118.37 +E ne restringiamo l'accesso il piu' possibile ::
  118.38 +
  118.39 +    chown root.www-data /etc/apache2/htpasswd-sites/squid-reports
  118.40 +    chmod 640 /etc/apache2/htpasswd-sites/squid-reports
  118.41 +
  118.42 +Ora siamo pronti per apportare le modifiche ad apache2.
  118.43 +
  118.44 +Modifichiamo quindi "/etc/apache2/sites-enabled/000-default" od il file di
  118.45 +configurazione di un sito abilitato (000-default e' solitamente attivo gia'
  118.46 +attivo di default), e aggiungiamo nella sezione compresa tra
  118.47 +<VirtualHost></VirtualHost>, una sottosezione <directory> che istruisca
  118.48 +apache su come pubblicare la nostra directory "/var/www/squid-reports". 
  118.49 +
  118.50 +Nella configurazione di esempio verrà consentito solo a localhost ed al
  118.51 +network 192.168.1.0/24 l'accesso alla fase autenticativa che consente di
  118.52 +raggiungere la directory, tutti gli altri host verranno rifiutati ::
  118.53 +
  118.54 +    <Directory "/var/www/http/squid-reports/">
  118.55 +    #########################################################################
  118.56 +    # Permette solo a 127.0.0.1 ed al network 192.168.1.0/24 di accedere alla
  118.57 +    # directory
  118.58 +      Deny from all
  118.59 +      Order Deny,Allow
  118.60 +
  118.61 +      Allow from 127.0.0.1/255.0.0.0 ::1/128
  118.62 +      Allow from 192.168.1.0/255.0.0.0
  118.63 +    #########################################################################
  118.64 +    # Attivare autenticazione tramite file di password
  118.65 +    # -----------------------------------------------------
  118.66 +    # Creare il file password ::
  118.67 +    #
  118.68 +    #     htpasswd -c /dir/filepassword utente
  118.69 +    #
  118.70 +    # Limitiamo il piu' possibile i permessi del file ma teniamo anche presente
  118.71 +    # che Apache dovra' poterlo leggere per verificare le credenziali fornitegli::
  118.72 +    #
  118.73 +    #     chown root.www-data /dir/filepassword
  118.74 +    #     chmod 640 /dir/filepassword
  118.75 +    #
  118.76 +      AuthType Basic
  118.77 +    # Si potra' personalizzare il messaggio che compare alla richiesta di
  118.78 +    # autenticazione.
  118.79 +      AuthName "Area ad accesso limitato."
  118.80 +      AuthUserFile /dir/filepassword
  118.81 +    # Richiede un utente particolare
  118.82 +    #  Require user nomeutente
  118.83 +    # Ritiene valido uno qualunque degli utenti inseriti nel file di password
  118.84 +      Require valid-user
  118.85 +    </Directory>
  118.86 +
  118.87 +E' anche possibile definire un Alias( lo si puo' intendere come un soprannome
  118.88 +che diamo alla nostra directory di destinazione), anteponendo al blocco
  118.89 +<Directory></Directory> una direttiva "Alias".
  118.90 +
  118.91 +Es. ::
  118.92 +
  118.93 +    Alias /reports "/var/www/http/squid-reports/"
  118.94 +
  118.95 +Nell'esempio sopra si e' definito un Alias "reports" che permette di raggiungere
  118.96 +"/var/www/http/squid-reports/" anche tramite l'url "http://server/reports".
  118.97 +
  118.98 +Ultimate le modifiche, il nostro file di configurazione dovrebbe contenere un
  118.99 +blocco simile alla seguente ::
 118.100 +
 118.101 +    Alias /reports "/var/www/http/squid-reports/"
 118.102 +    <Directory "/var/www/http/squid-reports/">
 118.103 +    #########################################################################
 118.104 +    # Permette solo a 127.0.0.1 ed al network 192.168.1.0/24 di accedere alla
 118.105 +    # directory
 118.106 +      Deny from all
 118.107 +      Order Deny,Allow
 118.108 +
 118.109 +      Allow from 127.0.0.1/255.0.0.0 ::1/128
 118.110 +      Allow from 192.168.1.0/255.0.0.0
 118.111 +    #########################################################################
 118.112 +    # Attivare autenticazione tramite file di password
 118.113 +    # -----------------------------------------------------
 118.114 +    # Creare il file password ::
 118.115 +    #
 118.116 +    #     htpasswd -c /dir/filepassword utente
 118.117 +    #
 118.118 +    # Limitiamo il piu' possibile i permessi del file ma teniamo anche presente
 118.119 +    # che Apache dovra' poterlo leggere per verificare le credenziali fornitegli::
 118.120 +    #
 118.121 +    #     chown root.www-data /dir/filepassword
 118.122 +    #     chmod 640 /dir/filepassword
 118.123 +    #
 118.124 +      AuthType Basic
 118.125 +    # Si potra' personalizzare il messaggio che compare alla richiesta di
 118.126 +    # autenticazione.
 118.127 +      AuthName "Area ad accesso limitato."
 118.128 +      AuthUserFile /dir/filepassword
 118.129 +    # Richiede un utente particolare
 118.130 +    #  Require user nomeutente
 118.131 +    # Ritiene valido uno qualunque degli utenti inseriti nel file di password
 118.132 +      Require valid-user
 118.133 +    ### Personalizzazione messaggi di errore
 118.134 +    # CODICE 401 : Credenziali fornite non valide
 118.135 +    # CODICE 403 : Indirizzo di rete rifiutato
 118.136 +      ErrorDocument 401 "Credenziali fornite non valide !"
 118.137 +      ErrorDocument 403 "Non ti e' consentito accedere a quest'area."
 118.138 +
 118.139 +    </Directory>
 118.140 +
 118.141 +
 118.142 +
 118.143 +Per spiegazioni ulteriori sulle direttive usate si rimanda alla
 118.144 +documentazione_ ufficiale di apache2
 118.145 +
 118.146 +.. _documentazione: http://httpd.apache.org/docs/1.3/howto/auth.html
   119.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   119.2 +++ b/docs/install/servizi/apache_userdir.rst	Mon Apr 26 11:16:23 2010 +0200
   119.3 @@ -0,0 +1,148 @@
   119.4 +.. _config_apache_userdir:
   119.5 +
   119.6 +Pubblicare le  home utente  con Apache2
   119.7 +=======================================
   119.8 +
   119.9 +Cosa serve?
  119.10 +-----------
  119.11 +
  119.12 +1. Apache2 installato e configurato correttamente
  119.13 +2. Modulo ``userdir`` del webserver configurato ed attivato
  119.14 +
  119.15 +Focalizzeremo la nostra attenzione sul punto ``2``.
  119.16 +
  119.17 +I moduli estendono le funzionalità del webserver. Per gestirne attivazione e
  119.18 +disattivazione, Apache mette a disposizione due comandi:
  119.19 +
  119.20 +- ``a2enmod`` elenca i moduli `non avviati` disponibili e permette di attivarli.
  119.21 +-  ``a2dismod`` elenca i moduli `avviati` disponibili e permette di disattivarli.
  119.22 +
  119.23 +Nella pratica, attivazione e disattivazione consistono nella semplice creazione di
  119.24 +un collegamento simbolico da ``/etc/apache2/mods-available/nomemodulo.load`` a 
  119.25 +``/etc/apache2/mods-enabled/.load``.
  119.26 +Alcuni moduli hanno inoltre un file aggiuntivo di configurazione del tipo 
  119.27 +`nomemodulo.conf` qualora si procedesse all'attivazione manuale, non si dimentichi
  119.28 +di aggiungere anche quel collegamento simbolico se necessario!.
  119.29 +
  119.30 +Quali moduli ho a disposizione?
  119.31 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  119.32 +
  119.33 +::
  119.34 +
  119.35 +    ls /etc/apache2/mods-available/
  119.36 +    
  119.37 +    actions.load        authz_dbm.load        charset_lite.load  dump_io.load   
  119.38 +    log_forensic.load    proxy_connect.load           unique_id.load
  119.39 +    alias.load          authz_default.load    dav_fs.conf        env.load       
  119.40 +    mem_cache.conf       proxy_ftp.load               userdir.conf
  119.41 +    asis.load           authz_groupfile.load  dav_fs.load        expires.load   
  119.42 +    mem_cache.load       proxy_http.load              userdir.load
  119.43 +    auth_basic.load     authz_host.load       dav.load           ext_filter.load
  119.44 +    mime.load            proxy.load                   usertrack.load
  119.45 +    auth_digest.load    authz_owner.load      dav_lock.load      file_cache.load
  119.46 +    mime_magic.conf      rewrite.load                 version.load
  119.47 +    authn_alias.load    authz_user.load       dbd.load           filter.load    
  119.48 +    mime_magic.load      setenvif.load                vhost_alias.load
  119.49 +    authn_anon.load     autoindex.load        deflate.conf       headers.load   
  119.50 +    negotiation.load     sick-hack-to-update-modules
  119.51 +    authn_dbd.load      cache.load            deflate.load       ident.load     
  119.52 +    php5.conf            speling.load
  119.53 +    authn_dbm.load      cern_meta.load        dir.conf           imagemap.load  
  119.54 +    php5.load            ssl.conf
  119.55 +    authn_default.load  cgid.conf             dir.load           include.load   
  119.56 +    proxy_ajp.load       ssl.load
  119.57 +    authn_file.load     cgid.load             disk_cache.conf    info.load      
  119.58 +    proxy_balancer.load  status.load
  119.59 +    authnz_ldap.load    cgi.load              disk_cache.load    ldap.load      
  119.60 +    proxy.conf           suexec.load
  119.61 +
  119.62 +Quali sono già stati attivati?
  119.63 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  119.64 +
  119.65 +::
  119.66 +
  119.67 +    ls /etc/apache2/mods-enabled/
  119.68 +    
  119.69 +    actions.load  auth_basic.load  authz_default.load    authz_host.load  
  119.70 +    autoindex.load  dir.conf  env.load   negotiation.load  php5.load      
  119.71 +    status.load    alias.load    authn_file.load  authz_groupfile.load  
  119.72 +    authz_user.load  cgi.load    dir.load  mime.load  php5.conf    setenvif.load
  119.73 +
  119.74 +.. Note::
  119.75 +    
  119.76 +    Notare l'assenza di ``userdir.load``
  119.77 +
  119.78 +Configurare il modulo ``userdir.load``
  119.79 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  119.80 +
  119.81 +Affinchè il webserver pubblicizzi il sito personale di ogni utente, contenuto in
  119.82 +~utente/public_html, modificheremo ``userdir.conf``.
  119.83 +
  119.84 +.. Note::
  119.85 +
  119.86 +   Nota probabilmente ovvia:
  119.87 +   Nell'esempio che segue viene usato l'editor `jmacs`. Ovviamente nulla viete di 
  119.88 +   usare il proprio editor di testi preferito.
  119.89 +
  119.90 +::
  119.91 +    
  119.92 +    jmacs /etc/apache2/mods-available/userdir.conf
  119.93 +
  119.94 +    <IfModule mod_userdir.c>
  119.95 +            UserDir public_html
  119.96 +            UserDir disabled root
  119.97 +
  119.98 +            <Directory /home/*/public_html>
  119.99 +                    AllowOverride FileInfo AuthConfig Limit
 119.100 +                    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 119.101 +            </Directory>
 119.102 +    </IfModule>
 119.103 +
 119.104 +In questo modo::
 119.105 +    
 119.106 +    <IfModule mod_userdir.c>
 119.107 +            UserDir public_html
 119.108 +            UserDir disabled root
 119.109 +
 119.110 +            <Directory /home/users/*/*/public_html>
 119.111 +                    AllowOverride FileInfo AuthConfig Limit
 119.112 +                    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
 119.113 +            </Directory>
 119.114 +    </IfModule>
 119.115 +
 119.116 +.. Note::
 119.117 +
 119.118 +    Ovviamente è stato impostato ``/home/users/*/*/public_html`` per rispettare
 119.119 +    l'organizzazione delle `home utente` ISI.
 119.120 +
 119.121 +Attivare ``userdir.load``
 119.122 +~~~~~~~~~~~~~~~~~~~~~~~~~
 119.123 +
 119.124 +Non resta che procedere all'attivazione di ``userdir`` usando ``a2enmod`` ::
 119.125 +
 119.126 +    a2enmod userdir
 119.127 +
 119.128 +    Module userdir installed; run /etc/init.d/apache2 force-reload to enable.
 119.129 +
 119.130 +E ad inizializzare apache2 come indicato da ``a2enmod``
 119.131 +::
 119.132 +
 119.133 +    /etc/init.d/apache2 force-reload
 119.134 +    Forcing reload of web server (apache2)...apache2: Could not reliably determine
 119.135 +    the server's fully qualified domain name, using 127.0.0.1 for ServerName
 119.136 +    waiting apache2: Could not reliably determine the server's fully qualified 
 119.137 +    domain name, using 127.0.0.1 for ServerName
 119.138 +
 119.139 +Verificare che tutto funzioni
 119.140 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 119.141 +
 119.142 +La verifica viene fatta, molto semplicemente, puntando un qualunque browser
 119.143 +su ``http://server/~nomeutente``.
 119.144 +
 119.145 +Od in alternativa, direttamente da server, con un semplicissimo::
 119.146 +
 119.147 +    lynx http://localhost/~test
 119.148 +
 119.149 +Se a risponderci sarà la pagina `index.html` contenuta in `~test/public_html` la 
 119.150 +procedura sarà andata a buon fine =)
 119.151 +
   120.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   120.2 +++ b/docs/install/servizi/bind.rst	Mon Apr 26 11:16:23 2010 +0200
   120.3 @@ -0,0 +1,52 @@
   120.4 +.. _config_bind:
   120.5 +
   120.6 +dns server: bind9
   120.7 +===================
   120.8 +
   120.9 +Bind è il server dns. 
  120.10 +
  120.11 +.. sidebar:: Serve? 
  120.12 +
  120.13 +  La configurazione di questo servizio è necessaria solo
  120.14 +  se si ha un server web interno alla scuola, con IP privato e si deidera
  120.15 +  poterlo raggiungere con lo stesso nome dall'interno e dall'esterno della
  120.16 +  scuola. In questo caso la configurazione è più complessa di quanto riportato
  120.17 +  di seguito.
  120.18 +  
  120.19 +
  120.20 +L'attivazione di bind non richiede nessuna modifica particolare; la
  120.21 +configurazione trovata di default andrà dunque benissimo.
  120.22 +
  120.23 +Ci si assicuri che sia avviato::
  120.24 +
  120.25 +    srv-scuolax:/etc/dhcp3# ps aux|grep bind
  120.26 +    root      5118  0.0  0.2   2860   692 pts/0    R+   17:24   0:00 grep  bind
  120.27 +
  120.28 +Tale comando, visualizza l'elenco dei processi attivi al momento il cui nome
  120.29 +contenga la parola *bind*. Come si evince dall'output non c'è nessun
  120.30 +processo bind9 attivo nell'esempio.
  120.31 +
  120.32 +Qualora bind9 non fosse attivo si potrà avviarlo manualmente::
  120.33 +
  120.34 +    srv-scuolax:/etc/dhcp3# /etc/init.d/bind9 start
  120.35 +    Starting domain name service...: bind.
  120.36 +
  120.37 +Verifichiamo che si sia attivato::
  120.38 +
  120.39 +    srv-scuolax:~# ps aux | grep bind
  120.40 +    bind      5136  0.0  1.4  33972  3712 ?        Ssl  Feb15   0:00 /usr/sbin/named -u bind
  120.41 +    root      6723  0.0  0.2   2856   696 pts/0    S+   00:01   0:00 grep bind
  120.42 +
  120.43 +
  120.44 +Non resta che modificare di conseguenza ``/etc/resolv.conf`` affinchè, per la
  120.45 +risoluzione degli hostname, venga usato prioritariamente bind9::
  120.46 +
  120.47 +    srv-scuolax:/etc/dhcp3# cat /etc/resolv.conf
  120.48 +    nameserver 127.0.0.1
  120.49 +    nameserver 192.84.138.160
  120.50 +    nameserver 192.84.138.1
  120.51 +
  120.52 +E' importante verificare inoltre che il servizio venga attivato ad ogni
  120.53 +avvio della macchina. A tal proposito, come visto in altre occasioni, si
  120.54 +modifichi */etc/runlevel.conf* rimuovendo il simbolo # ad inizio riga, se
  120.55 +presente.
   121.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   121.2 +++ b/docs/install/servizi/bind_server.rst	Mon Apr 26 11:16:23 2010 +0200
   121.3 @@ -0,0 +1,260 @@
   121.4 +.. _config_bind_server:
   121.5 +
   121.6 +DNS Server
   121.7 +==========
   121.8 +
   121.9 +Qui troverete i file di configurazione del servizio DNS per una intranet
  121.10 +scolastica concepita secondo il modello ISI. Il DNS assicurerà la
  121.11 +risoluzione dei nomi delle macchine sulla intranet, comprese quelle ad
  121.12 +indirizzo dinamico (aggiornamento del DNS via DHCP). Si tenga presente che
  121.13 +nelle nostre scuole la segreteria opera in ambiente win2000 server
  121.14 +configurato con Active Directory e quindi realizzante un dominio
  121.15 +separato. Al momento l'integrazione segreteria resto della intranet è al
  121.16 +livello della condivisione dell'accesso internet (magari con l'attivazione
  121.17 +della doppia adsl) attraverso un unico firewall e alla connessione permessa
  121.18 +solo da client particolari esterne alla sottorete specifica.
  121.19 +
  121.20 +    * /etc/bind/named.conf.local
  121.21 +    * /etc/bind/named.conf.options
  121.22 +    * /etc/bind/miascuola.lan
  121.23 +    * /etc/bind/rev1.lan
  121.24 +    * /etc/bind/rev2.lan
  121.25 +    * /etc/bind/rev5.lan 
  121.26 +
  121.27 +Per quanto riguarda i dettagli circa la configurazione di Bind9 si rimanda
  121.28 +alla documentazione tecnica disponibile in rete, qui ci si limiterà ad
  121.29 +illustrare l'organizzazione e il contenuto dei file di configurazione.
  121.30 +
  121.31 +L'architettura della intranet sia la seguente:
  121.32 +
  121.33 +    * vlan1 sottorete di staff e di amministrazione
  121.34 +    * vlan2 sottorete di laboratorio (ce ne può essere una per laboratorio)
  121.35 +    * vlan5 sottorete della segreteria (si ipotizza che la segreteria
  121.36 +      sfrutti, per fondamentali ragioni di sicurezza) il firewall principale
  121.37 +      per l'accesso internet, si tenga presente inoltre che nel modello isi,
  121.38 +      la segreteria è integrata nella intranet dell'istituto.
  121.39 +
  121.40 +Il server DNS può essere ospitato dovunque, ma nel modello isi tale
  121.41 +servizio, insieme al DHCP, è in funzione sulla macchina firewall che, grazie
  121.42 +al sistema delle vlan, è attestata su tutte le vlan.
  121.43 +
  121.44 +il dominio dns si chiamerà miascuola.lan. Il che significa, ad esempio, che
  121.45 +l'url del server web interno sarà www.miascuola.lan
  121.46 +
  121.47 +In Debian tutti i file di configurazione necessari si trovano sotto
  121.48 +/etc/bind e quelli per noi significativi sono:
  121.49 +
  121.50 +    * /etc/bind/named.conf in cui sono elencate le zone standard del domio
  121.51 +      DNS ALERT! lo si lascia inalterato
  121.52 +
  121.53 +    * /etc/bind/named.conf.local in cui sono elencate le zone dirette del
  121.54 +      dominio e quelle inverse del nostro dominio
  121.55 +
  121.56 +    * /etc/bind/named.conf.option in cui vengono elencate i forwarders
  121.57 +
  121.58 +    * /etc/bind/miascuola.lan in cui sono elencate nomi e ip di tutte le
  121.59 +      macchine sulla rete
  121.60 +
  121.61 +    * /etc/bind/rev1 e simili che costituiscono le zone inverse, cioè il
  121.62 +      meccanismo con cui dall'ip si risale al nome
  121.63 +
  121.64 +Ma vediamoli in dettaglio:
  121.65 +
  121.66 +/etc/bind/named.conf.local
  121.67 +
  121.68 +Si noti la direttiva key DHCP_UPDATER. Si ricordi che il valore di
  121.69 +quest'ultima deve essere identico a quella dichiarata nel file di
  121.70 +configurazione del server dhcp (/etc/dhcp3/dhcpd.conf) altrimenti
  121.71 +l'aggiornamento dinamico dei record dns non funzionerà.::
  121.72 +
  121.73 +  // -*- c++ -*-
  121.74 +  // Do any local configuration here
  121.75 +  //
  121.76 +  
  121.77 +  // Consider adding the 1918 zones here, if they are not used in your
  121.78 +  // organization
  121.79 +  //include "/etc/bind/zones.rfc1918";
  121.80 +  
  121.81 +  
  121.82 +  // Tells the nameserver who to allow updates from, with what keys
  121.83 +  controls {
  121.84 +    inet 127.0.0.1 allow { localhost; } keys { DHCP_UPDATER; };
  121.85 +  };
  121.86 +  
  121.87 +  
  121.88 +  // ddns - key
  121.89 +  key DHCP_UPDATER {
  121.90 +    algorithm HMAC-MD5.SIG-ALG.REG.INT;
  121.91 +    secret NmfU90eVsfpLk2Ht07R2IQ==;
  121.92 +  ';
  121.93 +  
  121.94 +  zone "miascuola.lan" {
  121.95 +       type master;
  121.96 +       file "/etc/bind/miascuola.lan";
  121.97 +       allow-update { key DHCP_UPDATER; ';
  121.98 +  };
  121.99 +  
 121.100 +  
 121.101 +  // staff - reverse - vlan1
 121.102 +  zone "1.168.192.in-addr.arpa" {
 121.103 +       type master;
 121.104 +       file "/etc/bind/rev1";
 121.105 +       allow-update { key DHCP_UPDATER; ';
 121.106 +  };
 121.107 +  
 121.108 +  
 121.109 +  // lab - reverse - vlan2
 121.110 +  zone "2.168.192.in-addr.arpa" {
 121.111 +       type master;
 121.112 +       file "/etc/bind/rev2";
 121.113 +       allow-update { key DHCP_UPDATER; ';
 121.114 +  };
 121.115 +  
 121.116 +  
 121.117 +  // segreteria - reverse - vlan5
 121.118 +  zone "5.168.192.in-addr.arpa" {
 121.119 +       type master;
 121.120 +       file "/etc/bind/rev5;
 121.121 +       allow-update { key DHCP_UPDATER; ';
 121.122 +  };
 121.123 +  
 121.124 +  
 121.125 +/etc/bind/named.conf.options
 121.126 +
 121.127 +Qui la cosa importante sono i forwarders. Il concetto è semplice: quando il
 121.128 +nostro DNS non riesce a risolvere un nome, perché esterno alle zone locali,
 121.129 +passerà la richiesta ai server DNS esterni dichiarati dalla direttiva
 121.130 +forwarders. In pratica si tratta dei DNS primario o secondario indicatici
 121.131 +dal nostro provider oppure di DNS pubblici.::
 121.132 +
 121.133 +  options {
 121.134 +     directory "/var/cache/bind";
 121.135 +  
 121.136 +     // If there is a firewall between you and nameservers you want
 121.137 +     // to talk to, you might need to uncomment the query-source
 121.138 +     // directive below.  Previous versions of BIND always asked
 121.139 +     // questions using port 53, but BIND 8.1 and later use an unprivileged
 121.140 +     // port by default.
 121.141 +  
 121.142 +     // query-source address * port 53;
 121.143 +  
 121.144 +     // If your ISP provided one or more IP addresses for stable
 121.145 +     // nameservers, you probably want to use them as forwarders.
 121.146 +     // Uncomment the following block, and insert the addresses replacing
 121.147 +     // the all-0's placeholder.
 121.148 +  
 121.149 +          // i forwarders sono gli ip dei DNS esterni 
 121.150 +	  // (quelli del vostro provider)
 121.151 +          // qui saranno automaticamente redirette tutte le richieste DNS
 121.152 +          // non soddisfatte all'interno del nostro dominio
 121.153 +  
 121.154 +     forwarders {
 121.155 +         151.99.125.2;
 121.156 +         194.243.154.62;
 121.157 +     };
 121.158 +  
 121.159 +     auth-nxdomain no;    # conform to RFC1035
 121.160 +  
 121.161 +  };
 121.162 +  
 121.163 +
 121.164 +/etc/bind/miascuola.lan
 121.165 +
 121.166 +Sono elencati i server, gli apparati di rete ed eventuali pc con ip
 121.167 +statico. Questo file provvede alla fondamentale funzione di risoluzione dei
 121.168 +nomi nel corrispondente indirizzo ip. Visualizzando questo file a server in
 121.169 +funzione, vi si troveranno dentro anche gli aggiornamenti effettuati dal
 121.170 +server dhcp ogni volta che un client si connette alla rete.
 121.171 +
 121.172 +fw-scuola = il firewall della scuola, cioè la macchina interposta fra la
 121.173 +nostra rete e internet. Il router adsl è direttamente connesso a questa
 121.174 +macchina attraverso una delle sue schede di rete (deve averne infatti almeno
 121.175 +due, o tante quante sono le sottoreti che si vogliono gestire nel caso non
 121.176 +si disponga di dispositivi 802.1q) srv-uno = il server principale (quello
 121.177 +che fa anche da PDC)
 121.178 +
 121.179 +srv-due = un altro server stp-lx = stampanti laser di rete sw-xxx = switch
 121.180 +managed con gestione VLAN (802.1q) rt-adslx = router adsl (potrebbe
 121.181 +essercene piu' di uno) xp-xxxxx = client qualificati con ip statico e
 121.182 +funzioni amministrative::
 121.183 +
 121.184 +  $ORIGIN .
 121.185 +  $TTL 86400      ; 1 day
 121.186 +  miascuola.lan           IN SOA  fw-scuola.miascuola.lan. root.miascuola.lan. (
 121.187 +                                  1          ; serial
 121.188 +                                  28800      ; refresh (8 hours)
 121.189 +                                  14400      ; retry (4 hours)
 121.190 +                                  3600000    ; expire (5 weeks 6 days 16 hours)
 121.191 +                                  86400      ; minimum (1 day)
 121.192 +                                  )
 121.193 +                          NS      fw-scuola.miascuola.lan.
 121.194 +  fw-scuola               A       192.168.1.1        //sulla vlan1 (sottorete di staff)
 121.195 +  srv-uno                 A       192.168.1.2        //sulla vlan1 
 121.196 +  srv-due                 A       192.168.1.3        //sulla vlan1 
 121.197 +  stp-l1                  A       192.168.1.6        //stampante tcp/ip su vlan1  
 121.198 +  sw-uno                  A       192.168.1.21       //switch managed su vlan1 
 121.199 +  sw-due                  A       192.168.1.22       //switch managed su vlan1
 121.200 +  rt-adsl1                A       192.168.200.2      //router adsl 
 121.201 +  www                     CNAME   srv-uno
 121.202 +  xp-admin01              A       192.168.1.25       //pc con funzioni particolari
 121.203 +  xp-preside              A       192.168.1.26
 121.204 +  stp-l2                  A       192.168.2.7        //stanpante tcp/ip su vlan2
 121.205 +  srv-segreteria          A       192.168.5.2        //sulla vlan5 (segreteria)
 121.206 +  
 121.207 +
 121.208 +/etc/bind/rev1.lan
 121.209 +File di risoluzione inversa per la vlan1
 121.210 +
 121.211 +::
 121.212 +
 121.213 +  $ORIGIN .
 121.214 +  $TTL 86400      ; 1 day
 121.215 +  1.168.192.in-addr.arpa IN SOA  fw-scuola.miascuola.lan. root.miascuola.lan. (
 121.216 +                                  1          ; serial
 121.217 +                                  28800      ; refresh (8 hours)
 121.218 +                                  14400      ; retry (4 hours)
 121.219 +                                  3600000    ; expire (5 weeks 6 days 16 hours)
 121.220 +                                  86400      ; minimum (1 day)
 121.221 +                                  )
 121.222 +                          NS      fw-scuola.miascuola.lan.
 121.223 +  1                       PTR     fw-miascuola.miascuola.lan.
 121.224 +  2                       PTR     srv-uno.miascuola.lan.
 121.225 +  3                       PTR     srv-due.miascuola.lan.
 121.226 +  6                       PTR     stp-l1.miascuola.lan.
 121.227 +  10                      PTR     xp-preside.miascuola.lan.
 121.228 +  11                      PTR     xp-admin01.miascuola.lan.
 121.229 +  21                      PTR     sw-rag.miascuola.lan.
 121.230 +  22                      PTR     sw-due.miascuola.lan.
 121.231 +  
 121.232 +  
 121.233 +/etc/bind/rev2.lan
 121.234 +::
 121.235 +
 121.236 +  $ORIGIN .
 121.237 +  $TTL 86400      ; 1 day
 121.238 +  2.168.192.in-addr.arpa      IN SOA  fw-scuola.miascuola.lan. root.miascuola.lan. (
 121.239 +                                  1          ; serial
 121.240 +                                  28800      ; refresh (8 hours)
 121.241 +                                  14400      ; retry (4 hours)
 121.242 +                                  3600000    ; expire (5 weeks 6 days 16 hours)
 121.243 +                                  86400      ; minimum (1 day)
 121.244 +                                  )
 121.245 +                          NS      fw-scuola.miascuola.lan.
 121.246 +  1                       PTR     fw-scuola.miascuola.lan.
 121.247 +  7                       PTR     stp-l2.miascuola.lan.
 121.248 +  
 121.249 +  
 121.250 +  /etc/bind/rev5.lan
 121.251 +  
 121.252 +  $TTL 86400      ; 1 day
 121.253 +  5.168.192.in-addr.arpa     IN SOA  fw-scuola.miascuola.lan. root.miascuola.lan. (
 121.254 +                                  1                  ; serial
 121.255 +                                  28800      ; refresh (8 hours)
 121.256 +                                  14400      ; retry (4 hours)
 121.257 +                                  3600000    ; expire (5 weeks 6 days 16 hours)
 121.258 +                                  86400      ; minimum (1 day)
 121.259 +                                  )
 121.260 +                          NS              fw-scuola.miascuola.lan.
 121.261 +  1                       PTR             fw-scuola.miascuola.lan.
 121.262 +  2                       PTR             srv-segreteria.miascuola.lan.
 121.263 +  
   122.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   122.2 +++ b/docs/install/servizi/dhcpd.rst	Mon Apr 26 11:16:23 2010 +0200
   122.3 @@ -0,0 +1,86 @@
   122.4 +.. _config_dhcpd:   
   122.5 +
   122.6 +dhcpd
   122.7 +==================================
   122.8 +Il servizio dhcp consente di configurare automaticamente impostazioni di rete
   122.9 +come ip, dns, winserver, e molto altro ancora ancora, su tutti i client presenti
  122.10 +nella nostra rete, siano essi Linux o Microsoft. 
  122.11 +Usando un dhcp-server potremmo dunque evitare di configurare a mano le impostazioni
  122.12 +di ogni singolo client.
  122.13 +
  122.14 +Per approfondimenti: `http://it.wikipedia.org/wiki/DHCP`.
  122.15 +
  122.16 +.. sidebar:: **Ci serve?**
  122.17 +
  122.18 +   Non è necessario usare dhcp ma è mia esperienza che gli amministratori
  122.19 +   scolastici che spesso non comprendono l'importanza del winserver,
  122.20 +   dimenticano di impostarlo e conseguentemente -in alcune stutture di rete-
  122.21 +   alcuni client non trovano il server di dominio. Con il dhcp server siamo
  122.22 +   sicuri che tutti i client avranno la stessa configurazione.
  122.23 +
  122.24 +dhcpd.conf
  122.25 +----------
  122.26 +La configurazione del servizio viene effettuata modificando il file di 
  122.27 +configurazione ``/etc/dhcp3/dhcpd.conf`` con un qualunque editor di testo.
  122.28 +*Nota*: Prestare attenzione a non confondere dhcp3 con dhcp( se presente).
  122.29 +Essendo i parametri configurabili molteplici, verrà fornito, a seguire, un 
  122.30 +esempio pratico funzionante di configurazione utile in un ambiente ISI. Nulla 
  122.31 +vieta, come ovvio, di aggiungere o rimuovere direttive ulteriori. 
  122.32 +Una lettura del file del file ``/etc/dhcp3/dhcpd.conf.isi.sample`` potrebbe
  122.33 +risultare utile fonte di spunto.
  122.34 +
  122.35 +La configurazione di ``/etc/dhcp3/dhcpd.conf`` suggerita, per un'installazione
  122.36 +"standard", è la seguente::
  122.37 +
  122.38 +    ##### option definitions common to all supported networks...
  122.39 +    option domain-name "srv-scuolax.lan";
  122.40 +    option domain-name-servers 10.1.2.1;
  122.41 +
  122.42 +    option subnet-mask 255.255.255.0;
  122.43 +    default-lease-time 600;
  122.44 +    max-lease-time 7200;
  122.45 +
  122.46 +    option option-128 code 128 = string;
  122.47 +    option option-129 code 129 = text;
  122.48 +
  122.49 +    ##### subnet
  122.50 +    subnet 10.1.2.0 netmask 255.255.255.0 {
  122.51 +      range 10.1.2.100 10.1.2.200;
  122.52 +      option routers 10.1.2.1;
  122.53 +      option netbios-name-servers 10.1.2.1;
  122.54 +      option netbios-node-type 8;
  122.55 +
  122.56 +      option subnet-mask 255.255.255.0;
  122.57 +      option broadcast-address 10.1.2.255;
  122.58 +      default-lease-time 600;
  122.59 +      max-lease-time 7200;
  122.60 +    }
  122.61 +
  122.62 +Adottando tale configurazione, il server dhcp risulterà impostato per:
  122.63 +
  122.64 ++ assegnare un indirizzo IP (ed una netmask)
  122.65 ++ *GATEWAY* ( option routers )
  122.66 ++ *DNS* ( domain-name-servers )
  122.67 ++ *WINS* o server di risoluzione nomi netbios ( netbios-name-servers )
  122.68 +
  122.69 +.. Note:
  122.70 +
  122.71 +    Ovviamente ai riferimenti dell'esempio andranno sostituiti i propri riferimenti
  122.72 +    di rete (network, ip, wins, etc...)
  122.73 +
  122.74 +Riavvio del servente
  122.75 +--------------------
  122.76 +
  122.77 +Ultimata la modifica della configurazione, per attivare il servizio, non resterà
  122.78 +che riavviarlo::
  122.79 +
  122.80 +    srv-scuolax:/etc/dhcp3# /etc/init.d/dhcp3-server restart
  122.81 +    Stopping DHCP server: dhcpd3.
  122.82 +    Starting DHCP server: dhcpd3.
  122.83 +
  122.84 +Attivazione al boot
  122.85 +-------------------
  122.86 +Ora che DHCP è configurato e attivato, non resta che assicurare che venga avviato
  122.87 +automaticamente in fase di boot. Ci si assicuri pertanto che nel file ``/etc/runlevel.conf``
  122.88 +le linee riferite al servizio DHCP non siano commentate( commentata è una qualunque linea
  122.89 +iniziante con il simbolo ``#``).
   123.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   123.2 +++ b/docs/install/servizi/firewall.rst	Mon Apr 26 11:16:23 2010 +0200
   123.3 @@ -0,0 +1,173 @@
   123.4 +.. _config_firewall:
   123.5 +
   123.6 +Il firewall
   123.7 +===========
   123.8 +
   123.9 +.. sidebar:: Serve?
  123.10 +
  123.11 +   si. Il firewall deve essere sempre configurato. Probabilmente vi basta
  123.12 +   la configurazione base descritta di seguito ed ottenuta modificando il
  123.13 +   solo file ``fw.conf``
  123.14 +
  123.15 +Esiste una esperienza di laboratorio per la 
  123.16 +:ref:`configurazione base <lab_firewalling>`  del firewall ed una sul 
  123.17 +:ref:`lab_dnat`
  123.18 +
  123.19 +.. note::
  123.20 +
  123.21 +   dalla versione *lenny* di ``argo`` il comando ``firewall`` è stato sostituito
  123.22 +   dal comando ``pyrewall``, che ha i medesimi file di configurazione ma è
  123.23 +   implementato in Python
  123.24 +
  123.25 +Introduzione
  123.26 +------------
  123.27 +
  123.28 +Ricordo che il firewalling in un sistema Linux è appannaggio del
  123.29 +kernel. Possono essere usati molti programmi per configurare il kernel. Qui
  123.30 +illustro il comando ``pyrewall`` sviluppato specificamente per la
  123.31 +distribuzione Argolinux da una idea di una script analoga nella
  123.32 +distribuzione gibraltar_.
  123.33 +
  123.34 +Il comando ``pyrewall`` legge due file di configurazione: 
  123.35 +
  123.36 +:``fw.conf``:  per le impostazioni di variabili
  123.37 +:``fw.add``:   per i comandi
  123.38 +
  123.39 +nel primo è sufficiente impostare alcune variabili ed avremo una
  123.40 +configurazione sicura nella stragrande maggioranza delle situazioni
  123.41 +
  123.42 +.. index:: pyrewall; fw.add
  123.43 +
  123.44 +variabili disponibili in fw.conf
  123.45 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  123.46 +INT    lista dei device 'interni' per il traffico entrante da questi device
  123.47 +       ha come politica di defaul ``ACCEPT``
  123.48 +
  123.49 +EXT    lista dei device 'esterni' per il traffico entrante da questi device
  123.50 +       ha come politica di defaul ``DROP``
  123.51 +
  123.52 +LAN    IPs e network che dovranno essere mascherati (nattati)
  123.53 +
  123.54 +
  123.55 +FORWARD
  123.56 +       Abilita il forward dei pacchetti tramite ``/proc/sys/net/ipv4/ip_forwad``
  123.57 +       if this  variable  is  not  set  to  0.  Ivviamente il forward andrà
  123.58 +       in ogni caso esplicitamente accettato
  123.59 +
  123.60 +IP_MODE
  123.61 +       Può essere ``static`` e ``dynamic``.  Determina se la modalità sarà
  123.62 +       ``masquerading`` (dynamic) o ``natting`` (static)
  123.63 +       Se si sceglie statico occorre anche definire IP_EXT.
  123.64 +
  123.65 +        
  123.66 +LOG    if  this  value  is  set to 1, logging will take
  123.67 +       place before dropping packets.  You  can  "color
  123.68 +       parse"  log  fil  with  fwparse(1).  2 different
  123.69 +       labels are used to mark packets dropped in INPUT
  123.70 +       chain or FORWARD chain.
  123.71 +
  123.72 +INPUT_CHAINS
  123.73 +       List  of  INPUT  chains   that  should  be  created/destroyed with start/stop
  123.74 +
  123.75 +FWD_CHAINS
  123.76 +       List of in the FORWARD chains   that  should  be
  123.77 +       created/destroyed with start/stop
  123.78 +
  123.79 +TCP_DPORTS
  123.80 +       List of tcp ports that should be opened from the
  123.81 +       external interface
  123.82 +
  123.83 +UDP_DPORTS
  123.84 +       List of udp ports that should be opened from the
  123.85 +       external interface
  123.86 +
  123.87 +PROXY_REDIR_PORT
  123.88 +       Porta alla quale redirigere il traffico che cerca di passare dalla
  123.89 +       porta 80. normalmente è 3128 o 8128 a seconda che si usi squid o
  123.90 +       dansguardian. Questo è utile solo in caso di proxy trasparente (non
  123.91 +       raccomandato nelle scuole). 
  123.92 +
  123.93 +       Nel caso di proxy non trasparente non è sufficiente a fare funzionare
  123.94 +       il proxy ma è sufficiente a bloccare il traffico sulla 80.
  123.95 +
  123.96 +
  123.97 +
  123.98 +principi funzionamento fw.add
  123.99 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 123.100 +
 123.101 +
 123.102 +Il principio di funzionamento di ``fw.add`` è invece particolarmente adatto
 123.103 +quando ci siano (molte) configurazioni aggiuntive, combinazioni di ip e porte
 123.104 +che vogliamo filtrare o nattare. In questo caso ``pyrewall`` permette
 123.105 +sintassi molto succinte per un utilizzo efficace di un programma che fa il
 123.106 +prodotto cartesiano [1]_ delle variabili.
 123.107 +
 123.108 +Configurazione di *pyrewall* per FileServer ISI
 123.109 +-----------------------------------------------
 123.110 +
 123.111 +.. figure:: ../../img/rete-srvisi.png
 123.112 +   :align: center
 123.113 +   :width: 400
 123.114 +
 123.115 +   caso firewall separato dal server
 123.116 +   
 123.117 +   
 123.118 +Presupponendo che la rete sia protetta a monte da un firewall e che si stia
 123.119 +utilizzando una sola interfaccia di rete eth0, impostiamo l'interfaccia
 123.120 +``eth0``  come interfaccia interna, modificando ``/etc/argo/fw.conf`` come
 123.121 +segue::
 123.122 +
 123.123 +    INT="eth0"
 123.124 +    #EXT="eth1"
 123.125 +    TCP_DPORTS="22"
 123.126 +
 123.127 +*Nota*: Si è commentata la linea relativa alla seconda interfaccia, in
 123.128 + quanto non presente.
 123.129 +
 123.130 +Per appplicare le modifiche appena effettuate, sarà necessario riavviare
 123.131 +*pyrewall*::
 123.132 +
 123.133 +    argo:~# pyrewall restart
 123.134 +
 123.135 +Configurazione di *pyrewall* per un Firewall ISI
 123.136 +------------------------------------------------
 123.137 +
 123.138 +.. figure:: ../../img/rete-fwisi.png
 123.139 +   :align: center
 123.140 +
 123.141 +Presupponendo che il Firewall ISI abbia due interfacce di rete *eth0* ed
 123.142 +*eth1*, *eth1* collegata direttamente al gateway ADSL ed *eth1* l'altra ad
 123.143 +uno switch, in contatto dunque con il resto della LAN interna, imposteremo
 123.144 +il *firewall* affinchè consideri l'interfaccia *eth0* interna e
 123.145 +l'interfaccia *eth1* esterna, modificando ``/etc/argo/fw.conf`` come segue::
 123.146 +
 123.147 +    INT="eth0"
 123.148 +    EXT="eth1"
 123.149 +    TCP_DPORTS="22"
 123.150 +
 123.151 +Nota: In questo caso la direttiva "EXT" è ovviamente necessaria.
 123.152 +
 123.153 +Per appplicare le modifiche appena effettuate, sarà necessario riavviare 
 123.154 +*pyrewall*::
 123.155 +
 123.156 +    argo:~# pyrewall restart
 123.157 +
 123.158 +-------------
 123.159 +
 123.160 +.. _gibraltar: http://www.gibraltar.at
 123.161 +
 123.162 +.. [1]
 123.163 +  prodotto cartesiano di due insiemi A e B è l'insieme delle coppie ordinate 
 123.164 +  (a,b) con a in A e b in B. Si pensi a questo esempio dove il comando mex
 123.165 +  opera il prodotto cartesiano fra l'insieme SRC e l'insieme DST::
 123.166 +
 123.167 +     SRC="192.168.1.1 192.168.1.2"
 123.168 +     DST="10.10.1.1 10.10.1.2"
 123.169 +     mex iptables -A FORAWRD -s $SRC -d $DST -j ACCEPT
 123.170 +      
 123.171 +     iptables -A FORAWRD -s 192.168.1.1 -d 10.10.1.1 -j ACCEPT
 123.172 +     iptables -A FORAWRD -s 192.168.1.2 -d 10.10.1.1 -j ACCEPT
 123.173 +     iptables -A FORAWRD -s 192.168.1.1 -d 10.10.1.2 -j ACCEPT
 123.174 +     iptables -A FORAWRD -s 192.168.1.2 -d 10.10.1.2 -j ACCEPT
 123.175 +
 123.176 +
   124.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   124.2 +++ b/docs/install/servizi/ftp.rst	Mon Apr 26 11:16:23 2010 +0200
   124.3 @@ -0,0 +1,62 @@
   124.4 +Proftpd
   124.5 +=======
   124.6 +
   124.7 +
   124.8 +Ftp-proxy
   124.9 +=========
  124.10 +
  124.11 +Cos'è?
  124.12 +------
  124.13 +
  124.14 +*Citando la man page*...
  124.15 +
  124.16 +FTP-Proxy  acts  as  an  application level gateway between FTP clients and servers.
  124.17 +Its main purpose is to secure local FTP servers against possibly insecure clients 
  124.18 +or malicious attacks.  FTP-Proxy  is  believed  to  be  immune against current 
  124.19 +known attacks based on the FTP protocol.
  124.20 +
  124.21 +FTP-Proxy  can be started from the inetd (or xinetd, or any other) internet super
  124.22 +daemon or executed on its own as a standalone daemon, in which case it will fork
  124.23 +child processes to handle connections.  The behaviour  depends  on the
  124.24 +ftp-proxy.conf(5) configuration option ServerType or the -i and -d command line
  124.25 +switches, where the latter two take precedence.
  124.26 +
  124.27 +FTP-Proxy features a rich set of auditing and command restriction capabilities 
  124.28 +and  is  specifically  suited  for deployment in firewall environments.
  124.29 +
  124.30 +
  124.31 +Installazione
  124.32 +-------------
  124.33 +
  124.34 +L'installazione è molto semplice e si riduce al solo::
  124.35 +
  124.36 +    apt-get install ftp-proxy
  124.37 +
  124.38 +Configurazione
  124.39 +--------------
  124.40 +
  124.41 +Modificare con il proprio editor di testo preferito ``/etc/proxy-suite/ftp-proxy.conf``
  124.42 +impostando le seguenti direttive:
  124.43 +
  124.44 +- DestinationAddress ( Indirizzo del servente FTP )
  124.45 +- DestinationPort ( Porta del servente FTP )
  124.46 +- ServerType ( modalità di avvio del servizio )
  124.47 +
  124.48 +``ftp-proxy`` supporta numerose opzioni. E', ad esempio, possibile imporre la
  124.49 +modalità Attiva / Passiva che, di default, viene scelta in base alla richiesta dei
  124.50 +client.
  124.51 +
  124.52 +Verifica della configurazione
  124.53 +-----------------------------
  124.54 +
  124.55 +E' possibile verificare la propria configurazione del servizio grazie al comando
  124.56 +``ftp-proxy -c``.
  124.57 +    
  124.58 +L'output restituito dovrebbe rispecchiare quello che segue di esempio ::
  124.59 +
  124.60 +    Config-File: '/etc/proxy-suite/ftp-proxy.conf'
  124.61 +    Config-Section ------ '(-global-)'
  124.62 +    Config:        DestinationAddress       = '192.168.1.253'
  124.63 +    Config:        DestinationPort          = '21'
  124.64 +    Config:        ServerType               = 'standalone'
  124.65 +
   125.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   125.2 +++ b/docs/install/servizi/nfs.rst	Mon Apr 26 11:16:23 2010 +0200
   125.3 @@ -0,0 +1,159 @@
   125.4 +.. _config_nfs:
   125.5 +
   125.6 +=====
   125.7 + NFS
   125.8 +=====
   125.9 +
  125.10 +Lato Server
  125.11 +===========
  125.12 +
  125.13 +Il protocollo NFS consente di condividere il contenuto di intere directory
  125.14 +tra macchine Linux/Unix. Tali risorse condivise, potranno essere *esportate*
  125.15 +dalla macchina server e *montate* dai client desiderati.
  125.16 +
  125.17 +Come si può immaginare, l'utilizzo di NFS, è fondamentale in un contesto come 
  125.18 +quello di ReteISI, dove si vuole che i file degli utenti restino ospitati
  125.19 +dal server di dominio. Ciò verrà garantito imponendo che la ``/home`` dei singoli
  125.20 +client coincida con la ``/home`` esportata dal server.
  125.21 +
  125.22 +Installazione dei pacchetti necessari::
  125.23 +
  125.24 + apt-get install nfs-common nfs-kernel-server
  125.25 +
  125.26 +Alla domanda "Should portmap be bound to the loopback address?" Scegliere 
  125.27 +No (default) a meno che non vi siano particolari esigenze.
  125.28 +
  125.29 +Le singole macchine, od i network, a cui verrà esportato il fileserver andranno
  125.30 +inserite in ``/etc/exports``.
  125.31 +Modificare dunque tale file aggiungendo una linea come la seguente::
  125.32 + 
  125.33 +  /home   192.168.1.0/255.255.255.0(rw,no_root_squash)
  125.34 +
  125.35 +*Nota:*
  125.36 +192.168.1.0 è il network in cui risulterà visibile la risorsa ``/home`` esportata.
  125.37 + 
  125.38 +Sarà possibile elencare le esportazioni attive grazie al comando ``showmount`` ::
  125.39 +
  125.40 + srv-isi:~# showmount --all
  125.41 + All mount points on srv-isi:
  125.42 + 192.168.1.0/255.255.255.0:/home
  125.43 + 192.168.1.230:192.168.1.0/255.255.255.0
  125.44 +
  125.45 +
  125.46 +Lato Client (ubuntu 7.10)
  125.47 +=========================
  125.48 +
  125.49 +Montare una directory esportata via nfs in una directory locale non-vuota 
  125.50 +impedirà l'accesso al contenuto locale preesistente. Tale contenuto tornerà 
  125.51 +accessibile una volta smontata la risorsa.
  125.52 +
  125.53 +utenti solo locali
  125.54 +------------------
  125.55 +
  125.56 +Qualora si desideri mantenere la possibilità di loggarsi anche con utenti
  125.57 +locali, sarà quindi necessario rinominare la ``/home`` locale in ``/home_local`` e 
  125.58 +si creerà una nuova ``/home`` locale, vuota, in cui montare la ``/home`` remota.
  125.59 +Ovviamente saranno anche da aggiornare in ``/etc/passwd`` i percorsi delle 
  125.60 +home-utente, portandoli da ``/home`` a ``/home_local``::
  125.61 +
  125.62 + root@ubuntu-desktop:~# mv /home/ /home_local
  125.63 + root@ubuntu-desktop:~# mkdir /home
  125.64 + root@ubuntu-desktop:~# sed -i 's/home\//home_local\//g' /etc/passwd
  125.65 +
  125.66 +/home
  125.67 +-----
  125.68 +
  125.69 +Si potrà ora procedere con l'installazione del client nfs::
  125.70 + 
  125.71 + root@ubuntu-desktop:~# sudo apt-get install nfs-common
  125.72 +
  125.73 +e la modifica di ``/etc/fstab``, al quale andrà aggiunta la seguente direttiva ::
  125.74 +
  125.75 + srv-isi:/home   /home nfs defaults,soft,rw,auto 0 2
  125.76 +
  125.77 +*Dove:*
  125.78 + "srv-isi" è l'hostname (ci si assicuri che tale nome sia presente in ``/etc/hosts``)
  125.79 + della macchina che esporta risorse nfs.
  125.80 + "/home" che segue i due punti la da essa risorsa esportata.
  125.81 + il secondo "/home" è il punto locale in cui verrà montata la risorsa remota.
  125.82 +
  125.83 +*Nota:*
  125.84 +Ci si assicuri che il file ``/etc/fstab`` sia terminato con un "a capo".
  125.85 +
  125.86 +NFS con automount
  125.87 +=================
  125.88 +
  125.89 +NFS può essere associato ad ``autofs`` per ottenere il mount al volo della cartella esportata a seconda dell'utente che effettua il login
  125.90 +
  125.91 +Lato server
  125.92 +-----------
  125.93 +Non c'è differenza rispetto a quanto detto in precedenza, viene però mostrato il contenuto
  125.94 +di ``/etc/exports`` nel caso della struttura di cartelle ReteIsi e in modo che le stesse possano
  125.95 +essere raggiunte da più sottoreti (si osservino ip e ipmask)::
  125.96 +
  125.97 +    /home/users/admins      192.168.0.0/255.255.0.0(rw,sync)
  125.98 +    /home/users/alunni      192.168.0.0/255.255.0.0(rw,sync)
  125.99 +    /home/users/ata         192.168.0.0/255.255.0.0(rw,sync)
 125.100 +    /home/users/docenti     192.168.0.0/255.255.0.0(rw,sync)
 125.101 +    /home/users/esterni     192.168.0.0/255.255.0.0(rw,sync)
 125.102 +    /home/shares/classi     192.168.0.0/255.255.0.0(rw,sync)
 125.103 +
 125.104 +Lato client
 125.105 +-----------
 125.106 +Installazione dei pacchetti necessari::
 125.107 +
 125.108 + apt-get install portmap nfs-common autofs
 125.109 +
 125.110 +Verranno generati in /etc due file di configurazione il cui contenuto potrà essere il seguente (nel caso si vogliano esportare solo le radici delle home di ciascun gruppo principale):
 125.111 +
 125.112 +``/etc/auto.master``
 125.113 +::
 125.114 +
 125.115 +    /home/users/alunni      /etc/auto.home_alunni
 125.116 +    /home/users/admins      /etc/auto.home_admins
 125.117 +    /home/users/ata         /etc/auto.home_ata
 125.118 +    /home/users/docenti     /etc/auto.home_docenti
 125.119 +    /home/users/esterni     /etc/auto.home_esterni
 125.120 +    /home/shares/classi     /etc/auto.classi
 125.121 +
 125.122 +``/etc/auto.misc``
 125.123 +::
 125.124 +
 125.125 +    lasciare invariato
 125.126 +
 125.127 +occorrerà poi creare i seguenti altri file di configurazione, uno per ogni cartella esportata (SERVER è l'ip o il namehost della macchina che esporta)
 125.128 +
 125.129 +``/etc/auto.classi``
 125.130 +::
 125.131 +
 125.132 +    *  -fstype=nfs,soft,intr,rsize=32768,wsize=32768  SERVER:/home/shares/classi/&
 125.133 +
 125.134 +``/etc/auto.home_admins``
 125.135 +::
 125.136 +
 125.137 +    *  -fstype=nfs,soft,intr,rsize=32768,wsize=32768   SERVER:/home/users/admins/&
 125.138 +
 125.139 +``/etc/auto.home_alunni``
 125.140 +::
 125.141 +
 125.142 +    *   -fstype=nfs,soft,intr,rsize=32768,wsize=32768   SERVER:/home/users/alunni/&
 125.143 +
 125.144 +``/etc/auto.home_ata``
 125.145 +::
 125.146 +
 125.147 +    *-fstype=nfs,soft,intr,rsize=32768,wsize=32768   SERVER:/home/users/alunni/&
 125.148 +
 125.149 +``/etc/auto.home_docenti``
 125.150 +::
 125.151 +    
 125.152 +    *  -fstype=nfs,soft,intr,rsize=32768,wsize=32768   SERVER:/home/users/docenti/&
 125.153 +
 125.154 +``/etc/auto.home_esterni``
 125.155 +::
 125.156 +    
 125.157 +    *-fstype=nfs,soft,intr,rsize=32768,wsize=32768   SERVER:/home/users/esterni/&
 125.158 +
 125.159 +Per far funzionare il tutto basterà a questo punto fa ripartire il servizio autofs
 125.160 +::
 125.161 +    
 125.162 +    /etc/init.d/autofs restart
   126.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   126.2 +++ b/docs/install/servizi/pdc.rst	Mon Apr 26 11:16:23 2010 +0200
   126.3 @@ -0,0 +1,99 @@
   126.4 +.. _config_pdc:   
   126.5 +
   126.6 +Dominio PDC
   126.7 +===========
   126.8 +
   126.9 +Configurazione del dominio: isi-startup
  126.10 +---------------------------------------
  126.11 +
  126.12 +Per configurare l'intero dominio, basterà lanciare il comando::
  126.13 +
  126.14 +   isi-startup <NOMEDOMINIO> <nomenetbios> <password>
  126.15 +
  126.16 +Per semplicità, si suggerisce di utilzzare il nome del proprio istituto 
  126.17 +scolastico come *nome di DOMINIO* e, come *nome netbios*, il nome dell'istituto
  126.18 +preceduto da "srv-", scritto in minuscolo.
  126.19 +
  126.20 +Esempio:
  126.21 +
  126.22 ++ *nome dominio: SCUOLAX*
  126.23 +
  126.24 ++ *nome server: srv-scuolax*
  126.25 +
  126.26 +La password da specificare sarà quella che verrà assegnata 
  126.27 +
  126.28 +  * all'utente root
  126.29 +  * all'admin di slapd
  126.30 +  * all'utente administrator con il quale potremo fare il join dei
  126.31 +    client windows
  126.32 +
  126.33 +Si proceda dunque come segue::
  126.34 +
  126.35 +    argo:~# isi-startup SCUOLAX srv-scuolax segreto
  126.36 +    check_syntax
  126.37 +    read_conf
  126.38 +    SID per ISI-DOMAIN: S-1-5-21-4285446429-3958797296-3242910830
  126.39 +    reset_secrets
  126.40 +    Setting stored password for "cn=admin,dc=isi,dc=lan" in secrets.tdb
  126.41 +    fix_DOMAIN_name
  126.42 +    fix_PDC_name
  126.43 +    get_set_new_SID
  126.44 +    Esiste un SID memorizzato. Vuoi usare questo (s/n)? N
  126.45 +    NUOVO SID: S-1-5-21-4285446429-3958797296-3242910830
  126.46 +    NEW SID: S-1-5-21-4285446429-3958797296-3242910830
  126.47 +    change_password
  126.48 +    sistema
  126.49 +    smbtools
  126.50 +    ldap
  126.51 +    ldapmodify -x -h 127.0.0.1 -w isi -D cn=admin,dc=isi,dc=lan
  126.52 +    modifying entry "cn=admin,dc=isi,dc=lan"
  126.53 +
  126.54 +    smbpasswd
  126.55 +    Setting stored password for "cn=admin,dc=isi,dc=lan" in secrets.tdb
  126.56 +    root samba
  126.57 +    ldap.secret libnss-ldap.secret pam_ldap.secret
  126.58 +    reimposto pwd
  126.59 +    fix_SID_in_ldap
  126.60 +    fix_SID_in_smbldap_tools
  126.61 +    add_samba_at_boot
  126.62 +    samba already in /etc/runlevel.conf: No change.
  126.63 +    start_samba
  126.64 +    Stopping Samba daemons: nmbd smbd.
  126.65 +    Samba spento
  126.66 +    Starting Samba daemons: nmbd smbd.
  126.67 +    Nuovo pid di samba 6161 6155, nmbd: 6153
  126.68 +    fix_LDAP_sambaDomainName
  126.69 +    ldapsearch -x -LLL -xD cn=admin,dc=isi,dc=lan -w segreto (sambaDomainName=SCUOLAX)
  126.70 +    modifying entry "sambaDomainName=SCUOLAX,dc=isi,dc=lan"
  126.71 +
  126.72 +    ----------------------prima-----
  126.73 +    dn: sambaDomainName=SCUOLAX,dc=isi,dc=lan
  126.74 +    gidNumber: 1009
  126.75 +    uidNumber: 1000
  126.76 +
  126.77 +    modifying entry "sambaDomainName=SCUOLAX,dc=isi,dc=lan"
  126.78 +
  126.79 +    ----------------------dopo-----
  126.80 +    dn: sambaDomainName=SCUOLAX,dc=isi,dc=lan
  126.81 +    gidNumber: 1009
  126.82 +    uidNumber: 1000
  126.83 +    
  126.84 +Alla domanda *Esiste un SID memorizzato. Vuoi usare questo (s/n)?* si risponda negativamente.
  126.85 +
  126.86 +Il processo di attivazione del dominio è completato. Da questo momento in
  126.87 +poi sarà possibile iniziare ad effettuare il join di tutti i client della
  126.88 +rete. Si suggerisce però, prima di continuare con tale operazione, di
  126.89 +configurare ed attivare il servizio dhcp. In tal modo, tutti i client
  126.90 +verranno istruire automaticamente con le informazioni di rete necessaria,
  126.91 +evitando di dover configurare manualmente ogni client.
  126.92 +
  126.93 +.. Note ::
  126.94 +
  126.95 +    Per join_ ci si riferisce all'operazione che permette di associare
  126.96 +    client Microsoft (Xp Professional o windows2000) al Dominio appena
  126.97 +    creato. Le W98 non contemplano questa operazione
  126.98 +
  126.99 +
 126.100 +
 126.101 +.. _join: ../client_microsoft.html
 126.102 +
   127.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   127.2 +++ b/docs/install/servizi/sarg-report.rst	Mon Apr 26 11:16:23 2010 +0200
   127.3 @@ -0,0 +1,132 @@
   127.4 +====================
   127.5 + LOG e reportistica
   127.6 +====================
   127.7 +
   127.8 +LOG SQUID con SARG-REPORT
   127.9 +==========================
  127.10 +
  127.11 +Configurazione di sarg
  127.12 +-----------------------
  127.13 +
  127.14 +Cercare in ``/etc/squid/sarg.conf`` la direttiva ``language English`` e sostituire
  127.15 +a ``English`` il linguaggio voluto.
  127.16 +es.::
  127.17 +
  127.18 +    language Italian
  127.19 +
  127.20 +Assicurarsi che la direttiva ``access_log`` punti correttamente al file contenente
  127.21 +i logs di squid (solitamente ``/var/log/squid/access.log``) e verificare che
  127.22 +coincida con la direttiva ``access_log`` presente in ``/etc/squid.conf``.
  127.23 +
  127.24 +Per eventuali affinamenti alla configurazione si potrà fare riferimento ai numerosi
  127.25 +esempi commentati nel file di configurazione.
  127.26 +
  127.27 +.. _sarg-report:
  127.28 +
  127.29 +Configurazione di sarg-reports
  127.30 +------------------------------
  127.31 +
  127.32 +La configurazione di ``/etc/squid/sarg-reports.conf`` di default dovrebbe andare
  127.33 +benone, modificarla eventualmente per rispondere alle proprie esigenze.
  127.34 +
  127.35 +
  127.36 +sarg e sarg-reports
  127.37 +-------------------
  127.38 +
  127.39 +``sarg-report`` è un shell script che permette di parsare il contenuto dei logs di
  127.40 +squid relativi ad un certo periodo di tempo e, utilizzando ``sarg``,  generare 
  127.41 +automaticamente del codice html. Il codice html, di default, viene salvato in 
  127.42 +``/var/www/https/squid-reports/``. Sarà necessario dunque modificare la configurazione
  127.43 +di apache per assicurarsi che venga pubblicata.
  127.44 +
  127.45 +Nota
  127.46 +----
  127.47 +
  127.48 +Si farà riferimento esclusivamente all'uso di ``sarg-report``.
  127.49 +I più curiosi, dopo una rapida consultazione del suo help, potranno provare a generare
  127.50 +con ``sarg`` qualche statistica personalizzata.
  127.51 +
  127.52 +L'help di sarg-reports è abbastanza esplicativo::
  127.53 +
  127.54 +    sarg-reports --help
  127.55 +    
  127.56 +    SARG - Daily / Weekly / Monthly - Squid proxy usage reports creation tool
  127.57 +    Written by Ugo Viti <[email protected]>
  127.58 +    Version: 20050202
  127.59 +
  127.60 +    Usage: /usr/sbin/sarg-reports [OPTIONS]
  127.61 +
  127.62 +    Allowed options:
  127.63 +        manual,  Create Manual report
  127.64 +         today,  Create Today report
  127.65 +         daily,  Create Daily report
  127.66 +        weekly,  Create Weekly report
  127.67 +        montly,  Create Monthly report
  127.68 +
  127.69 +Come riportato dall'help, se volessimo generare logs per una data specifica potremmo
  127.70 +usare::
  127.71 +
  127.72 +    sarg-reports manual 18/12/2021
  127.73 +
  127.74 +Tutte le informazioni relative al giorno 18/12/2021 trovate in ``/var/log/squid/access.log``
  127.75 +verranno parsate e verrà generato un output html in ``/vaar/www/squid-reports/``
  127.76 +
  127.77 +Per verificare il risultato, si potrà provare a puntare con ``lynx`` a 
  127.78 +``/var/www/squid-reports/index.html`` come segue::
  127.79 +
  127.80 +    lynx /var/www/squid-reports/index.html
  127.81 +
  127.82 +
  127.83 +Automatizzare la creazione dei logs con Crontab
  127.84 +-----------------------------------------------
  127.85 +
  127.86 +Aggiungere la creazione dei logs a Cron, per eseguirle in modo automatico alla
  127.87 +cadenza voluta::
  127.88 +
  127.89 +    crontab -e
  127.90 +
  127.91 +    PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
  127.92 +    00 00      * * * sarg-reports daily
  127.93 +    00 01      * * 1 sarg-reports weekly 
  127.94 +    30 02      1 * * sarg-reports monthly
  127.95 +
  127.96 +Per chi non conoscesse Cron e la sintassi di definizione del tempo:
  127.97 +http://www.adminschoice.com/docs/crontab.htm#Crontab%20file
  127.98 +
  127.99 +
 127.100 +
 127.101 +Dglog
 127.102 +=====
 127.103 +
 127.104 +cos'è
 127.105 +-----
 127.106 +dglog  è un utilissimo perl-script che permette di analizzare comodamente i logs
 127.107 +generati da ``dansguardian``. Con questo  utile strumento sarà possibile, ad 
 127.108 +esempio, elencare tutti i contenuti web negati/permessi ad un particolare utente.
 127.109 +
 127.110 +
 127.111 +Configurazione dglog
 127.112 +--------------------
 127.113 +
 127.114 +Creare il file di configurazione
 127.115 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 127.116 +::
 127.117 +
 127.118 +    cd /etc/isi
 127.119 +    cp dglog.conf.pl.sample dglog.conf.pl
 127.120 +
 127.121 +Rendere eseguibile il cgi-script "dglog.pl"
 127.122 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 127.123 +::
 127.124 +
 127.125 +    chmod +x /usr/lib/cgi-bin/dglog/dglog.pl
 127.126 +
 127.127 +
 127.128 +Verifica
 127.129 +~~~~~~~~
 127.130 +
 127.131 +Per una rapida verifica basterà puntare con il proprio browser al seguente URL:
 127.132 +
 127.133 +http://<IP SERVER>/cgi-bin/dglog/dglog.pl
 127.134 +
 127.135 +
   128.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   128.2 +++ b/docs/install/servizi/squid_dans.rst	Mon Apr 26 11:16:23 2010 +0200
   128.3 @@ -0,0 +1,253 @@
   128.4 +.. _config_squid_dans:
   128.5 +
   128.6 +======================
   128.7 + Squid & Dansguardian
   128.8 +======================
   128.9 +
  128.10 +Squid
  128.11 +=====
  128.12 +
  128.13 +Modificare ``/etc/squid/squid.conf``::
  128.14 +
  128.15 +    visible_hostname srv-scuolax
  128.16 +
  128.17 +    auth_param basic program /usr/lib/squid/ldap_auth -v 3 -b ou=People,dc=isi,dc=lan srv-scuolax
  128.18 +
  128.19 +    external_acl_type ldap_group %LOGIN  /usr/lib/squid/squid_ldap_group \
  128.20 +    -v 3 -b ou=Groups,dc=isi,dc=lan -B ou=People,dc=isi,dc=lan  -f \
  128.21 +    "(&(memberUid=%v)(objectClass=posixGroup)(cn=%g))"  srv-scuolax 
  128.22 +
  128.23 +Assicurarsi inoltre che le seguenti direttive siano presenti::
  128.24 +
  128.25 +    http_port 3128
  128.26 +    access_log /var/log/squid/access.log
  128.27 +
  128.28 +La seconda direttiva, è indispensabile se si intende utilizzare un
  128.29 +analizzatore dei logs come "Sarg", già incluso nella distribuzione..
  128.30 +
  128.31 +Dans Guardian
  128.32 +=============
  128.33 +
  128.34 +Le modifiche da apportare al fine di configurazione
  128.35 +``/etc/dansguardian/dansguardian.conf`` sono modeste::
  128.36 +
  128.37 +    language = 'italian'
  128.38 +    # the port that DansGuardian listens to. 
  128.39 +    filterport = 8128
  128.40 +     
  128.41 +    # the ip of the proxy (default is the loopback - i.e. this server)
  128.42 +    proxyip = 127.0.0.1
  128.43 +      
  128.44 +    # the port DansGuardian connects to proxy on
  128.45 +    proxyport = 3128
  128.46 +
  128.47 +    # accessdeniedaddress is the address of your web server to which the cgi
  128.48 +    # dansguardian reporting script was copied
  128.49 +    # Do NOT change from the default if you are not using the cgi.
  128.50 +    #
  128.51 +    accessdeniedaddress = 'http://localhost/cgi-bin/dansguardian.pl'
  128.52 +
  128.53 +è inoltre possibile, non indispensabile, attivare il filtro antivirus. Nella
  128.54 +distribuzione si troverà già incluso il supporto per ClamAV.
  128.55 +
  128.56 +::
  128.57 +
  128.58 +    virusscan = on
  128.59 +      
  128.60 +    # OPTION: virusengine
  128.61 +    # Set the embedded virus scan engine to be used
  128.62 +    virusengine = 'clamav'
  128.63 +
  128.64 +Si può dunque scegliere di disattivare la feature impostando la direttiva
  128.65 +
  128.66 +::
  128.67 +
  128.68 +    virusscan = off
  128.69 +
  128.70 +Prima di attivare DansGuardian, come si evince dal suo contenuto, è
  128.71 +indispensabile rimuovere la seguente riga (localizzata di solito ad inizio
  128.72 +file)::
  128.73 +
  128.74 +    UNCONFIGURED - Please remove this line after configuration
  128.75 +
  128.76 +Chi volesse modificare le varie tipologie di filtraggio, troverà
  128.77 +indispensabile il file ``/etc/dansguardian/dansguardianf1.conf``
  128.78 +
  128.79 +Per ulteriori informazioni su dansguardian e le tipologie di filtraggio:
  128.80 +http://dansguardian.org/
  128.81 +
  128.82 +.. sidebar: Nota
  128.83 +
  128.84 +  Per installazioni datate potrebbe essere necessario, in caso si desideri
  128.85 +  utilizzare il sistema antivirus, aggiornare il pacchetto clamav all'ultima
  128.86 +  versione. Al fine di tenere sempre aggiornata la propria versione di
  128.87 +  ClamAV, si suggerisce di aggiungere il seguente repository al file
  128.88 +  ``/etc/apt/sources.lst``: ``deb http://ftp2.de.debian.org/debian-volatile sarge/volatile main``
  128.89 +  
  128.90 +
  128.91 +
  128.92 +SARG
  128.93 +====
  128.94 +
  128.95 +Per utilizzare SARG, utile strumento di interpretazione dei logs di accesso
  128.96 +di squid, è *necessario* assicurare la presenza di
  128.97 +``/var/log/squid/access.log``.
  128.98 +
  128.99 +Il file ``/var/log/squid/access.log``, di default assente( o così sembra,
 128.100 +almeno su debian etch) , si può "far generare" aggiungendo al file
 128.101 +*/etc/squid/squid.conf* la seguente direttiva::
 128.102 +
 128.103 +    access_log /var/log/squid/access.log
 128.104 +    
 128.105 +
 128.106 +Grazie a SARG è possibile generare report al momento o semplicemente
 128.107 +consultare quelli generati in automatico, in formato html, in
 128.108 +*/var/www/squid-reports/*.
 128.109 +
 128.110 +Dall'help di sarg-reports ::
 128.111 +
 128.112 +    Usage: /usr/sbin/sarg-reports [OPTIONS]
 128.113 +
 128.114 +    Allowed options:
 128.115 +        manual,  Create Manual report
 128.116 +         today,  Create Today report
 128.117 +         daily,  Create Daily report
 128.118 +        weekly,  Create Weekly report
 128.119 +        montly,  Create Monthly report
 128.120 +
 128.121 +
 128.122 +I logs di SARG, generati con ``sarg-reports`` verranno salvati anch'essi come
 128.123 +codice html, di default, in */var/www/squid-reports*. Tale percorso è
 128.124 +modificabile apportando qualche semplice modifica a
 128.125 +``/etc/squid/sarg-reports.conf``.
 128.126 +
 128.127 +Lo strano bug di /etc/logrotate.d/squid
 128.128 +----------------------------------------
 128.129 +
 128.130 +Con le prime versioni di sarg, prima della rotazione dei log di squid,
 128.131 +veniva invocata giornalmente la script "/usr/sbin/sarg-maint". Tale script è
 128.132 +stata "recentemente" rimpiazzata con "/usr/sbin/sarg-reports". Non è stato
 128.133 +però modificato il riferimento in "/etc/logrotate.d/squid", che punta ancora
 128.134 +all'inesistente vecchia script.
 128.135 +Curiosamente, sembra che ad oggi il bug non sia ancora stato corretto.
 128.136 +
 128.137 +La soluzione al problema
 128.138 +-------------------------------
 128.139 +
 128.140 +E' stato modificato dunque il file "/etc/logrotate.d/squid" affinchè lanci
 128.141 +"/usr/sbin/sarg-reports monthly". 
 128.142 +
 128.143 +/etc/logrotate.d/squid originale ::
 128.144 +
 128.145 +    #
 128.146 +    #       Logrotate fragment for squid.
 128.147 +    #
 128.148 +    /var/log/squid/*.log {
 128.149 +            daily
 128.150 +            compress
 128.151 +            delaycompress
 128.152 +            rotate 1000
 128.153 +            missingok
 128.154 +            nocreate
 128.155 +            sharedscripts
 128.156 +            prerotate
 128.157 +                    test ! -x /usr/sbin/sarg-maint || /usr/sbin/sarg-maint
 128.158 +            endscript 
 128.159 +            postrotate
 128.160 +                    test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
 128.161 +            endscript
 128.162 +    }
 128.163 +
 128.164 +/etc/logrotate.d/squid modificato ::
 128.165 +
 128.166 +    #
 128.167 +    #       Logrotate fragment for squid.
 128.168 +    #
 128.169 +    /var/log/squid/*.log {
 128.170 +            monthly
 128.171 +            compress
 128.172 +            delaycompress
 128.173 +            rotate 1000
 128.174 +            missingok
 128.175 +            nocreate
 128.176 +            sharedscripts
 128.177 +            prerotate
 128.178 +                    test ! -x /usr/sbin/sarg-reports || /usr/sbin/sarg-reports monthly
 128.179 +            endscript 
 128.180 +            postrotate
 128.181 +                    test ! -e /var/run/squid.pid || /usr/sbin/squid -k rotate
 128.182 +            endscript
 128.183 +    }
 128.184 +
 128.185 +Ed è stato riavviato il servizio "/etc/init.d/cron" ::
 128.186 +
 128.187 +    /etc/init.d/cron restart
 128.188 +
 128.189 +Generazione dei report schedulata tramite crontab
 128.190 +--------------------------------------------------------
 128.191 +
 128.192 +La creazione schedulata dei report( giornalieri, settimanali, mensili) viene
 128.193 +garantita dalle seguenti script :: 
 128.194 +
 128.195 +    /etc/cron.daily/sarg
 128.196 +    /etc/cron.weekly/sarg
 128.197 +    /etc/cron.monthly/sarg
 128.198 +
 128.199 +Il cui codice, molto elementare, altro non fa che avviare "sarg-reports" e
 128.200 +passargli il periodo di tempo di cui generare i logs. 
 128.201 +
 128.202 +es. ::
 128.203 +
 128.204 +    /usr/sbin/sarg-reports monthly
 128.205 +
 128.206 +
 128.207 +Assicurarsi che i servizi voluti partiranno al boot
 128.208 +===================================================
 128.209 +
 128.210 +Modificare ``/etc/runlevel.conf`` commentando i servizi che non si intende
 128.211 +far partire al boot e decommentare quelli che si desidera far partire.
 128.212 +
 128.213 +
 128.214 +Configurare i clientXP per passare da squid
 128.215 +===========================================
 128.216 +
 128.217 +Affinchè le macchine XP vengano correttamente configurate, in fase di logon,
 128.218 +per passare attraverso dansguardian, modificare ``/etc/isi/logon.conf``
 128.219 +impostando le seguenti direttive::
 128.220 +
 128.221 +    ### WinSet sezione 'proxy'
 128.222 +    ProxyServer          = 192.168.1.222:8128    # DansGuardian
 128.223 +    ProxyServer[admins]  = 192.168.1.222:3128    # Squid (FW permettendo)
 128.224 +    #ProxyOverride        = www.XXX.XXX,<local>
 128.225 +
 128.226 +
 128.227 +
 128.228 +
 128.229 +.. _apt_squid:
 128.230 +
 128.231 +Configurare apt dei client per passare da squid
 128.232 +===============================================
 128.233 +
 128.234 +Affinchè le macchine debian/ubuntu possano passare il firewall occorre
 128.235 +creare un account apposito ed istruire apt di usare quello per evitare di
 128.236 +essere bloccato dal firewall che blocca appunto la porta 80.
 128.237 +
 128.238 +Apt-get legge un file di configurazione,
 128.239 +
 128.240 +   1. /etc/apt/apt.conf o un qualunque file della directory
 128.241 +   2. etc/apt/apt.conf.d/ 
 128.242 +
 128.243 +E` sufficiente mettere in questo file la istruzione::
 128.244 +
 128.245 +  Acquire::http::Proxy "http://user:pwd@ip_squid_box:3128";
 128.246 +
 128.247 +una scritta alternativa e'::
 128.248 +
 128.249 +  Acquire 
 128.250 +  {
 128.251 +     http 
 128.252 +     {
 128.253 +       Proxy "http://user:pwd@ip_squid_box:3128";
 128.254 +     };
 128.255 +  };
 128.256 +  
   129.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   129.2 +++ b/docs/install/sshd_key.rst	Mon Apr 26 11:16:23 2010 +0200
   129.3 @@ -0,0 +1,281 @@
   129.4 +.. _config_sshd_key:
   129.5 +
   129.6 +=========
   129.7 +Sicurezza
   129.8 +=========
   129.9 +
  129.10 +.. sidebar:: Importante
  129.11 +
  129.12 +   non possiamo lasciare nel cd reteisi il default nel modo più sicuro 
  129.13 +   senza rendere la vita difficile a chi deve caricare le chiavi la
  129.14 +   prima volta.... voi però fatelo!!!
  129.15 +
  129.16 +Nel momento stesso in cui mettete una macchina in internet con alcune porte
  129.17 +aperte sapete per certo che sarà oggetto di ogni possibile attacco. Spesso i
  129.18 +nostri server funzionanao anche da firewall in situazioni "piccole", ovvero
  129.19 +di poche macchine.
  129.20 +
  129.21 +In queste occasioni le fonti più comuni di debolezze sono:
  129.22 +
  129.23 +1. ssh tramite account troppo semplici (password banali)
  129.24 +2. apache tramite applicazioni poso sicure
  129.25 +
  129.26 +per quanto riguarda il primo punto è facile mettere la macchina in sicurezza
  129.27 +con ben poca fatica, tramite l'uso delle chiavi crittografiche. 
  129.28 +
  129.29 +Accedere al server tramite SSH usando le chiavi
  129.30 +===============================================
  129.31 +
  129.32 +Accedere remotamente al proprio server mediante l'utilizzo delle chiavi
  129.33 +crittografiche aumenta la sicurezza del proprio server, rendendo inutile,
  129.34 +ad esempio, la quasi totalità dei tipi di attacco di tipo `dizionario` o
  129.35 +`brute force`.
  129.36 +
  129.37 +Per le delucidazioni circa il concetto di "chiave di criptazione" si rimanda
  129.38 +al seguente indirizzo:
  129.39 +http://it.wikipedia.org/wiki/Crittografia_asimmetrica
  129.40 +
  129.41 +
  129.42 +Configurazione del server OpenSSH
  129.43 +---------------------------------
  129.44 +
  129.45 +Senza dilungarci troppo in trattazioni sulla sicurezza, si suggerisce l'adozione
  129.46 +dei seguenti accorgimenti, considerati ragionevole compromesso tra "paranoia" e
  129.47 +usabilità.
  129.48 +
  129.49 +- disattivazione dell'accesso tramite password.
  129.50 +- attivazione dell'accesso esclusivamente tramite chiavi.
  129.51 +- disattivazione dell'accesso diretto al sistema da parte di root ( sarà comunque
  129.52 +  accessibile grazie al comando ``su -`` ).
  129.53 +
  129.54 +Per ottenere tutto ciò, sarà sufficiente assicurarsi che le direttive del proprio
  129.55 +``/etc/ssh/sshd.conf`` siano così configurate::
  129.56 +
  129.57 +    PasswordAuthentication no
  129.58 +    PubkeyAuthentication yes
  129.59 +    ChallengeResponseAuthentication no
  129.60 +    PermitRootLogin no
  129.61 +
  129.62 +Per i più curiosi, viene riportata di seguito una configurazione integrale del file
  129.63 +``/etc/ssh/sshd.conf``::
  129.64 +
  129.65 +    Port 22
  129.66 +    Protocol 2
  129.67 +    HostKey /etc/ssh/ssh_host_rsa_key
  129.68 +    HostKey /etc/ssh/ssh_host_dsa_key
  129.69 +    UsePrivilegeSeparation yes
  129.70 +
  129.71 +    # Lifetime and size of ephemeral version 1 server key
  129.72 +    KeyRegenerationInterval 3600
  129.73 +    ServerKeyBits 768
  129.74 +
  129.75 +    # Logging
  129.76 +    SyslogFacility AUTH
  129.77 +    LogLevel INFO
  129.78 +
  129.79 +    # Authentication:
  129.80 +    LoginGraceTime 120s
  129.81 +    PermitRootLogin no
  129.82 +    StrictModes yes
  129.83 +    MaxAuthTries 4
  129.84 +
  129.85 +    #RSAAuthentication no
  129.86 +    PubkeyAuthentication yes
  129.87 +    #AuthorizedKeysFile     %h/.ssh/authorized_keys
  129.88 +
  129.89 +    # Don't read the user's ~/.rhosts and ~/.shosts files
  129.90 +    IgnoreRhosts yes
  129.91 +    # For this to work you will also need host keys in /etc/ssh_known_hosts
  129.92 +    RhostsRSAAuthentication no
  129.93 +    # similar for protocol version 2
  129.94 +
  129.95 +    HostbasedAuthentication no
  129.96 +    # Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
  129.97 +    #IgnoreUserKnownHosts yes
  129.98 +
  129.99 +    # To enable empty passwords, change to yes (NOT RECOMMENDED)
 129.100 +    PermitEmptyPasswords no
 129.101 +
 129.102 +    # Change to yes to enable challenge-response passwords (beware issues with
 129.103 +    # some PAM modules and threads)
 129.104 +    ChallengeResponseAuthentication no
 129.105 +
 129.106 +    # Change to no to disable tunnelled clear text passwords
 129.107 +    PasswordAuthentication no
 129.108 +
 129.109 +    X11DisplayOffset 10
 129.110 +    PrintMotd no
 129.111 +    PrintLastLog yes
 129.112 +    TCPKeepAlive yes
 129.113 +
 129.114 +    AcceptEnv LANG LC_*
 129.115 +
 129.116 +    Subsystem sftp /usr/lib/openssh/sftp-server
 129.117 +
 129.118 +    UsePAM yes
 129.119 +
 129.120 +    #l'utente "utente1" si puo' loggare solo da qualunque indirizzo
 129.121 +    #AllowUsers utente1@*
 129.122 +
 129.123 +    #l'utente "utente2" si puo' loggare solo da tutte le postazioni del network
 129.124 +    #192.168.0.0 :
 129.125 +    #[email protected].*
 129.126 +
 129.127 +    #Solo "utente1" potrà collegarsi a ssh. Questa direttiva escluderà tutti gli 
 129.128 +    #altri
 129.129 +    #AllowUsers utente1
 129.130 +     
 129.131 +    #Per creare un utente guest "localuser" con una password nota a tutti ma
 129.132 +    #impedirne l'accesso via ssh da remoto:
 129.133 +    #DenyUsers localuser
 129.134 +
 129.135 +.. Note::
 129.136 +
 129.137 +    Le ultime righe commentate, potranno tornare utili a chi vorrà limitare 
 129.138 +    ulteriormente i propri accessi.
 129.139 +
 129.140 +
 129.141 +Generazione ed aggiunta delle chiavi utente sul server
 129.142 +------------------------------------------------------
 129.143 +
 129.144 +1. Autenticarsi con il proprio utente per generare la coppia di chiavi pubblica/privata::
 129.145 +
 129.146 +    utente1@srv-isi:~$ ssh-keygen -t dsa
 129.147 +    Generating public/private dsa key pair.
 129.148 +    
 129.149 +    Enter file in which to save the key (~utente1/.ssh/id_dsa):   
 129.150 +    <INVIO>
 129.151 +    Created directory '~utente1/.ssh'.
 129.152 +    
 129.153 +    Enter passphrase (empty for no passphrase): <PASSWORD PER LA CHIAVE>
 129.154 +    Enter same passphrase again: <PASSWORD PER LA CHIAVE>
 129.155 +    
 129.156 +    Your identification has been saved in ~utente1/.ssh/id_dsa.
 129.157 +    Your public key has been saved in /home/users/admins/utente1/.ssh/id_dsa.pub.
 129.158 +    The key fingerprint is:
 129.159 +    20:d6:94:95:cf:59:a8:81:f0:e4:1e:98:98:47:54:71 utente1@srv-isi
 129.160 +
 129.161 +    cp .ssh/id_dsa.pub /tmp
 129.162 +    chmod a+r /tmp/id_dsa.pub
 129.163 +    
 129.164 +2. Aggiungere la chiave `pubblica` generata nel file ``authorized_keys`` 
 129.165 +   dell'utente da controllare( utente2)::
 129.166 +    
 129.167 +        su utente2 <PASSWORD utente2>
 129.168 +    
 129.169 +   Ci si assicuri che la directory ``.ssh`` esista::
 129.170 +
 129.171 +        cd
 129.172 +        ls .ssh
 129.173 +        
 129.174 +   Se non dovesse essere presente, si provveda a crearla::
 129.175 +
 129.176 +        mkdir .ssh
 129.177 +
 129.178 +   Sarà ora possibile aggiungere la propria chiave pubblica, precedentemente 
 129.179 +   copiata in /tmp ::
 129.180 +
 129.181 +        cat /tmp/id_dsa.pub >> .ssh/authorized_keys
 129.182 +        
 129.183 +.. Note::
 129.184 +
 129.185 +    Il file ``authorized_keys`` contiene le chiavi pubbliche degli utenti 
 129.186 +    abilitati ad accedere remotamente, via ssh e senza password, all'account 
 129.187 +    dell'utente. Modificando tale file con un editor di testo si potranno 
 129.188 +    rimuovere le chiavi pubbliche aggiunte in precedenza, impedendo alle 
 129.189 +    relative utenze di accedere senza password con il nostro utente.
 129.190 +
 129.191 +3. Testare che tutto funzioni, autenticandosi come `utente1` e cercando 
 129.192 +   con esso di accedere, via ssh, all'account `utente2`::
 129.193 +
 129.194 +    utente1@srv-isi:~$ ssh -l utente2 127.0.0.1
 129.195 +    Enter passphrase for key '/home/users/admins/utente1/.ssh/id_dsa':
 129.196 +    <PASSWORD DELLA CHIAVE PRIVATA> 
 129.197 +    utente2@srv-isi:~$ 
 129.198 +
 129.199 +Utilizzo delle chiavi in ambiente Windows
 129.200 +-----------------------------------------
 129.201 +
 129.202 +In ambiente windows, uno dei client più usati per controllo remoto via
 129.203 +ssh è probabilmente ``Putty``. Esistono diverse pacchettizzazioni di tale
 129.204 +programma, installabili tramite setup o `portabili`.
 129.205 +Si suggerisce di optare per la versione `portabile`, che consente di 
 129.206 +portare putty sempre con sè, magari su chiavetta usb.
 129.207 +
 129.208 +.. Note::
 129.209 +
 129.210 +    La procedura a seguire, tratterà esclusivamente della versione `portabile`.
 129.211 +
 129.212 +Da dove scaricare Putty?
 129.213 +~~~~~~~~~~~~~~~~~~~~~~~~
 129.214 +
 129.215 +le versioni di putty sono liberamente scaricabili dai seguenti indirizzi:
 129.216 +
 129.217 +http://the.earth.li/~sgtatham/putty/latest/x86/putty-0.60-installer.exe
 129.218 +http://the.earth.li/~sgtatham/putty/latest/x86/putty.zip
 129.219 +
 129.220 +Configurazione ed utilizzo di putty
 129.221 +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 129.222 +
 129.223 +1. Accedere al dominio autenticandosi con il proprio utente.
 129.224 +
 129.225 +.. image:: ../img/ssh-key/small/0_accessoDominio.jpg
 129.226 +
 129.227 +2. Aprire una cartella qualunque ed attivare la visualizzazione delle 
 129.228 +   "estensioni per i nomi file conosciuti".
 129.229 +
 129.230 +.. image:: ../img/ssh-key/small/1_estensioni1.jpg
 129.231 +
 129.232 +
 129.233 +.. image:: ../img/ssh-key/small/2_estensioni2.jpg
 129.234 +
 129.235 +
 129.236 +2. Scaricare ed estrarre il file ``putty.zip`` e lanciare l'eseguibile ``puttygen.exe``.
 129.237 +
 129.238 +3. Selezionare la voce di menù ``Conversions >> Import key`` ed importare la chiave 
 129.239 +   privata **id_dsa** generata in precedenza sul server.
 129.240 +
 129.241 +.. Note::
 129.242 + 
 129.243 +    La chiave di `utente1` verrà localizzata dai client microsoft in **H:\\.ssh\\id_dsa**
 129.244 +    nella home del relativo utente.
 129.245 +
 129.246 +.. image:: ../img/ssh-key/small/3_import1.jpg
 129.247 +
 129.248 +
 129.249 +.. image:: ../img/ssh-key/small/4_import2.jpg
 129.250 +
 129.251 +
 129.252 +4. Una volta importata la chiave privata in formato Unix, si procederà alla sua 
 129.253 +   conversione nel formato usato da putty, arrivando ad ottenere una chiave 
 129.254 +   privata "id_dsa.ppk".
 129.255 +
 129.256 +.. image:: ../img/ssh-key/small/5_import3.jpg
 129.257 +
 129.258 +
 129.259 +.. image:: ../img/ssh-key/small/6_import4.jpg
 129.260 +
 129.261 +
 129.262 +5. Non resta che configurare putty affinchè utilizzi la nostra chiave appena convertita e si colleghi all'ip del nostro server.
 129.263 +
 129.264 +.. image:: ../img/ssh-key/small/7_putty-addkey1.jpg
 129.265 +
 129.266 +
 129.267 +.. image:: ../img/ssh-key/small/8_putty-addkey2.jpg
 129.268 +
 129.269 +
 129.270 +.. image:: ../img/ssh-key/small/9_putty-connessione1.jpg
 129.271 +
 129.272 +
 129.273 +.. image:: ../img/ssh-key/small/10_putty-connessione2.jpg
 129.274 +
 129.275 +
 129.276 +.. image:: ../img/ssh-key/small/11_putty-connessione3.jpg
 129.277 +
 129.278 +
 129.279 +.. image:: ../img/ssh-key/small/12_putty-connessione4.jpg
 129.280 +
 129.281 +
 129.282 +.. image:: ../img/ssh-key/small/13_putty-connessione5.jpg
 129.283 +
 129.284 +
   130.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   130.2 +++ b/docs/progetto/contents.rst	Mon Apr 26 11:16:23 2010 +0200
   130.3 @@ -0,0 +1,25 @@
   130.4 +.. _reteisi_intro:   
   130.5 +
   130.6 +Il progetto ReteIsi
   130.7 +===================
   130.8 +
   130.9 +ReteIsi, il cui acronimo significa Intranet Scolastiche Integrate, è una
  130.10 +libera associazione di scuole nata per sviluppare una soluzione informatica
  130.11 +open source per reti scolastiche. Lo scopo principale del progetto è
  130.12 +sviluppare una soluzione facile da adottare, in cui le necessità di una
  130.13 +scuola siano state affrontate e possibilmente risolte in modo semplice.
  130.14 +
  130.15 +Il CD di ReteIsi permette di fare funzionare un dominio Windows basato su
  130.16 +samba senza neanche l'installazione con soli pochi comandi. Questo dominio
  130.17 +serve in realtà solo per demo ma è una prova efficace della facilità di
  130.18 +utilizzo. Le macchine Windows potranno fare un join, le macchine linux
  130.19 +possono decidere di delegare a questo sistema l'autenticazione.
  130.20 +
  130.21 +.. toctree::
  130.22 +   :maxdepth: 2
  130.23 +   
  130.24 +   project
  130.25 +   presentazione_tecnica
  130.26 +   devel
  130.27 +   docs
  130.28 +
   131.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   131.2 +++ b/docs/progetto/devel.rst	Mon Apr 26 11:16:23 2010 +0200
   131.3 @@ -0,0 +1,43 @@
   131.4 +.. _reteisi_devel:
   131.5 +
   131.6 +Sviluppo
   131.7 +==========
   131.8 +
   131.9 +Lo sviluppo dell'infrastruttura ISI viene portato avanti principalmente da:
  131.10 +
  131.11 +  * **Sandro Dentella**: consulente del progetto iniziale e principale
  131.12 +    responsabile della architettura nonché della riscrittura delle librerie
  131.13 +    in python. E` anche responsabile della distribuzione Argo_ su cui è
  131.14 +    basata la iso
  131.15 +
  131.16 +  * **Massimo Mancini**: insegnante della scuola capofila e principale
  131.17 +    sviluppatore della fase di logon e di tutte le procedure di estrazione
  131.18 +    dei dati da SISSI. E` anche responsabile della integrazione di applicazioni
  131.19 +    open (PMB, TWiki) nell'ambiente determinato da una rete ISI
  131.20 +
  131.21 +  * **Simone Castellazzi**: valente tester, scopritore di bug e autore di gran
  131.22 +    parte della documentazione.
  131.23 +
  131.24 +
  131.25 +Mailing list
  131.26 +============
  131.27 +
  131.28 +  puoi seguire lo sviluppo, chiedere aiuto e contribuire allo sviluppo sul
  131.29 +  googlegroup: http://reteisi.google.com
  131.30 +
  131.31 +
  131.32 +Sorgenti
  131.33 +========
  131.34 +
  131.35 +Il codice è stato sviluppato nel corso di alcuni anni ed è composto da
  131.36 +script di shell, perl e python. Attualmente tutti i comandi ad eccezione
  131.37 +della fase di login stanno subendo una riscrittura in python_ per renderli
  131.38 +più omogenei. Sono raggiungibili nella forma di repository mercurial al
  131.39 +sito: http://hg.argolinux.org e sono quelli nella cartella isi.
  131.40 +
  131.41 +Vengono poi prodotti pacchetti debian che sono disponibili nel repository::
  131.42 +
  131.43 +  deb http://apt.reteisi.org/ etch isi
  131.44 +
  131.45 +.. _python: http://www.python.org
  131.46 +.. _Argo: http://www.argolinux.org
   132.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   132.2 +++ b/docs/progetto/docs.rst	Mon Apr 26 11:16:23 2010 +0200
   132.3 @@ -0,0 +1,130 @@
   132.4 +Documentazione
   132.5 +==============
   132.6 +
   132.7 +  Stiamo riscrivendo completamente la documentazione nella speranza di
   132.8 +  rendere un migliore servizio a tutti voi. In questo momento troverete molti
   132.9 +  punti incompleti: data la mole della documentazione non ci è facile
  132.10 +  aggiornarla tutta insieme. 
  132.11 +
  132.12 +  Avete due modi di contribuire:
  132.13 +
  132.14 +  1. In ogni pagina trovate un link a destra con scritto "Sorgente della
  132.15 +     pagina", potete vedere cosa sta scritto, copiare il sorgente, correggerlo
  132.16 +     e inviarcelo. Saremo ben contenti di integrarlo.
  132.17 +
  132.18 +  2. potete scaricare il repository mercurial della documentazione::
  132.19 +
  132.20 +       hg clone http://hg.argolinux.org/isi/isi-docs/
  132.21 +
  132.22 +     Ed `inviarmi <[email protected]>`_  la patch con le vostre migliorie
  132.23 +
  132.24 +
  132.25 +TODO
  132.26 +----
  132.27 +
  132.28 +Questa documentazione è chiaramente incompleta. Queste sono alcune delle
  132.29 +cose che mi saltano all'occhio, siete incoraggiati ad aggiungere punti:
  132.30 +
  132.31 +1. Analisi della documentazione dal sito istituzionale_ per capire quali
  132.32 +   parti non sono state riportate, quali vadano riportate.
  132.33 +
  132.34 +2. Documentare LTSP: cosa è come integrarla con ReteIsi
  132.35 +
  132.36 +3. Parte relativa alle biblioteche (pmb)
  132.37 +
  132.38 +4. Documentazione librerie nuove e man di ogni comando
  132.39 +
  132.40 +5. Gestione stampanti
  132.41 +
  132.42 +6. Backup
  132.43 +
  132.44 +7. Gestione installazione/clonazione client
  132.45 +
  132.46 +8. Configurazione firefox nei client
  132.47 +
  132.48 +9. Creazione di tutte le voci degli indici
  132.49 +
  132.50 +10. Allegati formativi: acl, scripting bash, scripting python.
  132.51 +    Qui dovrebbero essere più propriamente link a documentazione esistente
  132.52 +
  132.53 +11. Uso di vmware per esercitazione e per test. Uso di VNC.
  132.54 +
  132.55 +12. sicurezza (ssh senza chiave anche con putty)
  132.56 +
  132.57 +13. documentare runlevel.conf
  132.58 +
  132.59 +14. chiave repository
  132.60 +
  132.61 +
  132.62 +.. _istituzionale: http://www.reteisi.org
  132.63 +
  132.64 +Il pacchetto isi-docs
  132.65 +---------------------
  132.66 +
  132.67 +  Il comando qui sopra scarica sul vostro pc i sorgenti del pacchetto
  132.68 +  isi-docs come repository mercurial_ per generare la documentazione per
  132.69 +  provare in locale il risultato.
  132.70 +
  132.71 +  Tutta la documentazione del sito è raccolta in un pacchetto debian
  132.72 +  ``isi-docs`` che potete installare con il comando::
  132.73 +
  132.74 +    apt-get install isi-docs
  132.75 +
  132.76 +Contribuire alla documentazione
  132.77 +-------------------------------
  132.78 +
  132.79 +  Per contribuire alla documentazione occorre scrivere usando il sistema di
  132.80 +  markup reST. Vedrete presto che questo è facile e viene molto naturalmente.
  132.81 +
  132.82 +  Occorrono però due passi:
  132.83 +  
  132.84 +  1. Procurarsi il sorgente di isi-docs che è in un repository formato
  132.85 +     mercurial::
  132.86 + 
  132.87 +       apt-get install mercurial
  132.88 +       hg clone http://hg.argolinux.org/isi/isi-docs
  132.89 +
  132.90 +  2. Modificare le pagine che stanno in docs, eventualmente aggiungerne
  132.91 +     ed inviarmi le modifiche
  132.92 +
  132.93 +     Per fare nel modo più comodo questo secondo passaggio, anche se non
  132.94 +     necessario, consiglio di installare sphinx::
  132.95 +
  132.96 +       sudo apt-get install subversion-tools python-docutils python-jinja python-dev
  132.97 +       svn co http://svn.python.org/projects/doctools
  132.98 +       cd doctools/trunk
  132.99 +       python setup.py install
 132.100 +
 132.101 +    Avendo sphinx installato, dalla cartella isi-docs::
 132.102 +
 132.103 +       cd docs
 132.104 +       (editate i file)
 132.105 +       make html
 132.106 +
 132.107 +    Che produce i file in formato html in docs/.build/html
 132.108 +    Chi ha diritto di accesso può committare i risultati, gli altri possono
 132.109 +    mandarmi un diff::
 132.110 +
 132.111 +       hg tip > patch
 132.112 +       hg diff >> patch
 132.113 +       mutt -a patch -s "RetIsiDoc: aggiunta documentazione" [email protected] < /dev/null
 132.114 +
 132.115 +    
 132.116 +     	
 132.117 +
 132.118 +reST
 132.119 +----
 132.120 +
 132.121 +Per contribuire alla documentazione vi conviene familiarizzare con la
 132.122 +sintassi di reST_ , il linguaggio di markup usato
 132.123 +
 132.124 +.. toctree::
 132.125 +
 132.126 +  rest
 132.127 +
 132.128 +.. _reST :ref: `reteisi_rest`
 132.129 +
 132.130 +.. _mercurial: http://www.selenic.com/mercurial/wiki/
 132.131 +
 132.132 +
 132.133 +
   133.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   133.2 +++ b/docs/progetto/presentazione_tecnica.rst	Mon Apr 26 11:16:23 2010 +0200
   133.3 @@ -0,0 +1,121 @@
   133.4 +.. _reteisi_presentazione_tecnica:
   133.5 +
   133.6 +Presentazione tecnica
   133.7 +=======================
   133.8 +
   133.9 +le fondamenta di ISI: argolinux
  133.10 +-------------------------------
  133.11 +
  133.12 +ArgoLinux è un progetto basato su Debian (ramo stabile) con
  133.13 +caratteristiche che abbiamo trovato adatte alle nostre esigenze, in
  133.14 +particolare:
  133.15 +
  133.16 +
  133.17 +    * preinstallazione e preconfigurazione di tutti i pacchetti che servono
  133.18 +      ad implementare le previste funzionalità di networking
  133.19 +
  133.20 +    * installazione e replica semplificata
  133.21 +
  133.22 +    * funzionamento da cdrom con salvataggio della configurazione su
  133.23 +      floppy: in questo modo è facile implementare un servizio di firewall
  133.24 +      sicuro e di immediato ripristino
  133.25 +
  133.26 +    * semplicità della gestione dei runlevel e della configurazione di
  133.27 +      startup dei servizi (Argo adotta il pacchetto Debian file-rc che
  133.28 +      mappa il sistema di cartelle e file di boot SysV? su un unico file)
  133.29 +
  133.30 +    * facilità di configurazione del firewall
  133.31 +
  133.32 +Queste caratteristiche non alterano la compatibilità con la distribuzione
  133.33 +ufficiale Debian stabile, di cui possono perciò essere adottati tutti i
  133.34 +pacchetti esistenti. Sono garantite pertanto tutte quelle caratteristiche
  133.35 +che fanno di Debian una delle distribuzione più stabili, sicure e meglio
  133.36 +supportate in circolazione.
  133.37 +
  133.38 +
  133.39 +requisiti hardware
  133.40 +------------------
  133.41 +
  133.42 +ISI come firewall
  133.43 ++++++++++++++++++
  133.44 +        
  133.45 +Per realizzare un potente firewall da interporre tra il router ADSL e la
  133.46 +rete locale in modo da evitare attacchi indesiderati da internet, e nel
  133.47 +contempo consentire l'accesso da remoto ai server e agli apparati di rete, è
  133.48 +sufficiente una macchina con le seguenti caratteristiche:
  133.49 +
  133.50 +  * CPU pentium 2 (in teoria dovrebbe essere possibile anche con macchine
  133.51 +    pentium ma il kernel è ottimizzato per pentium2 e superiori)
  133.52 +
  133.53 +  * RAM 64 mb sono stati sufficienti a gestire un firewall con 3 schede di
  133.54 +    rete 10/100 mbps (una per la lan e le altre per due router collegati a
  133.55 +    differenti linee adsl)
  133.56 +
  133.57 +  * HD 10 Gb dovrebbe essere più che sufficiente anche per i log (I servizi
  133.58 +    offerti da una configurazione normale comprendono anche Dhcp e DNS
  133.59 +    server, VPN per il collegamento con i plessi non raggiungibili
  133.60 +    altrimenti)
  133.61 +
  133.62 +Per questa soluzione (non gira samba) è più indicato usare la distribuzione
  133.63 +Argo originale.
  133.64 +
  133.65 +ISI come fileserver
  133.66 ++++++++++++++++++++
  133.67 +
  133.68 +Per realizzare un file server è opportuno utilizzare una macchina più
  133.69 +potente, sia come processore, che soprattutto come Ram e capacità di
  133.70 +memorizzazione.  Le macchine originariamente acquistate (2003) per il
  133.71 +progetto ISI avevano le seguenti caratteristiche:
  133.72 +
  133.73 + * CPU Pentium 4 2,4 gHz
  133.74 + * RAM 1 Gb ddr
  133.75 + * HD n.2 dischi da 80 Gb in mirroring software
  133.76 + * device di backup: masterizzatore DVD-ram
  133.77 + * scheda di rete gigabit 
  133.78 +
  133.79 +Tutto questo è largamente sufficiente per gestire una rete di 100-200 client
  133.80 +con vari servizi, oltre al file server, e in particolare:
  133.81 +
  133.82 + * PDC per autenticazione utenti tramite Ldap e Samba
  133.83 + * Web, Ftp e mail server
  133.84 + * proxy 
  133.85 +
  133.86 +Queste caratteristiche sono ora più che mai normali
  133.87 +
  133.88 +sistemi operativi supportati
  133.89 +++++++++++++++++++++++++++++
  133.90 +
  133.91 +    + Linux
  133.92 +
  133.93 +        Qualunque distribuzione ( Per il nutrito numero di applicativi
  133.94 +        educativi contenuti è stata preferita EDUBUNTU )
  133.95 +
  133.96 +    + Microsoft
  133.97 +
  133.98 +        + Windows98 Second Edition
  133.99 +
 133.100 +        + Windows2000
 133.101 +
 133.102 +        + Windows XP Professional
 133.103 +
 133.104 +
 133.105 +perché scegliere isi
 133.106 +--------------------
 133.107 +
 133.108 +    I vantaggi rispetto ad un sistema proprietario sono molteplici:
 133.109 +
 133.110 +        + azzeramento degli onerosi costi di licenza
 133.111 +
 133.112 +        + Maggiore sicurezza
 133.113 +        
 133.114 +        + Standard aperti
 133.115 +        
 133.116 +        + Personalizzabile per adattarla alle proprie esigenze
 133.117 +        
 133.118 +ottenere isi
 133.119 +------------
 133.120 +
 133.121 +    è possibile scaricare la versione più recente all'indirizzo 
 133.122 +    http://download.argolinux.org/isi/ 
 133.123 +
 133.124 +
   134.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   134.2 +++ b/docs/progetto/project.rst	Mon Apr 26 11:16:23 2010 +0200
   134.3 @@ -0,0 +1,155 @@
   134.4 +.. _reteisi_project:   
   134.5 +
   134.6 +Il progetto e le sue finalità
   134.7 +=============================
   134.8 +
   134.9 +ReteIsi nasce nel 2002 come libera associazione di Scuole proponenti un
  134.10 +progetto di informatizzazione dell'organizzazione scolastica finanziato
  134.11 +dall'USR Lombardia nell'ambito degli interventi previsti dalla CM 152/2001
  134.12 +(progetti azione B).
  134.13 +
  134.14 +Raggiunti gli obiettivi principali (definizione di un modello architetturale
  134.15 +di una intranet scolastica, individuazione della piattaforma software e dei
  134.16 +servizi da attivare, traduzione del modello e dei sistemi individuati in
  134.17 +installazioni funzionanti) ora ReteIsi mette a disposizione di tutte le
  134.18 +Istituzioni Scolastiche interessate a perseguire "politiche" informatiche
  134.19 +non episodiche, i risultati raggiunti, proponendosi come punto di raccordo
  134.20 +delle esperienze in atto.
  134.21 +
  134.22 +
  134.23 +Finalità (estratto dai documenti di progetto)
  134.24 +---------------------------------------------
  134.25 +
  134.26 +Il progetto ha come oggetto lo sviluppo, in ambiente Open Source, di un
  134.27 +framework HW/SW modulare e standardizzato che consenta la razionalizzazione,
  134.28 +la conservazione, la gestione collaborativa, la trasmissione e la
  134.29 +pubblicazione dei flussi informativi generati dalle attività scolastiche
  134.30 +relativamente
  134.31 +
  134.32 +   * all'istituzione scolastica nel suo complesso e ai suoi rapporti con
  134.33 +     altri Istituti (processi interni di raccolta dati, di decisione, di
  134.34 +     pianificazione delle attività, ed esterni di trasmissione di
  134.35 +     informazioni, anche afferenti alla didattica, alle attività a distanza
  134.36 +     e alle collaborazioni su progetti comuni); Interoperable Delivery of
  134.37 +     European eGovernment Services
  134.38 +
  134.39 +   * ai percorsi formativi degli alunni, (valutazione degli apprendimenti e
  134.40 +     problematica della relativa comunicazione scuola/famiglia anche
  134.41 +     attraverso l'accesso remoto al fascicolo dello studente );
  134.42 +
  134.43 +   * ai rapporti dell'istituzione scolastica con il territorio (iniziative
  134.44 +     formative rivolte alla cittadinanza promosse in collaborazione con gli
  134.45 +     EE.LL., certificazione ECDL, pubblicazione/interrogazione patrimonio
  134.46 +     librario ecc., integrazione in eventuali reti civiche esistenti ecc).
  134.47 +
  134.48 +L'architettura HW/SW individuata a sostegno del progetto è quella della
  134.49 +intranet d'Istituto, cioè la connessione tra le reti didattiche esistenti,
  134.50 +la segreteria e gli ambienti di staff (presidenza, sale insegnanti,
  134.51 +biblioteca e quant'altro costituisce luogo in cui abitualmente vengono poste
  134.52 +in essere attività relative all'elaborazione e alla gestione delle attività
  134.53 +della Scuola). Secondo il ventaglio illustrato nel RGL, le scuole aderenti a
  134.54 +questo progetto si collocano, per motivi diversi, all'interno delle
  134.55 +tipologie C-D-E: lo strato fisico di rete è già in gran parte disponibile, i
  134.56 +completamenti necessari consistono nella posa di dorsali tra edifici diversi
  134.57 +poco distanti, nell'aggiunta di punti rete in locali di staff non ancora
  134.58 +raggiunti e nell'interconnessione dei segmenti LAN già in essere. Per quanto
  134.59 +riguarda le aule tre di noi, ISSS Majorana, IC Bernareggio e IC Bellano,
  134.60 +adotteranno anche soluzioni wireless. La connessione delle sedi staccate
  134.61 +avverrà adottando canali VPN su ADSL (laddove ADSL è disponibile).
  134.62 +
  134.63 +Su questa infrastruttura, si definiranno in modo modulare, valutandone di
  134.64 +volta in volta la completezza e la riutilizzabilità e utilizzando standard
  134.65 +aperti e strumenti Open Source, procedure e servizi rivolti
  134.66 +all'organizzazione e alla gestione di elementi importanti della vita
  134.67 +scolastica quali:
  134.68 +
  134.69 +processi interni
  134.70 +~~~~~~~~~~~~~~~~
  134.71 +
  134.72 +   * definizione del 'manuale' per la configurazione e il buon uso della
  134.73 +     struttura intranet, comprese le fondamentali procedure di backup e
  134.74 +     quelle relative alla sicurezza;
  134.75 +
  134.76 +   * gestione degli account personali di docenti, non docenti e alunni
  134.77 +     necessari per l'autenticazione e l'accesso sicuro e controllato alla
  134.78 +     rete d'Istituto e ai suoi servizi;
  134.79 +
  134.80 +   * esportazione dei dati personali dello studente solitamente 'sepolti' in
  134.81 +     segreteria, per la predisposizione di modulistica e/o report;
  134.82 +
  134.83 +   * pianificazione e documentazione della programmazione didattica e
  134.84 +     curricolare secondo modalità che ne permettano la pubblicazione sulla
  134.85 +     rete, il confronto e la verifica;
  134.86 +
  134.87 +   * definizione del fascicolo dello studente (FAST) che è alla base di
  134.88 +     qualsiasi servizio interattivo scuola/famiglia riutilizzabile in ambito
  134.89 +     regionale;
  134.90 +
  134.91 +   * registro elettronico dei voti e delle valutazioni; 
  134.92 +
  134.93 +   * gestione delle verbalizzazioni e degli strumenti di supporto alle
  134.94 +     decisioni (griglie, quadri valutativi);
  134.95 +
  134.96 +   * procedure per la pianificazione e il calendario delle attività; 
  134.97 +
  134.98 +   * comunicazioni interne: albi elettronici con funzionalità di
  134.99 +     organizzazione e ricerca documentale;
 134.100 +
 134.101 +   * gestione delle risorse strumentali disponibili (prenotazione,
 134.102 +     monitoraggio dell'uso, manutenzioni);
 134.103 +
 134.104 +   * gestione della biblioteca e dei servizi correlati (compresa
 134.105 +     l'interrogazione remota e l'eventuale integrazione del patrimonio
 134.106 +     librario scolastico con quello delle locali biblioteche civiche);
 134.107 +
 134.108 +processi esterni
 134.109 +~~~~~~~~~~~~~~~~
 134.110 +
 134.111 +   * connessione (VPN) delle sedi staccate e/o dei plessi in cui si articola
 134.112 +     l'Istituto;
 134.113 +
 134.114 +   * assistenza/manutenzione remota degli apparati server anche fra Istituti
 134.115 +     diversi (collaborazione sistemistica e consolidamento delle competenze
 134.116 +     interne rese disponibili anche ad altri istituti);
 134.117 +
 134.118 +   * interazione remota territorio-scuola (comunicazioni scuola/famiglia e
 134.119 +     problematica dell'autenticazione e del riconoscimento digitale,
 134.120 +     integrazione in reti civiche esistenti,);
 134.121 +
 134.122 +La natura eterogenea del raggruppamento di Scuole che presenta questo
 134.123 +progetto e gli accordi orientati allo sviluppo parallelo e mutuamente
 134.124 +assistibile della piattaforma intranet, consentirà
 134.125 +
 134.126 +   * lo sviluppo di un modello hw/sw di intranet scolastica facilmente
 134.127 +     duplicabile in altre realtà grazie alla standardizzazione,
 134.128 +     all'economicità e al modelle di sviluppo aperto che caratterizza le
 134.129 +     soluzioni sistemistiche adottate;
 134.130 +
 134.131 +   * lo studio delle problematiche connesse con l'autenticazione e il
 134.132 +     riconoscimento digitale di tutti i soggetti che per vari motivi devono
 134.133 +     o vogliono interagire in modo sicuro con la scuola;
 134.134 +
 134.135 +   * l'individuazione dei sistemi per la comunicazione sicura tra plessi e/o
 134.136 +     scuole diverse (connessioni VPN, sviluppo collaborativo di siti web,
 134.137 +     forum);
 134.138 +
 134.139 +   * lo sviluppo di servizi significativi per la gestione, il monitoraggio,
 134.140 +     il reporting e la comunicazione dell'attività didattica anche
 134.141 +     attraverso connessioni remote sicure e personalizzate;
 134.142 +
 134.143 +   * lo sviluppo di strutture dati fondamentali, estensibili ed aperte,
 134.144 +     capaci di descrivere e rendere accessibili ed elaborabili i flussi
 134.145 +     informativi legati all'ordinaria attività didattica e alla sua
 134.146 +     organizzazione;
 134.147 +
 134.148 +   * la definizione e lo sviluppo di servizi sicuri per l'interrogazione
 134.149 +     remota di database scolastici;
 134.150 +
 134.151 +   * la costitituzione di una rete di scuole di ordini diversi che
 134.152 +     condividono soluzioni applicative modulari, sia hardware che software,
 134.153 +     sperimentando anche forme di assistenza remota di tipo sistemistico su
 134.154 +     infrastrutture simili;
 134.155 +
 134.156 +   * la sperimentazione di forme di lavoro collaborativo relativamente alla
 134.157 +     progettazione di infrastrutture e servizi comuni ad istituzioni
 134.158 +     scolastiche di natura diversa.
   135.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   135.2 +++ b/docs/progetto/rest.rst	Mon Apr 26 11:16:23 2010 +0200
   135.3 @@ -0,0 +1,264 @@
   135.4 +.. _reteisi_rest:
   135.5 +
   135.6 +reStructuredText Primer
   135.7 +=======================
   135.8 +
   135.9 +This section is a brief introduction to reStructuredText (reST) concepts and
  135.10 +syntax, intended to provide authors with enough information to author documents
  135.11 +productively.  Since reST was designed to be a simple, unobtrusive markup
  135.12 +language, this will not take too long.
  135.13 +
  135.14 +.. seealso::
  135.15 +
  135.16 +    The authoritative `reStructuredText User
  135.17 +    Documentation <http://docutils.sourceforge.net/rst.html>`_.
  135.18 +
  135.19 +
  135.20 +Paragraphs
  135.21 +----------
  135.22 +
  135.23 +The paragraph is the most basic block in a reST document.  Paragraphs are simply
  135.24 +chunks of text separated by one or more blank lines.  As in Python, indentation
  135.25 +is significant in reST, so all lines of the same paragraph must be left-aligned
  135.26 +to the same level of indentation.
  135.27 +
  135.28 +
  135.29 +Inline markup
  135.30 +-------------
  135.31 +
  135.32 +The standard reST inline markup is quite simple: use
  135.33 +
  135.34 +* one asterisk: ``*text*`` for emphasis (italics),
  135.35 +* two asterisks: ``**text**`` for strong emphasis (boldface), and
  135.36 +* backquotes: ````text```` for code samples.
  135.37 +
  135.38 +If asterisks or backquotes appear in running text and could be confused with
  135.39 +inline markup delimiters, they have to be escaped with a backslash.
  135.40 +
  135.41 +Be aware of some restrictions of this markup:
  135.42 +
  135.43 +* it may not be nested,
  135.44 +* content may not start or end with whitespace: ``* text*`` is wrong,
  135.45 +* it must be separated from surrounding text by non-word characters.  Use a
  135.46 +  backslash escaped space to work around that: ``thisis\ *one*\ word``.
  135.47 +
  135.48 +These restrictions may be lifted in future versions of the docutils.
  135.49 +
  135.50 +reST also allows for custom "interpreted text roles"', which signify that the
  135.51 +enclosed text should be interpreted in a specific way.  Sphinx uses this to
  135.52 +provide semantic markup and cross-referencing of identifiers, as described in
  135.53 +the appropriate section.  The general syntax is ``:rolename:`content```.
  135.54 +
  135.55 +
  135.56 +Lists and Quotes
  135.57 +----------------
  135.58 +
  135.59 +List markup is natural: just place an asterisk at the start of a paragraph and
  135.60 +indent properly.  The same goes for numbered lists; they can also be
  135.61 +autonumbered using a ``#`` sign::
  135.62 +
  135.63 +   * This is a bulleted list.
  135.64 +   * It has two items, the second
  135.65 +     item uses two lines.
  135.66 +
  135.67 +   1. This is a numbered list.
  135.68 +   2. It has two items too.
  135.69 +
  135.70 +   #. This is a numbered list.
  135.71 +   #. It has two items too.
  135.72 +
  135.73 +Note that Sphinx disables the use of enumerated lists introduced by alphabetic
  135.74 +or roman numerals, such as ::
  135.75 +
  135.76 +   A. First item
  135.77 +   B. Second item
  135.78 +   
  135.79 +
  135.80 +Nested lists are possible, but be aware that they must be separated from the
  135.81 +parent list items by blank lines::
  135.82 +
  135.83 +   * this is
  135.84 +   * a list
  135.85 +
  135.86 +     * with a nested list
  135.87 +     * and some subitems
  135.88 +
  135.89 +   * and here the parent list continues
  135.90 +
  135.91 +Definition lists are created as follows::
  135.92 +
  135.93 +   term (up to a line of text)
  135.94 +      Definition of the term, which must be indented
  135.95 +
  135.96 +      and can even consist of multiple paragraphs
  135.97 +
  135.98 +   next term
  135.99 +      Description.
 135.100 +
 135.101 +
 135.102 +Paragraphs are quoted by just indenting them more than the surrounding
 135.103 +paragraphs.
 135.104 +
 135.105 +
 135.106 +Source Code
 135.107 +-----------
 135.108 +
 135.109 +Literal code blocks are introduced by ending a paragraph with the special marker
 135.110 +``::``.  The literal block must be indented, to be able to include blank lines::
 135.111 +
 135.112 +   This is a normal text paragraph. The next paragraph is a code sample::
 135.113 +
 135.114 +      It is not processed in any way, except
 135.115 +      that the indentation is removed.
 135.116 +
 135.117 +      It can span multiple lines.
 135.118 +
 135.119 +   This is a normal text paragraph again.
 135.120 +
 135.121 +The handling of the ``::`` marker is smart:
 135.122 +
 135.123 +* If it occurs as a paragraph of its own, that paragraph is completely left
 135.124 +  out of the document.
 135.125 +* If it is preceded by whitespace, the marker is removed.
 135.126 +* If it is preceded by non-whitespace, the marker is replaced by a single
 135.127 +  colon.
 135.128 +
 135.129 +That way, the second sentence in the above example's first paragraph would be
 135.130 +rendered as "The next paragraph is a code sample:".
 135.131 +
 135.132 +
 135.133 +Hyperlinks
 135.134 +----------
 135.135 +
 135.136 +External links
 135.137 +^^^^^^^^^^^^^^
 135.138 +
 135.139 +Use ```Link text <http://target>`_`` for inline web links.  If the link text
 135.140 +should be the web address, you don't need special markup at all, the parser
 135.141 +finds links and mail addresses in ordinary text.
 135.142 +
 135.143 +Internal links
 135.144 +^^^^^^^^^^^^^^
 135.145 +
 135.146 +Internal linking is done via a special reST role, see the section on specific
 135.147 +markup, :ref: `ref-role`.
 135.148 +
 135.149 +
 135.150 +Sections
 135.151 +--------
 135.152 +
 135.153 +Section headers are created by underlining (and optionally overlining) the
 135.154 +section title with a punctuation character, at least as long as the text::
 135.155 +
 135.156 +   =================
 135.157 +   This is a heading
 135.158 +   =================
 135.159 +
 135.160 +Normally, there are no heading levels assigned to certain characters as the
 135.161 +structure is determined from the succession of headings.  However, for the
 135.162 +Python documentation, this convention is used which you may follow:
 135.163 +
 135.164 +* ``#`` with overline, for parts
 135.165 +* ``*`` with overline, for chapters
 135.166 +* ``=``, for sections
 135.167 +* ``-``, for subsections
 135.168 +* ``^``, for subsubsections
 135.169 +* ``"``, for paragraphs
 135.170 +
 135.171 +
 135.172 +Explicit Markup
 135.173 +---------------
 135.174 +
 135.175 +"Explicit markup" is used in reST for most constructs that need special
 135.176 +handling, such as footnotes, specially-highlighted paragraphs, comments, and
 135.177 +generic directives.
 135.178 +
 135.179 +An explicit markup block begins with a line starting with ``..`` followed by
 135.180 +whitespace and is terminated by the next paragraph at the same level of
 135.181 +indentation.  (There needs to be a blank line between explicit markup and normal
 135.182 +paragraphs.  This may all sound a bit complicated, but it is intuitive enough
 135.183 +when you write it.)
 135.184 +
 135.185 +
 135.186 +Directives
 135.187 +----------
 135.188 +
 135.189 +A directive is a generic block of explicit markup.  Besides roles, it is one of
 135.190 +the extension mechanisms of reST, and Sphinx makes heavy use of it.
 135.191 +
 135.192 +Basically, a directive consists of a name, arguments, options and content. (Keep
 135.193 +this terminology in mind, it is used in the next chapter describing custom
 135.194 +directives.)  Looking at this example, ::
 135.195 +
 135.196 +   .. function:: foo(x)
 135.197 +                 foo(y, z)
 135.198 +      :bar: no
 135.199 +
 135.200 +      Return a line of text input from the user.
 135.201 +
 135.202 +``function`` is the directive name.  It is given two arguments here, the
 135.203 +remainder of the first line and the second line, as well as one option ``bar``
 135.204 +(as you can see, options are given in the lines immediately following the
 135.205 +arguments and indicated by the colons).
 135.206 +
 135.207 +The directive content follows after a blank line and is indented relative to the
 135.208 +directive start.
 135.209 +
 135.210 +
 135.211 +Images
 135.212 +------
 135.213 +
 135.214 +reST supports an image directive, used like so::
 135.215 +
 135.216 +   .. image:: filename
 135.217 +      (options)
 135.218 +
 135.219 +When used within Sphinx, the ``filename`` given must be relative to the source
 135.220 +file, and Sphinx will automatically copy image files over to a subdirectory of
 135.221 +the output directory on building.
 135.222 +
 135.223 +
 135.224 +Footnotes
 135.225 +---------
 135.226 +
 135.227 +For footnotes, use ``[#]_`` to mark the footnote location, and add the footnote
 135.228 +body at the bottom of the document after a "Footnotes" rubric heading, like so::
 135.229 +
 135.230 +   Lorem ipsum [#]_ dolor sit amet ... [#]_
 135.231 +
 135.232 +   .. rubric:: Footnotes
 135.233 +
 135.234 +   .. [#] Text of the first footnote.
 135.235 +   .. [#] Text of the second footnote.
 135.236 +
 135.237 +You can also explicitly number the footnotes for better context.
 135.238 +
 135.239 +
 135.240 +Comments
 135.241 +--------
 135.242 +
 135.243 +Every explicit markup block which isn't a valid markup construct (like the
 135.244 +footnotes above) is regarded as a comment.
 135.245 +
 135.246 +
 135.247 +Source encoding
 135.248 +---------------
 135.249 +
 135.250 +Since the easiest way to include special characters like em dashes or copyright
 135.251 +signs in reST is to directly write them as Unicode characters, one has to
 135.252 +specify an encoding:
 135.253 +
 135.254 +All documentation source files must be in UTF-8 encoding, and the HTML
 135.255 +documents written from them will be in that encoding as well.
 135.256 +
 135.257 +
 135.258 +Gotchas
 135.259 +-------
 135.260 +
 135.261 +There are some problems one commonly runs into while authoring reST documents:
 135.262 +
 135.263 +* **Separation of inline markup:** As said above, inline markup spans must be
 135.264 +  separated from the surrounding text by non-word characters, you have to use
 135.265 +  an escaped space to get around that.
 135.266 +
 135.267 +.. XXX more?
   136.1 Binary file docs/reteisi.png has changed
   137.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   137.2 +++ b/etc/apache2/sites-available/isiweb-all.conf	Mon Apr 26 11:16:23 2010 +0200
   137.3 @@ -0,0 +1,45 @@
   137.4 +#### configurazione con fastcgi
   137.5 +
   137.6 +<VirtualHost *:80>
   137.7 +     #ServerName fscgi.isi.lan
   137.8 +     #ServerAlias web.isi.lan
   137.9 +
  137.10 +     FastCGIExternalServer /usr/share/isi/isiweb.fcgi -host 127.0.0.1:3033 -idle-timeout 800
  137.11 +     #FastCGIExternalServer /usr/share/isi/isiweb.fcgi -socket /var/run/isiweb.sock
  137.12 +
  137.13 +
  137.14 +     DocumentRoot /usr/share/isi/
  137.15 +     Alias /static/ /usr/share/isi/isiweb/static/
  137.16 +     Alias /media/  /usr/share/python-support/python-django/django/contrib/admin/media/
  137.17 +     Alias /docs/ /usr/share/doc/isi/html/
  137.18 +
  137.19 +     RewriteEngine On
  137.20 +     RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
  137.21 +     RewriteRule ^/(static.*)$ /$1 [QSA,L,PT]
  137.22 +     RewriteRule ^/(docs.*)$ /$1 [QSA,L,PT]
  137.23 +     RewriteCond %{REQUEST_FILENAME} !-f
  137.24 +     RewriteRule ^/(.*)$ /isiweb.fcgi/$1 [QSA,L]
  137.25 +
  137.26 +
  137.27 +     <LocationMatch "/(static|media)/">
  137.28 + 	SetHandler none
  137.29 +	ExpiresActive On
  137.30 +	ExpiresByType application/javascript "access plus 4 weeks"
  137.31 +	ExpiresByType text/html "access plus 4 weeks"
  137.32 +	ExpiresByType text/css "access plus 4 weeks"
  137.33 +	ExpiresDefault "now plus 2 days"
  137.34 +     </LocationMatch>
  137.35 +
  137.36 +
  137.37 +     <Directory "/usr/share/isi/">
  137.38 +         Order Deny,Allow
  137.39 +         Allow from 10 172 192 127
  137.40 +         Deny from all
  137.41 +     </Directory>
  137.42 +
  137.43 +    ErrorLog /var/log/apache2/isi.lan-error.log
  137.44 +
  137.45 +    LogLevel warn
  137.46 +    CustomLog /var/log/apache2/isi.lan-access.log combined
  137.47 +
  137.48 +</VirtualHost>
   138.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   138.2 +++ b/etc/apache2/sites-available/isiweb.conf	Mon Apr 26 11:16:23 2010 +0200
   138.3 @@ -0,0 +1,45 @@
   138.4 +#### configurazione con fastcgi
   138.5 +
   138.6 +<VirtualHost *:80>
   138.7 +     ServerName fscgi.isi.lan
   138.8 +     ServerAlias web.isi.lan
   138.9 +
  138.10 +     FastCGIExternalServer /usr/share/isi/isiweb.fcgi -host 127.0.0.1:3033 -idle-timeout 800
  138.11 +     #FastCGIExternalServer /usr/share/isi/isiweb.fcgi -socket /var/run/isiweb.sock
  138.12 +
  138.13 +
  138.14 +     DocumentRoot /usr/share/isi/
  138.15 +     Alias /static/ /usr/share/isi/isiweb/static/
  138.16 +     Alias /media/  /usr/share/python-support/python-django/django/contrib/admin/media/
  138.17 +     Alias /docs/ /usr/share/doc/isi/html/
  138.18 +
  138.19 +     RewriteEngine On
  138.20 +     RewriteRule ^/(media.*)$ /$1 [QSA,L,PT]
  138.21 +     RewriteRule ^/(static.*)$ /$1 [QSA,L,PT]
  138.22 +     RewriteRule ^/(docs.*)$ /$1 [QSA,L,PT]
  138.23 +     RewriteCond %{REQUEST_FILENAME} !-f
  138.24 +     RewriteRule ^/(.*)$ /isiweb.fcgi/$1 [QSA,L]
  138.25 +
  138.26 +
  138.27 +     <LocationMatch "/(static|media)/">
  138.28 + 	SetHandler none
  138.29 +	ExpiresActive On
  138.30 +	ExpiresByType application/javascript "access plus 4 weeks"
  138.31 +	ExpiresByType text/html "access plus 4 weeks"
  138.32 +	ExpiresByType text/css "access plus 4 weeks"
  138.33 +	ExpiresDefault "now plus 2 days"
  138.34 +     </LocationMatch>
  138.35 +
  138.36 +
  138.37 +     <Directory "/usr/share/isi/">
  138.38 +         Order Deny,Allow
  138.39 +         Allow from 10 172 192 127
  138.40 +         Deny from all
  138.41 +     </Directory>
  138.42 +
  138.43 +    ErrorLog /var/log/apache2/isi.lan-error.log
  138.44 +
  138.45 +    LogLevel warn
  138.46 +    CustomLog /var/log/apache2/isi.lan-access.log combined
  138.47 +
  138.48 +</VirtualHost>
   139.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   139.2 +++ b/etc/default/isiweb	Mon Apr 26 11:16:23 2010 +0200
   139.3 @@ -0,0 +1,1 @@
   139.4 +START_FSCI=1
   140.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   140.2 +++ b/etc/init.d/isiweb	Mon Apr 26 11:16:23 2010 +0200
   140.3 @@ -0,0 +1,144 @@
   140.4 +#! /bin/sh
   140.5 +### BEGIN INIT INFO
   140.6 +# Provides:          skeleton
   140.7 +# Required-Start:    $remote_fs
   140.8 +# Required-Stop:     $remote_fs
   140.9 +# Default-Start:     2 3 4 5
  140.10 +# Default-Stop:      0 1 6
  140.11 +# Short-Description: Example initscript
  140.12 +# Description:       This file should be used to construct scripts to be
  140.13 +#                    placed in /etc/init.d.
  140.14 +### END INIT INFO
  140.15 +
  140.16 +# Author: Foo Bar <[email protected]>
  140.17 +#
  140.18 +# Please remove the "Author" lines above and replace them
  140.19 +# with your own name if you copy and modify this script.
  140.20 +
  140.21 +# Do NOT "set -e"
  140.22 +
  140.23 +# PATH should only include /usr/* if it runs after the mountnfs.sh script
  140.24 +PATH=/sbin:/usr/sbin:/bin:/usr/bin
  140.25 +DESC="Interfaccia Web per ReteISI"
  140.26 +NAME=isiweb
  140.27 +#DAEMON=/usr/sbin/$NAME
  140.28 +DAEMON_ARGS="socket=$SOCKET pidfile=$PIDFILE"
  140.29 +PIDFILE=/var/run/$NAME.pid
  140.30 +SCRIPTNAME=/etc/init.d/$NAME
  140.31 +SOCKET=/var/run/$NAME.sock
  140.32 +PROJDIR="/usr/share/isi/isiweb/"
  140.33 +#DAEMON_ARGS="socket=$SOCKET pidfile=$PIDFILE maxspare=1"
  140.34 +DAEMON_ARGS="host=127.0.0.1 port=3033 pidfile=$PIDFILE maxspare=1 errlog=/var/log/isiweb.log"
  140.35 +
  140.36 +# # Exit if the package is not installed
  140.37 +# [ -x "$DAEMON" ] || exit 0
  140.38 +
  140.39 +# Read configuration variable file if it is present
  140.40 +[ -r /etc/default/$NAME ] && . /etc/default/$NAME
  140.41 +
  140.42 +# Load the VERBOSE setting and other rcS variables
  140.43 +. /lib/init/vars.sh
  140.44 +
  140.45 +# Define LSB log_* functions.
  140.46 +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  140.47 +. /lib/lsb/init-functions
  140.48 +
  140.49 +#
  140.50 +# Function that starts the daemon/service
  140.51 +#
  140.52 +do_start()
  140.53 +{
  140.54 +    do_stop
  140.55 +    cd $PROJDIR
  140.56 +    if [ $START_FSCI = 1 ] ; then
  140.57 +       echo "Starting $DESC" $NAME
  140.58 +       exec /usr/bin/env - \
  140.59 +	 PYTHONPATH="../python:.." ./manage.py runfcgi $DAEMON_ARGS
  140.60 +       RETVAL=$?
  140.61 +       echo -e "\n"
  140.62 +       return $RETVAL
  140.63 +    else
  140.64 +       echo "You must enable in /etc/default/isiweb: START_FSCI=1"
  140.65 +    fi
  140.66 +
  140.67 +}
  140.68 +
  140.69 +#
  140.70 +# Function that stops the daemon/service
  140.71 +#
  140.72 +do_stop()
  140.73 +{
  140.74 +     cd $PROJDIR
  140.75 +     if [ -f $PIDFILE ]; then
  140.76 +         kill `cat -- $PIDFILE`
  140.77 +	 RETVAL=$?
  140.78 +         rm -f -- $PIDFILE
  140.79 +     fi
  140.80 +    return $RETVAL
  140.81 +}
  140.82 +
  140.83 +#
  140.84 +# Function that sends a SIGHUP to the daemon/service
  140.85 +#
  140.86 +# do_reload() {
  140.87 +
  140.88 +#   do_stop()
  140.89 +#   do_start()
  140.90 +# }
  140.91 +
  140.92 +case "$1" in
  140.93 +  start)
  140.94 +	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  140.95 +	do_start
  140.96 +	case "$?" in
  140.97 +		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  140.98 +		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  140.99 +	esac
 140.100 +	;;
 140.101 +  stop)
 140.102 +	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
 140.103 +	do_stop
 140.104 +	case "$?" in
 140.105 +		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 140.106 +		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 140.107 +	esac
 140.108 +	;;
 140.109 +  #reload|force-reload)
 140.110 +	#
 140.111 +	# If do_reload() is not implemented then leave this commented out
 140.112 +	# and leave 'force-reload' as an alias for 'restart'.
 140.113 +	#
 140.114 +	#log_daemon_msg "Reloading $DESC" "$NAME"
 140.115 +	#do_reload
 140.116 +	#log_end_msg $?
 140.117 +	#;;
 140.118 +  restart|force-reload)
 140.119 +	#
 140.120 +	# If the "reload" option is implemented then remove the
 140.121 +	# 'force-reload' alias
 140.122 +	#
 140.123 +	log_daemon_msg "Restarting $DESC" "$NAME"
 140.124 +	do_stop
 140.125 +	case "$?" in
 140.126 +	  0|1)
 140.127 +		do_start
 140.128 +		case "$?" in
 140.129 +			0) log_end_msg 0 ;;
 140.130 +			1) log_end_msg 1 ;; # Old process is still running
 140.131 +			*) log_end_msg 1 ;; # Failed to start
 140.132 +		esac
 140.133 +		;;
 140.134 +	  *)
 140.135 +	  	# Failed to stop
 140.136 +		log_end_msg 1
 140.137 +		;;
 140.138 +	esac
 140.139 +	;;
 140.140 +  *)
 140.141 +	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
 140.142 +	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
 140.143 +	exit 3
 140.144 +	;;
 140.145 +esac
 140.146 +
 140.147 +:
   141.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   141.2 +++ b/etc/isi/dglog.conf.pl.sample	Mon Apr 26 11:16:23 2010 +0200
   141.3 @@ -0,0 +1,3 @@
   141.4 +$ldap_server ='127.0.0.1';
   141.5 +$ldap_base   ='<dc=isi,dc=lan>';
   141.6 +@ldap_fields=('gecos','departmentNumber');
   142.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   142.2 +++ b/etc/isi/logon.bat.sample	Mon Apr 26 11:16:23 2010 +0200
   142.3 @@ -0,0 +1,3 @@
   142.4 +:: ##### LOGON.BAT creato da ISI-LOGON #####
   142.5 +@ECHO OFF
   142.6 +\\ISI-PDC\perl\bin\perl \\ISI-PDC\perl\logon.pl ISI-PDC
   143.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   143.2 +++ b/lab/README	Mon Apr 26 11:16:23 2010 +0200
   143.3 @@ -0,0 +1,40 @@
   143.4 +Uso di netkit
   143.5 +-------------
   143.6 +
   143.7 +Pe rilanciare questo laboratorio occorre:
   143.8 +
   143.9 +  1. installare isi-netkit
  143.10 +
  143.11 +  2. copiare l'immagine
  143.12 +
  143.13 +     http://download.argolinux.org/isi/lenny-isi-netkit.img.bz2
  143.14 +
  143.15 +     in /usr/share/netkit/fs ed unzipparla
  143.16 +
  143.17 +  3. lanciare lstart da dentro questa cartella
  143.18 +
  143.19 +     A questo punto si apre una console grafica che è la console sulla
  143.20 +     macchina virtuale srv-isi, il cui ip è 172.16.0.11 per cui potete
  143.21 +     aggiungere nella vostra macchina in /etc/hosts::
  143.22 +
  143.23 +       172.16.0.11 web.isi.lan srv-isi.isi.lan
  143.24 +
  143.25 +    
  143.26 +     Questa macchina virtuale quando parte lancia automaticamente tutti i
  143.27 +     comandid che ci sono nel file srv-isi.startup, in particolare lancia:
  143.28 +
  143.29 +       isi-setup isi srv-isi isi
  143.30 +
  143.31 +    Potete connettervi a questa macchina virtuale via ssh
  143.32 +
  143.33 +  4. per lanciare i test, andate nella cartella 'tests' seguite le istruzioni
  143.34 +     la dentro.
  143.35 +        
  143.36 +
  143.37 +
  143.38 +
  143.39 +
  143.40 +
  143.41 +     
  143.42 +
  143.43 +
   144.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   144.2 +++ b/lab/lab.conf	Mon Apr 26 11:16:23 2010 +0200
   144.3 @@ -0,0 +1,16 @@
   144.4 +LAB_DESCRIPTION="Interfaccia Web per ReteISI"
   144.5 +LAB_VERSION="1.0"
   144.6 +LAB_AUTHOR="Sandro Dentella"
   144.7 +LAB_EMAIL="[email protected]"
   144.8 +LAB_WEB="http://reteisi.argolinux.org/reteisi"
   144.9 +
  144.10 +## sede
  144.11 +srv-isi[1]="lan1"
  144.12 +#
  144.13 +#srv-isi[eth0]=tap,172.16.0.254,172.16.0.1
  144.14 +srv-isi[eth0]=tap,192.168.50.254,192.168.50.1
  144.15 +srv-isi[m]=isi-lenny.img
  144.16 +#srv-isi[m]=alcatel
  144.17 +srv-isi[mem]=200
  144.18 +srv-isi[no-log]=
  144.19 +
   145.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   145.2 +++ b/lab/srv-isi.startup	Mon Apr 26 11:16:23 2010 +0200
   145.3 @@ -0,0 +1,9 @@
   145.4 +#!/bin/bash
   145.5 +
   145.6 +mount -o remount,acl /
   145.7 +isi-setup -UAT isi srv-isi isi
   145.8 +a2enmod rewrite
   145.9 +a2enmod expires
  145.10 +/etc/init.d/isiweb start
  145.11 +/etc/init.d/apache2 restart
  145.12 +
   146.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   146.2 +++ b/lab/srv-isi/etc/argo/fw.conf	Mon Apr 26 11:16:23 2010 +0200
   146.3 @@ -0,0 +1,32 @@
   146.4 +# this is meant to just allow ssh to configure it
   146.5 +
   146.6 +### variable definitions
   146.7 +# if LOG=1, a log chain is created to log all dropped packets
   146.8 +# take care: log can be a lot of space!
   146.9 +LOG=1
  146.10 +
  146.11 +INT=eth0
  146.12 +EXT=eth1
  146.13 +# LAN=192.168.0.0/24
  146.14 +TCP_DPORTS=" 22 80 443"
  146.15 +UDP_DPORTS=""
  146.16 +
  146.17 +# Input chains w/ 'tnl' in the name (expr match $name tnl -eq 3) will not
  146.18 +#   be considered by 'firewall' script
  146.19 +INPUT_CHAINS="int ext "
  146.20 +FWD_CHAINS="fwd "
  146.21 +
  146.22 +FORWARD=1
  146.23 +IP_MODE=dynamic
  146.24 +IP_EXT=
  146.25 +
  146.26 +# uncomment this for transparent proxy
  146.27 +# PROXY_REDIR_PORT=3128   
  146.28 +
  146.29 +# SSH_ADMINS="213.145.6.133 , 151.38.133.188 , 151.38.134.51 , 81.116.83.242"
  146.30 +
  146.31 +ICMP_TYPES=" 0 , 3 , 8 , 11 "
  146.32 +# 0 = echo reply
  146.33 +# 3 = dest unreachable
  146.34 +# 8 = echo request
  146.35 +# 11 = time exceeded for datagram
   147.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   147.2 +++ b/lab/srv-isi/etc/default/isiweb	Mon Apr 26 11:16:23 2010 +0200
   147.3 @@ -0,0 +1,1 @@
   147.4 +START_FSCI=1
   148.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   148.2 +++ b/lab/srv-isi/etc/dnsmasq.conf	Mon Apr 26 11:16:23 2010 +0200
   148.3 @@ -0,0 +1,98 @@
   148.4 +# -*- mode: conf -*-
   148.5 +# non inoltrare mai ai server dns esterni
   148.6 +# query senza nome dominio
   148.7 +domain-needed
   148.8 +
   148.9 +# Tutti i reverse lookup per la subnet privata
  148.10 +# non presenti in /etc/hosts o nei lease dhcp
  148.11 +# ottengono "host not found"
  148.12 +# invece di essere inoltrati ai dns esterni
  148.13 +bogus-priv
  148.14 +
  148.15 +# Filtra le ricorrenti richieste SOA, SRV e altre,
  148.16 +# provenienti da macchine windows
  148.17 +# serve in particolare a non attivare
  148.18 +# per sbaglio il link quando si
  148.19 +# hanno connessioni "on demand"
  148.20 +filterwin2k
  148.21 +
  148.22 +# server dns esterni di riferimento
  148.23 +# inserire i server dns uno per riga
  148.24 +# usati in questo caso i server di opendns.org
  148.25 +server=208.67.220.220
  148.26 +server=208.67.220.220
  148.27 +
  148.28 +# aggiunge sempre il nome dominio al nome host
  148.29 +expand-hosts
  148.30 +
  148.31 +# nome del mio dominio
  148.32 +domain=vega.it
  148.33 +
  148.34 +# Se si intende passare ai client un dominio differente
  148.35 +# dhcp-option=option:domain-name,isi.lan
  148.36 +
  148.37 +# range dei lease dhcp: indirizzo iniziale, indirizzo finale, netmask, durata del lease
  148.38 +dhcp-range=192.168.50.130,192.168.50.140,255.255.255.0,8h
  148.39 +
  148.40 +# Range dhcp per-tag
  148.41 +# ~~~~~~~~~~~~~~~~~~~
  148.42 +# E` anche possibile riservare un determinato range filtrando per TAG.
  148.43 +# I tag possono essere associati anche ad un'intera famiglia di indirizzi MAC
  148.44 +# Ciò risulta utilissimo, ad esempio, per limitare le macchine virtuali vmware
  148.45 +# ad un certo range.
  148.46 +#
  148.47 +# Settare il tag "macchinevmware" per le macchine con mac iniziante per
  148.48 +# 00:0c:29:*:*:* (gruppo di indirizzi mac riservati a vmware)
  148.49 +#
  148.50 +#   dhcp-mac=macchinevmware,00:0c:29:*:*:*
  148.51 +#
  148.52 +# Sintassi ::
  148.53 +#
  148.54 +#   dhcp-range=[[net:]network-id,]<start-addr>,<end-addr>[[,<net‐netmask>],<broadcast>][,<lease time>]
  148.55 +#
  148.56 +# Esempio ::
  148.57 +#
  148.58 +# dhcp-range=net:macchinevmware,192.168.150,160,255.255.255.0,8h
  148.59 +
  148.60 +
  148.61 +# Esempio di ip-reservation per client
  148.62 +#
  148.63 +# MAC address, indirizzo, nome host, tag(utile per associare a più server)
  148.64 +#
  148.65 +# dhcp-host=00:0c:29:c9:69:35,192.168.96.190,vm-ltsp01,net:ns1  # client1
  148.66 +# dhcp-host=00:0c:29:5e:69:b5,192.168.96.191,vm-ltsp02,net:ns2  # client2
  148.67 +#
  148.68 +# le associazioni vengono definite esternamente, vedi inclusioni a fine file.
  148.69 +# il file usato è /etc/isi/dns/dnsmasq/hosts.mac
  148.70 +
  148.71 +# dnsmasq supporta la maggior parte delle
  148.72 +# opzioni dhcp e bootp specificate in
  148.73 +# http://www.faqs.org/rfcs/rfc2132.html
  148.74 +# la sintassi e':
  148.75 +# dhcp-option=[numero relativo all'opzione],parametro
  148.76 +
  148.77 +# GATEWAY di default (3)
  148.78 +dhcp-option=44,192.168.50.1
  148.79 +
  148.80 +# DNS da passare ai client (6)
  148.81 +dhcp-option=6,192.168.50.1
  148.82 +
  148.83 +# WINS da passare ai client (44)
  148.84 +dhcp-option=44,192.168.96.1
  148.85 +#
  148.86 +# Il server dhcp sarà AUTORITATIVO.
  148.87 +dhcp-authoritative
  148.88 +cache-size=1024
  148.89 +### LOG
  148.90 +# da usare per debug
  148.91 +log-queries
  148.92 +
  148.93 +# Da abilitare *solo* in caso di debug, logga tutte le transazioni che avvengono
  148.94 +# tra servente DHCP e i client.
  148.95 +#
  148.96 +log-dhcp
  148.97 +
  148.98 +# Configurazione aggiuntiva per isi.
  148.99 +conf-file=/etc/isi/dnsmasq/boot
 148.100 +conf-file=/etc/isi/dnsmasq/hosts.mac
 148.101 +dhcp-option=3,192.168.50.254
 148.102 \ No newline at end of file
   149.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   149.2 +++ b/lab/srv-isi/etc/hosts	Mon Apr 26 11:16:23 2010 +0200
   149.3 @@ -0,0 +1,7 @@
   149.4 +127.0.0.1  localhost
   149.5 +#172.16.0.254  srv-isi web.isi.lan
   149.6 +#172.16.0.1  gw
   149.7 +
   149.8 +192.168.50.254  srv-isi web.isi.lan
   149.9 +192.168.50.1  gw
  149.10 +
   150.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   150.2 +++ b/lab/srv-isi/etc/init.d/isiweb	Mon Apr 26 11:16:23 2010 +0200
   150.3 @@ -0,0 +1,144 @@
   150.4 +#! /bin/sh
   150.5 +### BEGIN INIT INFO
   150.6 +# Provides:          skeleton
   150.7 +# Required-Start:    $remote_fs
   150.8 +# Required-Stop:     $remote_fs
   150.9 +# Default-Start:     2 3 4 5
  150.10 +# Default-Stop:      0 1 6
  150.11 +# Short-Description: Example initscript
  150.12 +# Description:       This file should be used to construct scripts to be
  150.13 +#                    placed in /etc/init.d.
  150.14 +### END INIT INFO
  150.15 +
  150.16 +# Author: Foo Bar <[email protected]>
  150.17 +#
  150.18 +# Please remove the "Author" lines above and replace them
  150.19 +# with your own name if you copy and modify this script.
  150.20 +
  150.21 +# Do NOT "set -e"
  150.22 +
  150.23 +# PATH should only include /usr/* if it runs after the mountnfs.sh script
  150.24 +PATH=/sbin:/usr/sbin:/bin:/usr/bin
  150.25 +DESC="Interfaccia Web per ReteISI"
  150.26 +NAME=isiweb
  150.27 +#DAEMON=/usr/sbin/$NAME
  150.28 +DAEMON_ARGS="socket=$SOCKET pidfile=$PIDFILE"
  150.29 +PIDFILE=/var/run/$NAME.pid
  150.30 +SCRIPTNAME=/etc/init.d/$NAME
  150.31 +SOCKET=/var/run/$NAME.sock
  150.32 +PROJDIR="/usr/share/isi/isiweb/"
  150.33 +#DAEMON_ARGS="socket=$SOCKET pidfile=$PIDFILE maxspare=1"
  150.34 +DAEMON_ARGS="host=127.0.0.1 port=3033 pidfile=$PIDFILE maxspare=1 errlog=/var/log/isiweb.log"
  150.35 +
  150.36 +# # Exit if the package is not installed
  150.37 +# [ -x "$DAEMON" ] || exit 0
  150.38 +
  150.39 +# Read configuration variable file if it is present
  150.40 +[ -r /etc/default/$NAME ] && . /etc/default/$NAME
  150.41 +
  150.42 +# Load the VERBOSE setting and other rcS variables
  150.43 +. /lib/init/vars.sh
  150.44 +
  150.45 +# Define LSB log_* functions.
  150.46 +# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
  150.47 +. /lib/lsb/init-functions
  150.48 +
  150.49 +#
  150.50 +# Function that starts the daemon/service
  150.51 +#
  150.52 +do_start()
  150.53 +{
  150.54 +    do_stop
  150.55 +    cd $PROJDIR
  150.56 +    if [ $START_FSCI = 1 ] ; then
  150.57 +       echo "Starting $DESC" $NAME
  150.58 +       exec /usr/bin/env - \
  150.59 +	 PYTHONPATH="../python:.." ./manage.py runfcgi $DAEMON_ARGS
  150.60 +       RETVAL=$?
  150.61 +       echo -e "\n"
  150.62 +       return $RETVAL
  150.63 +    else
  150.64 +       echo "You must enable in /etc/default/isiweb: START_FSCI=1"
  150.65 +    fi
  150.66 +
  150.67 +}
  150.68 +
  150.69 +#
  150.70 +# Function that stops the daemon/service
  150.71 +#
  150.72 +do_stop()
  150.73 +{
  150.74 +     cd $PROJDIR
  150.75 +     if [ -f $PIDFILE ]; then
  150.76 +         kill `cat -- $PIDFILE`
  150.77 +	 RETVAL=$?
  150.78 +         rm -f -- $PIDFILE
  150.79 +     fi
  150.80 +    return $RETVAL
  150.81 +}
  150.82 +
  150.83 +#
  150.84 +# Function that sends a SIGHUP to the daemon/service
  150.85 +#
  150.86 +# do_reload() {
  150.87 +
  150.88 +#   do_stop()
  150.89 +#   do_start()
  150.90 +# }
  150.91 +
  150.92 +case "$1" in
  150.93 +  start)
  150.94 +	[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME"
  150.95 +	do_start
  150.96 +	case "$?" in
  150.97 +		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
  150.98 +		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
  150.99 +	esac
 150.100 +	;;
 150.101 +  stop)
 150.102 +	[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
 150.103 +	do_stop
 150.104 +	case "$?" in
 150.105 +		0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
 150.106 +		2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
 150.107 +	esac
 150.108 +	;;
 150.109 +  #reload|force-reload)
 150.110 +	#
 150.111 +	# If do_reload() is not implemented then leave this commented out
 150.112 +	# and leave 'force-reload' as an alias for 'restart'.
 150.113 +	#
 150.114 +	#log_daemon_msg "Reloading $DESC" "$NAME"
 150.115 +	#do_reload
 150.116 +	#log_end_msg $?
 150.117 +	#;;
 150.118 +  restart|force-reload)
 150.119 +	#
 150.120 +	# If the "reload" option is implemented then remove the
 150.121 +	# 'force-reload' alias
 150.122 +	#
 150.123 +	log_daemon_msg "Restarting $DESC" "$NAME"
 150.124 +	do_stop
 150.125 +	case "$?" in
 150.126 +	  0|1)
 150.127 +		do_start
 150.128 +		case "$?" in
 150.129 +			0) log_end_msg 0 ;;
 150.130 +			1) log_end_msg 1 ;; # Old process is still running
 150.131 +			*) log_end_msg 1 ;; # Failed to start
 150.132 +		esac
 150.133 +		;;
 150.134 +	  *)
 150.135 +	  	# Failed to stop
 150.136 +		log_end_msg 1
 150.137 +		;;
 150.138 +	esac
 150.139 +	;;
 150.140 +  *)
 150.141 +	#echo "Usage: $SCRIPTNAME {start|stop|restart|reload|force-reload}" >&2
 150.142 +	echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
 150.143 +	exit 3
 150.144 +	;;
 150.145 +esac
 150.146 +
 150.147 +:
   151.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   151.2 +++ b/lab/srv-isi/etc/isi/dnsmasq/boot	Mon Apr 26 11:16:23 2010 +0200
   151.3 @@ -0,0 +1,30 @@
   151.4 +# le prossime sono quelle che servono
   151.5 +# in particolare ai thin client
   151.6 +# root-path (17)
   151.7 +# percorso dove montare la partizione root, usata con nfs
   151.8 +# dhcp-option=17,"/opt/ltsp/i386"
   151.9 +
  151.10 +# file di boot (percorso relativo alla root del server tftp),
  151.11 +# nome tftp server, ip tftp server
  151.12 +# l'indirizzo e il nome del server
  151.13 +# devono essere inseriti in /etc/hosts
  151.14 +dhcp-boot=/ltsp/i386/pxelinux.0,ltsp-server,192.168.96.222
  151.15 +
  151.16 +# file di boot (percorso relativo alla root del server tftp),
  151.17 +# nome tftp server, ip tftp server
  151.18 +# l'indirizzo e il nome del server
  151.19 +# devono essere inseriti in /etc/hosts
  151.20 +#dhcp-boot=/ltsp/i386/pxelinux.0,ltsp-server,192.168.96.222
  151.21 +
  151.22 +# PXE / Etherboot
  151.23 +#dhcp-vendorclass=pxe,PXEClient
  151.24 +#dhcp-vendorclass=eth,Etherboot
  151.25 +#    dhcp-option=vendor:PXEClient,1,0.0.0.0
  151.26 +dhcp-boot=net:thin_srv1,/ltsp/i386/pxelinux.0,ltsp-server,192.168.96.222
  151.27 +dhcp-boot=net:fat_srv1,/ltsp/ifat386/pxelinux.0,ltsp-server, 192.168.96.222
  151.28 +dhcp-boot=net:fat_srv2,/ltsp/ifat386/pxelinux.0,ltsp-server, 192.168.96.224
  151.29 +
  151.30 +# other
  151.31 +dhcp-boot=net:gpxe,/ltsp/i386/nbi.img,ltsp-server,192.168.96.222
  151.32 +# default
  151.33 +dhcp-boot=/ltsp/ifat386/pxelinux.0,ltsp-server, 192.168.96.222
   152.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   152.2 +++ b/lab/srv-isi/etc/isi/dnsmasq/hosts.mac	Mon Apr 26 11:16:23 2010 +0200
   152.3 @@ -0,0 +1,3 @@
   152.4 +dhcp-host=00:0c:29:10:a6:45,192.168.96.199,vm-client-ltsp1
   152.5 +dhcp-host=00:0c:29:c0:d7:9e,192.168.96.198,vm-client-ltsp2,net:ns1
   152.6 +dhcp-host=00:0c:29:10:a6:48,192.168.5.55
   152.7 \ No newline at end of file
   153.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   153.2 +++ b/lab/srv-isi/etc/isi/web/local_settings.py	Mon Apr 26 11:16:23 2010 +0200
   153.3 @@ -0,0 +1,7 @@
   153.4 +LOGON_FILE = '/etc/isi/logon.conf'
   153.5 +SAMBA_FILE = '/etc/samba/smb.conf'
   153.6 +DNSMASQ_CONF = '/etc/dnsmasq.conf'
   153.7 +HOSTS_CONF = '/etc/hosts'
   153.8 +MAC_CONF = '/etc/isi/dnsmasq/hosts.mac'
   153.9 +LEASES_FILE = '/var/lib/misc/dnsmasq.leases'
  153.10 +BOOT_CONF = '/etc/isi/dnsmasq/boot'
   154.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
   154.2 +++ b/lab/srv-isi/etc/libnss-ldap.conf	Mon Apr 26 11:16:23 2010 +0200
   154.3 @@ -0,0 +1,323 @@
   154.4 +###DEBCONF###
   154.5 +# the configuration of this file will be done by debconf as long as the
   154.6 +# first line of the file says '###DEBCONF###'
   154.7 +#
   154.8 +# you should use dpkg-reconfigure libnss-ldap to configure this file.
   154.9 +#
  154.10 +# @(#)$Id: ldap.conf,v 2.48 2021/07/03 02:30:29 lukeh Exp $
  154.11 +#
  154.12 +# This is the configuration file for the LDAP nameservice
  154.13 +# switch library and the LDAP PAM module.
  154.14 +#
  154.15 +# PADL Software
  154.16 +# http://www.padl.com
  154.17 +#
  154.18 +
  154.19 +# Your LDAP server. Must be resolvable without using LDAP.
  154.20 +# Multiple hosts may be specified, each separated by a 
  154.21 +# space. How long nss_ldap takes to failover depends on
  154.22 +# whether your LDAP client library supports configurable
  154.23 +# network or connect timeouts (see bind_timelimit).
  154.24 +#host 127.0.0.1
  154.25 +
  154.26 +# The distinguished name of the search base.
  154.27 +base dc=example,dc=net
  154.28 +
  154.29 +# Another way to specify your LDAP server is to provide an
  154.30 +uri ldapi:///
  154.31 +# Unix Domain Sockets to connect to a local LDAP Server.
  154.32 +#uri ldap://127.0.0.1/
  154.33 +#uri ldaps://127.0.0.1/   
  154.34 +#uri ldapi://%2fvar%2frun%2fldapi_sock/
  154.35 +# Note: %2f encodes the '/' used as directory separator
  154.36 +
  154.37 +# The LDAP version to use (defaults to 3
  154.38 +# if supported by client library)
  154.39 +ldap_version 3
  154.40 +
  154.41 +# The distinguished name to bind to the server with.
  154.42 +# Optional: default is to bind anonymously.
  154.43 +# Please do not put double quotes around it as they
  154.44 +# would be included literally.
  154.45 +#binddn cn=proxyuser,dc=padl,dc=com
  154.46 +
  154.47 +# The credentials to bind with. 
  154.48 +# Optional: default is no credential.
  154.49 +#bindpw secret
  154.50 +
  154.51 +# The distinguished name to bind to the server with
  154.52 +# if the effective user ID is root. Password is
  154.53 +# stored in /etc/libnss-ldap.secret (mode 600)
  154.54 +# Use 'echo -n "mypassword" > /etc/libnss-ldap.secret' instead
  154.55 +# of an editor to create the file.
  154.56 +rootbinddn cn=manager,dc=example,dc=net
  154.57 +
  154.58 +# The port.
  154.59 +# Optional: default is 389.
  154.60 +#port 389
  154.61 +
  154.62 +# The search scope.
  154.63 +#scope sub
  154.64 +#scope one
  154.65 +#scope base
  154.66 +
  154.67 +# Search timelimit
  154.68 +#timelimit 30
  154.69 +
  154.70 +# Bind/connect timelimit
  154.71 +bind_timelimit 3
  154.72 +
  154.73 +# Reconnect policy:
  154.74 +#  hard_open: reconnect to DSA with exponential backoff if
  154.75 +#             opening connection failed
  154.76 +#  hard_init: reconnect to DSA with exponential backoff if
  154.77 +#             initializing connection failed
  154.78 +#  hard:      alias for hard_open
  154.79 +#  soft:      return immediately on server failure
  154.80 +bind_policy soft
  154.81 +
  154.82 +# Connection policy:
  154.83 +#  persist:   DSA connections are kept open (default)
  154.84 +#  oneshot:   DSA connections destroyed after request
  154.85 +#nss_connect_policy persist
  154.86 +
  154.87 +# Idle timelimit; client will close connections
  154.88 +# (nss_ldap only) if the server has not been contacted
  154.89 +# for the number of seconds specified below.
  154.90 +#idle_timelimit 3600
  154.91 +
  154.92 +# Use paged rseults
  154.93 +#nss_paged_results yes
  154.94 +
  154.95 +# Pagesize: when paged results enable, used to set the
  154.96 +# pagesize to a custom value
  154.97 +#pagesize 1000
  154.98 +
  154.99 +# Filter to AND with uid=%s
 154.100 +#pam_filter objectclass=account
 154.101 +
 154.102 +# The user ID attribute (defaults to uid)
 154.103 +#pam_login_attribute uid
 154.104 +
 154.105 +# Search the root DSE for the password policy (works
 154.106 +# with Netscape Directory Server)
 154.107 +#pam_lookup_policy yes
 154.108 +
 154.109 +# Check the 'host' attribute for access control
 154.110 +# Default is no; if set to yes, and user has no
 154.111 +# value for the host attribute, and pam_ldap is
 154.112 +# configured for account management (authorization)
 154.113 +# then the user will not be allowed to login.
 154.114 +#pam_check_host_attr yes
 154.115 +
 154.116 +# Check the 'authorizedService' attribute for access
 154.117 +# control
 154.118 +# Default is no; if set to yes, and the user has no
 154.119 +# value for the authorizedService attribute, and
 154.120 +# pam_ldap is configured for account management
 154.121 +# (authorization) then the user will not be allowed
 154.122 +# to login.
 154.123 +#pam_check_service_attr yes
 154.124 +
 154.125 +# Group to enforce membership of
 154.126 +#pam_groupdn cn=PAM,ou=Groups,dc=padl,dc=com
 154.127 +
 154.128 +# Group member attribute
 154.129 +#pam_member_attribute uniquemember
 154.130 +
 154.131 +# Specify a minium or maximum UID number allowed
 154.132 +#pam_min_uid 0
 154.133 +#pam_max_uid 0
 154.134 +
 154.135 +# Template login attribute, default template user
 154.136 +# (can be overriden by value of former attribute
 154.137 +# in user's entry)
 154.138 +#pam_login_attribute userPrincipalName
 154.139 +#pam_template_login_attribute uid
 154.140 +#pam_template_login nobody
 154.141 +
 154.142 +# HEADS UP: the pam_crypt, pam_nds_passwd,
 154.143 +# and pam_ad_passwd options are no
 154.144 +# longer supported.
 154.145 +#
 154.146 +# Do not hash the password at all; presume
 154.147 +# the directory server will do it, if
 154.148 +# necessary. This is the default.
 154.149 +#pam_password clear
 154.150 +