You are on page 1of 37

SERVIDOR SQUID PROXY WEB

Centos Linux 5.6


Squid es el software para servidor Proxy ms popular y extendido entre los sistemas operativos basados sobre UNIX. Es muy confiable, robusto y verstil. Al ser software libre, adems de estar disponible el cdigo fuente, est libre del pago de costosas licencias por uso o con restriccin a un uso con determinado nmero de usuarios.

Christian Medina T. christian.smt@gmail.com

Servidor Proxy Web Squid 2.6

Centos

5.4

1.

SOFTWARE REQUERIDO.
Para poder llevar la cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitar tener instalado al menos lo siguiente: Sistema Operativo Centos Linux 5.6 Squid 2.6 STABLE Apache 2.0 IPTables 1.3.5 Reportador Grfico SARG 2.2.5 IS-dhcpd 3.0

2.

DIAGRAMA LGICO DE LA RED

Servidor Proxy Web Squid 2.6

Centos

5.4

3.

INSTALACIN DEL SISTEMA OPERATIVO CENTOS LINUX 5.6


Configurar en la BIOS el primer dispositivo de arranque la unidad CD- DVD, inserta el disco y reinicia la PC.

La ventana de bienvenida, pregunta si deseamos hacer un test antes de la instalacin,Dicho test es para verificar si el CD DVD esta en optimas condiciones y no presenta ningun archivo daado. Por lo siguiente, damos Skip.

Cargando la configuracin de instalacin.

Haga clic sobre el botn Siguiente. Configuracin del idioma selecciona (Espaol) como muestra en la imagen .

Haga clic sobre el botn Siguiente.

Servidor Proxy Web Squid 2.6

Centos

5.4
Seleccin de teclado busque Espaol.

Haga clic sobre el botn Siguiente. Particin del disco duro, escojamos la opcin personalizada.

Servidor Proxy Web Squid 2.6

Centos

5.4
La herramienta de particiones mostrar el espacio disponible. Haga clic en el botn Nuevo.

Ahora bien vamos a crear la particin con sistema de archivo ext3 y el punto de montaje: / (Directorio Raz). Este es la particin donde se instalar el sistema base de CentOS.

Servidor Proxy Web Squid 2.6

Centos

5.4
Haga clic sobre el botn Aceptar.

Servidor Proxy Web Squid 2.6

Centos

5.4

Haga clic en el botn Nuevo. Para crear la siguiente particin, intercambio swap no requiere punto de montaje. Seleccione en el campo de Tipo de sistema de archivos la opcin swap. La particin de intercambio swap, sirve como memoria virtual para ejecutar mas rpidos los procesos y no se bloque el sistema, si la PC tiene poca memoria fsica, es recomendable crear la particin con un tamao similar a la cantida de MB o Gb que posea de Memoria RAM .

Haga clic sobre el botn Aceptar. Haga clic sobre el botn Siguiente.

Servidor Proxy Web Squid 2.6

Centos

5.4
Sin modificaciones.

Haga clic sobre el botn Siguiente. Configuracin de la zona horaria, con el puntero seleccione el mapa de Per y busque la capital.

Servidor Proxy Web Squid 2.6

Centos

5.4

Servidor Proxy Web Squid 2.6

Centos

5.4
Asigne una clave de acceso al usuario root.

Al terminar, haga clic sobre el botn Siguiente, y espere a que el sistema haga la lectura de informacin de los grupos de paquetes.

Servidor Proxy Web Squid 2.6

Centos

5.4
Seleccin del entorno grafico de escritorio escojamos GNOME / KDE.

Haga clic sobre el botn Siguiente. Se realizar una comprobacin de dependencias de los paquetes a instalar. Este proceso puede demorar algunos minutos.

Servidor Proxy Web Squid 2.6

Centos

5.4
Haga clic sobre el botn Siguiente.

Servidor Proxy Web Squid 2.6

Centos

5.4

Haga clic sobre el botn Siguiente. Dependiendo de la capacidad de la PC, el proceso de instalacin puede tardar algunos minutos.

Servidor Proxy Web Squid 2.6

Centos

5.4

Instalacin de finalizada clic en botn Reiniciar.

Una vez terminada la instalacin debemos hacer una actualizacin completa del sistema y comenzar a bajar los 300Mb que seguramente abran en actualizaciones .

Servidor Proxy Web Squid 2.6

Centos

5.4

# yum upgrade

Despus del upgrade reiniciaremos el server para ver que todo ha ido bien y le echaremos un vistazo al /var/log/messages
# nano /var/log/messages

Luego instalaremos todos los paquetes que necesitamos para nuestra implementacin : SQUID 2.6 ( SQUID )

yum -y install squid

APACHE 2.0 ( HTTPD )

yum -y install httpd

SERVICIO DHCP ( DHCPD ) yum -y install dhcp

REPORTADOR GRFICO SARG. Ya que el paquete SARG no est en los repositorios oficiales de Centos Linux, lo instalaremos desde los repositorios del Sitio Web Alcance Libre. Ingrese al sistema como el usuario root. Proceda a configurar el depsito YUM de Alcance Libre que incluye el paquete modificado de squid con soporte para direcciones MAC:

cd /etc/yum.repos.d/ wget -N http://www.alcancelibre.org/al/server/AL-Server.repo cd -

Servidor Proxy Web Squid 2.6

Centos

5.4

Proceda a instalar sarg utilizando el siguiente mandato. yum -y install sarg Una vez que tenemos todo el software instalado arrancaremos ntsysv para deshabilitar y habilitar todos los servicios que necesitemos y que comienzen automticamente cuando el sistema inicie. Tenemos que habilitar iptables, httpd, dhcpd y squid.

ntsysv

CONFIGURACIN DEL GATEWAY Por defecto Linux no realiza funciones de ruteo (forwarding), por tanto no es capaz de aceptar un paquete que no sea para el y rutarlo hacia la mejor ruta. Como nuestro objetivo es que este servidor tambin haga de gateway tendremos que activar esta opcin. Editaremos :

nano /etc/sysctl.conf

Servidor Proxy Web Squid 2.6

Centos

5.4

y cambiaremos

net.ipv4.ip_forward=0 por net.ipv4.ip_forward=1.

Despus solo tenemos que reiniciar los servicios de red con

service network restart /etc/init.d/network restart

Si configuramos una estacin y le ponemos como puerta de enlace este servidor ya deberamos poder navegar por Internet (si no navegamos tendramos que parar el iptables ya que aun no lo hemos configurado correctamente).

CONFIGURACIN DE LAS INTERFACES DE RED. Para este servidor fsico, se estn utilizando 2 interfaces de red. Una que tendr salida a internet y la otra hacia nuestra red interna, para ello debemos configurar y asignar las ips correspondientes para que las peticiones de internet de nuestra LAN tengan salida a internet por intermedio de dicho servidor. Salida a Internet : Dispositivo eth1 : Integrado NetXtreme BCM5722 Ethernet Adapater

Para este dispositivo se configurara un Ip de clase C y como puerta de enlace la Ip que por defecto viene en el Router Zyxel 660H brindado por Telefnica. Editamos el siguiente archivo :

nano /etc/sysconfig/networking/profiles/default/ifcfg-eth1

Quedando el archivo configurado como se muestra en la figura .

Servidor Proxy Web Squid 2.6

Centos

5.4

Red Interna : Dispositivo eth0 : D-Link System Ethernet Adapater Para este dispositivo se configurara un Ip de clase A, donde est Ip servir como puerta de enlace para todos los equipos asignados por Dhcp de nuestra Red Interna. Editamos el siguiente archivo.

nano /etc/sysconfig/networking/profiles/default/ifcfg-eth0

Quedando el archivo configurado como se muestra en la figura

Servidor Proxy Web Squid 2.6

Centos

5.4

Despus solo tenemos que reiniciar los servicios de red para que todo quede asignado.

service network restart /etc/init.d/network restart

CONFIGURACIN DEL SERVICIO DHCP.

DHCP (acrnimo de Dynamic Host Configuration Protocol que se traduce Protocolo de configuracin dinmica de servidores) es un protocolo que permite a dispositivos individuales en una red de direcciones IP obtener su propia informacin de configuracin de red (direccin IP; mscara de sub-red, puerta de enlace, etc.) a partir de un servidor DHCP, en este caso nuestro servidor.

PROCEDIMIENTOS.

SELinux y el servicio dhcpd.

A fin de que SELinux permita al servicio dhcpd funcionar normalmente y sin proteccin alguna, utilice el siguiente mandato.

setsebool -P dhcpd_disable_trans 1

Servidor Proxy Web Squid 2.6

Centos

5.4

A fin de que SELinux permita al sistema funcionar normalmente y sin proteccin alguna como cliente DHCP, utilice el siguiente mandato.

setsebool -P dhcpc_disable_trans 1

Fichero de configuracin /etc/dhcpd.conf.

nano /etc/dhcpd.conf

Quedando como se muestra en la figura, en donde definimos el rango de Ips a asignar automticamente por el servidor de acuerdo a nuestra IP de clase A que previamente configuramos en el dispositivo eth0

En este fichero podemos asignar un Ip predeterminada a cada usuario o host de nuestra red, para que cada vez que se conecten a la red, tengan siempre la misma Ip, para definir un usuario o host en nuestra red solo debemos colocar los siguientes parmetros, tal y como se muestra en la siguiente figura :

Servidor Proxy Web Squid 2.6

Centos

5.4

En donde se define como :

host CATALOGACION { option host-name CATALOGACION; hardware ethernet 00:24:1d:1e:17:96; fixed-address 10.10.1.12; }

# Nombre del Host de Pc Cliente # Un host name opcional # Direccin Mac de nuestro equipo cliente # Direccion Ip a asignar siempre

Una buena medida de seguridad es hacer que el servicio dhcpd solo funcione a travs de la interfaz de red utilizada por la LAN, esto en el caso de tener mltiples dispositivos de red. Edite el fichero /etc/sysconfig/dhcpd y agregue como argumento del parmetro DHCPDARGS el valor eth0, eth1, eth2, etc., o lo que corresponda. Ejemplo, como hemos considerado que eth0 es la interfaz correspondiente a la LAN, quedara de la siguiente manera :

Fichero de configuracin /etc/sysconfig/dhcpd # Command line options here DHCPDARGS=eth0

Iniciar, detener y reiniciar el servicio dhcpd.

Para iniciar por primera vez el servicio dhcpd, utilice:

/sbin/service dhcpd start

Servidor Proxy Web Squid 2.6

Centos

5.4

Para hacer que los cambios hechos a la configuracin del servicio dhcpd surtan efecto, utilice:

/sbin/service dhcpd restart

Para detener el servicio dhcpd, utilice:

/sbin/service dhcpd stop

Agregar el servicio dhcpd al arranque del sistema.

Para hacer que el servicio de dhcpd est activo con el siguiente inicio del sistema, en todos los niveles de corrida (2, 3, 4, y 5), se utiliza lo siguiente:

/sbin/chkconfig dhcpd on

CONFIGURACIN DEL IPTABLES.

Lo primero que vamos hacer es asegurar el servidor configurando el firewall. Para ello editaremos la configuracin de iptables desde /etc/sysconfig/iptables. La configuracin sera algo parecida a esta :

*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] :LOGDROP - [0:0] -A LOGDROP -j LOG --log-prefix "IPTABLES " -A LOGDROP -j DROP -A -A -A -A INPUT -j RH-Firewall-1-INPUT FORWARD -j RH-Firewall-1-INPUT RH-Firewall-1-INPUT -i lo -j ACCEPT RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# Filtro de paquetes entrantes al servidor. -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.5/255.255.255.255 --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.5/255.255.255.255 --dport 3128 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -s 192.168.1.5/255.255.255.255 --dport 10000 -j ACCEPT # Filtramos donde pueden conectarse las estaciones # podemos hacer Pings a Internet -A RH-Firewall-1-INPUT -p icmp -m icmp -s 192.168.1.0/255.255.255.0 --icmp-type echorequest -j ACCEPT

Servidor Proxy Web Squid 2.6

Centos

5.4
# Acceso al correo -A RH-Firewall-1-INPUT -m tcp -p tcp -s 192.168.1.0/255.255.255.0 -d 80.80.80.80 dport 25 -j ACCEPT -A RH-Firewall-1-INPUT -m tcp -p tcp -s 192.168.1.0/255.255.254.0 -d 80.80.80.80 dport 110 -j ACCEPT # Acceso a Web seguro -A RH-Firewall-1-INPUT -m tcp -p tcp -s 192.168.1.0/255.255.255.0 dport 443 -j ACCEPT # permitimos hacer consultas DNS -A RH-Firewall-1-INPUT -p udp -s 192.168.1.0/255.255.255.0 dport 53 -j ACCEPT # Denegamos el resto de paquetes -A RH-Firewall-1-INPUT -m tcp -p tcp -j LOGDROP -A RH-Firewall-1-INPUT -j DROP # Prohibimos el ICMP Redirect para evitar el cambio de ruta de los paquetes. -A OUTPUT -p icmp -m icmp --icmp-type redirect -j DROP COMMIT *nat :PREROUTING ACCEPT [2:557] :POSTROUTING ACCEPT [1:108] :OUTPUT ACCEPT [1:108] # Redireccionamiento paral el Transparent-Proxy con Squid -A PREROUTING -i eth0 -p tcp -m tcp -s 192.168.1.0/255.255.255.0 --dport 80 -j REDIRECT --to-ports 3128 COMMIT

---

--

--

Existen multitud de scripts para generar reglas para iptables. Lo que definimos primero son las reglas necesarias para que solo el administrador del sistema (@ip 10.10.1.25) se pueda conectar por SSH.

El siguiente conjunto de reglas que vamos a definir en un archivo diferente al que se encuentra en /etc/sysconfig/iptables y que llamaremos reglas_servidor_muni.sh , contendrn todas la reglas que definen donde y como se pueden conectar las maquinas de nuestra red . Por poltica de la institucin a los usuarios que solo podrn navegar. Dichas reglas, se ejecutaran automticamente cuando el servidor se inicie, Para las reglas de NAT introducimos una regla de prerouting por la cual todos los paquetes que vayan al puerto 80 (http) se redireccionan al pueto 3128 (el Proxy squid).

Nota: Para el que no este acostumbrado al funcionamiento de iptables decir que las ACLs se procesan de arriba abajo. Cuando una regla es cierta para un paquete, este es denegado o aceptado y ya no se procesan ms reglas. Si al final el paquete no es aceptado por ninguna regla, la ultima regla elimina el paquete.

Servidor Proxy Web Squid 2.6

Centos

5.4

Servidor Proxy Web Squid 2.6

Centos

5.4
Archivo : reglas_servidor_sipan.sh

#!/bin/sh #Alias servidor echo -n Aplicando Reglas de Firewall...

/sbin/modprobe ip_tables /sbin/modprobe iptable_filter /sbin/modprobe ip_conntrack /sbin/modprobe ip_conntrack_ftp /sbin/modprobe iptable_nat /sbin/modprobe ip_nat_ftp

/sbin/iptables -F /sbin/iptables -X /sbin/iptables -t nat -F /sbin/iptables -t nat -X /sbin/iptables -t filter -F /sbin/iptables -t filter -X /sbin/iptables -t mangle -F /sbin/iptables -t mangle -X /sbin/iptables --policy INPUT ACCEPT /sbin/iptables --policy OUTPUT ACCEPT /sbin/iptables --policy FORWARD ACCEPT /sbin/iptables -t nat -P PREROUTING ACCEPT /sbin/iptables -t nat -P POSTROUTING ACCEPT

/sbin/iptables -A INPUT -i eth1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT /sbin/iptables -A INPUT -i eth1 -p tcp --dport 20:21 -m state --state NEW,ESTABLISHED -j ACCEPT

/sbin/iptables -A INPUT -p tcp -i eth1 --dport 21 -m state --state ESTABLISHED,RELATED j ACCEPT /sbin/iptables -A INPUT -p tcp -i eth1 --dport 20 -m state --state ESTABLISHED,RELATED j ACCEPT /sbin/iptables -A INPUT -p tcp -i eth1 --dport 23 -m state --state ESTABLISHED,RELATED -

Servidor Proxy Web Squid 2.6

Centos

5.4
j ACCEPT /sbin/iptables -A INPUT -p tcp -i eth1 --dport 443 -m state --state ESTABLISHED,RELATED -j ACCEPT

# Para salida POP3, SMTP , IMAP /sbin/iptables -A OUTPUT -s 10.10.1.25 -p tcp --dport 25 -j ACCEPT /sbin/iptables -A INPUT -d 10.10.1.25 -p tcp --sport 25 -j ACCEPT /sbin/iptables -A OUTPUT -s 10.0.0.0/8 -p tcp --dport 25 -j ACCEPT /sbin/iptables -A INPUT -d 10.0.0.0/8 -p tcp --sport 25 -j ACCEPT

/sbin/iptables -A OUTPUT -s 10.10.1.25 -p tcp --dport 143 -j ACCEPT /sbin/iptables -A INPUT -d 10.10.1.25 -p tcp --sport 143 -j ACCEPT

/sbin/iptables -A OUTPUT -s 10.10.1.25 -p tcp --dport 110 -j ACCEPT /sbin/iptables -A INPUT -d 10.10.1.25 -p tcp --sport 110 -j ACCEPT /sbin/iptables -A OUTPUT -s 10.0.0.0/8 -p tcp --dport 110 -j ACCEPT /sbin/iptables -A INPUT -d 10.0.0.0/8 -p tcp --sport 110 -j ACCEPT

#Bloquear Imo.im /sbin/iptables -A FORWARD -s 0/0 -d 64.13.161.61 -p tcp --dport 443 -j DROP /sbin/iptables -A FORWARD -s 0/0 -d 64.13.161.61 -p udp --dport 443 -j DROP # y por si acaso /sbin/iptables -A FORWARD -d 0/0 -s 64.13.161.61 -p tcp --sport 443 -j DROP /sbin/iptables -A FORWARD -d 0/0 -s 64.13.161.61 -p udp --sport 443 -j DROP # Por recontracaso /sbin/iptables -A FORWARD -p tcp -d 64.13.161.61 --dport 443 -j REJECT /sbin/iptables -A FORWARD -p udp -d 64.13.161.61 --dport 443 -j REJECT /sbin/iptables -A FORWARD -p tcp -d 64.4.15.61 --dport 443 -j REJECT #---------------------------------------------------------------------------------------

# Al firewall tenemos acceso desde la red local /sbin/iptables -A INPUT -s 10.10.0.0/8 -i eth0 -j ACCEPT /sbin/iptables -A INPUT -s 127.0.0.0/8 -p tcp --dport 22 -j ACCEPT

/sbin/iptables -A INPUT -s 190.41.204.95 -i eth1 -j ACCEPT

# Museo

Servidor Proxy Web Squid 2.6

Centos

5.4
/sbin/iptables -A FORWARD -s 10.0.0.0/8 -d www.museotumbasrealessipan.pe -p tcp -j ACCEPT

## Acceso al PROXY /sbin/iptables -A INPUT -i eth0 -s 10.10.0.0/8 -p tcp --dport 80 -j ACCEPT /sbin/iptables -A FORWARD -m state --state ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 80 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 80 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 8080 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 8081 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 20:21 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 23 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 53 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p udp --dport 53 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 1723 -j ACCEPT

/sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 20 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 21 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 22 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 100 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 102 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 443 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 23 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 5432 -j ACCEPT

# Aceptamos que consulten los DNS POP3 Terminal

/sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 25 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 110 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 3389 -j ACCEPT /sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -p tcp --dport 995 -j ACCEPT

# BLOQUEAR CHAT GMAIL /sbin/iptables -I INPUT -s chatenabled.mail.google.com -j DROP /sbin/iptables -A OUTPUT -d chatenabled.mail.google.com -j DROP /sbin/iptables -I FORWARD -s 0/0 -d chatenabled.mail.google.com -j DROP

Servidor Proxy Web Squid 2.6

Centos

5.4

# Filtrando IP para MSN /sbin/iptables -t filter -I INPUT -p tcp -s 10.10.0.0/8 --dport 1863 --syn -j ACCEPT #/sbin/iptables -A FORWARD -p udp -d 10.10.2.130 --dport 3389 -j ACCEPT

# que otras maquinas puedan salir a traves del firewall. echo 1 > /proc/sys/net/ipv4/ip_forward /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128 /sbin/iptables -t nat -A POSTROUTING -s 10.0.0.0/8 -o eth1 -j MASQUERADE

/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j DNAT --to 192.168.1.2:3128 /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 3128

/sbin/iptables -N syn_flood /sbin/iptables -A INPUT -i eth1 -p tcp --syn -j syn_flood /sbin/iptables -A syn_flood -m limit --limit 1/s --limit-burst 5 -j RETURN /sbin/iptables -A syn_flood -j DROP

/sbin/iptables -A FORWARD -s 10.10.0.0/8 -i eth0 -j DROP

echo " OK . Verifique que lo que se aplica con: /sbin/iptables -L -n" #Fin del script

Para que iptables cargue las nuevas reglas definidas en reglas_servidor_sipan.sh solo hay que ejecutar el script con permisos de root en la ubicacin donde hemos guardado dicho script., en este caso en /etc/init.d/: ./reglas_servidor_muni.sh

Ejecutado el script, nuestras reglas de filtrado con Iptables queda configurado. Ahora solo falta configurar SQUID.

Servidor Proxy Web Squid 2.6

Centos

5.4

CONFIGURACIN DEL SQUID.

La poltica que seguiremos para esta implementacin ser la siguiente: queremos que todos los usuarios puedan navegar (a excepcin de los que se considere), en el intervalo de tiempo definido por el administrador, queremos que existen ciertas paginas prohibidas, tambin

queremos que cierto tipo de archivos (exes, pif, etc) estn prohibidos al igual que las conexiones a Messenger, Ares, Skype. Adems que toda la red solo pueda acceder slo a pginas definidas por el administrado tales como, correo institucional, pgina del museo, etc.

Antes de configurar Squid vamos a crear archivos listas de configuracin en /etc/squid/listas/: permitidos.acl : accesoweb.acl: WEB_MUSEO.acl: exten.acl conrestrinccion.acl: por_horas.acl porno.acl gmail_sin_chat.acl Macs_https.acl Direcciones MAC de usuarios con acceso total a todo. Pginas Web permitidas. Pginas permitidas para todo la red del Museo Tumbas Reales. Extensiones de archivo a denegar su descarga. Direcciones MAC de usuarios sin ningn privilegio. Direcciones MAC de usuarios con acceso por dia/hora. Sitios Web, aplicaciones pornogrficas bloqueadas. Aplicaciones y sitios web de mensajera denegadas. Todas las Macs de las pcs para que no accedan a https

El contenido permitidos.acl ser: 00:26:b6:b7:fb:3e 00:26:6c:3d:83:a9 El contenido de accesoweb.acl ser: # Usuario 1 # Usuario 2

.elperuano.com.pe .gob.pe .museotumbasrealessipan.pe .eset.com

Servidor Proxy Web Squid 2.6

Centos

5.4
El contenido de WEB_MUSEO.acl ser:

.museotumbasrealessipan.pe .adobe.com get.adobe.com/es/flashplayer/ .amigosmuseosipan.com .tiendamuseotumbassipan.com .google.com .google.com.pe .windowsupdate.com .mcafee.com .nod32.com .eset.com .avg.com .panda.com .avira.com .free-av.com .yousendit.com El contenido de exten.acl ser:

.avi$ .mp4$ .mp3$ .mp4$ .mpg$ .mpeg$ .mov$ .ra$ .ram$ .rm$ .vob$ .wma$ .wmv$ .wav$ .mbd$ .ace$ .bat$ .exe$ .lnk$ .pif$ .scr$ .sys$

Servidor Proxy Web Squid 2.6

Centos

5.4
El contenido de por_horas.acl ser:

00:26:b6:b7:fb:3e

# Por ejm. Usuario con acceso solo los sbados de 8 am 10 am.

El contenido de conrestrinccion.acl ser:

00:1a:73:df:94:0f 00:25:86:b0:b8:f0 00:10:5a:c9:5d:e7

# Usuario 5 # Usuario 6 # Usuario 7

El contenido de porno.acl ser:

.gemidos.com .otrositioporno.com .sitioindeseable.com .otrositioindeseable.com .petardas.com .sexo sex porn xxx adult

El contenido de gmail_sin_chat.acl ser:

^http://chatenabled.mail.google.com ^http:////mail.google.com/mail/channel/bind mail.google.com/a/museotumbasrealessipan.pe/channel/bind mail.google.com/a/amigosmuseosipan.com/channel/bind mail.google.com/a/tiendamuseotumbassipan.com/channel/bind .chatenabled.mail.google.com .googlemail1.1.google.com 72.14.253.03 .messenger.yahoo.com .msg.yahoo.com .scd.yahoo.com .sc5.yahoo.com gmail.com

Servidor Proxy Web Squid 2.6

Centos

5.4
mail.google.com/mail webcam.yahoo.com .skype.com filetransfer.yahoo.com mail.google.com/mail/channel/bind webmessenger

Ahora ya estamos en condiciones de configurar Squid. Partiremos de la configuracin estndar de /etc/squid/squid.conf y la iremos modificando para ajustar a nuestras necesidades.

Lo

primero

que haremos es que el Proxy trabaje por su puerto

estndar de forma

transparente. En versiones anteriores a la 2.6 la forma de ponerlo transparente no era tan fcil como simplemente poner transparent.

http_port 3128 transparent

El siguiente paso es definir el conjunto de reglas de control de acceso: Archivo /etc/squid/squid.conf acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl todo_el_museo src 10.0.0.0/255.0.0.0 acl horario_permitido time 18:10-23:59 #acl por_dias arp "/etc/squid/listas/por_horas.acl" #acl por_dias_desde time SA #----------------------------------------acl administrador arp "/etc/squid/listas/permitidos.acl" #-----------------------------------------acl CONNECT method CONNECT #------------------------------------------------------------------#acl aplicaciones_prohibidas acl messenger url_regex -i messenger acl meebo url_regex -i meebo acl msn-messenger1 url_regex -i gateway.dll acl msn dst 64.4.13.0/24 152.163.241.0/24 64.12.163.0/24 207.46.110.0/24 acl porno url_regex "/etc/squid/listas/porno" acl extensiones urlpath_regex "/etc/squid/listas/extensiones" #-------- MSN reglas--------------------acl msn_url url_regex -i gateway.dll

Servidor Proxy Web Squid 2.6

Centos

5.4
acl acl acl acl msn_url url_regex -i ADSAdClient31.dll msn_messenger req_mime_type ^application/x-msn-messenger$ msn_port port 1863 msn_method method POST

# -------------------------------------------------------------acl acl acl acl acl gtalk url_regex -i ^http:////mail.google.com/mail/channel/bind gtalk2 url_regex -i chatenabled.mail.google.com gmail url_regex -i gmail.com puertos_gtalk port 5222-5223 WEB_MUSEO dstdomain "/etc/squid/listas/WEB_MUSEO.acl"

acl permitidos arp "/etc/squid/listas/permitidos.acl" acl conrestriccion arp "/etc/squid/listas/conrestriccion.acl" acl web url_regex "/etc/squid/listas/accesoweb.acl" acl gmail_sin_chat url_regex "/etc/squid/listas/gmail_sin_chat.acl"

Una vez definidas las ACLs, las aplico para denegarlas o aceptarlas. Estas conjunto de reglas van despus del comentario : INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS . http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access http_access deny gmail_sin_chat !permitidos deny !permitidos gtalk2 deny !permitidos gtalk deny !permitidos puertos_gtalk deny gmail !permitidos allow WEB_MUSEO allow manager localhost deny manager deny allow allow allow conrestriccion permitidos web !meebo manager administrador

# bloqueamos el url que contenga gateway.dll http_access deny !permitidos msn_method msn_url # bloqueamos el puerto http_access deny !permitidos msn_port # bloqueamos por tunneling http_access deny !permitidos CONNECT msn_port http_access deny !permitidos msn http_reply_access deny !permitidos msn-messenger1 #http_access deny !permitidos MSN_Messenger http_access deny !permitidos msn_messenger

Servidor Proxy Web Squid 2.6

Centos

5.4

Servidor Proxy Web Squid 2.6

Centos

5.4

Con esta configuracin los usuarios ya podran comenzar a navegar. Reiniciaremos el squid con service squid restart y echaremos un vistazo a /var/log/squid/access.log y /var/log/squid/store.log.

Otra

prueba

interesante

es

desde

una

maquina

cliente

navegar

por

http://whatismyipaddress.com/ la cual nos informa de los detalles del Proxy que esta
haciendo la peticin, seal que nos indica que las peticiones las est realizando un Proxy y no la maquina directamente.

Si un usuario debe descargarse algn programa de alguna pagina confiable pondramos el dominio de esta pagina dentro de WEB_MUSEO.acl y si queremos que alguna maquina no pueda navegar, pondramos su direccin IP o MAC dentro de conrestriccion.acl.