Ferramentas de Usuário

Ferramentas de Site


pt:buster:intranet:proxy:squid

3.3.1 Cache web: Squid

O pacote squid é um proxy Internet com uma cache integrada. A vantagem de uma cache internet é a de guardar localmente dados pedidos anteriormente para, numa utilização futura, serem servidos localmente, evitando acessos repetidos a servidores distantes.

Instalação

<sxh bash; highlight: [1]> root@server:~# apt install squid </sxh>

Configuração

A configuração do squid é guardada no ficheiro /etc/squid/squid.conf.

O squid aceita ligações na porta 3128, por omissão. No entanto esta pode ser alterada (a porta 8080 também é muito utilizada com porta para o serviço de cache Internet):

<sxh; highlight: [4]; title: /etc/squid/squid.conf> #[…]

# Squid normally listens to port 3128 http_port 3128

#[…] </sxh>

Por segurança o squid só responderá a pedidos originados na rede local ou no próprio servidor. Esta restrição é conseguida definindo uma lista de controle de acesso ou ACL (Access Control List) (acl home.lan src 192.168.1.0/24) e autorizando o acesso apenas aos sistemas incluídos nessa lista (http_access allow home.lan):

Definição da lista de endereços da rede interna na secção acl:

<sxh; highlight: [24]; title: /etc/squid/squid.conf> # […]

# TAG: acl # Defining an Access List

# […]

#Default: # ACLs all, manager, localhost, and to_localhost are predefined. # # # Recommended minimum configuration: #

# Example rule allowing access from your local networks. # Adapt to list your (internal) IP networks from where browsing # should be allowed #acl localnet src 10.0.0.0/8 # RFC1918 possible internal network #acl localnet src 172.16.0.0/12 # RFC1918 possible internal network #acl localnet src 192.168.0.0/16 # RFC1918 possible internal network #acl localnet src fc00::/7 # RFC 4193 local private network range #acl localnet src fe80::/10 # RFC 4291 link-local (directly plugged) machines

acl home.lan src 192.168.1.0/24

# […] </sxh>

Definição das permissões de acesso na secção http_access:

<sxh; highlight: [13]; title: /etc/squid/squid.conf> # […]

# # INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS #

# Example rule allowing access from your local networks. # Adapt localnet in the ACL section to list your (internal) IP networks # from where browsing should be allowed #http_access allow localnet http_access allow localhost

http_access allow home.lan

# And finally deny all other access to this proxy http_access deny all

# […] </sxh>

O tamanho total da cache do squid pode ser afinado para um valor conveniente, como por exemplo, 2048Mb:

<sxh; highlight: [4-5]; title: /etc/squid/squid.conf> # […]

# Uncomment and adjust the following to add a disk cache directory. #cache_dir ufs /var/spool/squid 100 16 256 cache_dir ufs /var/spool/squid 2048 16 256

# […] </sxh>

A identificação do servidor proxy pode também ser definida:

<sxh; highlight: [11]; title: /etc/squid/squid.conf> # […]

# TAG: visible_hostname # If you want to present a special hostname in error messages, etc, # define this. Otherwise, the return value of gethostname() # will be used. If you have multiple caches in a cluster and # get errors about IP-forwarding you must set them to have individual # names with this setting. #Default: # Automatically detect the system host name visible_hostname proxy.home.lan

# […] </sxh>

Opcionalmente, pode-se também configurar o tamanho máximo de um objeto a guardar em cache definindo o parâmetro maximum_object_size:

<sxh; highlight: [15-16]; title: /etc/squid/squid.conf> # […]

# TAG: maximum_object_size (bytes) # Objects larger than this size will NOT be saved on disk. The # value is specified in kilobytes, and the default is 4MB. If # you wish to get a high BYTES hit ratio, you should probably # increase this (one 32 MB object hit counts for 3200 10KB # hits). If you wish to increase speed more than your want to # save bandwidth you should leave this low. # # NOTE: if using the LFUDA replacement policy you should increase # this value to maximize the byte hit rate improvement of LFUDA! # See replacement_policy below for a discussion of this policy. #Default: # maximum_object_size 4 MB maximum_object_size 16 MB

# […] </sxh>

Como segurança adicional, vamos também instruir o squid para não divulgar a sua versão:

<sxh; highlight: [6-7]; title: /etc/squid/squid.conf> # […]

# TAG: httpd_suppress_version_string on|off # Suppress Squid version string info in HTTP headers and HTML error pages. #Default: # httpd_suppress_version_string off httpd_suppress_version_string on

# […] </sxh>

O ficheiro de configuração pode ser testado:

<sxh bash; highlight: [1]> root@server:~# squid -k parse </sxh>

É mostrado um resumo da configuração. Se não houverem erros, podemos reiniciar o serviço squid:

<sxh bash; highlight: [1]> root@server:~# systemctl restart squid </sxh>

Configuração de clientes

É possível configurar o browser Firefox para utilizar um proxy, acedendo ao menu Ferramentas –> Opções… –> Avançadas –> Rede –> Definições…, ativar a opção Configuração manual do proxy e inserir o endereço do servidor proxy (192.168.1.100) e a porta (3128). Podem-se definir exceções para o próprio posto (127.0.0.1) e para a rede local (192.168.1.0/24):

Configuração do proxy no Firefox

Sistemas Linux

No caso de sistemas Linux, é possível declarar a variável http_proxy com a URL do proxy a utilizar:

<sxh bash; highlight: [1]> fribeiro@server:~$ export http_proxy=“http://192.168.1.100:3128/” </sxh>

No entanto, na próxima sessão terá que ser declarada novamente.

Um método mais duradouro é declarar a variável automaticamente a cada login, incluindo a declaração no ficheiro ~/.profile do utilizador:

<sxh bash; highlight: [1]> fribeiro@server:~$ echo 'http_proxy=“http://192.168.1.100:3128/”' » ~/.profile </sxh>

A declaração pode ainda ser feita de modo automático e para todos os utilizadores, se incluída no ficheiro de sistema /etc/profiles:

<sxh bash; highlight: [1]> root@server:~# echo 'http_proxy=“http://192.168.1.100:3128/”' » /etc/profile </sxh>

O mesmo princípio é aplicável para a variável ftp_proxy que define o proxy a utilizar nas ligações FTP ou para a variável https_proxy para as ligações seguras.

Referências

pt/buster/intranet/proxy/squid.txt · Última modificação em: 2020-08-02 20:10 (edição externa)

Excepto menção em contrário, o conteúdo neste wiki está sob a seguinte licença: CC Attribution-Noncommercial-Share Alike 4.0 International
CC Attribution-Noncommercial-Share Alike 4.0 International Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki