O que é um servidor proxy ? que serviço presta numa rede ?
Um servidor proxy funciona como um intermediário entre o browser cliente e o servidor onde está alojada a página que o cliente quer consultar. Portanto, resumidamente um proxy é um agente que tem autoridade para se passar por outro.
Um proxy, pode ajudar a melhorar o desempenho da Internet, porque poderá ser configurado para criar uma cópia das páginas Web mais visitadas pela rede local.
Em algumas situações, um proxy pode ser usado para filtrar o acesso a determinados conteúdos, ou poderá ser usado apenas para registar o acesso à Internet sem realizar qualquer tipo de filtragem.
O servidor proxy Squid é o mais conhecido e usado mundialmente. Podem consultar a sua página oficial aqui.
O servidor proxy Squid, suporta os seguintes protocolos vindos de clientes através de pedidos no formato HTTP:
apt-get update && apt-get install squid
Os ficheiros de configuração do squid estão localizados em /etc/squid
Devemos editar o ficheiro squid.conf para realizar alterações à configuração base.
Recomendo que realizem um backup do ficheiro, dá sempre jeito para voltar atrás em caso de asneira.
cd /etc/squid/
cp squid.conf squid.conf.bak
Tendo em conta que necessito utilizar o proxy, apenas quando estou fora da casa e usando a minha VPN, as particularidades mais relevantes desta configuração tem a ver com o facto de:
Deixo aqui uma cópia do meu ficheiro de configuração do Squid. Limpei o ficheiro original retirando comentários e configurações não relevantes para o meu cenário de rede.
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.100.0/23
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
cache deny all
Após gravar o ficheiro de configuração, é necessário reiniciar o serviço:
service squid restart
Podem também visualizar os acessos em tempo real ao proxy usando o seguinte comando:
tail -f /var/log/squid/access.log
Se quiserem alterar ou acrescentar alguma configuração, podem consultar este link oficial com explicação de todas as directivas de configuração do squid.
O servidor proxy Squid, suporta os seguintes protocolos vindos de clientes através de pedidos no formato HTTP:
- HyperText Transfer Protocol (HTTP)
- File Transfer Protocol (FTP)
- Gopher
- Wide Area Information Services (WAIS)
- Secure Socket Layer
A sua instalação passa obviamente pelo comando apt-get
apt-get update && apt-get install squid
Os ficheiros de configuração do squid estão localizados em /etc/squid
Devemos editar o ficheiro squid.conf para realizar alterações à configuração base.
Recomendo que realizem um backup do ficheiro, dá sempre jeito para voltar atrás em caso de asneira.
cd /etc/squid/
cp squid.conf squid.conf.bak
pico /etc/squid/squid.conf
Tendo em conta que necessito utilizar o proxy, apenas quando estou fora da casa e usando a minha VPN, as particularidades mais relevantes desta configuração tem a ver com o facto de:
- ter uma access-list para permitir acessos ao proxy vindos apenas da minha LAN 192.168.100.0/23 (pois a ponta do túnel da VPN fica com um IP na gama de IP's da minha LAN)
- ter desabilitado a cache, pois não necessito dessa funcionalidade e não tendo cache, sempre poupo o cartão SD do Raspberry a mais uns acessos de leitura/escrita desnecessários.
Deixo aqui uma cópia do meu ficheiro de configuração do Squid. Limpei o ficheiro original retirando comentários e configurações não relevantes para o meu cenário de rede.
acl all src all
acl manager proto cache_object
acl localhost src 127.0.0.1/32
acl to_localhost dst 127.0.0.0/8 0.0.0.0/32
acl localnet src 192.168.100.0/23
acl SSL_ports port 443 # https
acl SSL_ports port 563 # snews
acl SSL_ports port 873 # rsync
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 Safe_ports port 631 # cups
acl Safe_ports port 873 # rsync
acl Safe_ports port 901 # SWAT
acl purge method PURGE
acl CONNECT method CONNECT
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
http_access allow localnet
http_access deny all
icp_access allow localnet
icp_access deny all
http_port 3128
hierarchy_stoplist cgi-bin ?
access_log /var/log/squid/access.log squid
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern ^gopher: 1440 0% 1440
refresh_pattern -i (/cgi-bin/|\?) 0 0% 0
refresh_pattern (Release|Packages(.gz)*)$ 0 20% 2880
refresh_pattern . 0 20% 4320
acl shoutcast rep_header X-HTTP09-First-Line ^ICY.[0-9]
upgrade_http0.9 deny shoutcast
acl apache rep_header Server ^Apache
broken_vary_encoding allow apache
extension_methods REPORT MERGE MKACTIVITY CHECKOUT
hosts_file /etc/hosts
coredump_dir /var/spool/squid
cache deny all
Após gravar o ficheiro de configuração, é necessário reiniciar o serviço:
service squid restart
Podem também visualizar os acessos em tempo real ao proxy usando o seguinte comando:
tail -f /var/log/squid/access.log
Se quiserem alterar ou acrescentar alguma configuração, podem consultar este link oficial com explicação de todas as directivas de configuração do squid.
Desculpa a minha ignorância, mas qual é o ip que coloco no PC fora de casa?!
ResponderEliminarOlá, pelo contrário, a tua pergunta não tem nada de ignorância. Quando ligas a VPN, o servidor faz um push de uma rota para a tua rede em casa, tendo como next-hop o túnel da VPN. Basicamente o que isto significa é que se o teu PC fora de casa quiser aceder a alguma máquina da rede de casa, vai enviar o tráfego pelo túnel da VPN. Sendo assim, para usares o proxy, colocas o IP do servidor que está em casa com o proxy.
EliminarEspero ter ajudado. Se tiveres dúvidas pergunta. E já agora, se conseguires por tudo a funcionar, avisa.
Olá, para se fazer a ligação ao servidor de proxy (http proxy) deve-se indicar o Ip do raspberry e o porto é o 3128 correto?
ResponderEliminarOlá,
EliminarSim, a ultimas versões do squid, configuram por defeito esse porto.
Basta depois no browser configurar o ip do raspberry com esse porto.