X-Git-Url: http://git.piffa.net/web?p=doc%2F.git;a=blobdiff_plain;f=source%2Fricettario.rst;fp=source%2Fricettario.rst;h=bb3f26606b225f0b84ef7be4c0113a0e2f28cf25;hp=0000000000000000000000000000000000000000;hb=413470c3ca2cc58c8d39d176111aa9d8541a0f55;hpb=da76034044c2e819085f8c96e5d2b24599ed5bcf diff --git a/source/ricettario.rst b/source/ricettario.rst new file mode 100644 index 0000000..bb3f266 --- /dev/null +++ b/source/ricettario.rst @@ -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