Como Instalar y configuar Proxy-Squid, y transparente, ubuntu server 8.10 (actualizado ) v0.3

Imagen de atan
0 puntos

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 publicacion http://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 primary network interface
auto eth0
iface eth0 inet dhcp

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 conexión 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 netmask 255.0.0.0 {
range 10.0.0.2 10.0.0.99;
option domain-name-servers 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; }

###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 /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 vim proxyrules.sh

entonces tenemos nuestro editor abierto ponemos las siguientes reglas
###Empieza####
echo “Aplican reglas de redirreciionamiento....”
iptables -t nat -F
iptables -t nat -X
iptables -F
iptables -X
iptables -Z

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 /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

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

### Esto yo no lo he probado
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

Espero que este COMO sea de ayuda como toda la información en este foro, y Blog de Linuxeros que andan por hay,

Imagen de iMorbo
+1
0
-1

Hola estoy siguiendo tu "Como", pero tengo problemas en el paso 2 a la hora de reiniciar el servicio de dhcp3 sale lo suiguiente:
dhcpd self-test failed. Please fix the config file.
The error was:
Internet Systems Consortium DHCP Server V3.1.1
Copyright 2004-2008 Internet Systems Consortium.
All rights reserved.
For info, please visit ht#tp://www.isc.org/sw/dhcp/
/etc/dhcp3/dhcpd.conf line 2: semicolon expected.
option domain-name
^
/etc/dhcp3/dhcpd.conf line 3: unknown option dhcp.domain-name-server
option domain-name-server 10.
^
/etc/dhcp3/dhcpd.conf line 10: subnet 10.0.0.1 netmask 255.0.0.0: bad subnet number/mask combination.
subnet 10.0.0.1 netmask 255.0.0.0
^
Configuration file errors encountered -- exiting

no se a que se debe este resultado, he seguido al pie de la letra los pasos indicados

+1
0
-1
Imagen de atan
+1
0
-1

saludos.,

bueno primero dime que configuracion pusiste en el dhcpd.conf, podrias copiarla, y segundo en el ejemplo de dominio que yo puse cometi un error de sintaxis, yo puse 123,123,com y es 123.123.com con puntos no con comas preueba eso, primero.

espero ser de ayuda

+1
0
-1
Imagen de iMorbo
+1
0
-1

Ok, Saludos y gracias por contestar...
bien, ya me mude a otro PC, por que el anterior estaba muy viejo y era culpa del hardware que no mantenia levantadas las Nic, ya voy en el paso 4, pero me sale el siguiente error:
sudo: ./configure: command not found
al momento de insertar este comando:
sudo ./configure --prefix=/usr/local/squid --enable-linux-netfilter --enable-follow-x-forwarded-for --enable-x-accelerator-vary
y no lo entiendo porque ya instale los paquetes para compilar build-essentiall y el gcc, ya no se que hacer!! igual e intento tu metodo que no nececita compilar, pero es que me confunde que es casi todos los pasos pusiste este aviso:
//////////SI no COPILAMOS no hay que hacer esto/////
osea, que en tu metodo solo instalamos squid-prefetch y hacemos lo del "sudo vim squid.conf" y es todo??, porque todos los demas pasos tienen el "//////////SI no COPILAMOS no hay que hacer esto/////", bueno a ver si puedo terminar con esto.
Gracias y perdon por las molestias.

+1
0
-1
Imagen de atan
+1
0
-1

Disculpa el desorden, ya lo acomode, yo acaba de instalarlo en otro lugar y me funciono bien, asi pues si tienes alguna duda aviza

+1
0
-1
Imagen de jhfa001
+1
0
-1

Te agradesco tu información, fue muy buena.

+1
0
-1
Imagen de link2184
+1
0
-1

hola, soy nuevo en esto de instalar servidores y empece por tu tutorial, pero tengo problemas en esta parte despues de reiniciarr el dhcp3

/etc/dhcp3/dhcpd.conf line 10: subnet 10.0.0.1 netmask 255.0.0.0: bad subnet number/mask combination.
subnet 10.0.0.1 netmask 255.0.0.0
^
Configuration file errors encountered -- exiting

y la verdad mi PC no está tan mal, tengo 1024 mb de ram y un core2duo y de disco duro tengo bastante.

de ante mano gracias por esto.

+1
0
-1
Imagen de carlos.riano
+1
0
-1

el problema no es de la maquina.....el problema es por la mascara de red que tienes, debes revizar la documentacion de subneteo para saber cual es la mascara de red que debes usar y corregirlo en el archivo .conf.....
espero te sirva....

+1
0
-1

Carlos Riaño
Girardot, Colombia

Imagen de wigamu
+1
0
-1

Buen dia

me podria ayudar y espero que me tenga un poco de paciencia a poder bloquear el msn, muchas gracias

William Garcia

+1
0
-1
Imagen de wigamu
+1
0
-1

Buen dia

me podria ayudar y espero que me tenga un poco de paciencia a poder bloquear el msn, muchas gracias

William Garcia

+1
0
-1
Imagen de cyasa
+1
0
-1

sr. gracias la parte de DHCP me sirvio mucho ya que tenia rato buscando y su blog funciono

+1
0
-1
Imagen de alberto lopez avila
+1
0
-1

sigo este tutorial pero al momento de reiniciar el servidor dhcp
me manda el siguiente error
dhcpd self-test failed. Please fix the config file.
The error was:
Internet Systems Consortium DHCP Server V3.1.3
Copyright 2004-2009 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/
/etc/dhcp3/dhcpd.conf line 2: semicolon expected.
option domain-name
^
/etc/dhcp3/dhcpd.conf line 3: unknown option dhcp.domain-name-server
option domain-name-server 10.
^
/etc/dhcp3/dhcpd.conf line 10: subnet 10.0.0.1 netmask 255.0.0.0: bad subnet number/mask combination.
subnet 10.0.0.1 netmask 255.0.0.0
^
Configuration file errors encountered -- exiting

ayuda por favor soy novato en esto gracias

+1
0
-1
Imagen de atan
+1
0
-1

llevo un poco sin montar uno de estos... jeje francamente no me acuerdo bine :(, pero voy a reinstalar en la primera maquina que lo hice, para probar y si logro algo que te pueda ayudar te digo, y no dejes de intentarlo yo dure casi 3 meses para hechar a andar el primero.

+1
0
-1
Imagen de siuq
+1
0
-1

¿Para que funcione squid3 correctamente hay que tener instalado dhcpd?
Saludos

+1
0
-1