Index: limitar-https/trunk/deny_https
===================================================================
--- limitar-https/trunk/deny_https	(revision 204)
+++ limitar-https/trunk/deny_https	(revision 205)
@@ -6,53 +6,26 @@
 # que cortan el tráfico https para todas las webs externas, e ips del centro
 # que indiquemos en su fichero de configuración.
 #
-# Depende del fichero de configuración "/etc/network/deny_https.conf", 
-# el cual se genera a partir del fichero "/etc/network/deny_https.all" 
-# obtenido del repositorio general, mas el fichero "/etc/network/deny_https.ies",
-# el cual será modificado por cada IES según sus necesidades.
-# Dichos ficheros podrán tener dos tipos de líneas (no importa el orden):
-# 	- web's de destino que queremos bloquear vía https
-#		iptables -A FORWARD -p tcp --dport 443 -d WEB -j REJECT
-#	- ip's de equipos locales del IES a los que queremos restringir el tráfico https
-#		iptables -A FORWARD -p tcp --dport 443 -s IP -j REJECT
+# Depende del fichero de configuración "/etc/network/deny_https".
 #
 # La regla "iptables-restore < /etc/network/iptables" se pone por seguridad:
 # ya que se ejecuta tras eliminar las reglas, en cuyo momento la situación
-# ya debería ser la misma que plantea esta línea; y justo antes de añadir las reglas,
-# para garantizar que partimos del estado inicial.
-# Dicho fichero, a partir de ahora, se gestionará vía puppet para garantizar el mismo 
-# contenido en todos los IES.
+# ya debería ser la misma que plantea esta línea.
 #----------------------------------------------------------------------------------------
 
-# Variables 
+#----------------------------------------------------------------------------------------
 IPTABLES=/sbin/iptables
-FICHERO=deny_https.all
 DENY_HTTPS=/etc/network/deny_https.conf
-DENY_HTTPS_ALL=/etc/network/$FICHERO
-DENY_HTTPS_IES=/etc/network/deny_https.ies
-RUTA=http://desarrollo.educarex.es/linex/projects/servidoressecundaria/repository/entry/limitar-https/trunk
-#RUTA=http://172.16.16.254/linex/projects/servidoressecundaria/repository/entry/limitar-https/trunk
 RED=`ifconfig | grep Bcast | cut -f2 -d: | awk '{print }' | cut -f1 -d.`
-#----------------------------------------------------------------------------------------
 
-# Descarga el fichero general de https a denegar por todos los IES
-#if [ -s $DENY_HTTPS_ALL ]; then mv $DENY_HTTPS_ALL $DENY_HTTPS_ALL.old; fi
-#wget -T 10 -q -O $DENY_HTTPS_ALL  $RUTA/$FICHERO?format=raw
-#if [ ! -s $DENY_HTTPS_ALL ]; then 
-#  if [ -s $DENY_HTTPS_ALL.old ]; then
-#    cat $DENY_HTTPS_ALL.old >> $DENY_HTTPS_ALL
-#  fi
-#fi
+#iptables -A FORWARD -p tcp --dport 443 -d WEB -j DROP
+#iptables -A FORWARD -p tcp --dport 443 -s IP -j DROP
 
-if [ ! -f $DENY_HTTPS_ALL ]; then touch $DENY_HTTPS_ALL; fi
-
-# Unimos y filtramos los ficheros de configuración
-cat $DENY_HTTPS_ALL $DENY_HTTPS_IES | egrep -v '#|^$' | awk '{print $1}' | sort | uniq > $DENY_HTTPS
-
 # Bail out if no iptables binary or no configuration
 [ -x ${IPTABLES} -a "$DENY_HTTPS" ] || exit 0
-#----------------------------------------------------------------------------------------
 
+clear
+
 #----------------------------------------------------------------------------------------
 do_status() {
     echo ""
@@ -67,11 +40,12 @@
   echo "ACTIVANDO reglas para controlar el tráfico https:"
   echo "-------------------------------------------------"
   iptables-restore < /etc/network/iptables
-  cat $DENY_HTTPS | while read LINEA; do
+  egrep -v '#|^$' $DENY_HTTPS | awk '{print $1}' | while read LINEA; do
     if [ `echo $LINEA | grep $RED` ]; then OPCION="-s"; else OPCION="-d"; fi
     echo "  * Denegando https a $LINEA ..."
     $IPTABLES -A FORWARD -p tcp --dport 443 $OPCION $LINEA -j REJECT 2> /dev/null
   done
+  cortar_facebook
   echo "  ----------------------------------------------"
   echo "  * EL TRAFICO HTTPS ESTA RESTRINGIDO."
   echo ""
@@ -80,11 +54,12 @@
 do_stop() {
   echo "DESACTIVANDO reglas para controlar el tráfico https:"
   echo "-------------------------------------------------"
-  cat $DENY_HTTPS | while read LINEA; do
+  egrep -v '#|^$' $DENY_HTTPS | awk '{print $1}' | while read LINEA; do
     if [ `echo $LINEA | grep $RED` ]; then OPCION="-s"; else OPCION="-d"; fi
     echo "  * Eliminando regla https para $LINEA ..."
     $IPTABLES -D FORWARD -p tcp --dport 443 $OPCION $LINEA -j REJECT 2> /dev/null
   done
+  echo "  * Eliminando reglas https para facebook (rangos) ..."
   iptables-restore < /etc/network/iptables
   echo "  -----------------------------------------------"
   echo "  * EL TRAFICO HTTPS ESTA LIBERADO."
@@ -96,8 +71,20 @@
   do_start
 }
 
-# INICIO --------------------------------------------------------------------------------
-clear
+cortar_facebook() {
+  iptables -N FACEBOOK
+
+  echo "  * Denegando https para facebook (rangos) ..."
+  iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 66.220.144.0-66.220.159.255 --dport 443 -j FACEBOOK
+  iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.63.176.0-69.63.191.255 --dport 443 -j FACEBOOK
+  iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 69.171.0.0-69.171.242.255 --dport 443 -j FACEBOOK
+  iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 184.50.162.0-184.50.162.255 --dport 443 -j FACEBOOK
+  iptables -I FORWARD -m tcp -p tcp -m iprange --dst-range 204.15.20.0-204.15.23.255 --dport 443 -j FACEBOOK
+
+  iptables -A FACEBOOK -j REJECT
+}
+
+#----------------------------------------------------------------------------------------
 case "$1" in
     start)
 	do_start
@@ -120,5 +107,5 @@
         ;;
 esac
 exit 0
-# FIN -----------------------------------------------------------------------------------
+#----------------------------------------------------------------------------------------
 
