Tengo un script de Python que usa pywebkitgtk para buscar páginas web, y algunas veces necesito bloquear el acceso a la red. ¿Alguna idea de cómo hacer eso?
fuente
Tengo un script de Python que usa pywebkitgtk para buscar páginas web, y algunas veces necesito bloquear el acceso a la red. ¿Alguna idea de cómo hacer eso?
Si usted es el administrador del sistema, puede usar iptables
(como root) para bloquear el acceso de ciertos comandos a ciertos puertos, o (a su elección) todos los puertos (lo que equivale a que sea totalmente incapaz de acceder a la red).
Una buena referencia está aquí, pero el punto más destacado es:
Si su núcleo se compiló con CONFIG_IP_NF_MATCH_OWNER, entonces puede configurar su firewall de iptables para permitir o rechazar paquetes por orden.
El siguiente ejemplo muestra cómo descartar todos los paquetes salientes del comando acroread:
iptables -A OUTPUT -m owner --cmd-owner acroread -j DROP
El módulo propietario permite que se usen varias opciones diferentes para hacer coincidir, ya sea que coincida con una ID de proceso, una ID de usuario o un nombre de comando.
--uid-owner userid
Coincide si el paquete fue creado por un proceso con la identificación de usuario efectiva dada--gid-owner userid
Coincide si el paquete fue creado por un proceso con la identificación de grupo efectiva dada--pid-id processid
Coincide si el paquete fue creado por un proceso con la identificación de proceso dada--cmd-owner name
Coincide si el paquete fue creado por un proceso con el nombre de comando dado.El módulo "propietario" solo permite coincidencias en la cadena de SALIDA, lo que reduce un poco su utilidad, pero si se encuentra en una situación NAT estándar, debería ser suficiente.
iptables
funcionaría la magia sin reiniciar el proceso de mi programa?iptables
con su núcleo existente?