Mòdul 3
Serveis de xarxa amb GNU/Linux
Exercici 123

 
Conceptes i comandes bàsiques 

Terminologia bàsica en entorns UNIX

Aquest mòdul ens centrarà bàsicament en l'aprenentatge de comandes del llenguatge UNIX, si bé en la primera part farem un incís en la descripció d'alguns termes i conceptes que s'han de tenir clars a l'hora d'introduir-nos en aquest sistema operatiu.

A continuació detallem alguns conceptes bàsics:

  • Kernel: és el nucli del Sistema Operatiu. Gestiona els recursos de l'ordinador. Reconeix el maquinari connectat, l'assignació de memòria dels diferents recursos del sistema, els límits de la pròpia memòria, el control dels processos executant-se simultàniament, la grandària màxima que ha de tenir un arxiu concret de sistema i gestiona l'estat de protecció del sistema entre altres. Per aquestes característiques es pot deduir que els kernels seran diferents quan estiguin gestionant recursos de màquines diferents i alhora aniran engrandint-se a mesura que hagin de gestionar altres recursos afegits com poden ser més discos, cintes, impressores, línies de comunicacions, etc.
  • Dimonis: com haviem anunciat en el mòdul 1 existeixen una sèrie de programes que corren de manera regular com a processos adquirint un protagonisme cedit pel kernel amb la missió d'estar alerta (de manera regular temporalment) a l'espera de processos que tenen a veure amb la seva comesa. Així podem trobar dimonis de cues d'impressió, de planificació de tasques com el crond o atd, de correu sortint (smtpd), de pàgines web (httpd), d'ftp (ftpd), del ratolí (gpmd)...
     
  • Shell: la seva funció principal és la de traduir (interpretar) comandes situant-se a cavall entre l'usuari i el propi Sistema Operatiu. Les funcions i caràcters propis del shell proporcionen flexibilitat per a la gestió del seu entorn, gestió d'entrada/sortida (E/S) i la referència a arxius.
     

  • Quan estem usant un shell estem fent servir la línia de comandes per portar a terme diferents tasques. Una vegada realitzades, amb la comanda "exit" sortim del shell. El fet que el shell es trobi entre l'usuari i el kernel fa possible aspectes com:

     

    • Abreviatures de noms d'arxius mitjançant patrons usant metacaràcters (wildcards).
    • Redireccionament de E/S (>>) : es canvia la sortida per defecte (cònsola) cap a un arxiu. Aquest redireccionament permet la connexió amb altres programes.
    • Personalització de l'entorn: l'usuari pot definir les seves pròpies comandes i abreviatures (tipus àlies), l'entorn d'escriptori... totes aquestes definicions quedaran guardades al seu arxiu .profile
       


    Tipus de Shell

    El shell de l'MS-DOS ha estat força arrelat durant molt de temps però gairebé sense evolucionar, ja que  poques diferències podem trobar entre les versions MS-DOS v3 i la MS-DOS v7. Pel contrari el shell de UNIX ha experimentat una evolució força notable amb un ventall de variants de shells, que si bé tenen molt en comú, cadascuna reflexa una visió diferent d'entendre la interacció de l'usuari amb el propi sistema operatiu UNIX.

    A cada usuari se li assigna un shell per defecte, que en Linux correspon al BASH shell (Bourne Again SHell), que comporta l'estàndard POSIX que el fa pràcticament universal amb un ampli ventall de plataformes. Els diferents tipus de shells queden especificats a l'arxiu etc/passwd.
     

    Els shells més comuns en Linux es poden resumir en aquesta taula
     
    Nom del Shell  Programa Descripció i característiques
    ASH shell /bin/ash
    /bin/bsh
    Molt semblant al shell usat pel UNIX System V de AT&T 
    BASH shell /bin/bash
    /bin/bash2
    És el shell estàndard de Linux basat en el shell original de UNIX anomenat 'Bourne shell'. Segons la pròpia pàgina del manual (man), BASH fou intencionadament desenvolupada per ser afí amb l'estàndard POSIX
    Bourne shell /bin/sh És un dels primers shells que es van desenvolupar. És força robust en quant a funcionalitat
    C shell /bin/csh
    /bin/tcsh
    Es tracta del segon shell de UNIX. Fou dissenyat per facilitar l'ús interactiu afegint-hi noves funcions. La seva sintaxi és molt semblant al propi llenguatge C de programació.

    S'usa més comunment en els sistemes UNIX de Berkeley.
    Korn Shell /bin/ksh És el tercer shell de UNIX, fruit de l'evolució del Bourne shell amb característiques del C shell.
    És un shell estàndard del sistema 'UNIX System V'
    Z shell /bin/zsh És un shell ple de característiques basades en el Korn-shell

    Per què aprendre a utilitzar el shell?

    Si estàs acostumat a fer clic amb el ratolí en una interfície gràfica d'usuari potser et planteges la necessitat d'aprendre el shell de Linux. Potser el shell és un antic mètode d'interactuar amb l'ordinador, però la interfície gràfica d'usuari és actualment la interfície més rudimentària.

    La interfície gràfica és fàcil d'aprendre i usar, però el shell és enormement més sofisticat. Usar la interfície gràfica d'usuari és així com el parlar de 'Tarzan' (Jo Tarzan, tu Jane, Xita maca), mentre que el shell permet moltíssimes sutileses en el llenguatge dotant de gran plasticitat la interacció amb l'usuari. El dissenyador de programes que proveeixen d'una interfície gràfica s'ha d'anticipar a totes les possibles actuacions que l'usuari interaccionarà amb el programa, alhora que haurà de proveir de respostes immediates que repondran a un clic del ratolí. 

    Conseqüentment l'usuari està destinat a treballar en camins prefixats.

    El shell reflexa la filosofia base de UNIX, que proveeix d'un ampli ventall de petites i senzilles eines (programes) que portaran a terme les diverses tasques a realitzar. Quan es necessita una operació complexe les eines treballen juntes per aconseguir-ho com una sèrie d' operacions simples, pas a pas.

    L'aprendre shell es fa extensible ja que pots crear shell-scripts que et permetran emmagatzemar sèries de comandes per a una posterior execució (sobretot quan ens trobem amb problemes complexos i desestructurats que requereixen solucions creatives).

    La filosofia UNIX està en contra dels programes monolítics que proveeixen de menús, submenús i caixes de diàleg que no fan més que acotar la iniciativa de l'usuari (Microsoft).

    Per usar el shell existeixen unes tecles funcionals que cal conèixer i que resumim en la taula següent.

    En quant a l'edició:
     
    Tecles/Combinacions  Funcions
    Fletxa amunt Mou cap enrera una comanda de la llista de l'historial
    Fletxa avall Mou cap endavant una comanda de l'historial
    Fletxa a l'esquerra Mou cap enrera un caràcter
    Fletxa a la dreta Mou cap endavant un caràcter
    Esc  f Mou cap endavant una paraula
    Esc  b Mou cap enrera una paraula
    Ctrl  A Mou cap el principi de línia
    Ctrl  E Mou cap el final de la línia
    Ctrl  D Esborra el caràcter actual
    'Backspace' Esborra el caràcter anterior
    Esc  d Esborra la paraula actual
    Ctrl  U Esborra des de l'inici de la línia
    Esc  k Esborra des del final de línia
    Ctrl  Y Recupera l'última cosa esborrada
    Esc  . Insereix l'última paraula de la comanda anterior
    Ctrl  L Neteja la pantalla i situa el cursor a l'inici de la mateixa
    Tabulador Intenta completar la paraula actual interpretant-la com un nom d'arxiu, un nom d'usuari, un nom de variable, nom de màquina o comanda que ve determinada per un context
    Esc  ? Llista les diferents possibilitats

    En referència a la combinació de tecles de Control:
     
    Combinació de Tecles  Funció
    Ctrl  C Envia un senyal d'interrupció de la comanda que s'està executant en aquell moment.
    Ctrl  D Envia un senyal de EOF (final de fitxer) a la comanda que s'està executant en aquell moment. Es fa servir aquesta combinació de tecles per finalitzar les entrades de dades a consola.
    Ctrl  Z Suspèn el programa que s'està executant

    Existeixen també altres caràcters especials de shell:
     
    Caràcter  Funció
     # La comanda que ve precedida d'aquest símbol es considera un comentari i és ignorada pel shell
     ; Separa comandes, permetent que n'entris vàries en una única línia
     & Col·locada al final d'una comanda provoca que aquesta s'executi 'per sota' en modus "background" obrint-se un nou shell per a seguir treballant

  • Dispositius: per entendre com el Sistema Operatiu organitza la informació hem de saber que Linux rep informació, envia informació i emmagatzema en última instància tota aquesta informació en dispositius.
     
    Un dispositiu generalment correspon a una unitat de maquinari com pot ser un teclat o un port sèrie per posar dos exemples conceptuals diferents. De vegades un dispositiu pot no tenir components de maquinari, és així que el kernel crea alguns dispositius de tipus "pseudo-dispositiu" als quals pots accedir sense tenir una existència física real.
     

    Així mateix una única unitat de maquinari pot correspondre's amb diferents dispositius com pot ser cada una de les particions d'un disc que són enteses com a dispositius diferents pel Sistema Operatiu.

    A la taula següent tenim alguns dels dispositius típics de Linux (que es troben dins del directori /dev) amb una descripció de les seves característiques.

     
    Dispositiu Descripció
    atibm Bus del ratolí
    audio Targeta de so
    cdrom Unitat de CD-ROM
    console Consola virtual actual
    fdn Disquetera (la n designa la unitat; fd0 correspon a la primera unitat de disquets)
    ftape Unitat de cinta que no suporta rebobinat
    hdxn Unitat de disc dur no SCSI (la x designa la unitat i la n el número de partició; hda1 és la primera partició del primer disc dur no-SCSI)
    inportbm Bus del ratolí
    lpn Port paral·lel (n és el número de dispositiu; lp0 correspon al primer port paral·lel)
    modem Mòdem
    mouse Ratolí
    nftape Unitat de cinta que suporta rebobinat
    nrftn Unitat de cinta que suporta rebobinat (n es correpon amb el número de dispositiu; nrft0 és la primera unitat de cinta)
    nstn Unitat de cinta SCSI que no suporta rebobinat (n és el nº de dispositiu; nst0 és la primera unitat de cinta SCSI)
    null Pseudodispositiu que accepta sortida il·limitada
    printer Impressora
    rftn Unitat de cinta que no suporta rebobinat (n es correpon amb el número de dispositiu; rft0 és la primera unitat de cinta)
    scdn Un dispositiu SCSI (n designa el número de dispositiu; scd0 és el primer dispositiu SCSI)
    sdxn Correspon al disc dur SCSI (la x correspon al dispositiu i la n a la partició; sda1 és la primera partició del primer disc SCSI)
    srn Correspon al CD-ROM SCSI (n designa el dispositiu; sr0 és el primer CD-ROM SCSI)
    stn Unitat de cinta SCSI que suporta rebobinat (n és el número de dispositiu; st0 és la primera unitat de cinta SCSI)
    ttyn Consola Virtual (n designa la consola virtual concreta; tty0 correspon a la primera consola virtual)
    ttySn Mòdem (aquí la n designa el port; ttyS0 és l'entrada de connexió de mòdem pel primer port sèrie)
    zero Pseudodispositiu que abasteix una inesgotable cadena de bits-zero

Conceptes bàsics en l'entorn de xarxa

Tot i la familiarització amb molts dels vocables que s'exposaran a continuació, les seves definicions ens poden ser útils a l'hora d'entendre globalment molts conceptes informàtics referents a la nostra xarxa local del centre. Anem a algunes d'elles:

10Base-T: és un estàndard del IEEE per a la realització de comunicacions en xarxa de tipus Ethernet que permeten velocitats de fins a 10 MBps (megabytes per segon) amb les categories 3, 4 i 5 de cable de par trenat. S'aconsella que la longitud màxima d'aquests cables no superi els 100 metres per segment.

Adreça IP: adreça estàndard usada en el protocol d'Internet (IP) que consta de quatre camps de 8 bits cadascun (del 0 fins al 255 en decimal). Per designar la xarxa es posa un zero al camp de la dreta (p.e. 193.145.88.0); les IP dels 'gateways' tenen per conveni un 1 al camp de la dreta (p.e. 193.145.88.1); es reserva el 255 d'aquest mateix camp per a l'adreça de broadcast o difusió (p.e. 193.145.88.255). La resta d'adreces completaran la xarxa local.

En les xarxes locals internes s'utilitzen IP falses que no són enrutables cap a Internet. Existeixen uns quants patrons; el primer que recomanen i fem servir nosaltres és el rang 192.168.0.X.

Adreça MAC: la MAC Address és una adreça de control d'accés que porten gravades les targetes ethernet amb una combinació de 6 camps (48 bits) expressats en notació hexadecimal que fan d'aquella targeta que sigui única. Els tres primers camps fan referència al fabricant, marca i model, mentre que els altres tres vénen a ser números de referència, nº de sèrie, etc.
Podem veure la MAC Address executant en un W98 la comanda winipcfg.

Ample de Banda: és la quantitat d'informació expressada en bits per segon (bps) que un sistema és capaç de transmetre per una xarxa. L'ampla de banda de les línies XDSI que tenim als centres és de 64 Kbps per cadascun dels dos canals habilitats (ample total de 128 Kbps). Si els routers no tenen activat el mode multilink encaminaran cap a la línia XDSI a 64 Kbps.

BOOTP: Tot i que en el procés d'instal·lació del Linux apareix i també en les característiques de la ethernet del nostre sistema amb la comanda linuxconf i que en ambdós casos ho desestimarem, hem de saber que es tracta d'un protocol d'arrencada i assignació que fa possible que una màquina quan es connecta a la xarxa via telefònica obtingui una IP, un Gateway i una NetMask concreta.

bps: com hem vist anteriorment es tracta de la unitat de mesura de transmissió utilitzada en comunicacions i equival a bits per segon.

Broadcast: sistema mitjançant es subministra una còpia d'un paquet de dades a tots i cadascun dels nodes d'una xarxa en els que estiguin connectats. La IP d'una màquina destinada a fer broadcast serà del tipus X.X.X.255

Client: qualsevol ordinador de la nostra xarxa local que estigui connectada al servidor.

Concentrador: anomenat també HUB, és el dispositiu que integra diferents classes d'arquitectura o tipus de xarxes locals. Solen tenir boques creuades (X) per enllaçar-se amb altres HUB i boques planes per a concentrar els cables de xarxa ethernet.

L'enllaç entre els HUB es fa de la boca creuada (UP Link) del primer, a una boca plana del segon amb un cable ethernet pla (tot i que existeixen altres possibilitats de combinació).

DHCP: és el protocol d'assignació dinàmica d'adreces IP als dispositius que es connecten a una xarxa. Això implica que el dispositiu en qüestió obtindrà divereses IP en connectar-se en diferents sessions. La IP li assigna el Servidor DHCP.

DNS: com el seu nom indica (Domain Name System) és un mètode d'identificació d'una adreça d'Internet associada a la seva unívoca IP. Tal i com farem en aquest curs muntarem un DNS a nivell local que farà la conversió de noms de domini al sistema real d'adreces Internet que són les IP i a l'inrevés. 

Per fer possible això ha d'existir un fitxer que contingui la relació de host amb la seva IP, i un altre fitxer (anomenat revers) amb un format específic que contindrà la IP relacionada amb el nom de host. El nom de host ha d'incloure el domini intern (p.e. estacio110.delcentre.cat).

La verificació de la funcionalitat del DNS la podem fer amb la comanda 'nslookup' ja que hauria de resoldre tant les IP o noms interns de la xarxa local com les externes en els dos sentits (IP-nom, nom-IP).

Domini: conjunt de caràcters (alfanumèric) amb els quals es coneixen les adreces d'Internet i que s'utilitzen per a localitzar els diferents servidors. 

En els dominis generalment hi trobem dues parts diferenciades: la primera és més concreta i fa al·lusió a la companyia, institució...(p.e. 'xtec') i la segona indica dades del país o tipus d'organització entre altres (p.e. 'es' si és Espanya, 'org' si es tracta d'una organització, 'com' si té caire comercial, 'edu' si fa referència a educació...).

Encaminador o router: dispositiu físic (de maquinari + programari) que té la missió de discernir quin és el camí més idoni per enviar la informació a la xarxa. En aquest cas és clar que l'emissor i el receptor han de 'parlar' el mateix idioma (protocol).

En el nostre cas, el router del centre a la vegada farà de passarel·la (gateway) que connectarà la nostra xarxa local a una altra de característiques diferents.

Ethernet: tecnologia dissenyada per a la creació de xarxes d'àrea local desenvolupada en inici per la firma Xerox (més tard també per Dec i Intel). El seu funcionament es basa en la idea que els ordinadors de la XAL estan interconnectats entre si per mitjà de cable capaç de transmetre dades a 10 Mbps.

Fast Ethernet: tecnologia de xarxa d'àrea local amb capacitat de transmetre dades a 100 Mbps.

Firewall o tallafoc: sistema de seguretat que impedeix l'accés des de fora (normalment Internet) a la nostra xarxa d'àrea local. Existeix un filtratge de paquets en base a unes llistes d'accés (ACL) que permetran o denegaran el pas a la nostra xarxa.

FTP Anònim: servidor d'FTP que permet ser accedit per a qualsevol usuari sense haver d'estar donat d'alta a la màquina. Normalment es posa "anonymous" com a login i l'adreça de correu electrònic com a password.

Gateway o passarel·la: dispositiu que sol estar instal·lat entre dues xarxes informàtiques de característiques tecnològiques i funcionals diferents permetent l'accés i l'intercanvi d'informació entre les dues xarxes. En el nostre cas és el router Cisco760 amb la IP de passarel·la 192.168.0.1.

ICMP: é el protocol per al control de missatges a Internet. És una extensió del propi protocol IP que suporta paquets d'informació de diferents característiques com errors, missatges de control o purament d'informació. El PING és una comanda ICMP de comprovació d'estatus d'adreces IP.

IP: en anglès Internet Protocol. És el protocol estàndard utilitzat pels dispositius que es connecten a Internet. 

La versió més comuna d'aquest protocol és la Ipv4 que es caracteritza per utilitzar 32 bits (4 bytes) per a generar les adreces IP. Aquesta tècnica permet crear 4'3 bilions de números IP diferents, però l'increment de participació a nivell mundial ha fet que fins i tot quedi petit. És per això que actualment ja s'està utilitzant la versió Ipv6 amb IPs de 128 bits (16 bytes o 16 camps).

ISDN o XDSI: la Xarxa Digital de Sistemes Integrats és una tecnologia de connexió a xarxes mitjançant la xarxa de tecnologia commutada que permet una velocitat de transferència de dades a 128 Kbps.

ISP: són les empreses proveïdores d'Internet (Internet Services Provider).

Màscara de xarxa: la Netmask és una combinació de bits expressat en forma d'IP que ens dóna informació concreta d'una xarxa. 

El clàssic exemple 255.255.255.0 ens diu que la xarxa tindrà les IP amb els tres primers camps invariables i un quart camp que podrà tenir des del 0 fins al 255.

Si en el últim camp hi hagués un 196 implicaria que en aquella xarxa podríem designar fins a 60 IP diferents (256-196=60). Per tant la màscara ens dirà si una IP pertany o no a una xarxa concreta.

NAT: é un estàndar d'Internet (Network Address Translation) que permet a xarxes locals usar les seves adreces IP falses a nivell intern i una altra IP o conjunt d'IP Globals (verdaderes) per a la comunicació a través d'ella cap a Internet.

NetBEUI: protocol de comunicacions basat en Microsoft LAN Manager. Pot oferir bon rendiment en xarxes de pocs ordinadors.
 

NFS: (Network File System). És un sistema de fitxers dissenyat per a exportar file systems (arbres de directoris) d'una màquina a una altra en una xarxa local (entre servidors, entre client-servidor...).

S'han de definir rutes de directoris (/home /usr..) al fitxer /etc/exports. Hem de tenir els fitxers rpc.mountd i rpc.nfsd que es troben a /usr/sbin. Perquè un client vulgui accedir a un directori compartit només ha d'executar el següent:

mount -t nfs <servidor o la seva IP>:<directori de servidor a accedir> <directori del client on muntarem el sistema de fitxers>

Port: el port de protocol és un número (col·locat després de dos punts a una IP o URL) que és usat per a identificar un programa d'aplicació a una computadora remota. 

Els protocols com el TCP assignen un número de port únic per a cada un dels serveis com el 80 per a web, 8080 per al proxy, 21 per al FTP, 22 per a ssh, 23 per al telnet, 25 per al SMTP, ....

En els routers podem redirigir aquests ports cap a una màquina determinada (p.e. el servidor proxy)

Proxy: a mode de resum podem dir que un proxy és una màquina servidora encarregada de centralitzar el trànsit d'informació entre Internet i les xarxes locals. 

Els ordinadors clients fan les peticions a aquest servidor encarregat de 'sortir' a Internet i recollir les demandes. Tot el que va emmagatzemant ho pot servir a la velocitat de l'ample de banda de característiques ethernet.

Punt a punt: és el tipus de connexió en la que la comunicació entre dos sistemes informàtics es realitza sense necessitat d'intermediaris.

En el nostre cas la reconfiguració dels routers es fa efectuant una trucada telefònica via XDSI  punt a punt.

Radius: és un servei d'autenticació remota que utilitzen proveïdors d'accés a Internet (com a la XTEC) per autentificar els seus usuaris via identificador i contrasenya per a donar-lis accés a Internet.

Els usuaris personals, els centres i les xarxes locals amb XDSI (routers) s'autentifiquen amb Radius.

RJ-45: és el nom que rep el connector (terminal del cable) estàndard usat per a les connexions amb cable usats en les xarxes informàtiques. 

És el tipus de cable que utilitzem als centres per a connectar ordenadors al HUB i el router al HUB o al caixetí TR1 digital de Telefónica.

És una mica més gran que el que utilitza la línia analògica normal de telefonia (RJ-11)

SNMP: és un protocol estàndard que especifica la manera en què una estació d'administració de xarxa es comunica amb el programari agent dels dispositius remots, como els routers. El SNMP defineix el format dels missatges i el seu significat per poder així operar amb els diferents nodes d'una xarxa IP.

Spoofing: és el falsejat d'una IP per part d'una màquina (remota o local) agafant-la per pròpia quan pertany a una altra.

Switch: a diferència del HUB que distribueix la informació per a tota la xarxa 'embrutant' el fil quan volem fer una connexió entre dues màquines (la resta de màquines ho rebran però ho ignoraran), el Switch només genera trànsit en el segment concret (la resta de màquines no s'enteren del trànsit entre dues màquines concretes). Donat que l'ample de banda ja no és compartit entre tots podem assegurar que en les connexions a Switch cada dispositiu de la xarxa té el 100% de l'ample de banda cap a ell.

TCP/IP: és el protocol comú de comunicacions usat a Internet que fa possible que cada ordinador es pugui comunicar amb un altre de connectat a la Xarxa independent del Sistema Operatiu que utilitzin. 

Les sigles atenen al protocol de control de transmissió (TCP) i el propi protocol d'Internet (IP).

La divisió de la informació en forma de paquets que viatgen a través de la xarxa fan que els recursos de la mateixa no siguin monopolitzats per un sol usuari. Els routers s'encarreguen d'anar transmeten aquests paquets per tota la xarxa perquè arribin al seu destí sense barrejar-los amb d'altres paquets amb els quals conflueixen.

El paquet té una part d'adreça (IP) i una altra de transmissió (TCP) que conté el missatge real més la informació de numeració dels paquets perquè es puguin ajuntar en el seu correcte ordre en el seu destí i informació extra de decodificació del paquet i detecció d'errades de transmissió.

Traçadors de rutes: solen ser programes associats normalment a comandes amb la finalitat de mostrar el camí via nodes per on circula la informació que enviem i rebem a través d'Internet (p.e. traceroute 193.145.88.16). Existeixen també traçadors gràfics com el programa Visual Route.

XAL o LAN: les Xarxes d'Àrea Local (Local Area Network) tenen com a característica que integren un camp d'acció reduït, una velocitat de transmissió mesurable en Mbps i que solen pertànyer a una sola organització com pot ser la xarxa d'un centre educatiu.