]> git.piffa.net Git - doc/.git/blob - source/ricettario.rst
Aggiunto script per aggiornamento automatico DNS
[doc/.git] / source / ricettario.rst
1 =====================
2 Ricettario
3 =====================
4 --------------------------------------------------
5 Appunti e note sparse per corsi di reti su Linux
6 --------------------------------------------------
7
8  :Author: Andrea Manni
9  :Copyright: GFDL
10  :Version: 1.0
11
12 .. sectnum::
13 .. contents::
14
15 Generato con: http://docutils.sourceforge.net/rst.html
16
17 Comandi
18 =============
19
20 Appunti ed esempi sull'utilizzo di alcuni comandi comuni.
21
22 Propieta' dei files
23 --------------------
24
25 Vediamo come leggere l'output del comando *ls*::
26
27         ls -l
28
29         drwxr-xr-x 2 andrea staff   4096 2008-09-16 22:05 cartella
30          |  |  |     |      |       |    |                Nome file
31          |  |  |     |      |       |    Data di creazione e ora
32          |  |  |     |      |       inodes (non e' la dimensione del file)
33          |  |  |     |      gruppo
34          |  |  |     utente
35          |  |  ooo = others
36          |  ggg = group
37          uuu = user
38
39
40 UGO
41         Acronimo per: User - Groups Others
42
43
44 === ========== =====================================
45 Propieta'
46 ====================================================
47  rwx
48 ----------------------------------------------------
49 r   readable   Il file e' leggibile 
50 w   writable   Il file e' scrivibile e modificabile
51 x   excecute   Il file e' eseguibile
52 === ========== =====================================
53
54 Primo carattere
55 ~~~~~~~~~~~~~~~~~~~~~~~
56
57 Il primo carattere indica la natura o il tipo del *file*::
58
59         -rw-r--r-- 1 andrea andrea    26 2008-09-16 22:03 dns.conf
60         lrw-r--r-- 1 andrea andrea     0 2008-09-16 22:07 link_dns
61         drwxr-xr-x 1 andrea andrea 77352 2008-09-16 21:47 cartella
62
63
64 == ============
65 Tipi comuni
66 ===============
67 d   directory
68 \-   file
69 l   link
70 == ============
71
72 Manipolare i permessi dei file
73 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
74
75 chmod
76                 Cambia i parametri *rwx* dell'oggetto
77
78 chown
79                 Cambia il proprietario
80
81 chgrp
82                 Cambia il gruppo
83
84 Per la sintassi e le opzioni vedere le pagine ``man`` dei singoli comandi.
85
86
87 TAR: archiviazione
88 =======================
89
90 Breve lista delle opzioni del comando ``tar`` (archiviazione dei files)
91
92 -c nome_arch    creare un archivio con nome ``nome_arch``
93 -t              visualizzare il contenuto di un archivio
94 -x              estrarre da un archivio
95 -f              nome dell'archivio
96 -z              compresso con gunzip
97 -j              compresso con bzip2
98
99 Esempi: creare un archivio
100 ------------------------------
101
102 tar -cf nome_archivio.tar  cartella_da_archiviare
103         crea un archivio nome_archivio.tar dalla cartella cartella_da_archiviare
104
105
106 tar -zcf nome_rchivio.tar.gz  cartella_da_archiviare
107         crea un archivio compresso con gunzip nome_rchivio.tar.gz dalla cartella cartella_da_archiviare
108
109
110 tar -jcf nome_archivio.tb2  cartella_da_archiviare
111         crea un archivio compresso con bzip2 nome_rchivio.tar.gz dalla cartella cartella_da_archiviare  
112
113 Esempi: visualizzare il contenuto di un archivio
114 --------------------------------------------------
115
116 tar -tf nome_archivio.tar
117         Per visualizzare e basta il contenuto di un archivio
118
119
120 Esempi: esplodere un archivio
121 -------------------------------
122
123 tar -xf nome_archivio.tb2  
124         Esplode l'archivio
125
126 tar -zxf nome_archivio.tb2  
127         Esplode un archivio compresso con gunzip
128
129 tar -jxf nome_archivio.tb2  
130         Esplode un archivio compresso con bzip2
131
132
133 Navigazione nei filesystems virtuali: proc e sys
134 =================================================
135
136 Per meglio comprendere la natura dei filesystems virtuali **proc** e **sys** possiamo provare a muoverci al loro interno, vedere alcuni degli esempi piu' interessanti e provare anche a intervenire su di essi.
137
138 .. DANGER:: Non sparate dei valori a *caso* su oggetti come ventole di raffreddamento: potreste cuocere le CPU e provocare danni irreparabili (quindi niente echo > ...)
139
140 Storia::
141
142    51  cat /proc/
143    52  cat /proc/cpuinfo 
144    53  htop
145    54  cat /proc/meminfo 
146    55  free
147    56  cat /sys/devices/system/cpu/cpu0/cpuidle/state0
148    57  cat /sys/devices/system/cpu/cpu0/cpuidle/state0/usage 
149    58  cat /sys/devices/system/cpu/cpu0/cpuidle/state0/power 
150    59  cat /sys/devices/system/cpu/cpu0/crash_notes 
151    60  cat /sys/devices/system/cpu/cpu0/topology/core_id 
152    61  cat /sys/devices/system/clocksource/clocksource0/available_clocksource 
153    62  cat /sys/devices/system/clocksource/clocksource0/current_clocksource 
154    63  cat /proc/meminfo 
155    64  cat /sys/class/thermal/cooling_device
156    65  cat /sys/class/thermal/cooling_device0/cur_state 
157    66  cat /sys/class/thermal/cooling_device0/cur_state 
158    67  echo "1" > /sys/class/thermal/cooling_device0/cur_state 
159    68  cat /sys/class/thermal/cooling_device0/cur_state 
160    69  echo "0" > /sys/class/thermal/cooling_device0/cur_state 
161    70  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
162    71  echo "1" > /sys/class/thermal/cooling_device1/cur_state 
163    72  cat /sys/class/thermal/cooling_device1/cur_state 
164    73  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
165    74  echo "0" > /sys/class/thermal/cooling_device1/max_state 
166    75  cat /sys/class/thermal/cooling_device1/max_state 
167    76  echo "7" > /sys/class/thermal/cooling_device1/max_state 
168    77  echo "7" > /sys/class/thermal/cooling_device1/cur_state 
169    78  echo "7" > /sys/class/thermal/cooling_device0/
170    79  echo "7" > /sys/class/thermal/cooling_device0/max_state 
171    80  cat /sys/class/thermal/cooling_device0/max_state 
172    81  echo "7" > /sys/class/thermal/cooling_device0/cur_state 
173    82  cat /sys/class/thermal/cooling_device0/cur_state 
174    83  echo "0" > /sys/class/thermal/cooling_device0/cur_state 
175    84  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
176    85* cat /sys/class/thermal/cooling_device1/
177    86  cat /sys/class/thermal/cooling_device1/cur_state 
178    87  cat /sys/class/thermal/cooling_device0/cur_state 
179    88  cat /sys/class/hwmon/hwmon0/fan1_pwm 
180    89  cat /sys/class/net/eth0/address 
181    90  cat /sys/class/net/eth0/broadcast 
182    91  cat /sys/class/net/eth0/features 
183    92  cat /sys/class/net/eth0/flags 
184    93  cat /sys/class/net/eth0/mtu 
185    94  cat /sys/class/net/eth0/statistics/rx_errors 
186    95  cat /sys/class/net/eth0/statistics/rx_bytes 
187    96  cd /tmp/
188    97  history > proc_nav
189
190 Reti: TCP/IP
191 ================
192
193 Il modello OSI:         7 livelli.
194 Il modello TCP/IP:      4 livelli.
195
196 Link ai livelli dell'OSI:
197 - http://it.wikipedia.org/wiki/Open_Systems_Interconnection
198 - http://upload.wikimedia.org/wikipedia/commons/5/56/Rm-osi_parallel.png
199
200 Comparazione livelli OSI / TCP/IP::
201
202           OSI             TCP/IP
203         -------------   ------------
204         Applicazione    Applicazione
205         Presentazione
206         Sessione
207         -------------   ------------
208         Trasporto       Trasporto
209         -------------   ------------
210         Network         Internet
211         -------------   ------------
212         Collegamento    Network
213         Fisico
214         -------------   ------------
215
216 Il modello TCP/IP e' quindi una semplificazione del modello OSI.
217
218 Per una descrizione dei vari livelli del TCP/IP vedere:
219 - http://www.tutorialpc.it/tcp1.asp
220 - http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
221 - http://it.wikipedia.org/wiki/TCP/IP
222
223 Il livello Network:
224 --------------------
225
226 Il livello "Network" e' quello che si occupa di far funzionare l'hardware di rete. E' quindi dipendente dalla macchina su cui viene implementato lo stack TCP/IP.
227
228
229 Il livello Internet
230 --------------------
231
232 Alias: secondo livello...
233
234 il livello internet si occupa di indirizzamenti, di suddivisione in frammenti, e instradamenti in TCP/IP.
235 I protocolli che lavorano a questo livello,che Ã¨ internet, interagiscono con i livelli immediatamente superiore ed inferiore.
236
237 I protocolli che lavorano a questo livello sono: 
238         - ARP
239         - ICMP
240         - IP
241         - IGMP
242
243
244 Links:
245
246 - http://www.tutorialpc.it/tcp1.asp
247 - http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
248 - http://it.wikipedia.org/wiki/TCP/IP
249
250 Documentazione su IP
251 ------------------------
252
253 Documentazione su IP:
254
255 - http://www.freesoft.org/CIE/Course/Section3/7.htm
256   Tutorial in inglese
257 - Consigliato: Manuale del TCP/IP dell'Apogeo.
258 - http://www.disi.unige.it/person/BelleG/Reti99/Appunti/Appunti1/Cap6c/Cap6c.html
259           Tutorial in italiano relativamente semplice
260
261
262 Maschere di rete
263 ==================
264
265 Analizziamo gli indirizzi IP e le sotto reti
266
267 Consideriamo gli indirizzi IP della classe C::
268
269          212.22.136.0  (0 mi permette di identificare la rete)
270
271         andrea 212.22.136.177   11010100.00010110.10001000. 10110001
272         giulio 212.22.136.178   11010100.00010110.10001000. 10110010
273         papo   212.22.136.166   11010100.00010110.10001000. 10100110
274
275 Cosa notiamo?
276
277 Be'... Che la parte relativa alla rete ovviamente non cambia::
278
279         11010100.00010110.10001000. che corrisponde a 212.22.136.
280
281
282 Questa e' la sotto rete ::
283         
284         255.255.255.0
285
286
287 Messa in AND
288 -----------------
289
290 Come calcola il computer le sotto reti per il routing dei pacchetti?
291
292 Facendo la MESSA in AND dell'host0/rete host1/rete
293
294 Proviamo con andrea e papo::
295
296         andrea IP               11010100.00010110.10001000. 10110001
297         andrea rete             11111111.11111111.11111111. 00000000
298         risultato andrea:       11010100.00010110.10001000
299
300         papo IP                 11010100.00010110.10001000. 10100110
301         papo rete               11111111.11111111.11111111. 00000000
302         risultato papo          11010100.00010110.10001000
303         
304         Confrontiamoli: 11010100.00010110.10001000
305                         11010100.00010110.10001000
306
307         Sono uguali -> stessa rete
308
309
310 Cavi di Rete
311 =================
312
313 link a cavi coassiali / thin :
314
315 - http://www.dia.uniroma3.it/~necci/coax_s.htm
316
317 - Link ai vari tipi di cavi ethernet UTP twisted pairs
318   http://www.lineaedp.it/01NET/HP/0,1254,1_ART_78376,00.html?lw=10001
319
320
321
322 Riferimenti per cavi / ethernet ecc.:
323 ------------------------------------------
324
325         - http://it.wikipedia.org/wiki/IEEE_802.3
326         - http://it.wikipedia.org/wiki/Fast_Ethernet
327         - http://it.wikipedia.org/wiki/Fast_Ethernet
328         - http://it.wikipedia.org/wiki/10Base5
329
330
331
332 Tipi di WiFi:
333 ------------------
334
335 Wifi:
336         - http://it.wikipedia.org/wiki/Wifi
337         - http://it.wikipedia.org/wiki/IEEE_802.11
338           Standard WiFi
339
340   http://en.wikipedia.org/wiki/IEEE_802.11#802.11b
341
342
343 WiMax:
344 --------
345
346 - http://it.wikipedia.org/wiki/WiMAX
347
348 Hiperlan:
349 -------------
350
351 - http://it.wikipedia.org/wiki/Hyperlan
352
353
354 Breve sommario dei comandi relativi al networking
355 ====================================================
356
357 ifconfig
358 --------------
359
360 Configurare un device di rete:
361
362         # ifconfig eth0 192.168.0.1
363         # ifconfig eth0 down # abbatte una scheda di rete
364         # ifconfig eth0:1 192.168.0.1   # abilita una scheda di rete virtuale
365         # ifconfig eth0:1 192.168.1.1   # abilita una scheda di rete VIRTUALE
366
367 ping
368 ---------
369
370 Test della connessione tra due hosts (ICMP)::
371
372         ping 192.168.0.254      # ping all'infinito un indirizzo IP, per fermarlo: CTR + c
373         ping -c 2 192.168.0.254 # manda solo due pacchetti poi si interrompe
374
375 route
376 ------------
377
378 Modifica delle tabelle di instradamento / routing::
379
380         # route -n      #visualizza la tabella di routing attuale
381         # route add default gw 192.168.0.254    #aggiunge un gateway di default
382         # route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
383                 # aggiunge la rotta per una rete
384         # route add -host 192.168.1.2 gw 192.168.0.254
385                 # aggiunge la rotta per un singolo host
386         # route del ... # elimina una rotta precedentemente attivata
387         es:     # route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
388
389 traceroute
390 ----------------
391
392 Ricerca dei passaggi (hops) attraverso i quali comunicano due hosts::
393
394         traceroute 192.168.0.254        # visualizza gli hops frapposti tra noi e un IP
395
396
397 host
398 ---------
399
400 Risoluzione di nomi di dominio / IP::
401
402         $ host bender.piffa.net  # risolve l'indirizzo IP di bender.piffa.net
403         $ host 212.22.136.248    # risoluzione inversa  di un indirizzo IP 
404
405 Instradamento:
406 ---------------
407
408 Per poter utilizzare le funzionalita' di routing del kernel di Linux
409 e' necessario abilitare l'ip-forwarding dello stesso kernel
410
411
412 Si puo' verificare se l'instradamento (IP forwarding) e' abilitato
413 leggendo in /proc il valore di::
414
415         $ cat /proc/sys/net/ipv4/ip_forward
416
417 Si puo' scrivere un valore diverso con echo e il re-indirizzamento dell'output::
418
419         # echo "1" > /proc/sys/net/ipv4/ip_forward
420         
421 .. NOTE::
422         Vedi pag: 295 del manuale cartaceo
423
424 tcpdump
425 --------------
426
427 - http://openmaniak.com/tcpdump.php
428
429 Analizzatore di traffico a riga di comando::
430
431
432         $ tcpdump -q             # Output semplificato, usare -v -vv per maggior dettaglio
433         $ tcpdump udp            # Per catturare il traffico UDP
434         $ tcpdump port http      # Per catturare il traffico sulla porta 80 (http)
435         $ tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp     
436                                  # Per catturare il traffico FTP tra src (sorgente) e dst (destinazione)
437                                  # sulla porta di FTP
438         $ tcpdump -A             # Per visualizzare il contenuto dei pacchetti intercettati
439
440
441 Sessione FTP
442 ==============
443
444 Breve lista dei comandi per una sessione FTP
445 (non usate FTP, usate SFTP...)::
446
447         ftp nome_host           # stabilire la connessione
448                                 # poi chiedera' la password dell'utente
449                                 # se avete sbagliato utente: user
450         
451         help                    # Lista dei comandi disponibili
452         help [nome_comando]     # cosa fa quel comando
453         put                     # per caricare un file
454         get                     # per scaricare un file
455         ls                      # lo sapete cosa fa...
456         cd                      # fa il cambio directory
457         lcd                     # cambio directory in LOCALE
458         mput/mget               # per lavorare su file multipli
459         prompt                  # per uscire dalla modalita' interattiva
460                                 # (non vi chiede conferma di ogni singola operazione
461                                 #  sul singolo file...)
462         binary                  # entra in modalita' trasferimento binario
463         ascii                   # entra in modalita' trasferimento ascii
464         bye                     # per chiudere la sessione
465
466
467 .. NOTE
468         sftp funziona _circa_ con gli stessi comandi.
469
470 ToDo
471 ========
472
473 Mancano (non inseriti in questo file ma presenti come frammenti di testo semplice):
474
475 - Raid
476 - firewall
477 - bsd gestione pacchetti
478 - backup
479 - apache
480 - storie varie