X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=servizi.html;h=5be409b816f9c3afb3eaafec3d5d0481b33d385e;hb=f32b9711a14936139aa89c128ae65ca19996ab96;hp=d601518b00d998057d08a64c20af4622876aed6d;hpb=97f4ba942464b0c2eaed433d8d45a57bc4d179b8;p=doc%2F.git diff --git a/servizi.html b/servizi.html index d601518..5be409b 100644 --- a/servizi.html +++ b/servizi.html @@ -4,7 +4,7 @@
+ "HTML Tidy for Linux/x86 (vers 25 March 2009), 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; + } + pre.literal-block { + overflow: auto; + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; + } - 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; + text-align: justify; + 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; + } @@ -295,8 +254,9 @@-@@ -319,18 +279,22 @@
Version: -0.4 +0.94
Questa guida e' dedicata agli studenti delle lezioni di - informatica tenute da Andrea nel lab208. Nella parte iniziale - sono presenti alcuni richiami alle impostazioni di rete e di - installazione del laboratorio 208 (lab208) dove generalmente si - tengono le lezioni. Questi parametri non sono interessanti per - chiunque si trovasse al di fuori della rete piffa.net .
+Questa guida tratta la configurazione di base dei principali + servizi di rete utilizzati con sistemi operativi Unix + e derivati come GNU/Linux per gli studenti dei corsi + per amministratori di rete in ambiente GNU/Linux. In + particolare questa guida e' stata scritta usando come + riferimento la distribuzione Debian GNU/Linux. Gli + esempi presentati dovrebbero quindi essere direttamente + utilizzabili anche su distribuzioni derivate da Debian come + Ubuntu, per sistemi operativi diversi si presti attenzione ai + percorsi dei file citati.
Indice degli argomenti
@@ -338,321 +302,896 @@Generato con: http://docutils.sourceforge.net/rst.html
+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! )
-Parametri della rete attualmente in uso:
+Parametri della rete | -|
rete | +10.10.208.0/24 | -
netmask | +255.255.255.0 | -
broadcast | +10.10.208.255 | -
gateway | +10.10.208.254 | -
gateway | +10.10.208.250 persistente | -
DNS | +10.10.208.254 | -
DNS | +10.10.208.250 persistente | -
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 ;) .
-Generato il 2010-02-09 con: http://docutils.sourceforge.net/rst.html
+ +Impostazioni di base per la configurazione del sistema + operativo e della rete nel laboratorio 208 facente parte + della rete piffa.net .
+ +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.248:3128 saprete che si tratta + del nostro proxy http in ascolto sulla porta + 3128, stara' quindi a voi sostituire i dati + con gli equivalenti IP della vostra rete.
+Parametri della rete attualmente in uso:
+ +Parametri della rete | +|
rete | + +10.10.208.0/24 | +
netmask | + +255.255.255.0 | +
broadcast | + +10.10.208.255 | +
gateway | + +10.10.208.248 | +
DNS | + +10.10.208.248 | +
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 ++ +
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
@@ -666,7 +1205,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.
- -Scaricare il pacchetto xtightvncviewer e lo script guarda.sh - in una posizione (collocazione nel path degli - utenti, es echo $PATH per - visualizzare l'attuale path ) comoda per gli utenti ( in - genere /bin ), rndere eseguibile lo script.
+ controllo remoto e servono per amministrare un computer a + distanzai. Nel nostro caso la VNC sara' utilizzata per + visualizzare la sessione di lavoro di un altro computer sul + proprio a scopo didattico. + +Per collegarvi al server del docente usate lo script + guarda.sh che dovrebbe gia essere + disponibili sui sistemi preconfigurati, oppure potete + invocare direttamente il collegamento con:
++xtightvncviewer -viewonly 10.10.208.177:1 ++ +
Se il comando non fosse disponibile installate il + pacchetto xtightvncviewer. Potete anche scaricare + lo script guarda.sh e renderlo eseguibile, ed + eventualmente creare una voce nel menu di KDE per + richiamarlo.
Procedura:
su root -cd /bin -wget http://debian.piffa.net/guarda.sh +cd /usr/local/bin +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 /usr/local/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 @@ -869,7 +1483,7 @@ exit
I pacchetti installati generalmente kde-core e' piu' leggero del
pacchetto kde, esiste anche un equivalente
- gnome-core gnome e il log-in manager
+ "pre">kde. Esiste un equivalente
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.
@@ -908,7 +1521,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,
@@ -947,7 +1560,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 trasparente.1.7 Apt configurazione
+ "#id17">1.7 Apt configurazione
1.7.1 sources.list
+ "#id18">1.7.1 sources.list
1.7.2 /etc/apt/apt.conf
+ "#id19">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";
Apache HTTP Server, o più comunemente Apache, e' il nome - dato alla piattaforma server Web modulare più diffusa (ma - anche al gruppo di lavoro open source che ha creato, - sviluppato e aggiornato il software server), in grado di - operare da sistemi operativi UNIX-Linux e Microsoft.
+ "#id20">2 Squid + +Squid e' un proxy cache http (ma puo' anche gestire i + protocolli FTP e https) robusto e strutturato, grazie alla + sua flessibilita' puo' essere utilizzato sia in piccole reti + locali che in scenari piu' complessi. E' molto semplice + configurarlo per la semplice condivisione della + navigazione internet all'interno di una rete locale, per + poi poter sucessivamente implementare la autenticazione degli + utenti, 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'), il + bilanciamento del carico tra piu' server proxy.
+ +Se il server Squid e' in grado di accedere a internet + puor' 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 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 accessibile dai clients + dato che sara' il solo Squid a risolvere i nomi di dominio + per i suoi client http.
+ +Inoltre Squid svolge la funzione di anonymizer: + nasconde i client http alla rete internet: e' solo il server + proxy ad accedere ai server web frequentati dai client: + questi non sono percepiti ed esposti all'esterno della rete + locale ma si relazionano solo con Squid. Dal punto di vista + della sicurezza della rete locale questo e' preferibile ad un + approccio alla navigazione basato su NAT.
+ +Squid ascolta di default sulla porta 3128, per + quanto in genere la porta preferita per i servizi di caching + http sia la 8080. Per utilizzarlo subito anche per apt + si aggiunga ad /etc/apt/apt.conf
++Acquire::http::Proxy "10.10.208.254:3128"; +-
Un server web e' un processo, e per estensione il computer - su cui è in esecuzione, che si occupa di fornire, su - 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 più - utilizzati di Internet.
+Per installare Squid si usi il pacchetto:
++squid3 +-
- apache2 apache2-doc -+
egue un estratto delle direttive principali viste in + aula presenti nel file di configurazione /etc/squid3/squid.conf .
-Con la release 2.0 di Apache viene automaticamente resa - disponibile anche la versione SSL (Secure Socket Layer, - cpnnessioni criptate ) del web server.
-Cache dir serve per impostare caratteristiche + fondamentali della cache creata sul supporto di storaggio + quali dimensione e percorso nel file-system. Essendo la + dimensione di default della cache pari a ~``100 MB`` e' + altamente consigliabili aumentare questo parametro se si + vuole godere dei vantaggi della funzione di cache per + piu' clients.
+ +Per stabilire il dimensionamento della cache si tenga + conto dello spazio disponibile, dimensioni tipiche e + massime degli oggetti che si vuole tenere in cache (un + solo file .iso occupa circa 700 + MB, il pacchetto + Openoffice.org circa 150 MB, un pacchetto Debian circa 20 + MB), e in fine del numero dei client.
+ +Si presti poi attenzione alla natura dei dati che + saranno salvati nella cache: sono tutti dati facilmente + sostituibili (gli originali sono on-line) la cui perdita + causerebbe solo la necessita' di ripopolare la cache. + Questo rende la cache di Squid un possibile candidato ad + un RAID stirpe (livello 0) a ad un file system che + prediliga le performance a scapito della consistenza, 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 momento in cui per voi non sia piu' + importante garantire la disponibilita' del servizio: se + il RAID stripe dovesse rompersi gli utenti non potrebbero + piu' navigare, cosa che per natura dello stripe e' piu' + probabile rispetto ad un filesytem normale.
+ +I dati che compongono la cache vengono salvati sul + filesytem del server dietro richiesta dei client http + degli utenti della rete locale. Come per i servizi di + file sharing o per la posta elettronica non c'e' motivo + che il filesystem su cui sono ospitati questi dati + abbiano i privilegi di eseguibilita' o suid (in genere + si possono anche usare opzioni come noatime per rendere + i file-systems piu' veloci, scegliere di utilizzare un + journal dipende dalla dimesione della cache dalle + preferenze: affidabilita' oppure prestazioni):
+ +/etc/fstab
++... +# Filesystem per Squid http cache +/dev/md3/ /var/spool/squid/ ext2,noexec,nosuid,noatime 0 3 ++
I file di configurazione di apache si trovano nella - cartella: /etc/apache2 e sono strutturati come - descritto nel file /usr/share/doc/apache2/README.Debian.gz - . Sostanzialmente lo schema e' il seguente:
+Ora possiamo impostare la cache nel file di + configurazione /etc/squid3/squid.conf:
++#TAG: cache_dir (riga 1628) +# Usage: +# +# cache_dir Type Directory-Name Fs-specific-data [options] +# +# You can specify multiple cache_dir lines to spread the +# cache among different disk partitions. +# ... +#Default: +# cache_dir ufs /var/spool/squid3 100 16 256 +cache_dir aufs /var/spool/squid3 300 24 256 +# | | | | secondo livello di directory +# | | | directory primo livello +# | | dimensione in MB +# | path della cache +# algoritmo +-
Se si modifica la struttura della cache di Squid, ad + esempio variando il numero delle directory, puo' essere + opportuno cancellare e rigenerare la cache. 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:
++# /etc/init.d/squid3 stop +# rm -r /var/spool/squid3/?? +# squid3 -z +# /etc/init.d/squid3 start ++
File di configurazione principale del - servizio.
+httpd.conf e' il vecchio file di - configurazione di Apache1, presente per motivi di - retrocompatibilita' e' generalemente vuoto.
- +Questa direttiva imposta la dimensione massima degli + oggetti che vengono salvati sul supporto di storaggio, + oggetti di dimensioni superiori saranno comunque + scaricati ma non tenuti in cache.
-TAG: maximum_object_size (1760):
++# TAG: maximum_object_size (1760) +# Objects larger than this size will NOT be saved on disk. The +# value is specified in kilobytes, and the default is 4MB. If +# you wish to get a high BYTES hit ratio, you should probably +# increase this (one 32 MB object hit counts for 3200 10KB +# hits). If you wish to increase speed more than your want to +# save bandwidth you should leave this low. +# +# NOTE: if using the LFUDA replacement policy you should increase +# this value to maximize the byte hit rate improvement of LFUDA! +# See replacement_policy below for a discussion of this policy. +# +#Default: +# maximum_object_size 4096 KB +maximum_object_size 150 MB ++
Cache_mem imposta quanta memoria RAM + venga dedicata alla cache di Squid. Si consideri non solo + quanta RAM sia disponibile sul sistema, ma anche quale + sia l'utilizzo tipico di questo: altri servizi + fondamentali necessitano di molta memoria?
+ +Questo parametro per altro influisce sulle prestazioni + e sul degrado dei supporti di storaggio (sopratutto se + magnetici). Ad esempio se si stanno utilizzando dischi + rigidi esterni USB per la cache sara' preferibile cercare + di usare quanta piu' RAM possibile per evitare il + sovraccarico computazionale dovuto alla gestione dello + stack USB, fenomeno evidente sui sistemi embedded come + NAS.
+ +Se si stesse pensando di usare dell'hardware + embedded a basse prestazioni / consumo per + realizzare un server gateway / NAT / Squid si tenga + presente che Squid e' relativamente esoso di risorse + rispetto agli altri servizi: avra' bisogno di ~25MB + (MegaByte) di RAM e ~150MHZ di CPU ARM per + servire decorosamente una decina di client http su una + rete ethernet 10/100. In questo caso non fate scendere + cache_mem sotto i 2/4 + MB pena un accesso continuo + al supporto di storaggio.
-Se invece si disponesse di una macchina dedicata a + Squid con gigabytes di RAM non si esiti a dedicarne buona + parte a cache_mem.
-TAG: cache_mem (1566):
++# 'cache_mem' specifies the ideal amount of memory to be used +# for: +# * In-Transit objects +# * Hot Objects +# * Negative-Cached objects +#Default: +# cache_mem 8 M +cache_mem 100 M ++
Questo parametro imposta la dimensione minima degli + oggetti salvati nella cache. Settato a 0 o a + valori molto piccoli puo' influire negativamente sulla + frammentazione del filesytem e consumare un numero + elevato di inode (cosa non piu' importante con + ext4 o altri filesytem).
+ +In scenari con connessioni molto veloci ( >~10Mb), + pochi client (una decina) e server poco performanti nella + velocita' di accesso ai filesystem ( ~20MB/s, per quanto + il limte sia piuttosto il seek-time ) tenere in + cache i file piu' piccoli finisce per aumentare la + latenza della navigazione.
+ +TAG: minimum_object_size:
++# TAG: minimum_object_size (bytes) +# Objects smaller than this size will NOT be saved on disk. The +# value is specified in kilobytes, and the default is 0 KB, which +# means there is no minimum. +# +#Default: +# minimum_object_size 0 KB +minimum_object_size 0 KB ++
Squid fa parte di quei servizi suscettibili di diventare + un open relay, sara' quindi necessario prestare attenzione + a delimitare la rete che puo' accedere al servizio.
+ +Generalmente non volete che il vostro proxy http venga + usato da persone sconosciute ed esterne alla vostra rete, + le quali sostanzialmente navigherebbero sotto + l'identita' del vostro proxy (probabilmente per + visionare materiali che non vorrebbero fossero ricondotti + direttamente a loro) generando traffico e consumando banda + della vostra connessione a internet. Tenere Squid in + modalita' Open relay e' al giorno d'oggi un buon + modo per essere inseriti in una black list.
+ +Per poter limitare gli accessi a Squid dal punto di + vista dell'applicazione (quarto livello TCP/IP) si + identifichera' inizialmente l'entita' rete locale + (es: localnet) con una ACL di tipo + src (indirizzi IP sorgenti) indicando la + classe / range di IP della nostra rete.
+ ++ Dopodiche l'accesso (http_access) si concedera' + (allow) a questa entita' (es: localnet) negando chiunque altro. ++ +
Per maggiori dettagli sulla sintassi utilizzabile per + esprimere i range di IP: + http://www.visolve.com/squid/squid24s1/access_controls.php
+ +E' poi sempre possibile tenere il proxy in ascolto su un + solo indirizzo IP, nel caso si disponga di piu' device di + rete, oppure settare un IP firewall per limitare il + traffico in base al protocollo IP.
+ +Si proceda a creare una ACL di + tipo src per identificare la nostra rete + locale, poi si abiliti l'accesso a questa con la + direttiva http_access. Tutto quanto non e' + espressamente autorizzato viene poi negato da un + http_access deny + all finale.
++# TAG: acl +# Defining an Access List +# +# Every access list definition must begin with an aclname and acltype, +# followed by either type-specific arguments or a quoted filename that +# they are read from. +# ... +# ***** ACL TYPES AVAILABLE ***** +# +# acl aclname src ip-address/netmask ... # clients IP address +# riga 588 + +# Example rule allowing access from your local networks. +# Adapt to list your (internal) IP networks from where browsing +# should be allowed +#acl localnet src 10.0.0.0/8 # RFC1918 possible internal network +#acl localnet src 172.16.0.0/12 # RFC1918 possible internal network +#acl localnet src 192.168.0.0/16 # RFC1918 possible internal network +# +acl localnet src 10.10.208.0/24 + +# Riga 606 +# TAG: http_access +# Allowing or Denying access based on defined access lists +# +# Access to the HTTP port: +# http_access allow|deny [!]aclname ... +# +# NOTE on default values: +# +# If there are no "access" lines present, the default is to deny +# the request. + +# Riga 643 +# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS + +# Example rule allowing access from your local networks. +# Adapt localnet in the ACL section to list your (internal) IP networks +# from where browsing should be allowed +#http_access allow localnet +http_access allow localnet ++
Dopo aver configurato squid e' fondamentale testarne il + corretto funzionamento per assicurarsi di non aver creato + un open-relay. Per fare dei test significativi + serve utilizzare degli host remoti: ci si connetta via ssh + a questi e si usi wget da riga di comando.
+ +Nel file .wgetrc (si noti il punto iniziale: e' + un file nascosto) si puo' impostare il proxy per wget. Si + utilizzi l'indirizzo IP del server che si vuole testare, + e si seguano i log /var/log/squid3/access.log sul + server.
+ +Da notare che la prova va' fatta su una macchina della + rete che si vuole testare, non da localhost. Per + altro se si utilizzasse direttamente localhost non si testerebbe la + ACL predisposta, dato che si si rientrerebbe + nella ACL (pre-configurata di default) localhost.
+ +Si proceda a scaricare dal client scelto con un + wget:
++wget http://www.google.it ++
Si puo' controllare il corretto funzionamento del + server seguendo i log di accesso a Squid:
++# tail -f /var/log/squid3/access.log ++ +
In oltre e' possibile configurare diversi + analizzatori di log come Webalizer per studiare i log di + Squid.
+Se avete l'esigenza di un proxy server per la condivisione + della connessione ad internet ma non avete la necessita' o le + risorse di un caching proxy come Squid potete + considerare tinyproxy, questo e' molto piu' + leggero (utilizza circa ~2MB di RAM e ovviamente non deve + accedere continuamente ad un file system per lo storaggio + della cache) e risulta piu' semplice nella + configurazione.
+ +TinyProxy puo' essere utilizzato come sostituto di + emergenza in una rete in cui Squid e' momentaneamente non + disponibile.
+ +File di configurazione: /etc/tinyproxy/tinyproxy.conf
++# Porta su cui ascoltare +Port 3128 +# IP su cui ascoltare +Listen 10.10.208.160 +# Negoziazione accessi +Allow 10.10.208.0/24 ++
Apache HTTP Server, o piu' comunemente Apache (a + patchy NCSA web server ), e' il server web modulare piu' + diffuso e strutturato disponibile con licenza libera, in + grado di operare da sistemi operativi UNIX/Linux e + Microsoft.
+ +Un server web e' un processo, e per estensione il computer + su cui e' in esecuzione, che si occupa di fornire, su + 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 + da' vita al World Wide Web, uno dei servizi piu' utilizzati + di Internet.
+ ++ apache2 apache2-doc ++ +
Con la release 2.0 di Apache viene automaticamente resa + disponibile anche la versione SSL (Secure Socket Layer, + connessioni criptate ) del web server senza che ci sia la + necessita' di installare altri pacchetti.
+I file di configurazione di apache si trovano nella + cartella: /etc/apache2 e sono strutturati come + descritto nel file /usr/share/doc/apache2/README.Debian.gz + . Sostanzialmente lo schema e' il seguente:
+ +File di configurazione principale del + servizio.
+ +httpd.conf e' il vecchio file di + configurazione di Apache1, presente per motivi di + retrocompatibilita' e' generalmente vuoto.
+File di configurazione del servizio Apache, contiene le impostazioni generiche (ad esempio utilizzo della RAM e @@ -1118,8 +2243,8 @@ Acquire::http::Proxy "http://10.10.208.254:3128"
Pacchetti da installare: php5
@@ -1166,14 +2291,14 @@ Acquire::http::Proxy "http://10.10.208.254:3128"
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
@@ -1236,10 +2361,10 @@ 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
@@ -1280,7 +2405,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: Per testare la corretta risoluzione dei vostri nomi di
+ dominio sui relaivi indirizzi IP si usi dig (o altre
+ utlity, vedere la sezione relativa i DNS). Dig e'
+ contenuto nel pacchetto dnsutils. # dig 177.piffa.net ; <<>> DiG 9.5.1-P1 <<>>
+ 177.piffa.net ;; global options: printcmd ;; Got
+ answer: ;; ->>HEADER<<- opcode: QUERY,
+ status: NOERROR, id: 38036 ;; flags: qr aa rd ra;
+ QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0 La parte interessante e' ;; QUESTION SECTION: ;177.piffa.net. IN A ;; ANSWER SECTION: 177.piffa.net. 0 IN A
+ 10.10.208.177 ;; SERVER: 10.10.208.248#53(10.10.28.248) La parte interessante e' l'ANSWER SECTION:
+ 177.piffa.net.
0
@@ -1399,12 +2535,27 @@ 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 . Il server DNS utilizzato dal sistema e' evidenziato
+ dalla stringa: ;; SERVER:
+ 10.10.28.248#53(10.10.28.248) che
+ dovrebbe corrispondere a quanto impostato nel vostro
+ /etc/resolv.conf. Se il vostro browser
+ web utilizza un proxy http sara questo a risolvere i nomi
+ di dominio, tipicamente potete disabilitare l'uso del
+ proxy per determinati domini nella sezione di
+ configurazione del browser. Esempio di Virtual host: Livello di importanza degli
- eventi loggati= warning attenzione . 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: 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 autenticazione: Un modo semplice per gestire una database di
+ user-id / passwords e' utilizzare l'utility
+ htpasswd di Apache. Questa crea un file
+ in cui un crypt delle password viene associato
+ agli utenti. Si dovra' decidere dove tenere questo file, la cosa
+ importante e' che non sia visibile nel sito web: non deve
+ essere scaricabile dai visitatori. Deve essere cioe'
+ all'esterno della DocumentRoot: un buon posto
+ potrebbe essere la /home dell'utente. Creiamo (con il flag -c) il
+ file /home/utente/passwords con l'utente
+ luca: htpasswd ci chiedera' la password da
+ associare all'utente luca.
+ Per successive modifiche della password o aggiunta di
+ nuovi utenti non sara' necessario usare il flag
+ -c. 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. link: http://www.apacheweek.com/features/userauth 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
+ (tramite una direttiva <Directory> ) il file di
+ impostazione del virtual-host. Questo per motivi pratici: solo l'utente root
+ puo' modificare l'impostazione del virtual host nel file
+ /etc/apache2/sites-enabled/177.piffa.net,
+ ma spesso il motivo per cui creiamo i virtual hosts e'
+ ospitare i siti di altri utenti, che possono solo
+ pubblicare (generalmente tramite FTP) i loro
+ documenti nella loro DocumentRoot, senza poter
+ quindi modificare in alcun modo la configurazione del
+ virtual host. Dando agli utenti la possibilita' di modificare
+ (AllowOverride) autonomamente alcuni parametri
+ (in questo caso solo l'AuthConfig) relativi al
+ funzionamento del loro spazio web ci togliera'
+ l'incombenza di dover intervenire continuamente sui vari
+ virtual host. Abilitiamo l'AllowOverride nel file di configurazione
+ del virtual host per la sola directory privata: Per rendere il cambiamento effettivo sara' necessario
+ fare un restart / reload di Apache. Ora sara' possibile, anche per l'utente di sistema,
+ creare un file .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) è un
+ 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 è realizzato tramite
- un database distribuito, costituito dai server DNS. 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. 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 più visibili di Internet. C'è confusione in merito alla definizione dell'acronimo:
- la S spesso viene interpretata come service, ma la
- definizione corretta è system. 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. L'operazione di convertire un nome in un indirizzo è
- detta risoluzione DNS, convertire un indirizzo IP in nome è
- detto risoluzione inversa. 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 è costituito da una serie di stringhe
- separate da punti, ad esempio it.wikipedia.org. A
- differenza degli indirizzi IP, dove la parte più
- importante del numero è la prima partendo da sinistra, in
- un nome DNS la parte più importante è la prima partendo
- da destra. Questa è 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 così via. Ogni ulteriore elemento
- specifica un'ulteriore suddivisione. Quando un dominio di
- secondo livello viene registrato all'assegnatario, questo
- è 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 così via. Un nome a dominio e' costituito da una serie di stringhe
+ separate da punti, ad esempio bender.piffa.net. I nomi di
+ dominio si leggono da destra verso sinistra: TLD o
+ dominio di primo livello net,
+ secondo livello piffa, terzo livello bender. Il
+ dominio di primo livello (o TLD, Top Level Domain,
+ pronunciato tilde in Italia), per esempio .net o
+ .it sono limitati e decisi direttamente dall'ente
+ assegnatario ICANN ( Internet Corporation for Assigned
+ Names and Numbers). 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
@@ -1681,7 +3113,7 @@ php5-pgsql phppgadmin
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
@@ -1809,11 +3241,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: ... 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
- <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
- particolare quando si deve intervenire in una rete
- pre-esistente in cui il server principale e' in crisi: si
- potra' utilizzare Dnsmasq anche su una macchina piu' debole e
- mascherare i servizi al momento non disponibili.
- Molto utile per scopi didattici, sopratutto per testare
- server SMTP impostando al volo i campi MX per nomi di dominio
+ Il file /etc/resolv.conf contiene le impostazioni
+ sul dns usato dal sistema, in genere anche altre
+ applicazioni che devono effettuare query DNS leggono
+ resolv.conf per conoscere l'ubicazione del DNS. /etc/resolv.conf: Predisponendo l'infrastruttura di rete della vostra LAN
+ e' consigliabile impostare sempre almeno 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'
+ intervenire sul 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. Utilizzare un server DHCP e una DNS cache come
+ Dnsmasq possono permettervi di risolvere
+ al volo molte delle problematiche relative alla
+ configurazione della vostra LAN: ad esempio dover
+ intervenire manualmente su decine di client per modificare
+ le impostazioni di SMTP | gateway | DNS | proxy. Si veda anche la pagina man di resolv.conf. 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 del file e' un associazione tra un
+ IP e stringhe di testo (anche piu' di una per IP)
+ es: mirror o veri e propi nomi di dominio
+ mirror.piffa.net. Si puo inserire un nome
+ semplice come casa per riferirsi ad un host che si
+ ha necessita' di contattare spesso, oppure mappare un nome
+ di dominio completo su un indirizzo IP. Il problema e' la gestione di questo file su molti
+ hosts: quando gli host cambiano IP si devono aggiornare
+ manualmente i records, operazione in se' non
+ particolarmente gravosa ma che andra' fatta per ogni client
+ della vostra LAN. Un metodo semplice per distribuire questo
+ file e' utilizzare Dnsmasq:
+ questo infatti legge e onora il file hosts che
+ avete prodotto e lo rende disponibile ai clients tramite le
+ query DNS. Dnsmasq lavora come un server DNS, i vostri client lo
+ interrogheranno per tradurre nomi di host e domini in
+ indirizzi IP, risolvendo il problema della
+ distribuzione del file hosts tra
+ molteplici clients. Infatti il servizio DNS indica appunto
+ una directory distribuita per la risoluzione dei
+ nomi di dominio, risolvendo i problemi dell'aggiornamento e
+ diffusione dei continui cambiamenti di questa. Modificare la risoluzione di un nome di dominio
+ esistente (ad esempio riconducendola a un IP interno) e' un
+ modo drastico e funzionale per annullarlo
+ rendendolo non disponibile alla propria rete locale. Ad
+ esempio aggiungere al file /etc/hosts: Impedira' agli utenti della LAN di raggiungere
+ facebook, ora reindirizzato a localhost. Oppure si potrebbe ricondurre l'indirizzo IP di un
+ server HTTP pubblico usato per i downloads (ad esempio un
+ mirror della propia distribuzione come ftp.it.debian.org) a un equivalente
+ mirror creato all'interno della rete locale, riducendo il
+ traffico verso l'esterno e aumentando notevolmente la
+ velocita' di scaricamento. Ogni computer ha un proprio nome visualizzabile
+ (e modificabile) con il comando hostname.
+ Quando utilizzate a una shell su un host in genere
+ l'hostname compare nel prompt della shell. Per visualizzare il nome dell'host su cui si sta
+ operando si digiti semplicemnte hostname,
+ lo stesso comando con un oggetto modifica temporaneamente
+ il nome dell'host. Per modificare in modo permanente il
+ nome del computer si modifichi il contenuto del file
+ /etc/hostname. 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. Per semplicita' gli host sono generalemente
+ raggiungibili dall'esterno mappando il loro IP su un nome
+ di dominio FQDN: fully qualified domain name, composto
+ generalmente da hostname.``domain-name``, ad es.
+ bender.``piffa.net``. Alcuni servizi internet fanno affidamento sul PTR
+ dell'IP del server per cercare una conferma che il
+ servizio sia veramente chi afferma di essere (ad
+ esempio STMP). Non e' automatico che un servizio, ad esempio un
+ server di posta, si qualifichi leggendo il contenuto del
+ file hostname aggiungendo come suffisso il
+ dominio della rete di cui fa parte l' host: a volte
+ questo parametro puo' essere specificato nel file di
+ configurazione del servizio: I motivi sono diversi, senza entrare nel dettaglio dei
+ vari protocolli si pensi comunque che un host ha sempre
+ un solo nome, ma puo' avere un numero variabile di
+ device di rete sia fisici che virtuali con
+ relativi indirizzi IP, e piu' servizi in ascolto
+ sui vari IP. Dnsmasq puo' svolgere le funzioni di un DNS cache /
+ 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' forwarding e cache-only (non
+ autoritativo) accompagnato dal server DHCPd. I vantaggi
+ sono: Tutto cio' rende Dnsmasq una soluzione valida in
+ particolare quando si deve intervenire in una rete
+ pre-esistente in cui il server principale e' in crisi: si
+ potra' utilizzare Dnsmasq anche su una macchina piu' debole e
+ mascherare i servizi al momento non disponibili.
+ Molto utile per scopi didattici, sopratutto per testare
+ server SMTP impostando al volo i campi MX per nomi di dominio
fittizi. Vediamo alcune direttive di basi del file di
+ configurazione /etc/dnsmasq.conf utili per la
+ configurazione sia del DNS cache che per il DHCP
+ server: 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
+ assegnati) espresso in ore. 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 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.
+ Questo vale anche per i laboratori di informatica dei corsi
+ di reti: non fate partire il vostro server DHCP se siete
+ collegati alla rete interna! /etc/dnsmasq.conf (riga 118): 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
+ del file /etc/resolv.conf. Per superare il
+ problema si aggiunga (riga 20) al file di configurazione
+ /etc/dhcp3/dhclient.conf Oppure potrebbe essere il nostro PPP client
+ (per la connessione ADSL) a intervenire sul file //etc/resolv.conf, si modifichi quindi
+ /etc/ppp/peers/dsl-provider commentando
+ usepeerdns. Se la vostra connessione ad
+ internet e' ADSL raramente dovreste aver bisogno di
+ cambiare i DNS una volta impostati (a meno che non usiate
+ un portatile!). Samba e' un progetto libero che fornisce servizi di
- condivisione di file e stampanti a client SMB/CIFS. 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. Samba e' liberamente disponibile, al contrario di altre
- implementazioni SMB/CIFS, e permette di ottenere
- interoperabilita' tra Linux, Unix, Mac OS X e Windows. Installare i pacchetti: 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
- Domain Controller (PDC) o come Backup Domain Controller, puo'
- inoltre prendere parte ad un dominio Active Directory. 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 Pacchetti da installare per utilizzare Samba in
- modalita' client [2] 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: Pacchetti da installare per utilizzare Samba in
- modalita' 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. Nsupdate risulta comodo per tenere aggiornati i record
+ DNS degli host connessi ad internet con indirizzi IP
+ dinamici (pubblici) assegnati dal provider. Il client
+ deve essere in grado di contattare autonomamente il
+ server DNS per comunicare un cambiamento del suo ip.
+ Vediamo innanzi tutto un primo script per nsupdate: Questo script legge il valore del device di rete
+ ppp0 creato dal pppoe di
+ una connessione ADSL per ottenere l'indirizzo IP ottenuto
+ dal provider (prima di farlo aspetta 15 secondi per dare
+ il tempo al pppoe di negoziare la
+ connessione).Vengono poi eliminati gli esistenti valori
+ A e MX per
+ home.piffa.net (si noti il punto finale
+ dopo net) e inseriti quelli attuali. Resta da decidere quando richiamare questo script:
+ l'evento che causa l'assegnazione del nuovo IP in questo
+ caso e una nuova connessione pppoe,
+ quindi sarebbe consigliabile inserire lo script nelle
+ routine comprese in /etc/ppp/ip-up.d (si veda la
+ documentazione di ppp), nel caso questo non desse i
+ risultati sperati (per problemi di connessione) come via
+ estrema si consideri di mettere lo script nella routine
+ del demone cron in modo che venga eseguito
+ periodicamente (ad esempio ogni giorno). Samba e' un progetto libero che fornisce servizi di
+ condivisione di file e stampanti a client SMB/CIFS. Samba e' liberamente disponibile, al contrario di altre
+ implementazioni SMB/CIFS, e permette di ottenere
+ interoperabilita' tra Linux, Unix, Mac OS X e Windows. 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
+ Domain Controller (PDC) o come Backup Domain Controller, puo'
+ inoltre prendere parte ad un dominio Active Directory. Pacchetti da installare per utilizzare Samba in
+ modalita' client [2] Pacchetti da installare per utilizzare Samba in
+ modalita' server: Durante la prima installazione viene chiesto il nome del
+ gruppo di appartenenza, il default per Windows e'
+ WORKGROUP. In aula usiamo invece
+ 208 . Per riconfigurare Samba si usi il comando: Per poter configurare Samba in modo che usi un sistema
+ di negoziazione degli accessi alle cartelle condivise
+ basato su accoppiate nome utente / password
+ bisogna distinguere tra 3 livelli di password (e
+ generalmente volete usare sempre la stessa
+ password per ognuno di questi) e delle differenze tra
+ le modalita' di autenticazione (e quindi anche di
+ criptaggio delle passwords) usate da sistemi GNU/Linux e
+ Windows: Creiamo per primo l'utente sotto GNU/Linux, facendo
+ attenzione a non dargli una shell di sistema. Gli
+ utenti Windows che accedono al server solo per le
+ condivisioni non hanno bisogno di poter eseguire comandi
+ sul server! Creazione di un utente denominato sambo: Nel file /etc/passwd avremo qualcosa come: Aggiunta dell'utente al database delle password per
+ Samba e generazione della sua password: Se successivamente si vorra' modificare la password di
+ un utente gia' esistente si usi: La password sotto Windows verra' modificata sul sistema
+ Windows. La condivisione altro non e' che una cartella sul server
+ che viene resa disponibile ai client negoziando l'accesso
+ in base a una autenticazione basata su user-name /
+ password. E' per altro possibile permettere l'accesso
+ a una risorsa a chiunque indiscriminatamente (a tutti i
+ guest) ma la cosa e' sconsigliabile dal
+ punto di vista della sicurezza. Si decida se la cartella
+ condivisa debba risiedere nella home di un utente
+ (nel caso quest'ultimo ne sia l'unico fruitore) o in una
+ cartella in /mnt/ (nel caso piu' utenti accedano a questa).
+ Nel secondo caso si potranno gestire gli accessi sotto
+ GNU/Linux tramite i gruppi. Creazione della risorsa sambo_share nella home
+ dell'utente sambo: Bisognerebbe notare sul server i permessi di
+ esecuzione del file-system che ospita la cartella da
+ condividere. Se i file che saranno contenuti nella
+ condivisione saranno da usarsi sotto Windows non c'e'
+ motivo che questi siano eseguibili sotto GNU/Linux. Si
+ potrebbe avere quindi, ipotizzando una condivisione in
+ /mnt/share che risieda su di un file
+ system dedicato: /etc/fstab Si noti anche l'uso di nosuid per evitare la
+ possibilita' di eseguire programmi con credenziali
+ diverse. Avendo preparato gli utenti (ancora una volta: non si
+ dia una shell completa a un utente che serve solo per Samba
+ o la posta elettronica) e la cartella sul file system si
+ puo' procedere a configurare la condivisione su Samba. /etc/samba/smb.conf riga ~235 , Share Definitions (in
+ vim si usi 235gg ): Dopo aver salvato il file si puo' fare un primo
+ controllo tramite l'utility testparm ,
+ che controlla la sintassi del file di configurazione di
+ Samba. Se questo non rileva problemi si puo' procedere a un
+ #
+ /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 es: Questo comando permette di esplorare la risorsa
+ qualificandosi come utente, in questo modo potete testare
+ il corretto funzionamento dell'autenticazione. Si provi
+ inizialmente a sbagliare la password deliberatamente, poi a
+ inserirla correttamente: dovrebbero essere visibili le
+ risorse disponibili al solo utente sambo: la suo /home e la
+ cartella samba_share: In particolare l'ultima voce relativa alla home
+ directory dell'utente dovrebbe essere visibile solo agli
+ utenti autenticati. In alternativa e' possibile montare realmente la
+ condivisone anche su GNU/Linux tramite un client per samba
+ e testarne il corretto funzionamento: 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 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 e' la
+ seguente: Apparato di rete hardware o software che filtra tutti i
+ pacchetti entranti ed uscenti, da e verso una rete o un
+ computer, applicando regole che contribuiscono alla sicurezza
+ della stessa. In realta' un firewall puo' essere realizzato con un
+ normale computer (con almeno due schede di rete e software
+ 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 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
+ esterni di operare nel massimo della sicurezza. Il firewall
+ agisce sui pacchetti in transito da e per la zona interna
+ potendo eseguire su di essi operazioni di: controllo modifica
+ monitoraggio 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. Link:
+ http://iptables-tutorial.frozentux.net/iptables-tutorial.html#IPFILTERING Natura di un firewall ip: su cosa lavora (livello 2 e un
+ po' del 3) e su cosa non lavora (livello 4).
+ Netfilter lavora anche su parti del livello 3 (TCP, UDP,
+ etc) e del livello 1 (MAC source address). Iptables
+ comunque permette di fare il connection-tracking,
+ mediante il quale possiamo implementare il Network Address
+ Translation. Netfilter non ricostruisce il flusso di dati tra
+ pacchetti, non puo' quindi rilevare la presenza di virus o
+ simili che si trasmettono su pacchetti separati:
+ ricomporre, analizzare e tornare a scomporre i frammenti
+ richiederebbe troppa RAM e risorse di sistema, con il
+ conseguente rischio di saturare il firewall fino
+ all'abbandono dei nuovi pacchetti in transito. Ci sono
+ altri software piu' adatti a questi compiti, ad esempio un
+ proxy HTTP come Squid che e' appunto una applicazione di
+ quarto livello, progettata e strutturata per analizzare e
+ modificare i flussi di dati (il contenuto dei
+ pacchetti, non le sole intestazioni) facendo
+ abbondate uso delle risorse RAM e di calcolo del sistema.
+ Non a caso su macchine embedded dalle prestazioni molto
+ ridotte (CPU ARM ~250MHZ con ~30MB di RAM) Squid sfrutta al
+ massimo le risorse di sistema per gestire il traffico di
+ una rete 10/100, mentre il lavoro tipico svolto da
+ netfilter e' quasi irrilevante. Per implementare un firewall bisogna decidere un aio di
+ cose: la collocazione e l'approccio (inclusivo o esclusivo)
+ al filtraggio, il tipo di hardware. DMZ e MZ, internet, intranet, extranet. Frammentazione
+ della rete, decidere se diversi reparti di una azienda si
+ possano vedere tra loro e in che misura. Collocazione: Drop o Accept: conseguenze per sicurezza, facilita' di
+ gestione. Sostanzialmente potremmo distinguere due tipologie di
+ hardware: Vantaggi e svantaggi: consumo elettrico, efficienza,
+ flessibilita', strumenti di gestione, sicurezza,
+ OpenBSD. link:
+ http://iptables-tutorial.frozentux.net/iptables-tutorial.html#TRAVERSINGOFTABLES 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 e' composta da un
+ elenco di regole (rules) che identificano pacchetti di
+ 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
+ caratteristiche. 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
+ caso contrario continua il suo percorso tra regole catene
+ e tabelle. Target principali: E' quella implicita e predefinita (-t filter) Riguarda
+ 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
+ sistema, con IP sorgente e destinazione esterni. Esempio per permettere accesso alla porta 80 locale:
+ iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
+ Analoga a: iptables -I INPUT -p tcp --dport 80 -j
+ ACCEPT Esempio per permettere ad un pacchetto con IP sorgente
+ 10.0.0.4 di raggiungere il server 192.168.0.1 attraversando
+ il firewall: iptables -I FORWARD -s 10.0.0.4 -d 192.168.0.1
+ -j ACCEPT Se state provando una configurazione del firewall per
+ una macchina remota e' buona norma per evitare brutte
+ figure attivare uno script che faccia il flush
+ 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 situazione
+ precedente. 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
+ il flush delle regole (su tutte le tabelle): Il comando iptables viene usato per ogni attivita' di
+ gestione e configurazione. Inserimento regole: Rimozione regole e azzeramenti: Interrogazione: 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: Il File Transfer Protocol (FTP) (protocollo di
+ trasferimento file), è un Protocollo per la trasmissione di
+ dati tra host basato su TCP, in genere usato dagli autori di
+ pagine web per pubblicare queste nei propio spazi
+ web. Storicamente veniva anche usato, mediate l'utilizzo di
+ utenze anonime, come punto di scambio per materiali di vari
+ utenti tra loro sconosciuti (una directory dei materiali
+ scaricabili e una dedicata agli uploads degli
+ utenti, poi riordinati dall'ftpmaster). Tuttora si
+ mantiene la cosuetudine di renedere disponibile i materiali
+ dei mirrors anche tramite FTP, probabilmente per
+ garantire l'accesso ai client piu' datati che non possono
+ utilizzare tecnologie piu' recenti. Il protocollo FTP e' in chiaro (cioe' non criptato), sia
+ per quanto riguarda il traffico ad esso associato che per il
+ passaggio delle passwords degli utenti, facilmente sniffabili
+ da chiunque abbia accesso alla rete. Naturalmente vsftp per
+ quanto votato alla sicurezza non modifica queste
+ caratteristiche del protocollo FTP (ma consente di usare
+ OpenSSL per la autenticazione degli utenti). Se propio si deve mettere a disposizione un server FTP ai
+ propi utenti si considerino le seguenti alternative: Nel caso non si possa evitare il server FTP: Per maggiori informazioni sulle scelte di design legate
+ alla sicurezza del demone si veda: http://vsftpd.beasts.org/DESIGN Vsftp mette a disposizione le seguenti funzionalita': Per installare il demone vero e propio si usi il
+ pacchetto vsftpd , mentre per aver un client da cui
+ fare qualche test sono dipsonibili: Durante la prima installazione viene chiesto il nome del
- gruppo di appartenenza, il default per Windows e'
- WORKGROUP. In aula usiamo invece
- 208 . Per riconfigurare Samba si usi il comando: Per poter configurare Samba in modo che usi un sistema
- di negoziazione degli accessi alle cartelle condivise
- basato su accoppiate nome utente / password
- bisogna distinguere tra 3 livelli di password (e
- generalmente volete usare sempre la stessa
- password per ognuno di questi) e delle differenze tra
- le modalita' di autenticazione (e quindi anche di
- criptaggio delle passwords) usate da sistemi GNU/Linux e
- Windows: Vediamo alcuni dei comandi di base per gestire una
+ sessione ftp a riga di comando: Creiamo per primo l'utente sotto GNU/Linux, facendo
- attenzione a non dargli una shell di sistema. Gli
- utenti Windows che accedono al server solo per le
- condivisioni non hanno bisogno di poter eseguire comandi
- sul server! Creazione di un utente denominato sambo: Nel file /etc/passwd avremo qualcosa come: Aggiunta dell'utente al database delle password per
- Samba e generazione della sua password: Se successivamente si vorra' modificare la password di
- un utente gia' esistente si usi: La password sotto Windows verra' modificata sul sistema
- Windows. La condivisione altro non e' che una cartella sul server
- che viene resa disponibile ai client negoziando l'accesso
- in base a una autenticazione basata su user-name /
- password. E' per altro possibile permettere l'accesso
- a una risorsa a chiunque indiscriminatamente (a tutti i
- guest) ma la cosa e' sconsigliabile dal
- punto di vista della sicurezza. Si decida se la cartella
- condivisa debba risiedere nella home di un utente
- (nel caso quest'ultimo ne sia l'unico fruitore) o in una
- cartella in /mnt/ (nel caso piu' utenti accedano a questa).
- Nel secondo caso si potranno gestire gli accessi sotto
- GNU/Linux tramite i gruppi. Creazione della risorsa sambo_share nella home
- dell'utente sambo: Bisognerebbe notare sul server i permessi di
- esecuzione del file-system che ospita la cartella da
- condividere. Se i file che saranno contenuti nella
- condivisione saranno da usarsi sotto Windows non c'e'
- motivo che questi siano eseguibili sotto GNU/Linux. Si
- potrebbe avere quindi, ipotizzando una condivisione in
- /mnt/share che risieda su di un file
- system dedicato: /etc/fstab Si noti anche l'uso di nosuid per evitare la
- possibilita' di eseguire programmi con credenziali
- diverse. Il demone di vsftpd e' immediatamente disponibile ma
+ solo in modalita' anonima (si pensi a uno scenario in cui
+ si vuole rendere disponibili dei files tramite FTP) e in
+ sola lettura. Per accedere al servizio si usi
+ quini come utente anonymous (la passwords in genere e' come
+ consuetudine il propio indirizzo email), la cui
+ home directory sara' /home/ftp/
+ (/srv/ftp in Squeeze): Avendo preparato gli utenti (ancora una volta: non si
- dia una shell completa a un utente che serve solo per Samba
- o la posta elettronica) e la cartella sul file system si
- puo' procedere a configurare la condivisione su Samba. /etc/samba/smb.conf riga ~235 , Share Definitions (in
- vim si usi 235gg ): Per poter modificare le impostazioni iniziali, ad
+ esempio per permettere l'accesso agli utenti del server, si
+ modifichera' il file /etc/vsftpd.conf, a seguire le
+ impostazioni fondamentali ed altre interessanti per rendere
+ il server accessibile da utenti di sistema (autenticati
+ tramite la loro password, quindi con PAM) per il tipico
+ utilizzo di web designers che debbano pubblicare le loro
+ pagine web (e non si siano fatti convincere a usare
+ SFTP!): Dopo aver salvato il file si puo' fare un primo
- controllo tramite l'utility testparm ,
- che controlla la sintassi del file di configurazione di
- Samba. Se questo non rileva problemi si puo' procedere a un
- #
- /etc/init.d/samba restart . Per abilitare i cambiamenti si proceda a riavviare il
+ server: /etc/init.d/vsftpd restart e si monitorizzi il file di log
+ tail
+ -f /var/log/vsftpd.log per controllarne il
+ funzionamento (e anche /var/log/syslog nel caso non si riuscisse
+ a far partire correttamente il servizio. NOTE: Se non riuscite ad ottenere un directory
+ listing (ls) ottenendo un errore 500
+ Illegal PORT command?
+ FTP error abilitare la modalita' passiva col
+ comando ftp passive. Si puo' impedire all'utente di spostarsi arbitrariamente
+ per il file system del servere visualizzare il contenuto
+ delle directory, ad esempio la cartella /etc,
+ confinandolo in una jail chroot limitata alla sua home
+ directory: Come testare il servizio Generalmente un utente di sistema con il solo accesso
+ FTP non dovrebbe avere la possibilita' di poter navigare
+ liberamente per il file system del server, esponendo file
+ di configurazione e quant'altro l'utente potrebbe trarre
+ utili informazioni sul quali software siano installati e di
+ che tipo: es: Come accennato precedentemente e' opportuno che i
+ filesystems sui quali un utente puo' scrivere o modificare
+ il contenuto non abbiano i privilegi di eseguibilita' e
+ suid, nel nonstro caso vsftpd lavora sull'intera /home/
+ directory quindi avremo in /etc/fstab: Questo comando permette di esplorare la risorsa
- qualificandosi come utente, in questo modo potete testare
- il corretto funzionamento dell'autenticazione. Si provi
- inizialmente a sbagliare la password deliberatamente, poi a
- inserirla correttamente: dovrebbero essere visibili le
- risorse disponibili al solo utente sambo: la suo /home e la
- cartella samba_share: Come gia' detto piu' volte le passwords degli utenti
+ viaaggiano in rete in chiaro, ponendo un grave problema di
+ sicurezza. Sara' quindi opportuno disbilitare la shell di
+ questi utenti, tramite il flag --shell
+ /bin/false in fase di
+ creazione degli utenti: In particolare l'ultima voce relativa alla home
- directory dell'utente dovrebbe essere visibile solo agli
- utenti autenticati. Oppure correggiendo manualmente il file /etc/passwd per modificare l'inpostazione
+ della shell dell'utente: In alternativa e' possibile montare realmente la
- condivisone anche su GNU/Linux tramite un client per samba
- e testarne il corretto funzionamento: Sui sistemi DEbian REcenti sara' necessario aggiungere
+ /bin/false all'elenco delle shell
+ valide. /etc/shells sintassi: in monospace :3.4.1 Test del modulo
+ "#id39">4.4.1 Test del modulo
php
<?php phpinfo() ; ?>
@@ -1182,22 +2307,22 @@ Acquire::http::Proxy "http://10.10.208.254:3128"
3.4.2 Installazione del supporto
- per Mysql
+ "#id40">4.4.2 Installazione del supporto
+ per Mysql a PHP
@@ -1213,11 +2338,11 @@ php5-mysql phpmyadmin
3.4.3 phpmyadmin
+ "#id41">4.4.3 phpmyadmin
- 3.4.4 Installazione del supporto
- per Postgresql
+ "#id42">4.4.4 Installazione del supporto
+ per Postgresql a PHP
@@ -1255,12 +2380,12 @@ php5-pgsql phppgadmin
3.4.5 phppgadmin
+ "#id43">4.4.5 phppgadmin
3.5 Virtual hosts
+ "#id44">4.5 Virtual hosts
@@ -1295,13 +2420,13 @@ php5-pgsql phppgadmin
@@ -1321,73 +2446,84 @@ php5-pgsql phppgadmin
-
3.5.1 Gestione DNS
+ "#id45">4.5.1 Gestione DNS
-
-
-# dig 177.piffa.net
+
4.5.2 Eseguire una query DNS con
+ dig::
-;; QUESTION SECTION:
-;177.piffa.net. IN A
+
+
+
+ 3.5.2 Virtual host
+ "#id47">4.5.3 Virtual hosts
@@ -1420,8 +2571,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.
@@ -1429,7 +2580,7 @@ php5-pgsql phppgadmin
3.6 Negoziazione accessi
+ "#id48">4.6 Negoziazione accessi
3.6.1 Limiti su base ip
+ "#id49">4.6.1 Limiti su base IP
-
<VirtualHost *:80 >
# ...
- Order allow,deny
- Allow from all
+ <Directory "/var/www/177.piffa.net">
+ Order allow,deny
+ Allow from all
+ </Directory>
</VirtualHost>
@@ -1546,9 +2699,12 @@ php5-pgsql phppgadmin
questo modo:
<VirtualHost *:80 >
- Order allow,deny
- Allow from all
- Deny from 192.168.0.1
+ # ...
+ <Directory "/var/www/177.piffa.net">
+ Order allow,deny
+ Allow from all
+ Deny from 192.168.0.1
+ </Directory>
</VirtualHost>
@@ -1569,38 +2725,214 @@ 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.
+
+
+
+ 4.7 User Authentication
+
+ 4.7.1 Definire la
+ cartella
+
+
+ mkdir /var/www/177.piffa.net/privata
+
+ 4.7.2 Creazione del database
+ delle passwords
+
+
+htpasswd -c /home/utente/passwords luca
+
+
+ 3.6.2 User
- Authentication
-
-
+<VirtualHost *:80 >
+ ServerName 177.piffa.net
+ DocumentRoot /var/www/177.piffa.net/
+ ServerAdmin webmaster@177.piffa.net
+ <Directory "/var/www/177.piffa.net/privata">
+ AllowOverride AuthConfig
+ </Directory>
+</VirtualHost>
+
+
+
+# Messaggio visualizzato al prompt per l'autenticazione
+AuthName "Area privata soggetta ad autentizazione"
+# tipo di autenticazione da usarsi
+AuthType Basic
+# File precedentemente generato con htpasswd
+AuthUserFile /home/utente/passwords
+
+# Negoziazione degli accessi
+# valid users permette l'accesso agli utenti specificati
+# nel file generato da htpasswd
+require valid-user
+
+
+
+
+
+
+
+
+
+staff:andrea sara
+studenti: lucap federico luca
+
+
+ 3.7 Cavets
+ "#id54">4.8 Cavets
4 Domain Name System
+ "#id55">5 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.
+
- 5.1 Risoluzione Inversa
-
+
+ 4.1 Nomi di dominio
-
- 4.2 Tipologie di record
+ "#id58">5.3 Tipologie di record
4.3 Utilizzo
+ "#id59">5.4 Utilizzo
4.4 Risoluzione dei nomi di
+ "#id60">5.5 Risoluzione dei nomi di
dominio
4.5 Dig
+ "#id61">5.6 Dig
$ dig www.google.it
@@ -1852,8 +3284,8 @@ l.google.com. 80856 IN NS g.l.google.com.
5 DNSmasq
+
+
+
-
+ 5.7 resolv.conf
+
+
+
+
+
+
+ 5.8 /etc/hosts
+
+
+# cat /etc/hosts
+
+
+
+ 127.0.0.1 localhost.localdomain localhost 10.10.208.162
+ daniela daniela.piffa.net 10.10.208.254 mirror
+ mirror.piffa.net 91.191.138.15 thepiratebay.org
+ 192.168.0.11 chrome chrome.mydomain.com
+
+
+
+127.0.0.1 www.facebook.com
+
+
+ 5.9 Hostname
+
+ 5.9.1 FQDN
+
+
+* Squid (HTTP proxy): ``visible_hostname``
+
+* Postfix (SMTP server): ``myhostname``
+
+
+ 6 DNSmasq
+
+
+
+
+ 6.1 Configurazione
+
+
+
+ 6.2 DHCP
+
+
+dhcp-range=192.168.0.20,192.168.0.50,24h
+
+ 6.3 DNS cache
+
+
+ nameserver 127.0.0.1
+
+
+
+prepend domain-name-servers 127.0.0.1;
+
+
+ 6 Samba
+ "#id70">7 Bind : DNS Autoritativo
-
+bind9
+
- 7.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.1 Pacchetti
+ "#id72">7.2 Ospitare una zona
- 7.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";
+ }
+
+
+
+
+ 7.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
+
+
+ 7.2.2.1 SOA: Start of
+ Authority Record
+
+
+
+ 7.2.2.2 Altri campi:
+
+
+
+ 7.3 DNS slave
+
+
-samba-client
+zone "piffa.net" {
+ type slave;
+ file "/etc/bind/pz/piffa.net";
+ masters { 192.168.0.1; };
+ };
-
-samba smbfs smbclient
+... 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
-
-
+ 7.4 Aggiornamento dinamico:
+ nsupdate
+
+ 7.4.1 Configurazione client
+ (nsupdate)
+
+
+dnssec-keygen -a HMAC-MD5 -b 512 -n USER home.piffa.net.
+
+
+ 7.4.2 Configurazione server:
+ riconoscimento chiave
+
+
+
+
+
+
+ 7.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
+
+
+ 7.4.4 Automatizzare
+ l'aggiornamento dinamico
+
+
+#!/bin/bash
+# Diamo al demone ppp un po' di tempo per negoziare la connessione
+# prima di leggere l'IP ottenuto
+sleep 15
+IPADDR=$(/sbin/ifconfig ppp0 | awk '/inet/ { print $2 } ' | sed -e s/addr://)
+
+nsupdate -k /root/dns/Khome.piffa.net.+157+04331.private <<-EOF
+ server 192.168.0.254
+ zone home.piffa.net.
+ update delete home.piffa.net. A
+ update delete home.piffa.net. MX
+ update add home.piffa.net. 432000 A $IPADDR
+ update add home.piffa.net. 432000 MX 10 home.piffa.net.
+ show
+ send
+ EOF
+
+
+ 7.5 Link suggeriti:
+
+
+
+ 8 Samba
+
+ 8.1 Pacchetti
+
+
+samba-client
+
+
+
+samba smbfs smbclient
+
+
+
+
+
+
+
+
+ [2]
+
+ Anche se nato per i sistemi Windows, Samba puo'
+ essere usato anche per montare cartelle sotto
+ GNU/Linux come alternativa a NFS. Per la condivisione
+ di stampanti sarebbe invece opportuno intervenire
+ direttamente su CUPS.
+
+dpkg-reconfigure samba-common
+
+ 8.2 Passwords e
+ autenticazione
+
+
+
+ 8.3 Creazione Utenti
+
+
+adduser --shell /bin/false sambo
+
+
+
+sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
+
+
+
+smbpasswd -a sambo
+
+
+
+smbpasswd sambo
+
+
+ 8.4 Creare la
+ condivisione
+
+
+# mkdir /home/sambo/sambo_share
+# chown sambo:sambo /home/sambo/sambo_share/
+
+
+ 8.4.1 Sicurezza: permessi di
+ esecuzione sul server
+
+
+ /dev/hda10 /mnt/share ext3 rw,
+ nosuid,noexec 0 3
+
+
+ 8.5 Configurazione
+ dell'applicativo Samba vero e proprio.
+
+
+[sambo_share]
+ # Percorso della cartella condivisa
+ path = /home/sambo/sambo_share
+ # Se gli utenti possono scrivere / modificare file
+ writable = yes
+ # Negoziazione degli accessi su base utenti / passwords
+ valid users = sambo
+
+ # #######################################
+ # Altri parametri opzionali di interesse
+ # Se posso vedere la condivisione da esplora risorse
+ # anche se non ho i privilegi per accedervi.
+ browseable = yes
+ # Commento indicativo della risorsa
+ comment = Condivisione per Sambo
+
+
+ 8.5.1 Creazione di un
+ gruppo
+
+
+# Negoziazione degli accessi su base gruppo
+valid users = @nome_gruppo
+
+ 8.6 Testare il Servizio
+
+
+smbclient -U sambo -L localhost
+
+
+
+Sharename Type Comment
+--------- ---- -------
+sambo_share Disk Condivisione per Sambo
+print$ Disk Printer Drivers
+IPC$ IPC IPC Service (base server)
+sambo Disk Home Directories
+
+
+
+mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
+
+ 9 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
+
+
+
+
+
+ 9.1 Test del server smtp
+
+
+
+
+ 9.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.
+
+ 9.2 Imap e pop
+
+
+
+
+ 9.3 Client a riga di
+ comando
+
+ 9.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:
+
+
+ 9.3.2 Mutt
+
+
+
+
+
+mutt -f /var/mail/utente
+mutt -f /home/utente/Maildir
+
+
+
+mutt -f imap://nome_utente@piffa.net
+
+ 9.3.3 Web client
+
+
+cd /etc/apache2/conf.d/
+ln -s /etc/squirrelmail/apache.conf ./squirrelmail.conf
+
+ 9.4 Graylisting
+
+ 9.4.1 Abilitazione in
+ Postfix
+
+
+smtpd_recipient_restrictions =
+ permit_mynetworks,
+ reject_unauth_destination,
+ check_policy_service inet:127.0.0.1:60000
+
+ 9.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]
+
+ 9.4.3 Statistiche
+
+
+pflogsumm.pl /var/log/mail.log
+
+
+ 10 Firewall
+
+ 10.1 Links
+
+
+ 10.2 Ipfilter
+
+ 10.3 Progettazione di un
+ firewall
+
+ 10.3.1 Collocazione
+
+
+
+
+
+
+
+
+ 10.3.2 Policy di
+ default
+
+ 10.3.3 Hardware
+
+
+
+
+ 10.4 Percorso dei pacchetti tra
+ tabelle e catene
+
+ 10.5 Concetti di base
+
+ 10.5.1 Tabelle, catene,
+ regole
+
+
+
+
+ 10.5.2 Match
+
+
+
+
+
+
+
+
+
+ -f
+
+ Frammento di pacchetto
+ 10.5.3 Targets
+
+
+
+
+
+
+
+
+
+ -t LOG
+
+ Il pacchetto viene loggato via syslog e procede
+ l'attraversamento della catena. Opzioni:
+ (--log-level, --log-prefix, --log-tcp-sequence,
+ --log-tcp-options, --log-ip-options)
+
+
+
+ -j DNAT
+
+ Viene modificato l'IP di destinazione del
+ pacchetto. Target disponibile solo in nat /
+ PREROUTING e nat / OUTPUT. L'opzione
+ --to-destination IP:porta definisce il nuovo IP di
+ destinazione. Si usa tipicamente su network
+ firewall che nattano server di una DMZ
+
+
+
+ -j SNAT
+
+ Viene modificato l'IP sorgente. Solo in nat /
+ POSTROUTING. Prevede l'opzione --to-source
+ IP:porta. Si usa per permettere l'accesso a
+ Internet da una rete locale con IP privati.
+
+
+
+ -j MASQUERADE
+
+ Simile a SNAT, si applica quando i pacchetti
+ escono da interfacce con IP dinamico (dialup, adsl,
+ dhcp...). Si usa solo in nat / POSTROUTING e
+ prevede l'opzione --to-ports porte.
+
+
+
+ -j REDIRECT
+
+ Redirige il pacchetto ad una porta locale.
+ Usabile solo in nat / PREROUTING e nat / OUTPUT e'
+ previsto per fare un transparent proxy (con proxy
+ server in esecuzione sulla macchina con
+ iptables)
+
+
+
+ -j RETURN
+
+ Interrompe l'attraversamento della catena. Se
+ 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 e' in
+ una delle catene di default, il pacchetto
+ interrompe l'attraversamento e segue la policy di
+ default.
+
+
+
+ -j TOS
+
+ Usabile solo nella tabella mangle, permette di
+ cambiare il TOS (Type Of Service) di un pacchetto
+ con l'opzione --set-tos. Per un elenco dei
+ parametri disponibili: iptables -j TOS -h
+
+
+
+ -j MIRROR
+
+ Curioso e sperimentale, questo target invia un
+ 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.
+ 10.6 Tabella Filter
+
+ 10.7 Flush automatico per
+ macchine remote
+
+
+ at now +5 min
+at> /sbin/iptables -F
+at> [CTR+d]
+
+ 10.8 Gestione regole
+ (rules)
+
+
+
+
+
+
+
+
+
+ 10.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
+
+
+ 10.9.1 Iptables-save
+
+
+# iptables-save >> /root/firewall/basic_fw
+
+
+ 10.9.2 Iptables-restore
+
+
+/sbin/iptables-restore /root/firewall/basic_fw
+
+ 10.10 Esempi
+
+
+
+
+
+
+ 10.10.1 Bloccare i ping
+ dall'esterno
+
+
+iptables -A INPUT -i ppp0 -p ICMP -j DROP
+
+ 10.10.2 Masquerading
+ (sNAT)
+
+
+
+
+
+
+ 10.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
+
+ 11 FTP Server
+
+
+
+
+
+
+
+
+
+
+ 11.1 Pacchetti
-
-
-
-
- [2]
+ Anche se nato per i sistemi Windows, Samba puo'
- essere usato anche per montare cartelle sotto
- GNU/Linux come alternativa a NFS. Per la condivisione
- di stampanti sarebbe invece opportuno intervenire
- direttamente su CUPS.
-
+
-dpkg-reconfigure samba-common
-
+ 6.2 Passwords e
- autenticazione
+ "#id129">11.2 Sessioni ftp
-
-
- 6.3 Creazione Utenti
+
-adduser --shell /bin/false sambo
-
+
-sambo:x:1001:1001:Sambo utente Samba,,,:/home/sambo:/bin/false
-
+
-smbpasswd -a sambo
-
+
-smbpasswd sambo
-
+ 6.4 Creare la
- condivisione
+
-# mkdir /home/sambo/sambo_share
-# chown sambo:sambo /home/sambo/sambo_share/
-
+ 6.4.1 Sicurezza: permessi di
- esecuzione sul server
+
- /dev/hda10 /mnt/share ext3 rw,
- nosuid,noexec 0 3
-
+
+
+
+ 6.5 Configurazione
- dell'applicativo Samba vero e proprio.
+ "#id130">11.3 Configurazione
+ iniziale
+
+
+zoo:~# ftp localhost
+Connected to localhost.localdomain.
+220 (vsFTPd 2.0.7)
+Name (localhost:root): anonymous
+331 Please specify the password.
+Password:
+230 Login successful.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp> ls
+200 PORT command successful. Consider using PASV.
+150 Here comes the directory listing.
+-rw-r--r-- 1 0 0 0 Feb 03 17:17 anoni
+226 Directory send OK.
+
+ 11.4 Abilitare gli utenti
+ locali
-
-[sambo_share]
- # Percorso della cartella condivisa
- path = /home/sambo/sambo_share
- # Se gli utenti possono scrivere / modificare file
- writable = yes
- # Negoziazione degli accessi su base utenti / passwords
- valid users = sambo
+# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
+anonymous_enable=NO
+# Disabilitiamo l'utente anonimo
- # #######################################
- # Altri parametri opzionali di interesse
- # Se posso vedere la condivisione da esplora risorse
- # anche se non ho i privilegi per accedervi.
- browseable = yes
- # Commento indicativo della risorsa
- comment = Condivisione per Sambo
+# Uncomment this to allow local users to log in.
+local_enable=YES
+# Accesso garantito agli utenti di sistema
+
+# Uncomment this to enable any form of FTP write command.
+write_enable=YES
+# Permettiamo agli utenti di caricare documenti nella loro home
+
+# You may fully customise the login banner string:
+ftpd_banner=Benvenuti al servizio ftp del sito example.com
- 6.6 Testare il Servizio
+ "#id132">11.5 Jail chroot
+
+
+# You may restrict local users to their home directories. See the FAQ for
+# the possible risks in this before using chroot_local_user or
+# chroot_list_enable below.
+chroot_local_user=YES
+
-
+Remote system type is UNIX.
+Using binary mode to transfer files.
+ftp> pwd
+257 "/"
+ftp> cd /etc/
+550 Failed to change directory.
+
+ 11.6 Permessi sul
+ filesystem
+
+
-smbclient -U sambo -L localhost
+/dev/mapper/store-homes /home ext3 rw,nosuid,noexec 0 2
+ 11.7 Shell dell'utente
+
+
-Sharename Type Comment
---------- ---- -------
-sambo_share Disk Condivisione per Sambo
-print$ Disk Printer Drivers
-IPC$ IPC IPC Service (base server)
-sambo Disk Home Directories
+# adduser --shell /bin/false nome_utente
-
+nome_utente:x:1001:1001::/var/spool/postfix:/bin/bash
+# la riga sopra deve essere trasformata in
+nome_utente:x:1001:1001::/var/spool/postfix:/bin/false
+
-
-mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo
+...
+/bin/false
7 NOTE
+ 11.8 Altre opzioni
-
-
+
+
+
-
+