#!/bin/sh
# Cache script by Washington Rodrigues 2011 MOD #
. /lib/system-ulimit
. /lib/system-functions
. /etc/brazilfw/brazilfw.cfg
. /etc/brazilfw/custom/squid.cfg
DANSGUARDIAN="/usr/local/sbin/dansguardian"
DANSGUARDIAN_PID="/var/run/dansguardian.pid"
SQUID="/usr/local/sbin/squid"
SQUID_PID="/var/run/squid.pid"
SQUID_ACL="/etc/brazilfw/custom/squid.acl"
SQUID_OUT="/etc/brazilfw/custom/squid.out"
SQUID_STATIC="/var/run/squid.static"
SQUID_DYNAMIC="/var/run/squid.dynamic"
SQUID_S="/etc/init.d/squid"
SQUID_CONF="/usr/local/squid/etc/squid.conf"
SARG_CONFIG="/etc/sarg/sarg.conf"
SARG="/usr/local/sbin/sarg"
WEBALIZER="/usr/local/sbin/webalizer"
WEBALIZER_CONFIG="/etc/sarg/webalizer.conf"
[ -z "$SQUID_PARTITION" ] && SQUID_PARTITION="/partition"
[ -z "$SQUID_LOG_PARTITION" ] && SQUID_LOG_PARTITION="/partition"
[ -z "$MAXIMUM_OBJECT_SIZE" ] && MAXIMUM_OBJECT_SIZE="500000"
[ -z "$MAXIMUM_RAM_CACHE_SIZE" ] && MAXIMUM_RAM_CACHE_SIZE="16"
[ -z "$MAXIMUM_OBJECT_SIZE_MEMORY" ] && MAXIMUM_OBJECT_SIZE_MEMORY="256"
[ -z "$MAXIMUM_CACHE_SIZE" ] && MAXIMUM_CACHE_SIZE="$(df $SQUID_PARTITION | awk -vP="$SQUID_PARTITION" '{if(P==$6){print int($2*0.6/1024)}}')"
[ -z "$REPORT_FOLDER" ] && REPORT_FOLDER="/partition"
[ "$CACHE_LOG" != "yes" ] && SQUID_CACHE_LOG="/dev/null" || SQUID_CACHE_LOG="$SQUID_LOG_PARTITION/squid/logs/cache.log"
[ "$WEB_CONTENT_FILTER" = "yes" ] && { HTTP_PORT="http_port 127.0.0.1:3129";TPORT=3128; } || { HTTP_PORT="$(echo -e "http_port 3128\nhttp_port 3129 intercept")";TPORT=3129; }
[ "$TPROXY" = "yes" ] && TPROXY="http_port 3130 tproxy" || TPROXY=""
DIRECTORY="$(echo $MAXIMUM_CACHE_SIZE | awk '{print int($1*0.002383604)}')"
create_config() {
[ "$(exist_cron "$SQUID_S rotate")" = "true" ] && del_cron "$SQUID_S rotate"
[ "$SARG_GRAPHS" = "yes" ] && RDAY="1" || RDAY="*"
add_cron "0 0 $RDAY * * $SQUID_S rotate"
reload_cron
echo "$HTTP_PORT
$TPROXY
#hierarchy_stoplist cgi-bin ? # Ele força a usar o cahce do squid nao permitindo consutas em outros caches ^^
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
acl browser_detect req_header Accept-Language [a-zA-Z;]
acl manager proto cache_object
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 localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
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
$([ -e "$SQUID_ACL" ] && cat $SQUID_ACL)
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access allow all
http_reply_access allow all
icp_access allow all
$([ "$HIDE_PROXY" = "yes" ] && echo -e "via off\nforwarded_for transparent")
$([ -e "$SQUID_STATIC" ] && cat $SQUID_STATIC)
$([ -e "$SQUID_DYNAMIC" ] && cat $SQUID_DYNAMIC)
visible_hostname $HOSTNAME
cache_dir diskd $SQUID_PARTITION/squid/cache $MAXIMUM_CACHE_SIZE $DIRECTORY 256 Q1=72 Q2=64
coredump_dir $SQUID_PARTITION/squid/cache
access_log $SQUID_LOG_PARTITION/squid/logs/access.log
cache_store_log none
cache_log $SQUID_CACHE_LOG
pid_filename $SQUID_PID
cache_mem $MAXIMUM_RAM_CACHE_SIZE MB
maximum_object_size $MAXIMUM_OBJECT_SIZE KB
minimum_object_size 0 KB
maximum_object_size_in_memory $MAXIMUM_OBJECT_SIZE_MEMORY KB
cache_replacement_policy heap LFUDA
half_closed_clients off
server_persistent_connections off
qos_flows local-hit=0x30" > $SQUID_CONF
}
dans_log_rotate() {
LOG=$SQUID_LOG_PARTITION/squid/logs/access.log
$DANSGUARDIAN -q
while [ -n "$(pidof dansguardian)" ]; do
sleep 1
done
for n in $(seq 8 -1 0); do
[ -e "$LOG.$n" ] && mv $LOG.$n $LOG.$((n+1))
done
mv $LOG $LOG.0
$DANSGUARDIAN
}
clean_cron() {
del_cron "$SQUID_S autoreport"
del_cron "$SQUID_S rotate"
reload_cron
}
create_report() {
[ ! -e "$REPORT_FOLDER/squid-report" ] && mkdir -p $REPORT_FOLDER/squid-report >/dev/null 2>&1
sed -i s,access_log.*,"access_log $SQUID_LOG_PARTITION/squid/logs/access.log", $SARG_CONFIG
sed -i s,output_dir.*,"output_dir $REPORT_FOLDER/squid-report", $SARG_CONFIG
[ -n "$SARG_LONG_URL" ] && sed -i s,long_url.*,"long_url $SARG_LONG_URL", $SARG_CONFIG
[ -n "$SARG_GRAPHS" ] && sed -i s,graphs.*,"graphs $SARG_GRAPHS", $SARG_CONFIG
sed -i s,LogFile.*,"LogFile $SQUID_LOG_PARTITION/squid/logs/access.log", $WEBALIZER_CONFIG
sed -i s,OutputDir.*,"OutputDir $REPORT_FOLDER/squid-report", $WEBALIZER_CONFIG
[ "$REPORT_DELETE_AFTER_DAYS" != "0" -a "$SARG_GRAPHS" != "yes" ] && find $REPORT_FOLDER/squid-report/ -mtime +$REPORT_DELETE_AFTER_DAYS -type d -maxdepth 1 -exec rm -fr {} \; >/dev/null 2>&1
rm -fr /var/htdocs/webadmin/report >/dev/null 2>&1
ln -sf $REPORT_FOLDER/squid-report /var/htdocs/webadmin/report
case $SQUID_REPORT in
sarg) $SARG ;;
webalizer) $WEBALIZER -c $WEBALIZER_CONFIG ;;
esac
if [ "$SQUID_AUTO_CRON" = "yes" ]; then
if [ "$(exist_cron "$SQUID_S autoreport")" = "false" ]; then
add_cron "01 * * * * $SQUID_S autoreport"
reload_cron
fi
else
del_cron "$SQUID_S autoreport"
fi
}
clean_proxy() {
iptables -t nat -F tproxy >/dev/null 2>&1
iptables -t mangle -F tproxy >/dev/null 2>&1
iptables -t mangle -F DIVERT >/dev/null 2>&1
}
proxy() {
clean_proxy
if [ -e "$SQUID_OUT" ]; then
readconfig $SQUID_OUT | while read ADDRESS; do
iptables -t nat -A tproxy -d $ADDRESS -j RETURN >/dev/null 2>&1
[ "$TPROXY" = "yes" ] && iptables -t mangle -A tproxy -d $ADDRESS -j RETURN >/dev/null 2>&1
done
fi
for LOCAL in $(getlocaldevices); do
iptables -t nat -A tproxy -p tcp -i $LOCAL --dport 80 -j REDIRECT --to-port $TPORT >/dev/null 2>&1
done
if [ "$TPROXY" = "yes" ]; then
iptables -t mangle -A DIVERT -j MARK --set-mark 1 >/dev/null 2>&1
iptables -t mangle -A DIVERT -j ACCEPT >/dev/null 2>&1
iptables -t mangle -A tproxy -p tcp -m socket -j DIVERT >/dev/null 2>&1
for LOCAL in $(getlocaldevices); do
iptables -t mangle -A tproxy -p tcp -i $LOCAL --dport 80 -j TPROXY --tproxy-mark 1 --on-port 3130 >/dev/null 2>&1
done
for IPS in $(return_invalide_ip); do
iptables -t mangle -I tproxy -s $IPS -j RETURN >/dev/null 2>&1
done
fi
}
create_cache_disk() {
echo -n "Creating cache/log directory... "
mkdir -p $SQUID_PARTITION/squid/cache >/dev/null 2>&1
mkdir -p $SQUID_LOG_PARTITION/squid/logs >/dev/null 2>&1
chown -R squid.root $SQUID_PARTITION/squid/cache >/dev/null 2>&1
chown -R squid.root $SQUID_LOG_PARTITION/squid/logs >/dev/null 2>&1
$SQUID -z >/dev/null 2>&1
echo "done"
}
delete_cache_disk() {
echo -n "Deleting cache directory... "
rm -fr $SQUID_PARTITION/squid/cache >/dev/null 2>&1
echo "done"
}
stop() {
if [ -e "$SQUID_PID" ]; then
echo -n "Stopping squid... "
$DANSGUARDIAN -q >/dev/null 2>&1
while [ -n "$(pidof dansguardian)" ]; do
sleep 1
done
killall cache-stats >/dev/null 2>&1
kill -9 $(cat $SQUID_PID) >/dev/null 2>&1
sleep 1
rm -fr $SQUID_PID >/dev/null 2>&1
rm -fr $DANSGUARDIAN_PID >/dev/null 2>&1
rm -fr $SQUID_CONF >/dev/null 2>&1
clean_cron
clean_proxy
echo "done"
fi
}
start() {
if [ -e "$SQUID_PID" ]; then
echo "Squid already running."
else
create_config
[ ! -d "$SQUID_PARTITION/squid/cache/00" -o ! -d "$SQUID_LOG_PARTITION/squid/logs" ] && create_cache_disk
echo -n "Starting squid... "
create_report
$SQUID -X >/dev/null 2>&1
[ "$WEB_CONTENT_FILTER" = "yes" ] && $DANSGUARDIAN >/dev/null 2>&1
proxy
/usr/local/sbin/cache-stats >/dev/null 2>&1 &
echo "done"
fi
}
renew_cache_disk() {
[ -e "$SQUID_PID" ] && { stop;START=1; }
delete_cache_disk
create_cache_disk
[ "$START" = 1 ] && start
}
reload() {
if [ -e "$SQUID_PID" ]; then
echo -n "Reloading squid... "
create_config
$SQUID -k reconfigure >/dev/null 2>&1
[ "$WEB_CONTENT_FILTER" = "yes" ] && [ -z "$(pidof dansguardian)" ] && $DANSGUARDIAN >/dev/null 2>&1 || $DANSGUARDIAN -r >/dev/null 2>&1
create_report
rm -fr /var/run/squid.reload >/dev/null 2>&1
proxy
echo "done"
else
echo "Squid need startup first."
fi
}
rotate() {
if [ ! -e "/tmp/squid.rotate" ]; then
touch /tmp/squid.rotate
create_report
[ "$WEB_CONTENT_FILTER" = "yes" ] && dans_log_rotate || $SQUID -k rotate >/dev/null 2>&1
rm -fr /tmp/squid.rotate
fi
}
[ "$CACHE_DISK" != "yes" ] && { stop;exit; }
case $1 in
start) start;;
stop) stop;;
reload|restart) reload;;
cachedir) renew_cache_disk;;
autoreport|report) create_report;;
rotate) rotate;;
reload-proxy) echo -n "Reloading proxy rules... ";proxy;echo "done";;
*) echo;echo "usage: squid { start | reload | stop | cachedir | report | rotate | reload-proxy }";echo;;
esac
#Novo Squid
rm /etc/init.d/007-squid # Apaga o original que contem a regra que bloquei a leitura de outros caches.
cp /etc/brazilfw/custom/007-squid /etc/init.d/007-squid # Copia o novo squid com a liberação de leitura em outros caches.
chmod 755 /etc/init.d/007-squid # Permite execultar.
#Novo Squid
rm /etc/init.d/007-squid
cp /etc/brazilfw/custom/007-squid /etc/init.d/007-squid
chmod 755 /etc/init.d/007-squid
http_port 127.0.0.1:3129
#hierarchy_stoplist cgi-bin ?
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
acl browser_detect req_header Accept-Language [a-zA-Z;]
acl manager proto cache_object
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 localnet src 10.0.0.0/8
acl localnet src 172.16.0.0/12
acl localnet src 192.168.0.0/16
acl localnet src fc00::/7
acl localnet src fe80::/10
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
#Sem cache
acl semcache url_regex -i "/etc/brazilfw/custom/squid.out"
cache deny semcache
always_direct allow semcache
# MSN Messenger
acl BloqueaMsn url_regex -i messenger.mail.live.com messenger.live.com
http_access deny BloqueaMsn
#Thunder Cache
acl thunder_lst url_regex -i "/etc/brazilfw/thunder/thunder.lst"
cache deny thunder_lst
cache_peer 127.0.0.1 parent 8080 0 proxy-only no-digest
dead_peer_timeout 2 seconds
cache_peer_access 127.0.0.1 allow thunder_lst
cache_peer_access 127.0.0.1 deny all
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all
visible_hostname prefeitura
cache_dir diskd /partition/squid/cache 281491 670 256 Q1=72 Q2=64
coredump_dir /partition/squid/cache
access_log /partition/squid/logs/access.log
cache_store_log none
cache_log /dev/null
pid_filename /var/run/squid.pid
cache_mem 16 MB
maximum_object_size 500000 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 256 KB
cache_replacement_policy heap LFUDA
half_closed_clients off
server_persistent_connections off
qos_flows local-hit=0x30
ailtojr escreveu:Eu gostaria de sabe se alguns de vc tem o plugin do megavideo, avast , avg funcionado blz pq o meu ñ funfa
pq eu queria sabe qual plugin realmente funciona
Edson, você falou tudo.edsonjbueno escreveu:Testa todos os que não funcionar, avisa ao desenvolvedor, vc estara ajundando ele com certeza.
Ailto, é como o Edson falou. Esse addon está estável, mas ainda não foram revisados os plugins. É difícil dizer o que funciona e não funciona, tem que ir testando e eu agradeço se você me informar sobre os seus testes.ailtojr escreveu:Eu gostaria de sabe se alguns de vc tem o plugin do megavideo, avast , avg funcionado blz pq o meu ñ funfa
/etc/brazilfw/custom/bfwcache.acl
/etc/init.d/squid reload
xdigo escreveu:previsão de lansamento versão 64 bits?
Att. Rodrigo
não.
o pessoal ajuda aqui de forma voluntária e nos tempos livres que tem.
não dá pra dar previsão.
gsvl escreveu:alguem ta com problema do bfwcahe parado.
percebi que o addon para com frequencia.
gsvl escreveu:alguem ta com problema do bfwcahe parado.
percebi que o addon para com frequencia.
A.Sarti escreveu:gsvl escreveu:alguem ta com problema do bfwcahe parado.
percebi que o addon para com frequencia.
Boa noite a todos!!
estou percebendo isso tambem, ele para de fazer o cache, tento restartar ele mas nao volta, so reiniciando mesmo.
tenho outro amigo com o mesmo problema, coencidencia ou nao, ambos tinha o TC instalado, vou tentar formatar e fazer uma instalação zerada.
#Novo Squid
rm /etc/init.d/007-squid #Apaga original
cp /etc/brazilfw/custom/squid /etc/init.d/007-squid #Copia o squid
chmod 755 /etc/init.d/007-squid # Perminte execultar
/etc/init.d/squid restart # AQUI ELE VAI PEGAR O SQUID PADRAO DO BFW 3.0.253 e execultar as regras dele sem o hierarchy_stoplist cgi-bin ? , fazendo com que funcione.
/etc/init.d/bfwcache start # Aqui ele starta o cache , se usar outros... e so mudar o nome kkkk ^^.
NeoRickHunter escreveu:A.Sarti escreveu:gsvl escreveu:alguem ta com problema do bfwcahe parado.
percebi que o addon para com frequencia.
Boa noite a todos!!
estou percebendo isso tambem, ele para de fazer o cache, tento restartar ele mas nao volta, so reiniciando mesmo.
tenho outro amigo com o mesmo problema, coencidencia ou nao, ambos tinha o TC instalado, vou tentar formatar e fazer uma instalação zerada.
Quanto a questão do TC, não se aplica ao meu caso, pois instalei o BFW e logo após, o BfwCache.
#NOVO SQUID
rm /etc/init.d/007-squid
cp /etc/brazilfw/custom/007-squid /etc/init.d/007-squid
chmod 755 /etc/init.d/007-squid
A.Sarti escreveu:gsvl escreveu:alguem ta com problema do bfwcahe parado.
percebi que o addon para com frequencia.
estou percebendo isso tambem, ele para de fazer o cache, tento restartar ele mas nao volta, so reiniciando mesmo.
tenho outro amigo com o mesmo problema, coencidencia ou nao, ambos tinha o TC instalado, vou tentar formatar e fazer uma instalação zerada.
Não é exatamente uma limitação para número de usuários, e sim para threads.george-gomes escreveu:Sim outra digo da comprou dito na primeira parte do tópico , gosta ria de saber
Ate quantos usuários on libe esse Bfw ache suporta? Já que o mesmo esta com poucos processos liberados
fabiovnb escreveu:Bruno, parabens pela iniciativa e otimo trabalho, parabens a todo pessoal envolvido, to com vontade de por o bfw cache pra rodar, mas to esperando pelo funcionamento em 64 bits, afinal são mais de 1200 clientes simultaneos, não da pra arriscar 4 Gb de ram, tem que ser de 8 pra cima, e dai so com 64 bits, tenho a maquina certa aqui disponivel, um quad i7 com 12 Gb de ram, 12 TB de HD, duas rede Gbyt, um abraço a todos parabens mais uma vez.
fabiovnb escreveu:Bruno, parabens pela iniciativa e otimo trabalho, parabens a todo pessoal envolvido, to com vontade de por o bfw cache pra rodar, mas to esperando pelo funcionamento em 64 bits, afinal são mais de 1200 clientes simultaneos, não da pra arriscar 4 Gb de ram, tem que ser de 8 pra cima, e dai so com 64 bits, tenho a maquina certa aqui disponivel, um quad i7 com 12 Gb de ram, 12 TB de HD, duas rede Gbyt, um abraço a todos parabens mais uma vez.
brunovescovi escreveu:Bom dia, pessoal.Não é exatamente uma limitação para número de usuários, e sim para threads.george-gomes escreveu:Sim outra digo da comprou dito na primeira parte do tópico , gosta ria de saber
Ate quantos usuários on libe esse Bfw ache suporta? Já que o mesmo esta com poucos processos liberados
Cada thread é responsável por uma requisição de um usuário. Um só usuário pode consumir 10 threads no cache, mas outros usuários pordem consumir 1 thread, e outros usuários podem ainda navegar e não acessarem nenhuma das páginas que o BFW Cache guarda no cache, não gastando assim nenhuma thread.
Portanto o número de clientes varia de acordo com o perfil de acesso de cada um.
Um abraço.
brunovescovi escreveu:Bom dia, pessoal.
Já aconteceu de o BFW Cache parar comigo uma vez ou outra (é bem raro), mas na verdade não é o BFW Cache que está parado, é o Mysql que parou.
Eu nem fazia nada no BFW cache, só dava restart no mysql que voltava a mostrar o relatório novamente.
Na versão do BFW 3.0.252 nunca aconteceu comigo de o BFW Cache parar. Se vocês que perceberam isso pudessem conseguir um print do comando ps aux, seria uma boa para nós tentarmos achar o problema.
Um abraço a todos e muito obrigado pelos relatos.
eth2: link down
8139too 0000:02:05.0: eth1: link up, 100Mbps, full-duplex, lpa 0x41E1
eth2: link up, 100Mbps, full-duplex
bfwcache[23037]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23038]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23039]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23788]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23789]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23790]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23791]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23792]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23793]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23794]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[23795]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[24044]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
bfwcache[24045]: segfault at b7874000 ip b75fd9f4 sp bf84a834 error 4 in libc-2.12.2.so[b7587000+144000]
f0dz escreveu:que provavel que seja do squid.
Outro erro que tive foi ai tentar ativar QoS
Trava tudo e tenho que ligar e desligar a maquina.
Veja se consegue, por favor, fazer esse teste com outros navegadores e coloque aqui o resultado para nós.mxcyber escreveu:as maquinas clientes estao com explore 8
Voltar para Certified Addons of Project BFW
Usuários navegando neste fórum: Nenhum usuário registrado e 2 visitantes