instalación y configuración de un servidor proxy en linux ubuntu

9
2015 PROYECTO DE APLICACIÓN Y MANEJO DE SISTEMAS OPERATIVOS UNIVERSIDAD TÉCNICA DE MANABÍ FACULTAD DE CIENCIAS INFORMÁTICAS CARRERA DE INGENIERÍA EN SISTEMAS Docente: Ing. Pablo Flores Curso: Sexto Nivel “A” RESPONSABLES: Yandry Pinargote M. Marcelo Alcívar M. Jorge Maldonado S. José Andrés García M. INSTALACIÓN Y CONFIGURACIÓN DE UN SERVIDOR PROXY EN LINUX

Upload: marcelo-alcivar

Post on 11-Apr-2017

1.843 views

Category:

Software


2 download

TRANSCRIPT

Page 1: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

2015

PROYECTO DE APLICACIÓN Y MANEJO DE SISTEMAS OPERATIVOS

UNIVERSIDAD TÉCNICA DE MANABÍ

FACULTAD DE CIENCIAS INFORMÁTICAS

CARRERA DE INGENIERÍA EN SISTEMAS

Docente: Ing. Pablo Flores

Curso: Sexto Nivel “A”

RESPONSABLES:

Yandry Pinargote M.

Marcelo Alcívar M.

Jorge Maldonado S.

José Andrés García M.

INSTALACIÓN Y

CONFIGURACIÓN

DE UN SERVIDOR

PROXY EN LINUX

Page 2: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

1

Instalacion y configuracion de un servidorproxy en Linux

Responsables:Alcıvar Molina Marcelo Andres

Garcıa Morales Jose AndresMaldonado Salazar Jorge Ivan

Pinargote Moreira Yandry Hector

Resumen—El siguiente artıculo muestra una vision clarasobre lo que consiste un proxy, como funciona y comose lo puede implementar en un Sistema operativo Linux.Tambien se explica de manera amplia las herramientasutilizadas para la creacion de un servidor proxy y se deta-llan los pasos a seguir para la instalacion y configuracionde dicho servidor en la plataforma Ubuntu. Ademas sepresenta las formar de bloquear paginas web a traves delarchivo de configuracion del servidor proxy instalado atraves de Squid3 y los pasos para configurar el NavegadorFirefox para que implemente el proxy.

I. INTRODUCCION

H oy en dıa existen muchas personas que cuentacon acceso a Internet, especialmente las nuevas

generaciones que ya nacen con este servicio, por lo queseguramente dentro de un tiempo, el internet sera algointrınseco en nuestras vidas, y su crecimiento no lopodremos detener.

Con los avances tecnologicos y en especial gracias aque ahora se cuenta con un mayor ancho de banda enlas casas y en los dispositivos moviles, ahora se puedeacceder mas rapido a internet. Pero esta evolucion siguecreciendo enormemente haciendo que inevitablementesurjan muchas desventajas, es mas, podrıamos asegurarque el internet ha traıdo muchos inconvenientes, comotoda tecnologıa lo hace, y uno de ellos es hacer que laspersonas tengan accesibilidad a tipos de informacionesdesagradables como pornografıas, spam, accesos apaginas infectadas con software maliciosos, entre otros.Ademas puede resultar un distractor dentro del campolaboral o educativo.

Otras de las desventajas que podrıamos mencionar essin duda alguna el acceso a contenidos para adultos, enel cual, segun un estudio realizado por Kaspersky, seasegura que los menores que acceden a internet tienena la mano contenidos explıcitos o violentos que ponende relieve la creciente preocupacion por falta de unaproteccion solida para los ninos en el ciberespacio.

A raız de esto los servidores proxy surgen comoun mecanismo de seguridad para mejorar las falencias

que aun existen y ante la necesidad de tener un mayorcontrol hacia el acceso a internet y el contenido quepodemos encontrar en la web.

Por este motivo los servidores proxy suelen usarseen el ambito de las empresas para filtrar el contenidoque visitan sus trabajadores y en el ambito de unidadeseducativas para impedir que los estudiantes accedan aciertas paginas.

Al realizarse todas las peticiones a traves del proxyse puede determinar facilmente si estas son servidas ono. En estos casos se tiene una lista de url no permitidascomo por ejemplo url de periodicos online, foros, blogs,entre otros, y a veces se complementa con un “dicciona-rio” de terminos prohibidos, en donde, si dicho terminoaparece en la url entonces esa web no se mostrara.

II. CUERPO

II-A. Que es un proxy?Un servidor proxy es aquel que permite proteger y

mejorar el acceso a las paginas web, al conservarlas enla cache. De este modo, cuando un navegador envıa unapeticion para acceder a una pagina web, que previamenteha sido almacenada en la cache, la respuesta y el tiempode visualizacion es mas rapido.

Los servidores proxy aumentan tambien la seguridad,ya que pueden filtrar cierto contenido web y programasmaliciosos.

El filtrado: El filtrado se aplica en funcion de lapolıtica de seguridad implementada en la red. Estepermite bloquear sitios considerados maliciosos ositios considerados inutiles en relacion a la actividadde la empresa como por ejemplo pornografıa, juegosdistractores, entre otros.

Autenticacion: A fin de limitar el acceso a la redexterior, y aumentar de este modo la seguridad de la redlocal, se puede implementar un sistema de autenticacionpara acceder a recursos externos. Esto es bastante

Page 3: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

disuasivo para los usuarios que desean visitar sitios queesten en contra de las reglas de uso de Internet en laempresa.

Almacenamiento de ’logs’: El almacenamiento delogs de los sitios visitados y paginas vistas, permiteal administrador de la red redefinir la polıtica deseguridad de la red y detectar a un usuario que visitafrecuentemente sitios maliciosos o sin relacion con laactividad de la empresa.

II-B. Principio operativo de un servidor proxy

El principio operativo basico de un servidor proxy esbastante sencillo: se trata de un servidor que actua comorepresentante”de una aplicacion efectuando solicitudesen Internet en su lugar. De esta manera, cuando unusuario se conecta a Internet con una aplicacion delcliente configurada para utilizar un servidor proxy, laaplicacion primero se conectara con el servidor proxyy le dara la solicitud. El servidor proxy se conectaentonces al servidor al que la aplicacion del clientedesea conectarse y le envıa la solicitud. Despues, elservidor le envıa la respuesta al proxy, el cual a su vezla envıa a la aplicacion del cliente.

Fig 1. Esquema del funcionamiento de un proxy

II-C. Ubuntu

Ubuntu es un sistema operativo basado en GNU/Linuxy que se distribuye como software libre , el cual incluyesu propio entorno de escritorio denominado Unity. Sunombre proviene de la etica homonima, en la que sehabla de la existencia de uno mismo como cooperacionde los demas.

Esta orientado al usuario novel y promedio, con unfuerte enfoque en la facilidad de uso y en mejorar laexperiencia de usuario. Esta compuesto de multiplesoftware normalmente distribuido bajo una licencia libreo de codigo abierto.

Su patrocinador, Canonical”, es una companıabritanica propiedad del empresario sudafricano MarkShuttleworth. Ofrece el sistema de manera gratuita, y sefinancia por medio de servicios vinculados al sistemaoperativo y vendiendo soporte tecnico.

Fig 2. Logo de Ubuntu

II-D. SQUID3Squid es un servidor proxy para web con cache. Es una

de las aplicaciones mas populares y de referencia paraesta funcion, software libre publicado bajo licencia GPL.

Entre sus utilidades esta la de mejorar el rendimientode las conexiones de empresas y particulares a Internetguardando en cache peticiones recurrentes a servidoresweb y DNS, acelerar el acceso a un servidor webdeterminado o anadir seguridad realizando filtrados detrafico.

Aunque orientado principalmente a HTTP y HTTPSsoporta tambien otros protocolos como FTP e inclusoGopher. Implementa cifrado SSL/TLS tanto en laconexion al servidor web como a los navegadores ycualquier cliente web que lo soporte.

II-E. Caracteristicas de SQUID3Proxy con cache de HTTP, FTP, y otros protocolos

de Internet: Squid proporciona un servicio de proxyque soporta peticiones HTTP, HTTPS y FTP a equiposque necesitan acceder a Internet y a su vez provee lafuncionalidad de cache especializado en el cual almacenade forma local las paginas consultadas recientementepor los usuarios. De esta forma, incrementa la rapidezde acceso a los servidores de informacion Web y FTPque se encuentran fuera de la red interna.

Proxy para SSL: Squid tambien es compatible conSSL (Secure Socket Layer) con lo que tambien aceleralas transacciones cifradas, y es capaz de ser configuradocon amplios controles de acceso sobre las peticiones de

Page 4: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

usuarios.

Jerarquıas de cache: Squid puede formar parte deuna jerarquıa de caches. Diversos servidores trabajanconjuntamente atendiendo las peticiones.

Un navegador solicita siempre las paginas a un soloproxy y si este no tiene la pagina en su cache, consultaa sus hermanos, que a su vez tambien podrıan consultarcon sus padres antes de finalmente ir al servidor web sifuera necesario. Estas peticiones entre caches se puedenhacer mediante dos protocolos: ICP y HTCP.

ICP, HTCP, CARP, cache digests: Squid sigue losprotocolos ICP, HTCP, CARP y cache digests que tienencomo objetivo permitir a un proxy ”preguntarle.a otroscaches si tienen almacenado un recurso determinado.

Cache transparente: Squid se puede configurarpara ser usado como proxy transparente empleando uncortafuegos que intercepte y redirija las conexiones sinconfiguracion por parte del cliente, e incluso sin que elpropio usuario conozca de su existencia.

Puerto 3128: De modo predefinido Squid utilizael puerto 3128 para atender peticiones, sin embargose puede especificar que lo haga en cualquier otropuerto disponible o bien que lo haga en varios puertosdisponibles a la vez.

WCCP: A partir de la version 2.3 Squid implementaWCCP (Web Cache Control Protocol). Permiteinterceptar y redirigir el trafico que recibe un routerhacia uno o mas proxys cache, haciendo control de laconectividad de los mismos.

Ademas permite que uno de los proxys cachedesignado pueda determinar como distribuir el traficoredirigido a lo largo de todo el array de proxys cache.

Control de acceso: Ofrece la posibilidad de establecerreglas de control de acceso. Esto permite establecerpolıticas de acceso en forma centralizada, simplificandola administracion de una red.

Gestion de trafico: Permite categorizar el traficoy limitarlo de manera individual o agrupada paraconseguir un mejor aprovechamiento del ancho debanda disponible en la conexion a Internet.

Aceleracion de servidores HTTP: Se puede asociarSquid a servidores HTTP determinados. Publicando ladireccion y puerto del cache, que en este caso puedeser el propio puerto 80, desde el exterior Squid sepercibe como si el fuera el propio servidor web y asıse reduce la carga soportada por el servidor web. Estoes especialmente rentable cuando se trata de contenido

generado de forma dinamica.

Este modo de funcionamiento se conoce tambiencomo proxy inverso. Este es el sistema de acceso a losservidores de la fundacion Wikimedia.

SNMP: Squid permite activar el protocolo SNMPque proporciona un metodo simple de administracionde red permitiendo supervisar, analizar y comunicarinformacion de estado entre una gran variedad demaquinas; permite detectar problemas y proporcionarmensajes de estado.

Cache de resolucion DNS: Squid incorpora elprograma dnsserver, que se encarga de las busquedas denombres de dominio. Cuando Squid se ejecuta, produceun numero configurable de procesos dnsserver, y cadauno de ellos realiza su propia busqueda en DNS. Deeste modo, se reduce la cantidad de tiempo que la cachedebe esperar a estas busquedas DNS.

Fig 3. Servidor Proxy Squid

II-F. Navegador FirefoxFirefox es un navegador web libre y de codigo abierto

desarrollado para Microsoft Windows, Android, OS X yGNU/Linux coordinado por la Corporacion Mozilla y laFundacion Mozilla. Usa el motor Gecko para renderizarpaginas webs, el cual implementa actuales y futurosestandares web.

II-G. Caracterısticas de FirefoxEntre sus caracterısticas incluyen la tradicional na-

vegacion por pestanas, corrector ortografico, busquedaprogresiva, marcadores dinamicos, un administrador dedescargas, lector RSS, navegacion privada, navegacioncon georreferenciacion, aceleracion mediante GPU, eintegracion del motor de busqueda que desee el usuario.Ademas, se puede instalar tanto sin conexion como

Page 5: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

tambien en lınea desde la pagina web, este ultimo esutilizado para descargar los componentes de segundoplano, ideal para para equipos con conexiones mınimas.

Fig 4. Logo de Firefox

Como elemento representativo, se pueden anadirfunciones a traves de complementos, uno de cuyostipos son las extensiones, desarrollados por la propiaMozilla o por terceros aficionados y comerciales. Su usosignificativo de usuario se debe a su amplia variedad deusos a traves de la comunidad Mozilla Addons, lo quesegun algunos estudios lo convierte en el navegador maspersonalizable y seguro del momento. En el repertorio,los usuarios pueden personalizar el navegador con lasextensiones y temas (extensiones con capacidad paracambiar la interfaz como fue el caso de las llamadasPersonas).

En total, el sitio addons.mozilla.org posee mas de6000 extensiones a partir de junio de 2009; entre losmas conocidos se encuentra Adblock Plus que en 10anos de desarrollo alcanzo las 100 millones de descargas.

Estandares web: Es compatible con varios lenguajesweb, incluyendo HTML, XML, XHTML, SVG 1.1(parcial), CSS 1, 2 y 3, ECMAScript (JavaScript),DOM, MathML, DTD,XSLT, XPath, e imagenes PNGcon transparencia alfa. Tambien incorpora las normaspropuestas por el WHATWG, y es compatible con elelemento HTMLCanvas.

Seguridad: Implementa el sistema SSL/TLS paraproteger la comunicacion con los servidores web, uti-lizando fuerte criptografıa cuando se utiliza el protocolohttps. Tambien soporta tarjetas inteligentes para fines deautenticacion. Cuenta con una proteccion antiphishing,antimalware e integracion con el antivirus. Tambien y

como medida prudencial que ha causado controversia, noincluye compatibilidad con los sistemas ActiveX, debidoa la decision de la Fundacion Mozilla de no incluirlo portener vulnerabilidades de seguridad.

II-H. Instalacion y configuracion del servidor Proxya traves del shell de Ubuntu

Como primer paso para la creacion del servidorproxy serıa instalar y configurar Squid3 bajo Ubuntu.Recordamos que Squid3 es un programa con licenciaGPL que implementa un servidor proxy y un demoniopara web cache.

La instalacion de Squid3 puede realizarse medianteSynaptic o mediante consola. Como nuestra instalaciony configuracion del servidor Proxy es a traves del shell,abrimos nuestro terminal de Ubuntu y tecleamos losiguiente: sudo apt-get install squid

Fig 5. Instalacion de Squid3 por medio del terminal

Una vez instalado Squid3, nos dirigimos a la rutaen donde se instalo que por defecto es: /etc/squid3y nos aseguramos que se encuentre el archivo squid.conf.

Fig 6. Vista de los arhivos que contiene la carpeta Squid3

Luego procedemos a editar dicho archivo y para ellotecleamos lo siguiente: sudo gedit squid.conf

Page 6: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

Fig 7. Instante en que se edita el archivo squid.conf

Fig 8. Archivo de configuracion abierto

Despues buscamos la siguiente lınea: http port3128. En esta lInea configuramos el puerto por elcual Squid .escuchara”las peticiones. Por defectoviene el 3128, podemos cambiarlo por ejemplo al 8080.Pero en nuestro caso, dejaremos el que viene por defecto.

Fig 9. Puerto 3128 por defecto

Nuevamente en el mismo archivo de configuracionbuscamos la siguiente lınea: cache mem 8 MB

Aquı configuraremos la cantidad de memoria asignadapara la cache de Squid. Esta valor va a depender de lacantidad de RAM de la maquina, pero si tenemos 1GBpodemos asignarle unos 256 MB. Borramos el ”#”paradescomentar esa lınea.

Fig 10. Configuracion de la memoria cache de Squid

Luego buscamos la lınea: cache dir ufs/var/spool/squid 100 16 256

Este parametro se encarga de asignar un espacio enel disco para almacenar la cache de Squid. Ufs es elformato con el que Squid guarda la cache en disco,luego viene la ruta donde se almacenara la misma y, porultimo, aparece el tamano maximo en disco que Squidutilizara.

Al primer valor (100) le asignaremos 1000 (MB), estevalor no puede ser menor que el que hemos asignadoantes a la memoria cache. Luego vienen los parametrode directorio primario (16) y directorio secundario (256)en niveles. Establecera 16 directorios de primer nively 256 subdirectorios de segundo nivel. Estos valoresconviene dejarlo por defecto.

Fig 11. Asignacion del espacio en disco para el almacenamientode la cache del Squid

El siguiente paso es asignar listas de control deacceso. Para ello buscamos la lınea: acl CONNECTmethod CONNECT

Aquı crearemos la primera regla que luegopermitiremos (o denegaremos). La regla debe comenzar

Page 7: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

con .acl 2luego elegiremos el nombre de la misma, elmetodo de acceso y por ultimo el rango de acceso. Porejemplo: acl redlocal src 192.168.1.0/24

En esta regla indicamos cual es el origen de lasconexiones. En este caso es la direccion de red192.168.1.0 con mascara 255.255.255.0. Lo que abarcael rango de IP desde 192.168.1.0 hasta 192.168.1.255(Debemos tener en cuenta que la primera direccion y laultima no deben utilizarse).

Ahora crearemos otra regla para denegar laconexion a distintas paginas: acl denegado url regex/etc/squid/denegado”

El metodo url regex es para que el proxy analice lasdirecciones de acuerdo a las palabras que anotemos enuna lista. En este ejemplo luego del metodo colocamosuna ruta con un archivo que Squid chequeara antes depermitir la conexion. Ese archivo estara formado portodas las palabras que queremos denegar. En lugar de laruta podrıamos escribirlas todas una al lado de la otra,separadas por espacios, pero si son muchas quedarıabastante desprolijo.

Creamos la tercera regla como otra manera de denegarpaginas: acl web dstdomain www.taringa.net

En este caso estamos denegando el acceso a la paginawww.taringa.net, si queremos denegar mas paginasutilizarıamos la misma lınea y reemplazariamos solola pagina a la que queremos denegar. Aclaramos quees obligatorio poner una etiqueta al lado de acl, nonecesariamente tiene que ser la palabra ”web”puede serla que se desea. En nuestro ejemplo utilizamos dichapalabra como etiqueta o referencia a la pagina a denegar.Ası mismo en el caso anterior con la palabra ”denegado”.

Entonces, las 3 reglas que creamos quedaron de lasiguiente forma:

Fig 12. Creacion de reglas de control de acceso

Despues, para permitir o denegar las reglas quecreamos en el paso anterior debemos buscar la siguiente

lınea: http access y debajo de la lınea que dice # Onlyallow cachemgr access from localhost agregamos:

http access deny web

Aqui denegamos la pagina www.taringa.net quecontiene la etiqueta ”web.en la regla de control de accesoque creamos en el paso anterior.

http access deny denegado

Esto es para denegar todas las paginas web quecontengan las palabras que escribiremos en nuestroarchivo denegado.

http access allow redlocal

Con esto permitimos las conexiones de nuestra red.Cabe mencionar que las reglas http access deben

de estar en el orden adecuado. Squid las interpreta deabajo hacia arriba, por lo que primero debemos definirlas reglas que deniegan algo, y despues las que permiten.

Fig 13. Creando las directivas http access

A continuacion cerramos el archivo de configuracionguardando los cambios efectuados y nos dirigimos a laterminal para editar el archivo denegado.

Fig 14. Instante en el que se edita el archivo denegado

Una vez abierto nuestro archivo denegado, aquıescribiremos todas las palabras que queremos denegar.En nuestro caso como somos Emelexistas escribiremosla palabra ”barcelona”para que impedir el acceso a todas

Page 8: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

las paginas web que contengan dicha palabra.

En este mismo archivo tambien podemos escribirlas paginas web directamente, como por ejemplo:www.eldiario.ec para denegar dicha pagina, o bien lopodemos hacer de la misma manera que denegamosa la pagina de taringa, directamente en el archivo deconfiguracion de Squid3 cuando creamos las listas decontrol de acceso o ACL

Fig 15. Archivo denegado y las palabras que serviran comoreferencia para denegar paginas web

Por ultimo debemos reiniciar el servicio del Squid paraque se efectuen los cambios. Para ello tecleamos en laterminal la siguiente lınea: sudo service squid3 restart

Dependiendo de la version de Ubuntu, sepuede reiniciar el servicio con el comando: sudo/etc/init.d/squid restart sino en /etc/default/squid.Ası que si no llega a funcionar el paso anterior sepuede probar directamente con ”sudo squid restart”(Encaso de que salga el mensaje de ”Squid is alreadyrunning!”se debera primero ”matar.el proceso con ”sudokill NumeroProcessID”)

Fig 16. Instante en el que se reinicia el servicio de Squid3

II-I. Configuracion del Navegador Firefox para queimplemente el proxy creado

Para configurar el Navegador Firefox que vieneal instalar el sistema operativo Ubuntu, abrimos elnavegador y nos dirigimos al menu como se muestra a

continuacion.

Fig 17. Logo de Firefox

Luego accedimos a preferencia y escogemos la opcionAvanzado como en el grafico siguiente.

Fig 18. Logo de Firefox

Dentro de la opcion Avanzado apareceran cincopestanas, escogeremos la que dice Red, y damos clicken configurar... para configurar el acceso de Firefox aInternet.

Fig 19. Logo de Firefox

Aquı nos aparecera un recuadro en el cual, en laparte donde dice Configurar proxies para el acceso ainternet”, escogemos la casilla que dice Configuracionmanual del proxy:

Page 9: Instalación y Configuración de un Servidor Proxy en Linux Ubuntu

En el cuadro de Proxy HTTP: colocamos la direccionde la maquina y en el puerto escribimos el numero depuerto por el cual se conecta el proxy, que en nuestrocaso utilizamos el que venıa por defecto en el archivo deconfiguracion del SQUID, es decir, el 3128. Le damosclick en aceptar y listo. Ya tenemos nuestro servidorproxy funcionando en nuestro navegador Firefox.

Fig 20. Activacion del proxy en el Navegador Firefox

III. RESULTADOS

A continuacion se muestra como funciona el proxyal querer ingresar a una pagina web que se encuentredenegada, es decir, que no cumpla con las reglas decontrol de acceso.

Fig 21. Bloqueo de una pagina que contenga palabras ingresadasen el archivo denegado

Fig 22. Bloqueo de una pagina web

IV. CONCLUSION

Como conclusion podemos decir que el uso de unservidor proxy tiene dos propositos; el primero es mejo-rar el desempeno de la red ya que los servidores proxypueden mejorar en gran medida el desempeno para ungrupo de usuarios, debido a que ahorra la obtencion delos resultados de todas las solicitudes para una ciertacantidad de tiempo; y el segundo proposito que tieneel proxy es el de filtrar solicitudes, ya que de estamanera puede ofrecer un servicio de seguridad basico,muy importante para proteger una intranet o un sistemade informacion conectado a una red publica.

V. REFERENCIAS BIBLIOGRAFICAS

Proxy by Peter Sotos Pornography, 1993-2000The SQUID Handbook: Fundamentals and Tech-nology of SQUIDs and SQUID Systems by JohnClarke, Alex I. BraginskiSquid Proxy Server 3.1: Beginner’s Guide by KulbirSainiUtilization of Squid by M. SugiyamaUbuntu 14.04 LTS Server: Administration and Re-ference by Richard Petersen

VI. REFERENCIAS WEB

http://www.ubuntufacil.com/2013/04/instalar-servidor-proxy-con-squid/http://es.ccm.net/faq/613-instalar-un-servidor-proxy-http-squidhttps://www.youtube.com/watch?v=pyUIQZnbCXMhttp://shakaran.net/blog/2012/10/como-crear-un-servidor-proxy-con-squid-en-ubuntu/http://hayardillasenlared.blogspot.com/2011/03/instalar-y-configurar-proxy-squid-en.htmlhttp://thebitdeveloper.com/2010/02/12/instalacion-y-configuracion-de-squid3/https://es.wikipedia.org/wiki/Mozilla Firefoxhttps://help.ubuntu.com/community/Squid