Squid
Sumario
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 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 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.
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.