INSTALACION Y CONFIGURACION DE UN SERVIDOR PROXY TRANSPARENTE CON SQUID EDINSON CAICEDO SILVA DIEGO ARMANDO LEAL CASTELLANOS

Texto completo

(1)

INSTALACION Y CONFIGURACION DE UN SERVIDOR PROXY TRANSPARENTE CON SQUID

EDINSON CAICEDO SILVA 1150683

DIEGO ARMANDO LEAL CASTELLANOS 1150696

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERÍA

PROGRAMA INGENIERÍA DE SISTEMAS SAN JOSE DE CUCUTA

(2)

INSTALACION Y CONFIGURACION DE UN SERVIDOR PROXY TRANSPARENTE CON SQUID

EDINSON CAICEDO SILVA 1150683

DIEGO ARMANDO LEAL CASTELLANOS 1150696

PRESENTADO A:

ING. JEAN POLO CEQUEDA OLAGO

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER FACULTAD DE INGENIERÍA

PROGRAMA INGENIERÍA DE SISTEMAS SAN JOSE DE CUCUTA

(3)

INTRODUCCIÓN

Uno de los mayores problemas en la actualidad debido a la aparición del internet es la seguridad y conexiones inseguras, estos problemas representan una gran preocupación por el acceso a la información que se puede tener de cualquier persona violando la seguridad de las redes. Es por esta razón que surge un servidor proxy, el cual es un equipo que se encarga de interceptar conexiones de red hechas desde un cliente a un servidor destino, el servidor proxy sirve como intermediario en las peticiones de recursos que realizar un cliente a otro servidor, esto lo hace con distintos fines como seguridad, rendimiento, anonimato, etc.

Implementar un proxy en un negocio cualquiera trae muchas ventajas como controlar los derechos de usuario, es decir, limitar y restringir el acceso a la red, mejorar la velocidad de respuesta, ya que el servidor proxy cuenta con una memoria caché en donde guarda una respuesta y si otro usuario pide el mismo acceso, ya se tendrá una respuesta preparada, el proxy también ayuda a filtrar algunas peticiones hechas por los usuarios.

Un proxy web específica el acceso a la web con protocolos HTTP y HTTPS, en donde proporciona una caché compartida para páginas web y contenidos descargados, este proxy se implementa para mejorar la seguridad en los servidores web.

Una aplicación proxy web transparente es Squid es una aplicación de software libre, el cual con un proxy web con caché mejora el rendimiento de las conexiones y acelera el acceso a un servidor web determinado.

En el presente documento se encuentra las generalidades de un proxy y un proxy transparente, igualmente se muestra la instalación y configuración de un proxy transparente usando la aplicación Squid sobre Fedora 24.

(4)

CONCEPTUALIZACIÓN 1. Proxy

La palabra inglesa proxy significa procurador en español. Es un servidor que hace de intermediario en las peticiones de recursos que realiza un cliente a otro servidor. Comúnmente un servidor proxy, es un equipo informático que intercepta conexiones de red hechas desde un cliente a un servidor de destino. El más popular es el servidor proxy de web. Interviene en la navegación por la web, con distintos fines: seguridad, rendimiento, anonimato, etc.

Proxy tiene un significado muy general, aunque siempre es sinónimo de intermediario. Cuando un equipo de la red desea acceder a una información o recurso, es realmente el proxy quien realiza la comunicación y a continuación traslada el resultado al equipo que la solicitó.

Hay dos tipos de proxy atendiendo a quién es el que quiere implementar la política del proxy:

proxy local: En este caso el que quiere implementar la política es el mismo que hace la petición. Por eso se le llama local. Suelen estar en la misma máquina que el cliente que hace las peticiones. Son muy usados para que el cliente pueda controlar el tráfico y pueda establecer reglas de filtrado que por ejemplo pueden asegurar que no se revela información privada (Proxy de filtrado para mejora de la privacidad).

proxy de red o proxy externo: El que quiere implementar la política del proxy es una entidad externa. Por eso se le llama externo. Se suelen usar para implementar cacheos, bloquear contenidos, control del tráfico, compartir IP, etc.

2. Proxy transparente

Un proxy transparente combina un servidor proxy con un cortafuego de manera que las conexiones son interceptadas y desviadas hacia el proxy sin necesidad de configuración en el cliente, y habitualmente sin que el propio usuario conozca de su existencia. Este tipo de proxy es habitualmente utilizado por las empresas proveedoras de acceso de Internet.

Squid es un servidor proxy para web con caché. Es una de las aplicaciones más populares y de referencia para esta función, software libre publicado bajo licencia GPL. Entre sus utilidades está la de mejorar el rendimiento de las conexiones de empresas y

(5)

particulares a Internet guardando en caché peticiones recurrentes a servidores web y DNS, acelerar el acceso a un servidor web determinado o añadir seguridad realizando filtrados de tráfico.

Aunque orientado principalmente a HTTP y HTTPS soporta también otros protocolos como FTP e incluso Gopher. Implementa cifrado SSL/TLS tanto en la conexión al servidor web como a los navegadores y cualquier cliente web que lo soporte.

Squid tiene algunas características que pueden facilitar establecer conexiones anónimas. Características tales como eliminar o modificar campos determinados de la cabecera de peticiones HTTP de los clientes. Esta política de eliminación y alteración de cabeceras se establece en la configuración de Squid. El usuario que solicita páginas a través de una red que utiliza Squid de forma transparente, normalmente no es consciente de este proceso o del registro de información relacionada con el proceso.

Squid puede ser configurado para ser usado como proxy transparente de manera que las conexiones son enrutadas dentro del proxy sin configuración por parte del cliente, y habitualmente sin que el propio cliente conozca de su existencia. De modo predefinido Squid utiliza el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios puertos disponibles a la vez.

(6)

INSTALACION Y CONFIGURACION DE UN SERVIDOR PROXY TRANSPARENTE UTILIZANDO SQUID

El proceso de instalación y configuración se realizó sobre una máquina virtual con GNU/Linux Fedora 24.

INSTALACIÓN

Lo primero que se debe realizar es instalar la aplicación Squid sobre la máquina virtual, para ello se escribe en consola el siguiente comando (El proceso se realizó con el programa putty conectándolo a la máquina virtual por medio de la dirección ip).

El programa empieza a instalar y después le pedirá permisos para continuar, se debe oprimir la tecla S y Enter para continuar con la instalación.

Para verificar que Squid está instalado y para ver la versión del programa se utiliza el comando rpm –q Squid.

El siguiente paso a realizar es la configuración de nuestro servidor proxy transparente. Para realizar este paso se debe tener en cuenta lo siguiente.

 Se debe tener una lista de control de acceso, con ella se niega o se permite el acceso a ciertas páginas web.

 Se debe tener al menos una regla de control de acceso.  Se debe tener una memoria caché para el proxy

 Si se quiere modificar el mensaje de error del proxy, se debe utilizar la directiva error_directory.

(7)

Controles de acceso

Para controlar el tráfico de acceso de los clientes a internet, es necesario que se establezca una lista de control de acceso que definan una red o ciertos usuarios en particular identificándolos con su dirección ip, a cada lista de control de acceso se le asigna una regla la cual permite o deniega la solicitud a Squid.

Denegar el acceso a ciertos usuarios en ciertos horarios permite hacer un uso más racional del ancho de banda con el que se dispone.

Listas de control de acceso

Squid tiene predeterminado el acceso habilitado a todas las redes locales, es decir, permite el acceso a: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7 y fe80::/10. La sintaxis usada para definir una lista de control de acceso es:

acl [nombre de la lista] src [componentes de la lista / ruta de la ubicación de la lista] Por ejemplo, si se desea establecer una lista de control de acceso que cubra toda la red local, se debe definir la IP correspondiente a la red local junto con su máscara de red, es decir, si se tiene la dirección IP de red 192.168.254.0/24 la definición de la lista de control de acceso queda de la siguiente manera:

acl localnet src 192.168.254.0/24

Igualmente si desea establecer una lista con direcciones IP, solo debe especificar la ruta del archivo, en el archivo deben de estar una lista con todas las direcciones IP definidas, de tal manera la sintaxis queda:

acl localnet src “/etc/squid/listaIP.conf”

De esta manera se puede definirse una Lista de control de acceso para permitir o bloquear ya sea dominios o extensiones de archivos, se hace de la siguiente manera: Dominios

acl [nombre de la lista] url_regex [ruta de la ubicación de la lista] EL archivo debe ser creado en la dirección /etc/squid y en el archivo se añadirán nombres de dominio como por ejemplo: Facebook.com, youtube.com.

(8)

Extensiones

acl [nombre de la lista] urlpath_regex [ruta de la ubicación de la lista] EL archivo debe ser creado en la dirección /etc/squid y en el archivo se añadirán las extensiones de archivos a bloquear o permitir. En la lista se debe definir la extensión de la siguiente manera: \.(extensión)$. Ejemplo: \.mp3$.

Continuando con nuestra configuración, vamos a establecer dos listas de control de acceso de dominios, una para permitir y otra para denegar.

Lo primero que debemos tener en cuenta es que se deben crear las listas en un archivo a parte en la tura /etc/squid/nombre del archivo, usando el comando nano.

Primero establecemos la dirección de red local por la cual va a acceder nuestro proxy y en la cual va a estar en funcionamiento

Declaramos una lista para dominios denegados y otra para dominios permitidos Una vez creada las listas de control de acceso, procedemos a crear las reglas de control de acceso.

Las reglas de control de acceso son las que definen si se permite o se niega el acceso hacia Squid, estas reglas se aplican a las Listas de control de acceso. Estas reglas deben definirse sobre el mismo archivo donde están definidas las listas, estas reglas se deben ubicar en la zona definida por el administrador.

Sintaxis de las reglas de control de acceso:

http_access [allow / deny] [lista de control de acceso] Deny: son las listas denegadas o prohibidas.

Allow: son las listas permitidas

Para poder utilizar una configuración personalizada se debe comentar o eliminar la línea que incluye http_access allow localnet.

Ahora para configurar la caché de nuestro servidor proxy transparente, se usa la opción cache_mgr, esta opción es de carácter informativo, es decir, si algo ocurre con el servidor proxy se envía un correo a la cuenta webmaster del servidor, pero puede

(9)

especificarse una cuenta distinta, esto no es necesario solo se hace si se considera conveniente.

La opción cache_mem establece la cantidad ideal de memoria para lo siguiente:  Objetos en tránsito.

 Objetos frecuentemente utilizados (Hot).

 Objetos negativamente almacenados en el caché.

Los datos de estos objetos se almacenan en bloques de 4 Kb. La opción cache_mem especifica un límite máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tienen mayor prioridad. Sin embargo los objetos frecuentemente utilizados (Hot) y aquellos negativamente almacenados en el caché, podrán utilizar la memoria sin utilizar hasta que esta sea requerida. De ser necesario, si un objeto en tránsito es mayor a la cantidad de memoria especificada, Squid excederá lo que sea necesario para satisfacer la petición.

De modo predeterminado, desde la versión 3.1 de Squid, se establecen 256 MB, que es más que suficiente para las necesidades de redes de área local con pocos anfitriones. Puede especificar una cantidad menor para obtener un mejor rendimiento, pues conviene utilizar la memoria disponible para hacer cache en memoria de muchos objetos pequeños que son frecuentemente visitados, que hacer cache de unos pocos objetos grandes que sólo unos pocos usuarios aprovecharán.

Una vez configurado lo anterior se guarda el archivo y escribimos el comando grep -v "^#" /etc/squid/squid.conf | sed -e '/^$/d'

(10)

Para crear las listas de control de acceso, primero vamos a crear una carpeta para guardarlas para ello escribimos el comando # mkdir /etc/squid/listas/ y ahora creamos el archivo con el comando # nano /etc/squid/listas/denegadas, las lista de denegadas queda de la siguiente manera

(11)

Guardamos el archivo y ahora procedemos a crear la lista para los patrones, esta se utiliza para bloquear ciertas palabras que no se quiere que se usen cuando están conectados a la red, escribimos el comando # nano /etc/squid/listas/patrones y queda de la siguiente manera

Realizados estos ajustes procedemos a reiniciar squid, con el siguiente comando: systemctl restart squid

Verificamos su estado

(12)
(13)

IPTABLES – INSTALACIÓN Y CONFIGURACIÓN

Para instalas IPTables se usa el comando dnf install iptables, una vez empieza la instalación nos pedirá permisos para continuar, oprimimos la tecla s y enter para continuar, para verificar la instalación utilizamos el comando rpm –q iptables.

Ahora procedemos a configurar iptables, para acceder al archivo de configuración utilizamos el siguiente comando nano /etc/sysconfig/iptables

Documentamos el contenido subrayado en rojo y agregamos el siguiente

-A INPUT -s 192.168.254.0/24 -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A INPUT -s 192.168.254.0/24 -m state --state NEW -m tcp -p tcp --dport 8080 -j

ACCEPT

-A FORWARD -p tcp --dport 20:21 -j DROP -A FORWARD -p tcp --dport 22 -j DROP -A FORWARD -p tcp --dport 443 -j DROP -A FORWARD -p tcp --dport 53 -j DROP -A FORWARD -p udp --dport 53 -j DROP

(14)

Guardamos los cambios con el commando service iptables sabe y reiniciamos el sevicio de iptables con el comando systemctl restart iptables y verificamos su estado con el comando systemctl status iptables.

CONFIGURACION DE WPAD

Para configurar el wpad debemos agregar el siguiente código en httpd para ello

entramos con el comando nano /etc/httpd/conf/httpd.conf y agregamos las siguientes instrucciones al final del documento.

(15)

Ahora creamos el directorio con el comando Mkdir –m 0755 /var/www/wpad y creamos el archivo wpad.bat para ello usamos el comando nano /etc/httpd/conf.d/wpad.bat y agregamos las siguientes líneas de código

Ahora procedemos a darle privilegios al documento ya que a el tendrá que acceder el proxy y los navegadores para ello se usa el comando chmod a+r /var/www/wpad/wpad.dat

(16)

CONFIGURACION DEL DNS

Par configurar el proxy al dns, debemos dirigirnos en donde esta configurada la zona directa de nuestro servicio dns en nuestro caso el archivo se llama ecs.asor accedemos a el con el comando nano /var/named/zone.ecs.asor

En este documento se agrega la dirección del proxy, en nuestro caso el wpad.dat. Procedemos a reiniciar nuestro servicio dns con el comando systemctl restart named.service y lo iniciamos de nuevo con el comando systemctl start named.service

INSTALAR Y CONFIGURAR SERVIDOR DHCP

Para instalar DHCP se usa el comando dnf install dchp y con el comando rpm –q instal dchpd verificamos su instalación.

Para configurar el archivo DHCP accedemos al documento con el comando nano /etc/dhcp/dhcpd.conf

(17)
(18)
(19)

BIBLIOGRAFIA

http://www.alcancelibre.org/staticpages/index.php/19-0-como-squid-general

http://recursostic.educacion.es/observatorio/web/es/software/servidores/589-elvira-mifsud

Figure

Actualización...

Related subjects :