Primero que nada vamos a explicar que es un proxy funciona como un cache o una memoria pero en lugar de almacenar variables o procesos almacena paginas web y sus contenidos, esto para hacer mas rapido el acceso a internet en lugar de pedir directamente la informacion al servidor externo de yahoo,youtube, etc,etc accesamos al servidor proxy y ya no recargamos imagenes, textos,etc y eso acelera el internet. Otra ventaja de un servidor proxy como Squid es que podemos crear reglas de acceso en las cuales podemos especificar a quienes si les damos acceso a descarga de archivos o denegar acceso a ciertas paginas o inclusive a direcciones web completas o tipos de archivos y con esto nos aseguramos de que nuestros usuarios no descarguen archivos maliciosos de la web.

Ahora por que proxy TRANSPARENTE, en un servidor proxy normal hay que configurar los clientes para que su salida por proxy sea hacia un puerto especifico:    proxy :  10.0.0.1   port:  3128     estoy hay que hacerlo en todos los clientes dentro de las propiedades de nuestro navegador, mas sin en cambio en un proxy transparente no se hace ninguna configurar en los clientes simplemente navegan por el proxy sin que se den cuenta….. ;-)

Manos a la obra. ALERTA TODO EL TUTE ESTA PARA CONSOLA

PASO NUMERO 1-  Examinando el lugar

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.

quedaria de la siguiente manera

Si ya tenemos los elementos conectados a nuestro ubuntu debemos asignar nuestras interfaces eth0 y eth1 cual de ellas sera la RED LOCAL y cual la RED PUBLICA O INTERNET por que digo esto por que nuestro servidor sera el que se encargará de asignar las direcciones ip y con esto sera el servidor DHCP entonces una de nuestras tarjetas ip debe asignarse ESTATICAMENTE como hacemos esto? .

Debemos conectar el cable de nuestro proveedor de internet a una de las tarjetas de red recuerda que por default las tarjeta de red estan en auto y son clietes dhcp o sea reciben ip dinamicamente , vamos a ver como detecto UBUNTU nuestras tarjetas de red con el siguiente comando

sudo ifconfig

y nos debe mostrar algo similar

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  ok

RESUMIENDO

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

cd /etc/network

ahi esta un archivo que se llama interfaces lo abrimos para editar con nuestro editor favorito en mi caso nano

 sudo nano interfaces

y nos abre este archivo

por defecto ubuntu detecta la interfaz de red que tengamos instalada y la pone en auto y con cliente dhcp

en mi caso eth1 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, ¿Que como lo rearrancamos?  muy facil

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

comprobamos que tengamos todo listo nuevamente con  ifconfig

si ya tenemos nuestras 2 interfaces con ip y funcionando podemos continuar con este recorrido magico y misterioso

PASO NUMERO 2 – Organizando la Fiesta

Ahora vamos a instalar nuestro servidor dhcpd

sudo apt-get install dhcp3-server

y listo con esto ya tenemos nuestro servidor DHCPD instalado, ufff que facil no?
ahora vamos a configurarlo jejeje -)

nos vamos a la siguiente ruta

cd /etc/dhcp3

y ahi editamos el siguiente archivo

 sudo nano dhcpd.conf

que hacemos ahi??? primero borramos todo todo TODO
y luego ponemos nuestra configuracion en mi caso esta

en este tutorial vamos a instalar el proxy con squid en cuanto a la configuracion de mi DHCPD lo explicare brevemente se pone el dominio al cual perteneces, nombre del servidor de dominios en el caso seria el mismo el router es el mismo servidor, el tiempo de asignacion de direcciones, despues se pone las subredes o Rangos: en mi caso quiero que el servidor dhcp asigne desde la direccion 10.0.0.2  a la 10.0.0.99, las secciones de host hp-server, sistemas , conta-banpezca se refieren a que esas tarjetas de red detectadas por hardware se llaman asi y su direccion ip siempre sera la que tienen -)

ya que configuramos nuestro archivo de configuracion dhcpd ahora si arrancamos el servicio uffff

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

y liiiiisto 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…
-)

ok ahora si podemos continuar….

ya tenemos el dhcpd CORRIENDO y ACTIVO.

PASO NUMERO 3 – Preparando el pastel

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? primero 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 nano proxyrules.sh

entonces 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 eth1 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.local

sudo nano rc.local

y le ponemos hasta arriba

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

Listo con esto ya tenemos las reglas hechas ahora lo mas IMPORTANTE SQUID -)

PASO NUMERO 4 – Poniendo los Globos y las velitas

Ahora vamos descargarnos SQUID siquieren de la pagina web o usando wget, pero por que lo vamos a compilar y no usar apt-get install??? por que el deb ya viene compilado sin opcion a proxy transparente y debemos de compilar activando las opciones para proxy transparente.
primero nos vamos a la carpeta

 cd /usr/local/src

y descargamos squid

 sudo wget http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE4.tar.gz

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

 sudo tar xvzf squid-2.7.STABLE4.tar.gz
sudo ./configure --prefix=/usr/local/squid --enable-linux-netfilter  --enable-follow-x-forwarded-for --enable-x-accelerator-vary
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 nano squid.conf

y en la linea que dice http_port vamos a poner
http_port 10.0.0.1:3128 transparent
recuerden que esta ip es la del servidor y el puerto es por default 3128

mas abajo en la linea que dice cache_dir ponemos
cache_dir ufs /usr/local/squid/var/cache 2048 16 256
continuamos mas abajo en donde dice cache_effective_user ponemos
cache_effective_user squid
cache_effective_group squid

continuamos mas abajo y buscamos las acl’s si queremos que nuestros usuarios no descarguen archivos especificos creamos una acl de este tipo

acl downloads url_regex -i \.dll$ \.bin$ \.cab$ \.asx$ \.vbs$ \.bat$ \.lnk$ \.scr$ \.pif$ \.msi$ \.exe$ \.mp3$ \.wmv$ \.zip$ \.mpg$ \.torrent$ \.ppt$ \.com$ \.rar$ \.avi$ \.flv$

http_access deny downloads

mas abajo damos acceso a nuestra red al proxy

acl our_networks src 10.0.0.0/24
http_access allow our_networks

y listo grabamos nuestro archivo

ya nos estamos acercando Ufffff

PASO NUMERO 5 – Que comience la fiesta

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 uffff.

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

Ubuntu Destiny

About these ads