¿Puerto 25 bloqueado?: Usa otro y redirecciónalo fácilmente con IPTABLES

Seguridad, Servidores, Shell, Unix Sin comentarios »

Mi ISP tuvo hace meses la feliz idea de bloquearnos el puerto 25 por “motivos de seguridad” y para evitar el spam, debido a ésto, ya no puedo enviar correos por SMTP (recordemos que por defecto el smtp se configura el puerto 25).

La solución es muy sencilla si tenemos IPTABLES, mediante 2 comandos vamos a configurar nuestro servidor para que permita acceder al SMTP a través del puerto 2525 y 25 de forma simultánea, como siempre, hemos usado Centos 5 para el ejemplo:

1. Redireccionamos todo el tráfico entrante del puerto 2525 al puerto 25.
iptables -t nat -A PREROUTING -p tcp --dport 2525 -i eth0 -j REDIRECT --to-ports 25

2(a). Almacenamos las reglas de iptables para hacerlas persistentes.
iptables-save > /etc/sysconfig/iptables

2(b). ¿Usas debian?: Revisa la siguiente url para saber cómo guardar las reglas de iptables
Getting IPTables to survive a reboot

Una vez hecho ésto, nuestro servidor ya está listo para recibir conexiones SMTP en el puerto 2525, tan sólo debemos modificar la configuración de nuestro cliente de correo para que use éste puerto en lugar del puerto por defecto (25).

Altura automática de un iframe en función de su contenido.

Javascript, Jquery, Programación Sin comentarios »

Ya van varias veces que necesito que un iframe se escale automáticamente a la altura de la página que contiene, sobre todo en interfaces de administración. Cuando surgen estas dudas lo mejor es “googlear” en busca de respuestas, pero en éste caso, las primeras 10 páginas que he revisado contienen información errónea, que da errores en uno o varios navegadores.

Despues de varios intentos he dado con un código que funciona tanto en IE, como en Firefox como en Opera y/o Safari. (Requiere Jquery)
Continuar leyendo »

Cálculo de proporcionalidad de una imagen (aspect ratio).

General, PHP 3 comentarios »

aspect_ratioHace tiempo me encontré en la necesidad de calcular el índice de proporcionalidad de imágenes que eran subidas por los usuarios a través de un formulario web. A continuación explicaré en qué consiste éste índice, qué algoritmo debe aplicarse y cómo realizarlo en php. Pido clemencia en caso de cometer algun error garrafal, no soy matemático :D

1. Introducción

El índice de proporcionalidad (traducción no literal del inglés “aspect ratio“),  es el resultado de la división entre el ancho y el alto de una imagen, y nos indica la relación que hay entre ambas dimensiones.
Continuar leyendo »

Evita los problemas de rendimiento modelando correctamente tu BBDD

Bases de datos, Programación, Servidores Sin comentarios »

La creación y gestión de modelos de datos es una parte fundamental de un arquitecto/administrador de bbdd, el cual dispone de los conocimientos necesarios para desempeñar ésta tarea. Sin embargo, a pequeña escala ésta función suele estar desempeñada por los propios programadores, que en muchos casos tienden a restar importancia al modelado de datos y su tarea se reduce a crear algo que “funcione”.

Son muchos los casos en los que nos encontramos con aplicaciones y sistemas que se encuentran en producción con graves problemas de rendimiento debido a una mala planificación o mal diseño de su base de datos.

Continuar leyendo »

Esquema de base de datos de Wikipedia

Bases de datos Sin comentarios »

Leyendo el Blog de Luauf me encontré con éste interesante post en el que ha publicado el esquema del modelo de datos de la bbdd de la wikipedia.

Existen multitud de libros y recursos al respecto, pero si hay tiempo probablemente más adelante cree una serie de tutoriales y guías sobre el modelado de datos. Para los impacientes, aprovecho para poner aquí una web en la que podréis obtener diagramas de modelos de datos de una gran variedad de casos (videoclubs, hospitales, gestion de empleados, catálogo de producto, etc). de forma gratuita. Es uno de los mejores recursos que he encontrado al respecto:
http://www.databaseanswers.org/data_models/index.htm

Tutorial Jquery - Creando un debugger de javascript avanzado

Javascript, Jquery, Programación 2 comentarios »

debugger2

Anteriormente comentamos como crear un sencillo debugger de javascript con Jquery. En ésta ocasión, y partiendo de esa base, crearemos un script para realizar debug de javascript más avanzado siguiendo los mismos principios: que sólo sea necesario incluir el script para habilitar el debugger, que éste nos permita seguir la evolución en tiempo real en la misma ventana de trabajo, y que pueda ser minimizado para que no nos moleste cuando no lo necesitemos.

Entre las características adicionales que he agregado destaca la implementación de un sistema de logging, que nos permitirá enviar información al log de forma muy sencilla al log a mediante la función jsdebugLog(’Texto a enviar al log’);, el debugger se encargará automáticamente de rotar el log para mostrarnos sólo los últimos eventos.

Adicionalmente, he incluido un interesante pero sencillo sistema para sugerir nombres de variables, funciones y objetos. En función de lo que escribamos en el campo de expresiones, se nos sugerirarn posibles valores que podemos añadir al evaluador de expresiones con tan solo hacer click.

Por último, se han incluido botones para poder vaciar tanto el evaluador de expresiones como el log y se han retocado un poco los estilos.

Continuar leyendo »

Tutorial Jquery - Creando un sencillo debugger de javascript

Javascript, Jquery, Programación Sin comentarios »

debugger Me considero un fanático de Jquery, que no es más que un conjunto de librerías de javascript que nos permiten crear aplicaciones dinámicas de forma extremadamente sencilla, además nos libera de la tediosa tarea de tener que utilizar diferentes funciones y métodos en función del navegador. Existen otras librerias (DOJO, Yahoo, Prototype, Moo-tools …), pero para mi Jquery es la mejor de todas con diferencia.

Por ello, he decidido ir creando una serie de tutoriales sobre algunos scripts que voy preparando y que creo que os pueden ser de mucha utilidad. Los tutoriales serán de nivel medio, por lo que no entraré a comentar temas básicos, pero si intentaré explicar el funcionamiento, si tenéis alguna duda, comentadlo y os intentaré echar una mano.

Continuar leyendo »

FTP recursivo, ¿cómo descargar un ftp completo desde linea de comandos?

Backup, General, Servidores, Shell, Unix Sin comentarios »

En determinadas ocasiones surge la necesidad de descargar archivos de un ftp de forma recursiva en un servidor o en nuestro pc, y no tenemos un cliente de ftp a mano. La primera opción sería conectarse por ftp y usar mget, pero ésto no nos sirve porque no funciona recursivamente. Algunos servidores de ftp permiten el comando recursive mget, pero son los menos.

Entonces, ¿qué hacemos si queremos descargar en nuestro equipo o en nuestro servidor un ftp completo y no contamos con un cliente que no sea el típico ftp de toda la vida?.

La solución está en nuestro queridisimo WGET.
Continuar leyendo »

Instalación y configuración de Lighttpd

General, Servidores, Unix 5 comentarios »

instalar_lighttpd

Lighttpd es un servidor web open source extremadamente rápido y eficiente, y, durante años, ha demostrado ser el mejor aliado de las webs con alto tráfico y problemas de rendimiento. Sobre todo, destaca por su excelente manejo de la memoria, incluso en servidores con 512MB funcionará de maravilla.

Al igual que apache, está compuesto por diversos módulos que podemos activar a nuestro antojo como CGI, Auth, SSI, Rewrite, etc…

En mi caso, si bien lighttpd puede sustituir por completo a apache, llevo utilizándolo durante varios años para servir exclusivamente archivos estáticos (htmls, imágenes, javascript, videos, etc.) con 100% de fiabilidadad.

Disponer de un servidor web independiente para los archivos estáticos es la mejor forma de liberar de esa pesada carga de trabajo a nuestro queridisimo apache, para que éste se encargue en exclusiva de procesar los archivos dinámicos (las páginas de la web).

En caso de que no dispongamos de una máquina en exclusiva para instalar Lighttpd, y aunque no es una configuración muy conocida o muy utilizada, es perfectamente factible el utilizar un sólo servidor físico para ambos servicios (apache y lighttpd), además de una forma muy sencilla, el único requisito es que ambos servicios no usen la misma ip, o el mismo puerto para evitar conflictos (ojo con esto, ya que tanto apache como lighttpd por defecto escuchan en el puerto 80 todas las ips disponibles, por tanto habrá que configurar ambos para que sólo escuchen en una o varias ips, y que éstas nunca coincidan). Ésta configuración es especialmente útil para webs que sirven muchos archivos estáticos, imágenes, animaciones, javascript, etc… Permitiéndonos maximizar el rendimiento de nuestra web sin gastos adicionales en hardware.

A continuación compilaremos, instalaremos y realizaremos la configuración de Lighttpd.
Continuar leyendo »

Configurar un gateway NAT básico en linux con iptables

Bases de datos, Programación, Seguridad, Servidores, Unix 4 comentarios »

Esquema de configuración de un Gateway NAT

Es probable que en nuestro grupo de servidores tengamos uno o varios que por seguridad se encuentren en un segmento de red aislado, inaccesible desde internet (es decir, sólo con conexión a la LAN), por lo que en caso de necesitar realizar alguna actualización o instalación de software en dichas máquinas, nos encontraremos con el problema de no poder descargar nada de internet.

En este y otros casos similares, una solución rápida puede ser configurar uno de los servidores web, o cualquier máquina que tenga acceso a la LAN y también a internet a través de 2 interfaces distintos de red, para que pueda actuar también como pasarela de acceso a internet para resto de máquinas de la LAN.

A continuación configuraremos la máquina que tiene acceso a internet como gateway NAT para que enrute a las máquinas que se encuentran dentro de la LAN hacia internet.
Continuar leyendo »

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Iniciar sesión