]> git.piffa.net Git - doc/.git/blobdiff - source/ricettario.rst
Aggiunto script per aggiornamento automatico DNS
[doc/.git] / source / ricettario.rst
diff --git a/source/ricettario.rst b/source/ricettario.rst
new file mode 100644 (file)
index 0000000..bb3f266
--- /dev/null
@@ -0,0 +1,480 @@
+=====================
+Ricettario
+=====================
+--------------------------------------------------
+Appunti e note sparse per corsi di reti su Linux
+--------------------------------------------------
+
+ :Author: Andrea Manni
+ :Copyright: GFDL
+ :Version: 1.0
+
+.. sectnum::
+.. contents::
+
+Generato con: http://docutils.sourceforge.net/rst.html
+
+Comandi
+=============
+
+Appunti ed esempi sull'utilizzo di alcuni comandi comuni.
+
+Propieta' dei files
+--------------------
+
+Vediamo come leggere l'output del comando *ls*::
+
+       ls -l
+
+       drwxr-xr-x 2 andrea staff   4096 2008-09-16 22:05 cartella
+        |  |  |     |      |       |    |                Nome file
+        |  |  |     |      |       |    Data di creazione e ora
+        |  |  |     |      |       inodes (non e' la dimensione del file)
+        |  |  |     |      gruppo
+        |  |  |     utente
+        |  |  ooo = others
+        |  ggg = group
+        uuu = user
+
+
+UGO
+       Acronimo per: User - Groups Others
+
+
+=== ========== =====================================
+Propieta'
+====================================================
+ rwx
+----------------------------------------------------
+r   readable   Il file e' leggibile 
+w   writable   Il file e' scrivibile e modificabile
+x   excecute   Il file e' eseguibile
+=== ========== =====================================
+
+Primo carattere
+~~~~~~~~~~~~~~~~~~~~~~~
+
+Il primo carattere indica la natura o il tipo del *file*::
+
+       -rw-r--r-- 1 andrea andrea    26 2008-09-16 22:03 dns.conf
+       lrw-r--r-- 1 andrea andrea     0 2008-09-16 22:07 link_dns
+       drwxr-xr-x 1 andrea andrea 77352 2008-09-16 21:47 cartella
+
+
+== ============
+Tipi comuni
+===============
+d   directory
+\-   file
+l   link
+== ============
+
+Manipolare i permessi dei file
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+chmod
+               Cambia i parametri *rwx* dell'oggetto
+
+chown
+               Cambia il proprietario
+
+chgrp
+               Cambia il gruppo
+
+Per la sintassi e le opzioni vedere le pagine ``man`` dei singoli comandi.
+
+
+TAR: archiviazione
+=======================
+
+Breve lista delle opzioni del comando ``tar`` (archiviazione dei files)
+
+-c nome_arch   creare un archivio con nome ``nome_arch``
+-t             visualizzare il contenuto di un archivio
+-x             estrarre da un archivio
+-f             nome dell'archivio
+-z             compresso con gunzip
+-j             compresso con bzip2
+
+Esempi: creare un archivio
+------------------------------
+
+tar -cf nome_archivio.tar  cartella_da_archiviare
+       crea un archivio nome_archivio.tar dalla cartella cartella_da_archiviare
+
+
+tar -zcf nome_rchivio.tar.gz  cartella_da_archiviare
+       crea un archivio compresso con gunzip nome_rchivio.tar.gz dalla cartella cartella_da_archiviare
+
+
+tar -jcf nome_archivio.tb2  cartella_da_archiviare
+       crea un archivio compresso con bzip2 nome_rchivio.tar.gz dalla cartella cartella_da_archiviare  
+
+Esempi: visualizzare il contenuto di un archivio
+--------------------------------------------------
+
+tar -tf nome_archivio.tar
+       Per visualizzare e basta il contenuto di un archivio
+
+
+Esempi: esplodere un archivio
+-------------------------------
+
+tar -xf nome_archivio.tb2  
+       Esplode l'archivio
+
+tar -zxf nome_archivio.tb2  
+       Esplode un archivio compresso con gunzip
+
+tar -jxf nome_archivio.tb2  
+       Esplode un archivio compresso con bzip2
+
+
+Navigazione nei filesystems virtuali: proc e sys
+=================================================
+
+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.
+
+.. DANGER:: Non sparate dei valori a *caso* su oggetti come ventole di raffreddamento: potreste cuocere le CPU e provocare danni irreparabili (quindi niente echo > ...)
+
+Storia::
+
+   51  cat /proc/
+   52  cat /proc/cpuinfo 
+   53  htop
+   54  cat /proc/meminfo 
+   55  free
+   56  cat /sys/devices/system/cpu/cpu0/cpuidle/state0
+   57  cat /sys/devices/system/cpu/cpu0/cpuidle/state0/usage 
+   58  cat /sys/devices/system/cpu/cpu0/cpuidle/state0/power 
+   59  cat /sys/devices/system/cpu/cpu0/crash_notes 
+   60  cat /sys/devices/system/cpu/cpu0/topology/core_id 
+   61  cat /sys/devices/system/clocksource/clocksource0/available_clocksource 
+   62  cat /sys/devices/system/clocksource/clocksource0/current_clocksource 
+   63  cat /proc/meminfo 
+   64  cat /sys/class/thermal/cooling_device
+   65  cat /sys/class/thermal/cooling_device0/cur_state 
+   66  cat /sys/class/thermal/cooling_device0/cur_state 
+   67  echo "1" > /sys/class/thermal/cooling_device0/cur_state 
+   68  cat /sys/class/thermal/cooling_device0/cur_state 
+   69  echo "0" > /sys/class/thermal/cooling_device0/cur_state 
+   70  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
+   71  echo "1" > /sys/class/thermal/cooling_device1/cur_state 
+   72  cat /sys/class/thermal/cooling_device1/cur_state 
+   73  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
+   74  echo "0" > /sys/class/thermal/cooling_device1/max_state 
+   75  cat /sys/class/thermal/cooling_device1/max_state 
+   76  echo "7" > /sys/class/thermal/cooling_device1/max_state 
+   77  echo "7" > /sys/class/thermal/cooling_device1/cur_state 
+   78  echo "7" > /sys/class/thermal/cooling_device0/
+   79  echo "7" > /sys/class/thermal/cooling_device0/max_state 
+   80  cat /sys/class/thermal/cooling_device0/max_state 
+   81  echo "7" > /sys/class/thermal/cooling_device0/cur_state 
+   82  cat /sys/class/thermal/cooling_device0/cur_state 
+   83  echo "0" > /sys/class/thermal/cooling_device0/cur_state 
+   84  echo "0" > /sys/class/thermal/cooling_device1/cur_state 
+   85* cat /sys/class/thermal/cooling_device1/
+   86  cat /sys/class/thermal/cooling_device1/cur_state 
+   87  cat /sys/class/thermal/cooling_device0/cur_state 
+   88  cat /sys/class/hwmon/hwmon0/fan1_pwm 
+   89  cat /sys/class/net/eth0/address 
+   90  cat /sys/class/net/eth0/broadcast 
+   91  cat /sys/class/net/eth0/features 
+   92  cat /sys/class/net/eth0/flags 
+   93  cat /sys/class/net/eth0/mtu 
+   94  cat /sys/class/net/eth0/statistics/rx_errors 
+   95  cat /sys/class/net/eth0/statistics/rx_bytes 
+   96  cd /tmp/
+   97  history > proc_nav
+
+Reti: TCP/IP
+================
+
+Il modello OSI:                7 livelli.
+Il modello TCP/IP:     4 livelli.
+
+Link ai livelli dell'OSI:
+- http://it.wikipedia.org/wiki/Open_Systems_Interconnection
+- http://upload.wikimedia.org/wikipedia/commons/5/56/Rm-osi_parallel.png
+
+Comparazione livelli OSI / TCP/IP::
+
+         OSI             TCP/IP
+       -------------   ------------
+       Applicazione    Applicazione
+       Presentazione
+       Sessione
+       -------------   ------------
+       Trasporto       Trasporto
+       -------------   ------------
+       Network         Internet
+       -------------   ------------
+       Collegamento    Network
+       Fisico
+       -------------   ------------
+
+Il modello TCP/IP e' quindi una semplificazione del modello OSI.
+
+Per una descrizione dei vari livelli del TCP/IP vedere:
+- http://www.tutorialpc.it/tcp1.asp
+- http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
+- http://it.wikipedia.org/wiki/TCP/IP
+
+Il livello Network:
+--------------------
+
+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.
+
+
+Il livello Internet
+--------------------
+
+Alias: secondo livello...
+
+il livello internet si occupa di indirizzamenti, di suddivisione in frammenti, e instradamenti in TCP/IP.
+I protocolli che lavorano a questo livello,che รจ internet, interagiscono con i livelli immediatamente superiore ed inferiore.
+
+I protocolli che lavorano a questo livello sono: 
+       - ARP
+       - ICMP
+       - IP
+       - IGMP
+
+
+Links:
+
+- http://www.tutorialpc.it/tcp1.asp
+- http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
+- http://it.wikipedia.org/wiki/TCP/IP
+
+Documentazione su IP
+------------------------
+
+Documentazione su IP:
+
+- http://www.freesoft.org/CIE/Course/Section3/7.htm
+  Tutorial in inglese
+- Consigliato: Manuale del TCP/IP dell'Apogeo.
+- http://www.disi.unige.it/person/BelleG/Reti99/Appunti/Appunti1/Cap6c/Cap6c.html
+         Tutorial in italiano relativamente semplice
+
+
+Maschere di rete
+==================
+
+Analizziamo gli indirizzi IP e le sotto reti
+
+Consideriamo gli indirizzi IP della classe C::
+
+        212.22.136.0  (0 mi permette di identificare la rete)
+
+       andrea 212.22.136.177   11010100.00010110.10001000. 10110001
+       giulio 212.22.136.178   11010100.00010110.10001000. 10110010
+       papo   212.22.136.166   11010100.00010110.10001000. 10100110
+
+Cosa notiamo?
+
+Be'... Che la parte relativa alla rete ovviamente non cambia::
+
+       11010100.00010110.10001000. che corrisponde a 212.22.136.
+
+
+Questa e' la sotto rete ::
+       
+       255.255.255.0
+
+
+Messa in AND
+-----------------
+
+Come calcola il computer le sotto reti per il routing dei pacchetti?
+
+Facendo la MESSA in AND dell'host0/rete host1/rete
+
+Proviamo con andrea e papo::
+
+       andrea IP               11010100.00010110.10001000. 10110001
+       andrea rete             11111111.11111111.11111111. 00000000
+       risultato andrea:       11010100.00010110.10001000
+
+       papo IP                 11010100.00010110.10001000. 10100110
+       papo rete               11111111.11111111.11111111. 00000000
+       risultato papo          11010100.00010110.10001000
+       
+       Confrontiamoli: 11010100.00010110.10001000
+                       11010100.00010110.10001000
+
+       Sono uguali -> stessa rete
+
+
+Cavi di Rete
+=================
+
+link a cavi coassiali / thin :
+
+- http://www.dia.uniroma3.it/~necci/coax_s.htm
+
+- Link ai vari tipi di cavi ethernet UTP twisted pairs
+  http://www.lineaedp.it/01NET/HP/0,1254,1_ART_78376,00.html?lw=10001
+
+
+
+Riferimenti per cavi / ethernet ecc.:
+------------------------------------------
+
+       - http://it.wikipedia.org/wiki/IEEE_802.3
+       - http://it.wikipedia.org/wiki/Fast_Ethernet
+       - http://it.wikipedia.org/wiki/Fast_Ethernet
+       - http://it.wikipedia.org/wiki/10Base5
+
+
+
+Tipi di WiFi:
+------------------
+
+Wifi:
+       - http://it.wikipedia.org/wiki/Wifi
+       - http://it.wikipedia.org/wiki/IEEE_802.11
+         Standard WiFi
+
+  http://en.wikipedia.org/wiki/IEEE_802.11#802.11b
+
+
+WiMax:
+--------
+
+- http://it.wikipedia.org/wiki/WiMAX
+
+Hiperlan:
+-------------
+
+- http://it.wikipedia.org/wiki/Hyperlan
+
+
+Breve sommario dei comandi relativi al networking
+====================================================
+
+ifconfig
+--------------
+
+Configurare un device di rete:
+
+       # ifconfig eth0 192.168.0.1
+       # ifconfig eth0 down # abbatte una scheda di rete
+       # ifconfig eth0:1 192.168.0.1   # abilita una scheda di rete virtuale
+       # ifconfig eth0:1 192.168.1.1   # abilita una scheda di rete VIRTUALE
+
+ping
+---------
+
+Test della connessione tra due hosts (ICMP)::
+
+       ping 192.168.0.254      # ping all'infinito un indirizzo IP, per fermarlo: CTR + c
+       ping -c 2 192.168.0.254 # manda solo due pacchetti poi si interrompe
+
+route
+------------
+
+Modifica delle tabelle di instradamento / routing::
+
+       # route -n      #visualizza la tabella di routing attuale
+       # route add default gw 192.168.0.254    #aggiunge un gateway di default
+       # route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
+               # aggiunge la rotta per una rete
+       # route add -host 192.168.1.2 gw 192.168.0.254
+               # aggiunge la rotta per un singolo host
+       # route del ... # elimina una rotta precedentemente attivata
+       es:     # route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
+
+traceroute
+----------------
+
+Ricerca dei passaggi (hops) attraverso i quali comunicano due hosts::
+
+       traceroute 192.168.0.254        # visualizza gli hops frapposti tra noi e un IP
+
+
+host
+---------
+
+Risoluzione di nomi di dominio / IP::
+
+       $ host bender.piffa.net  # risolve l'indirizzo IP di bender.piffa.net
+       $ host 212.22.136.248    # risoluzione inversa  di un indirizzo IP 
+
+Instradamento:
+---------------
+
+Per poter utilizzare le funzionalita' di routing del kernel di Linux
+e' necessario abilitare l'ip-forwarding dello stesso kernel
+
+
+Si puo' verificare se l'instradamento (IP forwarding) e' abilitato
+leggendo in /proc il valore di::
+
+       $ cat /proc/sys/net/ipv4/ip_forward
+
+Si puo' scrivere un valore diverso con echo e il re-indirizzamento dell'output::
+
+       # echo "1" > /proc/sys/net/ipv4/ip_forward
+       
+.. NOTE::
+       Vedi pag: 295 del manuale cartaceo
+
+tcpdump
+--------------
+
+- http://openmaniak.com/tcpdump.php
+
+Analizzatore di traffico a riga di comando::
+
+
+       $ tcpdump -q             # Output semplificato, usare -v -vv per maggior dettaglio
+       $ tcpdump udp            # Per catturare il traffico UDP
+       $ tcpdump port http      # Per catturare il traffico sulla porta 80 (http)
+       $ tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp     
+                                # Per catturare il traffico FTP tra src (sorgente) e dst (destinazione)
+                                # sulla porta di FTP
+       $ tcpdump -A             # Per visualizzare il contenuto dei pacchetti intercettati
+
+
+Sessione FTP
+==============
+
+Breve lista dei comandi per una sessione FTP
+(non usate FTP, usate SFTP...)::
+
+       ftp nome_host           # stabilire la connessione
+                               # poi chiedera' la password dell'utente
+                               # se avete sbagliato utente: user
+       
+       help                    # Lista dei comandi disponibili
+       help [nome_comando]     # cosa fa quel comando
+       put                     # per caricare un file
+       get                     # per scaricare un file
+       ls                      # lo sapete cosa fa...
+       cd                      # fa il cambio directory
+       lcd                     # cambio directory in LOCALE
+       mput/mget               # per lavorare su file multipli
+       prompt                  # per uscire dalla modalita' interattiva
+                               # (non vi chiede conferma di ogni singola operazione
+                               #  sul singolo file...)
+       binary                  # entra in modalita' trasferimento binario
+       ascii                   # entra in modalita' trasferimento ascii
+       bye                     # per chiudere la sessione
+
+
+.. NOTE
+       sftp funziona _circa_ con gli stessi comandi.
+
+ToDo
+========
+
+Mancano (non inseriti in questo file ma presenti come frammenti di testo semplice):
+
+- Raid
+- firewall
+- bsd gestione pacchetti
+- backup
+- apache
+- storie varie