Flashcards: 208.3 - Squid Como Proxy Cache
37 tarjetas de repaso. Usa el sistema de repeticion espaciada para memorizar.
P: ¿Cuál es el puerto predeterminado en el que Squid escucha las conexiones de los clientes?
R: c) 3128. El puerto predeterminado de Squid es 3128, configurado mediante la directiva http_port en /etc/squid/squid.conf. Aunque puede cambiarse a cualquier otro puerto, 3128 es el estándar reconocido para proxies Squid.
P: ¿Qué tipo de ACL en Squid se utiliza para filtrar peticiones basándose en el dominio de destino?
R: c) dstdomain. La ACL de tipo dstdomain filtra las peticiones según el nombre de dominio de destino. Por ejemplo, acl bloqueados dstdomain .facebook.com coincide con cualquier petición dirigida a facebook.com o sus subdominios. El tipo dst filtra por dirección IP de destino, no por nombre de dominio.
P: ¿Qué comando debe ejecutarse antes del primer inicio de Squid para crear la estructura de directorios de la caché?
R: c) squid -z. El comando squid -z crea la estructura de directorios de caché definida en la directiva cache_dir. Debe ejecutarse antes del primer inicio del servicio para que Squid pueda almacenar los objetos en caché correctamente.
P: En la directiva cache_dir ufs /var/spool/squid 100 16 256, ¿qué representa el valor 100?
R: b) El tamaño máximo de la caché en disco en megabytes. En la directiva cache_dir, los parámetros son: tipo de almacenamiento (ufs), directorio (/var/spool/squid), tamaño en MB (100), subdirectorios de nivel 1 (16) y subdirectorios de nivel 2 (256).
P: ¿Qué código de estado en el log de Squid indica que un objeto fue servido directamente desde la caché?
R: b) TCP_HIT. TCP_HIT en el access.log de Squid indica que el objeto solicitado se encontró en la caché y fue servido al cliente sin necesidad de contactar el servidor origen. TCP_MISS indica que el objeto no estaba en caché y tuvo que descargarse.
P: ¿Cuál es la forma correcta de configurar Squid como proxy transparente en versiones recientes?
R: b) http_port 3128 intercept. En versiones recientes de Squid (3.1+), la palabra clave correcta es intercept en lugar de transparent. Ambas opciones configuran el modo proxy transparente, pero transparent está obsoleta. Además, se necesitan reglas de iptables para redirigir el tráfico al puerto del proxy.
P: ¿Qué representan las letras MTWHF en una ACL de tipo time en Squid?
R: b) Monday, Tuesday, Wednesday, Thursday, Friday. En las ACLs de tipo time, cada día se representa con una letra: S=Sunday, M=Monday, T=Tuesday, W=Wednesday, H=Thursday, F=Friday, A=Saturday. MTWHF corresponde a los días laborales de lunes a viernes.
P: ¿Qué directiva de Squid especifica la cantidad de memoria RAM que puede utilizarse para almacenar objetos en caché?
R: c) cache_mem. La directiva cache_mem especifica la cantidad de memoria RAM que Squid dedica a almacenar los objetos más frecuentemente solicitados. Por ejemplo, cache_mem 256 MB. Esto es adicional a la memoria que Squid necesita para su funcionamiento normal.
P: Un administrador quiere recargar la configuración de Squid sin interrumpir las conexiones activas. ¿Qué comando debe usar?
R: c) squid -k reconfigure. El comando squid -k reconfigure hace que Squid relea su archivo de configuración sin necesidad de reiniciar el servicio. Las conexiones activas no se interrumpen. Es equivalente a enviar la señal SIGHUP al proceso de Squid.
P: ¿Qué protocolo utiliza Squid para comunicarse con otros proxies en una jerarquía de caché y en qué puerto opera por defecto?
R: c) ICP en el puerto 3130. ICP (Internet Cache Protocol) es el protocolo utilizado por Squid para comunicarse con proxies hermanos (sibling) y padres (parent) en una jerarquía de caché. Funciona sobre UDP en el puerto 3130 por defecto, configurado mediante la directiva icp_port.
P: ¿Qué tipo de ACL en Squid permite filtrar peticiones basándose en una expresión regular aplicada a la URL solicitada?
R: c) url_regex. La ACL de tipo url_regex filtra las peticiones comparando la URL completa con una expresión regular. Por ejemplo, acl descargas url_regex -i \.exe$ \.torrent$ coincide con URLs que terminen en .exe o .torrent. La opción -i hace la comparación insensible a mayúsculas/minúsculas.
P: En una jerarquía de caché de Squid, ¿cuál es la diferencia entre un proxy padre (parent) y un proxy hermano (sibling)?
R: b) El padre reenvía peticiones si no tiene la respuesta en caché, el hermano solo comparte contenido cacheado. Un proxy padre (parent) actúa como intermediario completo: si tiene el objeto en caché lo devuelve, y si no, lo solicita al servidor origen en nombre del proxy que lo consulta. Un proxy hermano (sibling) solo devuelve objetos que ya tiene en su caché; si no los tiene, no realiza la petición al servidor origen. La comunicación entre proxies se realiza mediante ICP (UDP 3130).
P: ¿Cuál es el orden de procesamiento de las reglas http_access en Squid?
R: c) Se procesan de arriba hacia abajo y se aplica la primera coincidencia. Squid procesa las reglas http_access secuencialmente de arriba hacia abajo y aplica la primera regla que coincida con la petición. Por esta razón, el orden es fundamental. Las reglas más específicas deben ir antes que las generales, y la última regla debe ser siempre http_access deny all para denegar todo lo que no esté explícitamente permitido.
P: ¿Qué tipo de almacenamiento de caché en Squid utiliza operaciones de E/S asíncronas para mejorar el rendimiento frente al formato estándar UFS?
R: c) aufs. AUFS (Asynchronous UFS) es un tipo de almacenamiento de caché que realiza las operaciones de lectura y escritura en disco de forma asíncrona usando hilos, lo que mejora significativamente el rendimiento respecto al UFS estándar que usa E/S síncrona. Se configura con cache_dir aufs /var/spool/squid 10000 16 256.
P: ¿Qué directiva de Squid configura el tamaño máximo de un objeto que puede almacenarse en la caché de disco?
R: b) maximum_object_size. La directiva maximum_object_size define el tamaño máximo que puede tener un objeto para ser almacenado en la caché de disco. Objetos más grandes no se cachean. Por ejemplo, maximum_object_size 4 MB. Para la caché en memoria existe la directiva equivalente maximum_object_size_in_memory.
P: ¿Qué regla de iptables se necesita para redirigir el tráfico HTTP al proxy Squid en modo transparente?
R: b) iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 3128. Para el proxy transparente, se usa la tabla nat con la cadena PREROUTING para interceptar el tráfico HTTP (puerto 80) antes de que sea enrutado y redirigirlo al puerto del proxy Squid (3128). Se usa la acción REDIRECT que cambia el puerto de destino del paquete. La cadena PREROUTING es necesaria porque la redirección debe ocurrir antes de la decisión de enrutamiento.
P: ¿Qué archivo de log de Squid registra los eventos del servicio como inicios, paradas y errores de configuración?
R: b) /var/log/squid/cache.log. El archivo cache.log registra los eventos operativos del servicio Squid: inicios y paradas del demonio, errores de configuración, advertencias y mensajes de diagnóstico. El archivo access.log registra las peticiones de los clientes, y store.log registra los objetos almacenados y eliminados de la caché.
P: ¿Qué directiva de Squid configura el programa de autenticación para validar usuarios con el esquema básico (NCSA)?
R: b) auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/passwd. La directiva auth_param basic program define el programa externo que Squid utiliza para autenticar usuarios con el esquema básico. basic_ncsa_auth verifica las credenciales contra un archivo de contraseñas en formato NCSA (creado con htpasswd). La directiva auth_param basic realm permite configurar el mensaje que ve el usuario.
P: ¿Qué palabra clave se utiliza en la directiva http_port de Squid para configurarlo como proxy inverso (acelerador)?
R: b) accel. La palabra clave accel en la directiva http_port configura Squid como proxy inverso (acelerador web). Por ejemplo: http_port 80 accel defaultsite=www.ejemplo.com vhost. En este modo, Squid recibe peticiones de clientes externos y las reenvía a los servidores backend definidos con cache_peer, cacheando el contenido para mejorar el rendimiento.
P: ¿Qué herramienta de línea de comandos incluida con Squid permite consultar estadísticas de la caché y purgar objetos?
R: b) squidclient. El comando squidclient es una herramienta de diagnóstico incluida con Squid que permite consultar estadísticas de la caché (squidclient mgr:info), ver el uso de memoria (squidclient mgr:mem), consultar contadores de tráfico (squidclient mgr:counters) y purgar objetos específicos de la caché (squidclient -m PURGE http://url).
P: ¿Qué comando verifica la sintaxis del archivo de configuración de Squid sin iniciar el servicio?
R: squid -k parse. El comando squid -k parse lee y analiza el archivo de configuración squid.conf reportando errores de sintaxis o directivas desconocidas sin iniciar ni afectar al servicio en ejecución. Es recomendable ejecutarlo después de cada modificación del archivo de configuración y antes de aplicar cambios con squid -k reconfigure.
P: ¿Qué comando rota los archivos de log de Squid?
R: squid -k rotate. El comando squid -k rotate cierra los archivos de log actuales, los renombra añadiendo un sufijo numérico (access.log.0, access.log.1, etc.) y abre nuevos archivos de log. Esto permite gestionar el tamaño de los logs sin interrumpir el servicio. Se puede automatizar con una tarea cron o un temporizador de systemd.
P: ¿Qué comando inicializa la estructura de directorios de caché de Squid?
R: squid -z. El comando squid -z crea la estructura de subdirectorios de la caché en disco según la configuración de cache_dir en squid.conf. Debe ejecutarse antes del primer inicio de Squid y cada vez que se cambie la configuración de cache_dir. Los directorios se crean con los niveles L1 y L2 especificados (por ejemplo, 16 y 256).
P: ¿Qué comando de Squid recarga la configuración sin interrumpir las conexiones activas?
R: squid -k reconfigure. El comando squid -k reconfigure envía la señal SIGHUP al proceso Squid, haciendo que relea su archivo de configuración sin reiniciar el servicio ni interrumpir las conexiones activas. Los cambios se aplican inmediatamente para las nuevas conexiones. Es equivalente a systemctl reload squid en sistemas con systemd.
P: ¿Qué comando permite purgar un objeto específico de la caché de Squid?
R: squidclient -m PURGE. El comando squidclient -m PURGE http://url envía una solicitud HTTP con el método PURGE a Squid para eliminar un objeto específico de la caché. Por ejemplo: squidclient -m PURGE http://www.ejemplo.com/imagen.jpg. Para que funcione, se debe configurar una ACL que permita el método PURGE desde la dirección del administrador.
P: Tip de examen: El puerto predeterminado de Squid es 3128. En modo transparente, los clientes no…
R: El puerto predeterminado de Squid es 3128. En modo transparente, los clientes no necesitan configurar el proxy en su navegador; el tráfico se redirige al proxy mediante reglas de iptables.
P: Tip de examen: Los días de la semana en la ACL time se representan como: S=Sunday, M=Monday, …
R: Los días de la semana en la ACL time se representan como: S=Sunday, M=Monday, T=Tuesday, W=Wednesday, H=Thursday, F=Friday, A=Saturday. Nota que Thursday es H y Saturday es A.
P: Tip de examen: El orden de las reglas http_access es fundamental. Squid las procesa de arriba…
R: El orden de las reglas http_access es fundamental. Squid las procesa de arriba a abajo y aplica la primera regla que coincida. La última regla debe ser siempre http_access deny all para denegar todo lo que no esté explícitamente permitido.
P: Tip de examen: ICP (Internet Cache Protocol) utiliza el puerto UDP 3130 por defecto para la com…
R: ICP (Internet Cache Protocol) utiliza el puerto UDP 3130 por defecto para la comunicación entre proxies en una jerarquía de caché.
P: Tip de examen: El comando squid -z debe ejecutarse antes del primer inicio de Squid para crea…
R: El comando squid -z debe ejecutarse antes del primer inicio de Squid para crear la estructura de directorios de la caché. Después de modificar squid.conf, usa squid -k reconfigure para aplicar los cambios sin interrumpir el servicio.
P: Que hace el comando /var/log/squid/access.log?
R: Registro de todas las peticiones procesadas
P: Que es/son Introducción?
R: Squid es un servidor proxy caché ampliamente utilizado en entornos Linux. Permite almacenar en caché contenido web para mejorar el rendimiento, controlar el acceso a Internet mediante ACLs y actuar com
P: Que es/son Listas de Control de Acceso (ACLs)?
R: Las ACLs son el mecanismo central de Squid para controlar el acceso. Se definen en dos pasos: primero se define la ACL y luego se aplica una regla.
P: Que es/son Proxy transparente?
R: En un proxy transparente, el tráfico del cliente se redirige al proxy sin necesidad de configurar el navegador.
P: Que es/son Proxy inverso (Reverse Proxy)?
R: Squid puede actuar como proxy inverso para servir contenido desde servidores backend.
P: Que es/son Jerarquía de caché (Cache Hierarchy)?
R: Squid permite configurar jerarquías de caché con servidores padre (parent) y hermanos (sibling).
P: Que es/son Trampas del examen?
R: > Errores comunes y distinciones criticas que LPI suele evaluar en este subtema: