Archivo de la etiqueta: Tips

Cambiar permisos de carpetas y archivos de forma recursiva

Básicamente escribo esta entrada para intentar acordarme cuando deseo hacerlo 😛

Poner todos los subfolder de un folder a 755:

find . -type d -exec chmod 755 {} \;

Todos los archivos a 644:

find . -type f -exec chmod 644 {} \;

Establecer solo los archivos que terminen con .php a 644:

find . -name \*\.php -exec chmod 644 {} \;

Anuncios
Etiquetado , , ,

Servidor WAMP Portable

Un poco de historia

Esto es raro, yo escribiendo cosas relacionadas con Windows. Cómo llegué a esto:

Este semestre estoy llevando el curso de Bases de datos y estoy trabajando en un proyecto de investigación donde estamos extendiendo y adaptando Elgg, eso es, trabajando en un LAMP (Linux, Apache, MySQL y PHP). Antes de mudarme al nuevo apartamento tenía una conexión a internet con IP pública y yo era el administrador del router. Por lo que usaba mi computadora como servidor LAMP y accedía a ella desde cualquier lado. Es decir, podía desarrollar desde cualquier lado.

Cuales son las limitantes? Bueno, son varias. Primero, en el nuevo apartamento por fin tengo internet, pero no soy administrador del router, por lo que mi computadora no está en la zona desmilitarizada (DMZ) o los puertos necesarios no están redireccionados a mi computadora por lo que por ahora no puedo usar mi desktop como servidor. Segundo, paso gran parte de mi tiempo en el Tecnológico, por lo que necesito poder programar en cualquier computadora. Tercero, todo lo que programe para bases de datos debe correr en los laboratorios.

La primera solución es utilizar las facilidades de los laboratorios, pero aunque los laboratorios cuentan con facilidades de bases de datos y PHP en la cuenta de GNU/Linux, hay que pedir una base de datos en la oficina de TI, rellenar un formulario, etc. Esta opción me daba pereza, por varias razones:

  • La información se podría quedar en mi cuenta de IC, y el desarrollo en mi casa tendría que hacerlo por SSH y me gustan las cosas con una linda interfaz gráfica. Pero bueno, se puede, el problema es cuando me iba a reuniones con el equipo de trabajo, necesitaba llevar los archivos en mi llave, porque a veces vamos a lugares sin internet, pero sin Apache, PHP o MySQL no sirven de nada. Pude instalar un WAMP en la laptop de trabajo que siempre llevan, pero eso me lleva al segundo problema. Además sería incómodo tener que importar/exportar la base de datos cada vez que me cambio de máquina.
  • De no quedarse los archivos en mi cuenta de IC y de llevarlos a cada rato, necesitaría varias instalaciones de software con las mismas características. Y si ya es complicado y lleva tiempo tener un buen webserver ahora tener varios sería retrabajo innecesario.
  • El tercer problema usando las cuentas de IC es que sería usuario del sistema, no tendría permisos de administración, no podría instalar módulos de PHP, actualizarlo, configurarlo como lo necesito, no podría crear bases de datos a mi antojo (que lo hago muy comunmente, porque arruino alguna xD, quiero mantener el backup de otra, desarrollar en una y en otra, probar cosas nuevas sin tener que cambiar la que ya sirve, etc).

Bueno, suficiente historia poco interesante. La solución (por lo menos por ahora) salió a la luz cuando de casualidad estaba buscando actualizaciones de la plataforma PortableApps para el pre-FliSol próximo que está organizado la Red Costarricense de Software Libre. Me di cuenta que existe un paquete de software llamado XAMPP, X se refiere a cualquier OS (es porque hay para Linux, MacOS X, Solaris y Windows), Apache, MySQL, PHP, Perl. De esta forma puedo tener un servidor web y un entorno de programación en mi llave USB ideal para las actuales necesidades. Ojalá hubiera PortableApps para mi Ubuntu, pero bueno, por lo menos PortableApps, Apache, MySQL, PHP, Perl, phpMyAdmin, etc, etc, son software libre, excepto el OS 😛

¿Cómo instalar el software portable?

1. Descargar e instalar en la llave USB la suite de PortableApps

http://portableapps.com/download

Se pueden descargar cualquiera de las tres ediciones, lo que importa es la suite. En mi caso realizé la instalación en F:\Portable Apps pues mi llave es la unidad F.

2. Descargar e instalar el paquete XAMPP.

http://portableapps.com/apps/development/xampp

Se pueden descargar cualquier edición (full o lite) pero en su versión ZIP. Yo me descargué la “XAMPP Lite” pues incluye todo lo necesario:

  • Apache 2.2.11
  • PHP 5.2.8
  • MySQL 5.1.30
  • phpMyAdmin 3.1.1
  • OpenSSL 0.9.8i
  • SQLite 2.8.15.

Una vez descargado procedemos a descomprimirlo en la llave, obligatorio que sea en el directorio raíz o el plugin luego no lo encontrará. Una vez descomprimido encontraremos una carpeta llamada xampplite (o xampp si no elegimos la versión Lite), dentro de la cual estarán todos los archivos del servidor. Recuerden, esta carpeta debe quedar dentro de la raíz de la llave USB, por ejemplo en mi caso es F:\xampplite

3. Descargar “XAMPP Launcher” también disponible desde el sitio anterior. Este es el plugin de PortableApps que nos permite controlarlo desde la aplicación.

http://portableapps.com/apps/development/xampp

Una vez descargado doble click y procedemos a instalarlo en la carpeta PortableApps dentro de la carpeta de instalación de la suite de PortableApps (ojo, lean bien, es confuso). En mi caso la carpeta es:

F:\Portable Apps\PortableApps

4. Ejecutar StartPortableApps.exe y nos saldrá el menú de PortableApps. Deberá reconocer la nueva aplicación, si no, le damos a la opción de refrescar íconos que se encuentra en opciones.

portable-xampp

Seleccionamos el ícono XAMPP Control Panel y ejecutamos Apache y MySQL. Con eso ya tendremos el webserver funcionando.

xampp-control-panel

5. Desde cualquier navegador (en mi caso, Firefox Portable, de la misma suite) podremos entrar al panel de administración. Escribimos en la barra 127.0.0.1 (o http://localhost, pero por ahí leí que mejor no, porque hay alguien que se confunde) y seleccionamos el idioma. Ahora podrás acceder a todas las herramientas de administración.

xampp-welcome

xampp-administration

6. Para instalar una aplicación web dinámica (Elgg, Drupal, Joomla, etc) dentro de nuestro servidor web portable procederemos, por ejemplo, desde phpMyAdmin podemos crear y configurar la base de datos MySQL y los archivos deberán ser copiados a xampplite\htdocs.

Espero que les sirva.

Saludos!

Etiquetado , , , , , , ,

Claves seguras

Mucho se ha hablado de la seguridad en Internet y en nuestra computadora. Spyware,  troyanos, virus, phishing. Todas son preocupaciones reales para los usuarios del OS de Micro$oft :P. Aunque nosotros los Linuxeros no estamos excluido de ello: debemos mantener nuestras cuentas de e-mail seguras, nuestra preciada clave de root, la clave del e-bank, etc. Para ello decidí escribir este post describiendo las dos mejores formas de crear un password seguro y fácil de recordar.

El propósito de todo password es ser difícil de adivinar o descifrar para otros. Debemos evitar claves simples o muy comunes, como el nombre de mi madre o mi número telefónico. En la actualidad los bancos obligan a los usuarios a crear claves seguras poniendo restricciones. Sin embargo, las restricciones son tales que el usuario termina apuntando el password en un post-it frente al monitor, apuntándolo en la agenda o simplemente lo olvida a los dos días. Las restricciones que encuentro en el sitio de mi banco en este momento son las siguientes (es posible que olvide alguna):

  • Debe ser mayor o igual a 8 caracteres.
  • Debe contener tanto caracteres como números.
  • Debe tener minúsculas y mayúsculas.
  • No se permiten vocales.
  • No debe ser igual a los últimos 12.

1) Método 1: Remplazo simple.

De nada nos sirve tener un password super complejo si los vamos a olvidar. La clave de esto es encriptar el mismo password con algún método simple que podamos resolver mentalmente en cualquier lado. Después de un tiempo se vuelve natural, es más, este método que describiré a continuación ya debe ser natural para muchos de nosotros pues hay cada gente que habla así por el celular o el messenger.

El algoritmo es lo más simple posible, conocido por muchos como el algoritmo de Cesar. El truco es tomar una palabra fácil de recodar y cambiar los caracteres clave por algún otro símbolo o número, de preferencia alguno que sea similar. Por ejemplo:

Mi OS es Ubuntu Linux. La semilla de mis password será UbuntuLinux, simple no?

Ahora, ya tenemos un clave larga, 11 caracteres, además cuenta con mayúsculas y minúsculas. Fácil de recordar, verdad? Sin embargo, sigue siendo una clave muy simple.

Ahora podemos utilizar el remplazo:

  • B es como un 8
  • La T es como un 7
  • La I es como un 1

Ahora me arrepiento de mi semilla xD, no importa. El resultado sería U8un7uL1nux

Mucho más complejo no? Sin embargo, sigue siendo un password de seguridad media. Podemos utilizar una mejor semilla, por ejemplo, el nombre nuestra novia o esposa… digamos Virginia… (quién es Virginia?): V1r61n14

A continuación coloco la tabla más común, o por lo menos la que suelo utilizar.

I/i 1
E/e 3
A/a 4/@
S/s 5/$
G/g 6
T/t 7
B/b 8
O/o 0

Ahora bien, si desean agregar seguridad adicional pueden solapar la clave con alguna fecha importante. Por ejemplo, su fecha de nacimiento, asumamos que es el 12 de febrero, acá 1202. Si bien V1r61n14 es un buen password, podemos agregar V1r61n141202, o bien 12V1r61n1402, o también 1202V1r61n14.

2) Método 2: MD5.

Ahora nos ponemos geek. Para este método es necesario tener un máquina. Utilizaremos el algoritmo MD5. Utilicemos la semilla Virginia de nuevo. Ahora, realizamos los siguientes dos comandos anidados:

echo Virginia | md5sum

Para este ejemplo el resultado es el siguiente:

user@computer:~$ echo Virginia | md5sum
287a169dbdeab7b01b0f6f55d8b624af  -

Ahora bien, podemos tomar esos números generados y… no sé… hacer cualquier cosa… poner eso de password? Tomar los 8 últimos caracteres, los 8 primeros? Mezclar nuestro password anterior y solapar los 2 primeros y los 2 últimos dígitos? Que tal si le ponemos los 4 primeros dígitos (recuerden quitar vocales). Algo como 2874V1r61n141202.

En fin, cualquier cosa, también pueden usar el password encriptado por el primer método y usarlo de semilla para el segundo. El truco de todo esto es obviamente no decir nunca la semilla, que sea algo muy nuestro y fácil de recordar, y por supuesto, nunca revelar el método exacto de como logran el password, si no de nada hubiera valido todo esto. Así como de un simple nombre y una fecha logramos 2874V1r61n141202, un password bastante seguro.

Saludos!

Etiquetado ,