OpenWrt: Control Parental II, matando conexiones

Advertencia: Este artículo tiene más de 365 días.

En este artículo vimos como controlar los dispositivos conectados a nuestro router, administrar en que horario se podían conectar a Internet, que tipo de contenido ver, etc, utilizando dnsmasq. Pero este método tenía un problema, y es que no desconectaba los dispositivos que ya tenían una conexión activa en el router.

Esto lo podemos solucionar creando un sencillo script y utilizando cron para programar su ejecución cada 20 minutos, o el tiempo que tu quieras establecer, para volver a ordenar las reglas del cortafuegos.

Script

Creamos el fichero /etc/cronfw.sh e insertamos el siguiente script:

    #!/bin/sh
    
    # Insert rule for forwarding established connection traffic, just before the final rule (reject)
    new_rule_num=$(iptables -v -L FORWARD --line-numbers | grep reject | cut -d ' ' -f 1)
    iptables -I FORWARD $new_rule_num -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
    
    # Delete first rule for forwarding established connection traffic
    old_rule_num=$(iptables -v -L FORWARD --line-numbers | grep ESTABLISHED | cut -d ' ' -f 1 | sed -n 1p)
    iptables -D FORWARD $old_rule_num
    
    # Get rid of any duplicate ESTABLISHED rules (these seem to be caused when restarting the firewall)
    est_count=$(iptables -v -L FORWARD --line-numbers | grep ESTABLISHED | wc -l)
    while [ $est_count -gt 1 ]; do
          old_rule_num=$(iptables -v -L FORWARD --line-numbers | grep ESTABLISHED | cut -d ' ' -f 1 | sed -n 1p)
          iptables -D FORWARD $old_rule_num
          est_count=$(iptables -v -L FORWARD --line-numbers | grep ESTABLISHED | wc -l)
    done

y le damos permisos de ejecución

chmod +x /etc/cronfw.sh

Cron

Ahora vamos a SistemaTareas programadas

img

e insertamos la siguiente línea:

*/20 * * * * /etc/cronfw.sh

img

Esto hará que se ejecute cada 20 minutos

Nos asegurámos de que el cron esté habilitado, en SistemaInicioRearrancar

img

img

Si no funciona asegúrate de que tienes instalado el paquete ipset

Espero que te haya gustado, pasa un buen día.

Fuente:

Espero que te haya gustado, pasa un buen día. 🐧