
Fala galera, beleza? 😎 Vamos implementar hoje um servidor squid no Ubuntu 16.04, com autenticação local, esse tutorial está bem detalhado, porém o nível dessa implementação é para quem está iniciando no mundo linux e quer aprender a configurar um servidor proxy squid da maneira mais simples e objetiva possível.
Se você não possui o Ubuntu instalado, ou não sabe como instalar, clica 👇🏼 aqui embaixo que temos um vídeo bem rápido de como fazer a instalação do Ubuntu no VirtualBox para você aprender cada vez mais trabalhar com sistemas Linux.
👉🏼 Link do vídeo de instalação do Ubuntu no VirtualBox: https://www.youtube.com/watch?v=HUvP8LvEaws
Passo 1: Atualizando o Ubuntu
1 |
sudo apt-get update |
Passo 2: Instalando o Squid no Linux Ubuntu 16.04
1 |
sudo apt-get install squid |
Passo 3: Configurando o Squid no Linux Ubuntu 16.04
Vamos efetuar uma cópia de backup do arquivo “squid.conf”
1 |
sudo cp -Rfa /etc/squid/squid.conf{,.bkp} |
Acesse o diretório de configuração do do Squid:
1 |
cd /etc/squid |
Listando os arquivos no diretório:
1 |
ls -l |
Agora vamos apagar o arquivo “squid.conf” e criar um novo, somente com as opcoes que desejamos:
1 |
sudo rm -rf squid.conf |
Em seguida vamos criar o nosso novo arquivo de configuração.
1 |
sudo touch squid.conf |
Agora vamos editar o arquivo criado, vou utilizar o “vim”.
1 |
sudo vim squid.conf |
Conteúdo do arquivo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
### ARQUIVO DE CONFIGURACAO DO SQUID ### ## DEFINE A PORTA DE CONEXAO DO SQUID http_port 3128 ## DEFINE O TAMANHO MAXIMO DE UM OBJETO PARA SER ARMAZENADO EM CACHE ## maximum_object_size 4096 KB ## DEFINE O TAMANHO MINIMO DE UM OBJETO PARA SER ARMAZENADO EM CACHE ## minimum_object_size 0 KB ## DEFINE O TAMANHO MAXIMO DE UM OBJETO PARA SER ARMAZENADO EM CACHE DE MEMORIA ## maximum_object_size_in_memory 64 KB ## DEFINE A QUANTIDADE DE MEMORIA RAM A SER ALOCADA PARA CACHE ## cache_mem 512 MB ## AJUSTA A PERFORMANCE EM CONEXOES PIPELINE ## pipeline_prefetch on ## CACHE DE FQDN ## fqdncache_size 1024 ## OPCOES DE REFRESH PATTERN ## 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 ## DEFINE A PORCENTAGEM DO USO DO CACHE ## cache_swap_low 90 cache_swap_high 95 ## ARQUIVO DE LOGS DO SQUID ## access_log /var/log/squid/access.log squid cache_log /var/log/squid/cache.log cache_store_log /var/log/squid/store.log ## DEFINE O LOCAL DO CACHE ## cache_dir ufs /var/spool/squid 1600 16 256 ## CONTROLE DE ROTACAO DOS ARQUIVOS DE LOGS ## logfile_rotate 10 ## ARQUIVO ONDE CONTEM OS ENDERECOS LOCAIS DA REDE ## hosts_file /etc/hosts ## ACLS - PORTAS PADROES LIBERADAS ## acl SSL_ports port 80 #HTTP acl SSL_ports port 443 #HTTPS acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT ### DEFININDO MODO DE AUTENTICACAO auth_param basic program /usr/lib/squid3/basic_ncsa_auth /etc/squid/usuarios auth_param basic children 5 auth_param basic realm "DIGITE SEU USUARIO E SENHA PARA ACESSO A INTERNET:" auth_param basic credentialsttl 2 hours auth_param basic casesensitive off ### ACL PARA GARANTIR A AUTENTICACAO DO USUARIO NOS SITES ### acl autenticados proxy_auth REQUIRED ## BLOQUEIA O ACESSO UNSAFE PORTS ## http_access deny !Safe_ports ## Deny CONNECT to other than secure SSL port ## http_access deny CONNECT !SSL_ports ## SITES BLOQUEADOS PARA ACESSO ## acl sites-bloqueados url_regex -i "/etc/squid/regras/sites_bloqueados" ## SITES LIBERADOS PARA ACESSO ## acl sites-liberados url_regex -i "/etc/squid/regras/sites_liberados" ## DEFININDO A ORDEM DAS REGRAS - ACLS ## http_access deny sites-bloqueados http_access allow autenticados http_access allow sites-liberados http_access deny all http_reply_access allow all icp_access allow all miss_access allow all ## NOME QUE IRA APARECER NA TELA DE ERRO OU BLOQUEIO DO SQUID ## visible_hostname proxy.tidahora.com.br ## DIRETORIO DAS PAGINAS DE ERROS ## error_directory /usr/share/squid/errors/pt-br ## OUTRAS OPCOES DE CACHE ## cache_effective_user proxy coredump_dir /var/spool/squid |
Agora vamos criar o diretório onde vamos criar as listas de sites bloqueados e liberados.
1 |
sudo mkdir /etc/squid/regras |
Vamos criar o arquivo de sites liberados e bloqueados:
1 2 |
sudo touch /etc/squid/regras/sites_liberados sudo touch /etc/squid/regras/sites_bloqueados |
Vamos inserir algum site na lista de liberados e na lista de bloqueados:
1 |
sudo vim /etc/squid/regras/sites_liberados |
Conteúdo:
1 2 |
.tidahora. .uol. |
1 |
sudo vim /etc/squid/regras/sites_bloqueados |
Conteúdo:
1 |
.globo. |
Criando o cache:
1 |
sudo chmod -Rf 774 /var/spool/squid |
1 |
sudo squid -z |
Inicie o serviço do Squid:
1 |
sudo systemctl start squid |
Verificando o status do serviço:
1 |
sudo systemctl status squid |
PASSO 4: CRIANDO OS USUÁRIOS PARA ACESSO A INTERNET
Instale o Apache no servidor Linux Ubuntu, o apache possui um programa que iremos utilizar para gerar os logins e senhas.
1 |
sudo apt-get install apache2 |
Criando os usuários com o comando “htpasswd”
Utilize o comando abaixo, somente pela primeira vez, para criar o arquivo:
1 |
sudo htpasswd -c /etc/squid/usuarios johnny |
Para os demais usuários utilize:
1 |
sudo htpasswd /etc/squid/usuarios jferreira |
Agora vamos recarregar as configurações do squid:
1 |
sudo squid -k reconfigure |
PASSO 5: AJUSTANDO O ENCAMINHAMENTO DE PACOTES NO KERNEL
Para que possamos acessar a Internet através de um servidor proxy no Linux, é preciso ativarmos o encaminhamento de pacotes no kernel, para que possamos compartilhar a rede do servidor.
Esse procedimento precisa ser feito pelo usuário “root”:
Caso voce nao tenha definido a senha para o usuario root, vamos definir abaixo:
Acessando o console como “root”
1 |
sudo su - |
Habilitando o encaminhamento de pacotes:
1 |
echo 1 >> /proc/sys/net/ipv4/ip_forward |
PASSO 6: TESTANDO O SERVIDOR SQUID PROXY NO UBUNTU LINUX
Ajuste o endereço IP do servidor nas configurações de Proxy do navegador.
Se você nao sabe qual o endereço IP do seu servidor digite:
1 |
sudo ifconfig |
Abra o Firefox e siga os passos abaixo:
Feche as configurações e o navegador e abra-o novamente.
Será solicitado Login e Senha para acesso a Internet:
Digite um site que está na lista de sites liberados:
www.uol.com.br
Vamos acessar um site que está na lista de Bloqueados:
www.globo.com
Pronto, agora você já possui um servidor Proxy Squid em Linux Ubuntu. 😎
Dúvidas, comentário e sugestões postem nos comentários…
👋🏼 Até a próxima!
Johnny Ferreira
johnny.ferreira.santos@gmail.com
http://www.tidahora.com.br
Boa noite
estou com problemas poderia me ajudar
no navegador está pedindo usuario e senha para logar, mas não está bloqueando os sites.
e teria como fazer proxy transparente