Introdução ao Squid: configuração passo a passo

Logotipo do Squid e Tux

Squid é outro filtro de nível de aplicativo que pode complementar o iptables. O Squid é um servidor proxy da web em cache, muito popular e gratuito, além de ser multiplataforma. Embora possa ser usado para melhorar o desempenho das conexões com a Internet, também pode ser usado para fins de segurança. Desde o início do projeto na década de 90, o Squid está muito avançado e agora nós o apresentamos para que você saiba como usá-lo.

Para sua instalação, você pode acessar o site oficial do projeto e selecione os pacotes binários para seu sistema operacional ou distribuição. Se você deseja instalá-lo a partir do pacote de código-fonte compilando, também você tem essa opção. Os tarballs disponíveis são tar.gz, tar.bz2 e tar.xz. Se você não sabe como instalar, pode ir para o artigo que editamos neste blog sobre como instalar qualquer pacote do linux. olho! Se você tem um Debian ou derivado e viu que ele está instalado com sudo "apt-get install squid", pode ocorrer um erro, porque você deve substituir "squid" por "squid3" para que tenha efeito. ..

Agora vamos direto para a ação explicando alguns exemplos de como usar o Squid para proteger nosso equipamento. Antes gostaria de explicar que o Squid é baseado em ACLs, ou seja, em Lista de Controle de Acesso ou lista de controle de acesso, ou seja, listas que detalham as permissões para controlar neste caso o fluxo da rede e implementar filtros semelhantes aos do iptables mas no nível do aplicativo.

Normalmente, após a instalação, é incluído um arquivo de configuração que pode ser encontrado em /etc/squid3/squid.conf e este é o que devemos editar com um editor como o nano ou o gedit. Nele podemos gerar nossas regras de filtragem, embora existam as opções cache_dir, cache_mem e http_port, usaremos esta última para nossas regras de segurança. Outro detalhe é que este arquivo especifica a porta padrão usada pelo serviço Squid, que por padrão é 3128 (veja a linha ou diretiva "http_port 3128" e remova o # para ativá-la). Se você quiser, pode alterá-lo para outra porta como 8080 ... E outra coisa que é necessário é configurar o hostname, procure o comentário "TAG: Visible_hostname" e você verá uma linha "visible_hostname" onde você deve colocar seu nome de anfitrião.

Para saber o seu nome de host, você pode digitar no terminal:

hostname

E o nome que aparece você adiciona à linha que não deve ser precedido por # para que não seja ignorado como um comentário. Ou seja, ficaria assim:

visible_hostname hostname_which_you_appeared

Se você ver o arquivo de configuração, verá que ele é muito comentado, se você deseja substituir uma regra criada, você pode iniciar a linha com # e você o transforma em um comentário, então o Squid o ignora, para colocá-lo de volta em serviço, você exclui o # e pronto. Na verdade, existem muitas regras criadas e comentadas que você pode usar removendo #. Assim, você não precisa excluir e reescrever as regras. Bem, para adicionar uma regra ou filtro específico, ele deve ter uma ACL e uma diretiva que indica o que fazer.

A propósito, quando você remove um # para ativar uma regra, certifique-se de não deixar espaços no início da linha. Por exemplo:

Caminho errado:

http_porta 3128

Maneira correta:

http_porta 3128

Você não ouviu nada? Bem, não se preocupe, com um exemplo você verá tudo muito melhor. Imagina isto:

acl bloqueando url_regex como facebook
http_access negar bloqueio

O que esta regra significa é que o acl com o nome "bloqueio" irá proibir o acesso à URL que contém "facebook" (portanto, se tentarmos entrar no Facebook, será ignorado um erro no navegador). Se, em vez de "negar", você usar "permitir", permitirá o acesso em vez de proibi-lo. Você também pode usar o! Para excluir, por exemplo, suponha que você queira permitir o acesso à lista1, mas não à lista2:

http_access allow lista1 !lista2

Outro exemplo poderia ser a criação de um arquivo / etc / squid3 / ips permitido e nele salvar uma lista de IPs que queremos permitir o acesso. Por exemplo, suponha que o conteúdo de ips permitidos seja:

192.168.30.1

190.169.3.250

192.168.1.26

E então criamos o acl para permitir o acesso a esses IPs:

acl nuevaregla src "/etc/squid3/ipspermitidas"

Um exemplo bastante práticoImagine que seu computador seja usado por crianças menores de 18 anos e você deseja restringir o acesso a determinados sites de conteúdo adulto. A primeira coisa é criar um arquivo chamado / etc / squid3 / list com o conteúdo:

adulto

pornô

sexo

Poringá

E agora em  o arquivo squid.conf colocamos a seguinte regra:

acl denegados url_regex "/etc/squid3/lista"

http_access allow !denegados

Como você vê nós usamos permitir que em princípio é permitir, mas se você olhar nós adicionamos! negar, portanto, seria equivalente a colocar:

acl denegados url_regex "/etc/squid3/lista"

http_access deny denegados

Listas também podem ser criadas, não apenas de nomes de domínio ou IPs como fizemos, você também pode colocar domínios e, por exemplo, restringir o acesso a domínios como .xxx, .gov, etc. Vejamos um exemplo baseado na regra anterior. Criamos um arquivo / etc / squid3 / domains que tem:

. Edu

.es

.org

E agora nossa regra, para negar acesso à lista de sites proibidos que criamos, mas permitindo acesso a URLs com estes domínios:

acl denegados url_regex "/etc/squid3/lista" 
acl permitidos dstdomain "/etc/squid3/dominios"

http_access allow !denegados dominios

EXTENSÃO:

Desculpe, quando eu vi os comentários percebi que Me faltou o principal. Acabei de colocar exemplos de como ele é usado e esqueci de dizer isso para iniciar o servidor Squid:

sudo service squid3 start

Antes começava com "/etc/init.d/squid start", mas agora você deve usar essa outra linha que coloquei para você. Assim como o arquivo de configuração não está mais em /etc/squid/squid.conf, mas em /etc/squid3/squid.conf. Ok, uma vez que as políticas de filtragem são criadas, e iniciando-as, devemos também configurar o navegador, por exemplo, se você usa Mozilla Firefox ou derivados, você pode ir ao menu de configuração (você sabe, as três barras), e depois Preferências, Avançado e na guia Rede, clique em Configuração na seção Conexão. Lá, selecionamos a configuração manual do proxy e colocamos nosso IP e a porta que o Squid está usando, neste caso 3128. Selecione também "Usar o mesmo proxy para tudo" e saia salvando as alterações.

Por favor, Não se esqueça de deixar seus comentários, dúvidas ou o que você quiser ... Embora seja um tutorial bem acima do Squid, espero que ajude você.


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.

  1.   Nicolas dito

    obrigado !, útil.

  2.   Jimmy olano dito

    MAIS UMA VEZ muito bem condensado para um assunto um tanto complexo, fico dizendo "nível de usuário: médio", você deve saber algumas noções sobre "redes".

    Eu HUMILMENTE considero que a opção de configurar nosso navegador para usar o "proxy" deve ser adicionada, mas como esta entrada é uma "INTRODUÇÃO ao Squid", estaremos bem cientes da próxima? entrega (finalmente, e correndo o risco de eu ser chato, LEMBRE-SE de não "proxy" as páginas da web de bancos e / ou instituições financeiras que você usa em sua casa ou empresa).

    1.    Isaac PE dito

      Oi, obrigado pelos comentários. Sim, IPTABLES e Squid são muito grossos para fazer um artigo que os explique em profundidade e você tem que se limitar a colocar exemplos do dia a dia ...

      Mas você está absolutamente certo, eu adicionei agora para configurar o proxy, já havia planejado e esqueci. Minha culpa.

      Saudações e obrigado !!

      1.    Jimmy olano dito

        Uffff "tronco" desculpe por não perceber o principal:
        INICIE O SERVIÇO :-( sem aquele "não há sua tia" -perdoe-me pelo discurso coloquial- EXTENSÃO MUITO BEM SUCEDIDA! 8-)

        {consertá-lo em cada inicialização é modificar o "/ sbin / init":
        http: // www. ubuntu-es.org/node/ 13012 # .Vsr_SUJVIWw}

        {outra maneira mais fácil é usar "update-rc.d":
        https: // parbaedlo. wordpress.com/201 3/03/07 / setting-start-and-stop-of-services-linux-update-rc-d /}

        Eu adicionei espaços aos links, remova-os e você navegará ;-)

        MUITO OBRIGADO PELA SUA ATENÇÃO.

  3.   ALBERT dito

    LINUX NEWS: Ataque ao Linux Mint: infecte instaladores e comprometa as credenciais do usuário

    http://www.muylinux.com/2016/02/21/ataque-a-linux-mint

    1.    aspa dito

      Já publiquei, mas não envie spam para outras páginas aqui, por favor

  4.   ALBERT dito

    NOTÍCIAS DO ANDROID: GM Bot, o cavalo de Troia Android do qual o Mazar é derivado

    http://www.redeszone.net/2016/02/21/gm-bot-el-troyano-para-android-del-que-deriva-mazar/

  5.   Hernan dito

    Olá Jimmy, como você faz para que o squid não procure essas páginas para você? Convém comentar sobre a opção transparente, que evita o tédio de configurar um proxy para cada computador

    1.    Jimmy olano dito

      Boa pergunta, instalei um CAPTCHA em software livre nas páginas da web dos meus clientes:
      (http: // www. ks7000. net. ve / 2015/04/03 / un-captcha-fácil e simples de implementar /
      -Humily, NÃO é "spam" ou autopromoção, é apropriado-)
      e imagino que ao usar o Squid essas imagens NÃO são recarregadas porque eu coloquei o mesmo nome nelas -ea, também posso gerar nomes aleatórios, não tinha pensado nisso, até agora- e por ter o mesmo nome, o Squid retorna o que ele tem no "cache".

      Obviamente, a principal função do «proxy» é economizar largura de banda com as imagens -as mais pesadas de uma página da web- [i] no pressuposto de que essas imagens são estáticas, não mudam com o tempo, o que é verdade em 99% dos casos [/ i].

      Mas em CAPTCHAs, como "não há execução", devemos eliminar seu armazenamento anterior e sempre retornar uma nova imagem.

      QUANTO AOS BANCOS, creio que o maior em Espanha é «Caixa» porque vamos criar uma regra EXEMPLO:

      acl caixa dstdomain .lacaixa.es

      Onde:
      acl -> comando para criar regra (reler o artigo do Sr. Isaac, parágrafos acima).

      caixa -> nome da regra.

      dtsdomain -> opção "tipo" para indicar que nos referimos a um domínio, IMPORTANTE o ponto no início ( http://ww w.visolve. com / squid / squid24s1 / access_controls.php)

      domínio (s) -> imagino que possamos adicionar os domínios de que precisamos, separados por um espaço; por falar em espaços, inseri-os nos links indicados, remova-os e você navegará (páginas em inglês).

      Espero que o conhecimento aqui apresentado seja útil para você, graças a LinuxAdictos!

    2.    Jimmy olano dito

      BEM, para responder a pergunta da TRANSPARÊNCIA no Squid NOVAMENTE insisto que você deve ter conhecimento de nível intermediário e por razões didáticas vou resumir o máximo possível o seguinte artigo (em inglês) que considero falar muito bem do assunto:

      http: // ww w.deckle.co. uk / squid-users-guide /transparent-caching-proxy.html

      Notas:
      -Adicionei espaços aos links para evitar pingback meu (não tenho absolutamente nada a ver com a equipe). Linux Adictos, portanto não estou autorizado a realizar tal ação).
      - ISSO SOBRE TRANSPARÊNCIA EU NÃO SABIA! (eles não me ensinaram, eu digo).
      -Ajudando vcs eu me ajudo também, isso é legal em quantidade! ?

      Bem, dito isso, vamos ao que interessa:

      APENAS sugeri ao Sr. Isaac expandir a configuração de nossos navegadores com o proxy instalado e ele gentilmente o fez (uau, onde esse homem encontra tempo para fazer tantas coisas?).

      Sob este esquema, o uso do Squid É OPCIONAL: cada usuário de nossa rede local ficará encarregado de fazer seu trabalho, mas você pode apostar "prata forte contra pesetas de papel" que existe algum "script bash" que pode ser instalado .por SSH para vários computadores que executam GNU / Linux.

      PRÉ-REQUISITO: que nosso servidor Squid esteja funcionando como o Sr. Isaac ensina neste post, se já o tivermos testado e colocado uma "carga de trabalho" nele e ele funcionar bem, podemos prosseguir para ir mais longe.

      SOB O ESQUEMA DE TRANSPARÊNCIA:

      PRIMEIRO.- Nosso Squid deve ser a rota padrão "gateway" em nosso "eth0" ou "wlan0" -você se lembra do conhecimento de nível médio? -, bem, estabelecemos lá (é feito por padrão com DHCP, PORTANTO devemos também configurar um servidor de tal serviço:
      http: // en.wikipe dia.org/wiki/ Dynamic_Host_Configuration_Protocol).

      Devemos planejar para configurar, em caso de falha, redirecionar todo o tráfego para nosso (s) modem (s) diretamente se o Squid - o computador onde ele roda - for excedido em sua carga de trabalho - e usar o (s) modem (s)) digite "bridge" para que eles vão para fora, isso é feito fazendo um "script" que é disparado no referido evento e configura nosso servidor DHCP -que deve ser instalado em um computador diferente do nosso Squid-.

      NOTA: nosso computador com Squid sempre dependerá do endereço IP do DHCP MAS ao mesmo tempo terá algum "controle" com o referido servidor DHCP. Se você quiser trabalhar com endereços IP fixos, claro, pode, mas quando você adicionar mais computadores OU SUBSTITUIR alguns terá que configurar novamente e não é a ideia (leia com prazer:
      ht tps: // pheno barbital. wordpress.com/2012/07/23/the-12-reasons-by-who-a-administrator-of-systems-lazy-is-a-good-administrator/)
      OUTRA NOTA (ver segundo ponto): nosso (s) modem (s) e / ou dispositivos roteadores devem desativar a função DHCP e que são governados por nosso servidor DCHP (-que garanto que outra entrada sai deste para nos mostrar como montar dito serviço-)

      SEGUNDO.- Devemos filtrar o tráfego para o nosso servidor Squid, este se temos vários roteadores dispersos que cobrem uma área de rede wireless "wi-fi", ainda é uma rede local mas de tamanho médio. Essencialmente, é o mesmo que o primeiro ponto, MAS se tivermos dispositivos diferentes OU MESMO sub-redes, devemos configurá-los também, então tome cuidado com aqueles de nós que trabalham "esmagando ferros" em grandes empresas.

      TERCEIRO.- Em nosso GNU / Linux que hospeda Squid devemos redirecionar as portas e configurar o «firewall» (leia o artigo anterior IPTables
      http://www.linuxadictos.com/introduccion-a-iptables-configura-un-firewall-en-linux.html )

      iptables -t nat -A PREROUTING -p TCP –dport 80 -j REDIRECT –para a porta 3128

      e para o IPFW:

      / sbin / ipfw add 3 fwd 127.0.0.1,3128 tcp de qualquer a qualquer 80

      Desnecessário dizer que NÃO PODEMOS rodar um servidor Apache ou Ngix nessa porta 80 -porta padrão de páginas da web- INDICA O SENTIDO COMUM para não colocar mais carga em nosso computador com o Squid -dependente do espaço em disco para «cache» -.

      QUARTO.- Devemos configurar nosso servidor Squid e informá-lo que está funcionando nesse modo, modificando "/etc/squid/squid.conf" com o nano ou o editor que você mais gosta:

      http_port 3128 transparente

      Devemos também habilitar o encaminhamento de pacotes em "/etc/sysctl.conf":

      net.ipv4.ip_forward = 1
      net.ipv6.conf.all.forwarding = 1

      Esta última linha, se tivermos IPv6, é bom configurá-la uma vez no futuro.

      Finalmente reinicie o serviço Squid conforme recomendado pelo Sr. Isaac acima e reinicie também o serviço de rede:

      /etc/init.d/procps.sh reinicie

      ALGUMA FÉ DA ERRATA (ou alguma bobagem da minha parte) me informe assim, suas críticas e comentários são bem-vindos;
      SENHOR. ISAAC É O MODERADOR que terá a última palavra nessa "luta".

  6.   Jimmy olano dito

    Neste pequeno vídeo podemos ver como configurar o Mozilla para usar um servidor proxy, exceto que usa uma máquina virtual com ReactOS, mas é curto e acho ILUSTRAÇÕES o que você quer configurar aqui (link desabilitado com espaços, remova-os e navegue):

    ht tps: // www. YouTube. com / watch? v = st47K5t7s-Q

  7.   Professor dito

    Acabei de começar a acompanhar a sua estação de rádio, estou há 2 dias .. e um conteúdo muito bom ..
    Saudações do México .. (Eu sou um professor e meu grão de areia é usar código aberto)

  8.   Áries dito

    Gostaria que me ajudassem quero dar o privilégio de um usuário ver Facebook e que os outros estejam com as restrições já configuradas e como habilitar internautas em determinados momentos gostaria que me avisassem, obrigado

  9.   Belkis dito

    Ari, o que me explicaram sobre isso é que a máquina que você quer não fica restrita, tem que ficar de fora, mas até lá eu tenho a explicação, também sou inexperiente no assunto

  10.   vencedor dito

    Boa noite, com licença, talvez minha dúvida seja um pouco básica mas ei, instalei o squid e configurei em um centos 5.4, instalei o wine e o ultrasurf, o que pretendo fazer é compartilhar a internet do ultrasurf com o squid, faço o mesmo em uma máquina windows XP com FreeProxy e ultrasurf e posso compartilhar sem problemas mas não sei como fazer no linux

  11.   daniel andrada dito

    Te consulto, tenho uma configuração parecida com a sua, no meu caso redireciono a porta 80 para 8080 onde roda o squid. O problema é que alguns usuários deixam essa configuração em seus computadores, eles cancelam e acessam pela porta 80, embora nem todos os serviços. Isso com iptables. Tem ideia de onde estaria o problema?

  12.   mar dito

    Muito útil e bem explicado. Obrigado!

    Tenho uma dúvida, quando quero criar uma acl, onde faço isso, ou seja, em que linha do arquivo de configuração? E devo colocar imediatamente 2 linhas abaixo do comando http_access como você mostra em sua postagem? Ou onde?

    Obrigado novamente!! Saudações!