Servidor Proxy en modo transparente y DHCP
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.
proxy
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.
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
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
por defecto ubuntu detecta la interfaz de red que tengamos instalada y la pone en auto y con cliente dhcpen 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.
nos vamos a la siguiente ruta
cd /etc/dhcp3
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
a disfrutar de la FIESTA
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.
proxy
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.
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
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
por defecto ubuntu detecta la interfaz de red que tengamos instalada y la pone en auto y con cliente dhcpen 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.
nos vamos a la siguiente ruta
cd /etc/dhcp3
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
a disfrutar de la FIESTA
dijo:Fuente: