X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=servizi.html;h=839b2626b6ddd40c1b59545a994c0ef53377edde;hb=cd90e1798117648add3cc613129208a8cf2b324b;hp=f0fc4e05c95f28d84c1fc53b668273d38ebc1ae7;hpb=36a14236d1e397ba7aa6e6daa840b7e7fc17cbee;p=doc%2F.git diff --git a/servizi.html b/servizi.html index f0fc4e0..839b262 100644 --- a/servizi.html +++ b/servizi.html @@ -4,7 +4,7 @@
+ "HTML Tidy for Linux/x86 (vers 6 November 2007), see www.w3.org"> /* - :Author: David Goodger (goodger@python.org) - :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $ - :Copyright: This stylesheet has been placed in the public domain. - - Default cascading style sheet for the HTML output of Docutils. - - See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to - customize this style sheet. + Author: Peter Parente + Date: 2008/01/22 + Version: 1.0 + Copyright: This stylesheet has been placed in the public domain - free to edit and use for all uses. */ - /* used to remove borders from tables and images */ - .borderless, table.borderless td, table.borderless th { - border: 0 } + body { + font: 100% sans-serif; + background: #ffffff; + color: black; + margin: 2em; + padding: 0em 2em; + } - table.borderless td, table.borderless th { - /* Override padding for "table.docutils td" with "! important". - The right padding separates the table cells. */ - padding: 0 0.5em 0 0 ! important } - - .first { - /* Override more specific margin styles with "! important". */ - margin-top: 0 ! important } + p.topic-title { + font-weight: bold; + } - .last, .with-subtitle { - margin-bottom: 0 ! important } + table.docinfo { + text-align: left; + margin: 2em 0em; + } - .hidden { - display: none } + a[href] { + color: #436976; + background-color: transparent; + } a.toc-backref { - text-decoration: none ; - color: black } - - blockquote.epigraph { - margin: 2em 5em ; } - - dl.docutils dd { - margin-bottom: 0.5em } - - /* Uncomment (and remove this text!) to get bold-faced definition list terms - dl.docutils dt { - font-weight: bold } - */ - - div.abstract { - margin: 2em 5em } - - div.abstract p.topic-title { - font-weight: bold ; - text-align: center } - - div.admonition, div.attention, div.caution, div.danger, div.error, - div.hint, div.important, div.note, div.tip, div.warning { - margin: 2em ; - border: medium outset ; - padding: 1em } - - div.admonition p.admonition-title, div.hint p.admonition-title, - div.important p.admonition-title, div.note p.admonition-title, - div.tip p.admonition-title { - font-weight: bold ; - font-family: sans-serif } - - div.attention p.admonition-title, div.caution p.admonition-title, - div.danger p.admonition-title, div.error p.admonition-title, - div.warning p.admonition-title { - color: red ; - font-weight: bold ; - font-family: sans-serif } - - /* Uncomment (and remove this text!) to get reduced vertical space in - compound paragraphs. - div.compound .compound-first, div.compound .compound-middle { - margin-bottom: 0.5em } - - div.compound .compound-last, div.compound .compound-middle { - margin-top: 0.5em } - */ - - div.dedication { - margin: 2em 5em ; - text-align: center ; - font-style: italic } - - div.dedication p.topic-title { - font-weight: bold ; - font-style: normal } - - div.figure { - margin-left: 2em ; - margin-right: 2em } - - div.footer, div.header { - clear: both; - font-size: smaller } - - div.line-block { - display: block ; - margin-top: 1em ; - margin-bottom: 1em } + text-decoration: none; + } + + h1 a[href] { + color: #003a6b; + text-decoration: none; + background-color: transparent; + } + + a.strong { + font-weight: bold; + } + + img { + margin: 0; + border: 0; + } + + p { + margin: 0.5em 0 1em 0; + line-height: 1.5em; + } + + p a:visited { + color: purple; + background-color: transparent; + } + + p a:active { + color: red; + background-color: transparent; + } + + a:hover { + text-decoration: none; + } + + p img { + border: 0; + margin: 0; + } - div.line-block div.line-block { - margin-top: 0 ; - margin-bottom: 0 ; - margin-left: 1.5em } - - div.sidebar { - margin: 0 0 0.5em 1em ; - border: medium outset ; - padding: 1em ; - background-color: #ffffee ; - width: 40% ; - float: right ; - clear: right } - - div.sidebar p.rubric { - font-family: sans-serif ; - font-size: medium } - - div.system-messages { - margin: 5em } - - div.system-messages h1 { - color: red } - - div.system-message { - border: medium outset ; - padding: 1em } - - div.system-message p.system-message-title { - color: red ; - font-weight: bold } - - div.topic { - margin: 2em } - - h1.section-subtitle, h2.section-subtitle, h3.section-subtitle, - h4.section-subtitle, h5.section-subtitle, h6.section-subtitle { - margin-top: 0.4em } + p.rubric { + font-weight: bold; + font-style: italic; + } h1.title { - text-align: center } + color: #003a6b; + font-size: 250%; + margin-bottom: 0em; + } h2.subtitle { - text-align: center } - - hr.docutils { - width: 75% } - - img.align-left { - clear: left } - - img.align-right { - clear: right } - - ol.simple, ul.simple { - margin-bottom: 1em } - - ol.arabic { - list-style: decimal } - - ol.loweralpha { - list-style: lower-alpha } + color: #003a6b; + border-bottom: 0px; + } + + h1, h2, h3, h4, h5, h6 { + color: #555; + background-color: transparent; + margin: 0em; + padding-top: 0.5em; + } + + h1 { + font-size: 160%; + margin-bottom: 0.5em; + border-bottom: 2px solid #aaa; + } + + h2 { + font-size: 140%; + margin-bottom: 0.5em; + border-bottom: 1px solid #aaa; + } + + h3 { + font-size: 130%; + margin-bottom: 0.5em; + } + + h4 { + font-size: 110%; + font-weight: bold; + margin-bottom: 0.5em; + } + + h5 { + font-size: 105%; + font-weight: bold; + margin-bottom: 0.5em; + } + + h6 { + font-size: 100%; + font-weight: bold; + margin-bottom: 0.5em; + } + + dt { + font-style: italic; + } + + dd { + margin-bottom: 1.5em; + } + + div.admonition, div.note, div.tip, div.caution, div.important { + margin: 2em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; + } + + div.important { + background: transparent url('../images/important.png') 10px 2px no-repeat; + } + + div.caution { + background: transparent url('../images/caution.png') 10px 2px no-repeat; + } + + div.note { + background: transparent url('../images/note.png') 10px 2px no-repeat; + } + + div.tip { + background: transparent url('../images/tip.png') 10px 2px no-repeat; + } + + div.admonition-example { + background: transparent url('../images/tip.png') 10px 2px no-repeat; + } + + div.admonition-critical-example { + background: transparent url('../images/important.png') 10px 2px no-repeat; + } + + p.admonition-title { + font-weight: bold; + border-bottom: 1px solid #aaa; + padding-left: 30px; + } - ol.upperalpha { - list-style: upper-alpha } - - ol.lowerroman { - list-style: lower-roman } - - ol.upperroman { - list-style: upper-roman } - - p.attribution { - text-align: right ; - margin-left: 50% } + table.docutils { + text-align: left; + border: 1px solid gray; + border-collapse: collapse; + width: 100%; + margin: 1.5em 0em; + } - p.caption { - font-style: italic } + table.docutils caption { + font-style: italic; + } - p.credits { - font-style: italic ; - font-size: smaller } + table.docutils td, table.docutils th { + padding: 0.25em 0.5em; + } - p.label { - white-space: nowrap } + table.docutils th { + background-color: #dddddd; + } - p.rubric { - font-weight: bold ; - font-size: larger ; - color: maroon ; - text-align: center } + div.sidebar { + width: 33%; + float: right; + margin: 0em 2em; + padding: 0em 1em; + border-top: 1px solid #aaa; + border-left: 1px solid #aaa; + border-bottom: 2px solid #555; + border-right: 2px solid #555; + } p.sidebar-title { - font-family: sans-serif ; - font-weight: bold ; - font-size: larger } + margin-bottom: 0em; + color: #003a6b; + border-bottom: 1px solid #aaa; + font-weight: bold; + } p.sidebar-subtitle { - font-family: sans-serif ; - font-weight: bold } - - p.topic-title { - font-weight: bold } - - pre.address { - margin-bottom: 0 ; - margin-top: 0 ; - font-family: serif ; - font-size: 100% } - - pre.literal-block, pre.doctest-block { - margin-left: 2em ; - margin-right: 2em } - - span.classifier { - font-family: sans-serif ; - font-style: oblique } - - span.classifier-delimiter { - font-family: sans-serif ; - font-weight: bold } - - span.interpreted { - font-family: sans-serif } - - span.option { - white-space: nowrap } - - span.pre { - white-space: pre } - - span.problematic { - color: red } - - span.section-subtitle { - /* font-size relative to parent (h1..h6 element) */ - font-size: 80% } - - table.citation { - border-left: solid 1px gray; - margin-left: 1px } - - table.docinfo { - margin: 2em 4em } - - table.docutils { - margin-top: 0.5em ; - margin-bottom: 0.5em } - - table.footnote { - border-left: solid 1px black; - margin-left: 1px } - - table.docutils td, table.docutils th, - table.docinfo td, table.docinfo th { - padding-left: 0.5em ; - padding-right: 0.5em ; - vertical-align: top } - - table.docutils th.field-name, table.docinfo th.docinfo-name { - font-weight: bold ; - text-align: left ; - white-space: nowrap ; - padding-left: 0 } - - h1 tt.docutils, h2 tt.docutils, h3 tt.docutils, - h4 tt.docutils, h5 tt.docutils, h6 tt.docutils { - font-size: 100% } - - ul.auto-toc { - list-style-type: none } + margin-top: 0em; + font-style: italic; + color: #003a6b; + } @@ -319,7 +266,7 @@Impostazioni di base per la configurazione del sistema operativo e della rete nel laboratorio 208 facente parte della rete piffa.net .
-Qui riportati per comodita' degli studenti (e del - docente che non sara' mai piu' costretto a - ripeterli continuamente! ). Gli altri lettori potranno - tenerli presenti per cercare di comprendere gli esempi nel - testo. Ad esempio: quando leggerete Sono qui riportati i parametri della rete locale per + comodita' degli studenti, gli altri lettori possono + considerarli come riferimento per comprendere i valori + espressi nei vari file di configurazione. Ad esempio: + quando leggerete 10.10.208.254:3128 saprete che si tratta del nostro proxy http, stara' quindi a voi - sostituire i dati con gli ip della vostra - rete.
+ sostituire i dati con gli equivalenti IP della + vostra rete.Parametri della rete attualmente in uso:
10.10.208.254 | -|
gateway | - -10.10.208.250 persistente | -
DNS | 10.10.208.254 |
Dal server locale degli studeti, + Bender, corrispondente all'IP 10.10.208.248, vengono erogati i servizi + DHCP, DNS, gateway (con NAT), proxy http e mirror della + distribuzione Debian ( http://debian.piffa.net). + Altri servizi in esecuzione sul server:
-Durante il corso delle lezioni e' opportuno che le + macchine degli studenti si appoggino al server Bender + (ottetto finale 248), nel caso questo non fosse + raggiungibile (ad esempio per permettere impostazioni di + DHCP / routing diverse) sara' comunque disponibile il + 10.10.208.254 come gateway | DNS per la + rete 10.10.208.10.
+ +Non e' piu' possibile raggiungere + Bender tramite l'IP pubblico 212.22.136.248 o qualsiasi altro + ip della classe C 212.22.136.0/24 precedentemente + disponibile.
+ +Il computer del docente con il server VNC e' sempre + configurato con l'ottetto finale: 177 della + rete utilizzata durante le lezioni (quindi generalmente la + VNC sara' disponibile sul 10.10.208.177:1.
+ +Gli studenti sono pregati di non impedire l'accesso SSH + alla propria macchina dal computer del docente, e non + modificare la password dell'utente root del + sistema operativo pre-istallato (ad es: + Diurno).
+ +Segue un esempio del file di configurazione della + scheda di rete con configurazione statica:
+ +/etc/network/interfaces:
++# /etc/network/interfaces -- configuration file for ifup(8), ifdown(8) + +# The loopback interface +iface lo inet loopback + +# La prima scheda di rete (se si chiama eth0) +iface etho inet static + # esempio con dhcp: + # iface etho inet dhcp +address 10.10.208.101 +netmask 255.255.255.0 +network 10.10.208.0 +broadcast 10.10.208.255 +gateway 10.10.208.254 + +# Quali interfaccie devono partire automaticamente: +auto lo eth0 +-
Sul portatile di Andrea, corrispondente all'ip 254, gira - un DHCP, proxy http e mirror di Debian ( http://debian.piffa.net). Se - Andrea non e' in aula (o ancora peggio non c'e' il suo - portatile Net) gli studenti dovranno darsi un indirizzo ip - manualmente e disabilitare il proxy (che pero' e - trasparente, quindi fate pure come se non ci fosse ;) . - Questo in attesa che si sappia se sara' nuovamente - utilizzabile il vecchio server Bender.
+Controllare il nome della propria scheda di rete: a + volte udev rinomina la prima scheda a eth1, + oppure potreste avere piu' di una scheda di rete (anche + un'interfaccia firewire puo' essere + automaticamente abilitata come scheda di rete).
+ +Se si usano schede di rete virtuali ( eth0:1 + , eth0:1 , ...) ricordarsi che queste dipendono dalla + scheda fisica a cui sono associate: abbattere con + ifconfig down + eth0 la scheda principale + fara' cadere anche queste. Tornando ad attivare la scada + principale con ifconfig eth0 + up la virtuale tornera' + attiva: nel caso voleste disabilitarla dovrete quindi + sempre abbattere manualmente la scheda virtuale + prima della scheda reale.
+ +I DNS vanno indicati nel file /etc/resolv.conf , la cui sintassi e' + spiegata al punto 4.6 . Come DNS si deve usare + il server Bender, alcuni parametri dei software di + installazione, risoluzione dei mirror, vengono + opportunamente modificatia da questo DNS.
+Il completamento automatico della shell (che si attiva
premendo il tasto tab una o due volte mentre si sta
@@ -869,7 +1109,7 @@
ad es. volendo digitare apt-get
inst[TAB] xtigh[TAB] ora verra' completatato
+ "pre">xtigh[TAB] ora verra' completato
automaticamente sia la parola install
che il nome del pacchetto Working more productively
with bash 2.x/3.x
+
+
Vim e' l'editor di testo preferito dai sistemisti, quindi sara' conveniente impostare fin da subito alcune impostazioni per renderlo piu' comodo.
Assicurarsi che sia installata nel sistema la versione - completa dell'editor vim - nstallando il pacchetto vimi:
+ completa dell'editor installando il pacchetto vim: ++# apt-get install vim ++ +
Modificare poi il file di configurazione generale + /etc/vim/vimrc
- # apt-get install vim - -e modificare il file di configurazione generale ``/etc/vim/vimrc`` :: - - " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just - " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime - " you can find below. If you wish to change any of those settings, you should - " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten - " everytime an upgrade of the vim packages is performed. It is recommended to - " make changes after sourcing debian.vim since it alters the value of the - " 'compatible' option. - - " This line should not be removed as it ensures that various options are - " properly set to work with the Vim-related packages available in Debian. - runtime! debian.vim - - " Uncomment the next line to make Vim more Vi-compatible - " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous - " options, so any other options should be set AFTER setting 'compatible'. - "set compatible - - " Vim5 and later versions support syntax highlighting. Uncommenting the next - " line enables syntax highlighting by default. - syntax on - - " If using a dark background within the editing area and syntax highlighting - " turn on this option as well - set background=dark - - " Uncomment the following to have Vim jump to the last position when - " reopening a file - - if has("autocmd") - au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") - \| exe "normal! g'\"" | endif - endif - - " Uncomment the following to have Vim load indentation rules and plugins - " according to the detected filetype. - if has("autocmd") - filetype plugin indent on - endif - - " The following are commented out as they cause vim to behave a lot - " differently from regular Vi. They are highly recommended though. - set showcmd " Show (partial) command in status line. - "set showmatch " Show matching brackets. - set ignorecase " Do case insensitive matching - "set smartcase " Do smart case matching - "set incsearch " Incremental search - set autowrite " Automatically save before commands like :next and :make - "set hidden " Hide buffers when they are abandoned - "set mouse=a " Enable mouse usage (all modes) in terminals - - " Source a global configuration file if available - " XXX Deprecated, please move your changes here in /etc/vim/vimrc - if filereadable("/etc/vim/vimrc.local") - source /etc/vim/vimrc.local - endif +" All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just +" /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime +" you can find below. If you wish to change any of those settings, you should +" do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten +" everytime an upgrade of the vim packages is performed. It is recommended to +" make changes after sourcing debian.vim since it alters the value of the +" 'compatible' option. + +" This line should not be removed as it ensures that various options are +" properly set to work with the Vim-related packages available in Debian. +runtime! debian.vim + +" Uncomment the next line to make Vim more Vi-compatible +" NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous +" options, so any other options should be set AFTER setting 'compatible'. +"set compatible + +" Vim5 and later versions support syntax highlighting. Uncommenting the next +" line enables syntax highlighting by default. +syntax on + +" If using a dark background within the editing area and syntax highlighting +" turn on this option as well. +set background=dark + +" Uncomment the following to have Vim jump to the last position when +" reopening a file + +if has("autocmd") + au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$") + \| exe "normal! g'\"" | endif +endif + +" Uncomment the following to have Vim load indentation rules and plugins +" according to the detected filetype. +" This is not recommanded if you often copy and paste into vim, +" as it messes all the indentation. +if has("autocmd") + filetype plugin indent on +endif + +" This goes for comments folding: use co to expnad and zc to compress, +" zi to toggle on/off +set fdm=expr +set fde=getline(v:lnum)=~'^\\s*#'?1:getline(prevnonblank(v:lnum))=~'^\\s*#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0 + +" The following are commented out as they cause vim to behave a lot +" differently from regular Vi. They are highly recommended though. +set showcmd " Show (partial) command in status line. +"set showmatch " Show matching brackets. +# Ignorecase is quite userfull +set ignorecase " Do case insensitive matching +"set smartcase " Do smart case matching +"set incsearch " Incremental search +set autowrite " Automatically save before commands like :next and :make +"set hidden " Hide buffers when they are abandoned +"set mouse=a " Enable mouse usage (all modes) in terminals + +" Source a global configuration file if available +" XXX Deprecated, please move your changes here in /etc/vim/vimrc +if filereadable("/etc/vim/vimrc.local") + source /etc/vim/vimrc.local +endif+ +
I principianti faranno bene ad esercitarsi con + vimtutor it.
+ +Altri link per VIM:
+ +I Virtual Network Computing (o VNC) sono software di controllo remoto e servono per amministrare il proprio - computer a distanza o visuallizare la sessione di lavoro di - un altro computer sul proprio a scopo didattico. - Installando un server VNC sulla propria macchina ed - impostando una opportuna password si consente ai client VNC - di ricevere una immagine dello schermo ed eventualmente di - inviare input di tastiera e mouse al computer server - (durante le lezioni questo non e' possibile per gli - studenti, solo Andrea esegue i comandi). In pratica si può - gestire il computer server da un'altra postazione, come se - fosse il proprio computer fisico.
+ computer a distanza o visualizzare la sessione di lavoro di + un altro computer sul proprio a scopo didattico.Scaricare il pacchetto echo $PATH per visualizzare l'attuale path ) comoda per gli utenti ( in genere /bin ), rndere eseguibile lo script.
+ "pre">/bin ), rendere eseguibile lo script.Procedura:
su root cd /bin -wget http://debian.piffa.net/guarda.sh +wget http://bender/guarda.sh chmod +x guarda.sh exit+
Per eseguire lo script digitare semplicemente guarda.sh, + oppure creare un link / collegamento sul Desktop allo + script /bin/guarda.sh.
+ +Le impostazioni del server VNC sono:
+ +Parametro | + +Valore | +
---|---|
IP | + +10.10.208.177:1 | +
Server grafico | + +:1 | +
password | + +password | +
Si noti che non e' possibile lanciare un applicativo sul server grafico di un utente da una shell in cui si sta lavorando come altro utente, anche se root. E' quindi @@ -1072,7 +1380,7 @@ exit
I pacchetti installati generalmente kde-core e' piu' leggero del
pacchetto kde, esiste anche un equivalente
+ "pre">kde. Esiste un equivalente
gnome-core gnome e il log-in manager
- gdm per il l'ambiente grafico
- Gnome.
+ "pre">gnome-core per chi preferisce
+ Gnome, nel caso si potrebbe installare il log-in
+ manager gdm al posto di kdm.
@@ -1111,7 +1420,7 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
Vediamo i due file principali di apt: Questo file contiene i sorgenti da cui apt
preleva i pacchetti da installare tramite dpkg,
@@ -1150,7 +1459,8 @@ kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
Questo file contiene le opzioni di apt, come ad
esempio il proxy: Si tenga conto che se si imposta un proxy per apt sul
proprio portatile e tornati a casa propria si vuole
- scaricare nuovi pacchetti si dovra' disabilitare il
- proxy. E' consigliabile impostare il proxy per apt anche in
+ presenza di un proxy-http trasparente1.7 Apt configurazione
+ "#id15">1.7 Apt configurazione
1.7.1 sources.list
+ "#id16">1.7.1 sources.list
1.7.2 /etc/apt/apt.conf
+ "#id17">1.7.2 /etc/apt/apt.conf
-Acquire::http::Proxy "http://10.10.208.254:3128";
+Acquire::http::Proxy "http://10.10.208.248:3128";
Squid e' un proxy cache http (ma anche FTP e https) robusto e strutturato, puo' essere usato sia in reti - relativamente piccole grazie alla semplicita' di - configurazione che in scenari piu' complessi grazie alla - possibilita' di gestirne in modo granulare le risorse - partendo dalle configurazioni piu' semplici per la semplice - condivisione della navigazione internet, la gestione - degli accessi, il filtraggio dei contenuti (Squid e' una - applicazione che si muove nel 4' livello del modello TCP/IP a - differenza di un ipfilter limitato al 2') nel l - bilanciamento del carico tra piu' hosts.
+ relativamente semplici che in scenari piu' complessi grazie + alla possibilita' di gestirne in modo granulare le risorse. + Si partira' dalle configurazioni piu' semplici per la + semplice condivisione della navigazione internet, + per poi poter configurare la gestione degli accessi, il + filtraggio dei contenuti (Squid e' una applicazione che si + muove nel 4' livello del modello TCP/IP a differenza di un + ipfilter limitato al 2'), nel bilanciamento del + carico tra piu' server proxy.Cosa a volte sottovalutata, squid permette la navigazione - web a una rete basata su indirizzi ip privati (es +
Cosa a volte sottovalutata, Squid permette la navigazione + web a una rete basata su indirizzi IP privati (es una 192.168.0.0/24). E se la rete privata deve solo - navigare in internet, non serve un NAT od - altro, basta il solo Squid. Per altro non servira' neanche un - servizio DNS dato che sara' il solo squid a risolvere i - nomi di dominio per i suoi client http.
+ navigare in internet, non serve dover introdurre nella + rete un NAT (si veda la sezione sui firewall) per + condividere la connessione, basta il solo Squid. Per altro + non servira' neanche un servizio DNS utilizzabile dai clients + dato che sara' il solo Squid a risolvere i nomi di + dominio per i suoi client http.Squid ascolta di default sulla porta 3128, per impostare
apt per utilizzarlo si aggiunga ad
2.1 Configurazione:
+ "#id19">2.1 Configurazione:
squid.conf
Segue un estratto delle direttive principali viste in @@ -1263,7 +1592,7 @@ squid3
Cache dir serve per impostare dimensione e percorso della cache creata sul supporto di storaggio. Essendo la @@ -1277,7 +1606,7 @@ squid3
La dimensione ovviamente dipendera' dallo spazio
disponibile, dimensioni tipiche e massime degli oggetti
che si vuole tenere in cache (un solo file .iso e'
- circa ``700 MB``, il pacchetto *Openoffice.org cira
+ circa ``700 MB``, il pacchetto *Openoffice.org circa
150
MB, un pacchetto debian
circa
Si presti poi attenzione alla natura dei dati che
- saranno salvati nella cache: sono tutti dati facilmenti
+ saranno salvati nella cache: sono tutti dati facilmente
sostituibili (gli originali sono on-line) la cui
perdita non arreca danni permanenti. Questo rende la
cache di Squid un possibile candidato ad un RAID
- stripe (livello 0), con vantaggi sia per le
+ stirpe (livello 0), con vantaggi sia per le
prestazioni (e la velocita' di navigazione e' uno dei
motivi per cui si installa Squid) che per l'utilizzo
estensivo dello spazio di storaggio. Questo fino al
@@ -1343,12 +1672,12 @@ cache_dir aufs /var/spool/squid3 300 24 256
Se si modifica la struttura del filesytem della cache
di Squid, ad esempio variando il numero delle directory,
puo' essere opportuno rigenerare la struttura della cache
- di squid (per lo meno se si aumenta il numero delle
- directory di primo o secondo livello). Tipicamente e'
- opportuno cancellare (se si ha *ridotto il numero
- delle diectory) la vecchia cache e poi generare una nuova
- struttura. Se si vuole star nel sicuro ogni
- volta che si modifica l'impostazione delle directory
+ di squid (per lo meno se si aumenta il numero
+ delle directory di primo o secondo livello). Tipicamente
+ e' consigliabile cancellare (se si ha ridotto il
+ numero delle directory) la vecchia cache e poi generare
+ una nuova struttura. Se si vuole star nel sicuro
+ ogni volta che si modifica l'impostazione delle directory
si svuoti la vecchia cache e se ne generi una
nuova Questa direttiva imposta la dimensione massima degli
- oggetti che vengono slvati sul supporto di storaggio,
+ oggetti che vengono salvati sul supporto di storaggio,
oggetti di dimensioni superiori saranno comunque
scaricati ma non tenuti in cache. Cache_mem imposta quanta memoria RAM venga
utilizzata per la cache di Squid. Questo dipendera' dalla
RAM disponibile sul sistema, e da quanta di questa volete
- mettere a disposizione di Squid (altri servizi
- iimportanti girano sulla stessa macchina?). Questo
- paramentro influisce sulle prestazioni e sul degrado dei
- supporti di storaggio (sopratutto se magnetici). Se si stesse pensando di usare dell'hardware
embedded a basse prestazioni / consumo per
@@ -1435,7 +1764,7 @@ cache_mem 100 M
Questo parametro imposta la dimensione minima degli
@@ -1463,7 +1792,7 @@ minimum_object_size 0 KB
Squid e' uno di quei servizi soggetto a problemi di tipo
@@ -1496,8 +1825,8 @@ minimum_object_size 0 KB
identifichera' inizialmente l'entita' rete locale
(es: localnet) con una ACL di tipo
- src (indirizi IP sorgenti) indicando la classe
- / range di ip della nostra rete. Per maggiori dettagli sulla sintassi utilizzabile per
- esprimere i range di ip:
http://www.visolve.com/squid/squid24s1/access_controls.php Si proceda a creare una ACL di
tipo src per identificare la lostra rete
+ "pre">src per identificare la nostra rete
locale, poi si abiliti l'accesso a questa con la
direttiva http_access. Tutto quanto non e'
@@ -1576,7 +1905,7 @@ http_access allow localnet
Configurato squid e' fondamentale testarne il corretto
funzionamento per assicurarsi di non aver creato un
@@ -1588,13 +1917,13 @@ http_access allow localnet
Nel file .wgetrc (si noti il punto iniziale: e'
un file nascosto) si puo' impostare il proxy per wget. Si
- utililizzi l'indirizzo ip del server che si vuole
- testare, e si seguano i log /var/log/squid3/access.log sul
server. Si puo' controllare il corretto funzionamento del
@@ -1644,7 +1973,7 @@ wget http://www.google.it
Apache HTTP Server, o piu' comunemente Apache, e' il nome
dato alla piattaforma server Web modulare piu' diffusa (ma
@@ -1657,12 +1986,12 @@ wget http://www.google.it
richiesta del browser, una pagina web (spesso scritta in
HTML). Le informazioni inviate dal server web viaggiano in
rete trasportate dal protocollo HTTP. L'insieme di server web
- dà vita al World Wide Web, uno dei servizi piu'
- utilizzati di Internet. Con la release 2.0 di Apache viene automaticamente resa
disponibile anche la versione SSL (Secure Socket Layer,
- cpnnessioni criptate ) del web server. I file di configurazione di apache si trovano nella
@@ -1695,7 +2024,7 @@ wget http://www.google.it
httpd.conf e' il vecchio file di
configurazione di Apache1, presente per motivi di
- retrocompatibilita' e' generalemente vuoto. File di configurazione del servizio Apache, contiene le
impostazioni generiche (ad esempio utilizzo della RAM e
@@ -1752,8 +2081,8 @@ wget http://www.google.it
Pacchetti da installare: php5
@@ -1800,14 +2129,14 @@ wget http://www.google.it
Creare nella cartella /var/www
(o altra cartella visibile) un file con estensione *.php
(es /var/ww/info.php contenete codice php
+ "pre">/var/www/info.php contenete codice php
eseguibile dall'interprete, ad es: Questa funzione di php generera' la tipica pagina con
le impostazioni attuali per PHP. Richiamando la pagina
(es: http://localhost/info.php ) verra
+ "pre">http://localhost/info.php ) verra'
generata dall'interprete PHP la pagina HTML e resa
- disponibile tramite Apache ai utclient HTTP, a prova del
- correto funzionamento del modulo di PHP e della sua
- integrazione con il serv web Apache. In caso contrario se
- il client http proporra di scaricare la pagina invece che
- visualizzarla nel browser: non funziona l'interprete di
- php o sono mal configurati i MIME-type. prima di tutto
- assicurarsi di aver fatoo ripartire Apache. Installare i pacchetti: L'interfaccia web Phpmyadmin non richede
+ L'interfaccia web Phpmyadmin non richiede
necessariamente la presenza di un database Mysql locale,
- puo' infatti essere utilizzata per gestire databases
+ puo' infatti essere utilizzata per gestire database
remoti (il suo file di configurazione: /etc/phpmyadmin/config.inc.php ). Nel
@@ -1872,7 +2201,7 @@ php5-mysql phpmyadmin
Installare i pacchetti: L'interfaccia web Phppgadmin per il database server
- PostgreSQL non richede necessariamente la presenza di un
+ PostgreSQL non richiede necessariamente la presenza di un
database locale, puo' infatti essere utilizzata per
- gestire databases remoti (il suo file di configurazione:
+ gestire database remoti (il suo file di configurazione:
/etc/phppgadmin/config.inc.php ). Nel
caso si voglia installare localmente Mysql si utilizzi il
@@ -1914,7 +2243,7 @@ php5-pgsql phppgadmin
I virtual host permettono di avere piu' siti internet
disponibili tramite lo stesso server web, eventualmente
- mappati su un solo indirizzo ip. Sono generalemente di due
+ mappati su un solo indirizzo IP. Sono generalmente di due
tipi: Prima di tutto per poter impostare i virtual hosts
dovete avere un server DNS che risolva i vostri nomi di
- dominio sull'indirizzo ip del server. Questo si puo'
+ dominio sull'indirizzo IP del server. Questo si puo'
ottenere in vari modi, ad es: Query DNS con dig: La parte interessante e' La parte interessante e' l'ANSWER SECTION:
+ 177.piffa.net.
0
@@ -2033,12 +2360,14 @@ php5-pgsql phppgadmin
, nel nostro Apache (che risponde all'ip 10.10.208.177 )
dovra' essere disponibile un virtual host che corrisponde
al nome 177.piffa.net . Esempio di Virtual host: Tipicamente quando si installa un server web il proprio
desiderio e' di dare accesso ai materiali disponibili al
- maggior numero di visitatori possibile. Talvolta pero' puo
- essere utile o necessario limitare gli accessi, ad esempio
- per escludere un bot indesiderato che scansiona
- ininterottamente le nostre pagine o per creare una Area
- Riservata i cui materiali non devono essere
+ maggior numero di visitatori possibile. Talvolta pero' puo'
+ essere utile poter limitare questi accessi, ad esempio per
+ escludere un bot indesiderato che scansiona
+ ininterrottamente le nostre pagine o per creare una
+ Area Riservata i cui materiali non devono essere
disponibile a tutti. La forma piu' semplice di restrizine degli accessi e'
+ La forma piu' semplice di restrizione degli accessi e'
su base degli indirizzi IP dei client: tipicamente i siti
web sono settati per dare accesso a chiunque: A volte conviene negoziare gli accessi ad un area di un
- sito tramite autenticazione basata sull'accopiata nome
- utente / password. Questo puo' venire utile per creare
- una area download intranet, alla quale possano
- accedere solo gli utenti previsti a prescindere dagli
- indirizzi IP dei loro client. Per quanto esistano soluzioni
- piu' granulari e sofisticate per ottenere questo,
- mod-auth puo'essere sufficente. E mod auth non
- richiede l'installazione di software aggiuntivi. Si puo' negoziare gli accessi ad un area del sito
+ tramite autenticazione basata su nome utente /
+ password. Questo puo' venire utile per creare una area
+ download intranet, alla quale possano accedere
+ solo gli utenti previsti a prescindere dagli indirizzi IP
+ dei loro client. Tramite il modulo di Apache mod-auth e'
+ possibile implementare questo paradigma, per quanto
+ esistano soluzioni piu' granulari e sofisticate, che
+ richiedono pero' l'implementazione di interpreti di
+ linguaggi di programmazione, criptazione delle passwords,
+ gestione degli utenti ed eventualmente delle sessioni. Mod
+ auth non richiede l'installazione di niente di tutto
+ questo. link: http://www.apacheweek.com/features/userauth Decidere quale sara' il path della cartella
- da sottoporre ad autentizazione:(e creiamo la
- cartella): Un modo semplice per gestire una database di
@@ -2279,10 +2612,10 @@ htpasswd -c /home/utente/passwords luca
htpasswd ci chedera' la password da
+ "pre">htpasswd Ora possiamo passare alla configurazione vera e
propria di Apache, ma con una novita': andremo a inserire
la voce in un .htaccess invece che modificare il file
- di impostazione del virtual-host. Questo per motivi pratici: solo l'utente root
puo' modificare l'impostazione del virtual host nel file
@@ -2313,9 +2649,9 @@ htpasswd -c /home/utente/passwords luca
Dando agli utenti la possibilita' di modificare
(AllowOverride) autonomamente alcuni parametri
(in questo caso solo l'AuthConfig) relativi al
- funzionamenteo del loro spazio web ci togliera'
- l'incombenza di dover intervenire suii vari virtual
- host. Abilitiamo l'AllowOverride nel file di configurazione
del virtual host per la sola directory
Ora sara' possibile, anche per l'utente di sistema,
- creare un fie .htaccess che sara' onorato da
Apache. /var/www/177.piffa.net/privata/.htaccess Si noti che non e' necessario fare ripartire Apache
per onorare i cambiamenti (un utente non avrebbe la
possibilita' di farlo!). L'utente paperino che fosse comunque presente
+ nel file generato da htpasswd non potrebbe accedere alla
+ risorsa. I gruppi vengono definiti in un file in modo simile a
+ /etc/groups per gli utenti di
+ sistema: da richiamare tramite la direttiva AuthGroupFile. Problemi di cache: Domain Name System (spesso indicato con DNS) e' un
servizio utilizzato per la risoluzione di nomi di host in
indirizzi IP e viceversa. Il servizio e' realizzato tramite
- un database distribuito, costituito dai server DNS. Il nome DNS denota anche il protocollo che regola il
- funzionamento del servizio, i programmi che lo implementano,
- i server su cui questi girano, l'insieme di questi server che
- cooperano per fornire il servizio. I nomi DNS, o "nomi di dominio", sono una delle
- caratteristiche piu' visibili di Internet. C'e' confusione in merito alla definizione dell'acronimo:
- la S spesso viene interpretata come service, ma la
- definizione corretta e' system. I DNS sono un servizio core (fondamentale) per la
+ rete internet come per qualunque rete locale. Ad esempio
+ durante la navigazione web un client vorrebbe vedere
+ l'URL http://ww.piffa.net/, quindi per potersi
+ connettere via http al server web deve prima
+ ottenere l'indirizzo IP del server http
+ corrispondente a www.piffa.net. Se il DNS gli
+ fornisce un IP sbagliato l'utente non potra' raggiungere il
+ servizio: di fatto e' come se il serve http fosse spento. Stessa cosa vale per gli altri servizi, come la posta
+ elettronica, ssh, ecc. : prima si deve effettuare una
+ query DNS. Potrebbe verificarsi uno scenario simile a questo: i
+ vostri server per i siti web funzionano correttamente come i
+ siti ospitati, stessa cosa per i vostri server di posta, IMAP
+ e POP3, e tutto il resto. Ma se poi un errore nella
+ configurazione del DNS non rende raggiungibile l'intero
+ sito: per l'utente finale e' come se nulla
+ funzionasse. Infatti quando si parla di un intervento della Polizia
+ Postale per l'oscuramento di un sito dal punto di
+ vista pratico questo si traduce generalmente nella rimozione
+ o mistificazione del record DNS relativo a quel dominio (la
+ PP ha facolta' di chiedere un simile intervento ai
+ principali provider internet che forniscono connettivita'
+ agli utenti italiani, oltre che poter agire direttamente sul
+ NIC italiano per i domini della TLD .it) L'operazione di convertire un nome in un indirizzo e'
detta risoluzione DNS, convertire un indirizzo IP in nome e'
detto risoluzione inversa. Per la risoluzione inversa sono invece i provider di
+ connettivita' a gestire i DNS: se volete impostare il
+ PTR associato al vostro indirizzo IP dovete
+ contattare il vostro provider (tipo telecom per
+ una connessione ADSL) e non il Registar del vostro
+ dominio. Ad esempio all'IP 212.22.136.248 era associato un PTR
+ bender.piffa.net, corrispondente al
+ record 212 facente parte della zona 136.22.212.in-addr.arpa gestito dal
+ provider Tiscali/Nextra proprietario della classe C
+ 212.22.136.0. Se avete un solo IP
+ conviene lasciare al fornitore la gestire del PTR, ma se
+ avete a disposizione un'itera classe potete chiedere sempre
+ al vostro provider che vi deleghi la gestione
+ della zona tramite i vostri DNS. Per alcuni servizi, ad esempio la spedizione della posta
+ elettronica, e' richiedeiesto che venga impostata
+ correttamente l'associazione tra il PTR dell'indirizzo IP
+ usato dal server di postai e il record A RR al quale questo
+ punta( RFC1912 sezione 2.1, paragrafo 2). Si veda: Un nome a dominio e' costituito da una serie di stringhe
- separate da punti, ad esempio it.wikipedia.org. A
- differenza degli indirizzi IP, dove la parte piu'
- importante del numero e' la prima partendo da sinistra, in
- un nome DNS la parte piu' importante e' la prima partendo
- da destra. Questa e' detta dominio di primo livello (o TLD,
- Top Level Domain), per esempio .org o .it. Un dominio di secondo livello consiste in due parti, per
- esempio wikipedia.org, e cosi' via. Ogni ulteriore elemento
- specifica un'ulteriore suddivisione. Quando un dominio di
- secondo livello viene registrato all'assegnatario, questo
- e' autorizzato a usare i nomi di dominio relativi ai
- successivi livelli come it.wikipedia.org (dominio di terzo
- livello) e altri come some.other.stuff.wikipedia.org
- (dominio di quinto livello) e cosi' via. L'utente finale potra' chiedere l'assegnazione (pagando
+ un contributo al Register preferito per il mantenimento
+ delle spese dell'infrastruttura) di un dominio di
+ secondo livello (es piffa) di
+ una delle varie TLD disponibili (noi italiani diciamo
+ tildi), sempre che non sia gia' stato assegnato a
+ qualcun altro. Ottenuto il secondo livello sara' l'utente a gestirlo:
+ potra' in stanziare domini di terzo livello (es bender) e
+ anche oltre (es www.andrea.bender.piffa.net). Tali records
+ saranno mantenuti dall'utente, sotto la sua responsbilita':
+ se il proprio server DNS non fosse raggiungibile o
+ risultasse mal configurato gli utenti non potrebbero
+ risolvere / raggiungere i siti di loro interesse. Tipicamente si ha almeno un server DNS secondario per
+ garantire la sussistenza del servizio in caso di guasto del
+ DNS principale. I secondari replicano i dati
+ presenti nei DNS principali. Ad un nome DNS possono corrispondere diversi tipi di
informazioni. Per questo motivo, esistono diversi tipi di
@@ -2492,12 +2961,12 @@ require valid-user
I computer vengono identificati in rete grazie agli
indirizzi IP, questi pero' non sono comodi per gli
utenti come riferimento per i vari server. Ad esempio
- sarebbe scomodoriferirsi al motore di ricerca Goggle con
+ sarebbe scomodo riferirsi al motore di ricerca Goggle con
uno dei suoi IP: 74.125.43.104, e' preferibile usare il
nome di dominio www.google.com: Ci sono vari strumenti per interrogare i server DNS e
@@ -2574,11 +3043,11 @@ ns4.mydomain.com. 96208 IN A 63.251.83.74
Vediamo alcune opzioni utili nell'utilizzo di dig per
- l'inerrogazione dei DNS Server: Il file /etc/resolv.conf contiene le impostazioni
@@ -2684,26 +3153,69 @@ l.google.com. 80856 IN NS g.l.google.com.
resolv.conf per conoscere l'ubicazione del DNS. /etc/resolv.conf: Predisponendo l'infrastruttura di rete della vostra LAN
+ e' consigliabile impostare sempre un DNS cache sul vostro
+ server locale per i vari client. In questo modo in caso di
+ malfunzionamento del DNS o necessita' di intervenire /
+ sostituire i DNS non sara' piu' necessario dover
+ reimpostare ogni singolo client della LAN: bastera'
+ modificare l'impostazione del server DNS cache, ad esempio
+ per utilizzare un nuovo forwarder, o modificare al volo un
+ record DNS. La modifica, anche detta
+ mascheramento, di un record come il server
+ smtp o un MX potrebbe tirarvi rapidamente
+ fuori dai guai nel caso di un problema improvviso con la
+ posta elettronica o qualunque altro servizio che possiate
+ reindirizzare col DNS. Un server DHCP e un DNS cache come Dnsmasq
+ possono permettervi di risolvere al volo (o per lo meno
+ reindirizzare) molte delle problematiche relative alla
+ configurazione della rete della vostra LAN: dover
+ intervenire manualmente su decine di client per modificare
+ le impostazioni di SMTP | gateway | SMTP | proxy. Si veda anche la pagina man di resolv.conf. Attenzione: se si usa un client DHCP o simile questo
- file potra' essere riscritto automaticamente in base a
- quanto ottenuto dal DHCP. Si veda la documentazione del
- pacchtto resolvconf. Avvertenza Attenzione: se si usa un client DHCP, ppp
+ (ADSL compresa) o simile questo file potrebbe' essere
+ riscritto automaticamente in base a quanto ottenuto dal
+ DHCP. Si veda la documentazione del pacchetto resolvconf. Tabella statica per l'associazione tra IP e nomi di
dominio: Il contenuto e' un associazione tra un IP e
- stringhe di testo (anche piu' di una es: mirror e
mirror.piffa.net), un record per
- riga. Il problema e' la gestione di questo file: quando gli
- host cambiano IP si devono aggiornare i records, e c'e' poi
+ host cambiano IP si devono aggiornare i records, e poi c'e'
il problema di distribuire questo file tra i vari hosts
- della propia LAN. Un metodo semplice per distribuire questo
- file e' utilizzare Dnsmasq:
questo infatti legge e onora il file hosts
- locale e lo distribuisce ai clients. Modificare (riconducendola a un ip interno, cosi'
+ Modificare (riconducendola a un IP interno, cosi'
annullandola) la risoluzione di un nome di dominio e' un
modo drastico e funzionale per annullarlo
- rendendolo indisponibile alla propia rete locale, ad
+ rendendolo indisponibile alla propria rete locale, ad
esempio aggiungere al file /etc/hosts: Ogni computer ha un propio nome visualizzabile
+ Ogni computer ha un proprio nome visualizzabile
(e modificabile) con il comando hostname. Tipicamente si vuole mantenere una correlazione tra il
- nome dell'host, o meglio la stringa con cui il server si
- qualifica all'esterno, e il PTR dell'ip. Nel caso
+ nome dell' host, o meglio la stringa con cui il server si
+ qualifica all'esterno, e il PTR dell'IP. Nel caso
di servizi virtuali ci sara' un nome
server principale associato al PTR condiviso.
Non e' automatico che un servizio, ad esempio un server di
posta, si qualifichi leggendo il contenuto di questo file e
magari aggiungendo come suffisso il dominio di cui fa parte
- l'host: a volte questo parametro puo' essere specificato
+ l' host: a volte questo parametro puo' essere specificato
nel file di configurazione del servizio: Si faccia attenzione a non aver un hostname puramente
+ numerico: ad es. 161. E' opportuno che il nome sia
+ comunque un alfanumerico: host-161 o
+ simile. Dnsmasq puo' svolgere le funzioni di un DNS cache /
- forwarder e un server DHCP caratterizzato dalla facilita' di
- configurazione, dalla leggerezza e dalla possibilita' di
- modificare rapidamente i record DNS serviti alla rete. Puo'
- essere anche utilizzato come server per il boot da rete
+ forwarder, server DHCP, e' caratterizzato dalla facilita' di
+ configurazione, limitato uso di risorse, adattabilita' a
+ connessioni dinamiche come ADSL o altre punto a
+ punto (anche via cellulari) per condividere rapidamente la
+ rete (cosa molto utile se ci dovesse trovare a ridare
+ connettetivita' a una rete momentaneamente sprovvista), dalla
+ possibilita' di modificare rapidamente i record DNS serviti
+ alla rete anche grazie alla distribuzione del file /etc/hosts
+ locale. Puo' essere anche utilizzato come server per il
+ boot da rete
<http://www.debian-administration.org/articles/478>_
. Dnsmasq e' un interessante alternativa all'uso del server
- DNS Bind in modalita' cache-only (non autoritativo)
- accompagnato dal server DHCPD. I vantaggi sono: Tutto cio' rende Dnsmasq una soluzione valida in
@@ -2822,7 +3350,7 @@ l.google.com. 80856 IN NS g.l.google.com.
Vediamo alcune direttive di basi del file di
configurazione
Per attivare il demone DHCP di dnsmaq basta aggiungere
- al file di configurazione il range degli ip che si
+ Per attivare il demone DHCP di Dnsmasq basta aggiungere
+ al file di configurazione il range degli IP che si
vuole assegnare ai client con il lease time (tempo
- di rilascio: quanto a lungo saranno validi gli ip
+ di rilascio: quanto a lungo saranno validi gli IP
assegnati) espresso in ore. Si faccia attenzione: in una rete puo' esseere
+ Si faccia attenzione: in una rete puo' essere
presente un solo server DHCP, o per meglio
dire qualunque server DHCP ascolta sul broadcast 255.255.255.255 e potrebbe rispondere a
- un pacchetto di richesta DHCP. Quindi non fate partire
+ un pacchetto di richiesta DHCP. Quindi non fate partire
inavvertitamente un server DHCP in una rete gia' servita e
non vi azzardate ad andare in giro con un portatile
con un server DHCP attivo nelle reti altrui.
@@ -2900,18 +3428,16 @@ dhcp-range=192.168.0.20,192.168.0.50,24h
Aggiungere al file /etc/resolv.conif il nameserver localhost
- in cima alla lista dei nameserver disponibili.
- Dnsmasq usera' la propia cache e in caso non abbia
- disponibile il record DNS richiesto fara' partire
- una query al primo DNS: Dnsmasq lavora di default come cache dns: inserire al
+ file /etc/resolv.conf il nameserver localhost
+ in cima alla lista dei nameserver disponibili. Questo pero' potrebbe essere problematico se un altro
servizio, ad esempio il DHCP client, riscrive il contenuto
@@ -2936,19 +3462,647 @@ prepend domain-name-servers 127.0.0.1;
cambiare i DNS una volta impostati (a meno che non usiate
un portatile!). Le soluzioni viste possono bastare per la rete locale o
+ per fare delle prove, ma prima o poi verra' il momento in cui
+ si e' chiamati a gestire dei domini su internet: lo standard
+ e' da sempre Bind ( demone named), ora alla
+ versione 9. Installare i pacchetti: Bind appena installato funzionera' come DNS cache: si
+ faccia un test con un dig
+ @localhost . Bind a
+ differenza di Dnsmasq e' autonomo: non ha bisogno di
+ forwardare (inoltrare) le query a un DNS esterno: queste
+ verranno risolte direttamente da Bind partendo dai DNS
+ root servers. E' comunque possibile impostare dei DNS forwarders,
+ tipicamente i DNS server forniti dal proprio provider, per
+ velocizzare le query: /etc/bind/named.conf.options (riga 13): Nel caso si voglia usare Bind solo come server DNS cache
+ per la propria LAN senza ospitare delle zone DNS pubbliche
+ sara' il caso di limitare gli accessi al server alla sola
+ LAN: /etc/bind/named.conf.options (riga 19): E non si lasci il server in ascolto su uno degli
+ eventuali indirizzi IP pubblici. Se questo non fosse possibile si puo' sempre lavorare su
+ una acl: /etc/bind/named.conf Per poi aggiungere all'interno della stanza options la
+ direttiva che abilita' l'entita' localnet: /etc/bind/named.conf.options Se avete acquistato un nome di dominio e vi serve un
+ software DNS per gestirlo Bind e' la scelta piu' diffusa.
+ Ora vedremo come configurare una zona (come
+ piffa.net) in modo che Bind sia autoritativoper questa,
+ rispondendo alle query DNS di tutta la rete internet. Prima di tutti impostiamo il server bind per gestire
+ la zona, per non fare confusione e' opportuno inserire le
+ propie zone DNS nel file named.conf.local e non in named.conf. named.conf.local: Ora dovremo preparare il file contenente i record DNS
+ della zona piffa.net, come abbiamo indicato
+ prima questi saranno contenuti nel file /etc/bind/pz/piffa.net . Tenere le zone
+ dentro una sottocartella e' buona abitudine, usare
+ pz per queste e' una vecchia
+ abitudine. piffa.net: All'interno di questo file si possono inserire dei
+ commenti con il carattere ;
+ (punto-e-virgola), si faccia attenzione alla rigida
+ sintassi: apertura e chiusura delle parentesi tonde nella
+ parte IN SOA, uso
+ del punto finale per precisare un nome di
+ dominio specifico (FQDN: Fully-qualified Domain
+ Name) come test.piffa.net. a differenza degli
+ altri domini di terzo livello come pop,imap,smtp . La zona inizia con una direttiva $TTL
+ 3D (RFC 2308) che indica la
+ durata (in questo caso tre giorni) che ogni record
+ dovrebbe avrebbe nella cache degli altri serber DNS.
+ Questo valore dovrebbe essere superiore a un giorno, se
+ non modificate spesso i valori dei vostri record DNS e'
+ consigliabile settarlo a 2/3 settimane in modo da
+ limitare la frequenza delle query al propio server.
+ Questo parametro puo' essere modificato per singoli
+ record: Segue poi il nome della zona, indicato con la
+ @ per richiamare la zona originale
+ precisata nel file named.conf.options . Segue il campo
+ SOA. Il record SOA puo' comparire solo una volta in una
+ zona, contiene informazioni relative all'autorita' del
+ server DNS. All'interno della zona possono essere utilizati vari
+ tipi di records (RR): Data l'importanza del servizio DNS e' necessario avere
+ ridondanza per i server DNS che ospitano i vostri dati: in
+ caso di indisponibilita' del server master (nel
+ caso fosse il solo a tenere i dati questo comporterebbe la
+ scomparsa di tutti i servizi / host da esso
+ seviti!) il client potrebbe contattare uno degli
+ slave. Gli slave recuperano i dati dei recordos RR direttamente
+ dal master e non sara' quindi necessario dover mantenere
+ manualmente il file di configurazione della zona sugli
+ slaves, ogni volta che aggiorneremo il master questi dati
+ si propaghera' agli slaves automaticamente. Per attivare uno slave per la nostra zona di
+ esempio piffa.net si inserisca nel file
+ named.conf.local dello slave server: Facendo ripartire Bind il file /etc/bind/pz/piffa.net viene creato
+ automaticamente. Segue un estratto di /var/log/syslog al restart di
+ bind9 sullo slave: Avvertenza Bind9 (versione 9.3 presente in Debian
+ Lenny) richiede una esplicita autorizzazione alla
+ notifica per lo stesso server slave, che in fase di avvio
+ interroghera' (inviando un notify) se' stesso per
+ valutare se i dati relativi alla zona di cui e' slave
+ sono aggiornati. Si aggiunga quindi al file /etc/bind/named.conf.options dello
+ slave: allow-notify {
+ 192.168.0.1; }; all'interno della stanza options,
+ in cui l'inidirizzo IP inserito e' quello dello stesso
+ slave server. Dalla versione 8 di Bind e' dsponibile l'utility
+ nsupdate (disponibile nel pacchetto
+ dnsutils) per aggiornare automaticamente
+ i record di una zona secondo il paradigma client / server (
+ RFC2136 ) . Posto che abbiate a disposizione un server DNS
+ Bind on-line su un indirizzo IP fisso e un zona da gestire
+ (che potrebbe essere anche solo la delega di un dominio di
+ terzo livello come casa.miodominio.net) sara'
+ possibile aggiornare automaticamente i record che tirano a
+ degli indirizzi IP pubblici ma dnamici, come
+ quelli spesso messi a disposizione dei provider per le
+ connessioni ad internet residenziali, in modo da poter
+ rendere sempre raggiungibile la vostra workstation a casa
+ anche dopo un aggiornamento dell'ip dinamico associato alla
+ connessione. L'auenticazione del client nsupdate che avra' la
+ possibilita' di aggiornare il server DNS master avviene
+ tramite Transaction signatures (TSIG, RFC2845)
+ usando un algoritmo di criptazione dati asimmetrico
+ HMAC-MD5 : generata una coppia di chiavi sul
+ client / nsupdate con l'utility si dovra' trasferire la
+ chiave pubblica sul server master, che verra'
+ configurato per onorare gli aggiornamenti (eliminazione e
+ inserimento di record RR) autenticati dalla chiave
+ privata. Sul client, sul quale non deve essere necessariamente
+ installato un server DNS Bind ma la sola utility
+ nsupdate, generiamo la coppia di chiavi
+ con l'utility dnssec-keygen installabile tramite il
+ pacchetto bind9utils: Otterremo le due chiavi Khome.piffa.net.+157+04331.key
+ Khome.piffa.net.+157+04331.private, la
+ chiave pubblica dovra' essere resa noto al server master
+ che ricevera' l'update dei records. Nota La parte secret, che potete leggere
+ direttamente nel file *.key della chiave genearta, e'
+ scritto tutto sulla stessa riga senza ritorni
+ a capo. Sul server modifichiamo il file di configurazione
+ named.conf.local della zona della quale
+ vogliamo concedere l'aggiornamento al client: Altro problema che si potrebbe porre: gli orologi di
+ sistema dei due host devono essere sincronizzati per
+ poter valutare l'opportunita' di un aggiornamento: si
+ consigla di installare su entrambi l'utility ntpdate
+ e di eseguirla facendo riferimento ai time server di
+ Debian: Ora possiamo provare dal client a effettuare
+ l'iserimento di un record per testarne il
+ funzionamento: Per comprendere meglio l'uso dell'utility nsupdate
+ si consiglia la lettura della relativa pagina man. Nella
+ prima riga viene invocato il comando nsupdate
+ impostando col flag -k la
+ chiave privata generata precedentemente, con
+ server si imposta quale server NS
+ autoritario della zona (che abbiamo precedentemente
+ configurato per ricevere gli aggiornamenti) vogliamo
+ contattare. Alla riga sucessiva update
+ viene aggiunto un record A per la
+ il dominio home.piffa.net indirizzato all'IP
+ 192.168.0.2, poi show
+ mostra quanto ci si prepara a comunicare al server con il
+ finale send . Si noti che in questo modo l'intera zona
+ piffa.net e suscettibile di essere modificata dal client,
+ che potra' eliminare e inserire qualunque record. E'
+ possibile gestire in modo piu' granulare la zona, ad
+ esempio concedendo al client i privilegi per gestire solo
+ una parte della zona o i tipo di record da gestire. Dnsmasq puo' lavorare anche come DHCP server per la
- vostra LAN. Samba e' un progetto libero che fornisce servizi di
condivisione di file e stampanti a client SMB/CIFS. Samba e' un software che puo girare su piattaforme che non
- siano Microsoft Windows, per esempio, UNIX, Linux, IBM System
- 390, OpenVMS e altri sistemi operativi. Samba utilizza il
- protocollo TCP/IP utilizzando i servizi offerti sul server
+ Samba e' un software che puo' girare su piattaforme che
+ non siano Microsoft Windows, per esempio, UNIX, Linux, IBM
+ System 390, OpenVMS e altri sistemi operativi. Samba utilizza
+ il protocollo TCP/IP utilizzando i servizi offerti sul server
ospite. Quando correttamente configurato, permette di
interagire con client o server Microsoft Windows come se
fosse un file e print server Microsoft agendo da Primary
@@ -2969,11 +4123,11 @@ prepend domain-name-servers 127.0.0.1;
Pacchetti da installare per utilizzare Samba in
- modalita' client [2] Per poter configurare Samba in modo che usi un sistema
@@ -3053,7 +4207,7 @@ dpkg-reconfigure samba-common
scrittura allora neanche Samba potra' farlo nel momento
in mette a disposizione la risorsa all'utente. Se si
montano file-system dedicati per le condivisioni
- controllare i permessi e propieta' dei punti di
+ controllare i permessi e proprieta' dei punti di
mount*. Queste passwords sono salvate nel solito
file /etc/shadow (richiamato da /etc/passwd).
@@ -3083,7 +4237,7 @@ dpkg-reconfigure samba-common
Creiamo per primo l'utente sotto GNU/Linux, facendo
attenzione a non dargli una shell di sistema. Gli
@@ -3120,7 +4274,7 @@ smbpasswd sambo
La condivisione altro non e' che una cartella sul server
@@ -3147,7 +4301,7 @@ smbpasswd sambo
Bisognerebbe notare sul server i permessi di
@@ -3177,7 +4331,7 @@ smbpasswd sambo
Avendo preparato gli utenti (ancora una volta: non si
@@ -3213,11 +4367,47 @@ smbpasswd sambo
#
/etc/init.d/samba restart . Se si deve condividere una risorsa con un numero
+ consistente di utenti e' consigliabile lavorare in
+ termini termini di gruppi piuttosto che elencare la lista
+ degli utenti in valid users. Dopo aver creato il gruppo del quale volete facciano
+ parte i vostri utenti (addgroup
+ nome_gruppo), inserite i
+ vostri utenti nel gruppo (adduser
+ nome_utente nome_gruppo) e modificate la direttiva
+ valid users in
+ smb.conf per riferirsi ad un gruppo
+ piuttosto che a degli utenti. Per riferirsi a un gruppo
+ si usi il carattere @
+ chicciola col nome_del_gruppo: Come testare il servizio Il server di posta che prenderemo in considerazione e'
+ Postfix, a seguire un estratto di un file di configurazione
+ semplice con l'abilitazione delle Maildir
+ nelle /home degli utenti per la consegna della
+ posta: /etc/postfix/main.cf: Per testare il corretto funzionamento del server di
+ posta si puo' procedere in vari modi. Ecco un esempio di una sessione corretta: Postfix e' un server SMTP, di conseguenza se volete che
+ i vostri utenti possano scaricare in locale la
+ posta generalmente volete mettere a loro disposizione un
+ server POP3 o IMAP. Oppure entrambi. Si noti che IMAP necessita delle Maildir, non
+ funziona con le Mailbox in /var/mail/
+ . Per testare il corretto funzionamento del server di
+ posta e' utile avere a disposizione delle utility per
+ inviare e leggere la posta: ovviamente da riga di
+ comando. Se il comando mail non
+ fosse disponibile si installi il pacchetto mailx. Al primo prompt si digitera' l'oggetto, il testo del
+ messaggio (per terminare l'inserimento lasciare una riga
+ vuota, digitare un punto
+ + Invio su una riga vuota), la Carbon
+ Copy (se necessaria). es: Per altrre opzioni si veda la pagina man. Mutt e' uno dei gestori di posta preferiti da chi
+ preferisce utilizzare l'interfaccia testuale per la
+ gestione della posta. Mutt ha un file di configurazione .muttrc
+ nella home dell'utente, alcuni settaggi possono
+ essere utili: Spesso e' utile poter levvere al volo la
+ Mailbox / Maildir di un utente sul server di posta, per
+ controllare se i messaggi vengono recapitati
+ correttamente: In modo analogo si puo' consultare al volo la propia
+ mailbox su un server remoto tramite IMAP/POP: Per mettere a disposizione degli utenti un client web
+ per gestire la propria posta si installi il pacchetto:
+ squirrelmail . Ci sono tanti altri
+ client web disponibili: questo e' particolarmente
+ semplice. Naturalmente dovrete aver installato:
+ php5 apache2
+ . L'interfaccia dovrebbe essere disponibile all'url:
+ http://localhost/squirrelmail . Se
+ cosi' non fosse assicuratevi che Apache abbia incluso il
+ file di configurazione di squirrelmail: Il graylisting e' un sistema relativamente poco
+ invasivo, con un limitato consumo di risorse per limitare
+ lo SPAM in arrivo sul propio server di posta. Come
+ suggerisce il nome e' una via di mezzo tra una white
+ list (una lista di mittenti privilegiata, sempre
+ benvenuti) e una black list (mittenti
+ bannati, banditi dal poter inviare nuovi
+ messaggi). Il funzionamento e' relativamente semplice: ogni
+ mittente sconosciuto viene immediatamente rifiutato con un
+ errore non grave come un server non
+ disponibile, provare piu' tardi. Questo inconveniente
+ non dovrebbe mettere in difficolta' un server di posta /
+ mittente legittimo, che dopo un periodo di attesa tentera'
+ nuovamente di inviare il messaggio ottenendo finalmente il
+ risultato atteso. Diversamente un bot per l'invio
+ di SPAM o un applicazione improvvisata (tipicamente di
+ derivazione virale) che stesse inviando il messaggio
+ probabilmente non insisterebbe, rinunciano ad
+ inviare il messaggio preferendo destinazioni meno
+ problematiche. Installare il pacchetto: postgrey
+ e aggiungere il file di configurazione di Postfix
+ /etc/postfix/main.cf: Inviando un messaggio il client dovrebbe ricevere un
+ iniziale messaggio di rifiuto del messaggio: A lato server si dovrebbe rilevare su /var/log/syslog qualcosa di simile: E' sempre utile poter tracciare qualche statistica
+ sulle percentuali di messaggi ricevuti, da chi, messaggi
+ rifiutati (e per quale motivo). Statistiche che attingono
+ dai soliti log del server di posta /var/log/syslog di default oltre che i
+ dedicati /var/log/mail . Una utility semplice per analizzare l'attivita' del
+ propio server smtp potrebbe essere pflogsumm , installato il pacchetto la
+ si puo' invocare con: oppure utilizzare i log piu' vecchi ad es. /var/log/mail.log.0 In Informatica, nell'ambito delle reti di computer, un
firewall (termine inglese dal significato originario di
parete refrattaria, muro tagliafuoco, muro ignifugo; in
italiano anche parafuoco o parafiamma) e' un componente
- passivo di difesa perimetrale che può anche svolgere
- funzioni di collegamento tra due o piu' tronconi di rete.
- Usualmente la rete viene divisa in due sottoreti: una, detta
- esterna, comprende l'intera Internet mentre l'altra interna,
- detta LAN (Local Area Network), comprende una sezione piu' o
- meno grande di un insieme di computer locali. In alcuni casi
- e' possibile che si crei l'esigenza di creare una terza
- sottorete detta DMZ (o zona demilitarizzata) atta a contenere
- quei sistemi che devono essere isolati dalla rete interna ma
+ passivo di difesa perimetrale che puo anche svolgere funzioni
+ di collegamento tra due o piu' tronconi di rete. Usualmente
+ la rete viene divisa in due sotto reti: una, detta esterna,
+ comprende l'intera Internet mentre l'altra interna, detta LAN
+ (Local Area Network), comprende una sezione piu' o meno
+ grande di un insieme di computer locali. In alcuni casi e'
+ possibile che si crei l'esigenza di creare una terza sotto
+ rete detta DMZ (o zona demilitarizzata) atta a contenere quei
+ sistemi che devono essere isolati dalla rete interna ma
devono comunque essere protetti dal firewall. Una prima definizione chiusa di firewall è la
+ Una prima definizione chiusa di firewall e' la
seguente: Apparato di rete hardware o software che filtra tutti i
@@ -3282,16 +4853,16 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
computer, applicando regole che contribuiscono alla sicurezza
della stessa. In realtà un firewall può essere realizzato con un
+ In realta' un firewall puo' essere realizzato con un
normale computer (con almeno due schede di rete e software
- apposito), può essere una funzione inclusa in un router o
- può essere un apparato specializzato. Esistono inoltre i
+ apposito), puo' essere una funzione inclusa in un router o
+ puo' essere un apparato specializzato. Esistono inoltre i
cosiddetti "firewall personali", che sono programmi
installati sui normali calcolatori, che filtrano solamente i
pacchetti che entrano ed escono da quel calcolatore; in tal
caso viene utilizzata una sola scheda di rete. La funzionalità principale in sostanza è quella di
+ La funzionalita' principale in sostanza e' quella di
creare un filtro sulle connessioni entranti ed uscenti, in
questo modo il dispositivo innalza il livello di sicurezza
della rete e permette sia agli utenti interni che a quelli
@@ -3300,14 +4871,14 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
potendo eseguire su di essi operazioni di: controllo modifica
monitoraggio Questo grazie alla sua capacità di "aprire" il
- pacchetto IP per leggere le informazioni presenti sul suo
- header, e in alcuni casi anche di effettuare verifiche sul
- contenuto del pacchetto. Questo grazie alla sua capacita' di "aprire" il pacchetto
+ IP per leggere le informazioni presenti sul suo header, e in
+ alcuni casi anche di effettuare verifiche sul contenuto del
+ pacchetto. Per implementare un firewall bisogna decidere un aio di
@@ -3366,7 +4937,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
DMZ e MZ, internet, intranet, extranet. Frammentazione
della rete, decidere se diversi reparti di una azienda si
@@ -3398,7 +4969,8 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
Drop o Accept: conseguenze per sicurezza, facilita' di
gestione. Sostanzialmente potremmo distinquere due tipologie di
+ Sostanzialmente potremmo distinguere due tipologie di
hardware: Vantaggi e svantaggi: consumo elettrico, efficenza,
+ Vantaggi e svantaggi: consumo elettrico, efficienza,
flessibilita', strumenti di gestione, sicurezza,
OpenBSD. link:
Iptables lavora su 3 tabelle (tables) di default: Ogni tabella ha delle catene (chains) predefinite
(INPUT, OUTPUT, FORWARD ... ) a cui possono essere
- aggiunte catene custom. Ogni catena è composta da un
+ aggiunte catene custom. Ogni catena e' composta da un
elenco di regole (rules) che identificano pacchetti di
- rete secono criteri diversi (es: -p tcp --dport 80 -d
+ rete secondo criteri diversi (es: -p tcp --dport 80 -d
10.0.0.45) Ogni regola termina con una indicazione
(target) su cosa fare dei pacchetti identificati dalla
regola stessa (es: -j ACCEPT, -j DROP ...) I Match di una regola (rule) servono a testare un
pacchetto per valutare se corrisponda a certe
- caratteriscttiche. I match di possono servire a
- controllare se un pacchetto e' destinato a una porta
- particolare o utilizza un protocollo particolare. Alcuni esempi: Se un pacchetto soddisfa le condizioni del Match
salta (jump) su uno dei target possibili, in
@@ -3539,7 +5111,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
E' quella implicita e predefinita (-t filter) Riguarda
- le attività di filtraggio del traffico. Ha 3 catene
- di default: INPUT - Riguarda tutti i pacchetti destinati al
+ le attivita' di filtraggio del traffico. Ha 3 catene di
+ default: INPUT - Riguarda tutti i pacchetti destinati al
sistema. In entrata da ogni interfaccia. OUTPUT - Riguarda
i pacchetti che sono originati dal sistema e destinati ad
uscire. FORWARD - Riguarda i pacchetti che attraversano il
@@ -3680,7 +5252,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
Se state provando una configurazione del firewall per
@@ -3689,11 +5261,11 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
delle regole dopo qualche minuto. Potreste infatti
inavvertitamente impostare una regola che vi impedisca di
raggiungere la macchina remota, cosi' da non poter neanche
- eliminare quella regola e ripristinare la situazioe
+ eliminare quella regola e ripristinare la situazione
precedente. Veramnete, prima di lavorare sul firewall di
- una macchina remota inpostate almeno un Veramente, prima di lavorare sul firewall di
+ una macchina remota impostate almeno un at now +5 min o con un'oretta di margine per fare
@@ -3707,11 +5279,11 @@ at> [CTR+d]
Il comando iptables viene usato per ogni attivitÃ
- di gestione e configurazione. Il comando iptables viene usato per ogni attivita' di
+ gestione e configurazione. Inserimento regole: Il comando iptables serve per interagire con il
+ framework Netfilter che gestisce il firewall di
+ Linux al livello del kernel. Questo comporta, in modo
+ analogo a quando avviene col comando ifconfig,
+ che i cambiamenti impostati siano in tempo reale,
+ RAM, non persistenti nel sistema: al boot successivo
+ del sistema tutto tornera' alle impostazioni di base (in
+ questo caso nulle, con policy di default settate
+ su ACCEPT per tutto). Le varie invocazioni di iptables potrebbero essere
+ richiamate da degli scripts dedicati, ma fortunatamente e'
+ stata predisposta una apposita utility per gestire questi
+ scripts in modo da avere a disposizione un formato
+ standard per il salvataggio e il ripristino delle
+ regole del firewall. Altro problema: decidere quando attivare / disattivare
+ queste regole. Utilizzare i runlevels non e' una
+ soluzione adeguata: le regole del firewall sono legate
+ all'attivita' delle schede di rete (e un host con diverse
+ schede di rete puo' attivarle a secondo delle esigenze di
+ routing, partenza di servizi es file_sharing per un
+ back-up...): il sistema operativo Debian permette di legare
+ l'esecuzione di comandi alla attivazione di una device di
+ rete (up), dopo la sua attivazione (post-up,
+ utile per devices che richiedono un certo tempo per
+ inizializzarsi: come un tunnel o una connessione punto a
+ punto), prima della sua attivazione (pre-up).
+ Allo stesso modo sono disponibili eventi analoghi per
+ accompagnare la disattivazione dei device di rete: si veda
+ la pagina man di interfaces. Nel nostro caso avremo per una possibile scheda
+ eth0: /etc/network/interfaces Per salvare le regole di iptables attualmente presenti
+ nel kernel si usi il comando: Il contenuto del file dovrebbe essere
+ comprensibile: sostanzialmente sono regole di
+ iptables, senza il comando iptables ripetuto, suddivisi
+ per le varie tabelle. Potete comunque correggere
+ eventuali parametri con un edito di testo. Se non avete un'idea migliore potreste voler tenere
+ gli script dei firewall in una cartella ~/firewall nella home directory
+ dell'utente root. Per ripristinare un set di regole precedentemente
+ salvate con iptables-save si utilizzi iptables-restore. Se questo deve essere
+ fatto in modalita' non interattiva, ad esempio
+ deve essere eseguito dal demone che si occupa di
+ inizializzare le schede di rete, oppure un cron
+ o altro, e' buona norma richiamare i percorsi completi
+ sia dei comandi che dei file: Seguono alcuni esempi sull'uso di iptables, lo scenario
+ e' un computer con un paio di schede di rete fisiche una
+ delle quali collegata alla rete internet l'altra a una rete
+ privata per la LAN interna. Spesso gli script che attaccano
+ automaticamente le varie reti provano a fare un
+ ping per verificare quali IP sono on-line: bloccare il
+ traffico ICMP in ingresso puo' aiutare ad
+ evitare parte di questi attacchi: Il Masquerading a differenza dello
+ SNAT puro (-j
+ SNAT --to-source proprio_ip_pubblico ) legge
+ l'indirizzo ip del device ``ppp0.
+ In questo modo se l'IP cambia automaticamente si aggiorna
+ anche il source natting. Se avete un indirizzo IP statico
+ assegnato al vostro gateway potete invece usare lo SNAT
+ semplice. ## Change source addresses to
+ 1.2.3.4. # iptables -t nat -A POSTROUTING -o eth0 -j
+ SNAT --to 1.2.3.4 ## Change source addresses to 1.2.3.4, 1.2.3.5 or
+ 1.2.3.6 # iptables -t nat -A POSTROUTING -o eth0 -j
+ SNAT --to 1.2.3.4-1.2.3.6 ## Change source addresses to
+ 1.2.3.4, ports 1-1023 # iptables -t nat -A
+ POSTROUTING -p tcp -o eth0 -j SNAT --to
+ 1.2.3.4:1-1023 Per limitare attacchi di tipo brute force su SSH: sintassi: in monospace :
@@ -1361,11 +1690,11 @@ cache_dir aufs /var/spool/squid3 300 24 256
2.1.2 TAG:
+ "#id21">2.1.2 TAG:
maximum_object_size
2.1.3 TAG: cache_mem
+ "#id22">2.1.3 TAG: cache_mem
2.1.4 TAG:
+ "#id23">2.1.4 TAG:
minimum_object_size
2.2 Negoziazione degli accesi al
+ "#id24">2.2 Negoziazione degli accesi al
servizio
Dopodiche l'accesso (
2.2.1 ACL e http access
+ "#id25">2.2.1 ACL e http access
2.3 Testare Squid
+ "#id26">2.3 Testare Squid
2.3.1 Client: ~/.wgetrc
+ "#id27">2.3.1 Client: ~/.wgetrc
2.3.2 Server:
+ "#id28">2.3.2 Server:
access.log
3 Apache
+ "#id29">3 Apache
3.1 Pacchetti da
+ "#id30">3.1 Pacchetti da
installare::
@@ -1671,12 +2000,12 @@ wget http://www.google.it
3.2 Configurazione di
+ "#id31">3.2 Configurazione di
Apache
3.3 apache.conf
+ "#id32">3.3 apache.conf
3.4 Installazione di PHP
+ "#id33">3.4 Installazione di PHP
3.4.1 Test del modulo
+ "#id34">3.4.1 Test del modulo
php
<?php phpinfo() ; ?>
@@ -1816,21 +2145,21 @@ wget http://www.google.it
3.4.2 Installazione del supporto
+ "#id35">3.4.2 Installazione del supporto
per Mysql
3.4.3 phpmyadmin
+ "#id36">3.4.3 phpmyadmin
- 3.4.4 Installazione del supporto
+ "#id37">3.4.4 Installazione del supporto
per Postgresql
3.4.5 phppgadmin
+ "#id38">3.4.5 phppgadmin
3.5 Virtual hosts
+ "#id39">3.5 Virtual hosts
@@ -1929,13 +2258,13 @@ php5-pgsql phppgadmin
@@ -1955,11 +2284,11 @@ php5-pgsql phppgadmin
-
3.5.1 Gestione DNS
+ "#id40">3.5.1 Gestione DNS
@@ -1967,7 +2296,7 @@ php5-pgsql phppgadmin
+
+
# dig 177.piffa.net
@@ -2013,15 +2345,10 @@ php5-pgsql phppgadmin
;; ANSWER SECTION:
177.piffa.net. 0 IN A 10.10.208.177
-
-;; Query time: 12 msec
-;; SERVER: 10.10.208.254#53(10.10.208.254)
-;; WHEN: Wed May 6 12:27:08 2009
-;; MSG SIZE rcvd: 47
- 3.5.2 Virtual host
+ "#id41">3.5.2 Virtual host
@@ -2054,8 +2383,8 @@ php5-pgsql phppgadmin
"pre"><VirtualHost \*:80 >
La prima riga indica l'inizio della stanza relativa al
- nostro virtual host, che ascolotera' su qualunque
- indirizzo ip (nel caso il server abbia piu' indirizzi
+ nostro virtual host, che ascoltera' su qualunque
+ indirizzo IP (nel caso il server abbia piu' indirizzi
dai quali e' raggiungibile) sulla porta 80.
@@ -2063,7 +2392,7 @@ php5-pgsql phppgadmin
3.6 Negoziazione accessi
+ "#id42">3.6 Negoziazione accessi
3.6.1 Limiti su base ip
+ "#id43">3.6.1 Limiti su base IP
-
<VirtualHost *:80 >
# ...
<Directory "/var/www/177.piffa.net">
- Order allow,deny
- Allow from all
+ Order allow,deny
+ Allow from all
</Directory>
</VirtualHost>
@@ -2182,10 +2511,11 @@ php5-pgsql phppgadmin
questo modo:
<VirtualHost *:80 >
+ # ...
<Directory "/var/www/177.piffa.net">
- Order allow,deny
- Allow from all
- Deny from 192.168.0.1
+ Order allow,deny
+ Allow from all
+ Deny from 192.168.0.1
</Directory>
</VirtualHost>
@@ -2207,40 +2537,43 @@ php5-pgsql phppgadmin
directory /limitata Si tenga pero' conto che e'
relativamente facile per un malintenzionato cambiare il
- propio indirizzo ip, oppure collegarsi da un altra zona.
+ proprio indirizzo IP, oppure collegarsi da un altra zona.
Meno facile e' accedere ad una classe privata trovandosi
- all'esterno di questa, ma e' comunque possibile mandare
- delle richieste GET per cercare di mandare in Denial Of
- Service il webserver.
+ all'esterno di questa, ma ci sono comunque soluzioni piu'
+ eleganti.
3.7 User Authentication
-
- 3.7.1 Definire la
+ "#id45">3.7.1 Definire la
cartella
3.7.2 Creazione del database
+ "#id46">3.7.2 Creazione del database
delle passwords
3.7.3 Configurazione di
+ "#id47">3.7.3 Configurazione di
Apache
-# Questo file viene incluso
-# nella configurazione del sito web
# Messaggio visualizzato al prompt per l'autenticazione
AuthName "Area privata soggetta ad autentizazione"
# tipo di autenticazione da usarsi
AuthType Basic
-# File generato precedentemente con htpasswd
+# File precedentemente generato con htpasswd
AuthUserFile /home/utente/passwords
# Negoziazione degli accessi
@@ -2360,12 +2694,47 @@ require valid-user
3.8 Cavets
+
+
+
+
+
+
+
+staff:andrea sara
+studenti: lucap federico luca
+
+
+ 3.8 Cavets
4 Domain Name System
+ "#id49">4 Domain Name System
+ Un Registar e' un operatore che ha la facolta'
+ (accreditamento da parte dell ICANN) di registrare i domini
+ di secondo livello per gli utenti finali, dietro compenso
+ di una modica cifra (una decina di euro) che vale come
+ contributo su base annuale per il mantenimento
+ dell'infrastruttura.
+
+
+ 4.1 Risoluzione Inversa
+
+
+
+ 4.1 Nomi di dominio
+ "#id51">4.2 Nomi di dominio
4.2 Tipologie di record
+ "#id52">4.3 Tipologie di record
4.3 Utilizzo
+ "#id53">4.4 Utilizzo
4.4 Risoluzione dei nomi di
+ "#id54">4.5 Risoluzione dei nomi di
dominio
4.5 Dig
+ "#id55">4.6 Dig
$ dig www.google.it
@@ -2617,8 +3086,8 @@ l.google.com. 80856 IN NS g.l.google.com.
4.6 resolv.conf
+ "#id56">4.7 resolv.conf
-- ``nameserver``: indica il nameserver da utilizzare, indicato con l'indirizzo ip.
-- ``domain``: indica il nome di dominio della rete attuale, vedi voce sucessiva.
+
+
+
+
4.7 /etc/hosts
+ "#id57">4.8 /etc/hosts
4.8 Hostname
+ "#id58">4.9 Hostname
-
* Squid: ``visible_hostname``
* Postfix: ``myhostname``
+
+ 5 DNSmasq
+ "#id59">5 DNSmasq
5.1 Configurazione
+ "#id60">5.1 Configurazione
5.2 DHCP
+ "#id61">5.2 DHCP
- 5.3 DNS cache
+ "#id62">5.3 DNS cache
-
-nameserver 127.0.0.1
-
+
+ nameserver 127.0.0.1
+
6 Bind : DNS Autoritativo
+
+
+bind9
+
+
+ 6.1 DNS cache
+
+
+forwarders {
+ 10.10.208.254;
+ };
+
+
+
+// Se il proprio server ha IP 10.10.208.254
+// sulla rete LAN privata:
+listen-on { 10.10.208.254; }
+
+
+
+acl "localnet" {
+ 10.10.208.0/24 ; 127.0.0.0/8 ;
+ } ;
+
+
+
+allow-query {"localnet" ;} ;
+
+ 6.2 Ospitare una zona
+
+ 6.2.1 named.conf.local
+
+
+/
+// Do any local configuration here
+//
+
+// Consider adding the 1918 zones here, if they are not used in your
+// organization
+//include "/etc/bind/zones.rfc1918";
+
+zone "piffa.net" {
+ type master;
+ file "/etc/bind/pz/piffa.net";
+ }
+
+
+
+
+ 6.2.2 Configurazione della
+ zona
+
+
+; Zona per il dominio di secondo livello piffa.net
+
+$TTL 3D ; 3 days
+@ IN SOA ns1.piffa.net. hostmaster.piffa.net. (
+ 200905245 ; serial
+ 8H ; refresh (8 hours)
+ 2H ; retry (2 hours)
+ 4W ; expire (4 weeks)
+ 1D ; minimum (1 day)
+ )
+;
+ NS ns1
+ NS ns2
+ A 94.23.63.105
+ MX 10 smtp
+ TXT "Piffanet main site"
+;
+ns1 A 94.23.63.105
+ns2 A 65.98.21.97
+zoo A 94.23.63.105
+smtp A 94.23.63.105
+test.piffa.net. A 94.23.63.105
+*.piffa.net. A 94.23.63.105 ; *catch all domain
+www CNAME zoo
+ftp CNAME zoo
+
+
+
+$TTL 3D ; 3 giorni: default se non specificato altrimenti
+rapido 5h IN A 94.23.63.105 ; usa un TTL di 5 ore
+lento 3w IN A 94.23.63.105 ; usa un TTL di 3 settimane
+normale IN A 94.23.63.105 ; usa il TTL di default: 3 giorni
+
+
+ 6.2.2.1 SOA: Start of
+ Authority Record
+
+
+
+ 6.2.2.2 Altri campi:
+
+
+
+ 6.3 DNS slave
+
+
+zone "piffa.net" {
+ type slave;
+ file "/etc/bind/pz/piffa.net";
+ masters { 192.168.0.1; };
+ };
+
+
+
+... slave named[2256]: zone piffa.net/IN: loaded serial 200905245
+... slave named[2256]: running
+... slave named[2256]: zone piffa.net/IN: sending notifies (serial 200905245)
+... slave named[2256]: client 192.168.0.1#1464: received notify for zone 'piffa.net'
+... slave named[2256]: zone piffa.net/IN: notify from 192.168.0.1#1464: zone is up to date
+
+
+ 6.4 Aggiornamento dinamico:
+ nsupdate
+
+ 6.4.1 Configurazione client
+ (nsupdate)
+
+
+dnssec-keygen -a HMAC-MD5 -b 512 -n USER home.piffa.net.
+
+
+ 6.4.2 Configurazione server:
+ riconoscimento chiave
+
+
+
+
+
+
+ 6.4.3 Server: gestione
+ dell'intera zona
+
+
+zone "piffa.net" {
+ type master;
+ file "/etc/bind/pz/piffa.net" ;
+ allow-update {
+ key home.piffa.net;
+ };
+};
+
+
+
+
+
+
+apt-get install ntpdate
+ntpdate-debian
+
+
+
+# nsupdate -k Khome.piffa.net.+157+04331.private -v
+> server ns1.piffa.net
+> update add home.piffa.net. 86400 A 192.168.0.2
+> show
+Outgoing update query:
+;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
+;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
+;; UPDATE SECTION:
+home.piffa.net. 86400 IN A 192.168.0.1
+
+
+> send
+
+
+ 5.4 DHCPd
+ "#id75">6.5 Link suggeriti:
-
+
6 Samba
+ "#id76">7 Samba
6.1 Pacchetti
+ "#id77">7.1 Pacchetti
samba-client
@@ -2984,7 +4138,7 @@ samba-client
samba smbfs smbclient
-
[2]
+ "#id5">[2]
Anche se nato per i sistemi Windows, Samba puo'
essere usato anche per montare cartelle sotto
@@ -3022,7 +4176,7 @@ dpkg-reconfigure samba-common
6.2 Passwords e
+ "#id78">7.2 Passwords e
autenticazione
6.3 Creazione Utenti
+ "#id79">7.3 Creazione Utenti
6.4 Creare la
+ "#id80">7.4 Creare la
condivisione
6.4.1 Sicurezza: permessi di
+ "#id81">7.4.1 Sicurezza: permessi di
esecuzione sul server
6.5 Configurazione
+ "#id82">7.5 Configurazione
dell'applicativo Samba vero e proprio.
7.5.1 Creazione di un
+ gruppo
+
+
+# Negoziazione degli accessi su base gruppo
+valid users = @nome_gruppo
+
+ 6.6 Testare il Servizio
+ "#id84">7.6 Testare il Servizio
8 Server di posta: Postfix
+
+
+# ...segue dalla riga ~30
+myhostname = 162.piffa.net
+alias_maps = hash:/etc/aliases
+alias_database = hash:/etc/aliases
+myorigin = 162.piffa.net
+mydestination = 162.piffa.net, localhost
+# Se non avete un ip pubblico e statico, con un adeguato record PTR
+# dovrete usare un realy host per l'invio della posta
+relayhost = smtp.piffa.net
+
+mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
+# Se dovete inviare la posta per i client della vostra LAN privata:
+# mynetworks = 127.0.0.0/8 192.168.0.0/24 [::ffff:127.0.0.0]/104 [::1]/128
+# E si faccia BEN ATTENZIONE a non diventare un open realay smtp
+
+
+# Per effettuare lo storaggio della posta nelle home directory degli utenti
+# in una Maildir invece che nella Mailbox in /var/mail/nome_utente
+# si disabiliti procmail
+#mailbox_command = procmail -a "$EXTENSION"
+
+# cartella_i abiliti lo storaggio della posta nella Maildir/ (si noti lo slash)
+# all'interno della home dell'utente:
+home_mailbox = Maildir/
+mailbox_size_limit = 0
+recipient_delimiter = +
+inet_interfaces = all
+
+
+
+
+
+ 8.1 Test del server smtp
+
+
+
+
+ 8.1.1 Swaks
+
+
+
+
+
+swaks --to andrea@piffa.net from andrea@mydomain.com
+=== Trying smtp.piffa.net:25...
+=== Connected to smtp.piffa.net.
+<- 220 zoo.piffa.net ESMTP Postfix (Debian/GNU)
+ -> EHLO alice.mydomain.com
+<- 250-zoo.piffa.net
+<- 250-PIPELINING
+<- 250-SIZE 10240000
+<- 250-VRFY
+<- 250-ETRN
+<- 250-STARTTLS
+<- 250-ENHANCEDSTATUSCODES
+<- 250-8BITMIME
+<- 250 DSN
+ -> MAIL FROM:<root@alice.mydomain.com>
+<- 250 2.1.0 Ok
+ -> RCPT TO:<andrea@piffa.net>
+<- 250 2.1.5 Ok
+ -> DATA
+<- 354 End data with <CR><LF>.<CR><LF>
+ -> Date: Thu, 28 May 2009 13:11:19 +0200
+ -> To: andrea@piffa.net
+ -> From: root@alice.mydomain.com
+ -> Subject: test Thu, 28 May 2009 13:11:19 +0200
+ -> X-Mailer: swaks v20061116.0 jetmore.org/john/code/#swaks
+ ->
+ -> This is a test mailing
+ ->
+ -> .
+<- 250 2.0.0 Ok: queued as 41FB261AFC
+ -> QUIT
+<- 221 2.0.0 Bye
+=== Connection closed with remote host.
+
+ 8.2 Imap e pop
+
+
+
+
+ 8.3 Client a riga di
+ comando
+
+ 8.3.1 mailx
+
+
+
+
+
+mail andrea@localhost
+Subject: Oggetto della mail
+Testo del messagio,
+per terminare il messaggio
+lasciare una riga vuota
+e un punto (poi Invio).
+
+.
+Cc:
+
+
+ 8.3.2 Mutt
+
+
+
+
+
+mutt -f /var/mail/utente
+mutt -f /home/utente/Maildir
+
+
+
+mutt -f imap://nome_utente@piffa.net
+
+ 8.3.3 Web client
+
+
+cd /etc/apache2/conf.d/
+ln -s /etc/squirrelmail/apache.conf ./squirrelmail.conf
+
+ 8.4 Graylisting
+
+ 8.4.1 Abilitazione in
+ Postfix
+
+
+smtpd_recipient_restrictions =
+ permit_mynetworks,
+ reject_unauth_destination,
+ check_policy_service inet:127.0.0.1:60000
+
+ 8.4.2 Test
+
+
+swaks --to andrea@piffa.net from andrea@mydonain.com
+=== Trying smtp.piffa.net:25...
+=== Connected to smtp.piffa.net
+...
+<- 250 2.1.0 Ok
+ -> RCPT TO:<andrea@piffa.net>
+<** 450 4.2.0 <andrea@piffa.net>: Recipient address rejected:
+Greylisted, see http://postgrey.schweikert.ch/help/piffa.net.html
+ -> QUIT
+<- 221 2.0.0 Bye
+=== Connection closed with remote host.
+
+
+
+connect from alice.mydomain.com[65.98.21.97]
+May 28 14:53:34 r24266 postgrey: action=greylist, reason=new,
+ client_name=alice.mydomain.com,
+ client_address=10.0.0.1, sender=root@alice.mydomain.com, recipient=andrea@piffa.net
+May 28 14:53:34 r24266 postfix/smtpd[22538]:
+ NOQUEUE: reject: RCPT from alice.mydomain.com[10.0.0.1]:
+ 450 4.2.0 <andrea@piffa.net>: Recipient address rejected: Greylisted,
+ see http://postgrey.schweikert.ch/help/piffa.net.html;
+ from=<root@alice.mydomain.com> to=<andrea@piffa.net>
+ proto=ESMTP helo=<alice.mydomain.com>
+May 28 14:53:34 r24266 postfix/smtpd[22538]: disconnect from alice.mydomain.com[10.0.0.1]
+
+ 8.4.3 Statistiche
+
+
+pflogsumm.pl /var/log/mail.log
+
+
+ 7 Firewall
+ "#id97">9 Firewall
7.1 Links
+ "#id98">9.1 Links
7.2 Ipfilter
+ "#id99">9.2 Ipfilter
@@ -3357,7 +4928,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
7.3 Progettazione di un
+ "#id100">9.3 Progettazione di un
firewall
7.3.1 Collocazione
+ "#id101">9.3.1 Collocazione
7.3.2 Policy di default
+ "#id102">9.3.2 Policy di
+ default
7.3.3 Hardware
+ "#id103">9.3.3 Hardware
-
@@ -3425,7 +4997,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
uso del server stesso e della rete connessa.
- 7.4 Percorso dei pacchetti tra
+ "#id104">9.4 Percorso dei pacchetti tra
tabelle e catene
7.5 Concetti di base
+ "#id105">9.5 Concetti di base
7.5.1 Tabelle, catene,
+ "#id106">9.5.1 Tabelle, catene,
regole
7.5.2 Match
+ "#id107">9.5.2 Match
7.5.3 Targets
+ "#id108">9.5.3 Targets
Redirige il pacchetto ad una porta locale.
- Usabile solo in nat / PREROUTING e nat / OUTPUT è
+ Usabile solo in nat / PREROUTING e nat / OUTPUT e'
previsto per fare un transparent proxy (con proxy
server in esecuzione sulla macchina con
iptables)
@@ -3621,9 +5193,9 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
"option">-j RETURN
Interrompe l'attraversamento della catena. Se
- questa è una secondaria, il pacchetto torna ad
+ questa e' una secondaria, il pacchetto torna ad
attraversare la catena madre da punto in cui aveva
- fatto il salto nella secondaria. Se il RETURN è in
+ fatto il salto nella secondaria. Se il RETURN e' in
una delle catene di default, il pacchetto
interrompe l'attraversamento e segue la policy di
default.
@@ -3644,7 +5216,7 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
"option">-j MIRROR
Curioso e sperimentale, questo target invia un
- pacchetto speculare al mittente. In pratica è come
+ pacchetto speculare al mittente. In pratica e' come
se facesse da specchio per tutti i pacchetti
ricevuti. Da usare con cautela, per evitare
attacchi DOS indiretti.
@@ -3656,11 +5228,11 @@ mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
7.6 Tabella Filter
+ "#id109">9.6 Tabella Filter
7.7 Flush automatico per macchine
+ "#id110">9.7 Flush automatico per macchine
remote
7.8 Gestione regole
+ "#id111">9.8 Gestione regole
(rules)
- 9.9 Salvataggio regole
+
+
+iface eth1 inet static
+ up /sbin/iptables-restore /root/firewall/basic_fw
+ # Seguono i soliti parametri della scheda di rete
+ address 10.10.208.21
+
+
+ 9.9.1 Iptables-save
+
+
+# iptables-save >> /root/firewall/basic_fw
+
+
+ 9.9.2 Iptables-restore
+
+
+/sbin/iptables-restore /root/firewall/basic_fw
+
+ 9.10 Esempi
+
+
+
+
+
+
+ 9.10.1 Bloccare i ping
+ dall'esterno
+
+
+iptables -A INPUT -i ppp0 -p ICMP -j DROP
+
+ 9.10.2 Masquerading
+ (sNAT)
+
+
+
+
+
+
+ 9.10.3 Brute force
+
+
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --update --seconds 3000 --hitcount 4 --name DEFAULT --rsource -j DROP
+
+iptables -A INPUT -i ppp0 -p tcp -m tcp --dport 22 -m state --state NEW -m recent --set --name DEFAULT --rsource
+
+ 8 NOTE
+ "#id119">10 NOTE
-
-
+
+
+
+