Ferramentas de Utilizador

Ferramentas de Site


Barra Lateral

Traduções para esta página?:
 


Servidor Debian 9 'Stretch'



pt:stretch: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

root@server:~# apt install squid

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):

#[...]

# Squid normally listens to port 3128
http_port 3128

#[...]

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:

# [...]

#  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

# [...]

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

# [...]

#
# 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

# [...]

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

# [...]

# 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

# [...]

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

# [...]

#  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

# [...]

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

# [...]

#  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

# [...]

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

# [...]

#  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

# [...]

O ficheiro de configuração pode ser testado:

root@server:~# squid -k parse

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

root@server:~# systemctl restart squid

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:

fribeiro@server:~$ export http_proxy="http://192.168.1.100:3128/"

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:

fribeiro@server:~$ echo 'http_proxy="http://192.168.1.100:3128/"' >> ~/.profile

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:

root@server:~# echo 'http_proxy="http://192.168.1.100:3128/"' >> /etc/profile

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/stretch/intranet/proxy/squid.txt · Esta página foi modificada pela última vez em: 2017-12-03 00:13 (Edição externa)