En mi largo andar por este camino del desarrollo y a ultimas fechas en el mundo LAMP me he dado cuenta que muchos de los que empezamos a programar en PHP y MySQL lo hacemos desde Windows. Lo que me sorprendio es que hay algunos aventureros que dejan esa instalacion en Windows o no cambian a lo seguro porque le tienen 'miedo' a Linux y dejan esta implementacion para su sistema en produccion . Por esta razon me di a la tarea de buscar algo que les pudiera ayudar a asegurar sus instalaciones y confiar un poco mas en sus soluciones WAMP. A continuacion una serie de sugerencias para tal fin.

Paso 1. Instala en una versión reciente de Windows basada en tecnología NT.
Cabe mencionar que mi recomendación personal (y seguro de la mayoría de los lectores) es utilizar Linux, pero si de plano esto no es posible es imperativo que el servidor se instale en Winbugs XP, 2000 o 2003 Server; estas ya cuentan con políticas de seguridad mas desarrolladas y son mas estables que 95, 98 o ME (recuerdas las pantallas azules), por supuesto hay que asegurarse de tener los parches y Service's Pack's mas recientes.

Paso 2. Utiliza el sistema de archivos NTFS.
NTFS es un sistema de archivos mucho mas seguro que su predecesor FAT32, entre otras cosas soporta control de accesos, archivos de mayor tamaño y encripcion de datos. Bubsca mas información al respecto http://www.ntfs.com/ntfs_vs_fat.htm para mayor información acerca de los beneficios de utilizar este sistema.

Paso 3: Procura que este alojado en un servidor destinado solo para ese fin.
Cualquier servidor de base de datos en producción debería estar corriendo en un equipo dedicado única y exclusivamente para ese fin, claro que esto no aplica si estas haciendo prueba o apenas aprendiendo. Todos los servicios que no sean requeridos deben estar deshabilitados y ninguna otra aplicación debe estar ejecutándose ahí mismo. Esto no solo incrementa la estabilidad del servidor de Base de Datos, también deja libres los recursos del sistema para que atiendan por completo a MySQL y previene que otras aplicaciones puedan causar riesgos de seguridad. Tampoco es recomendable tener varias cuentas de usuario 'mortal' con la cuenta de administrador es suficiente.

Paso 4: Descarga e instala la mas reciente versión para producción de MySQL.
Al momento de escribir/traducir este articulo la última versión en producción de MySQL es la 4.1.14; al utilizar la versión mas nueva nos aseguramos de que tenemos el producto mas estable y seguro posible. Si eres de los aventureros/as que le gusta utilizar las versiones aun no liberadas para probarlas, pues adelante pero nunca pongas en producción una versión beta, no es recomendable ya que no todos los errores o posibles huecos de seguridad han sido completamente corregidos, lo cual obviamente incrementa la posibilidad de ataques maliciosos e inestabilidad en tu servidor.

Paso 5: Utiliza cuentas de acceso seguras.
Asegúrate de que root así como todos los usuarios de la base de datos tengan contraseña, y no solo la clasica 123, abc, admin o todas esas contraseñas que tú y yo sabemos que son demasiado obvias. La clave debe tener por lo menos seis caracteres y debe contener letras (mayúsculas y minúsculas), número y símbolos y no debe estar contenida en un diccionario. Una buena técnica es elegir una frase y tomar los primeros caracteres de la misma así como los símbolos. Por ejemplo "To be, or not to be: that is the question!", esta puede ser convertida a "2b,On2b:Tstq!". Esta clave es mucho mas segura (bueno hasta antes de haberla publicado aquí) y también fácil de recordar. Intenta con frases menos comunes ya que tarde o temprano esta técnica también tratara de ser explotada.

Hablando de cuentas de usuarios también es importante que definas específicamente quien tiene acceso desde un equipo externo y es altamente recomendable no dejar cuentas anónimas disponibles.



Proximamente complementare el resto de este documento, recibo comentarios si es que se presenta alguna duda o sugerencia.