Salta el contingut

Serveis de Xarxa Implicats en el Desplegament d'una Aplicació Web

1. Resolutors de noms i procés de resolució d'un nom de domini

Què és el sistema de noms de domini

El Sistema de Noms de Domini (DNS) és un conjunt de protocols i servidors que permet traduir noms de domini fàcilment recordables (com www.exemple.com) en adreces IP numèriques (com 203.0.113.10), que són les que utilitzen els ordinadors per establir connexions a Internet.

Funciona com una base de dades jeràrquica i distribuïda, en la qual cada nivell de domini és gestionat per servidors autoritatius diferents, repartits arreu del món.

Característiques principals

  • Jeràrquic i distribuït:
    L’estructura s’organitza en diversos nivells (arrel, dominis de primer nivell, dominis secundaris, subdominis) i està repartida entre milers de servidors. No hi ha un únic punt central de control.

  • Escalable:
    Pot gestionar milions de consultes simultànies gràcies a la seua arquitectura distribuïda.

  • Ús de memòria cau:
    Les respostes es guarden temporalment (segons el valor del TTL) per reduir el temps de resolució i el trànsit a la xarxa.

  • Seguretat (DNSSEC):
    Permet verificar la integritat i autenticitat de les respostes mitjançant signatures digitals.

  • Redundància:
    Cada zona DNS disposa de diversos servidors autoritatius per garantir disponibilitat i tolerància a fallades.

Estructura jeràrquica del DNS

graph TD A["Arrel (.)"]:::root --> B["Dominis de primer nivell (TLD)"]:::tld B --> C1[.com]:::tld B --> C2[.org]:::tld B --> C3[.es]:::tld C1 --> D1[exemple.com]:::domain C2 --> D2[wikipedia.org]:::domain C3 --> D3[gva.es]:::domain D3 --> E5[edu.gva.es]:::domain E5 --> F1[www.edu.gva.es]:::host D1 --> E1[www.exemple.com]:::host D1 --> E2[mail.exemple.com]:::host classDef root fill:#dce6f2,stroke:#446,stroke-width:1px classDef tld fill:#eaf0d7,stroke:#6a6,stroke-width:1px classDef domain fill:#fdebd0,stroke:#aa6,stroke-width:1px classDef host fill:#f8f9f9,stroke:#888,stroke-width:1px

Els resolutors de noms

Els resolutors de noms (DNS resolvers) són serveis que tradueixen noms de domini (com www.exemple.com) en adreces IP comprensibles per les màquines.

Procés bàsic de resolució:

  1. L’usuari escriu un nom de domini en el navegador.
  2. El client DNS consulta el resolutor DNS configurat al sistema.
  3. Aquest comprova si el nom de domini ja està disponible a la memòria cau (caché).
  4. Si el resolutor no coneix la resposta, fa consultes recursives a:
  • Servidors arrel (root)
  • Servidors TLD (Top Level Domain, com .com, .org, .es)
  • Servidors autoritaris del domini
  1. El resolutor retorna la IP corresponent al client i la guarda temporalment a la memòria cau (cache).

En el següent diagrama de seqüència es pot observar la interacció entre els diferents clients i servidors:

sequenceDiagram participant U as Usuari/Navegador participant R as DNS Resolver participant Root as Root (.) participant TLD as TLD (.com) participant AUTH as Autoritatiu (exemple.com) U->>R: www.exemple.com? R-->>U: Comprova caché (TTL vàlid?) alt La caché és vàlida R-->>U: Retorna IP else No a caché R->>Root: Qui sap .com? Root-->>R: Servidors TLD R->>TLD: Qui sap exemple.com? TLD-->>R: Servidors autoritatius R->>AUTH: Registre A/AAAA de www.exemple.com? AUTH-->>R: 203.0.113.10 (+ TTL) R-->>U: Retorna IP i desa a caché end

Funcions clau del DNS en el desplegament web:

  • Permet que els usuaris accedisquen a l’aplicació web a través d’un nom fàcil de recordar.
  • Gestiona l’assignació d’IPs públiques a noms de domini i subdominis.

2. Paràmetres de configuració i registres del servidor de noms afectats en el desplegament

Un servidor de noms manté els registres DNS d’un domini. Aquests registres són essencials per redirigir el trànsit cap al servidor on està desplegada l’aplicació web.

Registres DNS més habituals:

  • A: associa un nom de domini a una adreça IPv4.
  • AAAA: associa un nom a una adreça IPv6.
  • CNAME: crea un àlies cap a un altre nom de domini.
  • MX: indica els servidors de correu del domini.
  • TXT: permet afegir informació addicional (validació SPF, DKIM…).
  • NS: defineix els servidors de noms autoritaris del domini.

Paràmetres importants:

  • TTL (Time To Live): quant de temps es guarda un registre a la cache.
  • Serial i valors SOA (Start of Authority): identifiquen l’estat del domini.

Bones pràctiques:

  • Configurar correctament els registres A o CNAME per apuntar al servidor web.
  • Reduir el TTL temporalment durant canvis de DNS per accelerar la propagació.
  • Validar la configuració amb eines com dig, nslookup o host.

3. Servei de directoris: característiques i funcionalitat

Un servei de directoris és una base de dades jeràrquica i centralitzada que emmagatzema informació sobre usuaris, equips, aplicacions i altres recursos d’una xarxa.

flowchart TB Client1["Usuari / Aplicació"] Client2["Ordinador Client"] subgraph DS["Servei de Directori"] Root["Domini
(ex: empresa.local)"] subgraph OU1["OU: Administració"] U1["Usuari: Anna"] G1["Grup: Admins"] end subgraph OU2["OU: Producció"] U2["Usuari: Joan"] PC1["Ordinador: PC-01"] end subgraph OU3["OU: Professorat"] U3["Usuari: Maria"] G2["Grup: Professors"] R1["Impressora: HP Laserjet"] end Root --> OU1 Root --> OU2 Root --> OU3 end Client1 -->|"Autenticació / Consulta"| Root Client2 -->|"Autenticació / Consulta"| Root

Figura 1: Esquema dels elements bàsics d'un servei de directori

Característiques principals:

  • Organització jeràrquica en forma d’arbre (unitats organitzatives, dominis…).
  • Accés mitjançant protocols estàndard com LDAP.
  • Permet gestionar i autenticar usuaris de manera centralitzada.
  • Facilita l’aplicació de polítiques comunes a tots els usuaris.

Exemples de serveis de directoris:

  • OpenLDAP (lliure)
  • Microsoft Active Directory (propietari)
  • 389 Directory Server
flowchart LR Client["Client
(usuari / aplicació)"] Directory["Servei de Directori
(LDAP / Active Directory)"] Database["Directori
(usuaris, grups,
recursos)"] Client -- "Consulta / Autenticació" --> Directory Directory -- "Resposta / Permisos" --> Client Directory -- "Consulta dades" --> Database

Figura 2: Diagrama de consulta a un servei de directori dels elements bàsics d'un servei de directori

Fitxers bàsics de configuració

Els serveis de directoris utilitzen fitxers de configuració per establir el seu funcionament:

  • Fitxers de configuració principal (slapd.conf, ldap.conf, krb5.conf…).
  • Fitxers d’esquemes que defineixen els tipus d’objectes i atributs disponibles.
  • Fitxers de dades inicials per importar usuaris, grups i unitats organitzatives.

Aspectes clau a definir:

  • Port i interfícies d’escolta.
  • Domini base (base DN) de la jerarquia.
  • Mètodes d’autenticació acceptats.
  • Logs i ubicació de la base de dades.

Autenticació d'usuaris en el servei de directoris

El servei de directoris s’utilitza sovint com a font central d’autenticació d’usuaris en aplicacions web:

  • Les aplicacions consulten el servei de directoris (via LDAP) per verificar credencials.
  • Cada usuari té una entrada (DN) amb els seus atributs: nom, correu, contrasenya, grups…
  • Es poden definir grups o rols per controlar permisos dins de l’aplicació.
  • L’autenticació es pot combinar amb protocols segurs (TLS/SSL) per evitar robatoris de credencials.

Avantatges:

  • Centralització de la gestió d’usuaris.
  • Coherència i seguretat en l’accés a recursos.
  • Menor càrrega administrativa.

4. Adaptació de la configuració del servidor de directoris per al desplegament de l'aplicació

Quan es desplega una aplicació web que empra el servei de directoris per autenticar usuaris, cal adaptar-ne la configuració:

  • Crear unitats organitzatives específiques per a l’aplicació.
  • Donar d’alta els usuaris i grups necessaris.
  • Configurar el binding (connexió) de l’aplicació al servidor de directoris amb un compte de servei.
  • Establir permisos de lectura adequats per a les aplicacions (evitant exposar dades sensibles).
  • Testar la connexió amb eines com ldapsearch.

5. Documentació

És fonamental documentar tota la infraestructura de noms i directoris utilitzada:

  • Configuració actual dels registres DNS del domini i subdominis.
  • Configuració del servidor de noms (fitxers zone, valors SOA…).
  • Estructura del directori LDAP (unitats, grups, usuaris).
  • Fitxers de configuració clau i la seua ubicació.
  • Procediments d’alta i baixa d’usuaris i grups.
  • Històric de canvis i incidències resoltes.

Consell: guardar la documentació en un repositori de control de versions (Git).

6. Desplegament de servidors de directoris mitjançant virtualització, núvol i contenidors

Segons els requisits del projecte, es pot escollir entre diferents formes de desplegar un servidor de directoris:

Virtualització tradicional

  • Crear màquines virtuals amb hipervisors com VMware, VirtualBox o Proxmox.
  • Instal·lar-hi el servei de directoris i configurar-lo com si fos un servidor físic.
  • Fer snapshots per poder recuperar ràpidament en cas d’error.

Contenidors

  • Crear imatges Docker amb OpenLDAP o altres serveis preconfigurats.
  • Llançar contenidors per a proves, entorns temporals o microserveis.
  • Ràpid de desplegar i fàcil d’automatitzar.

Núvol

  • Utilitzar serveis gestionats com AWS Directory Service, Azure AD Domain Services o Google Cloud Directory.
  • Permeten integrar fàcilment aplicacions sense haver de mantenir infraestructura pròpia.
  • Escalabilitat automàtica i alta disponibilitat.

Bones pràctiques:

  • Utilitzar TLS per protegir les connexions LDAP.
  • Mantenir còpies de seguretat de la base de dades del directori.
  • Segregar entorns (desenvolupament, proves, producció) per evitar errors.