Visual Squix
De Gleducar, http://www.gleducar.org.ar
Tabla de contenidos |
[editar]
Introduccion
Visual_Squix es un script que ayuda a usuarios sin muchos conocimientos a manejar las reglas de acl. El script está diseñado para trabajar con archivos de acl webs denegadas y webs siempre permitidas Este archivo contiene las webs bloqueadas y a su vez está definido como reg_expresion en squid.conf.
[editar]
El Código
#!/bin/bash
echo "" > var1
echo "" > v2
echo "" > var2
# ----------------------------------------------------------------------------- #
# Configuración de SquiX V1.0
# Si no tiene instalado dialog y no desea hacerlo, puede utilizar los sigui-
# entes programas:
# * Xdialog
# * Kdialog
# No olvides que podés user la version NO gráfica de Visual Squix
# Debe colocar su eleccion dentro de las comillas: dialog="<su eleccion>"
dialog="dialog"
# Ruta completa donde tiene su archivo de páginas webs denegadas
prohi=""
# Ruta completa donde tiene su archivo de páginas webs permitidas
permi=""
# Ruta completa donde estarán los backups (bloqueos). Generalmente se usa el mismo donde se encuentran
# los archivos de acl
back=""
# Fin de la configuración
# No haga cambios después de esta línea, salvo que sepa lo que está haciendo.
# ------------------------------------------------------------------------------ #
# Algunas definiciones
titulo="Visual Squix V1.0-0a"
user=$(whoami)
# ------------------------------------------------------------------------------ #
if [ "$user" != "root" ]; then
clear
echo "NO ERES ROOT"
sleep 4
clear
exit
fi
clear
if [ "$dialog" = "" ]; then # TENGO QUE ARREGLAR ESTA BRUTALIDAD, YA! aunque no
# quedo tan mal
if [ "$prohi" = "" -a "$permi" = "" ]; then
echo "ERROR 1: No tiene configurada la interface del SquiX"
else
echo "ERROR 1: No tiene configurada la interface del SquiX"
exit 0
fi
fi
if [ "$prohi" = "" ]; then
if [ "$permi" = "" ]; then
echo "ERROR 2: Debe configurar su lista de prohibidos"
else
echo "ERROR 2: Debe configurar su lista de prohibidos"
exit 0
fi
fi
if [ "$permi" = "" ]; then
echo "ERROR 3: Debe configurar su lista de permitidos"
exit 0
fi
if [ "$back" = "" ]; then
echo "ERROR 4: Debe configurar su direcctorio de backup's"
exit 0
fi
function help {
echo " $titulo";
echo " -------------------------------------------------"
echo " --help, -h Muestra este mensaje"
echo " -l Muestra todos los bloqueos"
echo " -lp Muestra las webs permitidas"
echo " -a <web> Agrega un bloqueo"
echo " -ap <web> Agrega una web permitida"
echo " -b <web> Busca un bloqueo"
echo " -bp <web> Busca una web permitida"
echo " -q Quita un bloque"
echo " -qp Quita una web permitida"
echo " -v Muestra la version del programa"
echo " --backup Genera un backup de ambas listas"
echo " -c Version Interactiva"
echo " -------------------------------------------------"
echo " Acciones sobre el servicio"
echo " -e Estado del Squid-Proxy"
echo " -r Reiniciar Squid-Proxy"
echo " -rc Releer configuracion"
echo " -------------------------------------------------"
echo " --conf Configurar Visual Squix"
echo " --man Manual de uso"
echo " -------------------------------------------------"
echo " Reporte de Bug's a: gaccardo@gmail.com"
}
case "$1" in
-v)
echo "$titulo ---> Version: 1.0-0a"
exit
;;
-h)
clear
help
exit
;;
--man)
clear
less ayuda.txt
exit
;;
--help)
clear
help
exit
;;
-r)
clear
echo "$titulo!"
echo "Reiniciar proxi"
/etc/init.d/squid restart
;;
--conf)
clear
echo "$titulo"
echo "Configuración"
echo "Utilice su editor preferido y edite visual_squix, adentro encontrará la configuración"
exit
;;
-e)
clear
echo "$titulo"
estado=$(ps aufx | grep "squid" -c)
if [ "$estado" -ge "1" ]; then
echo "Estado: Funcionando"
else
echo "Estado: Detenido"
fi
;;
-rc)
clear
echo "$titulo"
echo "Releer configuracion del Proxi"
/etc/init.d/squid reload
;;
-q)
echo $titulo
echo "Quitar un bloqueo"
read -p "Seguro de desar quitar de la lista: $2 > SI - NO --> " sn
if [ "$sn" = "si" ]; then
grep "$2" -v "$prohi" > denegado_2.list
rm $prohi
cp denegado_2.list $prohi
rm denegado_2.list
elif [ "$sn" = "SI" ]; then
grep "$2" -v "$prohi" > denegado_2.list
rm $prohi
cp denegado_2.list $prohi
rm denegado_2.list
elif [ "$sn" = "no" ]; then
echo "Accion Cancelada"
elif [ "$sn" = "NO" ]; then
echo "Accion Cancelada"
fi
;;
-qp)
echo $titulo
echo "Quitar una web permitida"
read -p "Seguro de desar quitar de la lista: $2 > SI - NO --> " sn
if [ "$sn" = "si" ]; then
grep "$2" -v "$permi" > permitido_2.list
rm $permi
cp permitido_2.list $permi
rm permitido_2.list
elif [ "$sn" = "SI" ]; then
grep "$2" -v "$permi" > permitido_2.list
rm $permi
cp permitido_2.list $permi
rm permitido_2.list
elif [ "$sn" = "no" ]; then
echo "Accion Cancelada"
elif [ "$sn" = "NO" ]; then
echo "Accion Cancelada"
fi
;;
-l)
clear
echo $titulo
echo "Lista de bloqueos"
cat $prohi
;;
-lp)
clear
echo $titulo
echo "Lista de webs permitidas"
cat $permi
;;
-a)
clear
echo $titulo
echo "Agregar un bloqueo"
echo "$2" >> "$prohi"
echo "$2 Fue agredaga con exito"
;;
-ap)
clear
echo $titulo
echo "Agregar una web permitida"
echo "$2" >> "$permi"
echo "$2 Fue agredaga con exito"
;;
-b)
clear
w=$(grep "$2" "$prohi" -c)
echo $titulo
echo "Buscar Bloqueos"
if [ "$w" = "1" ]; then
echo -e $2 "\033[1;31m esta bloqueada\033[0;0m"
else
echo -e $2 "\033[1;33m no está bloqueada\033[0;0m"
fi
;;
-bp)
clear
w=$(grep "$2" "$prohi" -c)
echo $titulo
echo "Buscar una web permitida"
if [ "$w" = "1" ]; then
echo -e $2 "\033[1;31m esta permitida\033[0;0m"
else
echo -e $2 "\033[1;33m no está permitida\033[0;0m"
fi
;;
--backup)
clear
echo $titulo
echo "Generando los backup's"
cp $prohi $back/prohi.list.bk
cp $permi $back/permi.list.bk
clear
echo "."
sleep 1
clear
echo ".."
sleep 1
clear
echo "..."
sleep 1
clear
echo "...."
sleep 1
clear
echo "....."
sleep 1
clear
echo ".....OK"
sleep 1
clear
echo "backup's generados"
;;
-c)
$dialog --backtitle "$titulo" --title "Bienvenido" \
--infobox "Bienvenido a SquiX V1.0-0a Manejador de Squid-Proxi" 10 35
sleep 3
$dialog --backtitle "$titulo" --title "Menu Principal" \
--menu "Opciones" 20 40 8 \
"Buscar" "" \
"Agregar" "" \
"Quitar" "" \
"Lista" "" \
"Servicio" "" \
"Imprimir" "" \
"Ayuda" "" \
"Salir" "" 2> var1
mante=$(cat var1)
if [ "$mante" = "Salir" ]; then
$dialog --backtitle "$titulo" --title "Gracias por usar SquiX" \
--msgbox "Gracias por usar SquiX V1.0" 10 35
clear
fi
while [ "$mante" != "Salir" ]; do
if [ "$mante" = "Buscar" ]; then
$dialog --backtitle "$titulo" --title "Menu Buscar" \
--menu "Buscar en..." 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> var2
mante2=$(cat var2)
while [ "$mante2" != "Volver" ]; do
if [ "$mante2" = "Denegadas" ]; then
$dialog --backtitle "$titulo" --title "Buscar: " \
--inputbox "Ingrese una Web" 10 35 2> v2
web=$(cat v2)
result=$(grep $web $prohi -c)
if [ "$result" = "1" ]; then
$dialog --backtitle "$titulo" --title "ENCONTRADA" \
--msgbox "Página web encontrada" 10 35
elif [ "$result" = "0" ]; then
$dialog --backtitle "$titulo" --title "NO ENCONTRADA" \
--msgbox "Página web NO encontrada" 10 35
fi
elif [ "$mante2" = "Permitidas" ]; then
$dialog --backtitle "$titulo" --title "Buscar: " \
--inputbox "Ingrese una Web" 10 35 2> v2
web=$(cat v2)
result=$(grep $web $permi -c)
if [ "$result" = "1" ]; then
$dialog --backtitle "$titulo" --title "ENCONTRADA" \
--msgbox "Página web encontrada" 10 35
elif [ "$result" = "0" ]; then
$dialog --backtitle "$titulo" --title "NO ENCONTRADA" \
--msgbox "Página web NO encontrada" 10 35
fi
fi
$dialog --backtitle "$titulo" --title "Menu Buscar" \
--menu "Buscar en..." 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> var2
mante2=$(cat var2)
done
elif [ "$mante" = "Agregar" ]; then
$dialog --backtitle "$titulo" --title "Agregar Webs" \
--menu "Agregar" 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> v3
mante3=$(cat v3)
while [ "$mante3" != "Volver" ]; do
if [ "$mante3" = "Denegadas" ]; then
$dialog --backtitle "$titulo" --title "Denegadas" \
--inputbox "Agregar" 10 35 2> v4
web=$(cat v4)
result=$(grep $web $prohi -c)
if [ "$result" = "1" ]; then
$dialog --backtitle "$titulo" --title "ERROR" \
--msgbox "La página ya fue agregada" 10 35
else
echo "$web" >> "$prohi"
fi
elif [ "$mante3" = "Permitidas" ]; then
$dialog --bactitle "$titulo" --title "Permitidas" \
--msgbox "Ya vuelvo" 10 35
fi
$dialog --backtitle "$titulo" --title "Agregar Webs" \
--menu "Agregar" 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> v3
mante3=$(cat v3)
done
elif [ "$mante" = "Lista" ]; then
$dialog --backtitle "$titulo" --title "Lista de webs" \
--textbox $prohi 25 55
elif [ "$mante" = "Servicio" ]; then
$dialog --backtitle "$titulo" --title "Menu Buscar" \
--menu "Buscar en..." 20 40 8 \
"Estado" "" \
"Reiniciar" "" \
"Reload" "" \
"Volver" "" 2> var2
mante2=$(cat var2)
while [ "$mante2" != "Volver" ]; do
if [ "$mante2" = "Estado" ]; then
estado=$(ps aufx | grep "squid" -c)
if [ "$estado" -ge "1" ]; then
status="Funcionando"
else
status="Detenido"
fi
$dialog --backtitle "$titulo" --title "Proxy-Server Squid" \
--msgbox "Estado: $status" 10 35
elif [ "$mante2" = "Reiniciar" ]; then
/etc/init.d/squid restart
$dialog --backtitle "$titulo" --title "Proxy-Server Squid" \
--msgbox "Reinicio Exitoso" 10 35
elif [ "$mante2" = "Reload" ]; then
/etc/init.d/squid reload
$dialog --backtitle "$titulo" --title "Proxy-Server Squid" \
--msgbox "Reconfiguración exitosa" 10 35
fi
$dialog --backtitle "$titulo" --title "Menu Buscar" \
--menu "Buscar en..." 20 40 8 \
"Estado" "" \
"Reiniciar" "" \
"Reload" "" \
"Volver" "" 2> var2
mante2=$(cat var2)
done
elif [ "$mante" = "Ayuda" ]; then
$dialog --backtitle "$titulo" --title "Ayuda" \
--textbox "ayuda.txt" 30 58
elif [ "$mante" = "Quitar" ]; then
$dialog --backtitle "$titulo" --title "Quitar Webs" \
--menu "Quitar" 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> v3
mante3=$(cat v3)
while [ "$mante3" != "Volver" ]; do
if [ "$mante3" = "Denegadas" ]; then
$dialog --backtitle "$titulo" --title "Denegadas" \
--inputbox "Quitar" 10 35 2> v4
web=$(cat v4)
grep "$web" -v "$prohi" > denegado_2.list
rm $prohi
cp denegado_2.list $prohi
rm denegado_2.list
elif [ "$mante3" = "Permitidas" ]; then
grep "$2" -v "$permi" > permitido_2.list
rm $permi
cp permitido_2.list $permi
rm permitido_2.list
fi
$dialog --backtitle "$titulo" --title "Quitar Webs" \
--menu "Quitar" 20 40 8 \
"Denegadas" "" \
"Permitidas" "" \
"Volver" "" 2> v3
mante3=$(cat v3)
done
elif [ "$mante" = "Imprimir" ]; then
$dialog --backtitle "$titulo" --title "Imprimir" \
--msgbox "Imprimir cualquiera de las 2 listas" 10 35
fi
$dialog --backtitle "$titulo" --title "Menu Principal" \
--menu "Opciones" 20 40 8 \
"Buscar" "" \
"Agregar" "" \
"Quitar" "" \
"Lista" "" \
"Servicio" "" \
"Imprimir" "" \
"Ayuda" "" \
"Salir" "" 2> var1
mante=$(cat var1)
if [ "$mante" = "Salir" ]; then
$dialog --backtitle "$titulo" --title "Gracias por usar SquiX" \
--msgbox "Gracias por usar SquiX V1.0-0a" 10 35
clear
fi
done
;;
*)
if [ "$1" = "" ]; then
clear
echo " Debes ingresar una opcion"
else
clear
echo " $1: Opcion no reconocida"
fi
help
exit
;;
esac
# Este programa es Software Libre. Podés hacer con el lo que quieras!!!
# Bug's a Guido Accardo <gaccardo@gmail.com>, www.guidoaccardo.com.ar, www.cabezza.com.ar
Si modificás el código, agregá un comentario de lo que hiciste para que todos podamos saber
- Modificaciones:
[editar]
Archivo de ayuda
------------- Ayuda de Visual Squix --------------- Visual Squix es un script diseñado para manejar el cache-proxy Squid. El script fue diseñado principal- mente para el usuario sin muchos conocimientos, ya que Visual Squix solo "emula" funciones de edición y comandos ya existentes. -------------- Requerimientos --------------------- Para la sección visual: dialog o kdialog Para la sección entrada standard: ninguna --------------------------------------------------- Visual Squix fue diseñado dando por hecho que el usuario ha creado 2 reglas de acls. Bloqueos y Permisos.
[editar]
Utilizacion
El código del script debe ser copiado y pegado en un archivo llamado visual_squix (aunque no es necesario usar ese nombre). El mismo debes tener permisos de escritura y ejecución solo como root (chmod 744).
Recuerden que es Software Libre, pueden hacer con el lo que quieran