+ All Categories
Home > Documents > Manual Proxy Squid

Manual Proxy Squid

Date post: 21-Oct-2015
Category:
Upload: christian-s-medina
View: 124 times
Download: 3 times
Share this document with a friend
Popular Tags:
37
SERVIDOR SQUID PROXY WEB Centos Linux 5.6 Squid es el software para servidor Proxy más popular y extendido entre los sistemas operativos basados sobre UNIX®. Es muy confiable, robusto y versátil. Al ser software libre, además de estar disponible el código fuente, está libre del pago de costosas licencias por uso o con restricción a un uso con determinado número de usuarios. Christian Medina T. [email protected]
Transcript
Page 1: Manual Proxy Squid

SERVIDOR SQUID PROXY WEB Centos Linux 5.6

Squid es el software para servidor Proxy más popular y

extendido entre los sistemas operativos basados sobre

UNIX®. Es muy confiable, robusto y versátil. Al ser

software libre, además de estar disponible el código

fuente, está libre del pago de costosas licencias por uso o

con restricción a un uso con determinado número de

usuarios.

Christian Medina T. [email protected]

Page 2: Manual Proxy Squid

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 Gráfico SARG 2.2.5

IS-dhcpd 3.0

2. DIAGRAMA LÓGICO DE LA RED

Page 3: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

3. INSTALACIÓN 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 instalación,Dicho

test es para verificar si el CD ó DVD esta en optimas condiciones y no presenta ningun archivo

dañado. Por lo siguiente, damos Skip.

Page 4: Manual Proxy Squid

Cargando la configuración de instalación.

Haga clic sobre el botón «Siguiente».

Configuración del idioma selecciona (Español) como muestra en la imagen.

Page 5: Manual Proxy Squid

Haga clic sobre el botón «Siguiente».

Page 6: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Selección de teclado busque Español.

Haga clic sobre el botón «Siguiente».

Partición del disco duro, escojamos la opción personalizada.

Page 7: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

La herramienta de particiones mostrará el espacio disponible. Haga clic en el botón

«Nuevo».

Ahora bien vamos a crear la partición con sistema de archivo ext3 y el punto de montaje:

/ (Directorio Raíz). Este es la partición donde se instalará el sistema base de CentOS.

Page 8: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Haga clic sobre el botón «Aceptar».

Page 9: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Haga clic en el botón «Nuevo».

Para crear la siguiente partición, intercambio swap no requiere punto de montaje. Seleccione

en el campo de

«Tipo de sistema de archivos» la opción swap.

La partición de intercambio swap, sirve como memoria virtual para ejecutar mas rápidos los

procesos y no se bloque el sistema, si la PC tiene poca memoria física, es recomendable crear

la partición con un tamaño similar a la cantida de MB o Gb que posea de Memoria RAM .

Haga clic sobre el botón «Aceptar».

Haga clic sobre el botón «Siguiente».

Page 10: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Sin modificaciones.

Haga clic sobre el botón «Siguiente».

Configuración de la zona horaria, con el puntero seleccione el mapa de Perú y busque la

capital.

Page 11: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Page 12: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Asigne una clave de acceso al usuario root.

Al terminar, haga clic sobre el botón «Siguiente», y espere a que el sistema haga la lectura de

información de los grupos de paquetes.

Page 13: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Selección del entorno grafico de escritorio escojamos GNOME / KDE.

Haga clic sobre el botón «Siguiente».

Se realizará una comprobación de dependencias de los paquetes a instalar. Este proceso

puede demorar algunos minutos.

Page 14: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Haga clic sobre el botón «Siguiente».

Page 15: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Haga clic sobre el botón «Siguiente».

Dependiendo de la capacidad de la PC, el proceso de instalación puede tardar algunos minutos.

Page 16: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Instalación de finalizada clic en botón Reiniciar.

Una vez terminada la instalación debemos hacer una actualización completa del sistema y

comenzar a bajar los 300Mb que seguramente abran en actualizaciones.

Page 17: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

# yum upgrade

Después 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 implementación :

SQUID 2.6 ( SQUID )

yum -y install squid

APACHE 2.0 ( HTTPD )

yum -y install httpd

SERVICIO DHCP ( DHCPD )

yum -y install dhcp

REPORTADOR GRÁFICO 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 depósito 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 -

Page 18: Manual Proxy Squid

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

automáticamente cuando el sistema inicie. Tenemos que habilitar iptables, httpd, dhcpd y

squid.

ntsysv

CONFIGURACIÓN 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 también haga de gateway tendremos que activar esta opción.

Editaremos :

nano /etc/sysctl.conf

Page 19: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

y cambiaremos

“net.ipv4.ip_forward=0”

por “net.ipv4.ip_forward=1”.

Después solo tenemos que reiniciar los servicios de red con

service network restart

ó /etc/init.d/network restart

Si configuramos una estación y le ponemos como puerta de enlace este servidor ya

deberíamos poder navegar por Internet (si no navegamos tendríamos que parar el

iptables ya que aun no lo hemos configurado correctamente).

CONFIGURACIÓN DE LAS INTERFACES DE RED.

Para este servidor físico, se están 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 Telefónica. Editamos el siguiente archivo :

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

Quedando el archivo configurado como se muestra en la figura .

Page 20: Manual Proxy Squid

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

Page 21: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Después solo tenemos que reiniciar los servicios de red para que todo quede asignado.

service network restart

ó /etc/init.d/network restart

CONFIGURACIÓN DEL SERVICIO DHCP.

DHCP (acrónimo de Dynamic Host Configuration Protocol que se traduce Protocolo de

configuración dinámica de servidores) es un protocolo que permite a dispositivos individuales en

una red de direcciones IP obtener su propia información de configuración de red (dirección IP;

máscara 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 protección alguna,

utilice el siguiente mandato.

setsebool -P dhcpd_disable_trans 1

Page 22: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

A fin de que SELinux permita al sistema funcionar normalmente y sin protección alguna como

cliente DHCP, utilice el siguiente mandato.

setsebool -P dhcpc_disable_trans 1

Fichero de configuración /etc/dhcpd.conf.

nano /etc/dhcpd.conf

Quedando como se muestra en la figura, en donde definimos el rango de Ips a asignar

automáticamente 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 parámetros, tal y como se muestra

en la siguiente figura :

Page 23: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

En donde se define como :

host CATALOGACION { # Nombre del Host de Pc Cliente

option host-name “CATALOGACION”; # Un host name opcional

hardware ethernet 00:24:1d:1e:17:96; # Dirección Mac de nuestro equipo cliente

fixed-address 10.10.1.12; ·# Direccion Ip a asignar siempre

}

Una buena medida de seguridad es hacer que el servicio dhcpd solo funcione a través de la

interfaz de red utilizada por la LAN, esto en el caso de tener múltiples dispositivos de red. Edite

el fichero /etc/sysconfig/dhcpd y agregue como argumento del parámetro DHCPDARGS el

valor eth0, eth1, eth2, etc., o lo que corresponda. Ejemplo, como hemos considerado que eth0

es la interfaz correspondiente a la LAN, quedaría de la siguiente manera :

Fichero de configuración /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

Page 24: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Para hacer que los cambios hechos a la configuración 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

CONFIGURACIÓN DEL IPTABLES.

Lo primero que vamos hacer es asegurar el servidor configurando el firewall. Para ello

editaremos la configuración de iptables desde “/etc/sysconfig/iptables”. La configuración sería

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 INPUT -j RH-Firewall-1-INPUT

-A FORWARD -j RH-Firewall-1-INPUT

-A RH-Firewall-1-INPUT -i lo -j ACCEPT

-A 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 echo-

request -j ACCEPT

Page 25: Manual Proxy Squid

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 , contendrán todas la

reglas que definen donde y como se pueden conectar las maquinas de nuestra red . Por

política de la institución a los usuarios que solo podrán navegar. Dichas reglas, se ejecutaran

automáticamente 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 más reglas. Si al final el paquete no es aceptado por ninguna

regla, la ultima regla elimina el paquete.

Page 26: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Page 27: Manual Proxy Squid

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 -

Page 28: Manual Proxy Squid

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

Page 29: Manual Proxy Squid

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

Page 30: Manual Proxy Squid

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 ubicación 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.

Page 31: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

CONFIGURACIÓN DEL SQUID.

La política que seguiremos para esta implementación será la siguiente: queremos que todos

los usuarios puedan navegar (a excepción de los que se considere), en el intervalo de tiempo

definido por el administrador, queremos que existen ciertas paginas prohibidas, también

queremos que cierto tipo de archivos (exes, pif, etc) estén prohibidos al igual que las

conexiones a Messenger, Ares, Skype. Además que toda la red solo pueda acceder sólo a

páginas definidas por el administrado tales como, correo institucional, página del museo, etc.

Antes de configurar Squid vamos a crear archivos “listas” de configuración en

”/etc/squid/listas/”:

permitidos.acl : Direcciones MAC de usuarios con acceso total a todo.

accesoweb.acl: Páginas Web permitidas.

WEB_MUSEO.acl: Páginas permitidas para todo la red del Museo Tumbas Reales.

exten.acl Extensiones de archivo a denegar su descarga.

conrestrinccion.acl: Direcciones MAC de usuarios sin ningún privilegio.

por_horas.acl Direcciones MAC de usuarios con acceso por dia/hora.

porno.acl Sitios Web, aplicaciones pornográficas bloqueadas.

gmail_sin_chat.acl Aplicaciones y sitios web de mensajería denegadas.

Macs_https.acl Todas las Mac’s de las pc’s para que no accedan a https

El contenido permitidos.acl será:

00:26:b6:b7:fb:3e # Usuario 1

00:26:6c:3d:83:a9 # Usuario 2

El contenido de accesoweb.acl será:

.elperuano.com.pe

.gob.pe

.museotumbasrealessipan.pe

.eset.com

Page 32: Manual Proxy Squid

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$

Page 33: Manual Proxy Squid

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 sábados de 8 am – 10

am.

El contenido de conrestrinccion.acl será:

00:1a:73:df:94:0f # Usuario 5

00:25:86:b0:b8:f0 # Usuario 6

00:10:5a:c9:5d:e7 # 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

Page 34: Manual Proxy Squid

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 configuración estándar

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 estándar de forma

transparente. En versiones anteriores a la 2.6 la forma de ponerlo transparente no era tan fácil

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

Page 35: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

acl msn_url url_regex -i ADSAdClient31.dll

acl msn_messenger req_mime_type ^application/x-msn-messenger$

acl msn_port port 1863

acl msn_method method POST

# --------------------------------------------------------------

acl gtalk url_regex -i ^http:////mail.google.com/mail/channel/bind

acl gtalk2 url_regex -i chatenabled.mail.google.com

acl gmail url_regex -i gmail.com

acl puertos_gtalk port 5222-5223

acl 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 después del comentario :

“INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS”.

http_access deny gmail_sin_chat !permitidos

http_access deny !permitidos gtalk2

http_access deny !permitidos gtalk

http_access deny !permitidos puertos_gtalk

http_access deny gmail !permitidos

http_access allow WEB_MUSEO

http_access allow manager localhost

http_access deny manager

http_access deny conrestriccion

http_access allow permitidos

http_access allow web !meebo

http_access allow 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

Page 36: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Page 37: Manual Proxy Squid

Servidor Proxy Web – Squid 2.6

Centos

5.4

Con esta configuración los usuarios ya podrían 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 petición, señal que nos indica que las peticiones las está realizando un Proxy y

no la maquina directamente.

Si un usuario debe descargarse algún programa de alguna pagina confiable pondríamos el

dominio de esta pagina dentro de WEB_MUSEO.acl y si queremos que alguna maquina no

pueda navegar, pondríamos su dirección IP o MAC dentro de conrestriccion.acl.


Recommended