--- /dev/null
+=====================
+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