Servidor Proxy: mudanças entre as edições
(41 revisões intermediárias pelo mesmo usuário não estão sendo mostradas) | |||
Linha 13: | Linha 13: | ||
==Squid== | ==Squid== | ||
;Instalação: No Linux um '''servidor Proxy''' é implementado pelo pacote '''Squid''', instalado com o comando: | ;Instalação: No Linux um '''servidor Proxy''' é implementado pelo pacote '''[https://help.ubuntu.com/lts/serverguide/squid.html.en Squid]''', instalado com o comando: | ||
sudo apt | sudo apt install squid | ||
; | ;Arquivo de configuração: A configuração do '''Squid''' feita no arquivo | ||
/etc/ | /etc/squid/squid.conf | ||
:Antes de editar o arquivo de configuração, faça uma cópia backup do arquivo original para recuperar as configurações originais, caso necesário: | :Antes de editar o arquivo de configuração, faça uma '''cópia backup''' do '''arquivo original''' para recuperar as configurações originais, caso necesário: | ||
sudo cp /etc/ | sudo cp /etc/squid/squid.conf /etc/squid/squid.conf-original | ||
O | O arquivo '''squid.conf''' é bastante extenso e complexo, entretanto, com uma configuração mínima já é possível de ser utilizado. Procure no arquivo as TAGS abaixo e retire os comentários caso seja necessário para habilitar os seguintes parâmetros básicos: | ||
# TAG: http_port | |||
http_port 3128 | |||
# Especifica a '''porta padrão''' de escuta do '''squid'''. | |||
: | |||
# TAG: cache_dir | |||
cache_dir ufs /var/spool/squid 100 16 256 | |||
# '''Deve ser descomentado'''. | |||
# Define o '''diretório cache''' do Squid ('''/var/spool/squid3''') | |||
# Por padrão tem tamanho máximo de 100 MB, com 16 diretórios, cada um com 256 sub-diretórios. | |||
<!-- | |||
# TAG: visible_hostname | |||
visible_hostname ubuntuServidor # Nome do servidor informado pelo comando '''hostname''' | |||
# Default: O sistema detecta automaticamente o hostname--> | |||
===Listas de controle de acesso=== | ===Listas de controle de acesso=== | ||
Com o Squid é possível | Com o '''Squid''' é possível '''bloquear''' ou '''liberar acesso''' a determinados sites ou redes, em determinados dias e horários. | ||
O '''controle de acesso''' é realizado através das chamadas listas '''ACL''' (''Access Control List''). | O '''controle de acesso''' é realizado através das chamadas listas '''ACL''' (''Access Control List''). | ||
# TAG: acl | |||
O '''formato geral''' de uma '''ACL''' é: | |||
# acl aclname acltype argument ... | |||
# acl aclname acltype "file" ... | |||
:O '''aclname''' é o nome escolhido para a regra, '''acltype''' define a origem, destino, tempo, etc, o '''argument''' define números IP, máscara de rede etc, e '''file''' deve conter o caminho e nome do arquivo que definirá uma coleção de máquinas ou sites Web, etc. | |||
:Verifique os '''tipos de regras acl''' ('''acltype''') disponíveis procurando no arquivo '''squid.conf''': | |||
# ***** ACL TYPES AVAILABLE ***** | |||
Algumas regras default são pré definidas: | |||
# ACLs all, manager, localhost, and to_localhost | |||
'''Recomendação mínima''' de configuração para permitir acesso dos computadores a partir da '''rede local''': | |||
acl localnet src 192.168.70.0/23 | |||
:'''Localizar e descomentar''' esta ACL de acordo com o '''endereçamento IP''' da '''rede local'''. | |||
Verifique logo abaixo no arquivo '''squid.conf''' a configuração padrão para as listas ACL permitindo somente acesso as '''portas específicas''': | |||
acl SSL_ports port 443 | |||
acl Safe_ports port 80 # http | |||
acl Safe_ports port 21 # ftp | |||
acl Safe_ports port 443 # https | |||
acl Safe_ports port 1025-65535 # unregistered ports | |||
acl CONNECT method CONNECT | |||
#Bloqueia se não for porta segura | |||
http_access deny !Safe_ports | |||
#Bloqueia se não for conexão SSL | |||
http_access deny CONNECT !SSL_ports | |||
====Inserção de regras ACL de controle de acesso==== | |||
Procure no arquivo '''squid.conf''' o local adequado para inserir regras ACL de controle de acesso para usuários do Proxy: | |||
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS | |||
'''Aqui são inseridas novas regras para permitir acesso a clientes''' | |||
:A ordem das regras é importante, pois o Squid interpreta as regras na ordem em que são colocadas no arquivo. Se você permite que o computador X acesse o Proxy, ele acessa, mesmo que uma regra mais abaixo diga que não <ref name=MORIMOTO>MORIMOTO, C. E. Seridores Linux: Guia prático, Sul Editores, Porto Alegre, 2013.</ref>. | |||
Logo abaixo, '''procure e retire o comentário''' da regra para permitir acesso a partir de sua '''rede local''', juntamente com a permissão do acesso pelo '''localhost''' (já habilitado por default): | |||
http_access allow localnet | |||
http_access allow localhost | |||
Finalmente, deve-se bloquear todos os demais acessos ao Proxy, o que é está configurado por default: | |||
# | # And finally deny all other access to this proxy | ||
http_access deny all | |||
===Exemplos de regras ACL=== | |||
Referência <ref name=VALLE/>. | |||
;Permitir acesso somente da rede local: | |||
acl localnet src 192.168.70.0/23 | |||
acl localnet src 192.168. | |||
http_access allow localnet | http_access allow localnet | ||
;Bloquear acesso a determinados computadores da rede local: | |||
acl | acl hosts src 192.168.70.10/32 192.168.70.11/32 | ||
http_access deny | http_access deny hosts | ||
;Bloquear acesso a sites indesejáveis: | |||
acl sites dstdomain "/etc/squid3/acl/sites-deny" | acl sites dstdomain "/etc/squid3/acl/sites-deny" | ||
http_access deny sites | http_access deny sites | ||
:Neste caso deve-se criar o arquivo '''/etc/ | :Neste caso deve-se criar o arquivo '''/etc/squid/acl/sites-deny''' e inserir os sites indesejados, um por linha. | ||
;Restringir horário de acesso: | |||
acl horario time MTWHF 08:00-18:00 | acl horario time MTWHF 08:00-18:00 | ||
http_access allow localnet horario | http_access allow localnet horario | ||
Linha 61: | Linha 103: | ||
:Onde: S=domingo, M=segunda, T=terça, W=quarta, H=quinta, F=sexta e A=sábado. | :Onde: S=domingo, M=segunda, T=terça, W=quarta, H=quinta, F=sexta e A=sábado. | ||
===Reiniciar o serviço de Proxy=== | |||
Depois de realizar modificações no arquivo /etc/squid/squid.conf, o serviço de '''Proxy''' deve ser reiniciado com o comando: | |||
sudo systemctl restart squid.service | |||
==Tarefa: Servidor Proxy== | |||
Cada '''navegador''' que for utilizar o '''servidor Proxy''' deve ser configurado. | |||
No '''Firefox''' a configuração do Proxy é acessada por '''Preferências -> Geral -> Configurações de Rede -> Configurar conexão''': | |||
[[Arquivo:ConfigProxy.png|500px]] | |||
Modifique a configuração do '''Proxy''' e acrescente em '''HTTP''': <IP_do_Servidor_Proxy> e '''Porta''': 3128 e clique em '''Usar este proxy para todos os protocolos'''. | |||
*Testar o acesso a um site Web. | |||
*Testar o bloqueio de acesso a determinados computadores da rede local. | |||
*Testar o bloqueio de acesso a determinados sites Web. | |||
Os arquivos e páginas acessadas são armazenados no diretório '''/var/spool/squid/''' e são criptografados pelo Squid, não sendo possível verificar os dados em ''cache''. | |||
==Referências== | ==Referências== |
Edição atual tal como às 17h39min de 31 de maio de 2021
Servidor Proxy
Um servidor Proxy é uma espécie de memória cache comunitária na qual cada página Web que um usuário acessar ficará armazenada na cache do servidor. Quando um usuário acessa um conteúdo o navegador primeiro faz a requisição ao servidor Proxy. Se a página requisitada estiver na cache o servidor Proxy entrega imediatamente. Se a página não estiver na cache o servidor Proxy faz a consulta na Internet, requisita o conteúdo, e armazena em sua cache [1].
Ao utilizar um Proxy, além da configuração do servidor é necessário configurar cada um dos navegadores e outros programas que vão acessar a Internet via servidor Proxy.
Squid
- Instalação
- No Linux um servidor Proxy é implementado pelo pacote Squid, instalado com o comando:
sudo apt install squid
- Arquivo de configuração
- A configuração do Squid feita no arquivo
/etc/squid/squid.conf
- Antes de editar o arquivo de configuração, faça uma cópia backup do arquivo original para recuperar as configurações originais, caso necesário:
sudo cp /etc/squid/squid.conf /etc/squid/squid.conf-original
O arquivo squid.conf é bastante extenso e complexo, entretanto, com uma configuração mínima já é possível de ser utilizado. Procure no arquivo as TAGS abaixo e retire os comentários caso seja necessário para habilitar os seguintes parâmetros básicos:
# TAG: http_port http_port 3128 # Especifica a porta padrão de escuta do squid.
# TAG: cache_dir cache_dir ufs /var/spool/squid 100 16 256 # Deve ser descomentado. # Define o diretório cache do Squid (/var/spool/squid3) # Por padrão tem tamanho máximo de 100 MB, com 16 diretórios, cada um com 256 sub-diretórios.
Listas de controle de acesso
Com o Squid é possível bloquear ou liberar acesso a determinados sites ou redes, em determinados dias e horários.
O controle de acesso é realizado através das chamadas listas ACL (Access Control List).
# TAG: acl
O formato geral de uma ACL é:
# acl aclname acltype argument ... # acl aclname acltype "file" ...
- O aclname é o nome escolhido para a regra, acltype define a origem, destino, tempo, etc, o argument define números IP, máscara de rede etc, e file deve conter o caminho e nome do arquivo que definirá uma coleção de máquinas ou sites Web, etc.
- Verifique os tipos de regras acl (acltype) disponíveis procurando no arquivo squid.conf:
# ***** ACL TYPES AVAILABLE *****
Algumas regras default são pré definidas:
# ACLs all, manager, localhost, and to_localhost
Recomendação mínima de configuração para permitir acesso dos computadores a partir da rede local:
acl localnet src 192.168.70.0/23
- Localizar e descomentar esta ACL de acordo com o endereçamento IP da rede local.
Verifique logo abaixo no arquivo squid.conf a configuração padrão para as listas ACL permitindo somente acesso as portas específicas:
acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 1025-65535 # unregistered ports acl CONNECT method CONNECT #Bloqueia se não for porta segura http_access deny !Safe_ports #Bloqueia se não for conexão SSL http_access deny CONNECT !SSL_ports
Inserção de regras ACL de controle de acesso
Procure no arquivo squid.conf o local adequado para inserir regras ACL de controle de acesso para usuários do Proxy:
# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS
Aqui são inseridas novas regras para permitir acesso a clientes
- A ordem das regras é importante, pois o Squid interpreta as regras na ordem em que são colocadas no arquivo. Se você permite que o computador X acesse o Proxy, ele acessa, mesmo que uma regra mais abaixo diga que não [2].
Logo abaixo, procure e retire o comentário da regra para permitir acesso a partir de sua rede local, juntamente com a permissão do acesso pelo localhost (já habilitado por default):
http_access allow localnet http_access allow localhost
Finalmente, deve-se bloquear todos os demais acessos ao Proxy, o que é está configurado por default:
# And finally deny all other access to this proxy http_access deny all
Exemplos de regras ACL
Referência [1].
- Permitir acesso somente da rede local
acl localnet src 192.168.70.0/23 http_access allow localnet
- Bloquear acesso a determinados computadores da rede local
acl hosts src 192.168.70.10/32 192.168.70.11/32 http_access deny hosts
- Bloquear acesso a sites indesejáveis
acl sites dstdomain "/etc/squid3/acl/sites-deny" http_access deny sites
- Neste caso deve-se criar o arquivo /etc/squid/acl/sites-deny e inserir os sites indesejados, um por linha.
- Restringir horário de acesso
acl horario time MTWHF 08:00-18:00 http_access allow localnet horario http_access deny localnet
- Onde: S=domingo, M=segunda, T=terça, W=quarta, H=quinta, F=sexta e A=sábado.
Reiniciar o serviço de Proxy
Depois de realizar modificações no arquivo /etc/squid/squid.conf, o serviço de Proxy deve ser reiniciado com o comando:
sudo systemctl restart squid.service
Tarefa: Servidor Proxy
Cada navegador que for utilizar o servidor Proxy deve ser configurado.
No Firefox a configuração do Proxy é acessada por Preferências -> Geral -> Configurações de Rede -> Configurar conexão:
Modifique a configuração do Proxy e acrescente em HTTP: <IP_do_Servidor_Proxy> e Porta: 3128 e clique em Usar este proxy para todos os protocolos.
- Testar o acesso a um site Web.
- Testar o bloqueio de acesso a determinados computadores da rede local.
- Testar o bloqueio de acesso a determinados sites Web.
Os arquivos e páginas acessadas são armazenados no diretório /var/spool/squid/ e são criptografados pelo Squid, não sendo possível verificar os dados em cache.
Referências
--Evandro.cantu (discussão) 11h10min de 22 de fevereiro de 2016 (BRT)