Os proxies da Web já existem há algum tempo e são usados por milhões de usuários em todo o mundo. Eles têm uma ampla gama de finalidades, sendo a mais popular o anonimato online, mas existem outras maneiras de tirar proveito dos proxies da web. Aqui estão algumas idéias:
O servidor proxy é um computador usado como intermediário entre o cliente e outros servidores dos quais o cliente pode solicitar recursos. Um exemplo simples disso é quando um cliente faz solicitações online (por exemplo, deseja abrir uma página da web), ele se conecta primeiro ao servidor proxy.
O servidor proxy então verifica seu cache de disco local e se os dados podem ser encontrados lá, ele retornará os dados para o cliente, se não estiver em cache, ele fará a solicitação em nome do cliente usando o endereço IP do proxy (diferente dos clientes) e, em seguida, retornará os dados ao cliente. O servidor proxy tentará armazenar em cache os novos dados e os usará para solicitações futuras feitas ao mesmo servidor.
Lula é um proxy da web que usou minha ampla gama de organizações. Muitas vezes, é usado como proxy de armazenamento em cache, melhorando os tempos de resposta e reduzindo o uso de largura de banda.
Para o propósito deste artigo, irei instalar Lula com um Linode CentOS 7 VPS e use-o como um servidor proxy HTTP.
Antes de começarmos, você deve saber que Lula, não tem requisitos mínimos, mas a quantidade de uso de RAM pode variar dependendo dos clientes que navegam na Internet através do servidor proxy.
Lula está incluído no repositório base e, portanto, a instalação é simples e direta. Antes de instalá-lo, no entanto, certifique-se de que seus pacotes estejam atualizados executando.
# atualização yum -y.
Continue instalando o squid, inicie e habilite-o na inicialização do sistema usando os seguintes comandos.
# yum -y instale o squid. # systemctl start squid. # systemctl enable squid.
Neste ponto, seu proxy da web Squid já deve estar em execução e você pode verificar o status do serviço com.
# systemctl status squid.
● squid.service - proxy de cache do Squid Carregado: carregado (/usr/lib/systemd/system/squid.service; ativado; Predefinição do fornecedor: desativado) Ativo: ativo (em execução) desde qui 2018-09-20 10:07:23 UTC; 5min atrás PID principal: 2005 (squid) CGroup: /system.slice/squid.service ├─2005 / usr / sbin / squid -f /etc/squid/squid.conf ├─2007 (squid-1) -f /etc/squid/squid.conf └─2008 (logfile-daemon) /var/log/squid/access.log 20 de setembro 10:07:23 tecmint systemd [1]: Iniciando o cache do Squid proxy... 20 de setembro 10:07:23 tecmint squid [2005]: Lula Pai: iniciará 1 filho. 20 de setembro 10:07:23 tecmint squid [2005]: Squid Pai: (squid-1) processo 2007 iniciado. 20 de setembro 10:07:23 tecmint systemd [1]: Proxy de armazenamento em cache do Squid iniciado.
Aqui estão alguns locais de arquivos importantes que você deve conhecer:
Um mínimo squid.conf
arquivo de configuração (sem comentários) tem a seguinte aparência:
acl localnet src 10.0.0.0/8 # RFC1918 rede interna possível. acl localnet src 172.16.0.0/12 # RFC1918 rede interna possível. acl localnet src 192.168.0.0/16 # RFC1918 rede interna possível. acl localnet src fc00:: / 7 # RFC 4193 intervalo de rede privada local. acl localnet src fe80:: / 10 # RFC 4291 máquinas com link local (conectadas diretamente). acl SSL_ports porta 443. acl Safe_ports porta 80 # http. acl Safe_ports port 21 # ftp. acl Safe_ports porta 443 # https. acl Safe_ports porta 70 # gopher. acl Safe_ports porta 210 # wais. acl Safe_ports port 1025-65535 # portas não registradas. acl Safe_ports porta 280 # http-mgmt. acl Safe_ports porta 488 # gss-http. acl Safe_ports port 591 # filemaker. acl Safe_ports port 777 # multiling http. método ACL CONNECT CONNECT. http_access deny! Safe_ports. http_access nega CONNECT! SSL_ports. http_access permite o gerenciador localhost. http_access deny manager. http_access permitir localnet. http_access permite localhost. http_access nega todos. http_port 3128. coredump_dir / var / spool / squid. refresh_pattern ^ ftp: 1440 20% 10080. refresh_pattern ^ gopher: 1440 0% 1440. refresh_pattern -i (/ cgi-bin / | \?) 0 0% 0. refresh_pattern. 0 20% 4320.
Aqui, mostraremos como configurar o squid como um proxy HTTP usando apenas o endereço IP do cliente para autenticação.
Se você deseja permitir que o endereço IP acesse a web através do seu novo servidor proxy, você precisará adicionar um novo ACL (lista de controle de acesso) linha no arquivo de configuração.
# vim /etc/squid/squid.conf.
A linha que você deve adicionar é:
acl localnet src XX.XX.XX.XX.
Onde XX.XX.XX.XX é o endereço IP do cliente real que você deseja adicionar. A linha deve ser adicionada no início do arquivo onde as ACLs são definidas. É uma boa prática adicionar um comentário próximo à ACL que descreverá quem usa esse endereço IP.
É importante notar que se o Squid estiver localizado fora de sua rede local, você deve adicionar o endereço IP público do cliente.
Você precisará reiniciar o Squid para que as novas alterações tenham efeito.
# systemctl restart squid.
Como você deve ter visto no arquivo de configuração, apenas certas portas são permitidas para conexão. Você pode adicionar mais editando o arquivo de configuração.
porta acl Safe_ports XXX.
Onde Xxx é a porta real que você deseja carregar. Novamente, é uma boa ideia deixar um comentário próximo a que descreverá para que a porta será usada.
Para que as alterações tenham efeito, você precisará reiniciar o squid mais uma vez.
# systemctl restart squid.
Provavelmente, você desejará que seus usuários se autentiquem antes de usar o proxy. Para isso, você pode habilitar a autenticação HTTP básica. É fácil e rápido de configurar.
Primeiro, você vai precisar httpd-tools instalado.
# yum -y instale httpd-tools.
Agora vamos criar um arquivo que mais tarde armazenará o nome de usuário para a autenticação. O Squid é executado com o usuário "Lula" portanto, o arquivo deve pertencer a esse usuário.
# touch / etc / squid / passwd. # chown squid: / etc / squid / passwd.
Agora vamos criar um novo usuário chamado “Proxyclient” e configure sua senha.
# htpasswd / etc / squid / passwd proxyclient Nova senha: Digite novamente a nova senha: Adicionando senha para o usuário proxyclient.
Agora, para configurar a autenticação, abra o arquivo de configuração.
# vim /etc/squid/squid.conf.
Após as portas ACLs, adicione as seguintes linhas:
programa básico auth_param / usr / lib64 / squid / basic_ncsa_auth / etc / squid / passwd. auth_param basic children 5. auth_param basic realm Autenticação básica do Squid. auth_param basic credentialsttl 2 horas. acl auth_users proxy_auth REQUERIDO. http_access permite auth_users.
Salve o arquivo e reinicie o squid para que as novas alterações tenham efeito:
# systemctl restart squid.
Finalmente, vamos criar um último ACL isso nos ajudará a bloquear sites indesejados. Primeiro, crie o arquivo que armazenará os sites na lista negra.
# touch /etc/squid/blacklisted_sites.acl.
Você pode adicionar alguns domínios que deseja bloquear. Por exemplo:
.badsite1.com. .badsite2.com.
O ponto seguinte diz 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.
# vim /etc/squid/squid.conf.
Logo após as portas ACLs, adicione as duas linhas a seguir:
acl bad_urls dstdomain "/etc/squid/blacklisted_sites.acl" http_access nega bad_urls.
Agora salve o arquivo e reinicie o squid:
# systemctl restart squid.
Depois que tudo estiver configurado corretamente, agora você pode configurar o navegador do cliente local ou as configurações de rede do sistema operacional para usar o proxy HTTP squid.
Neste tutorial, você aprendeu como instalar, proteger e configurar um servidor proxy HTTP Squid por conta própria. Com as informações que você acabou de obter, agora você pode adicionar alguma filtragem básica para o tráfego de entrada e saída através do Squid.
Se você quiser ir mais longe, pode até configurar o squid para bloquear alguns sites durante o horário de trabalho para evitar distrações. Se você tiver dúvidas ou comentários, poste-os na seção de comentários abaixo.