• This is slide 1 description. Go to Edit HTML of your blogger blog. Find these sentences. You can replace these sentences with your own words.
  • This is slide 2 description. Go to Edit HTML of your blogger blog. Find these sentences. You can replace these sentences with your own words.
  • This is slide 3 description. Go to Edit HTML of your blogger blog. Find these sentences. You can replace these sentences with your own words.
  • This is slide 4 description. Go to Edit HTML of your blogger blog. Find these sentences. You can replace these sentences with your own words.
  • This is slide 5 description. Go to Edit HTML of your blogger blog. Find these sentences. You can replace these sentences with your own words.

viernes, 27 de julio de 2007

jueves, 26 de julio de 2007

Como Validar Formularios en DreamWeaver

Crear formularios
Puedes crear formularios a través del menú Insertar, opción Formulario. Una vez creado un formulario, este aparecerá en la ventana de Dreamweaver como un recuadro formado por líneas rojas discontinuas, similar al de la imagen de siguiente.



Dentro de dicho formulario se podrán insertar los elementos de formulario, que como ya sabes puedes insertarlos a través del menú Insertar, opción Objetos de formulario.

Es muy recomendable utilizar tablas para organizar los elementos de los formularios. Utilizando tablas se consigue una mejor distribución de los elementos del formulario, lo que facilita su comprensión y mejora su apariencia.

Validar formularios
La validación de formularios sirve para hacer que Javascript valide el formulario antes de que se envie el formulario, para que en el caso de que hayan campos del formulario que sean obligatorios, tengan que rellenarse antes de poder enviarse.



Para validar un formulario hay que abrir el panel de Comportamientos. Este panel se puede abrir a través del menú Ventana, opción Comportamientos, o pulsando Mayús+F3.



En el este panel hay que desplegar el botón pulsando sobre él, y en Mostrar eventos para elegir una versión de las actuales de entre la lista de navegadores. Por ejemplo, puedes elegir el navegador IE 6.0. Después de esto, hay que volver a desplegar el botón , y pulsar sobre la opción Validar formulario.



Entonces se mostrará una ventana como la siguiente, donde aparecen todos los elementos del formulario.



Puede seleccionarse uno por uno cada elemento del formulario, pudiendo especificar los requisitos que ha de cumplir. Puede establecerse como campo a rellenar obligatoriamente, y si su contenido ha de ser numérico, una dirección de correo electrónico, ...

Crear plantillas en DreamWeaver

Cada vez que deseamos crear un sitio web, tenemos que tener muy en cuenta que las páginas deben seguir un formato uniforme. La mayoría de nosotros solemos hacer copias de los documentos ya creados, y trabajar sobre estas copias, modificando simplemente su contenido. Esta es la forma más sencilla de tener páginas con una estructura basada en la estructura de otras ya creadas previamente.

Las plantillas son una especie de copia de la página en la que van a estar basadas el resto de páginas del sitio web, pero que incluyen la posibilidad de establecer unas zonas editables y otras zonas que serán fijas, que no podrán ser modificadas. No es posible modificar las propiedades de una página que esta basada en una plantilla, a excepción del título. Cuando se desea que existan páginas con, por ejemplo, diferente color de fondo, es necesario crear plantillas diferentes con los distintos colores, y basar las páginas en una u otra plantilla, según el color de fondo que se desee para cada una. Cuando se modifica el diseño de una plantilla, se pueden actualizan todas las páginas basadas en ella. Las plantillas son archivos con la extensión DWT que se guardan en el sitio web, dentro de una carpeta llamada Templates.

Crear plantillas

Las plantillas pueden crearse desde cero, o a partir de una página ya existente. Una forma de crear una plantilla desde cero es a través del panel Activos.

El panel Activos se puede abrir a través del menú Ventana, opción Activos.También pulsando F11 o sobre el botón del lanzador. Una vez abierto el panel hay que seleccionar el botón , para poder trabajar con las plantillas. Los botones inferiores del panel Activos son similares a los del panel Estilos CSS . El único botón diferente es el primero, que en este caso sirve para actualizar la lista, el resto permiten crear una nueva plantilla, editar una plantilla seleccionada en la lista, o eliminarla. Para crear una nueva plantilla hay que pulsar sobre el botón que tiene un + (si este botón no está activado, pulsa con el botón derecho del ratón y elige Nueva Plantilla). Cuando se pulsa ese botón aparece un nuevo documento en la lista de plantillas, al que es posible cambiarle el Nombre pulsando previamente sobre él. Las plantillas se guardan en el sitio web actual, dentro de la carpeta Templates, que se crea automáticamente. Para crear una plantilla a partir de un archivo existente es necesario abrir dicho archivo, y después guardarlo como plantilla a través del menú Archivo, opción Guardar como plantilla.

miércoles, 25 de julio de 2007

Haciendo ssh más Seguro

SSH (Secure SHell), www.openssh.com, es la herramienta de conexión segura mas usada en el mundo Linux, no hay nada como ssh para conectarse a servidores remotos Linux, ya sea desde Internet o dentro de una Lan. Todo el tráfico se encripta de punto a punto haciendo la conexión sumamente segura. Pero aun asi siempre hay riesgos en el salvaje Internet, hackers black hat, script kiddies, crackers, mafias cibernéticas, etc. que en cuanto detecten un servidor ssh trataron de atacarlo por todos los medios posibles. Además, dentro de una LAN relativamente grande también se corren riesgos como el famoso tipo de ataque "man in the middle"

Un archivo de configuración ssh mas seguro
Pasemos entonces a modificar el archivo de configuración del servidor ssh:

/etc/ssh/sshd_config (puede variar en algunas distros)


Tiene varias líneas de configuración, pero para este documento solo nos concentraremos en las que harán nuestro servidor ssh mas seguro, asi que listaré a continuación como deberán quedar estas variables y después las explicaré una por una cual es su función.

Port 432 (o el que se quiera menor a 1024)
Protocol 2
LoginGraceTime 30
PermitRootLogin no
MaxAuthTries 2
MaxStartups 3
AllowUsers sergio o también:
AllowUsers sergio analuisa@10.0.1.100


Port: Por default el demonio ssh funciona en el puerto 22, y precisamente muchos scripts de ataques están dirigidos a este puerto, el cambiar de puerto no garantiza que el servicio ya no será localizable, de hecho con herramientas como nmap o amap es sumamente fácil descubrir que un servicio ssh esta a la escucha en otro puerto distinto al 22, pero al menos no será localizable por varios scripts que de manera automática escanean redes y en cuanto a ssh se enfocan solo al puerto 22.

Protocol 2: Hay dos versiones de ssh en cuanto a su protocolo de comunicación, la versión 1 y la versión 2. La 1 esta en desuso pero todavía se incluye por compatibilidad, tiene varias vulnerabilidades conocidas y su uso no es ya recomendable. Un error frecuente es dejar al demoinio ssh que permita el uso de las dos versiones (Protocol 2,1). Para evitar el uso del protocolo 1 y sus posibles ataques a este, basta con indicar en esta línea que solo admita comunicaciones de ssh basadas en el protocolo 2.

LoginGraceTime 30: El número indica la cantidad de segundos en que la pantalla de login estará disponible para que el usuario capture su nombre de usuario y contraseña, si no lo hace el login se cerrará, evitando así dejar por tiempo indeterminado pantallas de login sin que nadie las use, o peor aun, que alguien este intentando mediante un script varias veces el adivinar un usuario y contraseña. Aqui conviene identificar en nuestros usuarios el tiempo promedio que tardan en ingresar su usuario y contraseña y darles unos cuantos segundos más de margen por los usuarios lentos para que ingresen sus credenciales. Si somos el único usuario del sistema considero que con 20 o 30 segundos es mas que suficiente.

PermitRootLogin no: Esta es quizás la más importante directiva de seguridad que podemos indicar para fortalecer nuestro servidor ssh. Prácticamente todos los sistemas Linux y Unix crean por default al usuario root, entonces sabemos que existe!!!. Muchos ataques de fuerza bruta se concentran en atacar al usuario root con la esperanza de que tenga una contraseña débil (¡que es mas común de lo que pensamos!).

Entonces si ya sabemos una parte de la ecuación (root) solo será cuestión de tiempo para que alguien con paciencia y suerte vulnere el sistema. Al poner en 'no' la variable PermitRootLogin el usuario root no tendrá permiso de acceder mediante ssh y por lo tanto cualquier intento de ataque directo a root será inútil. Con esto siempre tendremos que ingresar como un usuario normal y ya estando adentro entonces mediante su o sudo podremos usar funciones de root, no problem. Ahora bien, para el nombre de login del usuario normal te recomiendo que también NO uses palabras conocidas como: admin, manager, juan, pedro, sistemas, etc. Usa algo mas dífcil de adivinar como jgon (de juan gonzález) o sispat (de sistemas pato) o mejor aun también puedes combinar algún guión bajo o mayúsculas, minúsculas y números en la cuenta de login. Con lo anterior el hacker tendrá que atinarle o crackear tanto al nombre del usuario como su contraseña.

MaxAuthTries 2: El número indica la cantidad de veces que podemos equivocarnos en ingresar el usuario y/o contraseña, en este caso después de dos intentos, se perderá o cerrará la conexión. Claro, es totalmente posible volver a intentarlo, pero como son dos intentos por vez, evitaremos ataques basados en la persistencia de la conexión, como se perderá al tercer intento de conexión, el ataque cesará.

MaxStartups 3: El número indica la cantidad de pantallas de login, o cantidad de conexiones simultaneas de login que permitirá el sshd por ip que intente conectarse. Hay ataques muy efectivos que dividen el ataque en decenas y puede ser que en cientos (si el sistema atacado lo permite) de conexiones de login. Es decir, el ataque divide en una gran cantidad de logins los intentos por ingresar, aumentando sus posibilidades de más rapidamente adivinar al usuario y contraseña. Con esta directiva limitamos a tan solo 3 pantallas de login. Que quede claro, una vez logueados en el sistema, es posible tener mas de 3 terminales de ssh, se refiere exclusivamente a pantallas de login.

AllowUsers: En sistemas donde se tiene varios usuarios, quizás existan varios que solo pueden acceder desde la LAN por ejemplo, o quizás solo desde ciertos equipos. O incluso que solo desde su PC puedan trabajar en Linux por lo que no hay razón para que se conecten remotamente via ssh. Con esta directiva podemos indicar los usuarios que pueden ingresar via ssh. Si solo indicamos al usuario:

AllowUsers sergio


El usuario sergio podrá ingresar desde cualquier PC en cualquier lugar, no se está validando el host.
Si se quiere mas seguridad, es posible indicar también el host mediante el símbolo @

AllowUsers sergio@192.168.0.25 (solo desde la IP indicada)
AllowUsers sergio@192.168.0.* (Toda la red indicada)
AllowUsers sergio@*.pato.com analuisa@ventas.pato.com
(sergio desde cualquier equipo del dominio indicado, analuisa solo desde el equipo indicado)


Como puede verse, bastan algunas cuantas directivas o variables bien configuradas en nuestro archivo /etc/ssh/sshd_config para incrementar enormemente la seguridad en este servicio, seguramente no estoy considerando alguna otra variable que también pudiera ser importante para la seguridad de ssh, si es así por favor házmelo saber para incluirla en este documento. Asi como también hay que tener en cuenta que hay variables que permiten el no acceso con contraseñas y sería más bien con certificados o llaves, las posibilidades son extensas y es posible incluso tener varios equipos Linux comunícandose entre si para respaldos, bases de datos, etc. con ssh y certificados de seguridad, evitando intervención humana, consulta la sección de servicios si es lo que buscas en tu empresa.

MD5 y la poca Seguridad en las claves

Uno no es consciente, al menos yo no lo era, de lo fácil que puede resultar descifrar una clave encriptada en MD5 (u otro algoritmo) mediante fuerza bruta.

Un alto porcentaje de los internautas usan contraseñas simples, de 6 a 8 caracteres, compuestas por letras y números (en el mejor de los casos). Si tenemos en cuenta que muchas páginas necesitan registro, es posible que dejemos nuestro hash en manos poco recomendadas. A esto se le une en ocasiones el usar la misma contraseña para todos los servicios: webs inseguras, Paypal, email… En definitiva, si alguien desencripta nuestra contraseña podría jodernos bien.

Ahí van algunas pruebas:

Contraseña: 1542356 (7 dígitos)
Hash (MD5): 5d399a758835f1187a83c73c17f62cb9
Alfabeto: Sólo números
Tiempo: 1,687 segundos

Contraseña: maletin (7 caracteres)
Hash (MD5): 61f419c90c461c3fea7905f50d294969
Alfabeto: Sólo letras minúsculas
Tiempo: 16 minutos y 9 segundos

Contraseña: maletin (7 caracteres)
Hash (MD5): 61f419c90c461c3fea7905f50d294969
Alfabeto: Sólo letras (Minúsculas y Mayúsculas)
Tiempo: 12 horas aprox.

Más claro el agua. Cualquier persona con información comprometida en su PC debería tener una contraseña segura. Es recomendable que tenga más de 8 caracteres, letras mayúsculas y minúsculas, números e incluso algún símbolo especial (%, &, /, =…). También deberíamos descartar palabras existentes y no repetir en demasía las mismas letras o dígitos.

¿Qué es r57shell ?

Proceso : r57shell.php
Alias ID : r57shell v1.23

El fichero r57shell.php esta relacionado con el spyware. Es un serio riesgo de seguridad para tu sistema.
Le recomendamos que elimine esta amenaza de su PC.

Descripcion :
Un medio secreto o no documentado de acceso al sistema de una computadora, o software que utiliza este tipo de medio para introducirse en un sistema. Algunos programas de software tienen una puerta trasera colocada por un programador para permitir el acceso para la resolución de problemas o para cambiar el programa. El software clasificado como "puerta trasera" está diseñado para explotar una vulnerabilidad de un sistema y abrirlo a un futuro acceso por parte de agresores.

Desgargue la herramienta para eliminarlo: FastAntiSpyware (FAS)

Parte de : Backdoor
Proceso de Sistema : No
Aplicacion : No
Proceso en Background : No
Utiliza Red : Yes
Utiliza Internet : Yes
Relacionado con Hardware : No
Virus : No
Trojan / Troyano : No
Spyware : Yes
Adware : No

Inclusiones dinámicas con PHP

He aquí otro modo de realizar inclusiones gracias a PHP cuando tenemos un sitio con mucho contenido o muchas secciones, pues utilizar en estos casos el método que ya hemos explicado puede llegar a ser contraproducente.

Es posible que ya sepamos cómo hacer la tarea de construcción y administración de sitios más fácil gracias al tutorial “Inclusiones con PHP”, que además nos permite obtener URLs del tipo index.php?algo.

Pero cuando tenemos un sitio con mucho contenido o muchas secciones, quizás nos venga mejor el método que explicamos ahora, con el que cada sección del sitio está en un archivo diferente, y todos esos archivos de contenido se encuentran en una carpeta.

Si no estamos familiarizados con cómo incluir archivos en una página utilizando la función PHP include(), es bueno haber leído el tutorial “Inclusiones con PHP” para hacerse una idea.

Comencemos:
Primero, creamos en el directorio o carpeta donde guardamos nuestro sitio un nuevo directorio y lo llamamos “pags” (de “páginas”), o cualquier otro nombre que nos permita identificar dónde están los contenidos, pero eso sí: sin tildes o caracteres especiales. En este nuevo directorio pondremos todos los archivos que queremos incluir. Eso sí, los archivos deben tener la extensión .php.

Luego, decidiremos cuál de nuestros archivos de contenido será el que aparezca por defecto cuando los visitantes accedan a nuestro sitio. Podemos identificarlo con un nombre como “principal.php”, “hola.php” o algo por el estilo.
Conviene advertir que en estos archivos de contenido tendremos el código HTML de lo que se quiere incluir. Las partes que se repiten en todas las páginas (la cabecera y el pie) deben estar en archivos separados y también los incluiremos al principio y al final de cualquier página utilizando la función PHP include.

Ahora construiremos el archivo index.php al que apuntarán los navegadores cada vez que los visitantes accedan a nuestro sitio. Ese archivo debe hallarse en el directorio general: el inmediatamente superior a la carpeta “pags”. En este archivo index.php se encontrará todo el código PHP que necesitamos. No tenemos más que copiar y pegar el código siguiente:


index.php

<?php $pag = basename($_SERVER['QUERY_STRING']);
include('cabecera.inc');

if(!$pag){
include('pags/principal.php');
} else {
if(file_exists('pags/'.$pag.'.php')){
include('pags/'.$pag.'.php');
} else {
echo('¡Esa página no existe!');
}
}
include('pie.inc');
?>


Si nuestros archivos de cabecera, pie y bienvenida tienen nombres diferentes a “cabecera.inc” o “pie.inc”, debemos cambiarlos en el código.

Para finalizar, si no hemos realizado estas tareas desde el servidor, subimos la carpeta “pags” y el archivo index.php, junto con los demás archivos necesarios para el sitio y ya está.
A la hora de abrir cada una de las secciones, que en principio se corresponden con los archivos que queremos incluir, lo haremos del modo siguiente.

Por ejemplo, para abrir el archivo “perlas.php” que se encuentra en pags/perlas.php, el enlace será “index.php?perlas”; se nos mostrará entonces la página completa en la que el contenido hablará sobre perlas. En lugar de poner la nota “¡Esa página no existe!”, podemos incluir un archivo de error 404 personalizado para aquellos casos en los que un visitante intente acceder a archivos que no están en nuestro servidor.

Este código es seguro (al menos aún no se han tenido noticias de que no lo sea): no se podrá incluir nada que no que no esté en el directorio “pags” o que no sean los archivos de cabecera o pie.

( WHM o Panel ) Al tratar de parkear un dominio me sale Sorry, a DNS entry for domino.com already exists, please delete it first

Este error ocurre cuando tratas de parkear un dominio que ya posee una zona DNS en el servidor, verifica que el dominio no este ya apuntado a otra cuenta o que este dominio pertenezca a una cuenta de dominio, otra razon puede ser que alguna vez pertenecio a una cuenta de cliente y fue eliminado con la opcion de Keep DNS zone.

Lo primero que debes hacer es verificar que la zona DNS no este creada.

1. Entra al panel WHM

2. Ve al menu de DNS Functions

3. List Parked Domains

4. Busca el dominio que deseas parkear si esta ya apuntado a un dominio y deseas apuntarlo a otro deberas presionar sobre el link UnPark.

5. Si no esta en esta lista ve a Delete a DNS Zone

6. Aparecera una lista con las Zonas DNS que estan controladas por tu WHM. Busca la zona DNS del dominio que deseas apuntar si esta zona esta, y estas seguro de que no pertenece a ninguna cuenta de tus clientes haz click sobre la Zona DNS que deseas eliminar y presiona sobre el Boton Delete. Una vez realizado esto trata de parkearlo otra vez.

viernes, 6 de julio de 2007

Starcraft 2: 10 años después


Blizzard Entertainment, ha anunciado la pronta salida de la secuela de uno de sus juegos más esperados: Starcraft. Este clásico de los juegos de estrategia significó toda una revolución en los juegos de video, desde su salida en la segunda mitad de los años noventa y cuenta con una inmensa legión de seguidores.

Así que pronto podremos tener de nuevo en nuestras PC’s las épicas batallas entre Protoss, Zergs y Terrans por el control del universo. Así como el esperado modo de juego en línea gracias al cual podremos enfrentar adversarios de todas partes del mundo.

Esta nueva entrega contará con mejoras para muchas de las unidades ya conocidas, y un poderoso motor gráfico en 3D que soporta el rápido y explosivo combate entre los enormes ejércitos.

Entre los puntos destacados de StarCraft II se incluyen:
• Competitivo y equilibrado combate estratégico en tiempo real, que recupera y mejora la magia del juego original.
• Nuevas unidades y mecánica de juego, diferentes para las razas Protoss, Terran y Zerg.
• Un motor gráfico 3D totalmente nuevo que soporta el trepidante ritmo de juego, las grandes unidades, y los enormes ejércitos.
• Una innovadora campaña para un solo jugador que continúa la épica historia de StarCraft.
• Completo soporte multijugador a través de una versión completamente renovada de Battle.net.
• Un poderoso editor de mapas, que pone en manos de los jugadores las mismas herramientas utilizadas por los diseñadores del juego.

Si deseas puedes ver el trailer de Starcraft 2:

Trailer Oficial

O entrar a la excelente web oficial:

Starcraft 2