quinta-feira, 19 de agosto de 2010

Como bloquear audio e vídeo usando squid

Para bloquear audio e vídeo (stream) pesquisei na web e com a ajuda de vários tutoriais obtive sucesso seguindo os passos abaixo:

No arquivo /etc/squid/squid.conf insira as linhas abaixo antes das liberações

#acl bloqueio de extensõde ráos online / arquivos de streaming:
acl streaming rep_mime_type -i "/etc/squid/mimeaplicativo"
acl proibir_musica urlpath_regex -i "/etc/squid/audioextension"
http_reply_access deny streaming
http_reply_access deny proibir_musica

Ainda no arquivo SQUID.CONF, insira a seguinte linha de comando, isso para que o squid possa gerar os logs adequados.

log_mime_hdrs on


# vi /etc/squid/mimeaplicativo

application/vnd.audiograph
audio/32kadpcm
audio/3gpp
audio/amr
audio/amr-wb
audio/annodex
audio/basic
audio/flac
audio/g.722.1
audio/l16
audio/mid
audio/midi
audio/mp4a-latm
audio/mpa-robust
audio/mpeg
audio/mpegurl
audio/ogg
audio/parityfec
audio/prs.sid
audio/telephone-event
audio/tone
audio/vnd.cisco.nse
audio/vnd.cns.anp1
audio/vnd.cns.inf1
audio/vnd.digital-winds
audio/vnd.everad.plj
audio/vnd.lucent.voice
audio/vnd.nortel.vbk
audio/vnd.nuera.ecelp4800
audio/vnd.nuera.ecelp7470
audio/vnd.nuera.ecelp9600
audio/vnd.octel.sbc
audio/vnd.qcelp
audio/vnd.rhetorex.32kadpcm
audio/vnd.vmx.cvsd
audio/x-aiff
audio/x-gsm
audio/x-mpegurl
audio/x-ms-wax
audio/x-ms-wma
audio/x-pn-realaudio
audio/x-pn-realaudio-plugin
audio/x-realaudio
audio/x-scpls
audio/x-sd2
audio/x-wav
application/x-videolan
video/3gpp
video/annodex
video/dl
video/dv
video/fli
video/flv
video/gl
video/mp4
video/mp4v-es
video/mpeg
video/ogg
video/parityfec
video/pointer
video/quicktime
video/vnd.fvt
video/vnd.motorola.video
video/vnd.motorola.videop
video/vnd.mpegurl
video/vnd.mts
video/vnd.nokia.interleaved-multimedia
video/vnd.vivo
video/x-flv
video/x-la-asf
video/x-matroska
video/x-mng
video/x-ms-asf
video/x-ms-asx
video/x-msvideo
video/x-ms-wm
video/x-ms-wmv
video/x-ms-wmx
video/x-ms-wvx
video/x-sgi-movie


# vi /etc/squid/audioextension

\.aif$
\.aifc$
\.aiff$
\.asf$
\.asx$
\.avi$
\.au$
\.m3u$
\.med$
\.mp3$
\.m1v$
\.mp2$
\.mp2v$
\.mpa$
\.mov$
\.mpe$
\.mpg$
\.mpeg$
\.ogg$
\.pls$
\.ram$
\.ra$
\.ram$
\.snd$
\.wma$
\.wmv$
\.wvx$
\.mid$
\.midi$
\.rmi$


Crie um Shell Script para ficar analisando os logs que serão registrados no squid, assim você terá sempre seu arquivo de bloqueio atualizado.

# vi /etc/squid/checa.sh

# =================
# Script para atualizacao
# de Bloqueio de Radio/Video
# on-line
# Author: Leandro Moreira
# Date: 04-24-2009
set -x
# =================
# Variaveis
# =================
PERL="/usr/bin/perl"
AUDIO=`$PERL -p -e "s/\\\r/\r/g;s/\\\n/\n/g" /var/log/squid/access.log | egrep -v 'text/html|text/xml' | grep -i "Content-Type:" | sed 's/;/ /g' | awk '{ print$2 } ' | sort -u | grep audio > /tmp/audio`
VIDEO=`$PERL -p -e "s/\\\r/\r/g;s/\\\n/\n/g" /var/log/squid/access.log | egrep -v 'text/html|text/xml' | grep -i "Content-Type:" | sed 's/;/ /g' | awk '{ print$2 } ' | sort -u | grep video > /tmp/video`
# ======================/

cat /tmp/audio >> /etc/squid/mimeaplicativo
cat /etc/squid/mimeaplicativo | sort | uniq -c| awk '{print$2}' > /tmp/audio.tmp
cat /tmp/audio.tmp > /etc/squid/mimeaplicativo

cat /tmp/video >> /etc/squid/mimeaplicativo
cat /etc/squid/mimeaplicativo | sort | uniq -c| awk '{print$2}' > /tmp/video.tmp
cat /tmp/video.tmp > /etc/squid/mimeaplicativo



Mude o atributo do arquivo criado acima permitindo execução:
# chmod +x /etc/squid/checa.sh


Agora edite o arquivo /etc/crontab e insira os códigos abaixo:
1ª Linha - Agendei para rodar na cron a cada 5 minutos
2ª Linha - Atualizar o squid a cada hora

# vi /etc/crontab

*/5 * * * * /root/script.sh /var/log/script.log 2>&1
59 * * * * squid -k reconfigure



Reinicialize o cron, (service cron restart)


OBS: Complementando o bloqueio, adicione as seguintes regras em seu firewall:

#bloqueio da RADIO do UOL
iptables -A INPUT -d 0/0 -p tcp --dport 1935 -j DROP
iptables -A INPUT -d 0/0 -p udp --dport 1935 -j DROP
iptables -A FORWARD -d 0/0 -p tcp --dport 1935 -j DROP
iptables -A FORWARD -d 0/0 -p udp --dport 1935 -j DROP
#bloqueio da RADIO Bradesco
iptables -A INPUT -d 0/0 -p tcp --dport 29054 -j DROP
iptables -A INPUT -d 0/0 -p udp --dport 29054 -j DROP
iptables -A FORWARD -d 0/0 -p tcp --dport 29054 -j DROP
iptables -A FORWARD -d 0/0 -p udp --dport 29054 -j DROP



Créditos relevantes para:
http://www.mail-archive.com/debian-user-portuguese@lists.debian.org/msg124511.html

Como libero hosts no FIREWALL para não passar pelo proxy e ter acesso

Você pode criar uma regra na chain PREROUTING assim:




Essa regra deve vir antes da regra que redireciona as conexoes para o Squid... uma regra parecida com essa:



Talvez nao seja REDIRECT talvez seja DNAT porque o Firewall e o Proxy podem ser maquinas diferentes, isso depende de como esta ai.
Mas de qualquer maneira voce deve adcionar essa regra antes, porque senao nao tem efeito.


Créditos para: http://under-linux.org/f96/como-libero-hosts-no-firewall-para-nao-passar-pelo-proxy-ter-acesso-%5Bresolvido%5D-85433/

terça-feira, 10 de agosto de 2010

Onde localizar as páginas de erros do SQUID


Quando o Squid é instalado via pacote, em geral ele já possui um diretório padrão onde as páginas de erro são armazenadas. Por exemplo, no Debian, elas ficam em:

/usr/share/squid/errors/English

Em outros empacotamentos, elas podem estar em /etc/squid/errors. De qualquer forma, é possível escolher qual o diretório que lhe agrada, procurando no squid.conf pelo parâmetro error_directory, alterando-o se desejar.

Estas páginas são arquivos html com nomes em maíusculas correspondente ao erro que as carregará. Por exemplo, quando o acesso for negado ao usuário, o conteúdo da página ERR_ACCESS_DENIED será exibido.

Se as mensagens de erro de seu Squid estão em Inglês, uma forma bem simples de torná-las em português é copiar o conteúdo da pasta Portuguese para English:

sudo cp /usr/share/squid/errors/Portuguese/* /usr/share/squid/errors/English/

Após alterar as páginas, formatando-as a seu gosto, é preciso reiniciar o Squid para que as mudanças passem a vigorar.

Fonte: http://www.cybershark.net/tutoriais/squid

Como limitar o tamanho do download no squid


Esta é uma configuração de ACL no Squid de modo limitar o tamanho dos downloads efetuados pelos usuários.

acl html rep_mime_type text/html
reply_body_max_size 10485760 allow html

Onde:
  • html é uma acl do tipo html e texto puro --> páginas de sites;
  • Com o parâmetro reply_body_max_size 10485760 allow html --> informamos que somente será permitidos downloads de arquivos com no máximo tamanho de 10 Mb.
O cálculo para o tamanho do download é feito da seguinte maneira:
1 Mb equivale a 1024 * 1024 = 1048576 bytes e para chegar a 10 Mb multiplica-se por 10 = 10485760 bytes.

OBS: No momento em que um usuário tentar efetuar um download de algum arquivo com tamanho acima de 10 Mb, será retornado uma página do Squid informando que a requisição GET é muito grande. Já aí fica a teu critério personalizar a página de erro com uma mensagem mais amigável.

Fonte: http://www.vivaolinux.com.br/dica/Limitando-tamanho-de-downloads-com-o-Squid

quinta-feira, 5 de agosto de 2010

Como configurar o arquivo INTERFACES (Linux)

Veja abaixo um arquivo de configuração de interfaces com 3 interfaces de rede, sendo que uma delas faz conexão com ADSL (Velox) usando pppoeconf

#-- inicio do arquivo /etc/network/interfaces ----
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto eth0
iface eth0 inet static
address 192.168.10.6
netmask 255.255.255.0

auto eth2
iface eth2 inet static
address 172.30.9.4
netmask 255.255.255.248

auto eth3
iface eth3 inet static
address 111.111.111.111
netmask 255.255.255.0

post-up route add -net 172.30.11.0 netmask 255.255.255.248 gw 172.30.9.2
post-up route add -net 192.168.12.0 netmask 255.255.255.0 gw 172.30.9.2
post-up route add -net 192.168.11.0 netmask 255.255.255.0 gw 192.168.10.20

auto dsl-provider
iface dsl-provider inet ppp
pre-up /sbin/ifconfig eth3 up # line maintained by pppoeconf
provider dsl-provider
#
#--- final do arquivo /etc/network/interfaces -------

OBS: veja que neste arquivo você pode configurar inclusive as rotas para serem carregadas automaticamente no boot do sistema operacional.

Placa de rede Genérica REALTEK 8169 no Ubuntu Server 10.04 lts

Placas de Rede Não Reconhecida ao Instalar no Ubuntu Server 10.04 lts

Este problema ocorre quando se instala placas de rede com o chipset da Realtek 8169. para corrigir este problema, proceda da seguinte forma:

Abra um console, e digite os seguintes comandos:

sudo lshw -C network

ifconfig -a


OBS: Com a execução do comando "ifconfig -a" você verá suas interfaces de redes cadastradas, agora é só editar o arquivo /etc/network/interfaces e inserir as configurações desejadas para cada interface.