SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
GNU/Linux Básico Proxy
Aula 2
- Servidor Proxy (Squid)
Marlon Willrich
marlon@unifebe.edu.br
Núcleo de Informática - UNIFEBE
29/10/2015
Servidor Proxy (Squid)
● Um servidor proxy é um computador intermediário
que fica entre o computador do usuário e a
Internet. Pode ser utilizado para registrar o usuo
da Internet e também para bloquear o acesso a
um site.
● Site do Squid: www.squid-cache.org
● Possui muita documentação e diversos exemplos
Servidor Proxy (Squid)
● aptitude install squid3
● Serviço de Proxy mais utilizado em servidores
GNU/Linux
● Diretório de configuração /etc/squid3/
● Arquivo de configuração do servidor squid.conf
● Arquivo todo documentado em
/usr/share/doc/squid3-common/
● Reinicio systemctl reload squid3.service ou squid3 -k
reconfigure
● Diretorio cache /var/spool/squid3
● O Squid trabalha por padrão na porta 3128
Servidor Proxy (Squid)
● Como podemos saber se o processo está em
execução? Podemos saber através de alguns
comandos da aula passada:
– $ ps -aux (lista todos os processos do sistema)
– Para fazermos um filtro nesta listagem, podemos
utilizar o comando grep
– $ ps -aux |grep squid
– Assim teremos como resultado somente os
processos com o nome squid
Servidor Proxy (Squid)
● Outra forma de testarmos, e vermos se a porta do
serviço 3128 está aberta no sistema através do
comando netstat:
– $ netstat -patun (lista todas as conexões ativas)
– E voltando ao nosso grep para filtrar podemos
fazer assim
– $ netstat -patun |grep 3128
● E claro, a forma padrão de visualização é :
– $ systemctl status squid3.service
– Ou
– $ service squid3 status (forma antiga)
Servidor Proxy (Squid)
● Vamos agora editar o arquivo de configuração do squid,
edite o arquivo /etc/squid3/squid.conf
● Procure pelas linhas (1042):
● # acl localnet src …
● E adicione a linha
acl rede src 192.168.32.0/19
● Agora procure pela linha (1211):
● # http_access allow localnet
● E adicione a linha
http_access allow rede
Servidor Proxy (Squid)
● Reinicie o squid
– $ systemctl reload squid3.service ou
– $ service squid3 reload ou
– $ squid3 -k reconfigure
● Verifique seu status
● Configure seu navegador para utilizar como proxy o ip de
sua máquina virtual na porta 3128
● Veja seus logs de navegação do seu proxy :
– $ tail -f /var/log/squid3/access.log
● Com isto você começa a consumir recursos do seu
servidor, monitore com o htop e tcptrack -i eth0 por
exemplo.
Servidor Proxy (Squid)
● Vamos começar com a parte interessante, vamos bloquear
download de arquivos executáveis (.exe) e arquivos .pif
(possíveis vírus quando o usuario clica em seu e-mail)
● Vamos também bloquear o site da globo.com
● Edite novamente seu arquivo de configuração do squid
em /etc/squid3/squid.conf
● Procure por sua acl rede e adicione as linhas:
acl globo url_regex -i globo.com
acl extensoes url_regex -i .exe(?.*)?$ .pif(?.*)?$
● Agora procure por sua linha http_access allow rede e deixe
ela assim:
http_access allow rede !globo !extensoes
Servidor Proxy (Squid)
● Reinicie seu proxy e faça os testes.
● Apenas lembrando...
– $ systemctl reload squid3.service ou
– $ service squid3 reload ou
– $ squid3 -k reconfigure
Servidor Proxy (Squid)
● Algumas configurações a mais do proxy
● Procure por cache_mgr e abaixo dos comentários adicione a
linha:
cache_mgr seuemail@dominio.com
● Procure por visible_hostname e abaixo dos comentários
adicione a linha:
visible_hostname debian.unifebe.edu.br (ou suas
informações)
● Procure por dns_nameservers e abaixo dos comentários
adicione a linha:
dns_nameservers 192.168.40.1
● Reinicie e verifique se o serviço funcionou, teste a alteração
da pagina de bloqueio.
Servidor Proxy (Squid)
● De um netstat -patun |grep 3128
● Verifique onde o squid está escutando na porta 3128
tcp6 0 0 :::3128 :::* OUÇA 1173/(squid-1)
● Baseado na informação anterior, a porta 3128 está aberta para
qualquer interface de rede.
● Sabemos que servidores proxy possuem no mínimo duas
interfaces de rede, uma que vem a internet e outra que vai para a
rede interna.
● Com esta informação acima, o seu servidor proxy estará “ouvindo”
em qualquer interface de rede que tiver em sua máquina, com isto,
corremos o risco de alguém da internet acessar a porta 3128 caso
você não possua um firewall bloqueando-a.
● Para evitar contratempos, o correto é configurar o squid para
“ouvir” somente nas redes internas.
Servidor Proxy (Squid)
● Altere a linha http_port 3128 para:
http_port 10.0.2.15:3128 (onde 10.0.2.15 é o seu IP)
http_port 127.0.0.1:3128
● Com isto seu squid abrirá a porta do proxy apenas na rede
local e no localhost
● De um reload na configuração e faça a verificação novamente
com o comando netstat -patun |grep 3128, deve ficar algo
em torno disto:
tcp 0 0 127.0.0.1:3128 0.0.0.0:* OUÇA 1173/(squid-1)
tcp 0 0 10.0.2.15:3128 0.0.0.0:* OUÇA 1173/(squid-1)
Servidor Proxy (Squid)
● Por padrão o squid não faz cache, precisamos habilitar estas
duas linhas no squid.conf:
● Descomente e altere a variável cache_mem 256 MB para:
cache_mem 64 MB
● Descomente a linha
cache_dir ufs /var/spool/squid3 100 16 256
● Pare o squid
● Inicie o squid novamente
● Utilize o comando squid3 -z para criar o cache (caso
necessário)
● Verifique se os arquivos de cache foram criados em
/var/spool/squid3
Servidor Proxy (Squid/Calc. Hard.)
● Considerando o seguinte exemplo:
- 100Gb de espaço no cache_dirs
cache_dir ufs /var/spool/squid/ 100000 16 256
- 10Mb por cada giga dos 100Gb do cache_dirs em sistemas 32bits, em
64bits 16Mb por cada giga.
- 256Mb de cache_mem
- 20Mb adicional sugerido para o cálculo.
● Conta:
para sistemas 32bits
100 * 10 = 1000Mb + 256M + 20M = 1276Mb onde você deverá ter de ram
pelo menos o dobro desse valor, ou seja, você teria que ter na máquina 2552
Mb de RAM.
cache_mem = 1276 MB
Servidor Proxy (Squid/Calc. Hard.)
● para sistemas 64bits
100 * 16 = 1600Mb + 256M + 20M = 1876Mb onde você deverá ter de ram
pelo menos o dobro desse valor, ou seja, você teria que ter na máquina
3752Mb
cache_mem = 1876 MB
● Para nossa maquina virtual que possui 1 core e 256 mb RAM e 3 gb de
espaço livre para o cache em um sistema 32 bits, as variáveis corretas são:
Invertendo a conta: (256MB – 20MB – (3* 10Mb))/ 2 = 103
cache_mem 103 MB
cache_dir ufs /var/spool/squid3/ 3000 16 256
(lembre que a recomendação é máxima 8 GB por diretório de cache)
Servidor Proxy (Squid)
● Mais configurações sobre o cache:
maximum_object_size_in_memory 64 KB
(tamanho dos objetos que ficam na RAM)
maximum_object_size 512 MB
minimum_object_size 0 KB
(tamanho dos arquivos em disco)
● Faça testes e verifique o cache com o ncdu
Servidor Proxy (Squid)
● Regras por ip específico:
acl estacao-1 src 192.168.50.10
acl estacao-2 src 192.168.50.11
acl webmail url_regex -i “/etc/squid3/webmails.txt“
http_access allow estacao-1
http_access allow estacao-2 !globo !extensoes
http_access allow rede !globo !webmail !extensoes
● Procure sempre estabelecer as regras de liberações
antes das regras de proibições
● Faça regras de bloqueio de redes sociais
Servidor Proxy (Squid)
● Regras por horário
S domingo M segunda-feira T terça-feira
W quarta-feira H quinta-feira F sexta-feira
A sábado
acl almoco time MTWHFA 12:00-14:00
● Faça testes como por exemplo, liberar o acesso ao
webmail no horário do almoço.
Servidor Proxy (Squid)
● Para liberar no horário do almoço as regras ficariam
assim:
http_access allow webmail almoco
http_access allow rede !globo !webmail !extensoes
Servidor Proxy (Squid)
● Liberação de portas no proxy
● As vezes é necessário acessar algum site utilizando o
proxy que funciona em uma porta fora do padrão, como
por exemplo 8080, 2573, 10000 etc.
● Para liberar este acesso você deve adicionar linhas nas
regras Safe_ports, como por exemplo:
acl Safe_Ports port 8080
acl Safe_Ports port 2573
● Caso a porta 10000 seja SSL (geralmente utilizada no
webmin) adicione a linha assim:
acl SSL_ports port 10000
Dúvidas?

Contenu connexe

Tendances

Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaLucas Brasilino
 
Sistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosSistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosDeroci Nonato Júnior
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website CacheavelLucas Brasilino
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Tiago Hillebrandt
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadCavalcante Treinamentos
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLLeonardo Cezar
 
Kdc spoofing com kerberos mit
Kdc spoofing com kerberos mitKdc spoofing com kerberos mit
Kdc spoofing com kerberos mitMarcelo Fleury
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITDiego Santos
 
Projeto Terminais Leves Linux
Projeto Terminais Leves LinuxProjeto Terminais Leves Linux
Projeto Terminais Leves LinuxMarco Neves
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosFernando Mercês
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Felipe Santos
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanJuliano Atanazio
 

Tendances (18)

Adequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema cargaAdequação do servidor Proxy/Cache Squid a redes de extrema carga
Adequação do servidor Proxy/Cache Squid a redes de extrema carga
 
Php WatchDog
Php WatchDogPhp WatchDog
Php WatchDog
 
Sistema de Banco de Dados Distribuídos
Sistema de Banco de Dados DistribuídosSistema de Banco de Dados Distribuídos
Sistema de Banco de Dados Distribuídos
 
Criando um Website Cacheavel
Criando um Website CacheavelCriando um Website Cacheavel
Criando um Website Cacheavel
 
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
 
Replicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManagerReplicação PostgreSQL com RepManager
Replicação PostgreSQL com RepManager
 
pfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpadpfSense - Proxy com arquivo arquivo pac e wpad
pfSense - Proxy com arquivo arquivo pac e wpad
 
Axuste do Kernel 2.6
Axuste do Kernel 2.6Axuste do Kernel 2.6
Axuste do Kernel 2.6
 
Alta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQLAlta disponibilidade com PostgreSQL
Alta disponibilidade com PostgreSQL
 
Ubuntued blog
Ubuntued blogUbuntued blog
Ubuntued blog
 
Kdc spoofing com kerberos mit
Kdc spoofing com kerberos mitKdc spoofing com kerberos mit
Kdc spoofing com kerberos mit
 
KDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MITKDC Spoofing com Kerberos MIT
KDC Spoofing com Kerberos MIT
 
Projeto Terminais Leves Linux
Projeto Terminais Leves LinuxProjeto Terminais Leves Linux
Projeto Terminais Leves Linux
 
Dhcp
DhcpDhcp
Dhcp
 
Criando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutosCriando um site com LAMP e Joomla em 30 minutos
Criando um site com LAMP e Joomla em 30 minutos
 
Gnome no FreeBSD
Gnome no FreeBSDGnome no FreeBSD
Gnome no FreeBSD
 
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
Block Hosts: Bloqueando Ataques De ForçA Bruta (Brute Force) Em Ftp, Ssh E Ou...
 
Gerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarmanGerenciamento de Backups PostgreSQL com pgbarman
Gerenciamento de Backups PostgreSQL com pgbarman
 

Similaire à Configuração Básica do Proxy Squid

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDFrederico Madeira
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdFrederico Madeira
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Danilo Filitto
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Marlon Willrich
 
Intro-To-Squid
Intro-To-SquidIntro-To-Squid
Intro-To-Squidfbexiga
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Aécio Pires
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresDouglas V. Pasqua
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores LinuxAlessandro Silva
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univemevandrovv
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Tiago Hillebrandt
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLJohnes Castro
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores LinuxSoftD Abreu
 
Sistemas operacionais 14
Sistemas operacionais 14Sistemas operacionais 14
Sistemas operacionais 14Nauber Gois
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxLuiz Francisco Bozo
 
Aula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAndrei Carniel
 

Similaire à Configuração Básica do Proxy Squid (20)

Alta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBDAlta Disponibilidade utilizando Pacemaker e DRBD
Alta Disponibilidade utilizando Pacemaker e DRBD
 
Alta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e DrbdAlta Disponibilidade em Linux com Heartbeat e Drbd
Alta Disponibilidade em Linux com Heartbeat e Drbd
 
Servidor proxy Squid
Servidor proxy SquidServidor proxy Squid
Servidor proxy Squid
 
Apache proxy
Apache proxyApache proxy
Apache proxy
 
Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)Servidor de internet (NAT, Squid, Sarg)
Servidor de internet (NAT, Squid, Sarg)
 
GlusterFs
GlusterFsGlusterFs
GlusterFs
 
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
Minicurso GNU/Linux básico - Aula1 - Semana Sistemas de Informação 2015 - UNI...
 
“Squid” por Artur Martins, David Riedel e Florentino Bexiga
“Squid” por Artur Martins, David Riedel e Florentino Bexiga“Squid” por Artur Martins, David Riedel e Florentino Bexiga
“Squid” por Artur Martins, David Riedel e Florentino Bexiga
 
Intro-To-Squid
Intro-To-SquidIntro-To-Squid
Intro-To-Squid
 
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
Instalação do Squid3 através da compilação do código fonte no Ubuntu 12.04/14...
 
Tuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedoresTuning Apache/MySQL/PHP para desenvolvedores
Tuning Apache/MySQL/PHP para desenvolvedores
 
Seguranca em Servidores Linux
Seguranca em Servidores LinuxSeguranca em Servidores Linux
Seguranca em Servidores Linux
 
Mini Curso - Pen Test - Univem
Mini Curso - Pen Test - UnivemMini Curso - Pen Test - Univem
Mini Curso - Pen Test - Univem
 
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
Melhorando o desempenho do seu WordPress [WordCamp São Paulo 2015]
 
Apresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQLApresentação PGDAY - Replicação Nativa - PostgreSQL
Apresentação PGDAY - Replicação Nativa - PostgreSQL
 
Segurança em servidores Linux
Segurança em servidores LinuxSegurança em servidores Linux
Segurança em servidores Linux
 
Sistemas operacionais 14
Sistemas operacionais 14Sistemas operacionais 14
Sistemas operacionais 14
 
Trab linux+sarg
Trab linux+sargTrab linux+sarg
Trab linux+sarg
 
Tutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando LinuxTutorial do shell script para Clonar HDs WIN7 usando Linux
Tutorial do shell script para Clonar HDs WIN7 usando Linux
 
Aula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e ScriptsAula 8.2 - Iptables Impasses e Scripts
Aula 8.2 - Iptables Impasses e Scripts
 

Configuração Básica do Proxy Squid

  • 1. GNU/Linux Básico Proxy Aula 2 - Servidor Proxy (Squid) Marlon Willrich marlon@unifebe.edu.br Núcleo de Informática - UNIFEBE 29/10/2015
  • 2. Servidor Proxy (Squid) ● Um servidor proxy é um computador intermediário que fica entre o computador do usuário e a Internet. Pode ser utilizado para registrar o usuo da Internet e também para bloquear o acesso a um site. ● Site do Squid: www.squid-cache.org ● Possui muita documentação e diversos exemplos
  • 3. Servidor Proxy (Squid) ● aptitude install squid3 ● Serviço de Proxy mais utilizado em servidores GNU/Linux ● Diretório de configuração /etc/squid3/ ● Arquivo de configuração do servidor squid.conf ● Arquivo todo documentado em /usr/share/doc/squid3-common/ ● Reinicio systemctl reload squid3.service ou squid3 -k reconfigure ● Diretorio cache /var/spool/squid3 ● O Squid trabalha por padrão na porta 3128
  • 4. Servidor Proxy (Squid) ● Como podemos saber se o processo está em execução? Podemos saber através de alguns comandos da aula passada: – $ ps -aux (lista todos os processos do sistema) – Para fazermos um filtro nesta listagem, podemos utilizar o comando grep – $ ps -aux |grep squid – Assim teremos como resultado somente os processos com o nome squid
  • 5. Servidor Proxy (Squid) ● Outra forma de testarmos, e vermos se a porta do serviço 3128 está aberta no sistema através do comando netstat: – $ netstat -patun (lista todas as conexões ativas) – E voltando ao nosso grep para filtrar podemos fazer assim – $ netstat -patun |grep 3128 ● E claro, a forma padrão de visualização é : – $ systemctl status squid3.service – Ou – $ service squid3 status (forma antiga)
  • 6. Servidor Proxy (Squid) ● Vamos agora editar o arquivo de configuração do squid, edite o arquivo /etc/squid3/squid.conf ● Procure pelas linhas (1042): ● # acl localnet src … ● E adicione a linha acl rede src 192.168.32.0/19 ● Agora procure pela linha (1211): ● # http_access allow localnet ● E adicione a linha http_access allow rede
  • 7. Servidor Proxy (Squid) ● Reinicie o squid – $ systemctl reload squid3.service ou – $ service squid3 reload ou – $ squid3 -k reconfigure ● Verifique seu status ● Configure seu navegador para utilizar como proxy o ip de sua máquina virtual na porta 3128 ● Veja seus logs de navegação do seu proxy : – $ tail -f /var/log/squid3/access.log ● Com isto você começa a consumir recursos do seu servidor, monitore com o htop e tcptrack -i eth0 por exemplo.
  • 8. Servidor Proxy (Squid) ● Vamos começar com a parte interessante, vamos bloquear download de arquivos executáveis (.exe) e arquivos .pif (possíveis vírus quando o usuario clica em seu e-mail) ● Vamos também bloquear o site da globo.com ● Edite novamente seu arquivo de configuração do squid em /etc/squid3/squid.conf ● Procure por sua acl rede e adicione as linhas: acl globo url_regex -i globo.com acl extensoes url_regex -i .exe(?.*)?$ .pif(?.*)?$ ● Agora procure por sua linha http_access allow rede e deixe ela assim: http_access allow rede !globo !extensoes
  • 9. Servidor Proxy (Squid) ● Reinicie seu proxy e faça os testes. ● Apenas lembrando... – $ systemctl reload squid3.service ou – $ service squid3 reload ou – $ squid3 -k reconfigure
  • 10. Servidor Proxy (Squid) ● Algumas configurações a mais do proxy ● Procure por cache_mgr e abaixo dos comentários adicione a linha: cache_mgr seuemail@dominio.com ● Procure por visible_hostname e abaixo dos comentários adicione a linha: visible_hostname debian.unifebe.edu.br (ou suas informações) ● Procure por dns_nameservers e abaixo dos comentários adicione a linha: dns_nameservers 192.168.40.1 ● Reinicie e verifique se o serviço funcionou, teste a alteração da pagina de bloqueio.
  • 11. Servidor Proxy (Squid) ● De um netstat -patun |grep 3128 ● Verifique onde o squid está escutando na porta 3128 tcp6 0 0 :::3128 :::* OUÇA 1173/(squid-1) ● Baseado na informação anterior, a porta 3128 está aberta para qualquer interface de rede. ● Sabemos que servidores proxy possuem no mínimo duas interfaces de rede, uma que vem a internet e outra que vai para a rede interna. ● Com esta informação acima, o seu servidor proxy estará “ouvindo” em qualquer interface de rede que tiver em sua máquina, com isto, corremos o risco de alguém da internet acessar a porta 3128 caso você não possua um firewall bloqueando-a. ● Para evitar contratempos, o correto é configurar o squid para “ouvir” somente nas redes internas.
  • 12. Servidor Proxy (Squid) ● Altere a linha http_port 3128 para: http_port 10.0.2.15:3128 (onde 10.0.2.15 é o seu IP) http_port 127.0.0.1:3128 ● Com isto seu squid abrirá a porta do proxy apenas na rede local e no localhost ● De um reload na configuração e faça a verificação novamente com o comando netstat -patun |grep 3128, deve ficar algo em torno disto: tcp 0 0 127.0.0.1:3128 0.0.0.0:* OUÇA 1173/(squid-1) tcp 0 0 10.0.2.15:3128 0.0.0.0:* OUÇA 1173/(squid-1)
  • 13. Servidor Proxy (Squid) ● Por padrão o squid não faz cache, precisamos habilitar estas duas linhas no squid.conf: ● Descomente e altere a variável cache_mem 256 MB para: cache_mem 64 MB ● Descomente a linha cache_dir ufs /var/spool/squid3 100 16 256 ● Pare o squid ● Inicie o squid novamente ● Utilize o comando squid3 -z para criar o cache (caso necessário) ● Verifique se os arquivos de cache foram criados em /var/spool/squid3
  • 14. Servidor Proxy (Squid/Calc. Hard.) ● Considerando o seguinte exemplo: - 100Gb de espaço no cache_dirs cache_dir ufs /var/spool/squid/ 100000 16 256 - 10Mb por cada giga dos 100Gb do cache_dirs em sistemas 32bits, em 64bits 16Mb por cada giga. - 256Mb de cache_mem - 20Mb adicional sugerido para o cálculo. ● Conta: para sistemas 32bits 100 * 10 = 1000Mb + 256M + 20M = 1276Mb onde você deverá ter de ram pelo menos o dobro desse valor, ou seja, você teria que ter na máquina 2552 Mb de RAM. cache_mem = 1276 MB
  • 15. Servidor Proxy (Squid/Calc. Hard.) ● para sistemas 64bits 100 * 16 = 1600Mb + 256M + 20M = 1876Mb onde você deverá ter de ram pelo menos o dobro desse valor, ou seja, você teria que ter na máquina 3752Mb cache_mem = 1876 MB ● Para nossa maquina virtual que possui 1 core e 256 mb RAM e 3 gb de espaço livre para o cache em um sistema 32 bits, as variáveis corretas são: Invertendo a conta: (256MB – 20MB – (3* 10Mb))/ 2 = 103 cache_mem 103 MB cache_dir ufs /var/spool/squid3/ 3000 16 256 (lembre que a recomendação é máxima 8 GB por diretório de cache)
  • 16. Servidor Proxy (Squid) ● Mais configurações sobre o cache: maximum_object_size_in_memory 64 KB (tamanho dos objetos que ficam na RAM) maximum_object_size 512 MB minimum_object_size 0 KB (tamanho dos arquivos em disco) ● Faça testes e verifique o cache com o ncdu
  • 17. Servidor Proxy (Squid) ● Regras por ip específico: acl estacao-1 src 192.168.50.10 acl estacao-2 src 192.168.50.11 acl webmail url_regex -i “/etc/squid3/webmails.txt“ http_access allow estacao-1 http_access allow estacao-2 !globo !extensoes http_access allow rede !globo !webmail !extensoes ● Procure sempre estabelecer as regras de liberações antes das regras de proibições ● Faça regras de bloqueio de redes sociais
  • 18. Servidor Proxy (Squid) ● Regras por horário S domingo M segunda-feira T terça-feira W quarta-feira H quinta-feira F sexta-feira A sábado acl almoco time MTWHFA 12:00-14:00 ● Faça testes como por exemplo, liberar o acesso ao webmail no horário do almoço.
  • 19. Servidor Proxy (Squid) ● Para liberar no horário do almoço as regras ficariam assim: http_access allow webmail almoco http_access allow rede !globo !webmail !extensoes
  • 20. Servidor Proxy (Squid) ● Liberação de portas no proxy ● As vezes é necessário acessar algum site utilizando o proxy que funciona em uma porta fora do padrão, como por exemplo 8080, 2573, 10000 etc. ● Para liberar este acesso você deve adicionar linhas nas regras Safe_ports, como por exemplo: acl Safe_Ports port 8080 acl Safe_Ports port 2573 ● Caso a porta 10000 seja SSL (geralmente utilizada no webmin) adicione a linha assim: acl SSL_ports port 10000