Supongamos que tenemos una red en la que tenemos permitida la navegación en todas las maquinas y a todos los sitios. Supongamos también que no disponemos de ningún dispositivo con filtrado. Ni es viable usar algun proxy tipo squid.
Bien, en ultima instancia disponemos de una herramienta MUY poderosa: iptables.
Asumiendo que sabemos el manejo basico de iptables, podemos hacer un script como:
#! /bin/bash
## Flusheamos todas las reglas
iptables -F
iptables -X
Con esto limpiamos todas las reglas, antes de definir las nuestras.
## Lista de dominios permitidos
iptables -A INPUT -d google.com -p tcp –dport 80 -j ACCEPT
iptables -A OUTPUT -d google.com -p tcp –dport 80 -j ACCEPT
iptables -A INPUT -d google.com -p tcp –dport 443 -j ACCEPT
iptables -A OUTPUT -d google.com -p tcp –dport 443 -j ACCEPT
Con esto permitimos el paso de los dominios que queremos que SI funcionen, teniendo en cuenta los puertos http (80) y https (443)
Nota: acá estamos permitiendo el tráfico entrante (INPUT) y saliente (OUTPUT) a dicho dominio, a los puertos 80 y 443
## Por ultimo
## bloqueamos TODO (entrante y saliente) con destino al puerto 80 (http)iptables -A INPUT -p tcp –dport 80 -j REJECT
iptables -A OUTPUT -p tcp –dport 80 -j REJECT
Con esto bloqueamos el trafico saliente y entrante a todos los dominios/IPs/MAC adress que tenga como destino el puerto 80
Nota: con solo usar la cadena OUTPUT debería bastar, pero soy desconfiado..
## Y por las dudas tambien
## bloqueamos TODO (entrante y saliente) con destino al puerto 443 (https)iptables -A INPUT -p tcp –dport 443 -j REJECT
iptables -A OUTPUT -p tcp –dport 443 -j REJECT
Lo mismo que lo anterior pero al puerto 443 (https)
Todo lo anterior lo copiamos y lo pegamos en un fichero de texto, lo nombramos, lo metemos en /usr/bin/ y le damos permisos de ejecución [chmod +x fichero]
editamos el fichero /etc/rc.local y agregamos la ejecución de nuestro script para que en cada inicio de sistema cargue las reglas de iptables.