Proxy Transparente

8
INSTALACION DEL SERVIDOR PROXY TRANSPARENTE Y DHCP. Autor: Guillermo Cárdenas Hernández. Email:[email protected] Guillermo Cárdenas Hernández. email:[email protected]

description

Artículo que muestra la configuración de un proxy transparente.

Transcript of Proxy Transparente

Page 1: Proxy Transparente

INSTALACION DEL SERVIDOR PROXY

TRANSPARENTE Y DHCP.

Autor: Guillermo Cárdenas Hernández.Email:[email protected]

Guillermo Cárdenas Hernández. email:[email protected]

Page 2: Proxy Transparente

Primero vamos a ver el esquema de un servidor proxy, obviamente puedes usar ubuntu server edition si lo quieres, el servidor debe contar con 2 tarjetas de red, la primera ira conectada a nuestro router dsl,o nuestro servicio de internet , la segunda debera ir conectada a nuestra red local.

En este caso ya tengo la ip de la red local configurada que es eth0 10.0.0.1 digamos que es la ip local de mi servidor, y en eth1 tengo asignada la ip de mi router dsl 192.168.10.101.

eth0 ip de red local 10.0.0.1 asignada estaticamente eth1 ip de router xdsl que nos fue asignada dinamicamente

Nota: Para configurar la ip estatica haremos lo siguiente vamos a ir a cosola y nos dirigimos a /etc/network

sudo gedit /etc/network/interfaces

Y colocaremos algo como esta configuración.

Guillermo Cárdenas Hernández. email:[email protected]

Page 3: Proxy Transparente

Por defecto ubuntu detecta la interfaz de red que tengamos instalada y la pone en auto y con cliente dhcp en mi caso e t h 1 esta en automatico y es la que se asigna dinamicamente por el modem-router dsl de mi proveedor de internet .Editamos lo que hay para eth0 y ponemos algo como lo que esta en verde, voy a decirle a ubuntu que eth0 sea cargada automaticamente en cada inicio de ubuntu y que le asigne la direccion ESTATICA 10.0.0.1 con su mascara de subred 255.0.0.0 y que sea gateway o puerta de enlace 10.0.0.1 y con esto ya tenemos nuestra tarjeta de red configurada estaticamente solo nos resta guardar los cambios en el archivo y rearrancar el servicio de network

cd /etc/init.d sudo ./networking restart

Ahora será necesario verificar las interfaces con el comando ifconfig.

Guillermo Cárdenas Hernández. email:[email protected]

Page 4: Proxy Transparente

Instalación del Servidor DHCP.

Lo instalamos desde la consola con la Linea.

sudo apt-get install dhcp3-server

Y ahora editaremos el archivo de configuración del DHCP, con la Linea.

Sudo gedit /etc/dhcp3/dhcpd.conf

Y Agregamos el Archivo de configuracion que esta en el dhcp de respaldo.

Al Finalizar será necesario reiniciar los servicios del DHCP, con.

sudo /etc/init.d/dhcp3-server restart

y listo si no marco ningun error todo ira de pelos para comprobar que nuestros clientes ya tienen direccion ip del tipo 10.0.0.x en mi caso solo conecta algun cliente a tu SWITCH o HUB y haz ping a tu servidor 10.0.0.1 (recuerda que tu le puedes poner lo que quieres 192.168.x.x etc etc dependiendo a tus necesidades, si marco un error el servicio quiere decir que hubo un error en tu configuracion.

Guillermo Cárdenas Hernández. email:[email protected]

Page 5: Proxy Transparente

Configuración de Iptables.Hasta aqui ya llevamos el 50% de nuestro tutorial ahora vamos con IPTABLES pero que pasa con ellas, pues que debemos asignar ciertas reglas para que se carguen automaticamente cada vez que inicie nuestro servidor proxy ubuntu que vamos a hacer primero para que se carguen automaticamente nos vamos a la ruta.

cd /etc/init.d/

en esta carpeta estan todos los archivos que se ejecutan al iniciar nuestro ubuntu asi que hay que poner uno para que tambien arranque y este contendra las sentencias de iptables para que funcione nuestro proxy TRANSPARENTE. dentro de la carpeta /etc/init.d creamos un nuevo archivo llamale como tu quieras iptables, superproxy, amo_y_señor o como quieras.

sudo gedit proxyrules.shentonces tenemos nuestro editor abierto ponemos las siguientes reglas

explicamos rapidisimo que significa las reglas iptables , las primeras borran todas las reglas de iptables en ejecucion, el echo indica forwarding activado, la primera cadena de iptables indica que todas las peticiones que nuestra red 10.0.0.0/255.0.0.0 haga al puerto 80 (web) sea redireccionada al puerto 3128 (proxy) , la segunda cadena se refiere a que damos enmascaramiento a nuestra red para que pueda salir a internet recuerda que en mi caso e t h 1 es mi salida a internet por medio del modem-router de mi ISP. ahora grabamos nuestra archivo con ctrl+o en caso de usar nano y damos permisos de ejecucion a nuestro archivo en mi caso con el siguiente comando .

sudo chmod 700 proxyrules.sh

y despues de eso editamos el archivo rc.localy le ponemos hasta arriba

Guillermo Cárdenas Hernández. email:[email protected]

Page 6: Proxy Transparente

cd /etc/init.d ./proxyrules.sh

Instalación de Squid.

Nos vamos a la carpeta /usr/local/src.

cd /usr/local/src

Y descargamos Squid.

sudo wget http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE

con esto obtenemos el codigo fuente, ahora vamos a descomprimirlo y compilarlo.

sudo tar xvzf squid2.7.STABLE4.tar.gz sudo ./configure prefix=/usr/local/squid enablelinuxnetfilter sudo make sudo make install

con esto ya tenemos instalado SQUID en la ruta /usr/local/squid ahora vamos a configurar nuestro squid primero debemos crear un usuario llamado squid y un grupo llamado squid

sudo useradd squid sudo groupadd squid

ahora nos vamos a la ruta donde esta squid y hacemos que todos los archivos y carpetas pertenezcan a este usuario y grupo squid

cd /usr/local/squid chown R squid * chgrp R squid *

sale todos los archivos pertenecen a squid ahora vamos a la ruta de configuracion

cd /usr/local/squid/etc

editamos el archivo de configuracion squid.conf, si no esta o esta algun otro como squid.conf.default lo copiamos y lo renombramos squid.conf abrimos squid.conf

sudo gedit squid.conf

Guillermo Cárdenas Hernández. email:[email protected]

Page 7: Proxy Transparente

Configuracion de Squid.

http_port 192.168.0.228:3128 transparent cache_mem 100 MB cache_dir ufs /usr/local/squid/var/cache 2048 16 256 cache_effective_user squid cache_effective_group squid ie_refresh on offline_mode on cache_access_log /usr/local/squid/var/logs/access.log cache_log /usr/local/squid/var/logs/cache.log

#REGLAS DE ACCESO acl all src 0.0.0.0/0.0.0.0 #acl no_permitido1 dst "/usr/local/squid/etc/pag_no_permitidos.lst" acl filterneg dstdom_regex "/usr/local/squid/etc/filternew.flt" #acl filterporn dstdom_regex "/usr/local/squid/etc/filterporn.flt" acl no_permitido2 url_regex "/usr/local/squid/etc/pag_no_permitidos2.lst" # Palabras prohibidas & permitidas acl block url_regex "/usr/local/squid/etc/block.flt" acl unword urlpath_regex "/usr/local/squid/etc/dload.flt" acl banorte dstdom_regex "/usr/local/squid/etc/nuevosrapidos.flt" #acl msn_live port 1863 #bloquear streaming video y audio acl useragent browser -i ^application/NSPlayer$ acl useragent browser -i ^application/player$ acl useragent browser -i ^application/Windows-Media-Player$ acl useragentq rep_mime_type ^video acl useragentq rep_mime_type ^audio #\.ppt$ acl downloads url_regex -i \.dll$ \.bin$ \.cab$ \.asx$ \.vbs$ \.bat$ \.lnk$ \.scr$ \.pif$ \.msi$ \.exe$ \.mp3$ \.wmv$ \.mpg$ \.torrent$ \.com$ \.avi$ \.flv$ \.rmv$ \.rmvb$

acl localhost src 127.0.0.1

#CONTROL DE ACCESSO #http_access deny no_permitido1 http_access deny filterneg #filterporn http_access allow unword http_access allow banorte http_access deny block #filterporn http_access deny no_permitido2 #http_access deny nodownload http_access deny useragent http_access deny useragentq http_access deny downloads !localhost http_access allow all error_directory /usr/local/squid/share/errors/Spanish visible_hostname PROXY-SERVER

Guillermo Cárdenas Hernández. email:[email protected]

Page 8: Proxy Transparente

Para esto será necesario tener en la carpeta de Squid los archivos nuevosrapidos.flt,block.flt,dload.flt,filternew.flt,pag_no_permitidos.lst,pag_no_permitidos2.lst

Ya que tenemos nuestro archivo squid.conf debidamente configurado solo nos resta crear los directorios swap o de cache con el comando

cd /usr/local/squid/sbin sudo ./squid z

Si todo salio bien hasta aqui vamos PERFECTO, si salio algun error de permisos de escritura revisa tu configuracion de squid.conf que tengas el usuario en cache_effective_user squid y cache_effective_group squid , ademas de revisar que agregaste ese grupo y usuario ok. lo que resta es hacer que nuestro sistema cargue squid cada vez que iniciemos nuestro equipo, recuerdan el archivo en el paso 3 RC.LOCAL pues ahi vamos a meter nuestras sentencias editamos el archivo que esta en .

cd /etc/init.d nano rc.local

y hasta arriba del archivo ponemos

cd /usr/local/squid/sbin ./squid

grabamos el archivo y listo cada vez que nuestro servidor encienda arranca squid y las reglas de iptables para el proxy transparente.

para saber si nuestro proxy esta activo solo ponemos

sudo ps ax

ahi tenemos 2 procesos ./squid y (squid) si estan los 2 procesos todo esta perfecto.

Guillermo Cárdenas Hernández. email:[email protected]