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

  • Joshua Davis
  • 0
  • 2221
  • 412

Si 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 redes sociales: puede sentir que los niños (y adultos) pierden demasiado tiempo en Facebook, Twitter, etc. y desean bloquearlos, o al menos hacerlos accesibles solo en ciertos momentos del día.

Para hacer esto posible, necesitamos un enrutador más Filtro de contenido - un dispositivo a través del cual todos nuestros dispositivos, como computadoras portátiles, teléfonos inteligentes y tabletas, se conectan 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 la lista negra.

Hay filtros comerciales de contenido listos para usar disponibles en el mercado, pero para nosotros, los tipos de bricolaje, no es divertido. Por lo tanto, nos ensuciaremos las manos y configuraremos una Raspberry Pi para el trabajo. Elegimos la Raspberry Pi para este proyecto debido a su pequeño tamaño y consumo de energía insignificante. sin embargo, estas instrucciones funcionarán casi sin modificaciones con casi cualquier computadora que ejecute Debian Linux o un derivado (Ubuntu, menta, etc.).

Descargo de responsabilidad: Esta guía asume un nivel intermedio de experiencia con Linux, y una disposición para solucionar problemas cuando surjan. La experiencia previa con líneas de comando y firewalls es una ventaja.

Cómo funciona

Hardware

Usaremos la Raspberry Pi 3 como un filtro de contenido cum router. Para esto, necesitaremos dos interfaces de red en él: uno para conectarse a Internet y el otro para actuar como un punto de acceso WiFi para que nuestros otros dispositivos se conecten. El Raspberry Pi 3 tiene un conector Ethernet incorporado y un módulo WiFi. Entonces, en este escenario, podemos usar un cable Ethernet (eth0) para conectarse a internet, mientras que el módulo WiFi (wlan0) actuará como punto de acceso.

Por supuesto, no siempre es posible conectarse a Internet mediante Ethernet. En este caso, necesitará un dongle USB WiFi compatible (wlan1) para conectarse a Internet, mientras que el módulo WiFi incorporado (wlan0) actuará como punto de acceso. Esta es la configuración que usaremos en esta guía.

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

Software

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

Prerrequisitos

1. Raspberry Pi 3 con la última versión de Raspbian OS instalada y acceso a internet. Si solo está comenzando con Raspberry Pi, le recomendamos leer nuestra guía sobre cómo comenzar con Raspberry Pi 3.

2. [Opcional] USB WiFi Dongle - Esto es necesario si, y solo si no puede conectar su Raspberry Pi 3 a Internet con un cable Ethernet. Si planea usar WiFi tanto para conectarse a Internet como como punto de acceso, esto es necesario.

3. Acceso físico a la Raspberry Pi - Debido a la naturaleza de este artículo, un solo error en la configuración del firewall puede bloquearlo de su Pi si lo usa en modo sin cabeza. Por lo tanto, se recomienda que conecte un monitor, teclado y mouse mientras lo configura hasta que todo esté configurado.

Use Raspberry Pi como enrutador

1. Conecte su Pi a internet usando Ethernet (eth0) Si está utilizando un dongle WiFi USB (probablemente wlan1) en su lugar, conéctelo a internet. Deje el módulo WiFi incorporado (wlan0) como es por ahora.

2. Consigue el software prerrequisito que necesitamos:

sudo apt install iptables iptables-persistent hostapd dnsmasq squid3

3. Vamos a configurar hostapd para que nuestro Pi puede actuar como un punto de acceso WiFi. Para esto, cree un archivo de configuración usando su editor de texto favorito, por ejemplo sudo nano /etc/hostapd/hostapd.conf, y pegue el contenido de nuestra página de GitHub.

Algunas líneas que es posible que desee modificar según el gusto son:

ssid = RaspberryPiAP

Esta línea dicta cuál será el nombre del punto de acceso. elegí RaspberryPiAP.

wpa_passphrase = beebom.com

Esto especifica la frase de contraseña utilizada para acceder al punto de acceso. solía beebom.com, pero se recomienda cambiarlo por una frase de contraseña fuerte de su elección.

4 4. A continuación, lo haremos configurar un servidor DHCP utilizando dnsmasq. Edite el archivo de configuración /etc/dnsmasq.conf, y agregue las siguientes líneas al final:

[código fuente] interfaz = lo, wlan0

no-dhcp-interface = lo

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

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

5 5. Preparar una dirección IP estática para el módulo WiFi incorporado wlan0. Abre el archivo / etc / network / interfaces. Probablemente se parece a esto (énfasis mío):

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

auto lo
iface lo inet loopback

iface eth0 inet manual

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í, ubicar las líneas en negrita con wlan0, y cámbialos, para que el archivo tenga el siguiente aspecto:

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

auto lo
iface lo inet loopback

iface eth0 inet manual

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.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. Recuerda esta dirección, como esta es la dirección que usaremos para comunicarnos con nuestra Raspberry Pi más adelante.

6 6. Ahora configurar el reenvío de IP. Edite el archivo /etc/sysctl.conf, y agregue la siguiente línea:

net.ipv4.ip_forward = 1

7 7. Ahora lo haremos configurar la traducción de direcciones de red (NAT) en nuestro firewall. Para hacer esto, ingrese los siguientes 2 comandos:

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 comando guarda nuestra configuración de firewall actual en un archivo llamado /etc/iptables/rules.v4. Esto asegura que la configuración persista durante los reinicios.

8. En este punto, reinicia tu Raspberry Pi. Esto es para asegurarse de que todos los cambios que realizamos en los archivos de configuración sean funcionales.

9. Después de reiniciar, debería poder ver el recién creado RaspberryPiAP punto de acceso (a menos que haya cambiado el nombre en el paso 3) en sus otros dispositivos, como computadoras portátiles y teléfonos inteligentes. Puede conectarse con la contraseña que especificó y acceder a Internet..

Esto es todo lo que debe hacer si necesita un enrutador básico de baja potencia. Si también quieres configurar un filtro de contenido, sigue leyendo.

Configurar filtro de contenido con E2guardian

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

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

Probablemente verá algunos errores sobre paquetes faltantes cuando instale E2guardian. Para rectificar esto, deje que finalice la instalación e ingrese el siguiente comando:

sudo apt-get install -f

Usar listas de contenido

Hay varias listas presentes en el / etc / e2guardian / lists directorio. Estos archivos incluyen bannedextensionlist, bannediplist, bannedphraselist, bannedsitelist, bannedurllist, exceptionlist y más. Estos archivos están debidamente documentados con comentarios. Míralos para familiarizarte.

Como ejemplo, supongamos que desea bloquear algunas redes sociales populares. Abre el / etc / e2guardian / lists / bannedsitelist archivo, y debajo del Manta SSL / CONECTAR bloquear (ya que estos sitios web usan https en lugar de simple http), agregue las siguientes líneas:

facebook.com twitter.com reddit.com

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

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

.Incluir

Comenta agregando un picadillo (# símbolo) al frente, para que se vea así:

#.Incluir

Nuevamente, vuelva a cargar la configuración con servicio de sudo recarga e2guardian, y tu estas listo.

Configurando clientes

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

Ventanas

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

Aquí, haga clic en Avanzado, y entra 192.168.8.1 como la dirección de proxy, y 8080 como el puerto Asegúrese de que el Use el mismo servidor proxy para todos los protocolos la casilla está marcada Hacer clic Okay.

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

Androide

Ir Configuración del sistema> WiFi. Ahora mantenga presionado el punto de acceso Raspberry Pi y seleccione Modificar red. Debajo Opciones avanzadas, selecciona el Apoderado opción de Manual. Ahora, bajo Nombre de host proxy, ingrese la dirección IP del Pi 192.168.8.1. Debajo Puerto proxy, entrar 8080, y toca Salvar.

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:

Hacer cumplir el uso del 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 ocurre en el mundo real. Entonces, para obligar a todos los clientes a pasar 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- puertos 8080 sudo iptables-save | sudo tee /etc/iptables/rules.v4

Esto redirigirá automáticamente todo http (puerto 80) y https (puerto 443) tráfico en el punto de acceso de la frambuesa Pi al proxy de filtro de contenido. Ahora, sin configurar los ajustes de proxy en sus dispositivos, no podrán acceder de forma segura https sitios web como Facebook, Gmail, Twitter, etc. Esto asegura que cualquier persona que desee conectarse a su punto de acceso Pi debe pasar por el proxy.

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

Escenarios de uso avanzado

Configurar un filtro basado en el tiempo

Supongamos que desea bloquear los sitios web que mencionamos en el Usar listas de contenido sección anterior, pero solo en ciertos momentos del día. Personalmente, prefiero bloquear Reddit, Facebook y Twitter durante las horas de trabajo (9 a.m. a 5 p.m.) entre semana porque son una pesadilla de productividad.

Abre el / etc / e2guardian / lists / bannedsitelist archivo y agregue la siguiente línea:

hora: 9 0 17 0 01234

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

Tomemos otro ejemplo:

hora: 10 30 20 45 024

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

Permitir que ciertas direcciones IP omitan el proxy

Es posible dejar que ciertas direcciones IP omitan el filtro de contenido. Esto puede ser configurado por configurar el firewall. Es posible que hayas notado que en nuestro dnsmasq.conf, solo configuramos el punto de acceso para asignar direcciones IP desde 192.168.8.20 a 192.168.8.254 a los clientes Eso significa direcciones de 192.168.8.2 a 192.168.8.19 no se asignará automáticamente a ningún cliente (no podemos usar 192.168.8.1 porque eso es lo que usa nuestra Raspberry Pi).

Para hacer esto, primero configurar 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 una máquina con Windows, use esta configuración:

Ahora, en su Raspberry Pi, ejecute los siguientes comandos.

sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 80 -j RETURN sudo iptables -t nat -A PREROUTING -p tcp -s 192.168.8.2 --destination-port 443 -j RETURN

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

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

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

Preocupaciones de seguridad

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

Deshabilitar servicios innecesarios

Como se trata de un enrutador, lo mejor es ejecutar solo los servicios que requerimos. Más servicios en ejecución significan más vulnerabilidades que potencialmente pueden ser explotadas. Seguro no use este sistema como un escritorio normal.

Ir Menú> Preferencias> Configuración de Raspberry Pi. En el Interfaces pestaña, deshabilite todos los servicios que no necesita.

Cambiar la contraseña predeterminada

Una nueva instalación de Raspbian viene con la contraseña predeterminada 'raspberry' para el usuario predeterminado 'pi'. Se recomienda cambiar esto a una contraseña más segura. Para cambiarlo, abra una terminal ejecute este comando:

passwd

Retire el monitor y otros periféricos

Dado que todo lo que se ejecutará en este Pi es el software requerido para usarlo como enrutador y filtro web, no necesitamos un monitor u otros periféricos como un mouse y un teclado conectados. Si necesita cambiar la configuración y demás, siempre puede usar SSH o conectar un monitor y un teclado según sea necesario.

Desactivar inicio de sesión automático

Raspbian está configurado para iniciar sesión automáticamente con las credenciales de usuario 'pi' sin solicitar una contraseña. Esto podría estar bien para un escritorio familiar de uso general, pero peligroso para un enrutador. Para deshabilitar esto, en el escritorio de Raspbian, vaya a Menú> Preferencias> Configuración de Raspberry Pi. En el Sistema pestaña, delante de la Ingreso automático rumbo, desmarque el Inicie sesión como usuario 'pi' caja.

En el mismo cuadro de diálogo, también es recomendable configurar el Bota ajuste a A CLI. Esto ahorrará recursos ya que no necesitamos una GUI en un enrutador. Si desea utilizar el escritorio por algún motivo, inicie sesión con su nombre de usuario y ejecute el startx comando para encender la interfaz gráfica.

Solucionar problemas comunes

Las interfaces se renombran

Esto es muy común si está usando dos interfaces inalámbricas en tu Pi. Si está utilizando Ethernet para conectar su Pi a Internet, puede ignorar esta sección de manera segura. El problema es que ambas interfaces inalámbricas (wlan0 y wlan1) a veces intercambian nombres después de un reinicio. Es decir, el módulo WiFi incorporado. wlan0 se renombra a wlan1, y viceversa. Por supuesto, este es un gran problema, ya que confiamos en que tengan un nombre coherente para nuestros archivos de configuración. Aquí se explica cómo hacerlo coherente en todos los reinicios:

1. Descubre el Dirección MAC de sus interfaces. Ejecuta el comando ifconfig | grep HWaddr en tu Raspberry Pi. Verá una salida como la siguiente:

Anote el texto a la derecha de la palabra 'HWaddr' en el wlan0 y wlan1 sección. Puede ignorar el eth0 sección. Estas son las direcciones MAC de sus interfaces inalámbricas.

Si no está seguro de qué dirección MAC pertenece a qué interfaz, simplemente desconecte el dongle USB WiFi y ejecute el comando nuevamente. los wlan La interfaz que aparece ahora es su interfaz WiFi incorporada, mientras que la otra es USB.

2. Crea un nuevo archivo /etc/udev/rules.d/10-network.rules usando tu editor de texto favorito. Por ejemplo :

sudo nano /etc/udev/rules.d/10-network.rules

3. Ingrese el siguiente texto en este archivo. Reemplace xx: xx: xx: xx etc. con la dirección MAC apropiada:

[código fuente] # Configure el módulo WiFi incorporado como wlan0. Reemplace xx: xx: xx etc. con
# dirección MAC del módulo incorporado
SUBSISTEMA == "neto", ACCIÓN == "agregar", ATTR dirección == "xx: xx: xx: xx: xx: xx", NOMBRE = "wlan0"

# Configure el dongle WiFi USB como wlan1. Reemplace yy: yy: yy etc. con
# Dirección MAC del dongle USB
SUBSISTEMA == "neto", ACCIÓN == "agregar", ATTR dirección == "aa: aa: aa: aa: aa: aa", NOMBRE = "wlan1" [/ código fuente]

Asegúrese de que la dirección MAC de la interfaz WiFi incorporada corresponde a wlan0, y el USB WiFi a wlan1 ya que esa es la convención que seguimos en esta guía.

4 4. Reinicia tu Raspberry Pi. Sus interfaces comenzarán con el nombre correcto ahora.

Restablecer la configuración del firewall

Otro problema común es un firewall mal configurado. Dependiendo de la configuración de su red, puede tomar varios intentos antes de obtener el firewall correcto. Si en algún momento cree que puede haber estropeado la configuración del firewall, ejecute los siguientes comandos para comenzar desde cero:

sudo iptables --flush sudo iptables --table nat --flush sudo iptables --delete-chain sudo iptables --table nat --delete-chain

Esto eliminará todas Configuración del cortafuegos. Ahora puede comenzar a configurar el firewall desde cero. Una vez que esté satisfecho, ejecute el comando sudo iptables-save | sudo tee /etc/iptables/rules.v4 para hacer la configuración permanente.

VEA TAMBIÉN: Cómo ejecutar comandos en Raspberry Pi por correo electrónico

Use su Raspberry Pi como enrutador y filtro de contenido

Eso es todo para convertir su Raspberry Pi en un potente enrutador más un proxy de filtro de contenido. Puede obtener los archivos de configuración exactos que utilizamos para nuestra configuración en nuestra página de GitHub. Háganos saber cómo funciona para usted. Si algo no funciona como se esperaba, o un paso se siente demasiado confuso, no dude en hacernos una pregunta en la sección de comentarios a continuación.




Nadie ha comentado sobre este artículo todavía.

Guías de compra de gadgets, tecnologías importantes
Publicamos guías detalladas para la compra de equipos, creamos listas interesantes de los mejores productos en el mercado, cubrimos noticias del mundo de la tecnología