Fase 3 Squid Proxy
-
Upload
jh0n-fredy-h -
Category
Documents
-
view
8.422 -
download
3
Transcript of Fase 3 Squid Proxy
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 | “???”
MiNdWiDe - Group 2
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
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 3
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.
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 4
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.
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 5
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
Dispositivo Interfaz Direccion IPMascara de
subred
Gateway
predeterminadaFa0/0 10.0.0.6 255.255.255.248 NO APLICABLE
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
R1
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 6
Screenshot de las VM.
Servidor Proxy
Cliente WEB
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 7
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
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 8
Configuración de las interfaces
Configuración de enrutamiento
Tabla de enrutamiento de R1
R1(config)#ip route 0.0.0.0 0.0.0.0 10.0.0.14
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
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 9
En la siguiente imagen observamos conectividad completa.
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 10
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.
Antes de que empecemos a configurar el servidor vamos a agregarlo al inicio, con el siguiente
comando.
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í:
# 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.
http_port 10.0.0.3:3128
http_port 10.0.0.3:8080
chkconfig squid on
cp squid.conf squid.conf.old
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 11
Esta directiva la configuraremos así:
# 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.
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
Y habilitamos el puerto en iptables.
service squid restart
acl LAN_LOCAL src 10.0.0.0/29
cache_mem 16 MB
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 12
Configuramos nuestro cliente para que utilice el servidor proxy.
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 13
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.
Reiniciamos squid.
service squid restart
http_access allow LAN_LOCAL
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 14
Y podemos observar que ya nos deja ver cualquier página web.
En este apartado me imagino que se estarán haciendo la pregunta:
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
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.
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 15
Aplicamos la ACL creada a la interface Fa0/0 con dirección de entrada.
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.
R1(config)#interface fa0/0
R1(config-if)#ip access-group ONLYPROXY in
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 16
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í:
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.
# TAG: minimum_object_size
minimum_object_size: Con esta directiva podemos especificar el tamaño mínimo permitido que
se almacenara en cache.
squid -z
cache_dir ufs /var/spool/squid 500 16 256
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
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 17
# TAG: maximum_object_size
maximum_object_size: Con esta directiva podemos especificar el tamaño máximo permitido que
se almacenara en cache.
# 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.
# 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.
# 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í:
# TAG: visible_hostname
visible_hostname: Con esta directiva especificamos el nombre del servidor.
cache_mgr [email protected]
cache_log /var/log/squid/cache.log
access_log /var/log/squid/access.log squid
maximum_object_size 2048 KB
minimum_object_size 0 KB
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 18
Esta directiva la configuraremos así:
# 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í:
# 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.
# 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.
err_html_text <p style=’color: red;’>NO SE PUEDE…</p>
error_directory /usr/share/squid/errors/Spanish
visible_hostname localhost3
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 19
Muy bien con las directivas básicas configuradas reiniciaremos el servidor.
Si por algún motivo no nos inicia squid podemos verificar que está ocurriendo con el siguiente
comando:
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:
service squid reload
service squid restart
offline_mode off
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 20
Con esto estaremos restringiendo mp3, avi, rar, exe, bat, com.
Y finalmente agregamos las siguientes directivas a el archivo squid.conf.
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.
http_access deny deny_files
http_access deny messenger
acl deny_files urlpath_regex "/etc/squid/deny_files.conf"
acl messenger rep_mime_type -i ^application/x-msn-messenger$
\.[Mm][Pp]3$
\.[Aa][Vv][Ii]$
\.[Rr][Aa][Rr]$
\.[Ee][Xx][Ee]$
\.[Bb][Aa][Tt]$
\.[Cc][Oo][Mm]$
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 21
service squid reload
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 | “???”
MiNdWiDe - Group 23
Como podemos observar no nos deja descargar archivos .exe, mp3.
Pero si que nos deja archivos .msi.
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 24
Y esta es una captura en una estación de trabajo no esta dentro del dominio del servidor proxy.
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 25
Prohibir el acceso a ciertos sitios.
Crearemos un nuevo archivo en /etc/squid/ el cual se llamara deny_sites.conf y contendrá lo
siguiente:
Crearemos la acl nombrada como deny_sites
Aplicamos la negación a esta acl.
Nuevamente el orden es importante y reiniciamos el servicio
service squid reload
http_access deny deny_sites
alc deny_sites url_regex “/etc/squid/deny_sites.conf”
tube8.com
megaupload.com
rapidshare.com
taringa.net
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 26
Para finalizar vamos a personalizar un mensaje para la acl deny_files creada anteriormente.
Con esto cuando intenten descargar un tipo de extensión lo que hará es re direccionar a la url
http://jfherrera.wordpress.com.
deny_info http://jfherrera.wordpress.com deny_files
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 27
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/
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 28
Gracias… Juan Alejandro Bedoya
Jose De Arlex Dominguez
Neifer Erney Giraldo
Jhon Fredy Herrera
Yojan Leandro Usme