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/* [email protected]$srv:$path_remoto/"
2.16 + rsync -P -r $path_locale/* [email protected]$srv:$path_remoto/
2.17 + echo "ssh [email protected]$srv isi-checkup -t isi"
2.18 + ssh [email protected]$srv isi-checkup -T
2.19 + #echo ssh [email protected]$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].it> 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="[email protected]"/>
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 + [email protected]:~# 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 + [email protected]:~# 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 + [email protected]:~# auth-client-config -a -p isi-ldap
110.208 +
110.209 +Ed effettuare un tentativo di interrogazione del database ldap::
110.210 +
110.211 + [email protected]:~# 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 + [email protected]:~$ 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 + [email protected]:~# mv /home/ /home_local
125.63 + [email protected]:~# mkdir /home
125.64 + [email protected]:~# 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 + [email protected]:~# 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:[email protected]_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:[email protected]_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 [email protected]*
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 + [email protected]si:~$ 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 [email protected]
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 + [email protected]:~$ 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 + [email protected]:~$
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 [email protected]_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 [email protected] 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