{"id":2167,"date":"2015-05-12T12:43:59","date_gmt":"2015-05-12T10:43:59","guid":{"rendered":"https:\/\/diocesanos.es\/blogs\/equipotic\/?p=2167"},"modified":"2015-05-07T17:05:36","modified_gmt":"2015-05-07T15:05:36","slug":"firewall-bloquear-el-acceso-a-internet-a-aplicaciones-concretas","status":"publish","type":"post","link":"https:\/\/diocesanos.es\/blogs\/equipotic\/2015\/05\/12\/firewall-bloquear-el-acceso-a-internet-a-aplicaciones-concretas\/","title":{"rendered":"Firewall: bloquear el acceso a internet a aplicaciones concretas"},"content":{"rendered":"<p>Hoy me ha surgido un problema con una de las aplicaciones que uso con los chicos en el aula. Una de esas que tienen opciones para descargar complementos, insertar publicidad, o llevar un seguimiento remoto de la actividad realizada con el programa.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/firewall.jpg\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2168\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/firewall-300x161.jpg\" alt=\"firewall\" width=\"300\" height=\"161\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/firewall-300x161.jpg 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/firewall.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p>Est\u00e1 claro que no me interesa que los chicos a\u00f1adan\/descarguen nada que pueda afectar al uso para el que se pens\u00f3 la instalaci\u00f3n de dicho programa, o que les bombardeen con publicidad nada apropiada para su edad, ni que sepan las veces o no que utilizo la herramienta o de que manera. En MS Windows bastar\u00eda con aplicar reglas espec\u00edficas en el <em>cortafuegos<\/em>, pero \u00bfc\u00f3mo lo hago en Linux?<\/p>\n<p><!--more--><\/p>\n<h2>Filtrando las peticiones a direcciones\/sitios<\/h2>\n<p>Como primera opci\u00f3n me plante\u00e9 bloquear las direcciones y dominios que utilizaba el programa en cuesti\u00f3n. Para averiguarlas ten\u00eda un par de opciones r\u00e1pidas:<\/p>\n<p>1) arrancar el programa y en un terminal de consola aparte ejecutar algo como esto (prueba con -ntpW para obtener las IPs):<\/p>\n<pre>netstat -tpW | grep \"nombre o PID del programa\"<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/netstat.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2169\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/netstat-300x80.png\" alt=\"netstat\" width=\"300\" height=\"80\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/netstat-300x80.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/netstat.png 850w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><sup><em>(en el ejemplo de la imagen se han buscado las conexiones abiertas para el programa \u00abfirefox\u00bb)<\/em><\/sup><\/p>\n<p>2) Utilizar el servicio \u00abdnsmasq\u00bb para monitorizar las peticiones que se realizan (<a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2015\/04\/01\/dnsmasq-eliminando-publicidad-en-las-tablets-del-colegio\/\" target=\"_blank\">revisa el siguiente art\u00edculo para saber como configurarlo<\/a>):<\/p>\n<pre>sudo killall -9 dnsmasq\r\nsudo dnsmasq --no-daemon --log-queries<\/pre>\n<p style=\"text-align: center;\"><a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/f2.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-2171\" src=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/f2-300x92.png\" alt=\"f2\" width=\"300\" height=\"92\" srcset=\"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/f2-300x92.png 300w, https:\/\/diocesanos.es\/blogs\/equipotic\/wp-content\/uploads\/sites\/2\/2015\/05\/f2.png 850w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/a><\/p>\n<p style=\"text-align: center;\"><sup><em>(Nota: en este caso no podemos discriminar por proceso)<\/em><\/sup><\/p>\n<p>Una vez obtenidas las direcciones de los sitios a bloquear s\u00f3lo has a\u00f1adirlas al fichero \u00ab<em>\/etc\/hosts<\/em>\u00bb de la forma<\/p>\n<pre>127.0.0.1\u00a0\u00a0 dominio_a_bloquear<\/pre>\n<p>&#8230; o puedes configurar reglas de cortafuegos espec\u00edficas para las IPs y cargarlas en el fichero \u00ab<em>\/etc\/rc.local<\/em>\u00bb antes de la l\u00ednea \u00abexit 0\u00bb:<\/p>\n<pre>iptables -I OUTPUT -s ip_a_bloquear -j DROP<\/pre>\n<p>El problema de estos m\u00e9todos es que bloquean el acceso para todas las aplicaciones del sistema (efecto global), no s\u00f3lo a las que nos interesan. Adem\u00e1s las direcciones y dominios pueden pertenecer a otros servicios a los que s\u00ed queremos acceder en otras circunstancias y desde otros programas.<\/p>\n<h3>Filtrado por grupo de usuarios<\/h3>\n<p>Otra soluci\u00f3n es aprovecharnos de la forma en la que se le asignan privilegios a los procesos en Linux: asign\u00e1ndoles los del grupo y usuario que lo ejecuta. Y de la capacidad de filtrado de paquetes de red del sistema creando una regla que afecte a los procesos cuyo\u00a0 \u00abgrupo propietario\u00bb con el que se ejecuta sea uno en particular:<\/p>\n<p>1) Vamos a crear un nuevo grupo de usuarios espec\u00edfico para este propo\u00f3sito<\/p>\n<pre>sudo groupadd <em>filtrado<\/em><\/pre>\n<p>2) A\u00f1adimos al grupo a los usuarios que queramos controlar<\/p>\n<pre>sudo adduser <strong><em>alumno<\/em><\/strong> <em>filtrado<\/em><\/pre>\n<p>3) Creamos una regla de <strong>iptables<\/strong> pata bloquear las peticiones de red desde procesos asociados a ese grupo<\/p>\n<pre style=\"font-size: 80%;\">iptables -A OUTPUT -m owner --gid-owner <em>filtrado<\/em> -j REJECT<\/pre>\n<p>&#8230; y la escribimos en el fichero \u00ab\/etc\/rc.local\u00bb (antes de la \u00faltima l\u00ednea que pone \u00ab<em>exit 0<\/em>\u00ab) para que se ejecute cada vez que iniciemos el sistema.<\/p>\n<h4>Ejemplos de uso:<\/h4>\n<p>Ahora s\u00f3lo tenemos que iniciar los programas indicando a Linux que lo haga asign\u00e1ndole uno de los grupos a los que pertenezca el usuario (en los ejemplos el usuario es \u00ab<em>alumno<\/em>\u00ab, al que previamente a\u00f1adimos al grupo \u00ab<em>filtrado<\/em>\u00ab):<\/p>\n<pre>sg <em>filtrado<\/em> \"nombredelprograma\"<\/pre>\n<p>&#8230; y s\u00ed: las comillas \u00bb \u00bb son obligatorias para indicar el programa. Por ejemplo, si queremos ejecutar un programa de windows con <strong>wine<\/strong>:<\/p>\n<pre>sg <em>filtrado<\/em> \"wine ruta_y_nombre_al_programa.exe\"<\/pre>\n<p>A partir de aqu\u00ed s\u00f3lo nos queda modificar los accesos a los programas que nos interesen para que invoquen los ejecutables de esta manera.<\/p>\n<p>Modificando y a\u00f1adiendo adecuadamente las reglas de <strong>iptables<\/strong> podemos ser capaces de bloquear total o parcialmente (s\u00f3lo direcciones\/protocolos concretos) el acceso a internet de nuestros procesos. Incluso tener distintos grupos con diferentes \u00abniveles de acceso\u00bb&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hoy me ha surgido un problema con una de las aplicaciones que uso con los chicos en el aula. Una de esas que tienen opciones para descargar complementos, insertar publicidad, o llevar un seguimiento remoto de la actividad realizada con el programa. Est\u00e1 claro que no me interesa que los chicos a\u00f1adan\/descarguen nada que pueda &hellip; <a href=\"https:\/\/diocesanos.es\/blogs\/equipotic\/2015\/05\/12\/firewall-bloquear-el-acceso-a-internet-a-aplicaciones-concretas\/\" class=\"more-link\">Seguir leyendo <span class=\"screen-reader-text\">Firewall: bloquear el acceso a internet a aplicaciones concretas<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5,47],"tags":[37],"class_list":["post-2167","post","type-post","status-publish","format-standard","hentry","category-linux-2","category-seguridad","tag-redes"],"_links":{"self":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/2167","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/comments?post=2167"}],"version-history":[{"count":0,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/posts\/2167\/revisions"}],"wp:attachment":[{"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/media?parent=2167"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/categories?post=2167"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/diocesanos.es\/blogs\/equipotic\/wp-json\/wp\/v2\/tags?post=2167"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}