Sie sind auf Seite 1von 24

Un servidor proxy tiene la misin de actuar de intermediario en el acceso de un recurso en internet.

Suelen utilizarse como pasarelas que permitan acceder a pginas webs restringidas por pas o dentro de una empresa, es decir, pueden trabajar como muro cortafuegos operando en la capa de red (actuando como filtro de paquetes, como es el caso de iptables) o bien desde la capa de aplicacin controlando diferentes servicios. Otra de sus funciones es actuar como cach de contenido de red (principalmente para el protocolo HTTP), proporcionando mayor proximidad de los clientes a un cach de pginas y archivos de forma que estos accedan con tiempos similares a los de una red local. En este sentido el servidor de proxy cache Squid tiene un alto rendimiento adems de soportar FTP o incluso HTTP sobre IPv4 e Ipv6. Todos los objetos cacheados por Squid permanecen en RAM, incluso consultas de bsquedas DNS. Es importante recalcar que Squid administra todas las peticiones bajo un nico proceso asncrono y no bloqueante. Por otro lado se ofrece soporte SSL y listas de control de acceso.

Proceso de interaccin de un servidor proxy


Durante el proceso de interaccin ocurre lo siguiente: 1. Un cliente se conecta hacia un Servidor Proxy. 2. El cliente solicita una conexin, archivo u otro recurso disponible en un servidor distinto. 3. El Servidor Proxy proporciona el recurso ya sea conectndose hacia el servidor especificado o sirviendo ste desde un cach. 4. En algunos casos el Servidor Proxy puede alterar la solicitud del cliente o bien la respuesta del servidor para diversos propsitos. Este ltimo punto 4, es que permite realizar muchas configuraciones personalizadas a los administradores de sistemas.

Instalacin de Squid
En este artculo se instalar Squid 3.1. Para instalarlo en Ubuntu o Debian based: Ver cdigo BASH
1 sudo apt-get install squid3

Despus se debe editar el fichero de configuracin por defecto /etc/squid3/squid.conf Por defecto el acceso http esta negado para todas las peticiones. Por ello debes buscar y borrar en el archivo la configuracin:

Ver cdigo BASH


1 http_access deny all

En su lugar se puede configurar una lista de acceso basada en rangos de IP al que se quiera permitir el acceso, por ejemplo: Ver cdigo BASH
1 acl our_networks src 123.123.123.0/24 213.213.213.0/24 2 http_access allow our_networks

De igual forma puedes comprobar que la directiva http_port este apuntando al puerto 3128 por defecto o cambiarlo al que necesites. Debes tener en cuenta que de acuerdo a las asignaciones hechas por IANA y continuadas por la ICANN desde el 21 de marzo de 2001, son los Puertos Registrados (rango desde 1024 hasta 49151) y los recomendados para Servidores Proxies son el 3128 y 8080 a travs de TCP. Tambin se pueden configurar varios: Ver cdigo BASH
1 http_port 3128 2 http_port 8080

O incluso especificando varias IPs: Ver cdigo BASH


1 http_port 192.168.1.254:3128 2 http_port 192.168.1.253:8080

Una vez configurado, es necesario reiniciar squid con: Ver cdigo BASH
1 sudo service squid3 restart

Tambin existen otras opciones como recargar la configuracin: Ver cdigo BASH
1 service squid reload

Parar el servicio: Ver cdigo BASH


1 service squid stop

O iniciarlo: Ver cdigo BASH


1 service squid start

Si tienes chkconfig (Sistemas basados en RedHat como Centos) puedes activarlo automticamente en cada inicio del sistema con: Ver cdigo BASH
1 chkconfig squid on

Para comprobar si se est ejecutando correctamente: Ver cdigo BASH


1 sudo service squid3 status

Y si esta efectivamente escuchando en el puerto configurado: Ver cdigo BASH


1 netstat -tulpn | grep 3128

Si existe algun error grave, que no permita iniciar el servicio se debe examinar el contenido del fichero /var/log/squid/squid.out Se puede acceder a los ficheros de log mediante: Ver cdigo BASH
1 sudo cat /var/log/squid3/access.log

O bien el fichero de cache: Ver cdigo BASH


1 sudo cat /var/log/squid3/cache.log

Para conocer la ip pblica del proxy puede utilizarse: Ver cdigo BASH
1 curl ifconfig.me

Modificaciones de configuracin bsicas


Para mostrar las cadenas de las consultas http en el log, es necesario desactivar la directiva strip_query_terms (por defecto activa) en /etc/squid3/squid.conf:

strip_query_terms off

Por otro lado el parmetro cache_mem establece la cantidad de memoria RAM dedicada para almacenar los datos mas solicitados y datos en trnsito (con mayor prioridad de almacenamiento). Los datos son normalmente almacenados en bloques de 4 Kb. El valor por defecto es de 256 MB, pero puede especificarse una cantidad mayor si es necesario. Por ejemplo puede establecerse 2 GB de memoria:

Ver cdigo BASH


1 cache_mem 2048 MB

Por defecto, si algo ocurre con la cach, como por ejemplo que el proceso se termine, se enviar un mensaje de aviso a la cuenta de email del webmaster en el servidor. Para configurarla pues cambiarse la directiva cache_mgr: Ver cdigo BASH
1 cache_mgr yo@midominio.net

Se puede especificar un lugar diferente para el registro de accesos con la directiva access_log: Ver cdigo BASH
1 access_log /var/log/squid/access.log squid

Para ver toda tu configuracin squid, sin mostrar los comentarios, puedes usar: Ver cdigo BASH
1 cat /etc/squid/squid.conf | sed '/ *#/d; /^ *$/d'

O bien: Ver cdigo BASH


1 grep -v "^#" /etc/squid/squid.conf | sed -e '/^$/d'

Solucin de errores
Si intentas conectar a tu servidor proxy y este no atiende tus peticiones, es posible que no hayas abierto los puertos en tu router. Se recomienda abrir el puerto TCP/UDP en el que este configurado Squid.

Configurar Proxy Squid en Ubuntu


Squid es un Servidor Intermediario (Proxy) de alto desempeo, que puede funcionar como Servidor Intermediario (Proxy) y cach de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, cach transparente, WWCP, aceleracin HTTP, cach de consultas DNS, filtracin de contenido y control de acceso por IP y por usuario.

Consiste bsicamente en un programa principal como servidor, un programa para bsqueda en

servidores DNS, programas opcionales para reescribir solicitudes y realizar autenticacin y algunas herramientas para administracin y y herramientas para clientes.

Al iniciar Squid da origen a un nmero configurable (5, de modo predefinido a travs del parmetro dns_children) de procesos de bsqueda en servidores DNS, cada uno de los cuales realiza una bsqueda nica en servidores DNS, reduciendo la cantidad de tiempo de espera para las bsquedas en servidores DNS.

No puede ser utilizado como Servidor Intermediario (Proxy) para protocolos como SMTP, POP3, TELNET, SSH, IRC, etc. Si se requiere intermediar para cualquier protocolo distinto a HTTP, HTTPS, FTP, GOPHER y WAIS se requerir hacer uso de un servidor SOCKS como Dante

No se instala por defecto, pero se encuentra en los repositorios de Ubuntu, por lo que puede ser instalado a travs deSynaptic, Aptitude o apt-get

Configuracin
Squid utiliza el archivo de configuracin localizado en /etc/squid/squid.conf, y se puede editar con el siguiente comando, en modo consola (terminal)

sudo gedit /etc/squid/squid.conf

Para editar al menos los siguientes parmetros: http_port cache_dir

Al menos una Lista de Control de Acceso Al menos una Regla de Control de Acceso httpd_accel_host httpd_accel_port httpd_accel_with_proxy

Parmetro http_port

Los Puertos Registrados recomendados para Servidores Intermediarios (Proxies) pueden ser el 3128 y 8080 a travs de TCP.

# You may specify multiple socket addresses on multiple lines.

# Default: http_port 3128

http_port 3128

http_port 8080

Si se desea incrementar la seguridad, puede vincularse el servicio a una IP que solo se pueda acceder desde la red local. Considerando que el servidor utilizado posee una IP 10.140.111.1, puede hacerse lo siguiente:

# You may specify multiple socket addresses on multiple lines.

# Default: http_port 3128

http_port 10.140.111.1:3128

http_port 10.140.111.1:8080

Parmetro cache_mem.
El parmetro cache_mem establece la cantidad ideal de memoria para lo siguiente:

Objetos en trnsito.

Objetos frecuentemente utilizados (Hot).

Objetos negativamente almacenados en el cach.

De modo predefinido se establecen 8 MB. Si se posee un servidor con al menos 128 MB de RAM, 16 MB es el valor para este parmetro:

cache_mem 16 MB

Parmetro cache_dir:
El parmetro cache_dir se utiliza para establecer que tamao se desea que tenga el cach en el disco duro para Squid. De modo predefinido Squid utilizar un cach de 100 MB, de modo tal que encontrar la siguiente lnea:

cache_dir ufs /var/spool/squid 100 16 256

Mientras ms grande sea el cach, ms objetos se almacenarn en ste y por lo tanto se utilizar menos el ancho de banda. La siguiente lnea establece un cach de 700 MB:

cache_dir ufs /var/spool/squid 700 16 256

Los nmeros 16 y 256 significan que el directorio del cach contendr 16 directorios subordinados con 256 niveles cada uno.

Parmetro ftp_user.
Al acceder a un servidor FTP de manera annima, de modo predefinido Squid enviar como clave de acceso Squid@. Puede establecerse una direccin de correo especificada como clave de acceso:

ftp_user proxy@gmail.com

Controles de acceso.

Las Listas de Control de Acceso definen una red o bien ciertas mquinas en particular. A cada lista se le asignar una Regla de Control de Acceso que permitir o denegar el acceso a Squid.

Listas de control de acceso, se establecen con la siguiente sintaxis:

acl [nombre de la lista] src [lo que compone a la lista]

Si se desea establecer una lista de control de acceso que abarque a toda la red local, basta definir la IP correspondiente a la red y la mscara de la sub-red. Por ejemplo, si se tiene una red donde las mquinas tienen direcciones IP 10.140.111.n con mscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:

acl miredlocal src 10.140.111.0/255.255.255.0

Ms conveniente es definir una Lista de Control de Acceso especificando un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de direcciones IP.:

acl permitidos src /etc/squid/permitidos

El archivo /etc/squid/permitidos contendra algo como siguiente:

10.140.111.2

10.140.111.3

10.140.111.4

10.140.111.5

10.140.111.6

En caso de querer restringir el acceso de una pc, basta con eliminarla de la lista.

Listas de control de acceso: Bloqueo de Dominios de Destino.


Es conveniente definir una Lista de Control de Acceso especificando los dominios bloqueados en un archivo localizado en cualquier parte del disco duro, y la cual contiene una lista de los dominios:

acl bloqueados dstdomain /etc/squid/bloqueados

El archivo /etc/squid/bloqueados contendra algo como siguiente:

www.microsoft.com

www.ibm.com

www.hotmail.com

Reglas de Control de Acceso.


Las Reglas de control de Aceso definen si se permite o no el acceso hacia Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la seccin de reglas de control de acceso definidas por el administrador, es decir, a partir de donde se localiza la siguiente leyenda:

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

La sintaxis bsica es la siguiente:

http_access [deny o allow] [lista de control de acceso]

En este ejemplo la regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos:

http_access allow permitidos

La expresin !, significa no. Pueden definirse as respecto de dos listas de control de acceso, lista1 y lista2, que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:

http_access allow lista1 !lista2

Esta regla es til cuando se tiene un gran grupo de IP dentro de un rango de red al que se debe permitir acceso, y otro grupo dentro de la misma red al que se debe denegar el acceso.

Aplicando Listas y Reglas de control de acceso.


Considerando como ejemplo que se dispone de una red 10.140.111.0/255.255.255.0, si se desea definir toda la red local, utilizaremos la siguiente lnea en la seccin de Listas de Control de Acceso:

acl todalared src 10.140.111.0/255.255.255.0

Listas de Control de Acceso: definicin de una red local completa

# Recommended minimum configuration:

acl all src 0.0.0.0/0.0.0.0

acl manager proto cache_object

acl localhost src 127.0.0.1/255.255.255.255

acl todalared src 10.140.111.0/255.255.255.0

A continuacin procedemos a aplicar la regla de control de acceso:

http_access allow todalared

Reglas de control de acceso: Acceso a una Lista de Control de Acceso.

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS http_access allow localhost http_access allow todalared http_access deny all

La regla http_access allow todalared permite el acceso a Squid a la Lista de Control de Acceso denominada todalared, la cual est conformada por 10.140.111.0/255.255.255.0. Esto significa que cualquier mquina desde 10.140.111.1 hasta 10.140.111.254 podr acceder a Squid. Si solo se desea permitir el acceso a Squid a ciertas direcciones IP de la red local, deberemos crear un archivo que contenga dicha lista, en modo consola ejecutar

sudo gedit /etc/squid/listas/redlocal

Incluir las direcciones IP que desea confirmen la Lista de Control de acceso;

10.140.111.1 10.140.111.4 10.140.111.17 10.140.111.19 10.140.111.21

Denominaremos a esta lista de control de acceso como redlocal:

acl redlocal src /etc/squid/listas/redlocal

Listas de Control de Acceso: definicin de una red local completa

# Recommended minimum configuration: acl all src 0.0.0.0/0.0.0.0 acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl redlocal src /etc/squid/listas/redlocal

Aplicar la regla de control de acceso:

http_access allow redlocal Reglas de control de acceso: Acceso a una Lista de Control de Acceso.

# INSERT YOUR OWN RULE(S) HERE TO ALLOW ACCESS FROM YOUR CLIENTS

http_access allow localhost

http_access allow redlocal

http_access deny all

La regla http_access allow redlocal permite el acceso a Squid a la Lista de Control de Acceso denominada redlocal, la cual est conformada por las direcciones IP especificadas en el archivo /etc/squid/listas/redlocal. Esto significa que cualquier mquina no incluida en /etc/squid/listas/redlocal no tendr acceso a Squid.

Parmetro chache_mgr .
De modo predefinido, si algo ocurre con el cach, se envia un mensaje de aviso a la cuenta webmaster del servidor, puede especificarse una distinta si se considera conveniente;

cache_mgr webmaster@gmail.com

Cach con aceleracin.


Cuando un usuario hace peticin hacia un objeto en Internet, este es almacenado en el cach de Squid. Si otro usuario hace peticin hacia el mismo objeto, y este no ha sufrido modificacin alguna desde que lo accedi el usuario anterior, Squid mostrar el que ya se encuentra en el cach en lugar de volver a descargarlo desde Internet.

Proxy Acelerado
En la seccin HTTPD-ACCELERATOR OPTIONS deben habilitarse los siguientes parmetros:

httpd_accel_host virtual

httpd_accel_port 0

httpd_accel_with_proxy on

Para crear el directorio cache, en modo consola ejecutamos;

sudo /usr/local/squid/sbin/squid -z

Iniciar, reiniciar y aadir el servicio al arranque del sistema.

Para iniciar por primera vez Squid en modo consola:

sudo service squid start

Para reiniciar en modo consola ejecutar:

sudo service squid restart

Para que Squid se inicie de manera automtica al inicio el sistema, en modo consola ejecutar:

sudo chkconfig squid on

Cualquier error al inicio de Squid solo significa que hubo errores de sintaxis, errores de teclado o de las rutas hacia los archivos de las Listas de Control de Acceso.

Para realizar el diagnstico de problemas indicndole a Squid que vuelva a leer configuracin, lo cual devuelve los errores que existen en el archivo /etc/squid/squid.conf, en modo consola ejecutar:

sudo service squid reload

En caso de errores graves que no permiten iniciar el servicio, examinar el contenido del archivo /var/log/squid/squid.outejecutando en consola:

less /var/log/squid/squid.out

Ajustes para el muro corta-fuegos. Re-direccionamiento de peticiones a travs de iptables y Firestarter.


Para dar salida transparente hacia Internet a ciertos servicios yo al mismo tiempo re-direccionar peticiones hacia servicio HTTP para pasar a travs del el puerto donde escucha peticiones Squid (8080), de modo que no haya salida alguna hacia alguna hacia servidores HTTP en el exterior sin que sta pase antes por Squid, los protocolos HTTPS, FTP, GOPHER ni WAIS, deben ser filtrados a travs del NAT. El re-direccionamiento se hace a travs de iptables. Suponiendo que la red local se accede a travs de una interfaz eth1, el siguiente esquema ejemplifica un re-direccionamiento:

sudo /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

Lo anterior, que requiere un guin de cortafuegos funcional en un sistema con dos interfaces de red, hace que cualquier peticin hacia el puerto 80 (servicio HTTP) hecha desde la red local hacia el exterior, se re-direccionar hacia el puerto 8080 del servidor.

Utilizando Firestarter, la regla anteriormente descrita se aade en el archivo /etc/firestarter/userpost. sudo gedit /etc/firestarter/user-post y se agrega la lnea /sbin/iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port 8080

Tutorial COMO Instalar y configuar Proxy-Squid, y dejarlo transparente a los clientes.


Primero que todo quisiera agradecer a esta comunidad de ubuntu-es que siempre me a permitido avanzar en este mundo del Gnu/linux, aqu en estos foros hay de todo no duden en buscar, no son los unicos que tienen este problema en especial, Tambien agradezco a la comunica GNU/LInux en general. Bueno como ultimo aqu en el foro encontre todo lo que ocupaba pero en diferentes post y experiencias para hacer esto un poco mas claro tomare como base el tutorial de jarriaga del blog http://catrip.wordpress.com/ con mas exaltitud esta publicacionhttp://catrip.wordpress.com/2008/10/16/tutorial-squid-servidor-proxy-en-... Debo indicar que casi todo el tutorial esta pensado para usar la consola, aunque yo tuve un problema que me obligo a usar una distro liviana para descargar un archivo, que mas adelante explicare. ES MOMENTO EMPEZEMOS con mi experiencia Primero que todo en mi caso tenia la necesidad de conectar dos lineas de ADSL (Trabajo en eso cuanto lo tenga funcionando pongo un tuto)y montar un Proxy Squid para un Centro de internet o caf internet, como sea que nombren en su pais. Segundo el equipo con que cuento es una PC de 2x Xeon de 2,8 2gb de ram y un disco duro de 2,3Gb, (debo aclarar que para un server squid no se ocupa tanta maquina o que pasa que esta PC esta sin uso y la aproveche :) ) En mi caso instale Ubuntu server 8,10 32bits, deje el particionado automatico, elegi que instalara los paquetes de Servidor DNS (porque yo necesite tener instalado el bind9) tengo dos tarjeta de

red eth0, eth1 siendo la primera la que tiene la salida a internet, y otra la que se comunica con la red local por medio de un swicht, (Las terminales estan en winxp, por el momento) Cuando instale la maquina ubuntu me consulto cual tarjeta de red tenia queria usar para acceso a internet, en mi caso elegi la eth0, la cual esta conectada al modemADSL y configurada por DHCP desde el modem, Ya terminado de instalar el Ubuntu Server 8,10, nos logueamos y revisamos como ubuntu nos detecto las tarjetas de red. Con el siguiente comando sudo ifconfig En mi caso solo me a mostrado la informacion de eth0, Para configurar la segunda tarjeta de red eth1 la cual tendra la salida a la red local via swicht 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 vim sudo vim interfaces y nos abre este archivo, revisamos las siquientes lineas. # The auto iface eth0 inet dhcp primary network interface eth0

A esto le agregamos auto eth1 iface eth1 inet static address 10.0.0.1 netmask 255.255.255.0 #gateway 10.0.0.1 #( el signo de # se utiliza para comentar en la linea de comando, esto lo hago para que la maquina no se confunda con las puertas de entrada , ami personalmente si no hago esto pierdo la conexin a internet) Por defecto ubuntu detecta la interfaz de red que tengamos instalada y la pone en auto y con cliente dhcp en mi caso eth0 esta en automatico y es la que se asigna dinamicamente por el modem-router dsl de mi proveedor de internet Que fue lo agregamos? le estamos indicando a ubuntu que eth1 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(Aunque como esta comentada, no va a plicar) 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

aqu otro detalle antes de continuar es que hagamos, un ping o si quieren sudo apt-get update esto para comprobar que aunque despues de modificar el archivo interfaces, podamos conectarnos a internet (A mi me consto llegarle que el problema era que la maquina no podia decidir en cual gateway salir a internet, por eso comentamos la gateway de eth1) 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 vim dhcpd.conf que hacemos ahi??? primero borramos todo todo TODO y luego ponemos nuestra configuracion en mi caso esta ###Empieza script#### option domain-name 123.123.com; #(aqui no estoy seguro, yo puse el dominio del router) option domain-name-server 10.0.0.1; option subnet-mask 255.0.0.0; option netbios-name-servers 10.0.0.1; option routers 10.0.0.1; default-lease-time 600; max-lease-time 7200; subnet 10.0.0.1 range option option option option routers 10.0.0.1; } ###Finaliza script #### 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 ya que configuramos nuestro archivo de configuracion dhcpd ahora si arrancamos el servicio uffff cd sudo ./dhcp3-server restart /etc/init.d netmask 10.0.0.2 domain-name-servers subnet-mask netbios-name-servers 255.0.0.0 { 10.0.0.99; 10.0.0.1; 255.0.0.0; 10.0.0.1;

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 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_seor o como quieras.. sudo vim proxyrules.sh entonces tenemos nuestro ###Empieza#### echo Aplican iptables iptables iptables iptables iptables -Z editor reglas -t -t abierto ponemos de nat nat las siguientes reglas podemos continuar.

redirreciionamiento.... -F -X -F -X

echo 1 > /proc/sys/net/ipv4/ip_forward iptables -t nat -A PREROUTING -i eth1 -s 10.0.0.0/255.0.0.0 -d 0.0.0.0/0.0.0.0 -p tcp dport 80 -j REDIRECT --to-port 3128 ### Finaliza #### 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), y que eth1 es la salida a internet. ahora grabamos nuestra archivo con Esc , : , x en caso de usar vim 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 vim rc.local y le ponemos hasta arriba cd ./proxyrules.sh Listo con esto ya tenemos las reglas hechas ahora lo mas IMPORTANTE SQUID PASO NUMERO 4 - Poniendo los Globos y las velitas Para ahorrarse la descarga y copilacion del squid, hagamos lo siquiente sudo apt-get install squid-prefetch esto instalara el squid y un demonio (prefetch), porque no haciamos esto antes, porque antes solo descargando el squid-common via apt no funcionaba la opcion de hacerlo transparente para las terminales, yo instalaba el prefetch para q me funcionara para ciertos sitios por que daba un error de DNS, fue hasta que reinstale mi server para que se me ocurio instalar squid-prefecth primero y mi instalo tambien el squid del reposito de ubuntu, hice los ajustes al squid.conf y me funciona perfecto sin copilar y transparente sale todos los archivos pertenecen a squid ahora vamos a la ruta de configuracion si usamos el reposito Usemos cd /etc/squid/ 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 vim 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 /etc/init.d

### Esto yo no lo he probado continuamos mas abajo y buscamos las acls 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 Espero que este COMO sea de ayuda como toda la informacin en este foro, y Blog de Linuxeros que andan por hay,

Das könnte Ihnen auch gefallen