Fundamentos de Redes y Configuración Web: Proxies, Protocolos y Seguridad
Clasificado en Informática
Escrito el en español con un tamaño de 9,55 KB
Configuración de Directivas HTTP/HTTPS
Para aplicar directivas de acceso HTTP o HTTPS, se utilizan configuraciones específicas, a menudo en un proxy como Squid. A continuación, se muestran ejemplos de directivas comunes:
http_access allow !Safe_ports
http_access allow CONNECT !SSL_ports
http_access allow localhost manager
http_access allow manager
Estas directivas controlan qué puertos y conexiones están permitidos o denegados, así como el acceso al gestor del proxy.
Concepto de Proxy: Usos, Ventajas y Desventajas
Un proxy es un intermediario, un programa o dispositivo que realiza una acción en representación de otro. Actúa como un puente entre el cliente y el servidor, gestionando las solicitudes de red.
Ventajas de usar un Proxy:
- Ahorro de tráfico en la red: Almacena en caché el contenido solicitado frecuentemente, reduciendo la necesidad de descargar los mismos datos repetidamente.
- Mejor tiempo de respuesta: Gracias al caché, las solicitudes a contenido ya almacenado se resuelven más rápidamente.
- Filtrado de contenido: Permite bloquear el acceso a sitios web o tipos de contenido específicos.
- Control de solicitudes: Ofrece la capacidad de monitorear y gestionar las peticiones de los usuarios.
Desventajas de usar un Proxy:
- Mucha carga de trabajo: Puede convertirse en un cuello de botella si no está dimensionado correctamente para el volumen de tráfico.
- Anonimato (potencialmente): Aunque puede ofrecer anonimato al cliente, el proxy en sí mismo puede ser un punto de registro de actividad.
- Intromisión e incoherencia: Puede modificar o interferir con el tráfico, y si el caché no está actualizado, puede servir contenido obsoleto.
Los proxies se pueden usar en diversos entornos, como en una institución educativa para controlar el acceso a internet.
Gestión de Acceso con ACLs en Proxies
Las ACLs (Access Control Lists) son reglas que permiten o deniegan el acceso a recursos específicos. Se pueden configurar para bloquear páginas, permitir o prohibir dominios, o restringir el acceso por horario, entre otras funciones.
Ejemplos de configuración de ACLs:
Restricción por IP:
acl localnet src 192.168.210.2/24
Explicación: Solo las IPs dentro de la red
192.168.210.2/24
pueden acceder.Bloqueo por palabras clave en URL:
acl palabras_denegadas url_regex "/etc/squid/denied_words.txt"
Explicación: No se pueden usar expresiones que se encuentren dentro del fichero especificado (ej. "sex").
Prohibición de dominios específicos:
acl denegados dstdomain www.facebook.com www.twitter.com
Explicación: Prohíbe el acceso a los dominios
www.facebook.com
ywww.twitter.com
.Restricción por horario:
acl horario_laboral time M-F 07:30-21:30
Explicación: Permite la navegación solo dentro del horario especificado (lunes a viernes, de 7:30 a 21:30).
Prohibición de descargas por extensión:
http_access deny urlpath_regex .mp3$
Explicación: Prohíbe la descarga de archivos con extensión
.mp3
.
Clasificación de Proxies: Transparente e Inverso
Existen diferentes tipos de proxies, cada uno con una función específica:
Proxy Transparente:
Si se utiliza un proxy transparente, no es necesaria ninguna configuración adicional en los clientes. El tráfico de red se redirige automáticamente a través del proxy sin que el usuario final lo perciba.
Proxy Inverso (Reverse Proxy):
Un proxy inverso se ubica delante de uno o más servidores web. De esta manera, todo el tráfico entrante de Internet pasa primero por el proxy. Esto es útil para balanceo de carga, seguridad (ocultando la IP real del servidor) y caching.
Directivas de Configuración Web (Apache)
Para configurar un sitio web en un servidor como Apache, se utilizan directivas específicas:
ServerName
: Define el nombre de host y el puerto que el servidor utiliza para identificarse.ServerName www.tudominio.com
ServerAdmin
: Especifica la dirección de correo electrónico del administrador del servidor.ServerAdmin [email protected]
DirectoryIndex
: Establece el nombre del archivo que el servidor buscará por defecto cuando se acceda a un directorio (ej. la página de inicio).DirectoryIndex index.html index.php inici.htm
Alias
: Permite mapear una URL a una ubicación física en el sistema de archivos del servidor.Alias /fotos "/var/www/html/galeria_fotos"
Acceso a Contenido Multimedia Local
Para acceder a archivos multimedia (música o vídeos) almacenados en una carpeta del servidor desde un navegador, si el DNS está configurado correctamente, solo tienes que introducir la dirección IP o el nombre de dominio del servidor seguido de la ruta al archivo en la barra de direcciones del navegador.
Ejemplo: http://tu_servidor/musica/cancion.mp3
o http://192.168.1.100/videos/pelicula.mp4
Acceso Web: Nombre de Dominio vs. Dirección IP
Existen diferencias fundamentales al acceder a un recurso web utilizando un nombre de dominio o una dirección IP:
- Al acceder por nombre de dominio (ej.
google.es
), se accede a la página web asociada a ese dominio. El sistema DNS (Domain Name System) se encarga de traducir el nombre de dominio a una dirección IP. - Al acceder por dirección IP (ej.
172.217.160.142
), se accede directamente al servidor que aloja el contenido, sin pasar por la resolución DNS. Esto puede ser útil para pruebas o acceso directo a servicios específicos.
Flujo de Conexión Web: De la URL al Contenido
Cuando introduces una URL como google.es
en tu navegador, se siguen una serie de pasos y protocolos para obtener el contenido:
- Si en la URL se especifica un nombre de dominio, el cliente (tu navegador) consulta el DNS (Domain Name System) para resolver ese nombre a una dirección IP.
- Una vez que el cliente tiene la dirección IP del servidor, se conecta a este. La conexión se realiza por el puerto 80 para HTTP o por el puerto 443 para HTTPS (conexión segura).
- El cliente envía la solicitud del recurso deseado al servidor utilizando el protocolo correspondiente (HTTP o HTTPS).
- El servidor recibe la solicitud y realiza varias comprobaciones:
- Verifica si la autenticación está configurada y si el cliente tiene permisos para acceder.
- Comprueba si el recurso solicitado existe en su sistema de archivos.
- Evalúa los permisos de acceso al recurso.
- Si el recurso es una aplicación a nivel de servidor (ej. un script PHP), la ejecuta.
- El servidor envía el recurso solicitado, el resultado de una operación o un mensaje de error al cliente.
- El cliente recibe el recurso o el mensaje de error.
- Si el recurso es una aplicación del lado del cliente (ej. JavaScript), la ejecuta.
- Finalmente, el cliente (navegador) interpreta el código HTML, CSS y JavaScript, y muestra el recurso al usuario.
HTTP vs. HTTPS: Seguridad y Funcionamiento
Aunque ambos son protocolos para la transferencia de información en la web, HTTP y HTTPS tienen diferencias cruciales, especialmente en seguridad:
-
HTTP (Hypertext Transfer Protocol):
- Es el protocolo base para la transferencia de información en la World Wide Web.
- El puerto estándar para HTTP es el 80.
- Las comunicaciones HTTP no están cifradas, lo que las hace vulnerables a la interceptación y manipulación de datos.
-
HTTPS (Hypertext Transfer Protocol Secure):
- Es una extensión de HTTP que añade una capa de seguridad.
- El puerto estándar para HTTPS es el 443.
- Está diseñado para la transferencia segura de datos, utilizando un cifrado basado en SSL/TLS (Secure Sockets Layer/Transport Layer Security).
- Para implementar HTTPS, el administrador del servidor web debe obtener un Certificado de Clave Pública para el servidor. Este certificado debe estar firmado por una Autoridad de Certificación (CA) de confianza para que los navegadores web lo acepten y confíen en la conexión.
- Garantiza la confidencialidad (los datos no pueden ser leídos por terceros), la integridad (los datos no han sido alterados) y la autenticidad (se verifica la identidad del servidor).