Squid

De MediaWiki
Ir a la navegación Ir a la búsqueda

Consideracións pedagóxicas

  • No módulo Servizos en rede do Ciclo Medio de Sistemas Microinformáticos e Redes
    • No "BC8. Interconexión de redes"
      • Pasarelas a nivel de aplicación. Almacenaxe en memoria caché.

Introducción

É un servidor proxy para web publicado baixo licenza GPL. Entre as súas utilidades está:

  • mellorar o rendimento das conexións de empresas e particulares a Internet gardando en caché peticións recurrentes a servidores web e DNS
  • acelerar o acceso a un servidor web determinado
  • engardir seguridade realizando filtrados de tráfico

Squid é unha aplicación moi consolidada, considerada considera moi completa e robusta o que a converte en software de referencia como servidor proxy-caché de web.

Está incluido en distribucións GNU/Linux pero tamén se pode executar en entornos tipo Unix ; e hai algunas versións para MS Windows e Mac OS X.

O servidor proxy-caché

Ten coma obxetivo a centralización do tráfico entre Internet e a rede local actuando coma pasarela no nivel de aplicación.

O proxy transforma os enderezos de entrada e saída ocultando o enderezo orixinal aparecendo na petición a IP do proxy. Habitualmente o servidor proxy dispón de dúas interfazes de rede, unha conectada a local e outra a internet a través do router; os paquetes con orixe a rede local chegan o servidor a través da interfaz que atende a rede local, on analizados e reenviados cando procede ó exterior a través da outra interfacede rede.

Funcionamento dun servidor proxy-caché

As súas características son:

  • Permiten o acceso web a máquinas que non teñen conexión directa a internet e contan cun enderezo ip privado
  • Controlan o acceso segundo regras: a máquina orixe e destino, o protocolo utilizado, a páxina solicitada, o momento no que se fai a solicitude...
  • Rexistran o tráfico web dsde a rede local o exterior
  • Aumentan a seguridade podende detectar posibles atauqes con virus, gusanos, troyanos... evitando así tamén intrusións no sistema
  • Melloran o rendemento ó funcionar coma caché de paxinas web visitadas: o servidor pode nalgúns casos enviar a petición directamente ó usuario coa súa copia almacenada sen facer unha conexión exterior

En resumo, estas son as ventaxas:

  • Maior veloicade de navegación
  • Uso máis efeciente da liña de conexión con internet con reducción do tráfico
  • Devesa de contidos
  • Filtrado de servizos e contidos

E algúns inconvintes:

  • As páxinas amosadas poden non estar actualizadas se foron modificadas desde a última carga que realizou o proxy-caché.
  • Pode dificultar (requerindo engadir a configuración axeitada no proxy) operacións avanzadas a través de alguns portos ou protocolos.
  • Pode ser unha violación da intimidade dos usuarios ó almacenar as páxinas as que acceden

Linux

Instalación

Actualizar os repositorios
sudo apt-get update
Instalación do paquete squid
sudo apt-get install squid

É necesario confirmar pulsando y, e pode pedir a instalación de squid-commons.

Configurando o Squid Proxy Server

O ficheiro de configuración de Squid atópase en 
/etc/squid/squid.conf
E contén as seguintes directivas:
http_port: porto de escoita do proxy, 8080, 3128 ou outro
visible_hostname: IP ou DNS do nome do servidor
error_directory: /usr/share/squid/errors/Galician/
Un exemplo sinxelo sería:
http_port 3128
visible_hostname proxy.omeuproxy.local
error_directory /usr/share/squid/errors/Galician/

Para iso, edita o ficheiro de configuración

sudo nano /etc/squid/squid.conf

E fai os seguintes cambios:

1. Atopa http_port
Habitualmente esta fixado para escoitar no porto 3218, que normalmente leva o tráfico TCP traffic. 
Se o teu sistema está configurado paara tráfico TCP debes cambialo eiquí.
Tamen podes fixar o modo do proxy a trasparente se queres que Squid non modifique os teus requests e responses.
http_port 1234 transparent
NOTAS
Non é posible configurar de forma transparente un proxy HTTPS para conexións a páxinas web seguras. Isto é debido ao propio funcionamento do protocolo HTTPS, que ten como obxectivo principal que ninguén poida interceptar e espiar a comunicación entre o equipo e o servidor web ao que se está conectando. O proxy en modo transparente intenta facer precisamente iso, interceptar os paquetes que lle chegan para reenvialos por outro porto, e non é posible facelo cos paquetes HTTPS.
Non é posible usar a autenticación por usuarios cun proxy transparente. O cliente que establece a conexión ten que saber que hai un proxy para solicitar as credenciais ao usuario se é necesario, así que non é posible se o cliente descoñece a existencia do proxy.
2. Atopa http_access deny all
Esto bloquea todo o tráfico HTTP. Cambiao a:
http_access allow all
3. Atopa visible_hostname
Engádelle calquera nome a esta entrada; así será como aperecerá o servidor a calquera que se intente conectar. 
4. Garda os cambios e sal.
5. Reinicia o servizo Squid:
sudo systemctl restart squid


PENDENTE DE REVISIÓN

A primeira vez (despois de editar o ficheiro archivo de configuración para la creación de carpetas, reserva de memoria, etc.) debemos executar:  /usr/local/squid -z Para arrincalo ás siguientes veces executaremos:

/usr/local/squid/bin/squid

Squid pódese arrincar, parar ou recargar cos parámetros start, stop ou reload.

Windows

Para Windows existe una versión de Squid que é compatible con NT4 SP4, 2000 Pro y Server, Server 2003, 2008 y 2010, XP Pro e Vista Business.

Instalación

Podese descargar desde: 
http://squid.acmeconsulting.it/download/dl-squid.html.
O ficheiro de configuración chamase 
C:/squid/etc/squid.conf.default.
Debemos renombralo como squid.conf para que funcione (hai que facelo con todos os ficheiros de extensión default)
Finalmente executaremos para que cree as carpetas e se quede como servizo de Windows:
C:/squid/sbin/squid –z
C:/squid/sbin/squid –i

Configuración de proxy cache

Para configurar o proxy cache engadiremos os siguientes parámetros ó archivo de configuración de Squid:

cache_mem 
cantidade de memoria RAM asignada para o proxy. Pode especificarse en kilobytes (KB), megabytes (MB) e gigabytes (GB) 
aconsellable  usar un 10% do disco duro asignado ó proxy ou un 2% do disco duro total (sen pasar da mitade da RAM).

cache_dir
Ten cinco parámetros. 
* Sistema de ficheiros. Habitualmente UFS (Unix File System, sistema de ficheros utilizado en Linux)
* Ruta onde se gardan os ficheiros temporales de cache
* Cantidade de disco duro usada para ficheiros temporais. Sempre en MB, e aconsellable o 20% do disco duro) 
* Nivel de carpetas anidadas que teremos como máximo (8 para Windows e 32 para Linux)
* Número máximo de ficheiros por carpeta (200 para Windows y 256 para Linux)
Exemplo
cache_mem 256 MB
cache_dir ufs /tmp 1024 32 256
Exemplo práctico reserva espacio
Para un servidor proxy con 4 GB de RAM e 600 GB de disco duro, canto reservaríamos para cache_dir (disco duro para cache) 
Resposta práctico reserva espacio
O mínimo, entre un 20% da capacidad do disco duro total: 122.880 MB ([600 x 1024] x [20/100]) 
O máximo sería 10 veces a RAM total (4.096 x 10 = 40.960). 
Sendo a cache_mem (memoria RAM para cache) directamente a metade da RAM, pois o 10% do disco duro reservado ou o 2% do disco duro total é maior que a propia RAM total.

Exemplo de configuración squid.conf

Ejemplo: Denegar la dirección www.youtube.com a todas las máquinas.

Abres y editas el fichero de configuración de squid.conf:

  1. Parámetros obligatorios:
visible_hostname debian
http_port 3128
cache_mem 64 MB
cache_dir ufs /var/spool/squid 700 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
#Listas de control de acceso:
acl all src 0.0.0.0/0.0.0.0
acl denegado dstdomain www.youtube.com
acl localhost src 127.0.0.1
#Control de acceso:
http_access deny denegado !localhost
http_access allow all
error_directory /usr/share/squid/errors/Spanish

Nesta configuración podes observar:

No apartado de parámetros obligatorios: o puerto de escucha, o nome do servidor (se non sabes cal é, nun terminal teclea "hostname"), o tamaño da memoria cache e as rutas.
No segundo segundo apartado atopanse as listas de control de acceso (ACL), nas que se asigna o rango de IP, asignación de dominio, etc.
No terceiro apartado definese o control de acceso. Unha vez asignadas as ACL con http_access deny denegasen (xa sexan IP ou dominios) e con http_access allow permítense.
Hai unha liña error_directory coa cal amosansae as mensaxes de advertencia en lingua castelá.

Para Resetear squid:

# /etc/init.d/squid restart

Se non aparece ningunha mensaxe de erro o teu proxy debe de funcionar de acordo o establecido. Podes comprobar o funcionamento nun navegador duhna máquina que esté conectada na mesma LAN, mira nas propiedades e habilita el uso de Proxy configurando na IP a da máquina que ten o squid correndo.

Cuando fagas probas bloqueará www.youtube.com, pero si permitirá youtube.com. Para bloquear este caso precisaras outra ACL:

acl denegado url_regex “/home/tuusuario/denegados”

Onde /home/tuusuario/denegados é un simple ficheiro de texto que conten a palabra "youtube"; e así todos os dominios youtube serán bloqueados.

Existe tamén a posibilidade de acelerar o proxy cos seguintes parámetros:

httpd_accel_host: nome do servidor proxy (IP, DNS ou o que puxemos no visible_hostname)
httpd_accel_port: porto que usaremos como proxy; para a aceleración usaremos o porto 80
httpd_accel_with_proxy: co valor on para activar a aceleración do proxy
httpd_accel_uses_host_header: co valor on convirte en transparente o proxy

Tarefas

  1. Instala Squid en Linux/Windows.
  2. Edita o ficheiro squid.conf comentando os valores por defecto (as directivas estudiadas).
  3. Configura
    1. un servidor proxy para o porto por defecto e tamén para o nome por defecto.
    2. un servidor proxy cache con 256 MB de RAM y 1.024 MB de disco duro.
    3. un servidor proxy transparente.
    4. un servidor proxy cache transparente.
    5. un servidor proxy cache calculando os espazos de RAM e disco duro en función das características do teu equipo.

Referencias