Salta el contingut

UD7. Proxy

Introducció

Passarel·la a nivell d'aplicació

Recorda que una passarel·la (o porta d’enllaç) és el node que serveix d’enllaç entre dos xarxes, és a dir, aquell node que connecta i dirigeix el trànsit de dades entre dos o més xarxes. El seu propòsit és traduir la informació del protocol utilitzat en una xarxa inicial, al protocol usat en xarxa destí.

Una passarel·la a nivell d'aplicació és una passarel·la que actua en el nivell més alt de la pila de protocols IP, el d'aplicació dóna accés a serveis com HTTP o FTP que es troben en altres xarxes.

Passarel·la

Servidor intermediari

Un servidor intermediari (proxy) és un programa o dispositiu que duu a terme tasques d’accés a Internet en el lloc d’un altre ordinador. És a dir, és un punt intermedi entre un ordinador connectat a internet i el servidor web al qual està accedint. La traducció de la paraula anglesa proxy és per poders, és a dir, es permet que sigui un servidor intermediari el que ens connecta a Internet en lloc del mateix usuari.

Esquema intermediari

Funcions d'un servei proxy

Els servidors proxy tenen les següents funcions:

  • Actuen de passarel·la a nivell d'aplicació ja que permeten l'accés web als nodes amb adreça IP privada que no estan connectades directament a internet.
  • Controlen l'accés web aplicant un seguit de normes i regles, per exemple, segons la pàgina web sol·licitada, el dia o l'hora de la sol·licitud, etc.
  • Registren el trànsit web des de la xarxa local cap a l'exterior.
  • Controlen el contingut web visitat i descargat per a detectar la presència de possibles atacs mitjançant virus, cucs, troians, etc.
  • Controlen la seguretat de la red local davant de possibles atacs o intrusions del sistema.
  • Funcionen com una cau de pàgines web: emmagatzemen les pàgines web vistes pels usuaris, de forma que sí algú vol accedir a una pàgina prèviament sol·licitada i el proxy la té emmagatzemada no necessitarà eixir a internet sinó que podrà entrar la que té emmagatzemada.

Avantatges

En general, no només en informàtica, els proxys fan possible:

  • Control: només l'intermediari fa el treball real, per tant es poden limitar i restringir els drets dels usuaris, i donar permisos únicament al servidor intermediari. Es pot restringir l'accés en un horari determinat.
  • Estalvi: només un dels usuaris (el proxy) ha d'estar preparat per fer la feina real. Amb estar preparat vol dir que és l'únic que necessita els recursos necessaris per fer aquesta funcionalitat. Exemples de recursos necessaris per fer la funció poden ser la capacitat i lògica de l'adreça de xarxa externa (IP).
  • Velocitat i eficiència: si diversos clients van a demanar el mateix recurs, el proxy pot fer memòria cau: guardar la resposta d'una petició per donar-la directament quan un altre usuari la demani. Així no ha de tornar a contactar amb el destí, i acaba més ràpid.
  • Filtratge de serveis: el proxy pot negar-se a respondre algunes peticions si detecta que estan prohibides.

Desavantatges

En general, l'ús d'un intermediari pot provocar:

  • Anonimat: si tots els usuaris s'identifiquen com un de sol, és difícil que el recurs accedit pugui diferenciar-los. Però això pot ser dolent, per exemple quan cal fer necessàriament la identificació.
  • Abús: en estar disposat a rebre peticions de molts usuaris i respondre-les, és possible que faci algun treball que no toqui. Per tant, ha de controlar qui té accés i qui no als seus serveis, cosa que normalment és molt difícil.
  • Càrrega: un proxy ha de fer la feina de molts usuaris.
  • Intromissió: és un pas més entre origen i destí, i alguns usuaris poden no voler passar pel proxy. I menys si fa de memòria cau i guarda còpies de les dades.
  • Incoherència: si fa de memòria cau, és possible que s'equivoqui i doni una resposta antiga quan hi ha una més recent en el recurs de destinació. En realitat aquest problema no existeix amb els servidors intermediaris actuals, ja que es connecten amb el servidor remot per comprovar que la versió que té en memòria cau segueix sent la mateixa que l'existent al servidor remot.
  • Dificultat per a configurar alguns protocols: no tots els protocols són aptes per a ser configurats mitjançant un proxy, el que pot limitar la seua eficàcia.

Servidor proxy obert

Un proxy obert és un servidor proxy de reenviament accessible per qualsevol usuari d'Internet. Un proxy obert anònim permet als usuaris amagar la seva adreça IP mentre navega per la Web o utilitza altres serveis d'Internet.

sequenceDiagram

    actor Alice
    participant Proxy
    actor Bob

    Alice->>Proxy: Pregunta-li a Bob quina hora és
    Proxy->>Bob: Quina hora és?
    Bob->>Proxy: Son les 19:00
    Proxy->>Alice: Diu Bob que son les 19:00

Com es pot vore en aquest diagrama, l'ordinador d'Alice li demana al proxy que li pregunte a l'ordinador de Bob quina hora és. Aquest últim no en sap res de l'ordinador d'Alice, per a ell, qui ha fet la petició és el Proxy.

T07-NEVAL02 - Conceptes
  • Defineix els següents conceptes:
    • Encaminadores
    • Servidor intermediari (Proxy)
    • Passarel·la
    • Tallafocs (firewall)
  • Realitza un diagrama del funcionament més comú d'un servidor proxy. Explica els passos.
  • Quins avantatges aporten els servidors proxy?
  • Quins desavantatges aporten els servidors proxy?
  • Explica cadascuna de les funcions proxy. Ajuda't amb un diagrama i algun exemple.

Instal·lació i configuració SQUID

En els següents enllaços trobareu informació sobre la instal·lació i la configuració d'SQUID:

Documentacio Ubuntu Squid-cache

Guia servidor squid

Instal·lació

En un sistema basat en Ubuntu, farem la instal·lació de forma habitual:

  • sudo apt install squid

Per tal de comprovar l'estat del servei:

  • sudo service squid status

Per reiniciar el servei:

  • sudo service squid restart

Directoris del servei

Els directoris que haurem de "controlar" són:

  • /etc/squid --> Arrel de configuració
    • /etc/squid/squid.conf --> fitxer de configuració del proxy
  • /var/log/squid --> Arrel dels fitxers de log

Paràmetres habituals al fitxer de configuració

  • http_port 3128: Port d'escolta del servidor (per defecte 3128)
  • cache_mem 256 MB: Quantitat de memòria assignada per la catxé de Squid (caldrà tindre en compte la quantitat de memòria RAM disponible)
  • cache_mgr webmaster: email per enviar missatge a l'administrador quan succeís algun incident en la catxé
  • cache peer: indica servidors intermediaris amb catxé dins d'una jerarquia com a pares o bé com a germans
  • cache_replacement_policy: indica la política de reemplaç de la catxé:
    • LRU (Least Recently Used): El menys utilitzat recentment. Política per defecte.
    • LFUDA (Least Frequently Used with Dynamic Aging): El menys utilitzat freqüentment amb envelliment dinàmic .
    • GDSF (GreedyDual size Frequancy): Frequüencia de grandària del cobejós dual.
  • cache_swap_low 90 i cache_swap_high 95: indiquen l'interval de percentatge de memòria catxé que es dedica a l'intercanvi.
  • maximum_object_size_in_memory 512KB: tamanya màxim d'un objecte en memòria.
  • cache_dir ufs /var/spool/squid 100 16 256: assigna espai en disc per guardar la catxé d'squid. Paràmetres: UFS és el format en que es guarda, directori on es guarda, 100 és l'espai en MB (ha de ser més que la catxé), 16 directoris màxim de primer nivell, 256 subdirectoris màxim (de segon nivell).
  • cache_log /var/log/squid/cache.log: arxiu log amb informació del comportament del servidor proxy.
Polítiques de reemplaç de catxé
  • LRU (Least Recently Used)
    • Com funciona?
      • Aquesta política elimina els objectes de la caché que han estat utilitzats menys recentment.
      • Quan la caché està plena i cal espai per a nous objectes, es busca i elimina l'element que fa més temps que no s'utilitza.
    • Avantatges:
      • És senzilla de comprendre i implementar.
      • Funciona bé en escenaris on els patrons d'accés són força aleatoris.
    • Desavantatges:
      • No té en compte la mida dels objectes ni la seva freqüència d'accés.
      • Pot mantenir objectes grans que es consulten poc, mentre elimina objectes petits que s'accedeixen amb freqüència.
    • Ús a SQUID:
      • LRU és la política de gestió predeterminada en SQUID.
  • LFUDA (Least Frequently Used with Dynamic Aging)
    • Com funciona?
      • Aquesta política prioritza mantenir a la caché els objectes més petits i accedits més sovint.
      • La "freqüència d'accés" és ajustada dinàmicament perquè objectes molt antics no es mantinguin eternament a la caché.
    • Avantatges:
      • Optimitza l'ús de la caché per a objectes petits i populars.
      • És ideal per entorns amb un gran volum de dades petites i amb patrons d'ús repetitiu.
    • Desavantatges:
      • Pot donar menys prioritat a objectes grans, fins i tot si són importants.
      • És més complexa de gestionar que LRU.
  • GDSF (Greedy Dual-Size Frequency)
    • Com funciona?
      • Prioritza l'eliminació dels objectes grans i menys accedits.
      • Assigna un "cost" a cada objecte que es basa en:
        • La mida de l'objecte.
        • La seva freqüència d'accés.
        • El temps des de l'últim accés.
    • Avantatges:
      • Combina el millor de les altres polítiques: considera tant la mida com la freqüència d'accés.
      • És eficaç per entorns on els objectes grans consumeixen massa espai i redueixen l'eficiència de la caché.
    • Desavantatges:
      • Pot ser més complexa de configurar i monitoritzar.
      • Menys eficient si la mida dels objectes no varia gaire.

Política Prioritat per a mida Prioritat per a ús freqüent Casos recomanats
LRU ✘ (no té en compte) Entorns amb patrons d'accés aleatoris.
LFUDA ✔ (objectes petits) Objectes petits i consultats sovint.
GDSF ✔ (elimina grans) Entorns amb variabilitat en mida i ús dels objectes.

Presentació

Presentació