Diferencia entre revisiones de «Squid»

De MediaWiki
Ir a la navegación Ir a la búsqueda
 
(No se muestran 25 ediciones intermedias del mismo usuario)
Línea 1: Línea 1:
 +
= 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 =
 
= 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.
 +
[[File:Proxy_cache.jpeg|frame|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
  
−
Existen versiones para Linux, AIX, FreBSD, HP-UX, Mac OS X, Solaris, Windows NT, XP e Server 2003 (con Cygwin).
+
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 =
 
= Linux =
Línea 15: Línea 51:
  
 
== Configurando o  ''Squid Proxy Server'' ==
 
== Configurando o  ''Squid Proxy Server'' ==
−
  O ficheiro de configuración de squid atopase nesta ruta
+
  O ficheiro de configuración de Squid atópase en
−
  /etc/squid/squid.conf.
+
  /etc/squid/squid.conf
  
−
Edita o ficheiro de configuración
+
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
 
  sudo nano /etc/squid/squid.conf
  
−
E fai os seguintes cambios
+
E fai os seguintes cambios:
  
−
1. Atopa http_port option
+
1. Atopa '''http_port'''
 
  Habitualmente esta fixado para escoitar no porto 3218, que normalmente leva o tráfico TCP traffic.  
 
  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í.
 
  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''.
−
  Tamen podes fixar o modo do proxy a trasparente se queres que Squid non modifique os teus ''requests'' e '' responses''.
 
 
  http_port 1234 transparent
 
  http_port 1234 transparent
  
−
2. Atopa http_access deny all option
+
'''NOTAS'''
−
  Esto bloquea todo o tráfico HTTP.  
+
'''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.
  
−
  Cambiao a:
+
  2. Atopa '''http_access deny all'''
 +
Esto bloquea todo o tráfico HTTP. Cambiao a:
 
  http_access allow all
 
  http_access allow all
  
−
3. Atopa visible_hostname option
+
3. Atopa '''visible_hostname'''
 
  Engádelle calquera nome a esta entrada; así será como aperecerá o servidor a calquera que se intente conectar.  
 
  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.
+
4. Garda os cambios e sal.
  
−
5. Reinicia o servizo Squid:
+
5. Reinicia o servizo Squid:
 
  sudo systemctl restart squid
 
  sudo systemctl restart squid
  
Línea 53: Línea 100:
  
 
Squid pódese arrincar, parar ou recargar cos parámetros start, stop ou reload.
 
Squid pódese arrincar, parar ou recargar cos parámetros start, stop ou reload.
−
 
−
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/
 
  
 
= Windows =
 
= Windows =
−
Para Windows existe una versión de Squid que es compatible con NT4 SP4, 2000 Pro y Server, Server 2003, 2008 y 2010, XP Pro e Vista Business.
+
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 ==
 
== Instalación ==
Línea 82: Línea 116:
 
  C:/squid/sbin/squid –z
 
  C:/squid/sbin/squid –z
 
  C:/squid/sbin/squid –i
 
  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:
 +
 +
#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 =
 +
# Instala Squid en Linux/Windows.
 +
# Edita o ficheiro squid.conf comentando os valores por defecto (as directivas estudiadas).
 +
# Configura 
 +
## un servidor proxy para o porto por defecto e tamén para o nome por defecto.
 +
## un servidor proxy cache con 256 MB de RAM y 1.024 MB de disco duro.
 +
## un servidor proxy transparente.
 +
## un servidor proxy cache transparente.
 +
## un servidor proxy cache calculando os espazos de RAM e disco duro en función das características do teu equipo.
  
 
= Referencias =
 
= Referencias =
 +
* Servicios en red. Editorial Editex
 
* https://phoenixnap.com/kb/setup-install-squid-proxy-server-ubuntu
 
* https://phoenixnap.com/kb/setup-install-squid-proxy-server-ubuntu
 +
* [https://www.sololinux.es/instalar-squid-proxy-server-en-ubuntu-18-04/ Squid proxy en Ubuntu 18.04]
 +
* [https://manuais.iessanclemente.net/index.php/Configuraci%C3%B3n_dun_proxy_en_Debian Configuración usando webmin]
 +
* [https://es.wikipedia.org/wiki/Servidor_proxy#Proxy_Cach%C3%A9 Wikipedia en castelán]
 +
* [https://en.wikipedia.org/wiki/Proxy_server Wikipedia en ingles]

Revisión actual del 18:04 8 abr 2021

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