Cómo usar frambuesa Pi como enrutador y filtro de contenido

Si usted tiene niños en su casa, es posible que haya sentido la necesidad de bloquear ciertos sitios web no deseados. Otra área problemática común son los sitios web de los medios sociales – usted puede sentir que los niños (y adultos) pierden demasiado tiempo en Facebook, Twitter, etc. y quieren bloquearlos, o al menos hacerlos accesibles sólo en ciertos momentos del día.

Para que esto sea posible, necesitamos un router más filtro de contenido , un dispositivo a través del cual todos nuestros dispositivos, como ordenadores portátiles, teléfonos inteligentes y tabletas, se conecten a Internet. Este dispositivo también intercepta los sitios web a los que acceden estos dispositivos y los bloquea si intentan acceder a un sitio web en una lista negra.

Existen en el mercado filtros de contenido comerciales y listos para usar, pero para nosotros, los tipos de bricolaje, eso no es divertido. Así, nos ensuciaremos las manos, y prepararemos un Pi de frambuesa para el trabajo. Elegimos el Pi de Frambuesa para este proyecto debido a su pequeño tamaño y su escaso consumo de energía. Sin embargo, estas instrucciones funcionarán casi sin modificaciones con casi cualquier ordenador que ejecute Debian Linux o un derivado (Ubuntu, Mint etc.).

Disclaimer : Esta guía asume un nivel intermedio de experiencia con Linux, y la voluntad de solucionar problemas si y cuando surgen. Experiencia previa con líneas de comandos y cortafuegos es una ventaja.

Cómo funciona

Hardware

Vamos a utilizar el Pi 3 de frambuesa como un router con filtro de contenido. Para ello, necesitaremos dos interfaces de red en él – una para conectarse a Internet, y la otra para actuar como un punto de acceso público WiFi para que nuestros otros dispositivos se conecten. El Frambuesa Pi 3 tiene un conector Ethernet incorporado y un módulo WiFi. Así que en este escenario, podemos usar un cable Ethernet ( eth0 ) para conectarnos a Internet, mientras que el módulo WiFi ( wlan0 ) actuará como un punto de acceso público.

Por supuesto, la conexión a Internet a través de Ethernet no siempre es posible. En este caso, necesitará una llave USB WiFi compatible ( wlan1 ) para conectarse a Internet, mientras que el módulo WiFi incorporado ( wlan0 ) actuará como un punto de acceso público. Esta es la configuración que utilizaremos en esta guía.

Tenga en cuenta que aunque un Pi 3 de Frambuesa es el más adecuado para una configuración doméstica con unos cuantos portátiles y teléfonos inteligentes, no proporcionará el rendimiento necesario para una configuración de oficina grande . Busque en hardware más capaz si muchos clientes se conectarán a su filtro de contenido.

Software

Usaremos el excelente E2guardian para interceptar y filtrar nuestras peticiones web. Dado que el filtrado de contenido puede tener un impacto en el rendimiento (dependiendo del tamaño de la lista de bloqueos), utilizaremos la caché Squid para compensar este impacto en el rendimiento.

Requisitos previos

1. Raspberry Pi 3 con la última versión de Raspbian OS instalada y acceso a Internet. Si sólo estás empezando con el Pi de Frambuesa, te recomendamos que leas nuestra guía sobre cómo empezar con el Pi de Frambuesa 3.

2. [Opcional] USB WiFi Dongle – Esto es necesario si, y sólo si no puede conectar su Raspberry Pi 3 a Internet con un cable Ethernet. Si está planeando usar WiFi tanto para conectarse a Internet como para usarla como punto de acceso público, esto es necesario.

3. Physical Access to the Raspberry Pi – Debido a la naturaleza de este artículo, un solo error en la configuración del firewall puede bloquear su Pi si la usa en modo sin cabeza. Por lo tanto, se recomienda que conecte un monitor, teclado y ratón mientras lo configura hasta que todo esté configurado.

Usar el Pi asRouter de frambuesa

1. Conecte su Pi a Internet usando Ethernet ( eth0 ). Si está usando una llave USB WiFi (probablemente wlan1 ), conéctela a Internet. Deje el módulo WiFi incorporado ( wlan0 ) tal como está por ahora.

2. Obtener el software de prerrequisito que necesitamos:

sudo apt install iptables iptables-persistent hostapd dnsmasq squid3

3. Configuraremos hostapd para que nuestra Pi pueda actuar como un punto de acceso WiFi . Para ello, cree un archivo de configuración utilizando su editor de texto favorito, por ejemplo sudo nano /etc/hostapd/hostapd.conf, y pegue el contenido de nuestra página GitHub.

Algunas de las líneas que puede que quieras modificar según el gusto son:

ssid=RaspberryPiAP

Esta línea dicta cuál será el nombre del punto de acceso. Elegí FrambuesaPiAP.

wpa_passphrase=beebom.com

Especifica la frase de contraseña utilizada para acceder a la zona activa. Usé beebom.com, pero se recomienda que lo cambie por una frase de contraseña fuerte de su elección.

4. A continuación, configuraremos un servidor DHCP usando dnsmasq. Edite el fichero de configuración /etc/dnsmasq.conf, y añada las siguientes líneas al final:

código fuente]interface=lo,wlan0

no-dhcp-interface=lo

dhcp-range=192.168.8.20.20,192.168.8.254,255.255.255.0,12h[/código fuente]

Esto hace que la interfaz en wlan0 (el módulo WiFi incorporado) distribuya direcciones IP a clientes en el rango 192.168.8.20 a 192.168.8.254 .

5. Configure una dirección IP estática para el módulo WiFi integrado wlan0. Abra el archivo /etc/network/interfaces. Probablemente se vea algo como esto (énfasis mío):

[código fuente]directorio-fuente /etc/network/interfaces.d

auto lo

iface lo inet loopback

manual de inet de iface eth0

allow-hotplug wlan0

iface wlan0 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

allow-hotplug wlan1

iface wlan1 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Aquí, localiza las líneas en negrita que tratan con wlan0, y cámbialas , para que el archivo se vea como el siguiente:

[código fuente]directorio-fuente /etc/network/interfaces.d

auto lo

iface lo inet loopback

manual de inet de iface eth0

allow-hotplug wlan0

iface wlan0 inet static

hostapd /etc/hostapd/hostapd.conf

dirección 192.168.8.1

máscara de red 255.255.255.255.0

allow-hotplug wlan1

iface wlan1 inet manual

wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf[/sourcecode]

Esto configura una dirección IP estática 192.168.8.1 en wlan0. Recuerde esta dirección, ya que es la dirección que usaremos para comunicarnos con nuestro Frambuesa Pi más adelante .

6. Ahora configure el redireccionamiento IP . Edite el archivo /etc/sysctl.conf, y añada la siguiente línea:

net.ipv4.ip_forward=1

7. Ahora configuraremos la traducción de la dirección de red (NAT) en nuestro firewall. Para ello, introduzca los dos comandos siguientes:

sudo iptables -t nat -A POSTROUTING -s 192.168.8.0/24 ! -d 192.168.8.0/24 -j MASQUERADE
sudo iptables-save | sudo tee /etc/iptables/rules.v4

El primer comando configura NAT, mientras que el segundo guarda la configuración actual de nuestro cortafuegos en un archivo llamado /etc/iptables/rules.v4. Esto asegura que la configuración persista durante los reinicios.

8. En este punto, reinicie su Raspberry Pi . Esto es para asegurarnos de que todos los cambios que hicimos en los archivos de configuración son funcionales.

9. Después de reiniciar, debería poder ver la nueva zona activa de RaspberryPiAP (a menos que haya cambiado el nombre en el paso 3) en sus otros dispositivos, como portátiles y teléfonos inteligentes. Puede conectarse a él utilizando la contraseña que ha especificado y acceder a Internet.

Esto es todo lo que necesitas hacer si necesitas un router básico de baja potencia. Si también desea configurar un filtro de contenido, siga leyendo.

Configurar el filtro de contenido usando E2guardian

E2guardian no está presente en los repositorios por defecto de Raspbian. Para instalarlo, vaya a la página de Github del proyecto y descargue el archivo que termina en armhf.deb. Ahora abra Terminal, vaya a su carpeta Descargas (o donde quiera descargar el archivo) e instálelo:

cd ~/Descargas
sudo dpkg -i./e2guardian_*_jessie_armhf.deb

Probablemente verá algunos errores sobre la falta de paquetes cuando instale E2guardian. Para rectificar esto, deje que la instalación termine, e introduzca el siguiente comando :

sudo apt-get install -f

Uso de listas de contenido

Hay varias listas presentes en el directorio /etc/e2guardian/lists. Estos archivos incluyen bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist, y más. Estos archivos están debidamente documentados con comentarios. Échales un vistazo para que te familiarices.

Como ejemplo, supongamos que desea bloquear algunas redes sociales populares . Abra el archivo /etc/e2guardian/lists/bannedsitelist, y en el bloque Blanket SSL/CONNNECT (ya que estos sitios web utilizan https en lugar de simples http ), añada las siguientes líneas:

facebook.com
twitter.com
reddit.com

Ahora recargue el servicio E2guardian usando el comando sudo service e2guardian reload ( tendrá que ejecutar este comando cada vez que modifique los archivos de configuración ). Cualquier cliente que utilice el filtro de contenido no podrá acceder a estos sitios web. Incluso los sitios para móviles (por ejemplo, m.twitter.com) y las aplicaciones dedicadas para teléfonos inteligentes no funcionarán.

E2guardian también bloquea el porno por defecto . Si desea permitirlo (hey, no estamos juzgando), abra el archivo /etc/e2guardian/lists/bannedphraselist, y localice la siguiente línea:

Coméntelo añadiendo un hash (# símbolo) al frente, para que se vea así:

Una vez más, recargue la configuración con el servicio sudo e2guardian reload, y listo.

Configuración de Clientes

Ahora que nuestro servidor proxy está configurado, podemos pasar a la configuración de los clientes. Para utilizar el filtro de contenido, todos los clientes deben estar conectados a la zona activa de Rapberry Pi y configurados para utilizar el proxy. La configuración de un proxy es diferente en todos los sistemas operativos y dispositivos. Sin embargo, le demostraremos cómo configurarlo en Windows y Android, ya que estos son más populares.

Ventanas

Ir a Panel de control> Red e Internet> Opciones de Internet . En la ventana que se abre, vaya a la pestaña Conexiones y haga clic en Configuración de LAN .

Aquí, haga clic en Avanzado , e introduzca 192.168.8.1 como dirección del proxy y 8080 como puerto. Asegúrese de que la casilla Utilizar el mismo servidor proxy para todos los protocolos esté marcada. Haga clic en OK .

Eso es todo lo que necesitas hacer. Los navegadores web más populares, como Google Chrome y Firefox, captarán automáticamente la configuración del proxy del sistema.

Android

Ir a Configuración del sistema> WiFi . Ahora puntee y mantenga presionada la zona activa de Raspberry Pi y seleccione Modificar red . En Opciones avanzadas , configure la opción Proxy en Manual . Ahora, en Nombre de host del proxy , introduzca la dirección IP del Pi 192.168.8.1. En Puerto proxy , introduzca 8080 y pulse sobre Guardar .

Ahora puede probar la configuración del proxy. Intente ir a un sitio web en su lista negra – verá una página de «Acceso denegado» como esta:

Cómo hacer cumplir el uso de proxy

Hasta ahora, confiamos en que los clientes jueguen bien y usen Internet a través del filtro de contenido. Por supuesto, esto rara vez sucede en el mundo real. Así que para hacer que todos los clientes pasen por el proxy, ejecute los siguientes comandos:

sudo iptables -A PREROUTING -t nat -p tcp –destination-port 80 -j REDIRECT –to-ports 8080
sudo iptables -A PREROUTING -t nat -p tcp –destination-port 443 -j REDIRECT –to-ports 8080
sudo iptables-save | sudo tee /etc/iptables/rules.v4

Esto redirigirá automáticamente todo el tráfico http (puerto 80) y https (puerto 443) en el hotspot de frambuesa Pi al proxy del filtro de contenido. Ahora, sin configurar la configuración de proxy en sus dispositivos, no podrán acceder a sitios web seguros https como Facebook, Gmail, Twitter, etc. en absoluto. Esto asegura que cualquiera que desee conectarse a su punto de acceso público de Pi tenga que pasar por el proxy.

Esto es todo lo que necesita saber para el uso básico del filtro de contenido. Si desea aprender algunas características avanzadas, siga leyendo.

Escenarios de uso avanzados

Configuración de un filtro basado en el tiempo

Supongamos que desea bloquear los sitios web que mencionamos en la sección Uso de listas de contenido , pero sólo a ciertas horas del día . Personalmente prefiero bloquear Reddit, Facebook y Twitter durante las horas de trabajo (9am – 5pm) los días de semana porque son una pesadilla de productividad.

Abra el archivo /etc/e2guardian/lists/bannedsitelist y añada la siguiente línea:

Tiempo: 9 0 17 0 01234 tiempo: 9 0 17 01234 tiempo: 9 0 17 01234 tiempo: 9 0 17 01234 tiempo: 9 0 17 01234

Esta línea funciona de la siguiente manera: el temporizador comienza en 9 (9 am) 0 (00 minutos), hasta 17 (5 pm en formato de 24 horas) 0 (00 minutos), desde 0 (lunes) hasta 4 (viernes).

Tomemos otro ejemplo:

tiempo: 10 30 20 45 024

Esto bloqueará los sitios configurados desde las 10:30 am (10 30) hasta las 8:45 pm (20 45) los lunes (0), miércoles (2) y viernes (4).

Dejar que ciertas direcciones IP pasen por alto el proxy

Es posible dejar que ciertas direcciones IP pasen por alto el filtro de contenido. Esto se puede configurar mediante configurando el firewall . Puede que haya notado que en nuestro dnsmasq.conf, sólo configuramos la zona activa para asignar direcciones IP de 192.168.8.20 a 192.168.8.254 a clientes. Esto significa que las direcciones de 192.168.8.2 a 192.168.8.19 no se asignarán automáticamente a ningún cliente (no podemos usar 192.168.8.1 porque eso es lo que nuestro propio Pi de frambuesa usa).

Para ello, primero configure una IP estática en el dispositivo al que desea dar acceso completo. Por ejemplo, para configurar una IP estática de 192.168.8.2 en un equipo con Windows, utilice esta configuración:

Ahora, en tu frambuesa Pi, ejecuta los siguientes comandos.

sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 –puerto de destino 80 -j RETURN
sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 –puerto de destino 443 -j RETURN

Ahora, desactiva el uso de proxy en tu dispositivo , e intenta abrir un sitio web prohibido. Deberías poder abrirlo. Si hay más direcciones IP que desea añadir a la lista blanca, ejecute de nuevo los dos comandos anteriores, pero sustituya la dirección IP por la que desee. Una vez que esté satisfecho con la lista blanca, ejecute el siguiente comando para guardar la configuración de su firewall:

sudo iptables-save | sudo tee /etc/iptables/rules.v4

Una cosa importante a tener en cuenta es que no debe permitir que nadie sepa las direcciones IP de la lista blanca. De lo contrario, simplemente pueden configurar su dispositivo a esa dirección IP para evitar el proxy.

Preocupaciones de seguridad

Ya que su Pi de Frambuesa será el punto de entrada y salida para todas sus comunicaciones, es importante que lo proteja. Aquí hay algunos consejos sobre cómo mejorar la seguridad. Tenga en cuenta que estos son sólo consejos básicos y no una lista completa de problemas de seguridad. La cantidad de seguridad dependerá de la naturaleza de su red (hogar, pequeña oficina, etc.) y de lo traviesos que sean los usuarios.

Desactivar servicios innecesarios

Dado que se trata de un enrutador, lo mejor es que sólo ejecute los servicios que necesitemos. Más servicios funcionando significa más vulnerabilidades que pueden ser potencialmente explotadas. Definitivamente no utilice este sistema como un escritorio normal .

Ir a Menú> Preferencias> Configuración de frambuesa Pi . En la pestaña Interfaces , desactive todos los servicios que no necesite.

Cambiar la contraseña predeterminada

Una nueva instalación de Raspbian viene con la contraseña por defecto frambuesa para el usuario por defecto pi. Se recomienda cambiarla por una contraseña más segura. Para cambiarla, abra un terminal y ejecute este comando:

passwd

Retire el monitor y otros periféricos

Dado que todo lo que se ejecutará en esta Pi es el software necesario para utilizarla como enrutador y filtro web, no necesitamos un monitor u otros periféricos como un ratón y un teclado conectados a ella. Si necesita cambiar la configuración, siempre puede usar SSH, o adjuntar un monitor y un teclado según sea necesario.

Desactivar Auto Login

Raspbian está configurado para iniciar sesión automáticamente con las credenciales de usuario `pi sin solicitar una contraseña. Esto puede estar bien para un escritorio familiar de uso general, pero es peligroso para un enrutador. Para desactivar esto, en el escritorio de Raspbian, vaya a Menú> Preferencias> Configuración Pi de Raspberry . En la pestaña Sistema , delante del encabezado Inicio de sesión automático , desmarque la casilla Iniciar sesión como usuario pi .

En el mismo cuadro de diálogo, también es aconsejable establecer la opción Boot en To CLI . Esto ahorrará recursos ya que no necesitamos una GUI en un router. Si desea utilizar el escritorio por cualquier motivo, inicie sesión con su nombre de usuario y ejecute el comando startx para activar la interfaz gráfica.

Solución de problemas comunes

Las interfaces siguen siendo renombradas

Esto es muy común si está usando dos interfaces inalámbricas en su Pi. Si está usando Ethernet para conectar su Pi a Internet, puede ignorar esta sección . El problema es que tanto las interfaces inalámbricas ( wlan0 como wlan1 ) a veces intercambian nombres después de un reinicio. Es decir, el módulo WiFi incorporado wlan0 se renombra a wlan1 , y viceversa. Este es, por supuesto, un gran

Deja un comentario