Protege tu navegación web con Squid Proxy: Aprende a filtrar y bloquear contenido no deseado

En este artículo, te enseñaré cómo proteger a los usuarios de tu red doméstica o empresarial de contenido inapropiado en Internet utilizando un proxy HTTP. Nuestro objetivo es configurar un servidor gratuito basado en Linux que ejecute Squid y desplegar una aplicación de filtrado web en él para ahorrar ancho de banda, acelerar el acceso a la web y bloquear archivos web ofensivos, potencialmente ilegales o maliciosos.

Índice de Contenido
  1. Configurar CentOS Linux en el servidor proxy
  2. Configurar Squid en el servidor proxy
  3. Configurar QuintoLabs Content Security
  4. Integrar Squid y Content Security
  5. Configurar la interfaz web de Content Security con Apache
  6. Paso final

Configurar CentOS Linux en el servidor proxy

Nuestro servidor proxy se construirá utilizando la versión gratuita de CentOS Linux 6.2. También es posible utilizar RedHat Linux 6.2 con suscripción de pago si necesitas un nivel de soporte garantizado para tus servidores.

Para instalar CentOS Linux, ve a http://mirror.centos.org/centos/6/isos/i386/ y descarga el archivo de imagen CentOS-6.2-i386-minimal.iso. Grábalo en un CD en blanco, insértalo en la unidad de CD de tu servidor y enciéndelo.

Sigue los pasos de instalación aceptando los valores predeterminados o personalizando las partes necesarias de la instalación según tus necesidades. Configura el nombre de host de la máquina como "proxy" y la contraseña de root como "P@ssw0rd" (sin comillas). Espera hasta que la instalación se complete y luego reinicia el sistema.

La versión instalada de CentOS generalmente no tiene conectividad de red habilitada de forma predeterminada. Para habilitar el acceso a la red, necesitamos realizar lo siguiente:

  1. Asigna una dirección IP estática de 192.168.1.2 con una máscara de red de 255.255.255.0 a nuestro servidor proxy modificando el script de inicio /etc/sysconfig/network-scripts/ifcfg-eth0. Ábrelo y agrega estas líneas:
  2. BOOTPROTO=static
    NETMASK=255.255.255.0
    IPADDR=192.168.1.2
    ONBOOT=yes
  3. Configura la configuración de la puerta de enlace predeterminada en el archivo de configuración /etc/sysconfig/network agregando esta línea:
  4. GATEWAY=192.168.1.1
  5. Ajusta la configuración de resolución DNS en /etc/resolv.conf agregando la dirección IP del servidor DNS que se ejecuta en el enrutador:
  6. nameserver 192.168.1.1

Reinicia el subsistema de red escribiendo /etc/init.d/network restart en la terminal de root o simplemente reinicia el servidor. Después de reiniciar, confirma que la red funcione correctamente escribiendo en la terminal (no debería haber errores en las salidas de estos comandos):

Los diferentes tipos de buses en los dispositivos electrónicos
$ping -c 3 192.168.1.1
$nslookup google.com

Antes de realizar cualquier otra instalación, es recomendable actualizar el sistema recién instalado con los últimos parches de seguridad que se hayan lanzado después de la fecha de lanzamiento del ISO. Por lo tanto, escribe yum update en la terminal de root y reinicia el servidor después de que se complete la actualización.

Configurar Squid en el servidor proxy

Utilizaremos Squid como proxy de almacenamiento en caché y filtrado que se ejecuta en nuestro servidor proxy. Para instalar la versión de Squid que viene con la distribución CentOS 6.2, escribe yum install squid en la terminal de root. Squid y todos los paquetes y dependencias relacionados se descargan e instalan automáticamente de Internet.

Haz que el servicio de proxy de Squid se inicie automáticamente al arrancar el sistema escribiendo chkconfig squid on. Reinicia tu servidor o simplemente inicia Squid por primera vez manualmente con service squid start.

Lo único que debemos hacer ahora es permitir que los usuarios externos de nuestra red doméstica accedan a Squid. Abre el archivo de configuración /etc/squid/squid.conf y agrega la línea visible_hostname proxy. También verifica que las líneas http_access allow localnet y acl localnet src 192.168.0.0/16 estén presentes en el archivo de configuración.

Reinicia Squid escribiendo service squid restart. Verifica que Squid se ejecute correctamente apuntando el navegador de tu usuario a la dirección IP del servidor proxy (192.168.1.2) y navegando por algunos de tus sitios web favoritos.

NOTA:

Cómo entrar al programa de configuración del BIOS en tu computadora

Puede que necesites ajustar la configuración de firewall en CentOS para permitir que los usuarios del proxy se conecten al puerto 3128 en el servidor proxy. Utiliza system-config-firewall-tui o comandos iptables para hacerlo. Sería una buena idea permitir también el acceso al puerto 80, ya que utilizaremos este puerto para administrar QuintoLabs Content Security a través de la interfaz web, como se describe más adelante.

Configurar QuintoLabs Content Security

El siguiente paso es instalar Content Security para Squid de QuintoLabs (me referiré a él como qlproxy en el texto). Para aquellos que no lo sepan, QuintoLabs Content Security es un demonio ICAP / reescritor de URL que se integra con el servidor proxy Squid existente y proporciona una funcionalidad avanzada de filtrado de contenido para sanitizar el tráfico web que pasa hacia las redes internas del hogar o la empresa. Se puede utilizar para bloquear descargas ilegales o potencialmente maliciosas, eliminar anuncios molestos, prevenir el acceso a varias categorías de sitios web y bloquear recursos con contenido explícito (es decir, prohibir contenido explícito y para adultos).

NOTA: Existen otras herramientas además de qlproxy que tienen casi la misma funcionalidad. Algunas de las más conocidas son SquidGuard (SG) y DansGuardian (DG). Si bien estas herramientas están bien desde el punto de vista teórico, necesitas instalar ambas para obtener la misma funcionalidad que qlproxy. SG se ejecuta como URL Rewriter y DG incluso como un proxy separado. Tampoco admite el procesamiento SMP, confiando en un modelo de servidor ineficaz en recursos basado en un proceso por conexión, lo que lleva a requisitos aumentados para, por ejemplo, la base de datos de bloqueo de URL. También es un problema vincular SG y DG juntos, ya que tienen diferentes directivas de configuración y son en gran medida independientes entre sí, lo que obliga al administrador a mirar dos lugares diferentes cuando necesita ajustar una única política de filtrado.

Utilizaremos la versión 2.0 de qlproxy, lanzada este mes. La característica más destacada de esa versión es un filtrado web basado en políticas en el que los usuarios del proxy se organizan en varios grupos con diferentes niveles de restricciones.

De forma predeterminada, qlproxy viene con tres políticas preinstaladas. La política Strict contiene la configuración del filtro web en el nivel máximo y está dirigida a proteger a menores y estudiantes de K-12 de contenido inapropiado en Internet. La política Relaxed bloquea solo los anuncios excesivos y es apropiada para ser utilizada por administradores de redes, profesores y todos aquellos que no necesitan un acceso filtrado a la web, pero les gustaría evitar la mayoría de los anuncios. El último grupo es Default y contiene configuraciones de filtrado web menos restrictivas adecuadas para la navegación web normal pero sin mostrar contenido explícitamente para adultos.

Lo bueno de esto es que eres libre de diseñar las políticas tú mismo si encuentras que las políticas predefinidas no son adecuadas para tu entorno de red.

Entendiendo los permisos de archivos y directorios en UNIX

Para instalar Content Security 2.0, debemos obtener el paquete RPM de CentOS / RedHat manualmente desde el sitio web de QuintoLabs y cargar el paquete en el servidor proxy utilizando scp. Otra forma es escribir los siguientes comandos en la terminal de root del servidor proxy directamente (en una sola línea):

#curl http://quintolabs.com/qlproxy/binaries/2.0.0/qlproxy-2.0.0-bb01d.i386.rpm>qlproxy-2.0.0-bb01d.i386.rpm

Después de que se complete la descarga (aproximadamente 21MB), ejecuta el siguiente comando para instalar el paquete descargado y todas sus dependencias (ten en cuenta que el paquete viene en versión i386, pero yum se encarga de instalarlo correctamente en arquitecturas x86_64):

#yum localinstall qlproxy-2.0.0-bb01d.i386.rpm

El administrador de instalación de yum se ejecutará durante un tiempo y el programa se instalará en /opt/quintolabs/qlproxy (binarios), /var/opt/quintolabs/qlproxy (registros varios y bases de datos de filtrado de contenido) y /etc/opt/quintolabs/qlproxy (configuración).

NOTA: Este HowTo asume que tienes SELinux desactivado en tu máquina. Para notas específicas sobre la instalación de qlproxy basada en SELinux, consulta el sitio web y la política de SELinux de muestra instalada en /opt/quintolabs/qlproxy/usr/share/selinux. Para desactivar SELinux, establece SELINUX=disabled en /etc/selinux/config y reinicia.

Integrar Squid y Content Security

QuintoLabs Content Security se puede integrar con Squid de dos formas diferentes: como servidor ICAP o como reescritor de URL. Se recomienda utilizar la integración de ICAP, ya que permite el acceso a todo el tráfico HTTP que pasa a través de Squid y permite que qlproxy realice un filtrado completo de solicitudes y respuestas (ICAP es compatible con Squid versión 3 en adelante).

El archivo README en la carpeta /etc/opt/quintolabs/qlproxy contiene instrucciones detalladas sobre cómo realizar la integración con Squid en diferentes plataformas (Debian, Ubuntu, RedHat e incluso Windows). Para integrarlo con Squid que se ejecuta en CentOS, debemos agregar las siguientes líneas al archivo de configuración /etc/squid/squid.conf:

Cómo recuperar una contraseña de BIOS perdida: dos métodos efectivos
icap_enable on
icap_preview_enable on
icap_preview_size 4096
icap_persistent_connections on
icap_send_client_ip on
icap_send_client_username on
icap_service qlproxy1 reqmod_precache bypass=0 icap://127.0.0.1:1344/reqmod
icap_service qlproxy2 respmod_precache bypass=0 icap://127.0.0.1:1344/respmod
adaptation_access qlproxy1 allow all
adaptation_access qlproxy2 allow all

Reinicia Squid escribiendo service squid restart y prueba navegando por tus sitios web favoritos para ver cuántos anuncios están bloqueados. Otra prueba útil es ir al sitio web eicar.com y tratar de descargar una muestra artificial del virus eicar.com para ver si los archivos *.com están bloqueados por el filtro de descargas.

La instalación predeterminada de Content Security es bastante utilizada de inmediato, pero para ajustarla a los requisitos de nuestra red que describimos anteriormente, deberemos realizar algunos cambios de configuración como se describe a continuación (todas las rutas son relativas a /etc/opt/quintolabs/qlproxy/policies):

  1. Agrega las direcciones IP de todos los usuarios normales a la política de filtrado estricta agregándolas al archivo strict/members.conf (o los nombres de usuario si tu Squid realiza autenticación).
  2. Agrega las direcciones IP o nombres de usuario de todos los usuarios avanzados a la política de filtrado relajada agregándolos al archivo relaxed/members.conf.
  3. Habilita las suscripciones extendidas de AdBlock para bloquear anuncios en inglés, alemán y ruso en el archivo de configuración blocks_ads.conf para ambas políticas. También bloquea motores de seguimiento web comunes descomentando la suscripción EasyPrivacy en los mismos archivos.
  4. Aumenta el nivel de las heurísticas de bloqueo para adultos a "alto" en el archivo strict/block_adult_sites.conf. Aunque puede resultar en un bloqueo excesivo de sitios legítimos, siempre existe la posibilidad de agregar los sitios bloqueados incorrectamente a una lista de excepciones.
  5. El módulo UrlBlock, que utiliza una base de datos comunitaria de dominios categorizados, coloca incorrectamente a blogspot.com en una categoría para adultos... así que lo agregaremos a la lista de excepciones de una política relajada en relaxed/exceptions.conf para poder leer los blogs.
  6. Sabiendo que los gusanos, troyanos y otro software relacionado con malware a menudo se conectan al mundo a través de direcciones IP numéricas en lugar de nombres de host normales, agregaremos una expresión regular mágica url = http://\d+\.\d+\.\d+\.\d+/.* to a strict/block_sites_by_name.conf file to block access to web sites by IP address.

Ahora emite un comando de reinicio para que el demonio qlproxyd recargue la configuración /etc/init.d/qlproxy restart.

Configurar la interfaz web de Content Security con Apache

QuintoLabs Content Security contiene una interfaz web mínima que te permite ver la configuración actual del programa, ver informes de actividad de uso y registros del programa desde un host remoto utilizando tu navegador favorito. La interfaz web está escrita utilizando el marco Django Python y se integra con Apache utilizando mod_wsgi implementado en un entorno Python virtualizado (para minimizar las dependencias de paquetes).

Para instalar Apache, escribe lo siguiente en la terminal de root yum install httpd. Haz que el servicio de Apache se inicie automáticamente al arrancar el sistema escribiendo chkconfig httpd on. Reinicia tu máquina o simplemente inicia Apache por primera vez manualmente escribiendo service httpd start. Luego instala los módulos adicionales de Apache y Python escribiendo en la terminal de root:

#yum install mod_wsgi python-setuptools
#easy_install virtualenv
#cd /var/opt/quintolabs/qlproxy/www
#virtualenv --no-site-packages qlproxy_django
#./qlproxy_django/bin/easy_install django

Integra la interfaz web con Apache agregando las siguientes líneas al archivo de configuración /etc/httpd/httpd.conf:

Cómo funciona y cómo probar una fuente de alimentación para PC
<VirtualHost *:80>
ServerName proxy.lan
ServerAdmin [email protected]
LogLevel info
ErrorLog /var/log/httpd/proxy.lan-error.log
CustomLog /var/log/httpd/proxy.lan-access.log combined
# aliases to static files (must come before the mod_wsgi settings)
Alias /static/ /var/opt/quintolabs/qlproxy/www/qlproxy/static/
Alias /redirect/ /var/opt/quintolabs/qlproxy/www/qlproxy/redirect/
# mod_wsgi settings
WSGIDaemonProcess proxy.lan display-name=%{GROUP}
WSGIProcessGroup proxy.lan
WSGIScriptAlias / /var/opt/quintolabs/qlproxy/www/qlproxy/qlproxy.wsgi
<Directory /var/opt/quintolabs/qlproxy/www/qlproxy>
Order deny,allow
Allow from all
</Directory>
</VirtualHost>

Agrega la siguiente línea al archivo /etc/httpd/conf.d/wsgi.conf para permitir que mod_wsgi se ejecute en modo demonio:

WSGISocketPrefix /var/run/wsgi

NOTA:

Si obtienes una página de error de "Acceso denegado" al intentar acceder a http://localhost, verifica si los permisos de SELinux pueden estar impidiendo el acceso al directorio /var/opt/quintolabs/qlproxy/www/qlproxy/ para el proceso httpd.

Después de reiniciar Apache, navega hasta http://192.168.1.2/qlproxy para ver la configuración del programa, los registros y los informes generados.

Paso final

Lo único que queda es dirigir a los usuarios de la red al servidor Proxy. Hay varias posibilidades para hacer esto automáticamente (piensa en WPAD), pero para fines de prueba, la configuración manual del proxy debería ser más que suficiente. Por lo tanto, dirige el navegador a la dirección IP del servidor proxy (192.168.1.4) y al puerto 3128, navega por algunos de tus sitios web favoritos y observa la diferencia: las direcciones IP en las URL están bloqueadas y los sitios web con contenido explícitamente para adultos están prohibidos. El uso de RAM y CPU en el servidor es mínimo y la experiencia de navegación es aceptable. El sistema se actualiza automáticamente una vez al día con la última lista de bloqueo de URL y las suscripciones de AdBlock y requiere un mantenimiento adicional mínimo.

  • http://www.centos.org
  • http://www.squid-cache.org
  • http://www.quintolabs.com/qlicap_info.php
  • http://issues.quintolabs.com/trac/quintolabs_qlicap/wiki/QlicapDocs

Cómo diagnosticar y reemplazar una fuente de alimentación defectuosa en tu PC

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Centros de Datos, allí encontraras muchos artículos similares a Protege tu navegación web con Squid Proxy: Aprende a filtrar y bloquear contenido no deseado , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.