SlideShare una empresa de Scribd logo
Ramón Jesús Suárez Pérez                                                        2ºASIR




SQUID 3 – Servidor Proxy en Ubuntu 12.04




Introducción y requisitos del sistema

Squid es un popular programa de software libre bajo licencia GPL diseñado para
ejecutarse en entornos tipo Unix, que implementa un servidor proxy y un dominio para
cache de páginas web.

Entre las principales características de squid, destacan:

   -   Permitir conectarse a internet a una serie de equipos a través de una sola IP.
   -   Filtrado de contenidos.
   -   Capacidad de almacenar una caché de páginas webs para que el acceso a ellas
       sea mucho más rápido desde los equipos de la red.

Aunque está orientado principalmente a HTTP y FTP es compatible con otros
protocolos como Internet Gopher. Implementa varias modalidades de cifrado como
TLS, SSL, y HTTPS.
Ramón Jesús Suárez Pérez                                                         2ºASIR


Instalación de Squid3 en Ubuntu 12.04

Para instalar Squid3 en Ubuntu 12.04, bastará con ejecutar el siguiente comando en el
terminal: “sudo aptitude install squid3”.

Este comando descargará e instalará el paquete squid3 de forma automática
directamente de los repositorios de Ubuntu.




Es conveniente tener configurada en nuestro equipo una dirección IP estática, no
obstante para la prueba no será necesario.

Utilizaremos el comando “ifconfig”, para obtener la dirección IP de nuestro servidor
que será el encargado de actuar como proxy.
Ramón Jesús Suárez Pérez                                                            2ºASIR


Si comprobamos el estado de los puertos abiertos en nuestro servidor mediante el
comando “nmap” ejecutado desde otra máquina, podremos comprobar que ha
quedado habilitado el puerto por defecto de squid (3128), lo cual nos indica que
nuestro proxy está activo en el sistema.




Configuración de Squid3 en Firefox

Para utilizar un servidor proxy en un navegador, en nuestro caso firefox, bastará con
acceder al menú de configuración del navegador, y una vez dentro buscaremos en el
apartado de configuración oportuno (en nuestro caso “Avanzado” las propiedades de
la “Configuración de la conexión”.

Una vez allí, en el apartado de configuración de proxy, debemos especificar la
dirección IP de nuestro servidor y el puerto de nuestro proxy (por defecto 3128).
Ramón Jesús Suárez Pérez                                                          2ºASIR


Configuración básica y Listas de control de acceso (ACL)

Si comprobamos el funcionamiento de nuestro servidor proxy desde un navegador,
podremos darnos cuenta de que por defecto SQUID bloquea el acceso a todas las
direcciones HTTP.




Para solventar esto y poder disfrutar de un acceso total al contenido web desde los
equipos que utilicen nuestro proxy, debemos dirigirnos al fichero:
“/etc/squid3/squid.conf” y una vez allí modificar la línea “http_access deny all” por
“http_access allow all”.




Es recomendable que antes de realizar modificaciones en el fichero squid.conf
realicemos copias de seguridad para evitar fallos en la ejecución del programa.
Ramón Jesús Suárez Pérez                                                           2ºASIR


Cada vez que realicemos cambios en el archivo de configuración del programa, será
necesario reiniciar el servicio de squid para que se apliquen al sistema.

Para reiniciar el servicio bastará con ejecutar el comando: “sudo service squid3 restart”




Una vez hecho esto, podremos comprobar como volvemos a navegar con total libertad
desde los equipos clientes que utilicen nuestro proxy.
Ramón Jesús Suárez Pérez                                                           2ºASIR


Definición y denegación de ACL (Listas de control de acceso)

Las listas de control de acceso son un conjunto de reglas que permiten controlar el
tráfico de la red a través de la aprobación o la denegación de estas.

La definición, aprobación y denegación de ACLs se realiza desde el fichero de
configuración de squid (/etc/sqiud3/squid.conf).

Las acls deben de especificarse en el fichero de manera ordenada ya que las acls
superiores tendrán prioridad sobre las inferiores.


Bloqueando el acceso a un determinado dominio.

Para definir una acl para un determinado sitio web utilizaremos la siguiente sintaxis:
“acl nombre_acl        dstdomain      dominio_o_ip_del_sitio_web”
Para denegar el acceso a una detemrinado sitio web, en este caso únicamente
tendremos que haber definido previamente la acl y después denegarla mediante:
“http_access deny nombre_acl”




Como se vió anteriormente, tras reiniciar el servicio de squid, podremos comprobar
que ninguna de las webs especificadas es accesible por los equipos clientes.
Ramón Jesús Suárez Pérez                                                           2ºASIR




Bloqueando el acceso a una lista negra de dominios

Para facilitar el bloqueo a varios sitios webs de una sola vez, podemos recurrir a las
llamadas “listas negras”.

Una lista negra no es otra cosa que una acl que carga los dominios o palabras de un
fichero y permite así garantizar o denegar el acceso a dichos sitios web.

Para definir una acl de este tipo usaremos la siguiente estructura:
“acl nombre_acl         dstdomain       “/direccion_del_fichero_lista_negra”
Ramón Jesús Suárez Pérez                                                       2ºASIR


Aquí podemos comprobar el funcionamiento de la lista negra:




Bloqueando el acceso a una lista negra de palabras

De la misma forma que definimos listas negras de dominios, es posible bloquear el
acceso a direcciones que contengan determinadas palabras:
“acl nombre_acl url_regex         “/direccion_del_fichero_lista_negra”
Ramón Jesús Suárez Pérez                                                         2ºASIR


Si comprobamos el funcionamiento de nuestra lista negra de palabras podemos
observar como nos bloquea directamente todas las urls que contengan las palabras
indicadas en el fichero.

No nos deja incluso buscarlas desde el navegador.




Excepciones de reglas (listas blancas)

Las listas blancas se definen de la misma forma que cualquier otra acl...
Son utilizadas para especificar excepciones en las reglas del proxy.


Podemos habilitar el acceso a una lista blanca mediante la siguiente sintaxis (habiendo
definido previamente la acl correspondiente)

“http_access allow nombre_acl”
Ramón Jesús Suárez Pérez                                                       2ºASIR


Cambiando el nombre a nuestro proxy

Es posible cambiar el nombre que nuestro proxy muestra a la hora de bloquear el
acceso a cierto contenido.

Para cambiar el nombre a nuestro proxy debemos buscar la linea “visible_hostname”
dentro del fichero “/etc/squid3/squid.conf”. En dicha linea podremos especificar el
nombre de nuestro proxy.
Ramón Jesús Suárez Pérez                                                     2ºASIR


Configuración en Webmin

Para poder acceder a configurar squid3 desde Webmin, primero hemos de instalar el
módulo adecuado.

Para ello, nos dirigiremos a:
“Webmin  Configuración de Webmin  Módulos de Webmin”




Una vez dentro del menú de instalación de módulos de webmin, procederemos a
instalar el módulo estandar “squid”
Ramón Jesús Suárez Pérez                                                        2ºASIR


Hecho esto, podremos observar como squid3 dispondrá de un menú de configuración
en webmin bajo el nombre “Squid – Servidor Proxy” dentro de la categoría
“Servidores”.

Tras acceder a dicho menú de administración, haremos clic en la utilidad
“Control de Acceso”.




Una vez dentro del menú de control de acceso podemos observar varias pestañas.

En la pestaña de “listas de control de Acceso” podemos observar las ACLs definidas en
nuestro sistema. Para definir una nueva ACL mediante Webmin, nos dirigiremos a la
parte inferior de la página, donde debemos especificar el tipo de acl y una vez hecho
esto pulsar en “Crear nueva ACL”.
Ramón Jesús Suárez Pérez                                                        2ºASIR


La acción anterior lanzará un nuevo formulario html en el que podremos definir los
diferentes parámetros de la ACL. En este caso definición de dominios.




Hecho esto, únicamente tendremos que hacer clic en “Salvar” para almacenar la ACL.




Para aprobar o denegar una determinada ACL, nos dirigiremos a la pestaña
”Restricciones Proxy” y haremos clic en el enlace “Añadir restricción proxy”.
Ramón Jesús Suárez Pérez                                                         2ºASIR


A continuación elegiremos la ACL sobre la que queremos trabajar del listado (es
necesario haberla especificado antes mediante el paso anterior) y especificaremos la
acción a realizar (Permitir o Denegar).




Recordemos que la posición de las restricciones llevadas a cabo en nuestro proxy juega
un papel importante en el funcionamiento de este…

Podemos hacer uso de las flechas para cambiar el orden de las acls en el fichero de
configuración.




   Las acls deben de especificarse en el fichero de manera ordenada ya que las acls
                   superiores tendrán prioridad sobre las inferiores.



Recordemos que después de llevar a cabo algún cambio en este servicio será necesario
“Aplicar cambios” y reiniciar Squid3.
Ramón Jesús Suárez Pérez                     2ºASIR


Comprobación de acl definida desde webmin:
Ramón Jesús Suárez Pérez                                                       2ºASIR


Proxy transparente

Para montar nuestro servidor proxy de forma transparente al usuario, será necesario
disponer de un segundo adaptador de red.

En nuestro caso, al estar funcionando con una máquina virtual, podemos agregarlo
fácilmente desde el panel de configuración de este.




Una vez agregado, lo configuraremos de forma manual para asignarle una dirección IP
estática en otra subred.
El archivo de configuración para llevar a cabo esta operación lo encontraremos en:
“/etc/networking/interfaces”
Ramón Jesús Suárez Pérez                                                       2ºASIR


Tras reiniciar el servicio de red mediante el comando:
“sudo /etc/init.d/networking restart”
Podremos comprobar mediante la utilidad “ifconfig” que la configuración de red se ha
aplicado de forma correcta.




Una vez configurado nuestro segundo adaptador de forma estática, accederemos al
fichero de configuración de squid3 (/etc/squid3/squid.conf) para activar el modo
transparente añadiendo a la línea “http_port 3128” la cláusula “transparent”.
Ramón Jesús Suárez Pérez                                                          2ºASIR


Hecho esto, tras reiniciar el servicio nuestro proxy estará activo de manera invisible
(transparente) para el usuario, de manera que el usuario no tendrá que tener activo el
proxy en su navegador.

Los equipos clientes deberán de utilizar como puerta de enlace la dirección IP de
nuestro segundo adaptador, obligando así a redirigir el tráfico hacia nuestro proxy.




Ahora únicamente faltará realizar unos últimos ajustes para redirigir el tráfico entrante
de nuestra subred (segundo adaptador), hacia nuestro primer adaptador con conexión
a internet a través del puerto 3128 (puerto por defecto de squid3) y viceversa, es decir
montar el puente de conexión para que los clientes de nuestra subred puedan acceder
a internet usando obligatoriamente nuestro proxy.

Esta acción la llevaremos a cabo mediante los siguientes comandos:
Ramón Jesús Suárez Pérez                                                             2ºASIR


Podemos valernos del siguiente script si tenemos dificultades a la hora de redirigir
manualmente las conexiones:

#!/bin/sh
# squid server IP
SQUID_SERVER="192.168.1.1"
# Interface connected to Internet
INTERNET="eth0"
# Interface connected to LAN
LAN_IN="eth1"
# Squid port
SQUID_PORT="3128"
# DO NOT MODIFY BELOW
# Clean old firewall
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
# Load IPTABLES modules for NAT and IP conntrack support
modprobe ip_conntrack
modprobe ip_conntrack_ftp
# For win xp ftp client
#modprobe ip_nat_ftp
echo 1 > /proc/sys/net/ipv4/ip_forward
# Setting default filter policy
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
# Unlimited access to loop back
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
# Allow UDP, DNS and Passive FTP
iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT
# set this system as a router for Rest of LAN
iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE
iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT
# unlimited access to LAN
iptables -A INPUT -i $LAN_IN -j ACCEPT
iptables -A OUTPUT -o $LAN_IN -j ACCEPT
# DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka
transparent proxy
iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to
$SQUID_SERVER:$SQUID_PORT
# if it is same system
iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port
$SQUID_PORT
# DROP everything and Log it
iptables -A INPUT -j LOG
iptables -A INPUT -j DROP
Ramón Jesús Suárez Pérez                                                       2ºASIR


Si hemos llevado a cabo todas las configuraciones de forma correcta, nuestro proxy
invisible deberá de estar totalmente activo.




       Ejemplo de acceso a una web no autorizada (en nuestro caso Facebook)
Ramón Jesús Suárez Pérez                                                         2ºASIR


Interesante (Proxy vs Proxy)

Para evitar las acls de dominio de un determinado proxy, podemos hacer uso otro
servidor proxy que no esté denegado en ellas.

Un ejemplo de proxy de los más utilizados para eludir estos controles es:
http://anonymouse.org/

No obstante si el proxy dispone de un filtrado de palabras (lista negra) este método no
funcionará.

Más contenido relacionado

PDF
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
PDF
Manual de configuracion de proxy SQUID
PDF
20CS2008 Computer Networks
PDF
Instalación y Configuración de un Servidor Proxy en Linux Ubuntu
PPTX
Introduction to sandvine dpi
PDF
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
PPTX
Understanding Cross-site Request Forgery
PDF
Suricata
Squid, SquidGuard, and Lightsquid on pfSense 2.3 & 2.4 - pfSense Hangout Janu...
Manual de configuracion de proxy SQUID
20CS2008 Computer Networks
Instalación y Configuración de un Servidor Proxy en Linux Ubuntu
Introduction to sandvine dpi
Firewall Best Practices for VoIP on pfSense - pfSense Hangout October 2017
Understanding Cross-site Request Forgery
Suricata

La actualidad más candente (20)

PDF
How to Prevent RFI and LFI Attacks
PPTX
PDF
Pfsense Firewall ve Router Eğitimi
DOCX
Entropy based DDos Detection in SDN
PPT
Proxy servers
PPTX
IP Source Guard
PDF
Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016
PDF
Alphorm.com Formation FortiManager : Installation et configuration
PPTX
Network Miner Network forensics
PDF
Remote code execution in restricted windows environments
PDF
IPv6 Basics - pfSense Hangout July 2015
PPTX
SIEM Primer:
PDF
Policy Based Routing (PBR)
PDF
Installation et Configuration de Pfsense
DOCX
Web-servers & Application Hacking
PDF
Fortinet UTM - les Fonctionnalités avancéese
PDF
Putting Firepower into the Next Generation Firewall
PDF
Vpn d’acces avec cisco asa 5500 et client
How to Prevent RFI and LFI Attacks
Pfsense Firewall ve Router Eğitimi
Entropy based DDos Detection in SDN
Proxy servers
IP Source Guard
Traffic Shaping Basics with PRIQ - pfSense Hangout February 2016
Alphorm.com Formation FortiManager : Installation et configuration
Network Miner Network forensics
Remote code execution in restricted windows environments
IPv6 Basics - pfSense Hangout July 2015
SIEM Primer:
Policy Based Routing (PBR)
Installation et Configuration de Pfsense
Web-servers & Application Hacking
Fortinet UTM - les Fonctionnalités avancéese
Putting Firepower into the Next Generation Firewall
Vpn d’acces avec cisco asa 5500 et client
Publicidad

Destacado (20)

PDF
Squid proxy transparente en ubuntu
PDF
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
DOCX
Configuracion de proxy squid en centos
PDF
Curso Squid avanzado
PPT
Presentacion Squid
PDF
SERVIDOR PROXY
DOCX
Comandos básicos para utilizar squid o squid3
PDF
Manual Servidor Proxy Squid3
PDF
Manual básico Cain & Abel - Sniffer en Windows
PPTX
IPTABLES y SQUID‏
PPTX
Configuracion proxy Windows server 2008
PDF
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
ODP
servidor squid
PDF
Encriptación asimétrica con GPG en Ubuntu
PPTX
Nuevas tendencias en procesamiento
DOCX
Manual freeproxy
ODP
Ictic4
PPT
Introducción Administración TCP/IP
PPT
Proxy解說
PDF
pagina web en el servidor wseb iis
Squid proxy transparente en ubuntu
Instalación de Servidores GNU/Linux - PROXY SQUID (parte 3)
Configuracion de proxy squid en centos
Curso Squid avanzado
Presentacion Squid
SERVIDOR PROXY
Comandos básicos para utilizar squid o squid3
Manual Servidor Proxy Squid3
Manual básico Cain & Abel - Sniffer en Windows
IPTABLES y SQUID‏
Configuracion proxy Windows server 2008
Instalacion del servidor proxy para conectar una red lan a una pc con salid...
servidor squid
Encriptación asimétrica con GPG en Ubuntu
Nuevas tendencias en procesamiento
Manual freeproxy
Ictic4
Introducción Administración TCP/IP
Proxy解說
pagina web en el servidor wseb iis
Publicidad

Similar a Squid3 - Servidor Proxy (20)

DOCX
PROXY CENTOS 6.5
PPTX
servidor proxy
PPTX
RESUMEN PROXY
PPTX
Resumen Servidor Proxy
ODP
DOCX
Resumen squid
DOCX
Manual de squid creado por juanextk
DOCX
Manual de squid creado por juanextk
PDF
Configuración de servicios basicos con Zentyal
DOCX
Manual de squid creado por juanextk
PPT
Servidir Proxy
PDF
Unidad iii seguridad de redes
DOCX
Administracion servidores
PDF
Servidor proxy squid para utilizar como proxy server.pdf
PDF
taller-proxy
PDF
Unidad III: Seguridad de las redes
PDF
servidor proxy squid
PDF
Instalacion de servidor proxy
PDF
PDF
Redes del computador unidad 3
PROXY CENTOS 6.5
servidor proxy
RESUMEN PROXY
Resumen Servidor Proxy
Resumen squid
Manual de squid creado por juanextk
Manual de squid creado por juanextk
Configuración de servicios basicos con Zentyal
Manual de squid creado por juanextk
Servidir Proxy
Unidad iii seguridad de redes
Administracion servidores
Servidor proxy squid para utilizar como proxy server.pdf
taller-proxy
Unidad III: Seguridad de las redes
servidor proxy squid
Instalacion de servidor proxy
Redes del computador unidad 3

Más de Totus Muertos (13)

PDF
Breve resumen sobre consultas básicas en MySQL
PDF
DNS (Servidor de Nombres de Dominio)
PDF
Escritorio remoto con soporte web (Windows Server 2003)
PDF
Tipos de datos en MySQL
PDF
Manual GParted (Administrador de discos)
PDF
Instalación de servidor DHCP en Ubuntu Server 12.04
PDF
Instalación de servidor DHCP en Windows Server 2003
PDF
Instalación de Ubuntu Server 10.04 LTS
PPTX
Transferencia de bases de datos entre sistemas gestores
PDF
Instalación de un servidor RIS en Windows Server 2003
PPTX
Ensamblaje y puesta en marcha de un Sistema Informático
PDF
Manual básico Everest Ultimate
PDF
Manual básico 7-ZIP
Breve resumen sobre consultas básicas en MySQL
DNS (Servidor de Nombres de Dominio)
Escritorio remoto con soporte web (Windows Server 2003)
Tipos de datos en MySQL
Manual GParted (Administrador de discos)
Instalación de servidor DHCP en Ubuntu Server 12.04
Instalación de servidor DHCP en Windows Server 2003
Instalación de Ubuntu Server 10.04 LTS
Transferencia de bases de datos entre sistemas gestores
Instalación de un servidor RIS en Windows Server 2003
Ensamblaje y puesta en marcha de un Sistema Informático
Manual básico Everest Ultimate
Manual básico 7-ZIP

Squid3 - Servidor Proxy

  • 1. Ramón Jesús Suárez Pérez 2ºASIR SQUID 3 – Servidor Proxy en Ubuntu 12.04 Introducción y requisitos del sistema Squid es un popular programa de software libre bajo licencia GPL diseñado para ejecutarse en entornos tipo Unix, que implementa un servidor proxy y un dominio para cache de páginas web. Entre las principales características de squid, destacan: - Permitir conectarse a internet a una serie de equipos a través de una sola IP. - Filtrado de contenidos. - Capacidad de almacenar una caché de páginas webs para que el acceso a ellas sea mucho más rápido desde los equipos de la red. Aunque está orientado principalmente a HTTP y FTP es compatible con otros protocolos como Internet Gopher. Implementa varias modalidades de cifrado como TLS, SSL, y HTTPS.
  • 2. Ramón Jesús Suárez Pérez 2ºASIR Instalación de Squid3 en Ubuntu 12.04 Para instalar Squid3 en Ubuntu 12.04, bastará con ejecutar el siguiente comando en el terminal: “sudo aptitude install squid3”. Este comando descargará e instalará el paquete squid3 de forma automática directamente de los repositorios de Ubuntu. Es conveniente tener configurada en nuestro equipo una dirección IP estática, no obstante para la prueba no será necesario. Utilizaremos el comando “ifconfig”, para obtener la dirección IP de nuestro servidor que será el encargado de actuar como proxy.
  • 3. Ramón Jesús Suárez Pérez 2ºASIR Si comprobamos el estado de los puertos abiertos en nuestro servidor mediante el comando “nmap” ejecutado desde otra máquina, podremos comprobar que ha quedado habilitado el puerto por defecto de squid (3128), lo cual nos indica que nuestro proxy está activo en el sistema. Configuración de Squid3 en Firefox Para utilizar un servidor proxy en un navegador, en nuestro caso firefox, bastará con acceder al menú de configuración del navegador, y una vez dentro buscaremos en el apartado de configuración oportuno (en nuestro caso “Avanzado” las propiedades de la “Configuración de la conexión”. Una vez allí, en el apartado de configuración de proxy, debemos especificar la dirección IP de nuestro servidor y el puerto de nuestro proxy (por defecto 3128).
  • 4. Ramón Jesús Suárez Pérez 2ºASIR Configuración básica y Listas de control de acceso (ACL) Si comprobamos el funcionamiento de nuestro servidor proxy desde un navegador, podremos darnos cuenta de que por defecto SQUID bloquea el acceso a todas las direcciones HTTP. Para solventar esto y poder disfrutar de un acceso total al contenido web desde los equipos que utilicen nuestro proxy, debemos dirigirnos al fichero: “/etc/squid3/squid.conf” y una vez allí modificar la línea “http_access deny all” por “http_access allow all”. Es recomendable que antes de realizar modificaciones en el fichero squid.conf realicemos copias de seguridad para evitar fallos en la ejecución del programa.
  • 5. Ramón Jesús Suárez Pérez 2ºASIR Cada vez que realicemos cambios en el archivo de configuración del programa, será necesario reiniciar el servicio de squid para que se apliquen al sistema. Para reiniciar el servicio bastará con ejecutar el comando: “sudo service squid3 restart” Una vez hecho esto, podremos comprobar como volvemos a navegar con total libertad desde los equipos clientes que utilicen nuestro proxy.
  • 6. Ramón Jesús Suárez Pérez 2ºASIR Definición y denegación de ACL (Listas de control de acceso) Las listas de control de acceso son un conjunto de reglas que permiten controlar el tráfico de la red a través de la aprobación o la denegación de estas. La definición, aprobación y denegación de ACLs se realiza desde el fichero de configuración de squid (/etc/sqiud3/squid.conf). Las acls deben de especificarse en el fichero de manera ordenada ya que las acls superiores tendrán prioridad sobre las inferiores. Bloqueando el acceso a un determinado dominio. Para definir una acl para un determinado sitio web utilizaremos la siguiente sintaxis: “acl nombre_acl dstdomain dominio_o_ip_del_sitio_web” Para denegar el acceso a una detemrinado sitio web, en este caso únicamente tendremos que haber definido previamente la acl y después denegarla mediante: “http_access deny nombre_acl” Como se vió anteriormente, tras reiniciar el servicio de squid, podremos comprobar que ninguna de las webs especificadas es accesible por los equipos clientes.
  • 7. Ramón Jesús Suárez Pérez 2ºASIR Bloqueando el acceso a una lista negra de dominios Para facilitar el bloqueo a varios sitios webs de una sola vez, podemos recurrir a las llamadas “listas negras”. Una lista negra no es otra cosa que una acl que carga los dominios o palabras de un fichero y permite así garantizar o denegar el acceso a dichos sitios web. Para definir una acl de este tipo usaremos la siguiente estructura: “acl nombre_acl dstdomain “/direccion_del_fichero_lista_negra”
  • 8. Ramón Jesús Suárez Pérez 2ºASIR Aquí podemos comprobar el funcionamiento de la lista negra: Bloqueando el acceso a una lista negra de palabras De la misma forma que definimos listas negras de dominios, es posible bloquear el acceso a direcciones que contengan determinadas palabras: “acl nombre_acl url_regex “/direccion_del_fichero_lista_negra”
  • 9. Ramón Jesús Suárez Pérez 2ºASIR Si comprobamos el funcionamiento de nuestra lista negra de palabras podemos observar como nos bloquea directamente todas las urls que contengan las palabras indicadas en el fichero. No nos deja incluso buscarlas desde el navegador. Excepciones de reglas (listas blancas) Las listas blancas se definen de la misma forma que cualquier otra acl... Son utilizadas para especificar excepciones en las reglas del proxy. Podemos habilitar el acceso a una lista blanca mediante la siguiente sintaxis (habiendo definido previamente la acl correspondiente) “http_access allow nombre_acl”
  • 10. Ramón Jesús Suárez Pérez 2ºASIR Cambiando el nombre a nuestro proxy Es posible cambiar el nombre que nuestro proxy muestra a la hora de bloquear el acceso a cierto contenido. Para cambiar el nombre a nuestro proxy debemos buscar la linea “visible_hostname” dentro del fichero “/etc/squid3/squid.conf”. En dicha linea podremos especificar el nombre de nuestro proxy.
  • 11. Ramón Jesús Suárez Pérez 2ºASIR Configuración en Webmin Para poder acceder a configurar squid3 desde Webmin, primero hemos de instalar el módulo adecuado. Para ello, nos dirigiremos a: “Webmin  Configuración de Webmin  Módulos de Webmin” Una vez dentro del menú de instalación de módulos de webmin, procederemos a instalar el módulo estandar “squid”
  • 12. Ramón Jesús Suárez Pérez 2ºASIR Hecho esto, podremos observar como squid3 dispondrá de un menú de configuración en webmin bajo el nombre “Squid – Servidor Proxy” dentro de la categoría “Servidores”. Tras acceder a dicho menú de administración, haremos clic en la utilidad “Control de Acceso”. Una vez dentro del menú de control de acceso podemos observar varias pestañas. En la pestaña de “listas de control de Acceso” podemos observar las ACLs definidas en nuestro sistema. Para definir una nueva ACL mediante Webmin, nos dirigiremos a la parte inferior de la página, donde debemos especificar el tipo de acl y una vez hecho esto pulsar en “Crear nueva ACL”.
  • 13. Ramón Jesús Suárez Pérez 2ºASIR La acción anterior lanzará un nuevo formulario html en el que podremos definir los diferentes parámetros de la ACL. En este caso definición de dominios. Hecho esto, únicamente tendremos que hacer clic en “Salvar” para almacenar la ACL. Para aprobar o denegar una determinada ACL, nos dirigiremos a la pestaña ”Restricciones Proxy” y haremos clic en el enlace “Añadir restricción proxy”.
  • 14. Ramón Jesús Suárez Pérez 2ºASIR A continuación elegiremos la ACL sobre la que queremos trabajar del listado (es necesario haberla especificado antes mediante el paso anterior) y especificaremos la acción a realizar (Permitir o Denegar). Recordemos que la posición de las restricciones llevadas a cabo en nuestro proxy juega un papel importante en el funcionamiento de este… Podemos hacer uso de las flechas para cambiar el orden de las acls en el fichero de configuración. Las acls deben de especificarse en el fichero de manera ordenada ya que las acls superiores tendrán prioridad sobre las inferiores. Recordemos que después de llevar a cabo algún cambio en este servicio será necesario “Aplicar cambios” y reiniciar Squid3.
  • 15. Ramón Jesús Suárez Pérez 2ºASIR Comprobación de acl definida desde webmin:
  • 16. Ramón Jesús Suárez Pérez 2ºASIR Proxy transparente Para montar nuestro servidor proxy de forma transparente al usuario, será necesario disponer de un segundo adaptador de red. En nuestro caso, al estar funcionando con una máquina virtual, podemos agregarlo fácilmente desde el panel de configuración de este. Una vez agregado, lo configuraremos de forma manual para asignarle una dirección IP estática en otra subred. El archivo de configuración para llevar a cabo esta operación lo encontraremos en: “/etc/networking/interfaces”
  • 17. Ramón Jesús Suárez Pérez 2ºASIR Tras reiniciar el servicio de red mediante el comando: “sudo /etc/init.d/networking restart” Podremos comprobar mediante la utilidad “ifconfig” que la configuración de red se ha aplicado de forma correcta. Una vez configurado nuestro segundo adaptador de forma estática, accederemos al fichero de configuración de squid3 (/etc/squid3/squid.conf) para activar el modo transparente añadiendo a la línea “http_port 3128” la cláusula “transparent”.
  • 18. Ramón Jesús Suárez Pérez 2ºASIR Hecho esto, tras reiniciar el servicio nuestro proxy estará activo de manera invisible (transparente) para el usuario, de manera que el usuario no tendrá que tener activo el proxy en su navegador. Los equipos clientes deberán de utilizar como puerta de enlace la dirección IP de nuestro segundo adaptador, obligando así a redirigir el tráfico hacia nuestro proxy. Ahora únicamente faltará realizar unos últimos ajustes para redirigir el tráfico entrante de nuestra subred (segundo adaptador), hacia nuestro primer adaptador con conexión a internet a través del puerto 3128 (puerto por defecto de squid3) y viceversa, es decir montar el puente de conexión para que los clientes de nuestra subred puedan acceder a internet usando obligatoriamente nuestro proxy. Esta acción la llevaremos a cabo mediante los siguientes comandos:
  • 19. Ramón Jesús Suárez Pérez 2ºASIR Podemos valernos del siguiente script si tenemos dificultades a la hora de redirigir manualmente las conexiones: #!/bin/sh # squid server IP SQUID_SERVER="192.168.1.1" # Interface connected to Internet INTERNET="eth0" # Interface connected to LAN LAN_IN="eth1" # Squid port SQUID_PORT="3128" # DO NOT MODIFY BELOW # Clean old firewall iptables -F iptables -X iptables -t nat -F iptables -t nat -X iptables -t mangle -F iptables -t mangle -X # Load IPTABLES modules for NAT and IP conntrack support modprobe ip_conntrack modprobe ip_conntrack_ftp # For win xp ftp client #modprobe ip_nat_ftp echo 1 > /proc/sys/net/ipv4/ip_forward # Setting default filter policy iptables -P INPUT DROP iptables -P OUTPUT ACCEPT # Unlimited access to loop back iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT # Allow UDP, DNS and Passive FTP iptables -A INPUT -i $INTERNET -m state --state ESTABLISHED,RELATED -j ACCEPT # set this system as a router for Rest of LAN iptables --table nat --append POSTROUTING --out-interface $INTERNET -j MASQUERADE iptables --append FORWARD --in-interface $LAN_IN -j ACCEPT # unlimited access to LAN iptables -A INPUT -i $LAN_IN -j ACCEPT iptables -A OUTPUT -o $LAN_IN -j ACCEPT # DNAT port 80 request comming from LAN systems to squid 3128 ($SQUID_PORT) aka transparent proxy iptables -t nat -A PREROUTING -i $LAN_IN -p tcp --dport 80 -j DNAT --to $SQUID_SERVER:$SQUID_PORT # if it is same system iptables -t nat -A PREROUTING -i $INTERNET -p tcp --dport 80 -j REDIRECT --to-port $SQUID_PORT # DROP everything and Log it iptables -A INPUT -j LOG iptables -A INPUT -j DROP
  • 20. Ramón Jesús Suárez Pérez 2ºASIR Si hemos llevado a cabo todas las configuraciones de forma correcta, nuestro proxy invisible deberá de estar totalmente activo. Ejemplo de acceso a una web no autorizada (en nuestro caso Facebook)
  • 21. Ramón Jesús Suárez Pérez 2ºASIR Interesante (Proxy vs Proxy) Para evitar las acls de dominio de un determinado proxy, podemos hacer uso otro servidor proxy que no esté denegado en ellas. Un ejemplo de proxy de los más utilizados para eludir estos controles es: http://anonymouse.org/ No obstante si el proxy dispone de un filtrado de palabras (lista negra) este método no funcionará.