Diferencia entre revisiones de «Squid»
| (No se muestran 8 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'''. | É un '''servidor proxy para web publicado baixo licenza GPL'''. | ||
| Línea 6: | Línea 11: | ||
* engardir seguridade realizando filtrados de tráfico | * 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'''. | + | '''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. | 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 | ||
| + | |||
| + | 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 45: | Línea 74: | ||
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 | ||
| + | |||
| + | '''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''' | 2. Atopa '''http_access deny all''' | ||
| Línea 102: | Línea 135: | ||
cache_dir ufs /tmp 1024 32 256 | cache_dir ufs /tmp 1024 32 256 | ||
| − | Exemplo práctico | + | 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) | 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 | + | 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í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). | 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. | 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: | Existe tamén a posibilidade de acelerar o proxy cos seguintes parámetros: | ||
| Línea 129: | Línea 200: | ||
* Servicios en red. Editorial Editex | * 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/ | + | * [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
Sumario
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é.
- No "BC8. Interconexión de redes"
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.
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:
- 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.
