Bom dia amigos
Pesquisei muito aqui no fórum e no google...
Fiquei preocupado pelo Zentyal não oferecer uma forma simples de bloqueio por horário.
Muitas vezes o que o cliente quer é simplesmente bloquear alguns sites no horario do trabalho e liberá-los fora desse horário.
Então resolvi colocar a mão na massa.
Configurei o filtro padrão do Zentyal para bloquear o facebook por exemplo...
Então criei dois shell scripts:
/usr/local/bin/outofwork.sh:
#!/bin/bash
mv /etc/dansguardian/lists/bannedsitelist1 /root/dansguardian-bkp
touch /etc/dansguardian/lists/bannedsitelist1
killall -HUP dansguardian
e
/usr/local/bin/inofwork.sh:
#!/bin/bash
mv /root/dansguardian-bkp/bannedsitelist1 /etc/dansguardian/lists
service zentyal squid restart
O Zentyal usa o Dansguardian e salva no /etc/dansguardian/bannedsitelist1, os sites que vão sendo adicionados no filtro padrão do Zentyal.
O que o script outofwork.sh faz é simplesmente move o /etc/dansguardian/bannedsitelist1 para o diretorio /root/dansguardian-bkp, cria um arquivo em branco do bannedsitelist1 e reinicia os processos do Dansguardian, como comando killall -HUP dansguardian.
O script inofwork.sh faz o contrario ou seja, ele volta o backup em /root/dansguardian-bkp para o local original e reinicia o squid pelo Zentyal.
Agendei esses comandos no crontab assim:
root@ubuntu:/usr/local/bin# crontab -l
# m h dom mon dow command
#
# Tarefa para liberar sites no horario de almoço
00 01 * * * /usr/local/bin/outofwork.sh
59 11 * * * /usr/local/bin/outofwork.sh
59 17 * * * /usr/local/bin/outofwork.sh
# Tarefa para bloquear sites durante o expediente
59 07 * * * /usr/local/bin/inofwork.sh
59 13 * * * /usr/local/bin/inofwork.sh
E voìla... funcionou como um relógio...
Abraços