Proyecto

General

Perfil

« Anterior | Siguiente » 

Revisión 409

reestructurando tareas puppet para diferenciar lenny de squeeze, subida tarea ltsp_squid para squeeze

Ver diferencias:

tareas_puppet/servidores_aula/quita_rayas_intel/files/lts.conf
# This is the default lts.conf file for ltsp 5.
# For more information about valid options please see:
# /usr/share/doc/ltsp-client/examples/lts-parameters.txt.gz
# in the client environment
[default]
LOCAL_APPS=True
LOCAL_APPS_MENU=True
LOCAL_APPS_MENU_ITEMS=firefox
#SOUND=False
#LOCALDEV=False
CONFIGURE_X=True
#CONFIGURE_X=False
#XRAMPREC=80
#LDM_AUTOLOGIN=True
X_MODE_0 = 1024x768
X_COLOR_DEPTH = 16
X_HORZSYNC = 30-54
X_VERTREFRESH = 50-120
X_MOUSE_DEVICE = "/dev/psaux"
X_MOUSE_PROTOCOL = "ExplorerPS/2"
X_MOUSE_RESOLUTION = 400
X_MOUSE_BUTTONS = 3
XkbModel = pc105
XkbLayout = es
X_VIDEORAM = 8192
X_OPTION_01 = "\"AccelMethod\" \"xaa\""
X_OPTION_02 = "\"XAANoOffscreenPixmaps\" \"True\""
X_OPTION_03 = "\"DRI\" \"off\""
tareas_puppet/servidores_aula/quita_rayas_intel/files/blacklist
# This file lists modules which will not be loaded as the result of
# alias expansion, with the purpose of preventing the hotplug subsystem
# to load them. It does not affect autoloading of modules by the kernel.
# This file is provided by the udev package.
blacklist i915
# evbug is a debug tool and should be loaded explicitly
blacklist evbug
# these drivers are very simple, the HID drivers are usually preferred
blacklist usbmouse
blacklist usbkbd
# replaced by e100
blacklist eepro100
# replaced by tulip
blacklist de4x5
# replaced by tmscsim
blacklist am53c974
# watchdog drivers should be loaded only if a watchdog daemon is installed
blacklist acquirewdt
blacklist advantechwdt
blacklist alim1535_wdt
blacklist alim7101_wdt
blacklist booke_wdt
blacklist cpu5wdt
blacklist eurotechwdt
blacklist hpwdt
blacklist i6300esb
blacklist i8xx_tco
blacklist ib700wdt
blacklist ibmasr
blacklist indydog
blacklist ixp2000_wdt
blacklist ixp4xx_wdt
blacklist it8712f_wdt
blacklist iTCO_wdt
blacklist machzwd
blacklist mixcomwd
blacklist mpc8xx_wdt
blacklist mpcore_wdt
blacklist mv64x60_wdt
blacklist pc87413_wdt
blacklist pcwd
blacklist pcwd_pci
blacklist pcwd_usb
blacklist s3c2410_wdt
blacklist sa1100_wdt
blacklist sbc60xxwdt
blacklist sbc7240_wdt
blacklist sbc8360
blacklist sbc_epx_c3
blacklist sc1200wdt
blacklist sc520_wdt
blacklist scx200_wdt
blacklist shwdt
blacklist smsc37b787_wdt
blacklist softdog
blacklist w83627hf_wdt
blacklist w83697hf_wdt
blacklist w83877f_wdt
blacklist w83977f_wdt
blacklist wafer5823wdt
blacklist wdt285
blacklist wdt977
blacklist wdt
blacklist wdt_pci
tareas_puppet/servidores_aula/quita_rayas_intel/leeme.txt
Configura los terminales de aula con tarjeta VGA Intel 845 para que desaparezca
el problema de las rayas en el arranque, asicomo otros problemas relacionados
con las Xorg en los terminales.
Desactiva la carga del modulo i915 en el arranque el nucleo y el DRI en el
fichero lts.conf.
Alfonso Pastor
IES Virgen de Guadalupe (Caceres).
INSTRUCCIONES DE INSTALACION DEL MODULO
---------------------------------------
Desempaquetar en /etc/puppet/modules.
Incluirlo en clase-especifica.pp
tareas_puppet/servidores_aula/quita_rayas_intel/manifests/init.pp
# Configura la tarjeta de video en los P300 para que no se bloqueen. Se desactiva DRI del kernel y las xorg.
class quita_rayas_intel {
file { "/opt/ltsp/i386/etc/lts.conf":
owner => root, group => root, mode => 644,
source => "puppet:///quita_rayas_intel/lts.conf",
notify => Exec["crear-imagen-quita-rayas-intel"]
}
file { "/opt/ltsp/i386/etc/modprobe.d/blacklist":
owner => root, group => root, mode => 644,
source => "puppet:///quita_rayas_intel/blacklist",
notify => Exec["crear-imagen-quita-rayas-intel"]
}
exec { "crear-imagen-quita-rayas-intel":
command => "/usr/sbin/ltsp-update-image --arch i386",
subscribe => [File["/opt/ltsp/i386/etc/lts.conf"], File["/opt/ltsp/i386/etc/modprobe.d/blacklist"]],
refreshonly => true
}
}
tareas_puppet/servidores_aula/utilaula/files/conectahost
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#
#Ricardo Salgado(IESO Galisteo)
#
#Conecta a un host (portatil o workstation) que esté conectado a la red del aula en ese momento
#toma como parametro el nombre del host(o una parte de el)
#
#Ricardo Salgado Cid
#IESO Galisteo
#
#26/01/11 Release incial ()
#09/02/11 Opciones mas restrictivas en los ssh para evitar esperas infinitas
if [ $# -ne 1 ]; then
echo "Conecta a un host (portatil o workstation) que este conectado a la red del aula en ese momento"
echo "Uso: $0 nombre_equipo"
exit
fi
hostip=$(avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '\-pro\|_pro' | grep $1.* | cut -d";" -f7,8 | sed 's/.local//' | sort | tail -1 )
host=$(echo $hostip | cut -d";" -f1)
ip=$(echo $hostip | cut -d";" -f2)
echo "Conectando a $host($ip)"
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15 -i /var/lib/portatil/.ssh/id_rsa root@$ip
tareas_puppet/servidores_aula/utilaula/files/apagado
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#Apaga el servidor de aula si no hay nadie logeado. Tambien apaga
#los ordenadores de los host conectados(Evita que se queden fritos
#algunos tipos de clientes ligeros como los Dominion)
#No tiene en cuenta si hay logeados alumnos
if ! who | grep -q "(:0)"; then
ejecutaenhosts poweroff
/sbin/shutdown -h now
fi
tareas_puppet/servidores_aula/utilaula/files/listahosts
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#
#Lista los hosts, sean portatiles o clientes ligeros que esten conectados en esa clase
#en ese instante.
#
#Ricardo Salgado Cid
#IESO Galisteo
#
#09/02/11 Release incial ()
listahosts=$(avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '_pro\|\-pro' | cut -d";" -f7,8 | sed 's/.local//' | sort)
if [ -z "$listahosts" ]; then
echo "No se ha encontrado ninguna maquina conectada"
exit 2
else
echo "Hay $(echo $listahosts | tr " " "\n" | wc -l ) maquina/s conectadas:"
fi
for hostip in $listahosts
do
host=$(echo $hostip | cut -d";" -f1)
ip=$(echo $hostip | cut -d";" -f2)
echo "--$host($ip)"
done
tareas_puppet/servidores_aula/utilaula/files/arreglosportatil
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#
#
# Ricardo Salgado(IESO Galisteo)
#
# Ejecuta los comandos contenidos en la variable "comandos" en todos los portatiles conectados al aula.
# Los comandos deben terminar con el caracter ";" a excepcion del ultimo
# Pensado solo para los portatiles, cuidado con ejecutarlo sobre los clientes ligeros
# Pasando como parametro -p al script los comandos se ejecutaran en paralelo en todos los host.
# Sin parametros se ejecutaran host a host
comandos="
/etc/init.d/puppet stop;
dpkg --configure -a --force-all;
puppetd -tv;
pkgsync;
nss_updatedb ldap;
apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold--reinstall install autofs5;
/etc/init.d/puppet start
"
if [ "$1" \= "-p" ] ; then
/sbin/ejecutaenhosts -p $comandos
else
/sbin/ejecutaenhosts $comandos
fi
tareas_puppet/servidores_aula/utilaula/files/reinicio
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#Reinicia el servidor de aula si no hay nadie logeado. Tambien apaga
#los ordenadores de los host conectados(Evita que se queden fritos
#algunos tipos de clientes ligeros como los Dominion)
#No tiene en cuenta si hay logeados alumnos
if ! who | grep -q "(:0)"; then
ejecutaenhosts poweroff
/sbin/shutdown -r now
fi
tareas_puppet/servidores_aula/utilaula/files/ejecutaenhosts
#!/bin/bash
##############################################################################
# utilaula is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
# utilaula is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with utilala. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
#
#Permite ejecutar el comando que se le pase como parámetro en todos los hosts, ya
#sean portatiles o clientes ligeros que esten conectados en esa clase en ese instante.
#Con el parametro -p se ejecuta en paralelo en todos los equipos(la salida resultante
#se almacena en un fichero), sin el parametro -p el comando se va ejecutando maquina a
#maquina
#
#Ricardo Salgado Cid
#IESO Galisteo
#
#26/01/11 Release incial ()
#09/02/11 Opciones mas restrictivas en los ssh para evitar esperas infinitas
if [ $# -lt 1 ]; then
echo "Permite ejecutar el comando que se le pase como parametro en todos los hosts"
echo "sean portatiles o clientes ligeros que esten conectados en esa clase en ese instante."
echo "Con el parametro -p se ejecuta en paralelo en todos los equipos"
echo "Uso: $0 [-p] comando"
exit
fi
if [ "$1" \= "-p" ] ; then
enparalelo="yes"
shift
fi
listahosts=$(avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '_pro\|\-pro' | cut -d";" -f7,8 | sed 's/.local//' | sort)
if [ -z "$listahosts" ]; then
echo "No se ha encontrado ninguna maquina conectada"
exit 2
else
echo "El comando se ejecutará sobre $(echo $listahosts | tr " " "\n" | wc -l ) maquina/s"
fi
for hostip in $listahosts
do
if [ -z $enparalelo ]; then
salida=/dev/stdout
else
salida=/dev/null
fi
host=$(echo $hostip | cut -d";" -f1)
ip=$(echo $hostip | cut -d";" -f2)
echo "Salida del comando en el host $host($ip):" > $salida
echo __________________________________________________________________________ > $salida
if [ -z $enparalelo ]; then
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15 -i /var/lib/portatil/.ssh/id_rsa root@$ip $*
else
ssh -o StrictHostKeyChecking=no -o ConnectTimeout=9 -o ServerAliveCountMax=2 -o ServerAliveInterval=15 -i /var/lib/portatil/.ssh/id_rsa root@$ip $* > /tmp/salida_host_$host.log 2>&1 &
fi
echo __________________________________________________________________________ > $salida
echo -e "\n\n" > $salida
done
if [ -z "$enparalelo" ]; then
exit 0
else
salida="salidas_comando_$(date +%Y%m%d_%H%M).log"
echo -n "Esperando a que terminen los procesos "
for job in $(jobs -p)
do
echo -n "."
wait $job
done
echo -e "\n"
echo "Hecho!"
echo "Salidas del comando: \"$*\"" > $salida
echo $(date) >> $salida
for hostip in $listahosts
do
host=$(echo $hostip | cut -d";" -f1)
ip=$(echo $hostip | cut -d";" -f2)
echo "Salida del comando en el host $host($ip):" >> $salida
echo __________________________________________________________________________ >> $salida
cat /tmp/salida_host_${host}.log >> $salida
rm /tmp/salida_host_${host}.log
echo __________________________________________________________________________ >> $salida
done
echo "Salidas almacenadas en el fichero: $salida"
# read -n1 -p "¿Mostrar fichero? (s/N) "
# echo
# [[ $REPLY == [sSyY] ]] && less /root/$salida
#
# read -n1 -p "¿Borrar fichero? (s/N) "
# echo
# [[ $REPLY == [sSyY\n] ]] && rm $salida
fi
tareas_puppet/servidores_aula/utilaula/leeme.txt
utilaula
Tarea de puppet que añade comandos que hace posible conectarse facilmente
a los ordenadores(portatiles o clientes ligeros) que estan encendidos en un
determinado momento en un aula desde el ordenador del profesor. Para instalar
la tarea solo hay que descomprimir en /etc/puppet/modules del servidor nfs y
añadirla a clase-especifica. Los comandos son los siguientes:
*listahosts: devuelve una lista de las máquinas conectadas(hostname e ip).
*conectahost: abre una sesión de ssh como root en la maquina que se le indique.
(No es necesario teclear el nombre entero,basta con los primeros caracteres)
*ejecutaenhosts: ejecuta el comando que se le pase como parámetro en todos los hosts
(Con el parametro -p se ejecuta en paralelo en todos los equipos)
*arreglosportatil: ejecuta los comandos de configuracion basica de los portatiles.
(mirar dentro del script para mas detalles)
*reincio: reincia el servidor de aula si no hay nadie logeado.
*apagado: apaga el servidor de aula si no hay nadie logeado
Ricardo Salgado Cid
IESO Galisteo
Febrero 2011
tareas_puppet/servidores_aula/utilaula/changelog
16/02/11 v0.7 Corregidos permisos en la carpeta files
10/02/11 v0·6 Corregido bug(No se creaba la carpeta .ssh dentro del root de la imagen ltsp)
10/02/11 v0.5 Release incial con soporte de portatiles
tareas_puppet/servidores_aula/utilaula/manifests/init.pp
class utilaula {
file {
"/sbin/conectahost":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/conectahost";
"/sbin/listahosts":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/listahosts";
"/sbin/ejecutaenhosts":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/ejecutaenhosts";
"/sbin/arreglosportatil":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/arreglosportatil";
"/sbin/apagado":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/apagado";
"/sbin/reinicio":
owner => root, group => root, mode => 750,
source => "puppet:///utilaula/reinicio";
"/opt/ltsp/i386/root/.ssh":
owner => root, group => root, mode => 755,
ensure => directory,
before => File["/opt/ltsp/i386/root/.ssh/authorized_keys2"];
"/opt/ltsp/i386/root/.ssh/authorized_keys2":
owner => root, group => root, mode => 600,
source => "/var/lib/portatil/.ssh/id_rsa.pub",
notify => Exec[crear-imagen-utilaula];
}
exec { "crear-imagen-utilaula":
command => "/usr/sbin/ltsp-update-image --arch i386",
refreshonly => true;
}
}
tareas_puppet/servidores_aula/logrotate-controlaula/files/controlaula
/var/log/controlaula.log
{
rotate 7
daily
missingok
notifempty
delaycompress
compress
}
tareas_puppet/servidores_aula/logrotate-controlaula/leeme.txt
BREVE DESCRIPCION DE LA EJECUCION DEL MODULO
--------------------------------------------
Este modulo incluye el fichero controlaula dentro de /etc/logrotate.d en el servidor de aula
para que se haga la rotación del log generado en /var/log.
INSTRUCCIONES DE INSTALACION DEL MODULO
---------------------------------------
Desempaquetar en /etc/puppet/modules
Incluir la linea include "nombre_modulo" en /etc/puppet/manifests/classes/clase-especifica.pp
------------------------------------------------
02-Diciembre-2011.
Francisco Rodrigo L?pez
Administrador inform?tico del IES JAVIER GARCIA TELLEZ
tareas_puppet/servidores_aula/logrotate-controlaula/manifests/init.pp
class logrotate-controlaula {
file { "/etc/logrotate.d/controlaula":
owner => root, group => root, mode => 644,
source => "puppet:///logrotate-controlaula/controlaula",
checksum => md5,
}
}
tareas_puppet/servidores_aula/apagar_no_usados/files/comprobar_login
#Comprueba si el equipo lleva mas de X minutos en la pantalla login, y si es
#así, lo apaga.
*/1 * * * * root /root/adormir.sh
tareas_puppet/servidores_aula/apagar_no_usados/files/S99_borra_testigo.sh
#/bin/bash
#para guardar en /usr/share/ldm/rc.d de la imagen de los clientes.
#Debe empezar por SXX para que se ejecute en el arranque de sesión en el orden XX
#Borra el fichero /root/ocioso cuando hace login un usuario, para desactivar el
#apagado por inactividad.
test -e /root/ocioso && rm /root/ocioso
tareas_puppet/servidores_aula/apagar_no_usados/files/adormir.sh
#/bin/bash
#Poner en el crontab para que se ejecute cada minuto.
#Comprueba si hay alguien logueado en el terminal o bien está ejecutandose
#el cañon vlc de Aulalinex o el vnc-proyectr
#Opciones para ver si hay alguien logado
# logado=$(ps aux | grep "ssh.*192.168.0.254" | grep -v grep | wc -l)
# logado=$(cat /var/run/ltsplogin192.168.0.254) <-devuelve el login del usuario que ha entrado, lo malo es que si sale de sesión no se borra.
# Y la que usamos, copiada de controlaula:
logado=$(ps aux | grep "LTSP_CLIENT" | grep -v grep | wc -l) #Si alguien esta logado, la conexion con el servidor de aula tiene esta cadena.
vlcenuso=$(ps aux | grep vlc | grep -v grep | wc -l) #Por si se está proyectando video sin alumnos logados.
vncenuso=$(ps aux | grep vnc | grep -v grep | wc -l) #Por si se está proyectando escritorio sin alumnos logados.
if [ $logado -eq 1 -o $vlcenuso -eq 1 -o $vncenuso -eq 1 ]
then
test -e /root/ocioso && rm /root/ocioso
else
if [ ! -e /root/ocioso ]
then
touch /root/ocioso
else
seg1=$(stat -c%X /root/ocioso)
seg2=$(date +%s)
segundos=$(expr $seg2 - $seg1)
if [ $segundos -gt 121 ] # mas de 3 minutos encendido sin que entre nadie.
then
gxmessage -display :7 -timeout 30 -center -button "‌No apagar" "Este ordenador no se esta usando.
El sistema se apagara en 30 segundos."
if [ $? -ne 101 ]
then
/etc/init.d/avahi-daemon stop
/usr/sbin/ethtool -s eth0 wol g 2>/dev/null
/usr/bin/killall -9 x-session-manager
/sbin/poweroff -fp &
else
touch /root/ocioso
fi
fi
fi
fi
tareas_puppet/servidores_aula/apagar_no_usados/leeme.txt
Versión 1.1
Fecha ultima revisión: 14-11-2011
Apaga automaticamente los thinclient que lleven mas de X minutos en la pantalla
de login sin haber entrado ningún usuario.
Por defecto espera 4-5 minutos, pero se puede modificar en el script files/adormir.sh.
Si un usuario hace logon en el equipo, se desactiva el apagado hasta que salga.
Muestra un mensaje 30 segundos antes del apagado, que permite al usuario parar el
apagado si desea entrar.
Se incluye en clase-especifica como cualquier otra tarea puppet de las aplicadas.
31-1-2011
Alfonso Pastor.
IES Virgen de Guadalupe.
MODIFICACIÓN 14-11-2011
=======================
Detectado error que puede causar que ocasionalmente se apaguen los equipos aun teniendo un alumno logado.
Cambiado el script adormir.sh para que ahora funcione correctamente.
Antes se preguntaba
if (ps aux | grep "LTSP_CLIENT" | wc -l) > 1 then esta logado.
Este if fallaba a veces en ordenadores donde el alumno no estuviese trabajando mucho. En vez de devolver 2
siempre que hubiese un alumno logado, en algunas ocasiones devolvía 1.
Ahora se pregunta:
if (ps aux | grep "LTSP_CLIENT" | grep -v grep | wc -l) =1 then esta logado.
tareas_puppet/servidores_aula/apagar_no_usados/manifests/init.pp
class apagar_no_usados {
file { "/opt/ltsp/i386/usr/share/ldm/rc.d/S99_borra_testigo.sh":
owner => root, group => root, mode => 755,
source => "puppet:///apagar_no_usados/S99_borra_testigo.sh",
notify => Exec["actualiza-imagen-apagado"],
}
file { "/opt/ltsp/i386/etc/cron.d/comprobar_login":
owner => root, group => root, mode => 644,
source => "puppet:///apagar_no_usados/comprobar_login",
notify => Exec["actualiza-imagen-apagado"],
}
file { "/opt/ltsp/i386/root/adormir.sh":
owner => root, group => root, mode => 755,
source => "puppet:///apagar_no_usados/adormir.sh",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "instalar-gxmessage":
command => "/usr/sbin/chroot /opt/ltsp/i386 /usr/bin/apt-get -y update ; /usr/sbin/chroot /opt/ltsp/i386 /usr/bin/apt-get install -y gmessage ; /usr/sbin/chroot /opt/ltsp/i386 /usr/bin/dpkg --configure -a",
before => Exec["actualiza-imagen-apagado"],
unless => "/usr/sbin/chroot /opt/ltsp/i386 dpkg -l gmessage | cut -d' ' -f1 | grep ii > /dev/null",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "instalar-gxmessage-mayhave-chroot":
command => "/bin/echo gmessage >> /opt/ltsp/i386/etc/pkgsync/mayhave",
before => Exec["actualiza-imagen-apagado"],
unless => "/bin/grep -i gmessage /opt/ltsp/i386/etc/pkgsync/mayhave > /dev/null",
notify => Exec["actualiza-imagen-apagado"],
}
exec { "actualiza-imagen-apagado":
command => "/usr/sbin/ltsp-update-image --arch i386",
refreshonly => true,
}
}
tareas_puppet/servidores_aula/quita_actualizacion_bios_terminales/leeme.txt
ACTUALIZACION BIOS
==================
Tarea puppet que actualiza la configuración de la BIOS de los ordenadores de los alumnos (ojo, no
actualiza la version de la BIOS, sino su configuracion). Util para poner la misma configuracon de
BIOS (orden de arranque, contraseña, configuracion USB/LPT1, etc) en todos los equipos sin tener
que ir entrando uno a uno y cambiarla a mano.
AVISOS:
=======
-Este paquete está preparado con la BIOS de los Fujitsu P300 y no deberia funcionar en equipos
distintos. Para prepararla otros equipos, leer bien este documento HASTA EL FINAL, especialmente
n el apartado de como generar una copia de seguridad de una BIOS para nuestro caso particular,
antes de hacer nada.
-Este paquete está formado por 2 tareas puppet:
actualiza_bios_terminales: que hace modificaciones en la imagen para actualizar la bios en
el arranque de los terminales.
quita_actualizacion_bios_terminales: quita las modificaciones y deja la imagen como estaba,
despues de haber actualizado la BIOS.
Hay dos tareas por un motivo: si se pone solo la primera el script de actualizacion de la BIOS
queda en la imagen de los clientes de aula y se ejecutará cada vez que se arranquen estos. En
principio esto no es malo, pero tampoco queda bien actualizar la BIOS en cada arranque, simplemente
es suficiente con actualizarla una vez. Por ese motivo existe la tarea contraria, que desactiva esta
actualización.
No hemos encontrado la manera de poder hacerlo todo en una sola tarea puppet.
USO:
====
1) Descomprimir el fichero en /etc/puppet/modules del servidor principal, creará dos carpetas, una
para cada terea.
2) Es conveniente ir actualizando aula a aula. Supongamos que queremos actualizar la BIOS en el aula "a02".
-Añadimos a /etc/puppet/manifests/classes/clase-especifica.pp y añades lo siguiente dentro del fichero:
node "a02-pro" inherits default {
include "actualiza_bios_terminales"
# include "quita_actualizacion_bios_terminales"
}
-Nos vamos fisicamente al aula y forzamos con puppetd -t a que aplique la regla, sin esperar a que
lo haga automaticamente.
-Cuando haya acabado, abrimos controlaula/aulalinex y encendemos todos los terminales. Es muy
importante que se enciendan todos por completo hasta la pantalla de login, ya que si alguno no
arranca su BIOS no se actualizará.
-Cuando veamos que todos los terminales tienen la pantalla de login de Lenny, los apagamos.
-Nos conectamos al servidor del centro y de nuevo editamos clase-especifica, descomentando el segundo
include y comentando el primero:
node "a02-pro" inherits default {
# include "actualiza_bios_terminales"
include "quita_actualizacion_bios_terminales"
}
-Ahora forzamos de nuevo un puppetd -t en el servidor de aula para asegurarnos en el momento
de que se quita la actualización de la BIOS de la imagen de los clientes. Tampoco es necesario
hacerlo en ese momento, podemos dejar que puppet lo haga cuando toque, pero yo prefiero hacerlo
cuanto antes y ya no me preocupo mas.
-Por último, cuando se haya ejecutado la regla correctamente, editamos de nuevo clase-especifica
y la quedamos (tambien podemos borrar los include):
node "a02-pro" inherits default {
# include "actualiza_bios_terminales"
# include "quita_actualizacion_bios_terminales"
}
-Y ya está. Si encendemos un terminal cualquiera y entramos en su BIOS con F2 (o la tecla que
corresponda) veremos que ya tiene la BIOS tal como hicimos la copia.
3) Repetir estos pasos para todas las aulas cuando vayan quedando libres.
4) Tampoco es necesario estar fisicamente en las aulas si todo va bien. Podemos conectarnos con ssh -X
al servidor de aula, hacer las actualización por puppet, abrir el aulalinex remotamente, encender
los equipos y si se encienden todos podemos estar seguros de que se les ha actualizado la BIOS.
Solo tendriamos que ir al aula fisicamente si no se ha llegado a encender algún equipo concreto,
para ver que le pasa y encenderlo tu a mano.
IMPORTANTE: COMO GENERAR UNA COPIA DE LA BIOS A NUESTRA MEDIDA.
===============================================================
Leer esto si queremos tener una versión personalizada de la BIOS, hecha a nuestro gusto, o bien los
equipos de nuestro centro no son Fujitsu P300 y por tanto la copia que se adjunta a la tarea no debería
funcionar. Los ficheros clave son dos (están en /etc/puppet/modules/actualiza_bios_terminales/files):
* cmospwd: este es el ejecutable que permite clonar y restaurar la configuración de la BIOS.
Está sacado del CD de rescate de los servidores de aula, ya que es el que usa backharddi
para machacar la BIOS de los servidores al restaurar la imagen.
* cmosbackup: este fichero es el que almacena la copia de la configuración de la BIOS, siempre
tiene 384 bytes (o al menos eso me parece a mi).
Los pasos son:
-Entrar en la BIOS del equipo y modificarla a nuestro gusto (orden de arranque, clave de la BIOS,
activar/desactivar USB, LPT1, etc).
-Arrancar un Linux en el equipo y copiar el fichero cmospwd a la carpeta /root de dicho Linux. Podemos
copiarlo desde una unidad de red compartida por nfs, por scp, con wget.
-Como usuario root hacemos:
./cmospwd /d /w cmosbackup
y hará la copia de la configuración BIOS en el fichero cmosbackup (podemos poner otro nombre, pero la
tarea puppet esta configurada para usar ese nombre en concreto).
-Ese fichero cmosbackup lo metemos en la tarea puppet sobreescribiendo el que hay en
/etc/puppet/modules/actualiza_bios_terminales/files
del servidor nfs (lo mas comodo es copiarlo por scp), y ya podremos usar la tarea puppet con nuestra
flamante BIOS.
-Si quermos restaurar la configuración a mano en un equipo suelto de por ahi (por ejemplo, un workstation),
copiamos al equipo los ficheros cmospwd y cmosbackup, abrimos un terminal y como root hacemos:
./cmospwd /d /r cmosbackup
Esto abre un menú con tres opciones:
1) Restaurar la configuracion
2) Restaurar la configuracion manteniendo la fecha y hora
3) No hacer nada,
Cogemos la segunda y ya está.
Si nos queremos ahorrar el paso de elegir opción podemos hacer:
echo 2 | /root/cmospwd /d /r /root/cmosbackup
=====================================================================================================================
Alfonso Pastor
IES Virgen de Guadalupe. 2010-11.
tareas_puppet/servidores_aula/quita_actualizacion_bios_terminales/manifests/init.pp
class quita_actualizacion_bios_terminales {
exec { "/bin/rm /opt/ltsp/i386/etc/rc2.d/S99updcmos.sh; /usr/sbin/ltsp-update-image --arch i386" :
}
}
tareas_puppet/servidores_aula/apagado-terminales/files/apagaterminales.sh
#!/bin/bash
# Esteban M. Navas
# IES Valle del Jerte - Plasencia
# 03/02/2011
# apagaterminales.sh -> Apaga los terminales de un aula
# El script hace uso de avahi-browse y ssh-keyscan para cumplir con su función.
# Está pensado para ejecutar el comando de apagado tan sólo sobre las máquinas que se detecten encendidas
# pero al mismo tiempo, va construyendo una lista con las ips de las máquinas que se van detectando.
# Hace uso de ssh-keyscan para obtener las claves rsa de los terminales encendidos y añadirlas al fichero
# /root/.ssh/known_hosts del servidor de terminales.
# Detectamos los terminales encendidos, tal y como está definido en ldap
avahi-browse -trpk -d local _workstation._tcp 2>/dev/null | grep 192.168.0. | grep -v '_pro\|\-pro'| cut -d";" -f8 > /tmp/terminalesUp
# Obtenemos las claves rsa de los terminales encendidos
ssh-keyscan -t rsa -f /tmp/terminalesUp > /tmp/rsaterminalesUp
# Añadimos las claves rsa de los terminales encendidos al fichero known_host de root del servidor de terminales
sort -o /root/.ssh/known_hosts -m /tmp/rsaterminalesUp /root/.ssh/known_hosts
sort -o /root/.ssh/known_hosts -u /root/.ssh/known_hosts
# Apagamos los terminales
while read IP
do
ssh root@$IP -a /sbin/poweroff -fp &
done < /tmp/terminalesUp
tareas_puppet/servidores_aula/apagado-terminales/files/halt-terminales
#! /bin/sh
### BEGIN INIT INFO
# Provides: halt-terminales
# Required-Start:
# Required-Stop:
# Default-Start:
# Default-Stop: 0 6
# Short-Description: Execute the reboot command.
# Description:
### END INIT INFO
PATH=/sbin:/usr/sbin:/bin:/usr/bin
. /lib/lsb/init-functions
do_stop () {
# Apagamos los terminales
/usr/sbin/apagaterminales.sh &
}
case "$1" in
start)
# No-op
;;
restart|reload|force-reload)
echo "Error: argument '$1' not supported" >&2
exit 3
;;
stop)
do_stop
;;
*)
echo "Usage: $0 start|stop" >&2
exit 3
;;
esac
tareas_puppet/servidores_aula/apagado-terminales/leeme.txt
BREVE DESCRIPCION DE LA EJECUCION DEL MODULO
--------------------------------------------
Destino: Servidores de aula.
Acción: * Copia el script apagaterminales.sh con permisos 750 a /usr/sbin
* Crea las claves pública y privada de root en cada servidor de terminales,
si no han sido creadas aún, dejando vacía la "passphrase".
* Añade la clave pública de root en el servidor de terminales (/root/.ssh/id_rsa.pub)
al fichero authorized_keys de la imagen de los terminales y regenera la imagen.
* Añade la llamada al script apagaterminales.sh al fichero /etc/gdm/PostSession/Default
para que los terminales de alumno se apagen cuando el profesor cierre la sesión.
* Añade un script de inicio llamado "halt-terminales" a /etc/init.d y crea dos enlaces en:
/etc/rc0.d/K01aapaga-terminales y /etc/rc6.d/K01aapaga-terminales para apagar los terminales
cuando se apague o reinicie el servidor.
Función: * apagaterminales.sh -> Apaga los terminales de un aula
* El script hace uso de avahi-browse, ssh y ssh-keyscan para cumplir con su función.
* Está pensado para ejecutar el comando de apagado tan sólo sobre las máquinas que se detecten encendidas
pero al mismo tiempo, va construyendo una lista con las ips de los terminales que se van detectando en cada uso.
* Hace uso de ssh-keyscan para obtener las claves rsa de los terminales encendidos y añadirlas al fichero
/root/.ssh/known_hosts del servidor de terminales.
Notas: El script apagaterminales.sh se ejecuta:
* Cuando el profesor cierra la sesión.
* Cuando se reinicia el servidor de terminales.
* Cuando se apaga el servidor de terminales.
INSTRUCCIONES DE INSTALACION DEL MODULO
---------------------------------------
1) Desempaquetar en /etc/puppet/modules
2) Incluir la linea include "nombre_modulo" en /etc/puppet/manifests/classes/clase-especifica.pp
------------------------------------------------
Creado por:
Esteban M. Navas Martín
Administrador informático del IES Valle del Jerte.
03-Febrero-2011
01-Marzo-2012 (última modificación)
tareas_puppet/servidores_aula/apagado-terminales/manifests/init.pp
class apagado-terminales {
file {
"/usr/sbin/apagaterminales.sh" :
source => "puppet://puppetinstituto/apagado-terminales/apagaterminales.sh",
owner => root, group => root, mode => 750
}
file {
"/opt/ltsp/i386/root/.ssh" :
ensure => directory, owner => root, group => root, mode => 700,
}
file { "/root/.ssh/id_rsa.pub":
ensure => file, owner => "root", group => "root", mode => "644",
}
file {
"/root/.ssh/known_hosts" :
ensure => file, owner => root, group => root, mode => 644,
}
exec { "/usr/bin/ssh-keygen -q -t rsa -N '' -f /root/.ssh/id_rsa":
unless => "/usr/bin/test -f /root/.ssh/id_rsa",
notify => Exec["copy-publickey"]
}
exec { "copy-publickey":
command => "/bin/cat /root/.ssh/id_rsa.pub >> /opt/ltsp/i386/root/.ssh/authorized_keys",
require => [File["/root/.ssh/id_rsa.pub"], File["/opt/ltsp/i386/root/.ssh"]],
unless => '/bin/grep "$fqdn" /opt/ltsp/i386/root/.ssh/authorized_keys 2>/dev/null',
notify => Exec["update-image"]
}
exec { "update-image":
command => "/usr/sbin/ltsp-update-image --arch i386",
path => "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
refreshonly => true
}
exec { '/bin/sed -i -e "s/exit 0/\/usr\/sbin\/apagaterminales.sh \&\n\nexit 0/g" /etc/gdm/PostSession/Default':
unless => '/bin/grep "apagaterminales" /etc/gdm/PostSession/Default 2>/dev/null'
}
file {
"/etc/init.d/halt-terminales" :
source => "puppet://puppetinstituto/apagado-terminales/halt-terminales",
owner => root, group => root, mode => 750
}
exec { "/bin/ln -sf /etc/init.d/halt-terminales /etc/rc0.d/K01aapaga-terminales":
unless => "/usr/bin/test -L /etc/rc0.d/K01aapaga-terminales"
}
exec { "/bin/ln -sf /etc/init.d/halt-terminales /etc/rc6.d/K01aapaga-terminales":
unless => "/usr/bin/test -L /etc/rc6.d/K01aapaga-terminales"
}
}
tareas_puppet/servidores_aula/squid-ltsp/files/deny_https_iptables
#! /bin/sh
### BEGIN INIT INFO
# 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: 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.
#
#----------------------------------------------------------------------------------------
#----------------------------------------------------------------------------------------
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 --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 "----------------------------------------------------"
}
#----------------------------------------------------------------------------------------
do_start() {
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() {
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() {
do_stop
do_start
}
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_status
;;
stop)
do_stop
# do_status
;;
restart|force-reload)
do_restart
# do_status
;;
status)
do_status
;;
*)
echo "Usage: $0 {start|stop|restart|force-reload|status}"
exit 2
;;
esac
exit 0
#----------------------------------------------------------------------------------------
tareas_puppet/servidores_aula/squid-ltsp/files/cache_refresh.conf
# ======================= #
# EL REFRESCO DE LA CACHE #
# ======================= #
# Después del cache definimos cuanto tiempo lo guardamos, básicamente la expresión regula:
# el tiempo mínimo antes de descargar de nuevo (en minutos), el porcentaje de envejecimiento
# y el tiempo máximo para considerarse viejo (en minutos)
# El tiempo que deseemos mantener almacenado algo es relativo a nuestro trabajo,
# en todo caso por motivos de actualizaciones lo ideal no es dejar muy alto los valores de los archivos .deb .rpm,
# y si la gente de Microsoft trabajara en serio en parches, deberia acortarse ese tiempo, pero como no es así...
# Recordemos que sólo almacenará los archivos que estén dentro del maximum_object_size
# Paquetes Debian: mínimo y máximo de 1 dia antes de descargar de nuevo
refresh_pattern -i \.deb$ 1440 100% 1440
# Imagenes: minimo 1 dia maximo 3 antes de descargar de nuevo
refresh_pattern -i \.gif$ 1440 80% 4320
refresh_pattern -i \.tiff?$ 1440 80% 4320
refresh_pattern -i \.bmp$ 1440 80% 4320
refresh_pattern -i \.jpe?g$ 1440 80% 4320
refresh_pattern -i \.xbm$ 1440 80% 4320
refresh_pattern -i \.png$ 1440 80% 4320
refresh_pattern -i \.wrl$ 1440 80% 4320
refresh_pattern -i \.ico$ 1440 80% 4320
refresh_pattern -i \.pnm$ 1440 80% 4320
refresh_pattern -i \.pbm$ 1440 80% 4320
refresh_pattern -i \.pgm$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.ppm$ 1440 80% 4320
refresh_pattern -i \.rgb$ 1440 80% 4320
refresh_pattern -i \.xpm$ 1440 80% 4320
refresh_pattern -i \.xwd$ 1440 80% 4320
refresh_pattern -i \.pict?$ 1440 80% 4320
# Video: minimo 10 dias, maximo 30
refresh_pattern -i \.mov$ 14400 80% 43200
refresh_pattern -i \.mpe?g?$ 14400 80% 43200
refresh_pattern -i \.avi$ 14400 80% 43200
refresh_pattern -i \.qtm?$ 14400 80% 43200
refresh_pattern -i \.viv$ 14400 80% 43200
refresh_pattern -i \.swf$ 14400 80% 43200
#refresh_pattern -i \.flv$ 14400 80% 43200
# Sonido: idem que video
refresh_pattern -i \.wav$ 14400 80% 43200
refresh_pattern -i \.aiff?$ 14400 80% 43200
refresh_pattern -i \.au$ 14400 80% 43200
refresh_pattern -i \.ram?$ 14400 80% 43200
refresh_pattern -i \.snd$ 14400 80% 43200
refresh_pattern -i \.mid$ 14400 80% 43200
refresh_pattern -i \.mp2$ 14400 80% 43200
refresh_pattern -i \.mp3$ 14400 80% 43200
refresh_pattern -i \.ogg$ 14400 80% 43200
# Archivos: idem que video
refresh_pattern -i \.tar$ 14400 80% 43200
refresh_pattern -i \.gz$ 14400 80% 43200
refresh_pattern -i \.bz2$ 14400 100% 43200
refresh_pattern -i \.exe$ 14400 80% 43200
refresh_pattern -i \.cab$ 14400 80% 43200
refresh_pattern -i \.zip$ 14400 80% 43200
refresh_pattern -i \.arj$ 14400 80% 43200
refresh_pattern -i \.rar$ 14400 80% 43200
refresh_pattern -i \.sit$ 14400 80% 43200
refresh_pattern -i \.lzh$ 14400 80% 43200
refresh_pattern -i \.lha$ 14400 80% 43200
refresh_pattern -i \.hqx$ 14400 80% 43200
refresh_pattern -i \.z$ 14400 80% 43200
refresh_pattern -i \.a[0-9][0-9]$ 14400 80% 43200
refresh_pattern -i \.r[0-9][0-9]$ 14400 80% 43200
# Archivos de datos: idem que video
refresh_pattern -i \.txt$ 14400 80% 43200
refresh_pattern -i \.pdf$ 14400 80% 43200
refresh_pattern -i \.doc$ 14400 80% 43200
refresh_pattern -i \.rtf$ 14400 80% 43200
refresh_pattern -i \.tex$ 14400 80% 43200
refresh_pattern -i \.latex$ 14400 80% 43200
# Objetos Java-type: idem que video
refresh_pattern -i \.class$ 14400 80% 43200
refresh_pattern -i \.js$ 14400 80% 43200
refresh_pattern -i \.class$ 14400 80% 43200
# Objetos Web-type:
refresh_pattern -i \.css$ 10 20% 4320
refresh_pattern -i \.html?$ 10 20% 4320
refresh_pattern -i \/$ 10 20% 4320
# Para evitar problemas con scripts .do
refresh_pattern -i \.do$ 0 0% 1440
tareas_puppet/servidores_aula/squid-ltsp/files/LEER
Configuración de squid.conf
---------------------------
Sobre las reglas de filtrado hay que tener en cuenta lo siguiente:
a) Las reglas se ejecutan en el mismo orden en el que se encuentran activadas
dentro del fichero de configuración de squid, es decir, /etc/squid/squid.conf
b) Las listas de control de acceso (acl) nunca pueden estar vacías, pues sino squid no arrancará.
c) Las reglas se ejecutan en este orden:
Las primeras 3 reglas tratan el acceso de 3 aplicaciones:
#----------------------------------------------------------------------------------------------------------
1.- Se deniega IExplorer
Como es la primera regla, prohibe expresamente el uso de internet explorer
2.- Se acepta winupdate
Se permite el acceso al windowsupdate para las actualizaciones
3.- Se deniega messenger
- Aplicación
- gateway.dll
- Método POST
- Puerto: 1863
... Diferencia truncada por exceder el máximo tamaño visualizable.

Exportar a: Unified diff