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/
Documentos relacionados
Aulas 20 e 21 – Configurando o Squid
Uma segunda possibilidade é usar o parâmetro "dstdom_regex", que permite bloquear sites de uma forma mais geral, com base em palavras incluídas na URL de acesso. Você pode bloquear todas as páginas...
Leia mais