Monólogo de Llorenç González para IDaccion sobre los obstáculos que se encuentra un emprendedor en su camino.
True story! Parece la historia de mi vida…seguro que soy más emprendedor ¬¬ ! (Con unos pequeños cambios para que aplique a Colombia, ejemplo cambiamos la «Ventanilla única» por la DIAN XDD ).
A la fecha Dropbox no tiene cliente para *BSD, aunque muy solicitado, no hay fechas de RELEASE.
Buscando alternativas en las que no perdiera la sensación de tiempo real con Dropbox en mi Gnome en FreeBSD 9.1, y pensando en no tener que ejecutar comandos constantes para sincronizar, e inspirado en algunas búsquedas; encontré una técnica para que funcione de la manera más transparente Dropbpx en mi Gnome. Supongo con un par de cambios aplica a OpenBSD.
La técnica guerrillera consiste en instalar una máquina virtual (con VirtualBOX, KVM, etc) o usar un computador viejo, y en este montar un Linux y Dropbox, a este combo lo llamaré «servidor Dropbox» (Para Linux si hay daemon oficial para Dropbox). Entonces en FreeBSD solo es montar la partición remota.
Si eres usuario avanzado BSD y lees esto, tal vez te sientas engañado el título del artículo, mis disculpas :)
Hay varias formas de montar la partición remota (NFS, SMB, FUSE, etc); en este caso opté por usar SSHFS (fuse), pues es la más «limpia», por decirlo así, de configurar el pequeño «servidor» Dropbox, solo se instala el sistema base, el servicio ssh y el sistema Dropbox en modo daemon, lo cual es muy «light». Además se puede montar como usuario, nada de editar el fstab o cosas similares.
En mi caso el servidor virtualizado es un i386, con 128Mb RAM, y Debian wheezy y corre como perfectamente bien.
Entonces, primero explicaré como instalar el servidor Dropbox, y luego como configurar FreeBSD para que monte la partición.
Instalando Dropbox en un servidor Linux sin entorno gráfico:
Para el servidor, sirve cualquier Debian básico, entorno mínimo, con sshd. Con el sistema básico, solo hay que seguir las instrucciones para la instalación en la página oficial de www.dropbox.com, con unos pequeños ajustes.
TODOS estos pasos se ejecutan como usuario (en mi caso josecely), ajustenlo a su usuario y por favor… no usen el root para estos menesteres!
Descargamos el instalador de Dropbox de https://www.dropbox.com/install2.
En mi caso para el «servidor Dropbox» virtualicé una máquina de 32 bit, por lo tanto descargue
Eso es todo, al descomprimir crea una carpeta oculta llamada
~/.dropbox-dist/
En esta carpeta esta el ejecutable y archivos de configuración, no hay que compilar, en hora buena!
Ahora a configurar con su cuenta de Dropbox,. Para esto ejecuto el demonio Dropbox por primera vez manualmente, para que me cree el vínculo temporal de configuración y autorización del servdor.
$~/.dropbox-dist/dropboxd
El comando me informa:
Este cliente no está vinculado a una cuenta… Visita https://www.dropbox.com/cli_link?host_id=xxxxxxxxxxxxxxxxxxxxxxxxxxe para vincular este equipo.
Tal cual como lo dice, copie y pegué el vínculo en un navegador, ingresé la contraseña de mi cuenta en Dropbox
De esta manera se autorizó la cuenta para el sevidor «El cliente se vinculó correctamente. Te damos la bienvenida, Jose Antonio.»
Ahora descargo el script CLI oficial de Dropbox, una herramienta muy útil para administrar Dropbox desde el shell.
Lo ejecuto para confirmar que funciona correctamente:
$./dropbox.py Dropbox command-line interface
commands:
Note: use dropbox help <command> to view usage for a specific command.
status get current status of the dropboxd help provide help puburl get public url of a file in your dropbox stop stop dropboxd running return whether dropbox is running start start dropboxd filestatus get current sync status of one or more files ls list directory contents with current sync status autostart automatically start dropbox at login exclude ignores/excludes a directory from syncing lansync enables or disables LAN sync
Por ejemplo para arrancarlo ejecuto:
$~/dropbox.py start Starting Dropbox…Done!
Como ya esta autorizada la máquina y tenemos un útil scrip CLI, lo siguiente es configurar el «servidor» para que arranque siempre Dropbox como el usuario. (No olvidar ajustarlo a su usuario). De las cincuenta mil formas de hacerlo, lo agregaremos al arranque CRON:
$crontab -e -u josecely
Agregamos la linea
@reboot ~/dropbox.py start
Reiniciamos el servidor, y comprobamos que arrancó el demonio Dropbox bajo el respectivo usuario, esto lo podemos comprobar con:
Secure SHell FileSystem (SSHFS) es un sistema de archivos para FreeBSD, Linux y otros. Permite montar de modo seguro (sobre ssh) un directorio remoto, como si fuera local, además del lado del servidor, no necesita instalar ni configurar nada especial, el módulo FUSE solo se necesita en el cliente que va a montar el directorio remoto. El servidor remoto solo necesita tener el servicio sshd corriendo. Los siguientes comandos y configuraciones se probaron en FreeBSD 9.1.
Como usuario root, en la máquina FreeBSD agregamos el package sshfs:
#pkg_add -r fusefs-sshfs
Editamos el archivo /etc/sysctl.conf, agredando la línea:
vfs.usermount=1
Editamos el archivo /etc/rc.conf, agredando la línea:
fusefs_enable=»YES»
Ahora agregamos el usuario que montará la partición al grupo operator, para que quede habilitado para montar y desmontar (No olvidar ajustarlo a su usuario):
#pw usermod josecely -G operator,wheel
Sería prudente, un reinicio: # reboot
Una vez reiniciado, como usuario en la máquina FreeBSD, creamos el directorio para montar la carpeta Dropbox:
$ cd ~ $mkdir Dropbox
Y viene la magia!, montamos la carpeta remota del «servidor» Dropbox.
< offtopic> Retomando este abandonado Weblog, regreso con un artículo de algo poco documentado, para la élite :D, espero no haber perdido el tono a veces ácido y sarcástico de antiguos tutoriales, claro que es con el fin que no sean aburridos ñ_ñ Tal vez deje de documentar Linux, pues ya es muy usado en la industria, y Ubuntu facilitó las cosas para el escritorio (cosas que me hacen sentir muy bien), pero… quiero ser siempre el chico raro, el de la minoría ;), y linux ya no lo es!. No solo eso, algunos clientes nos piden soluciones sobre este sistema (OpenBSD), dada su seguridad de facto cuando se maneja información sensible (Ej. grandes ISP, la industria del petróleo, etc.).</offtopic>
OpenBSD
OpenBSD es una leyenda en cuanto a seguridad informática nativa en el sistema operativo, y que mejor descripción como lo dice el primer parrafo en su página (http://www.openbsd.org/):
Pufffy, la mascota de OpenBSD
«El proyecto OpenBSD produce un sistema operativo LIBRE de tipo Unix, multiplataforma y basado en 4.4BSD. Nuestros esfuerzos se concentran en la portabilidad, estandarización, corrección, seguridad proactiva y criptografía integrada«.
Estas dos últimas palabras «criptografía integrada«, no consiste solo en encriptar fuertemente contraseñas y otras yerbas!… consiste en toda una serie de sistemas y subsistemas (OpenSSH, PRNG, hash functions, Componentes criptográficos por hardware, etc) que funcionan orquestadamente.
En la documentación aparece la pregunta, ¿Por qué incluimos criptografía?, con su merecida y modesta respuesta «because we can.».
Estados Unidos y otros paises (China, Rusia, Irán, Irak, Myanmar, etc.) tienen políticas «raras» en cuanto a la exportación/importación de software que maneje algún tipo de criptografía, Incluso en Estados Unidos se específica un límite en la cantidad de bits para RSA!, pero mejor este tema interesante y político podría ser asunto de otro artículo.
Para finalizar la introducción no sobra decir que el equipo de OpenBSD, también es el autor de SSH, con su legendario proyecto OpenSSH, que esta en todas la versiones de Linux, *nix. http://www.openssh.com/
Gracias señores, SSH es mi pan de cada día, no concibo el trabajo sin él.
¿ Por que servidor web verdaderamente seguro ?
Así como en la industria al combo Linux, Apache, MySQL y PHP se le conoce como LAMP, podemos llamar a este combo OAMP.
OpenBSD: Sistema operativo descrito anteriormente como seguro. Configuraciones por defecto seguras (Ej. ssh no permte root remoto). entre otros.
Apache: Instalado en modo chroot jail (más detalles abajo), entre otros.
MySQL: Configurado en modo secure
PHP: El mismo de siempre ¬¬
Así pues tenemos un gran márgen de seguridad al inicio. Sin embargo a veces no es suficiente, todo depende de una buena admnistración.
Instalando OpenBSD
Esto es de las cosas que me gustan de OpenBSD y FreeBSD, es la documentación de calidad y que esta unificada en el sitio oficial. Nada de rebotar en miles de páginas como pasa en Linux, algunas veces contradiciendose entre ellas por apoyar su distro de turno O.o!
Pueden descargarla y quemarla en un CDROM como acostumbren hacerlo para estos menesteres ;).
Una vez con el CDROM en el servidor a instalar, solo es arrancar la máquina y tenemos un bonito y espartano arranque Unix!
Inicio instalador
Si señores, solo hay que leer y seguir los pasos, en mi caso, detectó todo como debía ser, tarjeta de red, dhcp, disco duro, etc. casi que el 95% de las opciones por default funcionaron!
OpenBSD instalando paquetes
Una vez instalado, hay que reiniciar el sistema con el clásico comando:
# reboot
Reboot final en la instlación de OpenBSD
Y listo, una vez reiniciado tenemos un bonito BSD, con el clásico XDM… a que mola!
XDM en OpenBSD
En realidad no necesitamos el entorno gráfico para el servidor web verdaderamente seguro, solo lo instalé por impresionar a las chicas.
Cada paquete es un archivo con extensión .tgz que incluye información de dependencias y scripts para instalar y desinstalar, para manejarlos se emplean los programas pkg_add, pkg_delete, pkg_info y pkg_create.
El programa pkg_add instala un paquete y todos los que este requiera. Los descargarga de lo(s) repositorio(s) especificada(s) en la variable de entorno PKG_PATH, y en las rutas especificadas en el archivo /etc/pkg.conf
Instalando los paquetes para el servidor Web
En este caso usarmos los repositorios oficiales de BSD.
Para esto ejecutamos como root en el servidor:
# echo installpath=ftp://ftp5.usa.openbsd.org/pub/OpenBSD/$(uname -r)/packages/$(uname -m) | sudo tee /etc/pkg.conf
Una vez agregdo el repositorio, ya podemos empezar a instalar paquetes
1. Apache
Ejecutamos:
# pkg_add apache-httpd
2. PHP-MySql
Ejecutamos:
# pkg_add php-mysql
El cual nos pregunta:
# pkg_add php-mysql Ambiguous: choose package for php-mysql a 0: 1: php-mysql-5.2.17p6 2: php-mysql-5.3.14p0 Your choice: 2
Seleccionamos la opción 2.
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos
El anterior script, hace los cambios pertinentes que todo servidor de producción debe tener respondiendo a las siguientes preguntas: Remove anonymous users? [Y/n] Disallow root login remotely? [Y/n] Remove test database and access to it? [Y/n] Reload privilege tables now? [Y/n]
Recomendaría SI (Y) a todo.
5. PhpMyAdmin
Ejecutamos: #pkg_add phpMyAdmin
Cuando termine de descargar e instalar, ejecutamos los siguientes comandos
Apache esta enjaulado por defecto (chroot jail), que bonito!, otra muestra más de la seguridad, esto quiere decir que Apache NO puede ver directorios fuera de su entorno de usuario, y mucho menos comunicarse con MySQL (Que obviamente también esta enjaulada), es imposible que los dos se comuniquen.
Entonces es necesario mover el archivo de la comunicación de MySQL /var/run/mysql/mysql.sock :
La ruta por defecto para el contenido del servidor web es /var/www/htdocs/
Podemos crear un script de prueba, con el comando.
# echo «< ?php phpinfo(); ?>» | sudo tee /var/www/htdocs/phpinfo.php
El cual debe responder desde un navegdor a la dirección http://sudirecionip/phpinfo.php
En mi caso la dirección de mi intranet http://10.0.0.228/
Phpinfo en OpenBSD
Lo mismo para PhpMyAdmin, a la dirección http://sudirecionip/phpMyAdmin/index.php
En mi caso http://10.0.0.228/phpMyAdmin/index.php
PhpMyAdmin en OpenBSD
——
Dudas, comentarios, sugerencias?
PD. El servidor web verdaderamente seguro, es para cosas verdaderamente serias. Ej. no pretendas instalar Joomla y catapum! Joomla se volvio seguro XD! Una cosa es la seguridad del servidor, otra cosa una aplicación web vulnerable, y que mejor ejemplo que Joomla para aplicación web vulnerable!. Lo mismo sucede con las contraseñas, puedes tener el mejor BSD, con los últimos guariches, pero si tu contraseña es 123456… mejor ni hablemos….
Después de 6 años con este weblog abandonado, con tan solo 45 publicaciones, he decidido dar un cambio radical!. En realidad solo 5 publicaciones son relevantes, de resto material de relleno o series de palabras articulando frases que dan la sensación de contenido…
Hace 6 años no existia facebook, twitter, xing, y el único desenfoque y desahogo social, era este weblog… ahora, después de años perdidos en redes sociales que NO facturan (facebook), uso twitter, que por su simplicidad, sirve para calmar mi síndrome de abstinencia de dejar de usar otras redes sociales e interacciones insípidas… Facebook, siempre lo abres, constantemente, aun sabiendo que esta vacío de contenido, como una nevera de pobres!!!
Volviendo al tema del weblog, atrás quedo el diseño Matrixiano extremista que tenía. Muy geek y verde!. No es que ahora este cansando de los documentales «Matrix», el objetivo ahora es aumentar el público lector (Si, duplicar las 3 visitas diarias XD )… os adjunto un resumen estadístico de historial de acceso.
Instale el típico wordpress, con un tema típico y en la barra lateral use plugins genéricos, con algunas pequeñas modificaciones… nada de desarrollar mis propios plugins y tratar de impresionar a un par de geeks, 6 años después ya me da mamera hacer eso… es más, trataré de dejar de hablar del pinguino (Linux) y sus compinches, trataré de enfocarme (si es que escribo algo al respecto de sistemas operativos) en *BSD o alguno de esos unices (por eso el favicon ahora es el logo de FreeBSD), documentación sobre el pinguino hay bastante, creo que ya no puedo aportar algo relevante ahí. Tal vez la parte dos del manual de Nagios, que prometí hace 4 años (y aun preguntan!!!), sea sobre FreeBSD!
Para rematar, y lo más inesperado para algunos, ingresa una nueva temática, y son las ciencias sociales, con nuevas categorías, la «Economía» y el «Análisis financiero»… Un poco cansado de la ciencias exactas, 10 años de investigar y documentar procedimientos, tecnologías, para algunos abstractas, es bueno mirar otros rumbos.
Procuraré un enfoque más conservador, trataré de dejar el humor ácido, el extremismo Linuxero, pero eso si, mantendré la arrogancia u_u. … no se, tal vez sea el acercarme a la crisis de los 30 años, a veces el ser humano se obsesiona con el paso del tiempo y también con su temporalidad… Por eso, como dijo Steve Jobs (aunque fue en referencia a un libro) «Stay hungry, stay foolish«, algo así como «seguid hambrientos, seguid alocados«.
Saludos!
PD.
EL logo del actual weblog (parte superior izquierda) lo puse en base a una INOCENTADA de el 1 de Abril, (día de los inocentes en varios lugares del mundo), las distribuciones de los logos que aparecen la imagen y algunos medios se pusieron de acuerdo para publicar la siguiente noticia: »
Debian, Arch Linux, openSUSE, grml y gentoo se fusionan. Estamos satisfechos de anunciar el nacimiento de la nueva distribución Canterbury. Canterbury es una combinación de los esfuerzos de la comunidad anteriormente conocida como Debian, Gentoo, Grml, OpenSUSE y Arch Linux para producir un esfuerzo realmente unificado y ser capaces de actualizar un esfuerzo combinado contra los sistemas operativos propietarios, para mostrar que la comunidad de software libre puede realmente ser capaz de trabajar de forma conjunta por un bien común, en lugar de crear una mayor diversidad. Canterbury será más simple tecnológicamente, tan estable como Debian, maleable como Gentoo, con un marco sólido en vivo como grml, y será tan abierta de mente como openSUSE. El desarrollador Arch Linux, Pierre Schmitz explicó: «Arch Linux siempre ha sido favorable de mantener su distribución tan simple como sea posible. «
A una gran mayoria nos hubiera gustado que hubiera sido verdad… Entonces, busque el logo, y le agregue el logo de FreeBSD en la mitad de la mesa, mandando al papayo al resto de distribuciones XD!!!