Pesquisa de site

Como configurar o servidor “Squid Proxy” no Ubuntu e Debian


Squid é o servidor proxy da web HTTP de cache e encaminhamento mais popular, usado por uma ampla variedade de empresas para armazenar páginas da web em cache de um servidor da web para melhorar a velocidade do servidor da web, reduzir os tempos de resposta e reduzir o uso da largura de banda da rede.

Leia também: Como criar um proxy HTTP usando Squid no CentOS 7

Neste artigo, explicaremos como instalar um servidor proxy squid em distribuições Ubuntu e Debian e usá-lo como um servidor proxy HTTP.

Como instalar o Squid no Ubuntu

Antes de começarmos, você deve saber que o servidor Squid não possui nenhum requisito, mas a quantidade de utilização de RAM pode variar dependendo dos clientes que navegam na Internet por meio do servidor proxy.

O pacote Squid está disponível para instalação a partir do repositório base do Ubuntu, mas antes disso certifique-se de atualizar seus pacotes executando.

sudo apt update

Assim que seus pacotes estiverem atualizados, você pode prosseguir para instalar o squid e iniciá-lo e habilitá-lo na inicialização do sistema usando os seguintes comandos.

sudo apt -y install squid
sudo systemctl start squid
sudo systemctl enable squid

Neste ponto, seu proxy web Squid já deve estar em execução e você pode verificar o status do serviço com.

sudo systemctl status squid
Saída de amostra
● squid.service - LSB: Squid HTTP Proxy version 3.x
   Loaded: loaded (/etc/init.d/squid; generated)
   Active: active (running) since Tue 2018-12-04 06:42:43 UTC; 14min ago
     Docs: man:systemd-sysv-generator(8)
    Tasks: 4 (limit: 1717)
   CGroup: /system.slice/squid.service
           ├─2761 /usr/sbin/squid -YC -f /etc/squid/squid.conf
           ├─2766 (squid-1) -YC -f /etc/squid/squid.conf
           ├─2768 (logfile-daemon) /var/log/squid/access.log
           └─2772 (pinger)

Dec 04 06:42:43 tecmint systemd[1]: Starting LSB: Squid HTTP Proxy version 3.x...
Dec 04 06:42:43 tecmint squid[2708]:  * Starting Squid HTTP Proxy squid
Dec 04 06:42:43 tecmint squid[2708]:    ...done.
Dec 04 06:42:43 tecmint systemd[1]: Started LSB: Squid HTTP Proxy version 3.x.
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: will start 1 kids
Dec 04 06:42:43 tecmint squid[2761]: Squid Parent: (squid-1) process 2766 started

A seguir estão alguns locais importantes de arquivos squid que você deve conhecer:

  • Arquivo de configuração do Squid: /etc/squid/squid.conf
  • Registro de acesso do Squid: /var/log/squid/access.log
  • Registro do cache do Squid: /var/log/squid/cache.log

O arquivo de configuração padrão contém algumas diretivas de configuração que precisam ser configuradas para afetar o comportamento do Squid.

Agora abra este arquivo para edição usando o editor Vi e faça as alterações conforme mostrado abaixo.

sudo vim /etc/squid/squid.conf

Agora, você pode pesquisar sobre as linhas a seguir e alterá-las conforme solicitado, no editor Vi, você pode pesquisar sobre essas linhas pressionando 'ESC' e digitando “/ ”chave para escrever as linhas específicas a serem procuradas.

  • http_port : Esta é a porta padrão para o servidor proxy HTTP, por padrão é 3128, você pode alterá-la para qualquer outra porta que desejar, você também pode adicionar o “transparent” no final da linha como http_port 8888 transparente para fazer com que o proxy Squid atue como um proxy transparente, se desejar.
  • http_access deny all : Esta linha não permitirá que ninguém acesse o servidor proxy HTTP, é por isso que você precisa alterá-la para http_access permitir todos para começar a usar seu servidor proxy Squid .
  • visible_hostname : Esta diretiva é usada para definir o nome de host específico para um servidor squid. Você pode dar qualquer nome de host ao squid.

Após fazer as alterações acima, você pode reiniciar o servidor proxy Squid usando o comando.

sudo systemctl restart squid

Configurando o Squid como um proxy HTTP no Ubuntu

Nesta seção de configuração do squid, explicaremos como configurar o squid como um proxy HTTP usando apenas o endereço IP do cliente para autenticação.

Adicionar ACLs do Squid

Se você deseja permitir que apenas um endereço IP acesse a Internet através do seu novo servidor proxy, você precisará definir uma nova acl (lista de controle de acesso) no arquivo de configuração.

sudo vim /etc/squid/squid.conf

A regra acl que você deve adicionar é:

acl localnet src XX.XX.XX.XX

Onde XX.XX.XX.XX é o endereço IP da máquina cliente. Este acl deve ser adicionado no início da seção da ACL conforme mostrado na imagem a seguir.

É sempre uma boa prática definir um comentário próximo à ACL que descreva quem usa este endereço IP, por exemplo.

acl localnet src 192.168.0.102  # Boss IP address

Você precisará reiniciar o serviço Squid para que as novas alterações tenham efeito.

sudo systemctl restart squid

Abrir portas no Squid Proxy

Por padrão, apenas certas portas são permitidas na configuração do squid, se desejar adicionar mais basta defini-las no arquivo de configuração conforme mostrado.

acl Safe_ports port XXX

Onde XXX é o número da porta que você deseja permitir. Novamente, é uma boa prática definir um comentário próximo a acl que descreva para que a porta será usada.

Para que as alterações tenham efeito, você precisará reiniciar o squid mais uma vez.

sudo systemctl restart squid

Autenticação de cliente proxy Squid

Para permitir que os usuários se autentiquem antes de usar o proxy, você precisa habilitar a autenticação http básica no arquivo de configuração, mas antes disso você precisa instalar o pacote apache2-utils usando o seguinte comando.

sudo apt install apache2-utils

Agora crie um arquivo chamado “passwd” que posteriormente armazenará o nome de usuário para autenticação. O Squid é executado com o usuário “proxy ” então o arquivo deve pertencer a esse usuário.

sudo touch /etc/squid/passwd
sudo chown proxy: /etc/squid/passwd
ls -l /etc/squid/passwd

Agora iremos criar um novo usuário chamado “tecmint” e configurar sua senha.

sudo htpasswd /etc/squid/passwd tecmint

New password: 
Re-type new password: 
Adding password for user tecmint

Agora, para habilitar a autenticação http básica, abra o arquivo de configuração.

sudo vim /etc/squid/squid.conf

Após as ACLs das portas, adicione as seguintes linhas:

auth_param basic program /usr/lib64/squid/basic_ncsa_auth /etc/squid/passwd
auth_param basic children 5
auth_param basic realm Squid Basic Authentication
auth_param basic credentialsttl 2 hours
acl auth_users proxy_auth REQUIRED
http_access allow auth_users

Salve o arquivo e reinicie o squid para que as novas alterações tenham efeito:

sudo systemctl restart squid

Bloquear sites no Squid Proxy

Para bloquear o acesso a sites indesejados, primeiro crie um arquivo chamado “blacklisted_sites.acl” que armazenará nele os sites da lista negra.

sudo touch /etc/squid/blacklisted_sites.acl

Agora adicione os sites cujo acesso deseja bloquear, por exemplo.

.badsite1.com
.badsite2.com

O ponto informa ao squid para bloquear todas as referências a esses sites, incluindo www.badsite1, subsite.badsite1.com etc.

Agora abra o arquivo de configuração do Squid.

sudo vim /etc/squid/squid.conf

Logo após as ACLs acima, adicione as duas linhas a seguir:

acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl"
http_access deny bad_urls

Agora salve o arquivo e reinicie o squid:

sudo systemctl restart squid

Bloquear palavras-chave específicas com Squid

Para bloquear uma lista de palavras-chave, primeiro crie um arquivo chamado “blockkeywords.lst” que armazenará nele as palavras-chave da lista negra.

sudo touch /etc/squid/blockkeywords.lst

Agora adicione as palavras-chave que deseja bloquear o acesso, por exemplo.

facebook
instagram
gmail

Agora abra o arquivo de configuração do Squid e adicione a seguinte regra.

acl blockkeywordlist url_regex "/etc/squid/blockkeywords.lst"
http_access deny blockkeywordlist

Agora salve o arquivo e reinicie o squid:

sudo systemctl restart squid

Depois que tudo estiver configurado com precisão, agora você pode configurar o navegador da web do cliente local ou as configurações de rede do sistema operacional para usar o proxy HTTP squid recém-configurado.

Configure o cliente para usar o proxy Squid

Agora, para testar se o seu servidor proxy está funcionando ou não, você pode abrir o Firefox e ir em Editar –> Preferências –> Avançado –> Rede –> Configurações e selecionar “Configuração manual de proxy ”e insira o endereço IP do servidor proxy e a porta a ser usada para todas as conexões, conforme a seguir.

Depois de preencher todos os detalhes de proxy necessários, você poderá navegar na Web usando seu servidor proxy Squid; você pode fazer a mesma coisa em qualquer outro navegador ou programa que desejar.

Para ter certeza de que está navegando na web usando seu servidor proxy, você pode visitar http://www.ipaddresslocation.org/, no canto superior direito você deve ver o mesmo endereço IP do seu servidor Endereço de IP.

Para obter mais configurações adicionais, você pode verificar a documentação oficial do squid. Se você tiver alguma dúvida ou comentário, adicione-os na seção de comentários abaixo.