]> git.piffa.net Git - doc/.git/blob - source/servizi.txt
Modified servizi, checked 'till line 290
[doc/.git] / source / servizi.txt
1 =====================
2 Servizi passo a passo
3 =====================
4 ----------------------------------------------------------
5 Appunti sulla installazione e configurazione dei servizi
6 ----------------------------------------------------------
7
8   :Author: Andrea Manni
9   :Copyright: GFDL
10   :Version: 0.2
11
12 Questa guida e' dedicata agli studenti delle lezioni di informatica tenute da Andrea nel lab208. Nella parte iniziale sono presenti alcuni richiami alle impostazioni tipiche 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 .
13
14 .. contents::
15
16 Generato con: http://docutils.sourceforge.net/rst.html
17
18 Configurazione sistema
19 =========================
20 Solo per uso interno
21 ---------------------------
22
23 Impostazioni di base per la configurazione del sistema operativo e della rete nel laboratorio 208 facente parte della rete piffa.net .
24
25
26 Rete
27 ------
28
29 Parametri della rete attualmente in uso:
30
31 ============= ================
32      Parametri della rete
33 ------------------------------
34 rete          10.10.208.0/24
35 netmask       255.255.255.0
36 broadcast     10.10.208.255
37 gateway       10.10.208.254
38 gateway       10.10.208.250
39               persistente
40 DNS           10.10.208.254
41 DNS           10.10.208.250
42               persistente
43 ============= ================
44
45
46
47 Bash completion
48 -------------------
49
50 Abilitare /etc/bash_completion nel file ``/etc/bash.bashrc`` oppure ``~/.bashrc`` ::
51
52         . /etc/bash_completion
53
54 Il file ``/etc/bash_completion`` deve essere ,ente nel sistema, in caso contrario installare il pacchetto: ``bash-completion``
55
56
57 Vim
58 ------------
59
60 Sara' opportuno installare la versione completa dell'editor vim tramite il pacchetto vim e modificare il file di configurazione generale ``/etc/vim/vimrc`` ::
61
62     " All system-wide defaults are set in $VIMRUNTIME/debian.vim (usually just
63     " /usr/share/vim/vimcurrent/debian.vim) and sourced by the call to :runtime
64     " you can find below.  If you wish to change any of those settings, you should
65     " do it in this file (/etc/vim/vimrc), since debian.vim will be overwritten
66     " everytime an upgrade of the vim packages is performed.  It is recommended to
67     " make changes after sourcing debian.vim since it alters the value of the
68     " 'compatible' option.
69     
70     " This line should not be removed as it ensures that various options are
71     " properly set to work with the Vim-related packages available in Debian.
72     runtime! debian.vim
73     
74     " Uncomment the next line to make Vim more Vi-compatible
75     " NOTE: debian.vim sets 'nocompatible'.  Setting 'compatible' changes numerous
76     " options, so any other options should be set AFTER setting 'compatible'.
77     "set compatible
78     
79     " Vim5 and later versions support syntax highlighting. Uncommenting the next
80     " line enables syntax highlighting by default.
81     syntax on
82     
83     " If using a dark background within the editing area and syntax highlighting
84     " turn on this option as well
85     set background=dark
86     
87     " Uncomment the following to have Vim jump to the last position when
88     " reopening a file
89                       
90     if has("autocmd")
91       au BufReadPost * if line("'\"") > 0 && line("'\"") <= line("$")
92         \| exe "normal! g'\"" | endif
93     endif
94     
95     " Uncomment the following to have Vim load indentation rules and plugins
96     " according to the detected filetype.
97     if has("autocmd")
98       filetype plugin indent on
99     endif
100     
101     " The following are commented out as they cause vim to behave a lot
102     " differently from regular Vi. They are highly recommended though.
103     set showcmd             " Show (partial) command in status line.
104     "set showmatch          " Show matching brackets.
105     set ignorecase          " Do case insensitive matching
106     "set smartcase          " Do smart case matching
107     "set incsearch          " Incremental search
108     set autowrite           " Automatically save before commands like :next and :make
109     "set hidden             " Hide buffers when they are abandoned
110     "set mouse=a            " Enable mouse usage (all modes) in terminals
111     
112     " Source a global configuration file if available
113     " XXX Deprecated, please move your changes here in /etc/vim/vimrc
114     if filereadable("/etc/vim/vimrc.local")
115       source /etc/vim/vimrc.local
116     endif                                             
117
118 VNC
119 ------------
120
121 Scaricare il pacchetto ``xtightvncviewer`` e lo script ``guarda.sh`` che deve essere reso eseguibile in una posizione (collocazione nel *path* degli utenti, es ``echo $PATH`` per visualizzare l'attuale path ) comoda per gli utenti.
122
123 Procedura::
124
125     su root
126     cd /bin
127     wget http://debian.piffa.net/guarda.sh
128     chmod +x guarda.sh
129     exit
130
131 Si noti che non e' possibile lanciare un applicativo sul server grafico di un utente da una shell in cui si e' loggati come altro utente, anchee se root. E' quindi necessario essere l'utente di sistema che si e' loggato inizialmente nella sessione grafica per poter lanciare lo script guarda.sh .
132
133 Controllare con ``whoami`` di essere l'utente normale (es ``utente | studente | proprio nome`` ), in caso si sia assunta una altra ``id`` si apra un altra shell o si esca da quella attuale con ``exit`` .
134
135 Lista dei pacchetti di base
136 -----------------------------
137
138 I pacchetti installati generalmente [#]_ per poter seguire le lezioni sono::
139
140         kde-core kdm kde-i18n-it xorg vim less xtightvncviewer 
141
142 .. [#] ``kde-core`` e' piu' leggero del pacchetto ``kde``      
143
144 Apt configurazione
145 ---------------------
146
147 Vediamo i due file principali di apt:
148
149 * ``/etc/apt/sources.list``
150
151 * ``/etc/apt/apt.conf``
152
153 sources.list
154 ~~~~~~~~~~~~~~~~
155
156 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' l'archivio  principale, ``non-free`` per il software non libero, ``contrib`` per i pacchetti non realizzati dai manutentori ufficiali).
157
158 Gli archivi sono generalmente:
159
160 * ``deb`` per pacchetti Debian binari
161
162 * ``deb-src`` per i pacchetti sorgenti (quindi da compilare, come il kernel) degli stessi pacchetti binari. In genere se non compilate spesso potete evitare di tracciare i sorgenti per risparmiare tempo e banda.
163
164
165 ``/etc/apt/sources.list`` ::
166
167     # esempio di accesso a un CDROM:
168     # cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 kde-CD Binary-1 20090$
169     
170     # Archivio principale debian via http su piffa.net,
171     # non funziona al difuori dell'aula dei corsi
172     deb http://debian.piffa.net/debian/ Lenny main
173     # deb http://debian.piffa.net/debian/ Lenny  non-free contrib
174     
175     # Mirror da kernel.org da usare a casa:
176     deb http://mirrors.eu.kernel.org/debian/ Lenny main
177     
178     # Security dal sito principale
179     deb http://security.debian.org/ Lenny/updates main
180     deb-src http://security.debian.org/ Lenny/updates main
181     
182     # Debian volatile per le cose soggette a cambiamenti non legati
183     # a dinamiche di sicurezza
184     deb http://volatile.debian.org/debian-volatile Lenny/volatile main
185     deb-src http://volatile.debian.org/debian-volatile Lenny/volatile main
186     
187     # Esempio di accesso a un filesystem locale contenente i pacchetti:
188     # deb file:/mnt/mirror Sid main non-free contrib
189
190
191 /etc/apt/apt.conf
192 ~~~~~~~~~~~~~~~~~~
193
194 Questo file contiene le opzioni di apt, come ad esempio il proxy::
195
196     Acquire::http::Proxy "http://10.10.208.254:3128"
197
198
199 Servizi
200 ========
201
202 Squid
203 ======
204
205 Apache
206 ========
207
208 DNSmasq
209 ========
210
211 Samba
212 ======
213
214 Samba e' un progetto libero che fornisce servizi di condivisione di file e stampanti a client SMB/CIFS.
215
216 Samba e' liberamente disponibile, al contrario di altre implementazioni SMB/CIFS, e permette di ottenere interoperabilità tra Linux, Unix, Mac OS X e Windows.
217
218 Samba e' un software che può 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, può inoltre prendere parte ad un dominio Active Directory.
219
220 Pacchetti da installare per utilizzare Samba in modalita' client [#]_ ::
221
222
223         samba-client
224
225 Pacchetti da installare per utilizzare Samba in modalita' server::
226
227         samba smbfs smbclient
228
229 .. [#] Anche se nato per le 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``.
230
231 Durante la prima installazione viene chiesto il nome del gruppo di appartenenza, il default per Windows e' ``WORKGROUP``. In aula usiamo invece ``208`` . 
232
233 Se necessario per riconfigurare Samba si usi il comando::
234
235         dpkg-reconfigure samba-common
236
237 Quando si utilizza Samba bisogna tener conto di 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:
238
239 1 Sistema \*Unix ( GNU/Linux )
240           E' la password dell'utente di sistema che viene usata sul sistema operativo su cui gira il software 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 in una certa posizione del file system (ad esempio nella cartella ``/mnt/condivisione`` che sara' stata necessariamente creata inizialmente dall'utente ``root``)  per mancanza di privilegi allora neanche Samba potra' farlo nel momento in  mette a disposizione la risorsa all'utente. Se si montano file-system dedicati per le condivisioni controllare i permessi e propieta' dei *punti di mount**.
241           Queste passwords sono salvate nel solito file /etc/shadow (richiamato da /etc/passwd).
242
243 2 Password per l'applicativo Samba
244           Samba deve essere compatibile con Windows e quindi utilizzare un sistema di criptazione delle password diverso da /etc/shadow.a Le password per Samba possono essere gestite ad esempio col comando ``smbpasswd`` e vengono generalmente salvate all'interno di  ``/var/lib/samba/passdb.tdb`` .
245
246 3 Password per Windows.
247           Gli utenti Windows effettuano il log-in alla partenza della sessione di Windows. Se si avra' l'accortezza di usare sempre stessa password data precedentemente anche a Windows (o viceversa impostare la password per GNU/Linux / Samba uguale a quella di Windows) l'utente potra' accedere automaticamente alle condivisioni a lui disponibili.
248
249
250 Creazione Utenti
251 -------------------
252
253 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!
254
255 Creazione di un utente denominato sambo::
256         
257         adduser --shell /bin/false sambo
258
259 Nel file ``/etc/passwd`` avremo qualcosa come::
260
261         sambo:x:1001:1001:Sambo utente Samba!,,,:/home/sambo:/bin/false
262
263
264 Aggiunta dell'utente al database delle password per Samba e generazione della sua password:
265         
266         smbpasswd -a sambo
267
268 Se successivamente si vorra' modificare la password di un utente gia' esistente si usi:
269
270         smbpasswd  sambo
271
272
273 La password sotto Windows verra' modificata sul sistema Windows.
274
275 Creare la condivisione
276 ------------------------
277
278 La condivisione altro non e' che una cartella sul server che viene resa disponibile sui client negoziando l'accesso in base all'autenticazione tramite user-name / password. Si decida se fisicamente 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 gestiscano gli accessi sotto GNU/Linux tramite i gruppi.
279
280 Creazione della risorsa sambo_share nella home dell'utente sambo::
281
282         # mkdir /home/sambo/sambo_share
283         # chown sambo:sambo /home/sambo/sambo_share/
284
285 Bisognerebbe notare i permessi di esecuzione del file-system che ospita la cartella. Se i file che saranno contenuti nella condivisione saranno da usarsi sotto Windows non c'e' motivo che questi siano eseguibili sotto GNU/Linux. 
286 Si potrebbe avere quindi, ipotizzando una condivisione in /mnt/share che consista in un file system dedicato:
287
288 In /etc/fstab ::
289
290         /dev/hda10       /mnt/share      ext3    rw,nosuid,noexec  0  3
291
292 Si noti anche l'uso di *nosuid* per evitare la possibilita' di eseguire programmi con credenziali diverse da quelle originali.
293
294 Configurazione dell'applicativo Samba vero e proprio.
295 ------------------------------------------------------
296
297 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.
298
299
300 /etc/samba/smb.conf riga ~235 , Share Definitions (in vim si usi 235gg )::
301
302     [sambo_share]
303             # Percorso della cartella condivisa
304             path = /home/sambo/sambo_share
305             # Se gli utenti possono scrivere / modificare file
306             writable = yes
307             # Negoziazione degli accessi su base utenti / passwords
308             valid users = sambo
309             # Altri parametri opzionali di interesse
310             # Se posso vedere la condivisione da esplora risorse
311             # anche se non ho i privilegi per accedervi.
312             browseable = yes
313             # Commento indicativo della risorsa
314             comment = Condivisione per Sambo
315
316 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 .
317
318
319 Testare il Servizio
320 --------------------
321
322 Come testare il servizio
323
324 es::
325         
326          smbclient -U sambo -L localhost
327
328 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::
329
330         Sharename       Type      Comment
331         ---------       ----      -------
332         sambo_share     Disk      Condivisione per Sambo
333         print$          Disk      Printer Drivers
334         IPC$            IPC       IPC Service (base server)
335         sambo           Disk      Home Directories
336
337 In alternativa e' possibile montare realmente la condivisone anche su GNU/Linux tramite un client per samba e testare il corretto funzionamento::
338
339         mount -t smbfs //localhost/sambo_share /mnt/sambo_mount/ --verbose -o user=sambo 
340
341 NOTE
342 ========
343
344 * controllato fino alla riga 289
345
346 * definizioni degli applicativi prese direttamente da wikipedia
347
348 sintassi: in ``monospace`` :
349
350 * nomi di files
351 * comandi
352 * pacchetti