domingo, 25 de octubre de 2009

INSTALACION Y CONFIGURACION DE SERVIDOR PROXY PARA LINUX

Configuración Servidor Proxy para Linux

Introducción.

Servidor Proxy

Al traducirlo literalmente Proxy es como un delegado o apoderado es decir el que tiene el poder sobre otro, aplicado este concepto en redes es el servidor o dispositivo que permite realizar conexiones de red indirectas hacia otras redes.

Una aplicación común de los Servidores Proxy es funcionar como caché de contenido de Red (principalmente HTTP), proporcionando a los clientes un caché de páginas y archivos disponibles a través de la Red en servidores HTTP remotos, permitiendo a los clientes de la red local acceder hacia éstos de forma rápida y confiable. Los Servidores Proxy para contenido de Red también pueden actuar como filtros del contenido servido, aplicando políticas de censura de acuerdo a criterios arbitrarios.

Servicio Squid

Squid es un Servidor Proxy puede funcionar como Servidor Proxy y caché de contenido de Red para los protocolos HTTP, FTP, GOPHER y WAIS, Proxy de SSL, caché transparente, WWCP, aceleración HTTP, caché de consultas DNS y otras muchas más como filtración de contenido y control de acceso por IP y por usuario.

Versiones recomendadas

Para poder llevar al cabo los procedimientos descritos en este manual y documentos relacionados, usted necesitará tener instalado al menos lo siguiente:

SQUID 2.6.STABLE18

httpd-2.0.x (Apache), como auxiliar de caché con aceleración.

Todos los parches de seguridad disponibles para la versión del sistema operativo que esté utilizando. No es conveniente utilizar un sistema con posibles vulnerabilidades como Servidor Proxy.

Ubuntu 8.0.4

Instalación Squid

Para la instalación se debe seguir los siguientes pasos:

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

1. Desde una ventana de terminal digite apt-get install squid

2. Abrir el archivo squid.conf con el comando gedit /etc/squid/squid.conf

3. Encontrar la línea: visible_hostname e ingresar el nombre hostname visible_hostname where

Configuración básica.

Squid utiliza el archivo de configuración localizado en /etc/squid/squid.conf, y podrá trabajar sobre este utilizando su editor de texto simple preferido. Existen un gran número de parámetros, de los cuales recomendamos configurar los siguientes:

http_port

cache_dir

Al menos una Lista de Control de Acceso

Al menos una Regla de Control de Acceso

Parámetro http_port:

El estándar indica que los Puertos Registrados (rango desde 1024 hasta 49151) recomendados para Servidores Proxy pueden ser el 3128 y 8080 a través de TCP.

De modo predefinido Squid utilizará el puerto 3128 para atender peticiones, sin embargo se puede especificar que lo haga en cualquier otro puerto disponible o bien que lo haga en varios puertos disponibles a la vez. No es recomendable configurar el servicio de Proxy transparente ya que se pierde el objetivo del servicio limitar el uso del Internet a los usuarios.

Para configurar el puerto del servicio editamos el archivo con la siguiente línea

#
#    You may specify multiple socket addresses on multiple lines.
#
# Default: http_port 3128
http_port 3128
http_port 8080

Si 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 192.168.1.254, puede hacerse lo siguiente:

#
#    You may specify multiple socket addresses on multiple lines.
#
# Default: http_port 3128
http_port 192.168.1.254:3128
http_port 192.168.1.254:8080

Parámetro cache_mem.

El parámetro cache_mem establece la cantidad ideal de memoria para lo siguiente:

Objetos en tránsito.

Objetos frecuentemente utilizados (Hot).

Objetos negativamente almacenados en el caché.

El parámetro cache_mem especifica un límite máximo en el tamaño total de bloques acomodados, donde los objetos en tránsito tienen mayor prioridad.

cache_mem 16 MB

Parámetro cache_dir:

Este parámetro se utiliza para establecer que tamaño se desea que tenga el caché en el disco duro para Squid, de modo tal que encontrará la siguiente línea:

cache_dir ufs /var/spool/squid 100 16 256

Se puede incrementar el tamaño del caché hasta donde lo desee el administrador. Mientras más grande sea el caché, más objetos se almacenarán en éste y por lo tanto se utilizará menos el ancho de banda. La siguiente línea establece un caché de 700 MB:

cache_dir ufs /var/spool/squid 700 16 256

Los números 16 y 256 significan que el directorio del caché contendrá 16 directorios subordinados con 256 niveles cada uno. No modifique esto números, no hay necesidad de hacerlo.

Controles de acceso.

Es necesario establecer Listas de Control de Acceso que definan una red o bien ciertas máquinas 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.

Regularmente una lista de control de acceso se establece 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 máscara de la sub-red. Por ejemplo, si se tiene una red donde las máquinas tienen direcciones IP 192.168.1.n con máscara de sub-red 255.255.255.0, podemos utilizar lo siguiente:

acl miredlocal src 192.168.1.0/255.255.255.0

También puede definirse 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. Ejemplo:

acl permitidos src "/etc/squid/permitidos"

El archivo /etc/squid/permitidos contendría algo como siguiente:

192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.15
192.168.1.16
192.168.1.20
192.168.1.40

Lo anterior estaría definiendo que la Lista de Control de Acceso denominada permitidos estaría compuesta por las direcciones IP incluidas en el archivo /etc/squid/permitidos.

Reglas de Control de Acceso.

Estas definen si se permite o no el acceso hacia Squid. Se aplican a las Listas de Control de Acceso. Deben colocarse en la sección 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 básica es la siguiente:

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

En el siguiente ejemplo consideramos una regla que establece acceso permitido a Squid a la Lista de Control de Acceso denominada permitidos:

http_access allow permitidos

También pueden definirse reglas valiéndose de la expresión !, la cual significa no. Pueden definirse, por ejemplo, dos listas de control de acceso, una denominada lista1 y otra denominada lista2, en la misma regla de control de acceso, en donde se asigna una expresión a una de estas. La siguiente establece que se permite el acceso a Squid a lo que comprenda lista1 excepto aquello que comprenda lista2:

http_access allow lista1 !lista2

Este tipo de reglas son útiles 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.

Parámetro chache_mgr.

De modo predefinido, si algo ocurre con el caché, como por ejemplo que muera el procesos, se enviará un mensaje de aviso a la cuenta webmaster del servidor. Puede especificarse una distinta si acaso se considera conveniente.

Iniciando, reiniciando y añadiendo el servicio al arranque del sistema.

Una vez terminada la configuración, ejecute el siguiente mandato para iniciar por primera vez Squid:

service squid Star

Si necesita reiniciar para probar cambios hechos en la configuración, utilice lo siguiente:

service squid restart

Si desea que Squid inicie de manera automática la próxima vez que inicie el sistema, utilice lo siguiente:

chkconfig squid on

Lo anterior habilitará a Squid en todos los niveles de corrida.

Depuración de errores

Cualquier error al inicio de Squid solo significa que hubo errores de sintaxis, errores de dedo o bien se están citando incorrectamente las rutas hacia los archivos de las Listas de Control de Acceso.

Puede realizar diagnóstico de problemas indicándole a Squid que vuelva a leer configuración, lo cual devolverá los errores que existan en el archivo /etc/squid/squid.conf.

service squid reload

Cuando se trata de errores graves que no permiten iniciar el servicio, puede examinarse el contenido del archivo /var/log/squid/squid.out con el mandato less, more o cualquier otro visor de texto:

less /var/log/squid/squid.out

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"

Por ejemplo: www.minegocio.com, www.google.com, www.yahoo.com

martes, 13 de octubre de 2009

Desarrollo web : PHP o ASP.NET

Introduccion:

Antes de empezar quiero decir que me declaro un ferviente admirador y seguidor de php, sobre todo con el giro que dio a Orientacion a objetos, esto hizo que el lenguaje sea mucho mas poderoso y profesional, ahora el objetivo de este blog, es dar pautas para las personas que estan pensando en incursionar en el apasionante mundo del desarrollo web, aun recuerdo los primeros pasos de las aplicaciones web cuando el html daba sus primero pasos y ya solo el hecho de tener diseñar un pagina web era un reto, ahora con el avance de la tecnologia web tenemos aplicaciones web sumamente poderosas que llegan a funcionar como si estuvieran instalada localmente en un PC gracias a la tecnologia AJAX, que no estan nueva que digamos , y que no es un invento de microsoft, sino que nace con el todo poderoso java, ahora incluso la conexion a bases de datos es algo tan normal en un website asi como librerias que ayudan a que el explorador se vuelve mas que un visor de paginas con bonitos colores, sino que se convierta en cliente de sistemas informaticos que apoyan a los objetivos de la empresa desde que cualquier lugar del mundo y desde cualquier sistema operativo e incluso desde cualquier dispositivo movil que tenga un explorador web... interesante no?.

Ventajas PHP5

- Facil y rapido de instalar.

- Automaticamente se configuran las opciones basicas, es decir te lo deja listo para programar.

- las aplicaciones contruidas con PHP son extremadamente ligeras

- Es el mejor medio educativo para dar los primeros pasos en POO y en el desarrollo web

- Hay full informacion en internet sobre el lenguaje como la pagina (http://www.phpclasses.org)

- Existen lilbrerias desarrolladas en PHP que permiten hacer cualquier cosa, hasta reconocimeinto de caracteres utilizando inteligencia artificial con redes competitivas.

- Tiene IDE's bastante buenos y robustos, como PHP designer.

- Obviamente es de uso Libre

Desventajas PHP5

- No existe un framework amigable para PHP (Desde mi punto de vista), he probado symphony , P4A , kumbia y todos ellos no tienen una interfaz grafica que te guie .

- Para agregarle funciones avanzadas como extensiones te va llevar lago de tiempo hasta investigar y editar los arhcivos de configuracion.

- Los IDE's no son integrados a un framework.

- EL desarrollo en PHP puede llegar hacer largo y complicado cuando utilizas arquitectura MVC con POO, es decir cuando haces desarrollo empresarial

- las configuraciones de seguridad en apache estan bajo tu total administracion, la mayoria de las instaladores de PHP y apache tipo wamp, xamp, y appserver, vienen seteados con seguridad baja, por lo que si haces un desarrollo para una empresa debes tomar en cuenta que necesitas tiemo para afinar la seguridad de tu servidor web.

- El sitio de PHP no brinda mayor ayuda, sobre el lenguaje, desde mi punto de vista suponen que eres experto en linux, por que aquellos pasos claves y basicos no te los explican.

- No tiene un debuger facil de implementar lo cual es escencial para un desarrollador, en mi humilde experiencia se que existen ,pero nunca he logrado activarlos son muy complicados,
insisto desde mi punto de vista.

- El codigo esta a la vista del cualquier perosna con acceso al servidor, por lo que te pueden meter mano en el codigo, e incluso obtener las claves de la acceso a la base de datos, todo eso tu lo tienes que controlar.

-La conexion a base de datos con my SQL es un juego de niños, pero si te toca interatuar con otras bases como informix u oracle si tendras que pasrte algunos dias investigado sobre el tema


Ventajas ASP.NET con c#

- Tiene un framework poderoso, facil de usar y super amigable.

- Su IDE esta integrado al farmework

- El debuger se configura y activa automaticamente, es decir despues de la instalacion esta listo para ser utilizado.

- Lo recomiendo cuando se desee construir un sistema web complicado con muchos modulos ya que te va hacer la vida mas facil al contruirlo y al dar mantenimiento.

- Te permite aplciar arquitectura MVC sin complicaciones.

- Su mantenimiento es claro no te pierdes en el codigo.

- Si lo instalas con vs Studio tendras un sin numero de librerias para utilizar en tu aplicacion, solo te relajas y construyes tu aplicacion web.

- Si deseas agregar funcionalidades adicionales a tu web, es cuestion de buscar las librerias en internet las encuentras en muchos sitios o tambien puedes buscar en la pagina de microsoft, y claro por ser microsoft vienen con sus wizards y ejemplos ( de nuevo te relajas y sigues construyendo tu sistema web)

- puedes compilar tu codigo delicado como dll's, es decir el Modelo y el controlador de tu sistema web, asi estas seguro que no sera legible por nadie mas, y solo tu vista queda legible.

- Si instalas asp.net con vs Studio adicionalmente tienes la posibilidad de crear proyectos para equipos mobiles con controles especificos para estos dispositivos, puedes crear webservices que pueden ser consumidos por cualquier plataforma incluso php.

- Los controles web vienen con templates modificables

-Al publicar tu aplicacion con el IIS por default el sito queda protegido puedo asegurar que es asi desde el framewor 2.0, incluso cuando hay errores en el runtime el servidor el envia al usuario una pagina de error estandard, es decir no le muestra el detalle de la exepcion, mientras que si navegas desde el servidor te dejara ver el error que provoco la caida de la aplicacion.

- Desde vs2005 puedes usar tecnologia AJAX solo arrastras y continuas construyendo tu aplicacion web

- Tienes la posibilidad de publicar tu sitio web generando un proyecto de instalacion web, esto le entregas al adminsitrador y con dos clics la aplicacion se instala donde debe estar, o puedes tambien publicar tu sitio desde el mismo visual studio seleccionando donde esta tu IIS en la red y el resto lo hace microsoft por ti.

-Puedes conectarte a cualquier base de datos con la misma facilidad, solo necesitas el driver del database y utilizar un libreria ODBC que viene por defecto con framework 2.0 en adelante.

Desventajas ASP.NET

- Claro como todo en la vida tanta maravilla tiene un precio, ASP.NET al venir con visual studio profesional tiene un precio, la licencia que activa al visual studio. lo bueno es que de ahi en adelante no le debes nada mas microsoft y puedes hacer las aplicaciones que quieras y distribuir a los clientes que desees sin ningun pago ni restriccion.

Hay tambien versiones de ASP.NET libres las puedes encontrar en http://www.asp.net/downloads/essential/, las cuales talvez no tengan todas las cosas que he descrito pero si la gran mayoria, incluso hay visual studio libre si deseas profundizar en entorno .NET.

- Para publicar tu sitio debes teber un servidor windows habilitado el IIS, debes pagar por la licencia del servidor windows pero no por IIS ni por los clientes que se contecten a tu web.

- No lo recomiendo para personas que estan dando sus primeros pasos en aplicaciones web, ya que al ser tan dinamico y facil de utilizar, no te permitira ver mas alla de lo evidente (sono como a leon O)y no tendras un conocimiento web solido lo cual te puede evitar de muchos dolores de cabeza cuando se presenten fallas en la aplicacion o en la contruccion de tu sistema web.

-Los sitios ocupan mas espacio en disco

Conclusiones:

En conclusion PHP5 como lo dije antes es un lenguaje poderoso con mucho futuro pero me parece que esta huerfano, la empresa que lo creo no le da la importancia que tiene, prueba de eso es el framework Zend es el mas complicado de utilizar y el menos amigable,y es creado por la casa de PHP, tambien es verdad que hay muy buenos intentos llenos de ganas y valentia para sacar adelante a PHP pero vienen de comunidades que obiamente no tienen los recursos como para desarrollar un "Visual Studio" para PHP, lo cual hace que pierda terreno frente a ASP.net, por lo tanto es logico que si vas a desarrollar una aplicacion web empresarial, desde mi punto de vista y por las horas de vuelo que llevo en le area debes utilizar ASP.net con C#, ahora si deseas desarrollar una aplicacion que no es complicada o si deseas aprender a desarrollar aplicaciones web como se debe, utiliza PHP5, pero sin ningun framework es mi consejo, solo asi te daras cuenta que hay atras de un framework y valoraras las herramientas que dispones para hacer tu aplicacion como javascript , CSS, el viejo html, y las utilizaras mejor cuando utilices un framework como el de ASP.net ya que en el fondo siguen utilizando la mismas herramientas.

domingo, 4 de octubre de 2009

VALE LA PENA PROTEGER ESPECIES ANIMALES

Hoy pasaron por la TV un documental del grupo Tierra, me dejo haciendo algunas reflexiones y talvez llegue un poco a comprender porque hay poblaciones donde se matan especies para fines comerciales, como todos sabemos hay muchas especies que estan en peligro de extinsion ya sea porque son cazadas descontroladamente o porque su medio ambiente esta desapareciendo, en cualquiera de estos casos hemos escuchado noticias que nos dejan el corazon chiquito al enterarnos de este comportamiento incrompresible de los humanos contra los animales, seguramente hemos pensado como es posible que una persona albergue tanta maldad tanta inconsiencia frente a una inminente desapracicion de especies que son importanes para el ecosistema y por ende para nuestra futura existencia... bueno hasta aqui creo que son palabras que todos hemos escuchado o sentido en algun momento, pero el reportaje que vi hoy justamente se hacia la siguiente pregunta y fue lo que cambio de cierta manera mi punto de vista frente a estas noticias tan desagradables, ¿Es dable gastar dinero protegiendo especies animales en peligro de existencion habieno tanta pobreza en el mundo?, se exponian casos de la india donde hay personas que mueren de inanicion, y en este pais se queria implementar un plan de proteccion animal con dinero del estado, y comentaba el experto en cuidado animal que es dificil hacer comprender a la autoridades la importancia de la proteccion animal y peor aun lograr que den parte de su presupuesto para el cuidado animal, incluso se han hecho campañas en los poblados donde se han dado estos hechos lamentables y la realidad que sea ha encontrado es que las personas lo hacen por que no tienen otra forma de llevar alimento a sus casas, explicarles de un futuro terrible para la humanidad sin animales queda sin piso pues tienen que pensar en el presente de sus familias..... y aqui hacian una reflexion mas tenaz, la conservacion de las especies en extinsion es un lujo de los paisas ricos de occiendente que no entiende la realidad de paises del tercer mundo?.... wow no.... me dejo sin palabras... me puse en un momento en los zapatos de esas personas, y hablo de los dueños de pequenas parcelas que después de todo un año de trabajo duro de toda la familia esperan recibir dinero para poder alimentarse, ahora si esa es mi realidad ... que haria yo si mi cosecha o mi ganado es asechado por alguna especie en exticion? o por mi pobreza es mas facil quemar la paja seca para poder sembrar mi cultivo mas rapido sin importarme que el habitat se alguna especie sea destrudido como sucede con el jabali enano....que haria para poder llevar un plato de comida a mis hijos.... depues de todo las personas que hacen estas cosas ya no parecen tan malvadas....lo hacen a veces por amor a sus familias pero que hacer al respecto cierto.... los cientificos respindieron a la pregunta que plantee al principio indicando que si vale la pena todo el dinero que pueda invertiri en preservar una especie animal en extinsion, pero que esta conservacion debe venir de la mano con el compromiso de los gobiernos de apoyar a los grupos mas vulnerables invirtiendo menos dinero en armas y en la guerra y mas en su poblacion y en el cuidado de sus especies animales.

Como conclusion puedo decir que no es bueno señalar o criticar el acto de una persona si no se tiene el conocimiento de todas las variables que entran en la ecuacion, y claro si estamos en posibilidad de tomar la decision de suspender alguna actividad que daña al planeta hagamoslo y si esta en nuestras manos dar soluciones alternativas de sustento economico ecologico a las pobalciones rurales alejadas de las grandes cuidades hagamoslo, cualquier cosa que hagamos hoy en pro del planeta sera para el beneficio de nuestras futuras generaciones.

viernes, 2 de octubre de 2009

INSTALANDO FIREWALL CON REDHAT E 5

Actualmente estoy empezando en mi trabajo un proyecto de instalacion de un firewall, gracias a nuestro super administrado de red elegimos red hat, se preguntan cual es el problema.. cierto, pues el problema es que soy nuevo en linux, he realizado algunos experimentos en la U con linux pero nada mas, esta es la primera vez que pondre un servidor linux en produccion y para colmo red hat, no conozco nada de este sistema operativo y he esuchado que es complejo su uso, todos los trabajos realizados anteriormente por mi persona en linux los he hecho con ubuntu me parece un buen sistema operativo y un buen intento de parecer un windows pero falta mucho para que lo llegue a reemplazar los usuarios desktop necesitamos algo mas facil de usar y productivo, es decir no tener que entrar a la famosa pantallita negra para arreglar el sonido del pc o esas cosas que hacen que linux sea para genios informaticos.

Bueno volviendo al tema el comienzo de la instalacion ha sido un poco traumatica, despues de luhcar con la configuracion RAID y con las particiones he logrado instalar el sistema operativo, pero cuando estaba a punto de cantar vicoria el sistema por momentos se volvia inestable, despues de pasar todo el dia de hoy revisando discos duros, particiones y configuraciones de RAID en linux he dado con la respuesta de la inestabilidad, tan solo tenia que acudir a la pagina del fabricante pero como buen informatico los manuales e intrucciones de instalacion se los utiliza cuando ya no sabemos que mas hacer, por que sera que somos mal llevados lo logico seria empezar por ahi no?, bueno resulta que el SERVIDOR DELL OPTIPLEX 7200 no es compatible con linux, segun lapagina de DELL el hardware solo es compatible con windows.... lo se malas noticias y mas aun se que se preguntan quien compro el equipo sin verificar eso... bueno gracias a Dios no fui yo, fue el encargado de infraestructura que cometio el error despues de una charla comprensiva con mi jefe y el super adminsitrador y su famosa frase yo te dije que revises eso primero, he aprendido mi primera leccion en linux...windows manda en compatibilidad con harware y si vas a instalar linux verifica que la maquina sea compatible.