Squid. Comenzamos realizando la instalación del servidor proxy en la máquina servidor: # apt-get install squid3

Documentos relacionados
'RFXPHQWDFLyQGHODLQVWDODFLyQGHXQ VHUYLGRU/,18;HQHO,(6$O$QGDOXV PLHUFROHV GH PDU]RGH

1. CONFIGURACIÓN DEL SERVIDOR PROXY EN WINDOWS:

Mini-Prá cticás SAD - Squid

SQUID. Prueba hecha en Ubuntu Feisty 7,04

Ubuntu Server HOW TO : SQUID. EN ESTE SE REALIZA LO SIGUIENTE: En este how to se le va a enseñar como instalar servidor proxi Squid.

SERVIDRO PROXY SQUID

How to. Servidor Proxy Squid

Cliente se conecta hacia un Servidor Intermediario (Proxy).

CONSEJERIA DE EDUCACION.

Squid como proxy semi-transparente.

Presentación: Nombre: Matrícula: Grupo: Asignatura: Tema: Instructor:

Manual de usuario del entorno admin. Iván Roldán

Proxy SQUID. Un proxy, en una red informática, es un programa o dispositivo que realiza una acción en representación de otro.

Instalar Squid, el proxy caché de Linux

Instalación y configuración del servidor DHCP.

ADMINISTRACION DE SISTEMAS OPERATIVOS DE RED PROXY WEB TRANSPARENTE (SQUID) JAVIER VIDAL NUMA MENDOZA CODIGO

Introducción. En informática, el término Proxy hace referencia a un programa o dispositivo que realiza una acción en representación de otro.

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Procedimiento para la instalación del Squid Proxy Server en Linux Ubuntu

Supuesto de empresa que desea que se controle el tráfico de internet en todos los puestos en función del perfil del puesto de trabajo, de forma que:

Explotación de Sistemas Informáticos IES Murgi PRÁCTICA 9: SERVICIO WEB Y FTP DE INTERNET INFORMATION SERVICE

5. Crea un sitio Web seguro usando tu propio certificado digital (Windows y Linux).

PROXY WEB TRANSPARENTE CON WPAD PEDRO JAVIER BLANCO ZAMBRANO ALVARO JOSÉ ARIAS RAMIREZ

Configuración del firewall en Linux con IPtables

Instituto Tecnológico de Las Américas (ITLA)

Manual de servidor proxy con acceso por autenticación. Distributedsystems.jimdo.com UNIVERSIDAD CATOLICA DE COLOMBIA

Diego Mauricio Cortés Quiroga

Uso del servidor gráfico X en los servidores del CESGA mediante PuTTY y Cygwin

Qué es un servicio de Proxy?

Redes, servidores y seguridad informática en Linux. CEP Indalo. Enrique Brotons. 7. Servidor Proxy.

Servidor Web Apache Knoppix Linux.-

Instalación de FileZilla FTP Server

Programa diseñado y creado por Art-Tronic Promotora Audiovisual, S.L.

Internet Information Server

Tutorial: Primeros Pasos con Subversion

Instituto Tecnológico Las Américas (ITLA) Sistemas Operativos 3 (SO3) Daniel Alejandro Moreno Martínez. Matrícula:

PRESENCIAL TEMAS 5 Y 6 SAD. Victor Martin

Squid, un proxy caché para GNU/Linux

QUÉ ES UN SERVIDOR Y CUÁLES SON LOS PRINCIPALES TIPOS DE SERVIDORES? (PROXY, DNS, WEB, FTP, SMTP, ETC.) (DV00408A)

Notas para la instalación de un lector de tarjetas inteligentes.

Configuración del servidor Proxy SQUID

Redes de área local Aplicaciones y Servicios Linux NFS

Manual de instalación Sistema S.I.S.E. Versión 1.0

4.2- Instalación y Configuración de un Servidor DNS Dnsmasq en Ubuntu sin DHCP

SQUID. Universidad Técnica Federico Santa María Casa Central Elo322-Redes de Computadores Profesor Agustín González Primer Semestre 2009

Para poder instalar el producto, tendremos que obtener el instalador apropiado para nuestro entorno hardware y software.

CONFIGURACIÓN DEL SERVIDOR

Unidad IX: Servidor Proxy SQUID

Instalación de shorewall.

WINDOWS : TERMINAL SERVER

GUIA DE LABORATORIO #10 Nombre de la Practica: Proxy y Filtrado web en ClearOS Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos

Configuración y uso de fetchmail

Actividad 1: Utilización cliente FTP (mediante línea de comandos, entornos gráficos y navegadores/exploradores) (I).

Servidor FTP en Ubuntu Juan Antonio Fañas

ACCESO AL SERVIDOR EXCHANGE MEDIANTE OWA

COPIAS DE SEGURIDAD CON COBIAN BACKUP INSTALACIÓN Y CONFIGURACIÓN

PRÁCTICA 1-2: INSTALACIÓN Y ADMINISTRACIÓN DE UN SERVIDOR DNS (PRIMARIO Y ZONA DE RESOLUCIÓN DIRECTA E INVERSA EN WINDOWS 2008 SERVER)

Instalación y configuración del servidor FTP Filezilla en Windows 2003 Server. Vicente Sánchez Patón I.E.S Gregorio Prieto.

Instala y configura un servidor SSH/SFTP. Transferir ficheros a dicho servidor con un cliente SFTP y SCP.

Monitorización SGBD PostgreSQL

5.2.- Configuración de un Servidor DHCP en Windows 2003 Server

MANUAL DE CONFIGURACION DE BIND 9

Realización de Backups

En el servidor Proxy se creara una regla de acceso donde se prohibe la entrada a páginas relacionadas con sexo, pornografía, etc.

GUÍA PARA LA INSTALACIÓN DE MOODLE EN UN COMPUTADOR PERSONAL QUE USA EL SISTEMA OPERATIVO MS. WINDOWS

2. Instalación y configuración del servidor FTP IIS en Windows 2008 Server.

CTSQL Monitor Unix. En este documento se describe el proceso de instalación y configuración básica para monitorizar. BASE 100, S.A.

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Software de Comunicaciones. Práctica 7 - Secure Shell. SSH

Configuración de Apache

Curso de Introducción a la administración de servidores GNU/Linux Centro de Formación Permanente Universidad de Sevilla Abril-Junio 2010

Guia de Instalacion y Configuracion Basica, Sistema Operativo Slacware 10.2, Dansguardian , squid 2.5.STABLE13.

UNIDAD DIDACTICA 15 CONVERTIR UN EQUIPO LINUX SERVER EN CONTROLADOR DE DOMINIO

ADMINISTRACIÓN DE SERVIDORES CON

FortiReporter

Servicio de Informática Vicerrectorado de Tecnologías de la Información y la Comunicación

AGREGAR UN EQUIPO A UNA RED Y COMPARTIR ARCHIVOS CON WINDOWS 7

Al ejecutar esta aplicación tenemos lo siguiente: Pulsamos en Wizard mode y nos aparece lo siguiente:

Paso 1 - Servidor de correo en Ubuntu: Instalar Apache 2

Protocolo Configuración Windows NT WS

Servidor Proxy SQUID

Equipamiento Tecnológico Eapt S.A. de C.V. Tel. (01 775) (01 800) 50 E TE SA

Práctica 1: Herramientas básicas:

Tenemos que instalar los programas de los usuarios también (los anteriormente mencionados) y los siguientes que vamos a nombrar.

Manual de software. Dynamic Cloud. 10/2014 MS-Dynamic_Cloud v1.2

Servidor Apache 1. Instalación de apache

UNIDESYS UNIVERSAL BUSINESS SYSTEMS INSTALACIÓN NUEVO PUESTO DE TRABAJO

SQUID PROXY CACHES. Objetivos

Instalación de Tomcat7 en Ubuntu

MANUAL COPIAS DE SEGURIDAD


Scripts de arranque. Pablo Sanz Mercado.

Actualizaciones de GateDefender Performa desde un servidor web local

GUIA DE BLOQUEO Y DESBLOQUEO WEB

COMO INSTALAR Y CONFIGURAR UN SERVIDOR DNS

SERVICIO DNS EN CENTOS 6.3 Publicado por Beatriz Vergara

Instituto Tecnológico de Las América. Materia Sistemas operativos III. Temas. Facilitador José Doñe. Sustentante Robín Bienvenido Disla Ramirez

Transcripción:

Squid. Squid deberá estar configurado de manera que cumplam una serie de requisitos. Funciones que deberá de realizar el Proxy: Deberá de permitir o denegar la conexión a las aulas 20.2, 20.3 y 20.4. Deberá estar preparado por filtrar tanto páginas web,así como webs que contengan palabras no deseadas. Deberá de crear franjas horarias de conexión,por ejemplo en el caso que quisiéramos dar acceso a Internet un determinado tiempo,como puede ser 10 minutos, 1 hora,... Por otro lado, también se deberá implementar alguna herramienta de monitorización para poder comprobar el buen funcionamiento del Servicio Proxy transparente o no transparente. La idea inicial era crear un proxy transparente, de manera que el cliente no tuviese que configurar nada en el navegador. Esto implicaría filtrar mediante el proxy todo el tráfico de los protocolos HTTP y HTTPS. Después de haber leído bastante documentación sobre los proxys deberemos tener en cuenta algo importante. Podemos filtrar sin problemas las conexiones HTTP al puerto 80, sin embargo hay una problemática moral e incluso legal a la hora de intentar filtrar las conexiones HTTPS al puerto 443 que realizan los sitios seguros como bancos y otras entidades. Al filtrar este tráfico a través del servidor proxy lo que hacemos es engañar al cliente que solicite la petición ofreciéndole un certificado que nosotros hemos creado en el proxy, convirtiendose este, en lo denominado man-in-the-middle. Esta situación puede comprometer igualmente la seguridad si un intruso consiguiera acceso al servidor pues podría interceptar el tráfico entre el cliente y el servidor seguro externo. La solución a esta problemática, entre filtrar HTTPS con certificados autofirmados, siendo el proxy transparente, o tener que configurar de manera manual el proxy en el navegador del cliente, la hemos solucionado con algo intermedio que se explicará más adelante. Comenzamos realizando la instalación del servidor proxy en la máquina servidor: # apt-get install squid3

Esperamos a que termine la instalación. Comprobamos los paquetes instalados. # dpkg -L squid3 /. /usr /usr/lib /usr/lib/squid3 /usr/lib/squid3/squid_kerb_auth /usr/lib/squid3/pam_auth /usr/lib/squid3/squid_db_auth /usr/lib/squid3/digest_ldap_auth /usr/lib/squid3/squid_ldap_group /usr/lib/squid3/smb_auth /usr/lib/squid3/negotiate_kerb_auth_test /usr/lib/squid3/wbinfo_group.pl /usr/lib/squid3/ntlm_smb_lm_auth /usr/lib/squid3/squid_radius_auth /usr/lib/squid3/squid_unix_group /usr/lib/squid3/digest_pw_auth /usr/lib/squid3/sasl_auth /usr/lib/squid3/unlinkd /usr/lib/squid3/squid_kerb_auth_test /usr/lib/squid3/negotiate_kerb_auth /usr/lib/squid3/yp_auth /usr/lib/squid3/smb_auth.sh /usr/lib/squid3/squid_ldap_auth /usr/lib/squid3/squid_session /usr/lib/squid3/smb_auth.pl /usr/lib/squid3/ncsa_auth /usr/lib/squid3/getpwname_auth /usr/lib/squid3/diskd /usr/lib/squid3/msnt_auth /usr/lib/squid3/pop3.pl /usr/lib/squid3/ip_user_check /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/squid3_ldap_auth.8.gz /usr/share/man/man8/squid3_radius_auth.8.gz /usr/share/man/man8/squid3_pam_auth.8.gz /usr/share/man/man8/squid3.8.gz /usr/share/man/man8/squid3_ncsa_auth.8.gz /usr/share/man/man8/squid3_unix_group.8.gz /usr/share/man/man8/squid3_db_auth.8.gz /usr/share/man/man8/squid3_ldap_group.8.gz /usr/share/man/man8/squid3_session.8.gz /usr/share/doc /usr/share/doc/squid3 /usr/share/doc/squid3/readme /usr/share/doc/squid3/readme.debian /usr/share/doc/squid3/copyright

/usr/share/doc/squid3/changelog.debian.gz /usr/sbin /usr/sbin/squid3 /etc /etc/init.d /etc/ufw /etc/ufw/applications.d /etc/ufw/applications.d/squid3 /etc/resolvconf /etc/resolvconf/update-libc.d /etc/resolvconf/update-libc.d/squid3 /etc/squid3 /etc/squid3/msntauth.conf /etc/squid3/errorpage.css /etc/squid3/squid.conf /etc/logrotate.d /etc/logrotate.d/squid3 /etc/init /etc/init/squid3.conf /var /var/run /var/spool /var/spool/squid3 /var/log /var/log/squid3 /etc/init.d/squid3 Los archivos de configuración: # dpkg -L squid3 grep /etc /etc /etc/init.d /etc/ufw /etc/ufw/applications.d /etc/ufw/applications.d/squid3 /etc/resolvconf /etc/resolvconf/update-libc.d /etc/resolvconf/update-libc.d/squid3 /etc/squid3 /etc/squid3/msntauth.conf /etc/squid3/errorpage.css /etc/squid3/squid.conf /etc/logrotate.d /etc/logrotate.d/squid3 /etc/init /etc/init/squid3.conf /etc/init.d/squid3 Nos centraremos en el archivo de configuración de squid : /etc/squid3/squid.conf

El ejecutable: # dpkg -L squid3 grep sbin /usr/sbin /usr/sbin/squid3 Nos da las opciones: # squid3 --help squid3: invalid option -- '-' Usage: squid [-cdhvzcfnrvyx] [-s -l facility] [-f config-file] [-[au] port] [-k signal] -a port Specify HTTP port number (default: 3128). -d level Write debugging to stderr also. -f file Use given config-file instead of /etc/squid3/squid.conf -h Print help message. -k reconfigure rotate shutdown interrupt kill debug check parse Parse configuration file, then send signal to running copy (except -k parse) and exit. -s -l facility Enable logging to syslog. -u port Specify ICP port number (default: 3130), disable with 0. -v Print version. -z Create swap directories -C Do not catch fatal signals. -D OBSOLETE. Scheduled for removal. -F Don't serve any requests until store is rebuilt. -N No daemon mode. -R Do not set REUSEADDR on port. -S Double-check swap during rebuild. -X Force full debugging. -Y Only return UDP_HIT or UDP_MISS_NOFETCH during fast reload. Para arrancar parar o reiniciar el servicio: # service squid3 [start stop restart] Podemos comprobar el archivo de configuración con: # squid3 -k parse O bien recargar la configuración si necesidad de detener el servicio: # squid3 -k reconfigure Squid posee una serie de archivos para mostrar las notificaciones de errores cuando se intenta acceder a sitios no permitidos etc. Los podemos encontrar en el directorio: /usr/share/squid3/errors Al realizar la instalación, se habrán creado un usuario y un grupo en el sistema denominados

proxy que comprobaremos. # grep proxy /etc/{passwd,group} /etc/passwd:proxy:x:13:13:proxy:/bin:/bin/sh /etc/group:proxy:x:13: /etc/squid3/squid.conf Este es el archivo principal de configuración del servidor proxy como veremos trae muchos comentarios que hacen bastante ilegible el archivo. Lo primero que haremos es ' limpiar ' el archivo de todos estos comentarios y dejaremos la configuración que trae por defecto. Nos dejará un archivo más claro y facil de interpretar, además tendremos el archivo original copiado así como una copia del original sin los comentarios. Ejecutamos: # cd /etc/squid3 # cat squid.conf grep -v '^#\ ^$\ ^;' > squid.conf.back # mv squid.conf squid.orig.conf # cp squid.conf.back squid.conf La primera línea limpia de comentarios el archivo y lo guarda en squid.conf.back. La segunda orden cambia de nombre el archivo original. La última orden copia el archivo sin comentarios, para usarlo como configuración. El archivo original sin los comentarios nos quedará de esta forma: acl manager proto cache_object acl localhost src 127.0.0.1/32 ::1 acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 acl SSL_ports port 443 acl Safe_ports port 80 # http acl Safe_ports port 21 # ftp acl Safe_ports port 443 # https acl Safe_ports port 70 # gopher acl Safe_ports port 210 # wais acl Safe_ports port 1025-65535 # unregistered ports acl Safe_ports port 280 # http-mgmt acl Safe_ports port 488 # gss-http acl Safe_ports port 591 # filemaker acl Safe_ports port 777 # multiling http acl CONNECT method CONNECT

http_access allow manager localhost http_access deny manager http_access deny!safe_ports http_access deny CONNECT!SSL_ports http_access allow localhost http_access deny all http_port 3128 coredump_dir /var/spool/squid3 refresh_pattern ^ftp: 1440 20% 10080 refresh_pattern ^gopher: 1440 0% 1440 refresh_pattern -i (/cgi-bin/ \?) 0 0% 0 refresh_pattern (Release Packages(.gz)*)$ 0 20% 2880 refresh_pattern. 0 20% 4320 Podemos ver que el puerto por defecto de escucha del servidor es el 3128. Por defecto escucha en todas las interfaces de red. El archivo básicamente se configura con una serie de ACLs para definir redes,puertos etc, que luego autorizaremos o no a acceder con la directiva http_access. Nota: Debemos tener en cuenta que el servidor, lee el archivo de arriba hacia abajo, cuando encuentra un regla coincidente la aplica y ya no continúa la lectura. Esto implica que las normas más restrictivas deberemos situarlas primero si queremos que se cumplan. La sintaxis de las ACL es: acl <nombre de acl> <parámetro> <valor> En las opciones de parámetros tenemos: src : Ips de origen dst : Ips de destino time : Definir días de la semana y horarios: M : Lunes. T: Martes. W: Miércoles. H: Jueves. F: Viernes. A: Sábado. S: Domingo. La hora la escribimos en formato : h1:m1-h2:m2 ==> hora de inicio y fin url_regex [-i] : Define un patrón coincidente. -i nos sirve para las mayúsculas-minúsculas. srcdomain : Dominio de origen dstdomain : Dominio de destino ACLs Según las especificaciones del proyecto deberemos permitir o denegar el acceso a las 3 aulas de

informática y poder crear horarios de conexión, además de denegar el acceso a determinados dominios, así como denegar acceso por palabras de contenidos. Esto nos indica las ACLs que debemos crear. ACLs para las 3 aulas. Creamos una ACL para cada aula. acl aula20.2 src 192.168.202.0/24 acl aula20.3 src 192.168.203.0/24 acl aula20.4 src 192.168.204.0/24 ACL para el horario. Supongamos que vamos a permitir conectarse a internet de Lunes a viernes desde las 08:00 hasta las 22:00. acl horario time MTWHF 08:00-22:00 ACL para dominios restringidos. Como no sabemos la cantidad de dominios que se desean restringir, en vez de especificar uno por uno, lo haremos en una lista en un archivo (lo crearemos más tarde). acl dominio-restringido dstdomain /etc/squid3/dominios-restringidos ACL para restringir contenidos por palabras. Igual que en el caso anterior no conocemos el número de palabras que se quieren prohibir, así que lo haremos en una lista en un archivo (lo crearemos luego). acl contenido-restringido url_regex -i /etc/squid3/contenido-restringido Aplicamos estas líneas al archivo de configuración. Reglas de acceso. Una vez definidas las listas de acceso es el momento de decidir quién puede o no acceder a internet o a determinados contenidos. Para ellos utilizamos la directiva http_access cuya sintaxis es: http_access <allow deny> nombre de la acl

allow: Permitimos el acceso. deny : Denegamos el acceso. Recordemos que debemos situar las más restrictivas primero. Acceso a dominios prohibidos. http_access deny dominio-restringido Acceso a contenidos prohibidos. http_access deny contenido-restringido Acceso de los usuarios. Crearemos 3 accesos diferentes. http_access allow horario aula20.2 http_access allow horario aula20.3 http_access allow horario aula20.4 Permitimos el acceso a internet dentro del horario especificado en la ACL correspondiente, a los alumnos de cada aula. Estas líneas se podrían resumir en una sola de esta forma: http_access allow horario aula20.2 aula20.3 aula20.4!dominio-restringido!contenido-restringido Permitimos el acceso en los horarios especificados en la ACL a todas las aulas a todos los dominios excepto a los dominios definidos en la lista de la ACL de dominio-restringido y a los contenidos definidos en la lista de la ACL contenido-restringido. Escogemos la primera forma de hacerlo por que queda de manera más clara. Añadimos estas líneas al archivo de configuración. Directivas para la caché. En esta sección configuraremos varios parámetros para la caché que guardará squid. Utiliza el directorio: /var/spool/squid3/ Especificaremos 3 directivas.

debug-options ALL,1 33,2 cache_mem 1000 MB cache_dir ufs /var/spool/squid3 10000 16 256 debug-options : Opciones de depuración para la caché (/var/log/squid3/cache.log) ALL : Quiere decir todas las secciones. Si sólo queremos depurar una sección la debemos indicar por su número. Las secciones se pueden consultar en: http://www.linofee.org/~jel/proxy/squid/debug.shtml 33 : Client-side Routines cache_mem : Cantidad de memoria adicional que podrá utilizar para la caché (1GB). cache_dir : Tipo de formato, directorio, cantidad de memoria(10gb) que podrá usar,nº de subdirectorios, nº de niveles en cada subdirectorio. Añadimos estas líneas al archivo de configuración. Directivas para los logs. Los archivos de logs de squid se guardan en el directorio: /var/log/squid3 Por defecto tenemos definidos diferentes formatos: logformat squid %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt logformat squidmime %ts.%03tu %6tr %>a %Ss/%03Hs %<st %rm %ru %un %Sh/%<A %mt [%>h] [%<h] logformat common %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st %Ss:%Sh logformat combined %>a %ui %un [%tl] "%rm %ru HTTP/%rv" %Hs %<st "%{Referer}>h" "% {User-Agent}>h" %Ss:%Sh Donde las especificaciones significan: >a Client source IP address >A Client FQDN >p Client source port <A Server IP address or peer name la Local IP address (http_port) lp Local port number (http_port)

ts Seconds since epoch tu subsecond time (milliseconds) tl Local time. Optional strftime format argument default %d/%b/%y:%h:%m:%s %z tg GMT time. Optional strftime format argument default %d/%b/%y:%h:%m:%s %z tr Response time (milliseconds) >h Request header. Optional header name argument on the format header[:[separator]element] <h Reply header. Optional header name argument as for >h un User name ul User name from authentication ui User name from ident us User name from SSL ue User name from external acl helper Hs HTTP status code Ss Squid request status (TCP_MISS etc) Sh Squid hierarchy status (DEFAULT_PARENT etc) mt MIME content type rm Request method (GET/POST etc) ru Request URL rp Request URL-Path excluding hostname rv Request protocol version et Tag returned by external acl ea Log string returned by external acl <st Reply size including HTTP headers >st Request size including HTTP headers st Request+Reply size including HTTP headers <sh Reply high offset sent <ss Upstream object size % a literal % character Nos quedaremos con el formato por defecto squid. Las directivas para los registros de squid: logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt access_log /var/log/squid3/access.log squid logfile_rotate 7 logformat : Nombre y especificaciones del formato de los log acces_log : Directorio para guardar los log y el formato. logfile_rotate : Días de registro que se guardan en cada archivo de log. Añadimos estas líneas al archivo de configuración.

Miscelania. Añadiremos al final del archivo el nombre que mostrará el proxy con una directiva y los dns que debe utilizar con otra. visible_hostname proxy_iesebre dns_nameservers 192.168.202.1 192.168.203.1 192.168.204.1 Comprobación de la configuración. Una vez terminamos la configuración en el archivo, comprobamos que esta sea correcta con la orden: #squid3 -k parse 2014/04/16 16:39:46 Processing Configuration File: /etc/squid3/squid.conf (depth 0) 2014/04/16 16:39:46 Processing: acl manager proto cache_object 2014/04/16 16:39:46 Processing: acl localhost src 127.0.0.1/32 ::1 2014/04/16 16:39:46 Processing: acl to_localhost dst 127.0.0.0/8 0.0.0.0/32 ::1 2014/04/16 16:39:46 Processing: acl SSL_ports port 443 2014/04/16 16:39:46 Processing: acl Safe_ports port 80 # http 2014/04/16 16:39:46 Processing: acl Safe_ports port 21 # ftp 2014/04/16 16:39:46 Processing: acl Safe_ports port 443 # https 2014/04/16 16:39:46 Processing: acl Safe_ports port 70 # gopher 2014/04/16 16:39:46 Processing: acl Safe_ports port 210 # wais 2014/04/16 16:39:46 Processing: acl Safe_ports port 1025-65535 # unregistered ports 2014/04/16 16:39:46 Processing: acl Safe_ports port 280 # http-mgmt 2014/04/16 16:39:46 Processing: acl Safe_ports port 488 # gss-http 2014/04/16 16:39:46 Processing: acl Safe_ports port 591 # filemaker 2014/04/16 16:39:46 Processing: acl Safe_ports port 777 # multiling http 2014/04/16 16:39:46 Processing: acl CONNECT method CONNECT 2014/04/16 16:39:46 Processing: acl aula20.2 src 192.168.202.0/24 2014/04/16 16:39:46 Processing: acl aula20.3 src 192.168.203.0/24 2014/04/16 16:39:46 Processing: acl aula20.4 src 192.168.204.0/24 2014/04/16 16:39:46 Processing: acl horario time MTWHF 08:00-22:00 2014/04/16 16:39:46 Processing: acl dominio-restringido dstdomain "/etc/squid3/dominios-restringidos" 2014/04/16 16:39:46 Processing: acl contenido-restringido url_regex -i "/etc/squid3/contenido-restringido" 2014/04/16 16:39:46 Processing: http_access allow manager localhost 2014/04/16 16:39:46 Processing: http_access deny manager 2014/04/16 16:39:46 Processing: http_access deny!safe_ports 2014/04/16 16:39:46 Processing: http_access deny CONNECT!SSL_ports 2014/04/16 16:39:46 Processing: http_access deny dominio-restringido 2014/04/16 16:39:46 Processing: http_access deny contenido-restringido 2014/04/16 16:39:46 Processing: http_access allow horario aula20.2 2014/04/16 16:39:46 Processing: http_access allow horario aula20.3

2014/04/16 16:39:46 Processing: http_access allow horario aula20.4 2014/04/16 16:39:46 Processing: http_access deny all 2014/04/16 16:39:46 Processing: http_port 3128 2014/04/16 16:39:46 Processing: debug_options ALL,1 33,2 2014/04/16 16:39:46 Processing: cache_mem 1000 MB 2014/04/16 16:39:46 Processing: cache_dir ufs /var/spool/squid3 10000 16 256 2014/04/16 16:39:46 Processing: coredump_dir /var/spool/squid3 2014/04/16 16:39:46 Processing: logformat squid %ts.%03tu %6tr %>a %Ss/%03>Hs %<st %rm %ru %un %Sh/%<A %mt 2014/04/16 16:39:46 Processing: access_log /var/log/squid3/access.log squid 2014/04/16 16:39:46 Processing: logfile_rotate 7 2014/04/16 16:39:46 Processing: refresh_pattern ^ftp: 1440 20% 10080 2014/04/16 16:39:46 Processing: refresh_pattern ^gopher: 1440 0% 1440 2014/04/16 16:39:46 Processing: refresh_pattern -i (/cgi-bin/ \?) 00% 0 2014/04/16 16:39:46 Processing: refresh_pattern (Release Packages(.gz)*)$ 0 20% 2880 2014/04/16 16:39:46 Processing: refresh_pattern. 0 20% 4320 2014/04/16 16:39:46 Processing: visible_hostname proxy_iesebre 2014/04/16 16:39:46 Processing: dns_nameservers 192.168.202.1 192.168.203.1 192.168.204.1 Archivo de dominios y contenido prohibido. Recordemos que los lugares y contenidos prohibidos los pondremos en una lista en dos archivos en el directorio que hemos especificado en la ACL correspondiente (/etc/squid3). Si lo situamos en otro directorio diferente debemos recordar que el servicio se ejecuta con el usuario por defecto proxy y este deberá tener permisos de lectura en el directorio. Archivo de dominios. Generamos un archivo para la lista de dominios y en su interios ponemos algunos ejemplos de dominios que queremos bloquear. Nota : Los nombres de dominio deben comenzar con un punto (.) Archivo de contenidos. Generamos, ahora, el archivo con la lista de palabras clave que vamos a prohibir.

Guardamos los cambios. Monitorización de squid. Debemos llevar un control de lo que sucede en nuestro servidor proxy. Para ello tenemos dos aspectos a tener en cuanta: Los logs del sistema. La caché del sistema. Monitorizando los log. Básicamente tenemos el archivo en el directorio /var/log/squid3/access.log que serrá el que nos interesa controlar. Para llevar a cabo esta tarea vamos a emplear una herramienta denominada. Calamaris: Es una herramienta que nos permite analizar los logs del servidor squid y obtener informes de su uso. Nos permitirá generar informes en formato HTML que podremos visualizar desde el servidor apache de manera bastante clara. Podremos programar que se genere un informe cada determinado tiempo según nos interese. En nuestro caso tratándose del instituto, se nos ocurre pensar, que será suficiente un informe diario que generaremos 3 veces a lo largo de las 08:00 y las 22:00( a las 13:00, 18:00 y a las 22:00). Esto se puede modificar al gusto de quien tenga que revisar los informes y espaciarlos más en el tiempo o menos. Instalamos la herramienta. # apt-get install calamaris Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Paquetes sugeridos: libgd-graph-perl libnetaddr-ip-perl Se instalarán los siguientes paquetes NUEVOS: calamaris 0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados. Necesito descargar 109 kb de archivos. Se utilizarán 529 kb de espacio de disco adicional después de esta operación.

AVISO: No se han podido autenticar los siguientes paquetes! calamaris Instalar estos paquetes sin verificación [s/n]? Esperamos a que termine la instalación. Los paquetes instalados: #dpkg -L calamaris /. /usr /usr/bin /usr/bin/calamaris /usr/share /usr/share/man /usr/share/man/man1 /usr/share/man/man1/calamaris.1.gz /usr/share/perl5 /usr/share/perl5/calamaris /usr/share/perl5/calamaris/calaxestype.pm /usr/share/perl5/calamaris/calaxestype3d.pm /usr/share/perl5/calamaris/calbars3d.pm /usr/share/doc /usr/share/doc/calamaris /usr/share/doc/calamaris/readme /usr/share/doc/calamaris/todo /usr/share/doc/calamaris/readme.debian /usr/share/doc/calamaris/copyright /usr/share/doc/calamaris/news.debian.gz /usr/share/doc/calamaris/examples /usr/share/doc/calamaris/examples/examples.gz /usr/share/doc/calamaris/examples/examples.v3.gz /usr/share/doc/calamaris/bugs.gz /usr/share/doc/calamaris/changelog.debian.gz /usr/lib /usr/lib/calamaris /usr/lib/calamaris/calamaris-cron-script /etc /etc/calamaris /etc/calamaris/calamaris.conf /etc/cron.daily /etc/cron.daily/calamaris /var /var/log /var/log/calamaris Script para rotar los logs. Lo primero que tenemos que hacer es rotar los archivos de logs del servidor squid. Lo haremos una vez al día a las 22:00 de la noche. Para ello creamos un script que estará oculto en el directorio /etc/squid3 en el que ejecutamos la orden de rotar los logs de squid.

Y le damos permisos de ejecución. #chmod +x.rotatelogs.sh Directorio para los informes. Un vez tenemos la rotación de los archivos vamos a crear una carpeta en nuestro directorio root de apach2 /var/www al cual llamaremos squid.log. Tendremos que dar al usuario de apache2 (www-data) los permisos adecuados sobre el directorio para que pueda acceder a su contenido. # mkdir /var/www/calamaris/squid.log/ #chown root:www-data /var/www/squid.log/ Ahora en el mismo directorio de squid /etc/squid3 vamos a generar el script que ejecuta la orden y el archivo para la programación de crontab. Script para generar informes. -a : Mostrará todos los informes útiles. -F html : Especifica que el formato sea en HTML. En caso de omisión sería un archivo de texto. Le damos permisos de ejecución. # chmod +x /etc/squid3/.inf-calamaris.sh Script para programar crontab. Generamos ahora un archivo donde programaremos las tareas para crontab El formato de estas líneas es el siguiente:

Campo Minuto Hora Día del Mes Mes Día de la semana Usuario Comando Descripción Controla el minuto de la hora en que el comando será ejecutado, este valor debe de estar entre 0 y 59. Controla la hora en que el comando será ejecutado, se especifica en un formato de 24 horas, los valores deben estar entre 0 y 23, 0 es medianoche. Día del mes en que se quiere ejecutar el comando. Por ejemplo se indicaría 20, para ejecutar el comando el día 20 del mes. Mes en que el comando se ejecutará, puede ser indicado numéricamente (1-12), o por el nombre del mes en inglés, solo las tres primeras letras. Día en la semana en que se ejecutará el comando, puede ser numérico (0-7) o por el nombre del día en inglés, solo las tres primeras letras. (0 y 7 = domingo) Usuario que ejecuta el comando. Comando, script o programa que se desea ejecutar. Este campo puede contener múltiples palabras y espacios. La primera línea programa para que se ejecute la rotación de los logs todos los días de Lunes a Viernes a las 22:00. La segunda línea programa la ejecución del script para generar informes todos los días a las 13:00, a las 18:00 y a las 22:00 de Lunes a Viernes. Para programar estas tareas tan solo basta ejecutar la orden: # crontab.cron Listamos las tareas programadas por el usuario # crontab -l Si quisiéramos modificar los horarios de ejecución de las mismas, podemos editarlo usando: # crontab -e Esto generará informes en formatos HTML que podremos visualizar desde un navegador con la URL: localhost/squid.log/

Monitorizando la caché. Vamos a utilizar caché manager para esta labor. Es una herramienta que nos permite consultar estadísticas de la caché y la ejecución del servidor squid. Es necesario disponer de un servidor web, que ya tenemos instalado, apache2. Realizamos la instalación de la herramienta: # apt-get install squid3-cgi Leyendo lista de paquetes... Hecho Creando árbol de dependencias Leyendo la información de estado... Hecho Nota, seleccionando «squid-cgi» en lugar de «squid3-cgi» Se instalarán los siguientes paquetes NUEVOS: squid-cgi 0 actualizados, 1 se instalarán, 0 para eliminar y 0 no actualizados. Necesito descargar 41,8 kb de archivos. Se utilizarán 226 kb de espacio de disco adicional después de esta operación. AVISO: No se han podido autenticar los siguientes paquetes! squid-cgi Instalar estos paquetes sin verificación [s/n]? Esperamos a que termine la instalación. Observamos que el paquete instalado es squid-cgi.

Miramos los archivos que ha instalado: # dpkg -L squid-cgi /. /usr /usr/lib /usr/lib/cgi-bin /usr/lib/cgi-bin/cachemgr.cgi /usr/share /usr/share/man /usr/share/man/man8 /usr/share/man/man8/cachemgr.cgi.8.gz /usr/share/doc /usr/share/doc/squid-cgi /usr/share/doc/squid-cgi/readme /usr/share/doc/squid-cgi/copyright /usr/share/doc/squid-cgi/changelog.debian.gz /etc /etc/squid /etc/squid/cachemgr.conf El script lo encontramos en : /usr/lib/cgi-bin/cachemgr.cgi Configuración de apache2. Para poder utilizarlo, vamos a configurar apache2. No será necesario realizar grandes cambios ya que el script lo tenemos en un directorio que ya está definido en el archivo /etc/apache2/sites-available/default. Tan solo vamos a cambiar el nombre del alías y de momento dejaremos el resto de parámetros igual. Reiniciamos apache para hacer efectivos los cambios. # service apache2 restart Podremos comprobar las estadísticas desde un navegador escribiendo la URL: localhost/cachemgr/cachemgr.cgi Veremos la pantalla inicial.

Pulsamos continuar y veremos un menú de opciones para monitorizar squid. En la segunda fase del proyecto ya nos encargaremos de implementar la seguridad y el acceso a los lugares.