15 mayo 2014

Configuración e instalación de un proxy con debian

Instalación debian 



Para la creación de un proxy, es necesario tener instalado debian 7.4 si no sabes cómo hacerlo, te dejamos un link donde te indica donde descargarlo y los pasos que tienes que seguir para hacerlo.

DESCARGA DEBIAN  https://www.debian.org/CD/ 



Antes que nada es necesario explicar qué es un proxy y la paqueteria necesaria para que funcione.

¿Que es un proxy?

Es un servidor que hace la función  de intermediario entre el programa cliente (por ejemplo un navegador web) y un navegador real. 

Su función es la de interceptar todas las peticiones hacia el servidor real, para ver si (el proxy) puede satisfacerlas por si mismo, y solo, en caso contrario, será el servidor real el que satisfaga la petición del programa cliente. 

Básicamente su objetivo no es otro que el de mejorar el rendimiento evitando sobrecargas, y en otros casos también el de controlar el acceso a diversos sitios web


Funcionamiento de un proxy

Cuando un equipo de la red desea acceder a una información o recurso, es aquí donde el proxy realiza la comunicación y a continuación traslada el resultado al equipo inicial. En unos casos esto es así, porque no es posible la comunicación directa y en otros casos porque el proxy añade una funcionalidad adicional, como puede ser la de mantener los resultados obtenidos en una cache que permita acelerar sucesivas consultas coincidentes, consiguiendo así una mejora del rendimiento y evitando saturaciones cuando se realizan muchas consultas en poco tiempo.



                         Los pasos para realizar un proxy son:


1.- Instalar y configuracion del servidor DHCP

Para instalarlo es preciso entrar en la terminal como superusuario con la instrucción


apt-get install dhcp3-server


Una vez ya instalado proseguiremos con la configuración del mismo. 

  • Como primer paso de la instalación abriremos el archivo interfaces, para realizar esta acción nos dirigiremos a la terminal con la instrucción nautilus, de esta manera puedes accesar a todos los archivos del sistema como superusuario y realizar las configuraciones correspondientes
  • Una vez dentro de los archivos buscamos la carpeta etc, le damos click y entonces entramos en la carpeta network y ubicamos el archivo de interfaces.
 Otra manera de hacerlo es marcando la siguiente instrucción en una terminal que funcione como superusuario:       
                  nano/etc/network/interfaces 

 y automáticamente nos abre el archivo que es solicitado.

    "Para tener un mejor control y evitar posibles daños al dhcp nos encargaremos de realizar un archivo de respaldo, no solo del archivo interfaces, esta acción la realizaremos con todos los archivos que manejaremos, así si en un momento algo llegará a fallar, podremos recuperar nuestra configuración que viene por default".

    Y entonces una vez abierto nuestro archivo, y ya con un respaldo nos disponemos a modificar con las siguientes lineas:




    • A continuación iniciaremos con la configuración del DHCP para establecer el rango de direcciones IP que se asignarán, para realizar esta acción llevaremos a cabo las mismas acciones de hace un momento para abrir el nuevo archivo mediante el siguiente código:
              nano /etc/dhcp/dhcpd.conf

            O entrando con nautilus a buscar la carpeta de la ruta indicada con anterioridad.


    Ya con el archivo abierto el contenido se descomenta (le quitan los # al código) el renglón que dice:

                 A slightly different  configuration for an internal subnet 

     se escribirán las siguientes instrucciones:



    Cada línea representa una acción especifica que realizará el DHCP

    La línea range se encarga de dar la dirección inicial y dirección final que repartirá el DHCP.

      option routers—> Puerta de enlace que se les repartirá a las maquinas.
      option domain-name-servers—–> DNS que se les asignara a las maquinas.
      option doman-name—-> Nombre del servidor.
      default-lease-time—>Tiempo en milisegundos para asignar la IP
      max-lease-time—> Tiempo en milisegundos máximo que tendrá la IP una maquina.

    para obtener la DNS usada por la red se encuentra e la siguiente ruta 



    /etc/resolve.conf 


    En este caso temnemos 2 opciones de DNS, en nuestro caso elegimos la: 132.248.10.2  





    Se debe tener cuidado al colocar las direcciones en las líneas que indican las puertas de enlace que se repartirán en las máquinas (option routers), ya que si no son  iguales a las que se establecieron en las interfaces (eth1 y eth2) marcará un error.

    Ahora volvemos a abrir el nuevo archivo a modificar, como se mencionó anteriormente podemos hacerlo en la consola con la siguiente instrucción:



                 nano /etc/sysctl.conf


    o ingresando a las carpetas de archivos del sistema con la ruta indicada.


    y dentro del archivo, eliminaremos el signo # de la línea net.ipv4.ip_forward=1

    quedando como se muestra en la siguiente imagen



    guardamos el archivo, cerramos e ingresamos lo siguiente:



               nano /etc/default/isc-dhcp-server


    corroboramos que se encuentre sin comentar la línea INTERFACES=”eth1 eth0” o la adicionamos de ser necesario. Guardamos y cerramos.


      Reiniciaremos el servicio del dhcp con la siguiente línea de comando:


    /etc/init.d/networking restart







    /etc/init.d/isc-dhcp-server restart

    Al terminar la operación debe arrojar como resultado un ok al principio de la acción 



    Para comprobar que el dhcp esta funcionando entraremos a la consola y reiniciaremos el dhcp con las siguientes instrucciones:
    /etc/init.d/isc-dhcp-server restart
    /etc/init.d/networking restart

    Y realizamos las pruebas para verificar que se nos está asignando una dirección y que tenemos salida a internet desde nuestro proxy para esto conectamos 2 equipos (clientes windows) con cables de red a nuestro servidor y comprobamos que ambos tengan salida a internet.


    2.- Configuracion de las iptables

    Las iptables nos ayudaran a decidir que dejar pasar por la red y por donde dejarlo pasar, en este caso solo configuraremos las iptables para que nos redireccionen todo el puerto 80 hacia el puerto 3218 que es el puerto del squid, para que no tengamos que configurar el proxy en todas las maquinas, y ya que compartimos el internet enmascaramos todo lo que venga de la red interna y que saldra por la interface eth2, permitiremos tambien el forward para el dhcp.
    Para ello crearemos un script llamado iptables.sh para que las iptables se ejecuten cada vez que se inicie la maquina de la siguiente manera:

    sudo mkdir /etc/iptables/script.sh
    y le brindaremos permisos de ejecucion de la siguiente manera:

    sudo chmod a+x /etc/iptables/script.sh

    y el script sera el siguiente:





    3.- Instalacion y configuracion de Squid

    ¿Qué es Squid?

    Squid se comporta como un caché proxy: esto es, actúa como un agente que recibe peticiones de clientes (en este caso navegadores web) y pasa estas peticiones al proveedor de servicios apropiado. Cuando los datos llegan de nuevo al agente, este almacena una copia de los datos en un caché de disco.

    Las ventajas de este sistema aparecen cuando varios clientes intentan acceder a los mismos datos: ya no hará falta ir a buscarlos otra vez a Internet, sino que se servirán directamente desde el caché de disco. De esta forma, los usuarios se benefician de un ahorro importante del volumen de transferencias en red.

    Pasos para la instalación de Proxy SQUID

    1. Iniciaremos metiendo la siguiente instrucción en nuestra consola, en el modo de superusuario para la instalación de squid:

    sudo aptitude install squid 

    2. Ahora se configurara el squid para esto localizaremos el archivo con la ruta:
    /etc/squid/squid.conf

    Y posteriormente ubicaremos las siguientes líneas dentro del archivo y pondremos la configuración aquí señalada:


    http_port 3128 transparent
    cache_mem 16 MBcache_dir ufs /var/spool/squid 700 16 256ie_refresh onoffline_mode on

    acl  localnet src 192.168.100.0/24acl  localnet src 192.168.6101.0/24
    acl dominios src "/etc/squid/dominios_bloqueados"acl sitios url_regex "/etc/squid/sitios_bloqueados"

    http_access allow localnet !sitios_bloqueados !dominios_bloqueados


    3. Crear dos archivos, uno donde se guardaran las páginas que deseamos bloquear, y otro donde tendremos una lista palabras que bloqueara la busqueda.
    /etc/squid/sitios_bloqueados

    /etc/squid/dominios_bloqueados

    4. Finalmente configurar las direcciones y palabras denegadas


    sitios_bloqueados
    porno
    musica
    xxx


    dominios_bloqueados
    www.facebook.com
    www.tumblur.com

    www.youtube.com

    y con esto tendremos un servidor proxy dando servicio dhcp con salida a internet y bloqueando algunas páginas web