| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575 |
- #!/bin/bash
- lshost(){
- n=1
- for i in `cat $payload|awk -F "/" '{print $1,$2,$3,$4}'`; do
- echo -e " $(msg -verd "$n)") $(msg -verm2 ">") $(msg -teal "$i")"
- pay[$n]=$i
- let n++
- done
- }
- lsexpre(){
- n=1
- while read line; do
- echo -e " $(msg -verd "$n)") $(msg -verm2 ">") $(msg -teal "$line")"
- pay[$n]=$line
- let n++
- done <<< $(cat $payload2)
- }
- fun_squid(){
- if [[ -e /etc/squid/squid.conf ]]; then
- var_squid="/etc/squid/squid.conf"
- mipatch="/etc/squid"
- elif [[ -e /etc/squid3/squid.conf ]]; then
- var_squid="/etc/squid3/squid.conf"
- mipatch="/etc/squid3"
- fi
- [[ -e $var_squid ]] && {
- clear
- msg -bar
- print_center -ama "$(fun_trans "REMOVIENDO SQUID")"
- print_center -ama "Aguarde un momento!!!"
- msg -bar
- [[ -d "/etc/squid" ]] && {
- service squid stop > /dev/null 2>&1
- apt-get remove squid -y >/dev/null 2>&1
- apt-get purge squid -y >/dev/null 2>&1
- rm -rf /etc/squid >/dev/null 2>&1
- }
- [[ -d "/etc/squid3" ]] && {
- service squid3 stop > /dev/null 2>&1
- apt-get remove squid3 -y >/dev/null 2>&1
- apt-get purge squid3 -y >/dev/null 2>&1
- rm -rf /etc/squid3 >/dev/null 2>&1
- }
- clear
- msg -bar
- print_center -verd "$(fun_trans "Squid removido")"
- [[ -e $var_squid ]] && rm -rf $var_squid
- [[ -e /etc/dominio-denie ]] && rm -rf /etc/dominio-denie
- enter
- return 1
- }
- clear
- msg -bar
- print_center -ama "$(fun_trans "INSTALADOR SQUID ADMRufu")"
- msg -bar
- print_center -ama " $(fun_trans "Seleccione los puertos en orden secuencial")"
- print_center -ama " Ejemplo: \e[32m80 8080 8799 3128"
- msg -bar
- while [[ -z $PORT ]]; do
- msg -ne " $(fun_trans "Digite los Puertos:") "; read PORT
- tput cuu1 && tput dl1
- [[ $(mportas|grep -w "${PORT}") = "" ]] && {
- echo -e "\033[1;33m $(fun_trans "Puerto de squid:")\033[1;32m ${PORT} OK"
- } || {
- echo -e "\033[1;33m $(fun_trans "Puerto de squid:")\033[1;31m ${PORT} FAIL" && sleep 2
- tput cuu1 && tput dl1
- unset PORT
- }
- done
- msg -bar
- print_center -ama " $(fun_trans "INSTALANDO SQUID")"
- msg -bar
- fun_bar "apt-get install squid3 -y"
- msg -bar
- print_center -ama " $(fun_trans "INICIANDO CONFIGURACION")"
-
- cat <<-EOF > /etc/dominio-denie
- .ejemplo.com/
- EOF
- cat <<-EOF > /etc/exprecion-denie
- torrent
- EOF
- unset var_squid
- if [[ -d /etc/squid ]]; then
- var_squid="/etc/squid/squid.conf"
- elif [[ -d /etc/squid3 ]]; then
- var_squid="/etc/squid3/squid.conf"
- fi
- ip=$(fun_ip)
- cat <<-EOF > $var_squid
- #Configuracion SquiD
- acl localhost src 127.0.0.1/32 ::1
- acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1
- acl SSL_ports port 443
- acl Safe_ports port 80
- acl Safe_ports port 21
- acl Safe_ports port 443
- acl Safe_ports port 70
- acl Safe_ports port 210
- acl Safe_ports port 1025-65535
- acl Safe_ports port 280
- acl Safe_ports port 488
- acl Safe_ports port 591
- acl Safe_ports port 777
- acl CONNECT method CONNECT
- acl SSH dst $ip-$ip/255.255.255.255
- acl exprecion-denie url_regex '/etc/exprecion-denie'
- acl dominio-denie dstdomain '/etc/dominio-denie'
- http_access deny exprecion-denie
- http_access deny dominio-denie
- http_access allow SSH
- http_access allow manager localhost
- http_access deny manager
- http_access allow localhost
- #puertos
- EOF
- for pts in $(echo -e $PORT); do
- echo -e "http_port $pts" >> $var_squid
- [[ -f "/usr/sbin/ufw" ]] && ufw allow $pts/tcp &>/dev/null 2>&1
- done
- cat <<-EOF >> $var_squid
- http_access allow all
- coredump_dir /var/spool/squid
- refresh_pattern ^ftp: 1440 20% 10080
- refresh_pattern ^gopher: 1440 0% 1440
- refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
- refresh_pattern . 0 20% 4320
- #Nombre Squid
- visible_hostname ADMRufu
- EOF
- print_center -ama "$(fun_trans "REINICIANDO SERVICIOS")"
- [[ -d "/etc/squid/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid start > /dev/null 2>&1
- service squid restart > /dev/null 2>&1
- }
- [[ -d "/etc/squid3/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid3 start > /dev/null 2>&1
- service squid3 restart > /dev/null 2>&1
- }
- sleep 2s
- tput cuu1 && tput dl1
- print_center -verd "$(fun_trans "SQUID CONFIGURADO")"
- enter
- }
- add_host(){
- clear
- msg -bar
- print_center -ama "$(fun_trans "Hosts Actuales Dentro del Squid")"
- msg -bar
- lshost
- back
- while [[ $hos != \.* ]]; do
- msg -nazu " $(fun_trans "Digita un nuevo host"): " && read hos
- [[ $hos = 0 ]] && return 1
- tput cuu1 && tput dl1
- [[ $hos = \.* ]] && continue
- print_center -ama "$(fun_trans "El host deve comensar con") .punto.com"
- sleep 3s
- tput cuu1 && tput dl1
- done
- host="$hos/"
- [[ -z $host ]] && return 1
- if [[ `grep -c "^$host" $payload` -eq 1 ]]; then
- print_center -ama " $(fun_trans "El host ya exciste")"
- enter
- return 1
- fi
- echo "$host" >> $payload && grep -v "^$" $payload > /tmp/a && mv /tmp/a $payload
- clear
- msg -bar
- print_center -ama "$(fun_trans "Host Agregado con Exito")"
- msg -bar
- lshost
- msg -bar
- print_center -ama "Reiniciando servicios"
- if [[ ! -f "/etc/init.d/squid" ]]; then
- service squid3 reload &>/dev/null
- service squid3 restart &>/dev/null
- else
- /etc/init.d/squid reload &>/dev/null
- service squid restart &>/dev/null
- fi
- tput cuu1 && tput dl1
- tput cuu1 && tput dl1
- enter
- return 1
- }
- add_expre(){
- clear
- msg -bar
- print_center -ama "$(fun_trans "Expreciones regulares Dentro de Squid")"
- msg -bar
- lsexpre
- back
- while [[ -z $hos ]]; do
- msg -nazu " $(fun_trans "Digita una palabla"): " && read hos
- [[ $hos = 0 ]] && return 1
- tput cuu1 && tput dl1
- [[ $hos != "" ]] && continue
- print_center -ama "$(fun_trans "Escriba una palabla regular") Ej: torrent"
- sleep 3s
- tput cuu1 && tput dl1
- done
- host="$hos"
- [[ -z $host ]] && return 1
- if [[ `grep -c "^$host" $payload2` -eq 1 ]]; then
- print_center -ama " $(fun_trans "Exprecion regular ya exciste")"
- enter
- return 1
- fi
- echo "$host" >> $payload2 && grep -v "^$" $payload2 > /tmp/a && mv -f /tmp/a $payload2
- clear
- msg -bar
- print_center -ama "$(fun_trans "Exprecion regular Agregada con Exito")"
- msg -bar
- lsexpre
- msg -bar
- print_center -ama "Reiniciando servicios"
- if [[ ! -f "/etc/init.d/squid" ]]; then
- service squid3 reload &>/dev/null
- service squid3 restart &>/dev/null
- else
- /etc/init.d/squid reload &>/dev/null
- service squid restart &>/dev/null
- fi
- tput cuu1 && tput dl1
- tput cuu1 && tput dl1
- enter
- return 1
- }
- del_host(){
- unset opcion
- clear
- msg -bar
- print_center -ama "$(fun_trans "Hosts Actuales Dentro del Squid")"
- msg -bar
- lshost
- back
- while [[ -z $opcion ]]; do
- msg -ne " Eliminar el host numero: "
- read opcion
- if [[ ! $opcion =~ $numero ]]; then
- tput cuu1 && tput dl1
- print_center -verm2 "ingresa solo numeros"
- sleep 2s
- tput cuu1 && tput dl1
- unset opcion
- elif [[ $opcion -gt ${#pay[@]} ]]; then
- tput cuu1 && tput dl1
- print_center -ama "solo numeros entre 0 y ${#pay[@]}"
- sleep 2s
- tput cuu1 && tput dl1
- unset opcion
- fi
- done
- [[ $opcion = 0 ]] && return 1
- host="${pay[$opcion]}/"
- [[ -z $host ]] && return 1
- [[ `grep -c "^$host" $payload` -ne 1 ]] && print_center -ama "$(fun_trans "Host No Encontrado")" && return 1
- grep -v "^$host" $payload > /tmp/a && mv /tmp/a $payload
- clear
- msg -bar
- print_center -ama "$(fun_trans "Host Removido Con Exito")"
- msg -bar
- lshost
- msg -bar
- print_center -ama "Reiniciando servicios"
- if [[ ! -f "/etc/init.d/squid" ]]; then
- service squid3 reload &>/dev/null
- service squid3 restart &>/dev/null
- else
- /etc/init.d/squid reload &>/dev/null
- service squid restart &>/dev/null
- fi
- tput cuu1 && tput dl1
- tput cuu1 && tput dl1
- enter
- return 1
- }
- del_expre(){
- unset opcion
- clear
- msg -bar
- print_center -ama "$(fun_trans "Exprecion regular Dentro del Squid")"
- msg -bar
- lsexpre
- back
- while [[ -z $opcion ]]; do
- msg -ne " Eliminar la palabra numero: " && read opcion
- if [[ ! $opcion =~ $numero ]]; then
- tput cuu1 && tput dl1
- print_center -verm2 "ingresa solo numeros"
- sleep 2s
- tput cuu1 && tput dl1
- unset opcion
- elif [[ $opcion -gt ${#pay[@]} ]]; then
- tput cuu1 && tput dl1
- print_center -ama "solo numeros entre 0 y ${#pay[@]}"
- sleep 2s
- tput cuu1 && tput dl1
- unset opcion
- fi
- done
- [[ $opcion = 0 ]] && return 1
- host="${pay[$opcion]}"
- [[ -z $host ]] && return 1
- [[ `grep -c "^$host" $payload2` -ne 1 ]] && print_center -ama "$(fun_trans "Palabra No Encontrado")" && return 1
- grep -v "^$host" $payload2 > /tmp/a && mv -f /tmp/a $payload2
- clear
- msg -bar
- print_center -ama "$(fun_trans "Palabra Removida Con Exito")"
- msg -bar
- lsexpre
- msg -bar
- print_center -ama "Reiniciando servicios"
- if [[ ! -f "/etc/init.d/squid" ]]; then
- service squid3 reload &>/dev/null
- service squid3 restart &>/dev/null
- else
- /etc/init.d/squid reload &>/dev/null
- service squid restart &>/dev/null
- fi
- tput cuu1 && tput dl1
- tput cuu1 && tput dl1
- enter
- return 1
- }
- add_port(){
- if [[ -e /etc/squid/squid.conf ]]; then
- local CONF="/etc/squid/squid.conf"
- elif [[ -e /etc/squid3/squid.conf ]]; then
- local CONF="/etc/squid3/squid.conf"
- fi
- local miport=$(cat ${CONF}|grep -w 'http_port'|awk -F ' ' '{print $2}'|tr '\n' ' ')
- local line="$(cat ${CONF}|sed -n '/http_port/='|head -1)"
- local NEWCONF="$(cat ${CONF}|sed "$line c ADMR_port"|sed '/http_port/d')"
- title -ama "$(fun_trans "AGREGAR UN PUERTOS SQUID")"
- echo -e " $(msg -verm2 "Ingrese Sus Puertos:") $(msg -verd "80 8080 8799 3128")"
- msg -bar
- msg -ne " $(fun_trans " Digite Puertos"): " && read DPORT
- tput cuu1 && tput dl1
- TTOTAL=($DPORT)
- for((i=0; i<${#TTOTAL[@]}; i++)); do
- [[ $(mportas|grep -v squid|grep -v '>'|grep -w "${TTOTAL[$i]}") = "" ]] && {
- echo -e "\033[1;33m Puerto Elegido:\033[1;32m ${TTOTAL[$i]} OK"
- PORT="$PORT ${TTOTAL[$i]}"
- } || {
- echo -e "\033[1;33m Puerto Elegido:\033[1;31m ${TTOTAL[$i]} FAIL"
- }
- done
- [[ -z $PORT ]] && {
- msg -bar
- print_center -verm2 "Ningun Puerto Valido"
- return 1
- }
- PORT="$miport $PORT"
- rm ${CONF}
- while read varline; do
- if [[ ! -z "$(echo "$varline"|grep 'ADMR_port')" ]]; then
- for i in `echo $PORT`; do
- echo -e "http_port ${i}" >> ${CONF}
- ufw allow $i/tcp &>/dev/null 2>&1
- done
- continue
- fi
- echo -e "${varline}" >> ${CONF}
- done <<< "${NEWCONF}"
- msg -bar
- print_center -azu "$(fun_trans "AGUARDE REINICIANDO SERVICIOS")"
- [[ -d "/etc/squid/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid start > /dev/null 2>&1
- service squid restart > /dev/null 2>&1
- }
- [[ -d "/etc/squid3/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid3 start > /dev/null 2>&1
- service squid3 restart > /dev/null 2>&1
- }
- sleep 2s
- tput cuu1 && tput dl1
- print_center -verd "$(fun_trans "PUERTOS AGREGADOS")"
- enter
- return 1
- }
- del_port(){
- squidport=$(lsof -V -i tcp -P -n | grep -v "ESTABLISHED" |grep -v "COMMAND" | grep "LISTEN"|grep -E 'squid|squid3')
- if [[ $(echo "$squidport"|wc -l) -lt '2' ]];then
- clear
- msg -bar
- print_center -ama "Un solo puerto para eliminar\ndesea detener el servicio? "
- msg -bar
- msg -ne " opcion [S/N]: " && read a
- if [[ "$a" = @(S|s) ]]; then
- title -ama "AGUARDE DETENIEDO SERVICIOS"
- [[ -d "/etc/squid/" ]] && {
- if service squid stop &> /dev/null ; then
- print_center -verd "Servicio squid detenido"
- else
- print_center -verm2 "Falla al detener Servicio squid"
- fi
- }
- [[ -d "/etc/squid3/" ]] && {
- if service squid3 stop &> /dev/null ; then
- print_center -verd "Servicio squid3 detenido"
- else
- print_center -verm2 "Falla al detener Servicio squid3"
- fi
- }
- fi
- enter
- return 1
- fi
- if [[ -e /etc/squid/squid.conf ]]; then
- local CONF="/etc/squid/squid.conf"
- elif [[ -e /etc/squid3/squid.conf ]]; then
- local CONF="/etc/squid3/squid.conf"
- fi
- title -ama "Quitar un puertos squid"
- n=1
- while read i; do
- port=$(echo $i|awk -F ' ' '{print $9}'|cut -d ':' -f2)
- echo -e " $(msg -verd "[$n]") $(msg -verm2 ">") $(msg -azu "$port")"
- drop[$n]=$port
- num_opc="$n"
- let n++
- done <<< $(echo "$squidport")
- back
- while [[ -z $opc ]]; do
- msg -ne " opcion: "
- read opc
- tput cuu1 && tput dl1
- if [[ -z $opc ]]; then
- msg -verm2 " selecciona una opcion entre 1 y $num_opc"
- unset opc
- sleep 2
- tput cuu1 && tput dl1
- continue
- elif [[ ! $opc =~ $numero ]]; then
- msg -verm2 " selecciona solo numeros entre 1 y $num_opc"
- unset opc
- sleep 2
- tput cuu1 && tput dl1
- continue
- elif [[ "$opc" -gt "$num_opc" ]]; then
- msg -verm2 " selecciona una opcion entre 1 y $num_opc"
- sleep 2
- tput cuu1 && tput dl1
- unset opc
- continue
- fi
- done
- sed -i "/http_port ${drop[$opc]}/d" $CONF
- print_center -azu "$(fun_trans "AGUARDE REINICIANDO SERVICIOS")"
- [[ -d "/etc/squid/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid start > /dev/null 2>&1
- service squid restart > /dev/null 2>&1
- }
- [[ -d "/etc/squid3/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid3 start > /dev/null 2>&1
- service squid3 restart > /dev/null 2>&1
- }
- sleep 2s
- tput cuu1 && tput dl1
- print_center -verd "$(fun_trans "PUERTO REMOVIDO")"
- enter
- return 1
- }
- restart_squid(){
- title -ama "AGUARDE REINICIANDO SERVICIOS"
- [[ -d "/etc/squid/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid start > /dev/null 2>&1
- service squid restart > /dev/null 2>&1
- }
- [[ -d "/etc/squid3/" ]] && {
- service ssh restart > /dev/null 2>&1
- /etc/init.d/squid3 start > /dev/null 2>&1
- service squid3 restart > /dev/null 2>&1
- }
- sleep 2s
- tput cuu1 && tput dl1
- print_center -verd "$(fun_trans "SERVICIO REINICIANDO")"
- enter
- return 1
- }
- online_squid(){
- payload="/etc/dominio-denie"
- payload2="/etc/exprecion-denie"
- clear
- msg -bar
- print_center -ama "$(fun_trans "CONFIGURACION DE SQUID")"
- msg -bar
- menu_func "Bloquear un host" \
- "-bar3 Desbloquear un host" \
- "Bloquear exprecion regular" \
- "-bar3 Desbloquear exprecion regular" \
- "Agregar puerto" \
- "-bar Quitar puerto" \
- "\e[31mDesinstalar Squid" \
- "\e[33mReiniciar squid"
- back
- opcion=$(selection_fun 8)
- case $opcion in
- 1)add_host;;
- 2)del_host;;
- 3)add_expre;;
- 4)del_expre;;
- 5)add_port;;
- 6)del_port;;
- 7)fun_squid;;
- 8)restart_squid;;
- 0)return 1;;
- esac
- }
- if [[ -e /etc/squid/squid.conf ]]; then
- online_squid
- elif [[ -e /etc/squid3/squid.conf ]]; then
- online_squid
- else
- fun_squid
- return 1
- fi
|