Control parental gracias a Raspberry Pi, Squid et SquidGuard

L & rsquo; d & rsquo reciente llegada de un iPod para mi hija 9 años, nos enfrentamos a la dura realidad : Los niños crecen rápido y y rsquo; el acceso a las nuevas tecnologías debe ir entre. D & rsquo; de ahí la necesidad de que y rsquo; un sistema de control de acceso a Internet.

raspberry pi parental control

Sin el deseo de convertirse en un dictador o no depender por completo de una herramienta de control parental, todavía tenía que encontrar una solución. El primero es explicar los riesgos, que no son para ser visto cosas, mais rien ne vaut un bon contrôle informatique en plus 🙂

  1. Por problemas de rendimiento, j & rsquo; han utilizado una distribución minimalista que acababa de d & rsquo; para ser instalado. Puedes encontrar toda la información sobre esta page. Si es necesario, Actualiza tu distribución
    apt - actualización && apt - get upgrade y
  2. Instalar Squid y SquidGuard
    apt-get install -y squid3 squidguard

    Recuerde que y rsquo; un usuario apoderado se ha creado. Será útil para posicionar correctamente los y rsquo; todos los derechos para el software de funcionamiento.

  3. Sauvegarde de la configuration de Squid (si d & rsquo; error)
    cp /etc/squid3/squid.conf /etc/squid3/squid.conf.origin
  4. Generar una configuración más ligero mediante la eliminación de muchos (pero útil) Las líneas de comentario.
    /etc/squid3/squid.conf.origin gato | v e egrep ' ^.[[:en blanco:]]*#|^$' > /etc / squid3 / squid.conf
  5. Añadir tu red al final de la lista de las ACL. En casa estoy localmente en el 192.168.1. x. Así que he añadido la siguiente línea
    ACL LocalNet src 192.168.1.0/24
  6. Permiten a las máquinas de la red para conectarse al servidor proxy. Añadir la línea roja. El enlace se realiza con el nombre. Aquí LocalNet.
    http_access allow localhost
    http_access allow LocalNet
    http_access deny todos

Ahora puede configurar su navegador o sistema operativo para usar al proxy HTTP con la frambuesa Pi ip y el puerto (de forma predeterminada) 3128.

Puede cambiar la configuración de la memoria caché : ubicación, tamaño, etc.. El propósito es principalmente para filtrar el acceso a Internet, sino también d & rsquo; mejorar la navegación. Chez moi j’ai créé un répertoire dédié, de tipo tmpfs de 500Mb. Para no sobrecargar la tarjeta SD, Me sale esto en el directorio de memoria. El caché no debe ocupar 100% este espacio (80% Así es 400Mb ideales).

  1. Cree el directorio /caché
    mkdir / cache
  2. En el archivo /etc/fstab agregue la línea
    tmpfs / cache tmpfs impagos,noatime,nosuid,size = 500m 0 0
  3. Dans le fichier /etc/squid3/squid.conf ajouter la ligne suivante à la fin du fichier
    ufs cache_dir / cache 400 16 256
  4. Queda por generar el caché y reiniciar Squid
    service squid3 stop
    squid3 -z
    service squid3 start

Configurar SquidGuard

  1. Télécharger les listas negras. Acceso Filtrado SquidGuard se basa en listas de dominio, URL o palabras clave. L & rsquo; Universidad de Toulouse mantiene listas actualizadas utilizadas directamente desde SquidGuard.
    wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
    tar -zxvf blacklists.tar.gz
  2. Instale las listas en el directorio accesible por SquidGuard. No se olvide de cambiar los derechos de SuidGuard puede acceder
    mv blacklists /var/lib/squidguard/db/
    chown -R proxy:Proxy / var / lib / squidguard / db /
  3. Cambie la configuración del archivo SquidGuard /etc / squidguard / squidGuard.conf In & rsquo; ejemplo de abajo, tous les accès listés à des sites pornographiques seront bloqués pour tous les utilisateurs sauf les appareils dont les IP du groupe padres. El acceso no autorizado a un archivo son loggués pornaccesses.
    dbhome /var/lib/squidguard/db
    logdir /var/log/squidguard
    
    src parents {
            IP 192.168.1.10 192.168.1.18 192.168.1.30
    }
    dest porno {
            domainlist listas negras / pornografía / dominios
            urllist listas negras / pornografía / URL
            pornaccesses log
    }
    
    acl {
            padres {
                    pasar todas
            }
            por defecto {
                    pasar !porn todo
                    redirigir http://localhost / block.html
            }
    }
    
  4. Listas negras Insertar en SquidGuard. Tendrá que ejecutar este comando cada cambio de configuración SquidGuard (/etc / squidguard / squidGuard.conf). Ten paciencia, C & rsquo; es relativamente largo en nuestras pequeñas máquinas.
    squidGuard -C todo
    Proxy chown -R:Proxy / var / lib / squidguard / db /
  5. Agregue la siguiente línea al final del archivo de configuración de Squid /etc / squid3 / squid.conf
    url_rewrite_program /usr/bin/squidGuard -c /etc/squidguard/squidGuard.conf
  6. Puede probar la configuración y SquidGuard calamar y generar los directorios de caché
    servicio squid3 parada
    squid3 -z
  7. Démarrer Squid
    reinicio del servicio squid3

Eso SquidGuard instalado y configurado para bloquear los sitios para adultos

filtrado de calamar squidguard frambuesa pi

Usted ve que y rsquo; n y error rsquo; no es bueno. De hecho, si d & rsquo; error de configuración devuelve el y rsquo; usuario a la página block.html. A medida que nos hacemos de & rsquo; no han instalado, esto genera un error. Si desea personalizar el mensaje, Yo te aconsejo’instalador Nginx y crear la página block.html con el formato que desee. Esto es lo que I & rsquo; tengo en casa :

Raspberry Pi proxy squid pantalla de bloques SquidGuard

Instalar Webmin y calamaris de análisis de registros

  1. Instalar Webmin. J & rsquo; hicieron que desde el / root (sí sé C & rsquo; ¿no es así …)
    webmin mkdir
    cd webmin /
    wget http://prdownloads.sourceforge.net/webadmin/webmin-1.760.tar.gz
    tar zxvf webmin-1.760.tar.gz
    cd webmin-1.760 /
    ./setup.sh / usr / local / webmin
  2. Instale el calamares log Analyzer, muy conveniente para el uso de la información del proxy
    apt-get install calamaris

Ahora puede conectar a la ip de tu Raspberry Pi en Puerto 10000. Usted se identifica con el id y contraseña del paso 1. Módulo Squid es en la categoría Servidor. Si desea más rápida la navegación, Sugiero el tema Libre De Estrés.

Otra herramienta de d & rsquo; análisis de largo que I & rsquo; he instalado es LightSquid (una demo está disponible aquí). Permite d & rsquo; tener información al día / mes / usuario, etc.. Muy útil para ver lo que está sucediendo en la red.

Guión actualiza automáticamente las listas negras

Las listas no son fijas para siempre. Se mantienen al día y evolucionan con regularidad (No sé la frecuencia exacta). Por tanto, es necesario descargar y actualizar SquidGuard. Aquí es un script de ejemplo que puede poner en su mesa de cron para ejecutar diaria o semanal :

#!/bin / sh

cd / var / lib / squidguard / db
listas negras rm -rf
wget http://dsi.ut-capitole.fr/blacklists/download/blacklists.tar.gz
tar -zxvf blacklists.tar.gz
blacklists.tar.gz rm
squidGuard -C todo
Proxy chown -R:proxy / var / lib / squidguard / db /
reinicio del servicio squid3

J & rsquo; han creado este script /etc / cron.daily. L & rsquo; tiempo predeterminado es de 06:25, j & rsquo; han cambiado durante 1 hora en la mañana para asegurarse de que la actualización no se molesta, ya que Squid se reinicia.

URL de configuración de proxy automatique du

Con su servidor web puede distribuir la configuración del proxy para su sistema. Un archivo .pac debe crearse :

  1. Crear archivo de configuración automática. Se crea en /usr / share / nginx / www y I & rsquo; he llamado proxy.pac. El contenido es una función javascript :
        función FindProxyForURL(URL, host) {
            If (
                isInNet(myIpAddress(), "127.0.0.0", "255.0.0.0") ||
                isInNet(myIpAddress(), "192.168.0.0", "255.255.255.0")) {
                retorno "DIRECTO";
            } más {
                If (shExpMatch(URL, "http:*"))
                    retorno "PROXY 192.168.1.28:3128" ;
                If (shExpMatch(URL, "HTTPS:*"))
                    retorno "PROXY 192.168.1.28:3128" ;
                retorno "DIRECTO";
            }
        }
    

    Este archivo da el proxy HTTP y HTTPS. Para la red localhost y lo local, l & rsquo; dispositivo se puede acceder directamente.

  2. Cambie los archivos de tipos MIME .pac. Añadir al final del archivo /etc/nginx/mime.type
    application / x-ns-proxy-autoconfig .PAC;
  3. Reiniciar Nginx
    Reinicio del servicio nginx
  4. Configurar el dispositivo para utilizar la configuración automática a & rsquo; URL http://<ip de votre frambuesa>/proxy.pac
    No hay necesidad de tomar todas las informaciones.

Destinos de scripts de generación basados ​​en listas negras

He aquí un pequeño script para generar las listas de destinos descargados basadas. Puede ayudar a evitar tener cualquier tipo.

#!/bin/sh

SQUIDLIB=/var/lib/squidguard/db
SQUIDLIB_BLACKLISTS=$SQUIDLIB"/listas negras"

If [ -d $ SQUIDLIB_BLACKLISTS ]; entonces
para folderName en `ls $ SQUIDLIB_BLACKLISTS`; hacer
		Si [ -d "$SQUIDLIB_BLACKLISTS / $ folderName" ]; entonces
			eco "dest $ folderName {"
			If [ -e "$SQUIDLIB_BLACKLISTS / $ folderName / dominios" ]; entonces
				eco "      listas negras domainlist / $ FOLDERNAME / dominios"
			fi
			Si [ -e "$SQUIDLIB_BLACKLISTS / $ folderName / urls" ]; entonces
				eco "      listas negras urllist / $ folderName / urls"
			fi
			eco "}"
		fi
	hecho
fi

Se trata de ! Ahora voy a mirar el lado de la de Apple Configurator para configurar la configuración de proxy sin que se modifica por la y rsquo; Usuario. Si algunos d & rsquo; de ustedes saben un equivalente para Android, N & rsquo; por favor, compartir en los comentarios sus herramientas.

Posiblemente le gustan también....

  • Pingback: Servidor principal de Frambuesa Pi : Control parental gracias a Raspberry Pi, Squid et SquidGuard - Maison et Domotique()

  • Roman REY ARIAS

    Très sympa, on ne pense pas souvent que l’on va être confronté à ça et pourtant cela vient plus vite que prévu en général 🙂

    Je vais tester tout ça 🙂

  • kix

    J’ai actuellement ce système installé sur une machine Ubuntu et j’aurai aimé savoir quel est le niveau de performance d’une telle solution sur un Raspberry. Bien entendu il s’agit aussi d’une installation dans le cadre familial.
    Merci 😉

  • Nous sommes 3 En casa : 2 pc, 2 tabletas, 2 telephones et un ipod. Tous passent par le proxy et pas de probleme. Coté performance personne ne trouve à redire donc c’est validé 😉

    • lecameleon99

      Hola. La versión que utiliza la frambuesa?
      Es el proxy también bloquea los bares no deseados?

      • Hola. Frambuesa Pi 2. No bloquear pub no he visto cómo calamar podía cuidar

        • lecameleon99

          Gracias por la respuesta.

  • superjey

    En OpenWRT pongo un proxy transparente para evitar el ajuste.
    Por contra, con el calamar + DansGuardian Para anular todo tan pronto como estoy en esta glándula me https. ¿Ha comprobado con su configuración propuesta aquí ?

    Y también, no bloqueará cualquier cosa si el adolescente pasa a través de una aplicación de tipo “Chanu” ir en 4chan

    • Puedo habilitar la conmutación de lado la característica de error HTTPS pero no he visto ninguna diferencia

      Actualmente en 9 años todavía tengo un poco de espacio. Y no he cerrado la configuración del proxy en el iPod por lo que no es 100% seguro

  • Daniel Coquette

    Extra de este tutorial. Me he tomado la fácil instalación IPFire en un B +.

  • arcanos

    Hola,

    No puedo crear una página personalizada de error.
    Squidguard en el archivo de configuración, Puse “redirigir adresse_rpi / block.html
    Vuelvo a caer en la página buena block.html creé pero quiero la dirección que aparece no es la de mi RPI sino la del sitio bloqueado. ¿Me puede ayudar por favor ?
    Gracias de antemano

    • Hola,

      En casa me redirige a una página PHP que analiza los parámetros. En la configuración que tengo este squidguard :

      redirigir http://192.168.1.28/index.php?caddr=%a&cname=%n&user=%i&group=%s&target=%t&url=%u

      Más información sobre los posibles ajustes al redirigir : http://www.squidguard.org/Doc/redirect.html

      • arcanos

        Hola, podría decir que el contenido de su página index.php, No puedo cambiar la dirección URL.
        Atentamente

        • <html>

          <head>

          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

          </head>

          <body>

          <img style="margin:30px; display: block; margin-left: auto; margin-right: auto" src="http://192.168.1.28/stop.png"/>

          <h3 style="text-align: center">

          Le site <?php echo htmlspecialchars($_GET["url"]); ?> n'est pas autorisé

          </h3>

          <pre style="text-align: center">Source : <?php echo htmlspecialchars($_GET["caddr"]); ?></pre>

          <pre style="text-align: center">Target : <?php echo htmlspecialchars($_GET["target"]); ?></pre>

          <pre style="text-align: center">URL : <?php echo htmlspecialchars($_GET["url"]); ?></pre>

          </body>

          </html>

          • arcanos

            Hola, gracias por su pronta respuesta.

            En mi página tengo
            fuente de l'IP, etc. … pero en la barra de direcciones Dirijo mi
            La página de la que es mi servidor web local (192.168.1.X / index.php con
            ajustes). Por lo que veo, usted tiene la dirección URL especificada en el
            barra de direcciones pero el contenido de 'index.php’ se visualiza.
            ¿Cómo se hizo ?

          • Ninguna idea … triste

  • Abdullah Irfan

    O usted podría utilizar GateSentry en el RPI, simplemente saca la imagen en la tarjeta SD y ya está bueno para ir: http://www.abdullahirfan.com/my-projects/gatesentry/

  • Pingback: casa de los padres con la Frambuesa Pi, Squid et SquidGuard - Gentil virus de Open Source()

  • Jimmy Van den Bliek

    Probé la solución para mi familia, para bloquear YouTube en particular a ciertas horas. Esto funciona bien, excepto que el acceso a los correos ya no funcionan. Me explico un poco de mi configuración. Tengo una Freebox la que esté prohibido por defecto todos los accesos a Internet a todas las máquinas para forzar un pasaje a través del proxy. Por lo que sólo el proxy para acceder a Internet. En la configuración del calamar, He quitado todo lo relacionado con el bloqueo de puertos. IOS o OSX (iMac y iPhone), Me puse el proxy pero la conexión con el servidor de correo electrónico no es posible. Aquí está mi configuración de calamar:

    acl CONNECT CONNECT método
    acl src home_network 192.168.0.0/24
    acl src padres 192.168.0.51
    acl tiempo youtube_hours M T W F H 17:00-20:30
    acl youtube dstdomain .youtube.com
    http_acces negar CONNECT youtube !padres !youtube_hours
    deny_info http://localhost/block.php Youtube
    http_acces negar youtube !padres !youtube_hours
    http_acces permitir gestor de localhost
    http_acces negar gerente
    http_access allow localhost
    http_acces permitir home_network
    http_access deny todos
    http_port 3128
    coredump_dir / var / spool / squid3
    refresh_pattern ^ ftp: 1440 20% 10080
    refresh_pattern ^ Gopher: 1440 0% 1440
    refresh_pattern -i (/cgi-bin /|?) 0 0% 0
    refresh_pattern . 0 20% 4320
    ufs cache_dir / cache 400 16 256
    url_rewrite_program / usr / bin / squidGuard -c /etc/squidguard/squidGuard.conf

    Alguien hace `s enfrentado a este problema? Gracias

    • Hola
      El acceso a los servidores en otros puertos como 80 o 443 función ? Género ftp o ssh. Para ver si ca proviene específicamente de correo electrónico o puertos. Sería extraño que sólo los puertos para el correo siendo bloqueados.
      ¿Has visto los registros de calamar en / var / log / squid3 ?

      • Jimmy Van den Bliek

        De hecho todo lo que no está en los puertos 80 o 443 está bloqueada o al menos no pasa a través del proxy. Puedo ver el tráfico en los puertos 80 y 443 en los registros, pero nada sobre otros puertos. Es como si el proxy se ignora todo lo demás y tratando de saltar. Como ya he encerrado de forma predeterminada en todos los accesos a Internet freebox y sólo el servidor proxy puede acceder a Internet, todo lo demás está bloqueado.

        Por el momento, Abrí de nuevo el acceso a Internet para todos los dispositivos y pongo manualmente la configuración de proxy para el puerto 80/443. Permite que un mínimo de control de todos modos.

        • No está en la configuración de los calamares la capacidad de administrar los puertos, pero nunca he utilizado.

  • Hugo Tofani

    Hola y gracias por este excelente tutorial, Sin embargo, usted no habla reescribiendo SafeSearch, ¿tiene alguna información sobre él ?

    • Hola
      Por lo que he visto y comprendido, Google es HTTPS y HTTP completos calamar en el reescritura para forzar SafeSearch no se ve.
      Si desea probar que puede instalar retorcimiento que puede hacer la reescritura de URL con expresiones regulares

  • Damian Raspachini

    Hola, Me disculpo por no escribir en francés, pero mis habilidades es francés son bastante pobres, mas. Tengo una pregunta acerca de esta magnífica guía. ¿Has probado esta configuración como un proxy transparente? tengo un 8 años de edad hijo, y me gustaría para forzar el uso de proxy en mi LAN sin configurar manualmente en cada dispositivo. Sería tan amable de darme una mano con eso? Recientemente he comprado una interfaz USB a Ethernet para mi Pi con el fin de hacer un puente entre las dos interfaces.

    Gracias de antemano.

    Atentamente,

    • Hola. Yo no defino un proxy transparente, puedo cambiar la configuración sólo en el iPod de mi hija (por ahora ella sólo tiene que dispositivo)
      Usted puede tratar de definir un punto de acceso en la Frambuesa Pi, añadir calamar en él y vincular el Pi a su router a través del enlace Ethernet (y por supuesto desactivar el wifi del router si tiene uno) ?

  • Olly Lennox

    Hi There,

    ¿Hay alguna posibilidad de que podría subir una imagen del sistema de la tarjeta de memoria Frambuesa Pi? Esta guía es brillante pero no soy el más técnico y suena como ya lo tiene configuración muy bien

    Gracias!