1 <?xml version="1.0" encoding="utf-8" ?>
2 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6 <meta name="generator" content="Docutils 0.5: http://docutils.sourceforge.net/" />
7 <title>Servizi passo a passo</title>
8 <style type="text/css">
11 :Author: David Goodger (goodger@python.org)
12 :Id: $Id: html4css1.css 5196 2007-06-03 20:25:28Z wiemann $
13 :Copyright: This stylesheet has been placed in the public domain.
15 Default cascading style sheet for the HTML output of Docutils.
17 See http://docutils.sf.net/docs/howto/html-stylesheets.html for how to
18 customize this style sheet.
21 /* used to remove borders from tables and images */
22 .borderless, table.borderless td, table.borderless th {
25 table.borderless td, table.borderless th {
26 /* Override padding for "table.docutils td" with "! important".
27 The right padding separates the table cells. */
28 padding: 0 0.5em 0 0 ! important }
31 /* Override more specific margin styles with "! important". */
32 margin-top: 0 ! important }
34 .last, .with-subtitle {
35 margin-bottom: 0 ! important }
41 text-decoration: none ;
48 margin-bottom: 0.5em }
50 /* Uncomment (and remove this text!) to get bold-faced definition list terms
58 div.abstract p.topic-title {
62 div.admonition, div.attention, div.caution, div.danger, div.error,
63 div.hint, div.important, div.note, div.tip, div.warning {
65 border: medium outset ;
68 div.admonition p.admonition-title, div.hint p.admonition-title,
69 div.important p.admonition-title, div.note p.admonition-title,
70 div.tip p.admonition-title {
72 font-family: sans-serif }
74 div.attention p.admonition-title, div.caution p.admonition-title,
75 div.danger p.admonition-title, div.error p.admonition-title,
76 div.warning p.admonition-title {
79 font-family: sans-serif }
81 /* Uncomment (and remove this text!) to get reduced vertical space in
83 div.compound .compound-first, div.compound .compound-middle {
84 margin-bottom: 0.5em }
86 div.compound .compound-last, div.compound .compound-middle {
95 div.dedication p.topic-title {
103 div.footer, div.header {
112 div.line-block div.line-block {
118 margin: 0 0 0.5em 1em ;
119 border: medium outset ;
121 background-color: #ffffee ;
126 div.sidebar p.rubric {
127 font-family: sans-serif ;
130 div.system-messages {
133 div.system-messages h1 {
137 border: medium outset ;
140 div.system-message p.system-message-title {
147 h1.section-subtitle, h2.section-subtitle, h3.section-subtitle,
148 h4.section-subtitle, h5.section-subtitle, h6.section-subtitle {
166 ol.simple, ul.simple {
170 list-style: decimal }
173 list-style: lower-alpha }
176 list-style: upper-alpha }
179 list-style: lower-roman }
182 list-style: upper-roman }
196 white-space: nowrap }
205 font-family: sans-serif ;
210 font-family: sans-serif ;
222 pre.literal-block, pre.doctest-block {
227 font-family: sans-serif ;
228 font-style: oblique }
230 span.classifier-delimiter {
231 font-family: sans-serif ;
235 font-family: sans-serif }
238 white-space: nowrap }
246 span.section-subtitle {
247 /* font-size relative to parent (h1..h6 element) */
251 border-left: solid 1px gray;
259 margin-bottom: 0.5em }
262 border-left: solid 1px black;
265 table.docutils td, table.docutils th,
266 table.docinfo td, table.docinfo th {
267 padding-left: 0.5em ;
268 padding-right: 0.5em ;
269 vertical-align: top }
271 table.docutils th.field-name, table.docinfo th.docinfo-name {
274 white-space: nowrap ;
277 h1 tt.docutils, h2 tt.docutils, h3 tt.docutils,
278 h4 tt.docutils, h5 tt.docutils, h6 tt.docutils {
282 list-style-type: none }
287 <div class="document" id="servizi-passo-a-passo">
288 <h1 class="title">Servizi passo a passo</h1>
289 <h2 class="subtitle" id="appunti-sulla-installazione-e-configurazione-dei-servizi">Appunti sulla installazione e configurazione dei servizi</h2>
292 <table class="docutils field-list" frame="void" rules="none">
293 <col class="field-name" />
294 <col class="field-body" />
296 <tr class="field"><th class="field-name">Author:</th><td class="field-body">Andrea Manni</td>
298 <tr class="field"><th class="field-name">Copyright:</th><td class="field-body">GFDL</td>
300 <tr class="field"><th class="field-name">Version:</th><td class="field-body">0.2</td>
305 <div class="contents topic" id="contents">
306 <p class="topic-title first">Contents</p>
308 <li><a class="reference internal" href="#configurazione-sistema" id="id1">Configurazione sistema</a><ul>
309 <li><a class="reference internal" href="#rete" id="id2">Rete</a></li>
310 <li><a class="reference internal" href="#bash-completion" id="id3">Bash completion</a></li>
311 <li><a class="reference internal" href="#vim" id="id4">Vim</a></li>
312 <li><a class="reference internal" href="#vnc" id="id5">VNC</a></li>
313 <li><a class="reference internal" href="#lista-dei-pacchetti-di-base" id="id6">Lista dei pacchetti di base</a></li>
314 <li><a class="reference internal" href="#apt-configurazione" id="id7">Apt configurazione</a><ul>
315 <li><a class="reference internal" href="#sources-list" id="id8">sources.list</a></li>
316 <li><a class="reference internal" href="#etc-apt-apt-conf" id="id9">/etc/apt/apt.conf</a><ul>
317 <li><a class="reference internal" href="#servizi" id="id10">Servizi</a></li>
318 <li><a class="reference internal" href="#squid" id="id11">Squid</a></li>
319 <li><a class="reference internal" href="#apache" id="id12">Apache</a></li>
320 <li><a class="reference internal" href="#dnsmasq" id="id13">DNSmasq</a></li>
321 <li><a class="reference internal" href="#samba" id="id14">Samba</a></li>
326 <li><a class="reference internal" href="#creazione-utenti" id="id15">Creazione Utenti</a></li>
327 <li><a class="reference internal" href="#creare-la-condivisione" id="id16">Creare la condivisione</a></li>
328 <li><a class="reference internal" href="#configurazione-dell-applicativo-samba-vero-e-proprio" id="id17">Configurazione dell'applicativo Samba vero e proprio.</a></li>
329 <li><a class="reference internal" href="#testare-il-servizio" id="id18">Testare il Servizio</a></li>
334 <p>Generato con: <a class="reference external" href="http://docutils.sourceforge.net/rst.html">http://docutils.sourceforge.net/rst.html</a></p>
335 <div class="section" id="configurazione-sistema">
336 <h1><a class="toc-backref" href="#id1">Configurazione sistema</a></h1>
337 <p>Inpostazioni di base per la configurazione del sistema operativo</p>
338 <div class="section" id="rete">
339 <h2><a class="toc-backref" href="#id2">Rete</a></h2>
340 <p>Parametri della rete attualmente in uso:</p>
341 <pre class="literal-block">
342 ============= ================
344 ============= ================
345 netmask 255.255.255.0
346 broadcast 10.10.208.255
347 gateway 10.10.208.254
348 gateway 10.10.208.250
353 ============= ================
356 <div class="section" id="bash-completion">
357 <h2><a class="toc-backref" href="#id3">Bash completion</a></h2>
358 <p>Abilitare /etc/bash_completion nel file /etc/bash.bashrc oppure ~/.bashrc</p>
359 <pre class="literal-block">
360 . /etc/bash_completion
362 <p>/etc/bash_completion deve essere pre istallato, nel caso che non sia disponibile installare il pacchetto: bash-completion</p>
364 <div class="section" id="vim">
365 <h2><a class="toc-backref" href="#id4">Vim</a></h2>
366 <p>Sara' opportuno installare la versine completa dell'editor vim tramite il pacchetto vim e mnodificare il file di configurazione generale /etc/vim/vimrc</p>
367 <pre class="literal-block">
368 " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
369 " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
370 " you can find below. If you wish to change any of those settings, you should
371 " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
372 " everytime an upgrade of the vim packages is performed. It is recommended to
373 " make changes after sourcing debian.vim since it alters the value of the
374 " 'compatible' option.
376 " This line should not be removed as it ensures that various options are
377 " properly set to work with the Vim-related packages available in Debian.
380 " Uncomment the next line to make Vim more Vi-compatible
381 " NOTE: debian.vim sets 'nocompatible'. Setting 'compatible' changes numerous
382 " options, so any other options should be set AFTER setting 'compatible'.
385 " Vim5 and later versions support syntax highlighting. Uncommenting the next
386 " line enables syntax highlighting by default.
389 " If using a dark background within the editing area and syntax highlighting
390 " turn on this option as well
393 " Uncomment the following to have Vim jump to the last position when
394 " reopening a file
396 if has("autocmd")
397 au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
398 \| exe "normal! g'\"" | endif
401 " Uncomment the following to have Vim load indentation rules and plugins
402 " according to the detected filetype.
403 if has("autocmd")
404 filetype plugin indent on
407 " The following are commented out as they cause vim to behave a lot
408 " differently from regular Vi. They are highly recommended though.
409 set showcmd " Show (partial) command in status line.
410 "set showmatch " Show matching brackets.
411 set ignorecase " Do case insensitive matching
412 "set smartcase " Do smart case matching
413 "set incsearch " Incremental search
414 set autowrite " Automatically save before commands like :next and :make
415 "set hidden " Hide buffers when they are abandoned
416 "set mouse=a " Enable mouse usage (all modes) in terminals
418 " Source a global configuration file if available
419 " XXX Deprecated, please move your changes here in /etc/vim/vimrc
420 if filereadable("/etc/vim/vimrc.local")
421 source /etc/vim/vimrc.local
425 <div class="section" id="vnc">
426 <h2><a class="toc-backref" href="#id5">VNC</a></h2>
427 <p>Scaricare il pacchetto xtightvncviewer, e lo script guarda.sh che deve essere reso eseguibile in una posizione (nel senso di collocazione nel path degli utenti) comoda per gli utenti.</p>
429 <pre class="literal-block">
432 wget http://debian.piffa.net/guarda.sh
436 <p>Si noti, per pieta' divina, che non e' possibile lanciare un applicativo grafico sul server grafico di un utente di sistema da una shell in cui si e' loggati come altro utente, in questo caso root. E' quindi necessario essere l'utente di sistema che si e' loggato inizialmente nella sessione grafica per poter lanciare lo script guarda.sh .</p>
438 <div class="section" id="lista-dei-pacchetti-di-base">
439 <h2><a class="toc-backref" href="#id6">Lista dei pacchetti di base</a></h2>
440 <p>I pacchetti installati generalemnte durante le lezioni sono:</p>
441 <pre class="literal-block">
442 kde-core kdm kde-i18n-it xorg vim less xtightvncviewer
445 <div class="section" id="apt-configurazione">
446 <h2><a class="toc-backref" href="#id7">Apt configurazione</a></h2>
447 <p>Vediamo i due file principali di apt:</p>
448 <pre class="literal-block">
449 * /etc/apt/sources.list
453 <div class="section" id="sources-list">
454 <h3><a class="toc-backref" href="#id8">sources.list</a></h3>
455 <p>Questo file contiene i sorgenti da cui apt preleva i pacchetti da installare tramite dpkg, vengono quindi precisati i metodi (ad es. http / ftp / cdrom / file), la release che si vuole tracciare (es stable , testing , unstable oppure i corrispondenti release name es: lenny, squeeze, sid), i rami di interesse (es: main che e' la parte principale, non-free per il software non libero, contrib per i pacchetti non realizzati dai manutentori ufficiali).</p>
456 <p>Gli archivi sono generalemnte:</p>
457 <pre class="literal-block">
458 * deb per pacchetti debian binari
460 * deb-src per i pacchetti sorgenti (quindi da compilare, come il kernel) degli stessi pacchetti binari. Se non compilate generalmente i vostri pacchetti potete evitare di tracciare i sorgenti per risparmiare tempo e banda.
462 <p>/etc/apt/sources.list</p>
463 <pre class="literal-block">
464 # esempio di accesso a un CDROM:
465 # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
467 # Archivio principale debian via http su piffa.net,
468 # non funziona al difuori dell'aula dei corsi
469 deb http://debian.piffa.net/debian/ lenny main
470 # deb http://debian.piffa.net/debian/ lenny non-free contrib
472 # Mirror da kernel.org da usare a casa:
473 deb http://mirrors.eu.kernel.org/debian/ lenny main
475 # Security dal sito principale
476 deb http://security.debian.org/ lenny/updates main
477 deb-src http://security.debian.org/ lenny/updates main
479 # Debian volatile per le cose soggette a cambiamenti non legati
480 # a dinamiche di sicurezza
481 deb http://volatile.debian.org/debian-volatile lenny/volatile main
482 deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
484 # Esempio di accesso a un filesystem locale contenente i pacchetti:
485 # deb file:/mnt/mirror sid main non-free contrib
488 <div class="section" id="etc-apt-apt-conf">
489 <h3><a class="toc-backref" href="#id9">/etc/apt/apt.conf</a></h3>
490 <p>Questo file contiene le opzioni di apt, come ad esempio il proxy:</p>
491 <pre class="literal-block">
492 Acquire::http::Proxy "http://10.10.208.254:3128"
494 <div class="section" id="servizi">
495 <h4><a class="toc-backref" href="#id10">Servizi</a></h4>
497 <div class="section" id="squid">
498 <h4><a class="toc-backref" href="#id11">Squid</a></h4>
500 <div class="section" id="apache">
501 <h4><a class="toc-backref" href="#id12">Apache</a></h4>
503 <div class="section" id="dnsmasq">
504 <h4><a class="toc-backref" href="#id13">DNSmasq</a></h4>
506 <div class="section" id="samba">
507 <h4><a class="toc-backref" href="#id14">Samba</a></h4>
508 <p>Pacchetti da installare per utilizzare samba in modalita' server:</p>
509 <pre class="literal-block">
510 samba smbfs smbclient
512 <p>Durante la prima installazione viene chiesto ilnome del gruppo di appartenenza, il default per windows e' WORKGROUP. In aula usiamo invece 208 .
513 Per riconfigurare samba si usi il comando:</p>
514 <pre class="literal-block">
515 dpkg-reconfigure samba-common
517 <p>Quando si utilizza samba bisogna tener conto di 3 livelli di password:</p>
521 E' la password di sistema che viene usata sul sistema operativo su cui gira samba. E' importante tenere conto anche delle user id e group id degli utenti che dovranno fisicamente scrivere sui file system. Se un utente non puo' scrivere sul file system per mancanza di privilegi allora neanche samba potra' farlo nel momento in cui gli mette a disposizione la risorsa.
522 Queste passwords sono salvate nel solito file /etc/shadow (richiamato da /etc/passwd).</li>
523 <li>Password per l'applicativo samba
524 Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da /etc/shadow.a Le password per l'applicativo samba vengono gestite ad esempio col comando smbpasswd e vengono salvate all'interno di /var/lib/samba/passdb.tdb .</li>
525 <li>Password per windows.
526 Gli utenti windows effettuazno il log-in alla partenza della sessione di windows. Se si avra' l'accortezza di usare la stessa password data precedentemente anche a windows (o viceversa impostare la password per GNU/Linux / Samba ugale a quella di Windows) l'utente potra' accedere automaticamente alle condivioni a lui disponibili.</li>
529 <p>Password di samba vengono salvate nel file: /var/lib/samba/passdb.tdb</p>
533 <div class="section" id="creazione-utenti">
534 <h2><a class="toc-backref" href="#id15">Creazione Utenti</a></h2>
535 <p>Creiamo per primo l'utente sotto GNU/Linux, facendo attenzione a <em>non</em> dargli una shell di sistema. Gli utenti Windows non hanno bisogno di poter eseguire comandi sul server!</p>
536 <p>Creazione di un utente denominato sambo:</p>
537 <pre class="literal-block">
538 adduser --shell /bin/false sambo
540 <p>Nota: Ricordarsi di usare sempre la stessa password.
541 nel file /etc/passwd avremo qualcosa come:</p>
542 <pre class="literal-block">
543 sambo:x:1001:1001:Sambo utente samba!,,,:/home/sambo:/bin/false
545 <p>Aggiunta dell'utente al database delle password per samba e generazione della sua password:</p>
547 smbpasswd -a sambo</blockquote>
548 <p>Se sucessivamente si vorra' modificare la password di un utente gia' esistente si usi:</p>
550 smbpasswd sambo</blockquote>
551 <p>La password sotto windows verra' modificata sul sistema Windows.</p>
553 <div class="section" id="creare-la-condivisione">
554 <h2><a class="toc-backref" href="#id16">Creare la condivisione</a></h2>
555 <p>La condivisione altro non e' che una cartella sul server che viene resa disponibile sui client negoziando l'accesso in base all'autenticazione tramite esername / password. Si decida se fisicamente debba risiendere 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 gestiscano gli accessi sotto GNU/Linux tramite i gruppi.</p>
556 <p>Creazione della risorsa sambo_share nella home dell'utente sambo:</p>
557 <pre class="literal-block">
558 # mkdir /home/sambo/sambo_share
559 # chown sambo:sambo /home/sambo/sambo_share/
561 <p>Bisognerebbe notare i permessi di esecuzione del filesystem che ospita la carterlla. Se i file che saranno contenuti nella condivisione saranno da usarsi sotto Windows non c'e' motivo che questi siano eseguibili sotto GNU/Linux.
562 Si potrebbe avere quindi, ipotizzando una condivisione in /mnt/share che consista in un file system dedicato:</p>
564 <pre class="literal-block">
565 /dev/hda10 /mnt/share ext3 rw,nosuid,noexec 0 3
567 <p>Si noti anche l'uso di <em>nosuid</em> per evitare la possibilita' di eseguire programmi con credenziali diverse da quelle originali.</p>
569 <div class="section" id="configurazione-dell-applicativo-samba-vero-e-proprio">
570 <h2><a class="toc-backref" href="#id17">Configurazione dell'applicativo Samba vero e proprio.</a></h2>
571 <p>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.</p>
572 <p>/etc/samba/smb.conf riga ~235 , Share Definitions (in vim si usi 235gg ):</p>
573 <pre class="literal-block">
575 # Percorso della cartella condivisa
576 path = /home/sambo/sambo_share
577 # Se gli utenti possono scrivere / modificare file
579 # Negoziazione degli accessi su base utenti / passwords
581 # Altri parametri opzionali di interesse
582 # Se posso vedere la condivisione da esplora risorse
583 # anche se non ho i privilegi per accedervi.
585 # Commento indicativo della risorsa
586 comment = Condivisione per Sambo
588 <p>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/samba# /etc/init.d/samba restart .</p>
590 <div class="section" id="testare-il-servizio">
591 <h2><a class="toc-backref" href="#id18">Testare il Servizio</a></h2>
592 <p>Come testare il servizio</p>
594 <pre class="literal-block">
595 smbclient -U sambo -L localhost
597 <p>Questo comando permette di esplorare la risorsa qualificandosi come utnete, in quresto modo potete testare il corretto funzionamento dell'autenticazione. Si provi inizialmente a sbagliare la password deliberatamente, poi a inserirla correttamente: dovrebbbero essere visibili le risorse disponibili al solo utente sambo: la suo /home e la cartella samba_share:</p>
598 <pre class="literal-block">
599 Sharename Type Comment
600 --------- ---- -------
601 sambo_share Disk Condivisione per Sambo
602 print$ Disk Printer Drivers
603 IPC$ IPC IPC Service (base server)
604 sambo Disk Home Directories
606 <p>In alternativa e' possibile montare realmente la condivisone anche su linux tramite un client per samba e testare il corretto funzionamento:</p>
607 <pre class="literal-block">
608 mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo