Pessoal nesse artigo vou mostrar um pouco do Squid, um servidor

Transcrição

Pessoal nesse artigo vou mostrar um pouco do Squid, um servidor
Pessoal nesse artigo vou mostrar um pouco do Squid, um servidor de Proxy, ele trabalha como
saída principal da rede, com isso podemos centralizar nosso foco em segurança (políticas de
acesso, autenticação, etc.) em uma única máquina, o Squid trabalha com os principais
protocolos da internet alguns deles são: HTTP, HTTPS, FTP.
O squid é um software livre licenciado pela GPL, sua utilização pode nos trazer varias
vantagens como: Autenticação, Controle de Acesso, Cache, Controle Centralizado, Registros de
Acesso, etc. Ele também atua como Proxy transparente evitando que usuários “espertinhos”
possam burlar o controle de acesso. Bem chega de teoria e vamos começar o trabalho: O Squid
é formado de um único pacote, o que torna sua instalação extremamente fácil.
# apt-get install squid3
Depois que instalamos o Squid vamos renomear o arquivo de configuração para criarmos um
do zero.
# mv /etc/squid3/squid.conf
/etc/squid3/squid.conf.orig
# nano /etc/squid3/squid.conf
Vamos criar uma configuração básica no arquivo adicionando as seguintes linhas.
##############################################################
http_port 3128
visible_hostname KORZOS
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl redelocal src 192.168.0.0/24 #colocar o ip da sua rede local
http_access allow redelocal
##############################################################
Execute o comando abaixo para reinicializar o SQUID:
# service squid3 restart ou /etc/init.d/squid3 restart
Que seu squid já deve estar em pleno funcionamento. Agora precisamos descobrir para que
serve cada uma dessas linhas:
http_port 3128: Define em qual porta o Squid vai atuar, a porta default é a 3128 mas podemos
definir qualquer outra porta.
visible_hostname KORZOS: Define o nome do servidor, lembre-se de substituir o “KORZOS”
pelo nome do seu servidor.
acl SSL_ports port 443 563: Cria a acl contend as portas que são utilizadas no protocolo HTTPS.
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535: Cria a acl contendo
as portas de diversos protocolos conhecidos na internet.
acl CONNECT method CONNECT: Cria a acl CONNECT também do tipo method.
http_access deny !Safe_ports: Esta linha se torna bastante interessante pelo uso da “!”, pois
ela bloqueia qualquer conexão que não contenha o conteúdo da acl Safe_Ports.
http_access deny CONNECT !SSL_ports: Bloqueia qualquer conexão que não esteja no
conteúdo da acl SSL_ports.
acl redelocal src 192.168.0.0/24: Cria a acl redelocal contendo a faixa de endereço da rede,
nesta acl você colocar o ip da sua rede.
http_access allow redelocal: Libera a acl redelocal.
Depois de uma breve explicação de todo o conteúdo do arquivo squid.conf é hora de criar as
políticas de acesso (os bloqueios), antes de começar é importante lembrar que o squid
trabalha de forma hierárquica, ou seja ele lê as regras em uma seqüência lógica, se você diz
que ele deve bloquear a url que contenha a palavra “sexo” e depois mandar liberar, a url
continuará bloqueada pois quando ele se encaixa em uma determinada regra ele não “lê” as
demais.
Bem mãos a massa; Obs: Nos exemplos a seguir utilizarei como exemplo somente as acl’s do
tipo: src, url_regex e time.
Por questão de organização é bom criar arquivos com o conteúdo a ser trabalho para não
poluir o .conf
# nano /etc/squid3/palavras_bloqueadas.txt
Nesse arquivo iremos adicionar palavras que serão bloqueadas, como: sexo, porno, putaria…
# nano /etc/squid3/sites_bloqueados.txt
Nesse arquivo serão adicionados os sites que não terão acesso, como: 4shared.com,
rapidshare.com, megavideo.com, filesonic.com
# nano /etc/squid3/redes_sociais.txt
Aqui iremos colocar as redes sociais, como: facebook.com, orkut.com, twiter.com
# nano /etc/squid3/ips_liberados.txt
Nesse arquivo iremos colocar os ips das máquinas dos gerentes (e daquela estagiaria linda que
entrou semana passada… :)
# nano /etc/squid3/sites_porno.txt
Lista de sites pornôs: redtub.com, xvideos.com
# nano /etc/squid3/formato_arquivo.txt
Esse arquivo limita o tipo de arquivo que serão baixados, tudo que contiver nesse arquivo será
bloqueado: .avi$, .mp3$, .wmv$
Pronto depois dos arquivos criados e preenchidos é hora de criar as acl’s: todas as acl´s abaixo
será colocar logo depois de acl redelocal do arquivo squid.conf.
##############################################################
acl palavras_bloqueadas url_regex -i “/etc/squid3/palavras_bloqueadas.txt”
acl sites_bloqueados url_regex –i “/etc/squid3/sites_bloqueados.txt “
acl redes_sociais url_regex -i “/etc/squid3/redes_sociais.txt”
acl liberados src “/etc/squid3/ips_liberados.txt”
acl porno url_regex -i “/etc/squid3/sites_porno.txt”
acl formato_arquivo url_regex -i “/etc/squid3/formato_arquivo.txt”
acl horario_almoco time 12:00-13:00
http_access allow liberados
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
http_access deny sites_bloqueados
http_access deny palavras_bloqueadas
http_access deny porno
http_access deny formato_arquivo
##############################################################
Depois de adicionar essas linhas no squid.conf é so reiniciar para que elas entrar em vigor
# service squid3 restart ou /etc/init.d/squid3 restart
Pessoal vamos entender o funcionamento dessas acl’s, no exemplo acima criamos um modelo
meio que padrão, no primeiro “parágrafo” criamos as acl’s e no segundo liberamos ou
bloqueamos as mesmas de acordo com nossa política, vamos dessecar linha por linha:
acl rede_local src 192.168.0.0/24 -> Cria a acl rede_local contendo a faixa de endereço da
rede local.
acl palavras_bloqueadas url_regex -i “/etc/squid3/palavras_bloqueadas.txt “ -> Cria a acl
palavras_bloqueadas contendo as palavras proibidas que estão no arquivo descrito.
acl sites_bloqueados url_regex -i “/etc/squid3/ sites_bloqueados.txt “ -> Cria a acl
sites_bloqueados contendo os sites proibidos que estão no arquivo descrito.
acl redes_sociais url_regex -i “/etc/squid3/redes_sociais.txt” -> Cria a acl redes_sociais
contendo os sites de redes sociais que estão no arquivo descrito.
acl liberados src “/etc/squid/ips_liberados.txt “ -> Cria a acl liberados contendo endereços de
ip que estão no arquivo descrito.
acl porno url_regex -i “/etc/squid/sites_porno.txt “ -> Cria a acl porno contendo os sites
pornôs que estão no arquivo descrito.
acl formato_arquivo url_regex -i “/etc/squid/formato_arquivo.txt” -> Cria a acl
formato_arquivo contendo os tipos de arquivos que serão bloqueados que estão no arquivo
descrito.
acl horario_almoco time 12:00-13:00 -> Cria a acl horario_almoco do horário de meio dia há
uma da tarde.
Aqui que a mágica acontece, a ordem de como você organiza as acl’s é que faz toda a
diferença, vamos lá.
http_access allow liberados -> Aqui nos liberamos acesso total para os ip’s que estiverem no
arquivo que criamos anteriormente.
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
Nessas linhas permitimos que qualquer usuário acesse os sites de redes sociais que estiverem
no arquivo que criamos dentro do horário de 12:00 as 13:00, após esse horário o acesso é
bloqueado.
http_access deny sites_bloqueados -> Bloqueia o acesso aos sites que estiverem no arquivo
criado dentro da acl sites_bloqueados.
http_access deny palavras_bloqueadas -> Bloqueia o acesso a palavras que estiverem no
arquivo criado dentro da acl palavras_bloqueadas.
http_access deny porno -> Bloqueia o acesso os sites porno que estiverem no arquivo criado
dentro da acl porno.
http_access deny formato_arquivo -> Bloqueia o acesso a download que forem do tipo de
arquivo contido no arquivo criado na acl formato_arquivo.
http_access allow rede_local -> Se o acesso não se encaixou em nenhuma das regras acima e
for proveniente da rede interna ele é liberado.
Bem pessoal depois de tudo isso vamos ver como ficou nosso squid.conf.
##############################################################
http_port 3128
visible_hostname KORZOS
acl SSL_ports port 443 563
acl Safe_ports port 21 80 443 563 70 210 280 488 59 777 901 1025-65535
acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
acl redelocal src 192.168.0.0/24 #colocar o ip da sua rede local
acl palavras_bloqueadas url_regex -i “/etc/squid3/palavras_bloqueadas.txt”
acl sites_bloqueados url_regex –i “/etc/squid3/sites_bloqueados.txt “
acl redes_sociais url_regex -i “/etc/squid3/redes_sociais.txt”
acl liberados src “/etc/squid3/ips_liberados.txt”
acl porno url_regex -i “/etc/squid3/sites_porno.txt”
acl formato_arquivo url_regex -i “/etc/squid3/formato_arquivo.txt”
acl horario_almoco time 12:00-13:00
http_access allow liberados
http_access allow redes_sociais horario_almoco
http_access deny redes_sociais
http_access deny sites_bloqueados
http_access deny palavras_bloqueadas
http_access deny porno
http_access deny formato_arquivo
http_access allow redelocal
##############################################################
Alguns comandos úteis:
Para acompanhar o arquivo de log em Real Time:
# tail -f /var/log/squid3/access.log
Para limpar o arquivo de log:
# echo >/var/log/squid3/access.log
Fonte:
http://guiadoti.blogspot.com.br/2012/07/instalando-e-configurando-um-servidor.html
http://www.smartdicas.com/tutoriais-linux/instalacao-e-configuracao-o-squid3transparent-no-ubuntu-13-10/