Index: tareas_puppet/servidores_aula/squid-ltsp/files/deny_https_iptables
===================================================================
--- tareas_puppet/servidores_aula/squid-ltsp/files/deny_https_iptables	(revision 215)
+++ tareas_puppet/servidores_aula/squid-ltsp/files/deny_https_iptables	(revision 216)
@@ -1,103 +1,118 @@
 #! /bin/sh
 ### BEGIN INIT INFO
-# Provides:          deny_https_iptables
-# Required-Start:
-# Required-Stop:
+# Provides:          deny https
+# Required-Start:    $remote_fs
+# Should-Start:      $network
+# Required-Stop:     $remote_fs
+# Should-Stop:       $network
 # Default-Start:     2 3 4 5
 # Default-Stop:      0 1 6
-# Short-Description: Controla la activacion/desactivacion de reglas iptables
-# que contan el trafico https de las webs indicadas en el fichero de configuracion.
-# Depende del fichero de configuracion: /etc/squid/acl/deny_https
-# La regla "iptables-restore < /etc/network/iptables" se pone por seguridad
-# porque su ejecucion deberia dejar la situacion tal cual esta.
+# Short-Description: Deny https 
+# Description:       Deny https
+#
 ### END INIT INFO
+#----------------------------------------------------------------------------------------
+# Antonio J. Abasolo Sierra (Mayo-2010)
+# Modificado por Francisco Rodrigo López (Octubre - 2011)
+#----------------------------------------------------------------------------------------
+# Controla la activación/desactivación de reglas iptables
+# 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/squid/acl/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.
+#
+# Se incluye cortar el tráfico facebook mediante rangos.
+#
+#----------------------------------------------------------------------------------------
 
-set -e
-
-PATH=/sbin:/bin:/usr/sbin:/usr/bin
-
+#----------------------------------------------------------------------------------------
 IPTABLES=/sbin/iptables
-
 DENY_HTTPS=/etc/squid/acl/deny_https
+RED=`ifconfig | grep Bcast | cut -f2 -d: | awk '{print }' | cut -f1 -d.`
 
-#iptables -A FORWARD -p tcp -m tcp --dport 443 -d WEB/IP -j DROP
+#iptables -A FORWARD -p tcp --dport 443 -d WEB -j DROP
+#iptables -A FORWARD -p tcp --dport 443 -s IP -j DROP
 
 # Bail out if no iptables binary or no configuration
 [ -x ${IPTABLES} -a "$DENY_HTTPS" ] || exit 0
 
+clear
+
+#----------------------------------------------------------------------------------------
 do_status() {
+    echo ""
+    echo "ESTADO ACTUAL DE LAS REGLAS ..."
     echo "----------------------------------------------------"
     $IPTABLES -L
     echo "----------------------------------------------------"
-
 }
 
-is_enabled() {
-    if do_status | grep "REJECT" ; then
-	true
-    else
-	false
-    fi
-}
-
+#----------------------------------------------------------------------------------------
 do_start() {
-
-    iptables-restore < /etc/network/iptables
-    if is_enabled ; then
-	echo "REJECT https to iptables already enabled."
-    else
-	echo "Enabling REJECT to iptables."
-	cat /etc/squid/acl/deny_https | while read linea; do
-	  echo "Filtrando $linea ..."
-	  iptables -A FORWARD -p tcp -m tcp --dport 443 -d $linea -j REJECT
-	done
-    fi
-    do_status
+  echo "ACTIVANDO reglas para controlar el tráfico https:"
+  echo "-------------------------------------------------"
+  iptables-restore < /etc/network/iptables
+  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 ""
 }
 
 do_stop() {
-    if is_enabled ; then
-	echo "Disabling REJECT to iptables.."
-	cat /etc/squid/acl/deny_https | while read linea; do
-	  echo "Desactivando $linea ..."
-	  iptables -D FORWARD -p tcp -m tcp --dport 443 -d $linea -j REJECT
-	done
-    else
-	echo "REJECT https to iptables already disabled."
-    fi
-
-    iptables-restore < /etc/network/iptables
-    do_status
+  echo "DESACTIVANDO reglas para controlar el tráfico https:"
+  echo "-------------------------------------------------"
+  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."
+  echo ""
 }
 
 do_restart() {
-    if is_enabled ; then
-	echo "Disabling REJECT to iptables.."
-	cat /etc/squid/acl/deny_https | while read linea; do
-	  echo "Desactivando $linea ..."
-	  iptables -D FORWARD -p tcp -m tcp --dport 443 -d $linea -j REJECT
-	done
-    fi
-    
-    iptables-restore < /etc/network/iptables
-    echo "Enabling REJECT to iptables."
-    cat /etc/squid/acl/deny_https | while read linea; do
-      echo "Filtrando $linea ..."
-      iptables -A FORWARD -p tcp -m tcp --dport 443 -d $linea -j REJECT
-    done
+  do_stop
+  do_start
+}
 
-    do_status
+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
+	do_start
+#	do_status
         ;;
     stop)
-        do_stop
+	do_stop
+#	do_status
         ;;
     restart|force-reload)
-        do_restart
+	do_restart
+#	do_status
         ;;
     status)
         do_status
@@ -107,6 +122,6 @@
         exit 2
         ;;
 esac
-
 exit 0
+#----------------------------------------------------------------------------------------
 
Index: tareas_puppet/servidores_aula/squid-ltsp.tgz
===================================================================
Cannot display: file marked as a binary type.
svn:mime-type = application/octet-stream
