====================================================================== Corso di Linux: esercizio: Linux e ls rete ====================================================================== Liceo Fermi, Bologna - Marcello Galli, ottobre 2009 sito di riferimento: http://www.helldragon.eu ---------------------------------------------------------------------- Si provera' a costruire una piccola LAN, collegando, con un cavo di rete utp le varie macchine ad uno stesso switch. Poniamo che la rete abbia il numero 192.168.100.0, e sia di classe C, con una netmask: 255.255.255.0 Per ora non abbiamo un name server (DNS) e la rete costruita e' isolata. La prima operazione sara' la configurazione delle interfaccie di rete delle singole macchine. Si puo' procedere nei seguenti modi: A- si apre una shell di root ( in Knoppix 5.0.1 menu: K->voce: knoppix ->opzione: root shell ) si esamina lo stato dell'interfaccia con: ifconfig Se il nome dell'interfaccia e' eth0 ed il numero che si vuole dare alla macchina e' 192.168.100.101 ,si configura l'interfaccia con: ifconfig eth0 192.168.100.101 netmask 255.255.255.0 up per controllare dare ancora il comando: ifconfig Si controllano le routing tables, con il comando: route Si nota come si vede semplicemente la rete: 192.168.100.0, direttamente collegata alla macchina. Se una macchina della LAN facesse da router, collegata anche all'esterno, per uscire dalla LAN si dovrebbe inserire una default route verso questa macchina; se il router ha l'IP 192.168.100.1 daremo il comando: route add default gateway 192.168.100.1 B- si puo' fare la stessa cosa con l'interfaccia grafica, (in Knoppix 5.0.1 e' il menu Knoppix ( quello col pinguino), alla voce network -> opzione network card. ) ----------------------------------------------------------------------------- Su una LAN vera avete spesso un server DHCP, che da alle macchine che lo richiedono un numero IP , un default route e l'indirizzo di un DNS in modo automatico. ----------------------------------------------------------------------------- 1- provare i comandi che mostrano la situazione della rete: /sbin/ifconfig : mostra le interfacce di rete (scheda di rete e loop device) /sbin/route : mostra la routing table /sbin/arp : mostra l'arp table (numeri schede di rete) netstat -nltu : mostra porte in ascolto netstat -nltup : ( da root ) mostra anche che programma usa la porta 2- provare i comandi di diagnostica piu' sempice: ping localhost : vede se la rete va. ( Cntrl/C per fermarlo) ping 192.168.100.100 : vede se la macchina conquesto numero e' raggiungibile (con ICMP echo request) /sbin/arping 192.168.100.100 : (da root) usa ARP echo request e mostra l'ethernet address /usr/sbin/traceroute 192.168.100.100 : mostra il percorso verso una macchina (usa TTL diversi per ricevere ICMP time exceeded) 3- collegamento a macchine remote. Il comando: ssh -l nome_utente nome_macchina_onumero_IP vi permette di collegarvi ad una macchina remota con la shell Provate ad aprire diverse finestre di shell ed a collegarvi con macchine diverse. Per controllare chi e' collegato sulla vostra macchina ed a che macchina siete collegati potete usare comandi come: who : mostra chi e' collegato w : mostra chi e' collegato e da che macchina viene whoami : mostra chi siete hostname : mostra il nome della macchina last : mostra ultimi utenti che si sono collegati. 4- In Unix, X11 permette di lavorare alla consolle di una macchina, collegati su un'altra e di aprire applicazioni grafiche su un'altra macchina ancora. si usa la variabile DISPLAY, per definire lo schermo cui vengono associate le applicazioni grafiche. Per fare questo occorre che l'X11 sia in ascolto sulla porta 6000. In molte distribuzioni questa possibilita' e' disabilitata, per questioni di sicurezza. a) - aprite diverse finestre terminale e collegatevi a diverse macchine; b) - in ogni finestra definite in modo diverso la variabile DISPLAY, in modo da mandare le applicazioni grafiche ai diversi computers del laboratorio, usare export per rendere DISPLAY valida anche per i sottoprocessi: Esempio: (MA DOVETE METTERE I NUMERI IP GIUSTI) export DISPLAY=192.168.100.101:0.0 export DISPLAY=192.168.100.102:0.0 etc. etc. Per dirigere il display sulla macchina locale: export DISPLAY=:0 c) - utilizzare il comando xhost, per permettere accesso al vostro display ad alcune macchine e non ad altre: xhost + : tutti accedono xhost + 192.168.100.101 : questa macchina accede xhost - 192.168.100.101 : questa macchina non accede piu' d) - far partire applicazioni grafiche in modo che appaiano sugli schermi degli altri computers: Es.: xclock & xterm & nedit file & mozilla & Se un xterm od un editor sono aperti sul video di un altro computer accade che chi e' alla tastiera dell'altro computer puo' lavorare sui vostri files. 5- Uso di terminali virtuali e server X multipli. a) - usare Cntl+Alt+F1 per passare ad un terminale virtuale, collegatevi Cntl+Alt+F7 torna al vostro server X11 Cntl+Alt+F2 passa ad un altro terminale virtuale, collegatevi, con l'username di un altro gruppo di studenti, con ps e w vedete i processi relativi ai diversi terminali virtuali. 6- Trasferimento files: uso di sftp ( o del vecchio ftp che trasmetteva le password in chiaro ) trasferire files da una macchina all'altra. Provate a portare i vostri files su un'altra macchine e viceversa. Collegamento con sftp: sftp host user: username sull'host remoto password: sempre relativa all'host remoto comandi di sftp: help : da aiuto ls : mostra i files sull'host remoto cd direttorio : si cambia direttorio sull'host remoto pwd : mostra direttorio corrente sull'host remoto get file : prende un file put file : mette un file sull'host remoto mget * : prende tutti i files del direttorio corrente mput * : mette tutti i files !ls : mostra files sull'host locale !pwd : mostra direttorio corrente sull'host locale ! cd .. : ci si sposta in su di un livello sull'host locale type binary : i dati sono trasmessi senza modifiche ( dati binari ) type ascii : trasmette testi e converte carriage return/linefeed in linefeed ( serve solo se si trasferisce da sistemi non unix ) bye :