You are on page 1of 28

Seguridad de la red

Implementación Del Plan De Seguridad De La Información


Fase 3 – Proxy HTTP – Linux - Squid

GRUPO “MiNdWiDe”
JUAN ALEJANDRO BEDOYA
JOSE DE ARLEX DOMINGUEZ
NEIFER ERNEY GIRALDO
JHON FREDY HERRERA
YOJAN LEANDRO USME

ADMINISTRACION DE REDES INFORMATICAS

Mauricio Ortiz

CENTRO DE SERVICIO Y GESTION EMPRESARIAL


SENA (MEDELLIN)
2010
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

INDICE

Introducción ......................................................................................................................... 3
Objetivo ............................................................................................................................... 4
Topología ................................................................................................................................................... 5
Tabla de direccionamiento ........................................................................................................................ 5
Screenshot de las VM. ............................................................................................................................... 6
Servidor Proxy ....................................................................................................................................... 6
Cliente WEB ........................................................................................................................................... 6
Configuración de R1 ................................................................................................................................... 7
Configuración básica ............................................................................................................................. 7
Configuración de las interfaces ............................................................................................................. 8
Configuración de enrutamiento ............................................................................................................ 8
Tabla de enrutamiento de R1 ................................................................................................................ 8
Proxy HTTP - Squid ................................................................................................................................... 10
Las directivas ....................................................................................................................................... 10
# NETWORK OPTIONS ..................................................................................................................... 10
# MEMORI CACHE OPTIONS ............................................................................................................ 10
# ACCESS CONTROL ......................................................................................................................... 11
# DISK CACHE OPTIONS ................................................................................................................... 16
# LOG FILE OPTIONS ........................................................................................................................ 17
# ADMINISTRATIVA PARAMETERS .................................................................................................. 17
# ERROR PAGE OPTIONS ................................................................................................................. 18
# MISCELLANEOUS .......................................................................................................................... 18
Aplicar algunas políticas ...................................................................................................................... 19
Queremos restringir cierto tipo de extensiones, y messenger ....................................................... 19
Prohibir el acceso a ciertos sitios. ................................................................................................... 25

Conclusiones....................................................................................................................... 27
Bibliografía ......................................................................................................................... 27

MiNdWiDe - Group 2
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Introducción

Existen cientos de manuales y howto’s de cómo montar un servidor Proxy en producción para una
empresa. En este manual se hará énfasis sobre todo en la manera de filtrar el contenido Web a
ciertas páginas, el filtrado de las descargas por Internet.

Me imagino que muchos sabran que un Proxy es un software que realiza las peticiones a un
servidor en nombre de un cliente. Aunque la configuración básica de un Proxy es la de cachear el
contenido Web este concepto para mí ya no tiene mucho sentido dado las velocidades que
tenemos hoy en día para el acceso a Internet, fácilmente en un hogar podemos contar con
velocidades de mínimo 2000 Kbps y sobre todo el aspecto cambiante que tienen las páginas Web.
De qué sirve cachear una página Web si a los 5 minutos ya ha cambiado su aspecto.

MiNdWiDe - Group 3
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Objetivo

Implementar un servidor proxy HTTP y para lleva a cabo este proyecto nos apoyaremos en los
aplicativos VMware Workstation, GNS3, la distribución de Linux CentOS 5.5. Con el fin de tener
una solución la cual permita limitar a los usuarios de la LAN en la navegación por internet.

MiNdWiDe - Group 4
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Topología

Nuestra topología consta de LAN_LOCAL en la cual se encuentran las estaciones de trabajo y


nuestro servidor proxy.

Tabla de direccionamiento

Mascara de Gateway
Dispositivo Interfaz Direccion IP
subred predeterminada
Fa0/0 10.0.0.6 255.255.255.248 NO APLICABLE
R1
Fa0/1 10.0.0.13 255.255.255.248 NO APLICABLE
SVR-PROXY-01 NIC 10.0.0.3 255.255.255.248 10.0.0.6
CLIENTE-WEB-01 NIC 10.0.0.5 255.255.255.248 10.0.0.6

MiNdWiDe - Group 5
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Screenshot de las VM.

Servidor Proxy

Cliente WEB

MiNdWiDe - Group 6
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Configuración de R1

Configuración básica
enable
configure terminal
hostname R0
line console 0
password cisco
login
exec-timeout 0 0
logging synchronous
exit
line vty 0 4
password cisco
exec-timeout 3 0
logging synchronous
login
exit
service password-encryption
banner motd / !!¡¡ SOLO PERSONAL AUTORIZADO ¡¡!! /
enable secret class
clock timezone BOGOTA -5
END
clock set 15:35:30 12 january 2010
cop r s

MiNdWiDe - Group 7
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Configuración de las interfaces


R1(config)#interface fa0/0
R1(config-if)#ip add
R1(config-if)#ip address 10.0.0.6 255.255.255.248
R1(config-if)#description TO LAN_LOCAL
R1(config-if)#no shutdown

R1(config)#interface fa0/1
R1(config-if)#ip add
R1(config-if)#ip address 10.0.0.13 255.255.255.248
R1(config-if)#description TO INTERNET
R1(config-if)#no shutdown

Configuración de enrutamiento
R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.14

Tabla de enrutamiento de R1

MiNdWiDe - Group 8
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

En la siguiente imagen observamos conectividad completa.

MiNdWiDe - Group 9
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Proxy HTTP - Squid

Para la instalación de squid ejecutamos el comando yum install squid, el directorio principal de
squid lo encontramos en /etc/squid/. Nos posicionamos sobre ese directorio y procedemos a
realizar una copia del archivo de configuración ppal el cual es squid.conf.

cp squid.conf squid.conf.old

Antes de que empecemos a configurar el servidor vamos a agregarlo al inicio, con el siguiente
comando.

chkconfig squid on

Las directivas

# NETWORK OPTIONS
# TAG: http_port

http_port: esta directiva permite configurar squid para que escuche por un puerto específico
además también podemos especificar que escuche por una dirección ip determinada o cualquiera
que tenga configurada el servidor donde se ejecuta squid.

Esta directiva la configuraremos así:

http_port 10.0.0.3:3128
http_port 10.0.0.3:8080

# MEMORI CACHE OPTIONS


# TAG: cache_mem

cache_mem: nos permite especificar la cantidad de memoria RAM que usara para almacenar los
datos más solicitados.

MiNdWiDe - Group 10
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Esta directiva la configuraremos así:

cache_mem 16 MB

# ACCESS CONTROL
# TAG: acl

Alc: nos permite crear listas de control de acceso para definir que se permite o no, como por
ejemplo dominios permitidos de destino, ips, etc.

Empezaremos a agregar las directivas acl desde acl CONNECT method CONNECT.

En esta directiva definimos nuestra red local.

acl LAN_LOCAL src 10.0.0.0/29

Con esta configuración básica ya podemos empezar a testear nuestro proxy, antes de configurar
nuestro cliente debemos habilitar conexiones a el puerto 8080 en el firewall de CentOS.

Reiniciamos el servicio

service squid restart

Y habilitamos el puerto en iptables.

MiNdWiDe - Group 11
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Configuramos nuestro cliente para que utilice el servidor proxy.

MiNdWiDe - Group 12
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Por lo pronto vemos que nos dejo conectarnos al servidor proxy pero no podemos visualizar
ninguna página web, esto es porque debemos especificar si permitimos o denegamos la acl creada
anteriormente en # ACCESS CONTROL > # TAG: acl.

# TAG: http_access

http_access: en esta directiva especificamos si se permiten o se deniegas las acl creadas


anteriormente en la sección # ACCESS CONTROL > # TAG: acl.

Empezaremos a agregar directivas http_access posteriormente a la directiva http_access allow


localhost.

Agregaremos la siguiente directiva a esta sección para que nos permita visualizar cualquier página
a la LAN_LOCAL o sea a 10.0.0.0/29.

http_access allow LAN_LOCAL

Reiniciamos squid.

service squid restart

MiNdWiDe - Group 13
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Y podemos observar que ya nos deja ver cualquier página web.

En este apartado me imagino que se estarán haciendo la pregunta:

Bueno teniendo en cuenta la tabla de direccionamiento presentada al inicio de este


documento podemos observar que la Gateway para los clientes es 10.0.0.6, dirección ip de la
Interface Fa0/0 de R1, que pasa si le quitamos al navegador web el proxy?. Si efectivamente
dejaría navegar tranquilamente a los clientes sin necesidad de pasar por el servidor proxy.

Para resolver este problema realizaremos una ACL en R1, y es la siguiente:

R1(config)#ip access-list extended ONLYPROXY


R1(config-ext-nacl)#permit ip host 10.0.0.3 any log
R1(config-ext-nacl)#permit icmp any any log
R1(config-ext-nacl)#deny ip any any log
R1(config-ext-nacl)#exit

MiNdWiDe - Group 14
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Aplicamos la ACL creada a la interface Fa0/0 con dirección de entrada.

R1(config)#interface fa0/0
R1(config-if)#ip access-group ONLYPROXY in

En esta captura podemos observar la cantidad de coincidencia que se permiten y deniegan para la
ACL creada con el nombre de ONLYPROXY.

Igualmente los logs que nos envía a la consola.

MiNdWiDe - Group 15
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Jan 12 21:34:04.963: %SEC-6-IPACCESSLOGP: list ONLYPROXY permitted tcp 10.0.0.3(0) ->


96.31.90.61(0), 14 packets
Jan 12 21:34:04.963: %SEC-6-IPACCESSLOGP: list ONLYPROXY permitted udp 10.0.0.3(0) ->
208.67.222.222(0), 1 packet
R1#
Jan 12 21:35:04.963: %SEC-6-IPACCESSLOGP: list ONLYPROXY denied udp 10.0.0.5(0)->
10.0.0.7(0), 6 packets
R1#
Jan 12 21:35:40.571: %SEC-6-IPACCESSLOGP: list ONLYPROXY denied udp 10.0.0.5(0)->
208.67.222.222(0), 1 packet

Resuelta la pregunta continuamos y agregaremos, modificaremos las siguientes directivas.

# DISK CACHE OPTIONS


# TAG: cache_dir

cache_dir: Con esta directiva podemos especificar el tamaño de almacenamiento en disco duro
que utilizara squid para almacenar el cache, número de directorios y subdirectorios.

Esta directiva la configuraremos así:

cache_dir ufs /var/spool/squid 500 16 256

Es importante aclarar que cuando se toca el tamaño del cache debemos parar el servicio y ejecutar
el siguiente comando en la CLI del OS.

squid -z

# TAG: minimum_object_size

minimum_object_size: Con esta directiva podemos especificar el tamaño mínimo permitido que
se almacenara en cache.

MiNdWiDe - Group 16
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

minimum_object_size 0 KB

# TAG: maximum_object_size

maximum_object_size: Con esta directiva podemos especificar el tamaño máximo permitido que
se almacenara en cache.

maximum_object_size 2048 KB

# LOG FILE OPTIONS


# TAG: access_log

access_log: Esta directiva especifica el directorio donde se almacenara información referente al


acceso de nuestro servidor proxy.

access_log /var/log/squid/access.log squid

# TAG: cache_log

cache_log: Esta directiva nos permite definir la ubicación del archivo en donde se almacenara
datos del comportamiento de cache squid.

cache_log /var/log/squid/cache.log

# ADMINISTRATIVA PARAMETERS
# TAG: cache_mgr

cache_mgr: Esta directiva nos permite configurar una dirección de correo electrónico para en
envío de eventos si ocurre algo relacionado con el cache.

Esta directiva la configuraremos así:

cache_mgr jfherrera49@misena.edu.co

# TAG: visible_hostname

visible_hostname: Con esta directiva especificamos el nombre del servidor.


MiNdWiDe - Group 17
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Esta directiva la configuraremos así:

visible_hostname localhost3

# ERROR PAGE OPTIONS


# TAG: error_directory

error_directory: Esta directiva permite cambiar el idioma para que aparezcan los mensajes de
error a los clientes en el idioma deseado.

Esta directiva la configuraremos así:

error_directory /usr/share/squid/errors/Spanish

# TAG: err_html_text

err_html_text: Esta directiva nos permite agregar comentarios adicionales a los errors generados
por squid hacia sus clientes, para que el valor asignado a esta directiva tenga efecto debemos
agregar a el tipo de mensaje en el que queremos incluir este comentario la variable %L.

err_html_text <p style=’color: red;’>NO SE PUEDE…</p>

# TAG: deny_info

deny_info: Esta directiva nos permite asociar una página de error personalizada a una negación
establecida por http_access.

Por el momento dejaremos esta directiva tal cual está en la configuración por defecto.

# MISCELLANEOUS
# TAG: offline_mode

offline_mode: Permite especificar que nuestro servidor proxy este en modo offline o sea que
proporcionara información de cache que este en el servidor, pero si la información solicitada es
nueva no actualizara el cache, igualmente nunca tratara de verificar si hay nueva información de
sitos, para su actualización en cache.

MiNdWiDe - Group 18
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

offline_mode off

Muy bien con las directivas básicas configuradas reiniciaremos el servidor.

service squid restart

Si por algún motivo no nos inicia squid podemos verificar que está ocurriendo con el siguiente
comando:

service squid reload

Podemos observar que nuestro mensaje se agrego a el tipo de mensaje de error


ERR_ACCESS_DENIED.

Aplicar algunas políticas

Queremos restringir cierto tipo de extensiones, y messenger


Crearemos un archivo en /etc/squid/ llamando deny_files.conf, y el cual contendrá lo siguiente:

MiNdWiDe - Group 19
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

\.[Mm][Pp]3$
\.[Aa][Vv][Ii]$
\.[Rr][Aa][Rr]$
\.[Ee][Xx][Ee]$
\.[Bb][Aa][Tt]$
\.[Cc][Oo][Mm]$

Con esto estaremos restringiendo mp3, avi, rar, exe, bat, com.

Y finalmente agregamos las siguientes directivas a el archivo squid.conf.

acl deny_files urlpath_regex "/etc/squid/deny_files.conf"


acl messenger rep_mime_type -i ^application/x-msn-messenger$

http_access deny deny_files


http_access deny messenger

NOTA: El orden es importante para que la política se aplique correctamente las reglas deny las
ingresamos antes de lo que se permite.

Reiniciamos el servicio.

MiNdWiDe - Group 20
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

service squid reload

MiNdWiDe - Group 21
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

MiNdWiDe - Group 22
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Como podemos observar no nos deja descargar archivos .exe, mp3.

Pero si que nos deja archivos .msi.

MiNdWiDe - Group 23
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Y esta es una captura en una estación de trabajo no esta dentro del dominio del servidor proxy.

MiNdWiDe - Group 24
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Prohibir el acceso a ciertos sitios.


Crearemos un nuevo archivo en /etc/squid/ el cual se llamara deny_sites.conf y contendrá lo
siguiente:

tube8.com
megaupload.com
rapidshare.com
taringa.net

Crearemos la acl nombrada como deny_sites

alc deny_sites url_regex “/etc/squid/deny_sites.conf”

Aplicamos la negación a esta acl.

http_access deny deny_sites

Nuevamente el orden es importante y reiniciamos el servicio

service squid reload

MiNdWiDe - Group 25
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Para finalizar vamos a personalizar un mensaje para la acl deny_files creada anteriormente.

deny_info http://jfherrera.wordpress.com deny_files

Con esto cuando intenten descargar un tipo de extensión lo que hará es re direccionar a la url
http://jfherrera.wordpress.com.

MiNdWiDe - Group 26
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Conclusiones

La implementación de un servidor proxy puede ser muy útil para la implementación de políticas de
una organización.

Si queremos reservar el ancho de banda para otras tareas más necesarias podemos apoyarnos en
un servidor proxy con cache.

La implementación de Squid es fácil de realizar, además en la web encontramos infinidad de


información del mismo, lo mejor es que es la misma configuración en cualquier distribución de
Linux.

Bibliografía

http://www.visolve.com

http://www2.linuxparatodos.net/web/comunidad/base-de-conocimiento

http://www.vlan7.org/

MiNdWiDe - Group 27
Mind Wide Open™
BLOG – http://jfherrera.wordpress.com
Seguridad de la red | Implementación Del Plan De Seguridad De La
Información
GROUP | “???”

Gracias…
Juan Alejandro Bedoya

Jose De Arlex Dominguez

Neifer Erney Giraldo

Jhon Fredy Herrera

Yojan Leandro Usme

MiNdWiDe - Group 28