DO 101: Configuración inicial de VPS con Arch Linux

En la entrada anterior, vimos como configurar un VPS en un SSD Cloud Server de una manera sencilla a través de DigitalOcean. Seleccionamos Arch Linux como distro para el VPS dada su facilidad de uso.

Como medida inicial, debemos cambiar la contraseña por defecto que nos envía DigitalOcean por correo electrónico, iniciamos sesión por nuestro cliente SSH desde Linux, Mac o desde PuTTY en Windows.


ssh root@192.168.1.1

Iniciamos sesión con la clave por defecto de DigitalOcean, se mostrará un mensaje parecido a este:

The authenticity of host '192.168.1.1 (192.168.1.1)' can't be established.
ECDSA key fingerprint is 79:95:46:1a:ab:37:11:8e:86:54:36:38:bb:3c:fa:c0.
Are you sure you want to continue connecting (yes/no)?

Escribimos yes o no dependiendo de si queremos guardar la huella digital de la clave utilizada. Ahora cambiamos como medida de seguridad la contraseña si no lo hemos hecho ya anteriormente:


passwd
Changing password for root.
Enter new UNIX password:

Ahora, es momento de configurar nuestro servidor con cuentas de usuario y cambiar la configuración de SSH para endurecer las medidas de seguridad y proteger nuestro servidor de ojos ajenos.

Para crear un usuario normal con su directorio dentro de /home, sin tantos privilegios y con una nueva contraseña hacemos lo siguiente:


useradd -m ejemplo
passwd ejemplo

En lo personal no me gusta utilizar sudo, en su lugar prefiero iniciar sesión como usuario root a través de su, hacer lo que tenga que hacer y salir de la sesión de root y continuar mi uso como usuario normal. Dicen que cuentas claras mantienen la amistad, pues en este caso, cuentas y privilegios separados mantienen el servidor.

Configurar SSH

Es hora de asegurar nuestro servidor SSH, para ello abrimos el editor de texto de nuestra preferencia, ya sea vi o nano que son los que vienen instalados por defecto con el archivo sshd_config.


nano /etc/ssh/sshd_config

Buscamos la línea del protocolo y dejamos activada la versión 2 del protocolo SSH, ya que la versión 1 tiene ciertas vulnerabilidades que pueden ser explotadas.


Protocol 2

Desactivamos el login de usuario root, con esto solo podremos iniciar sesión con el usuario recién creado.


PermitRootLogin no

Algunas personas suelen cambiar el puerto por defecto de SSH, usando como argumento la seguridad por oscuridad, pero considero que esta práctica es un poco ineficaz ya que de todas maneras al lanzar un scan contra nuestro VPS encontrarán que corremos SSH.

La mejor manera de asegurar nuestro servidor SSH, en mi opinión personal, es a través de criptografía de llave pública con SSH keys.

Antes de cerrar la sesión de usuario root que estamos corriendo, reiniciamos nuestro servidor SSH


systemctl restart sshd

Abrimos otra terminal para verificar que todo está en orden y podemos proceder.


ssh ejemplo@192.168.1.1

Si nuestro prompt dice, una vez, iniciada sesión esto:


[ejemplo@servidor1 ~]

Sabremos que todo esta corriendo bien y podemos cerrar ahora si la sesión de root que teníamos abierta. Ahora para cambiar a usuario root solo será cuestión de iniciar el comando su.

SSH Keys

Desde Linux

Las SSH keys nos ahorran tener que teclear la clave en la terminal cada vez que nos logueamos al sistema. Una vez puesto en marcha nuestro servidor para que soporte las SSH Keys y desactivada la escritura de contraseñas, se volverá bastante seguro ya que solo podrá entrar quien tenga la llave privada. Razón por la cual debes cuidar esa llave privada como si tu vida dependiera de ello.

Para generar nuestro par de llaves (public key/private key), en una consola en cualquier distro GNU/Linux podemos crearla con el comando ssh-keygen.

ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ejemplo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):

Podemos cambiar el nombre de la clave que estamos creando solo para recordar donde dejamos los archivos. Lo siguiente es enviar la public key al servidor donde nos queremos conectar. Nos movemos al directorio .ssh.


cd .ssh

copiamos la public key al servidor remoto

scp id_rsa.pub ejemplo@servidor1:~/.ssh/

Ahora nos conectamos al servidor remoto para configurar el acceso con SSH keys.

ssh ejemplo@servidor1

Cambiamos los permisos a 700 al directorio .ssh

chmod 700 .ssh

Creamos un archivo para guardar las keys que el servidor remoto vaya a aceptar y le damos permisos 600.

touch authorized_keys
chmod 600 authorized_keys

Colocamos el contenido de nuestro public key en el authorized_keys:

cat id_rsa.pub >> authorized_keys

Finalmente, si dejas todo en su lugar con los nombres de archivo por defecto, te podrás conectar directamente con solo hacer:

ssh ejemplo@servidor1

De lo contrario, especificas el archivo donde guardaste la private key

ssh ejemplo@servidor1 -i .ssh/privatekey

Es posible que si creaste un passphrase durante la creación de las SSH keys, te lo pida para conectarte.

Eso es todo por ahora, para la siguiente entrada un tutorial para conectarse con SSH keys desde PuTTY. Por último te invito a crear un VPS en un SSD Cloud Server de una manera sencilla a través de DigitalOcean.

DO 101: Introducción a DigitalOcean

En los últimos días he estado probando un servicio relativamente nuevo en el mundo de los VPS (servidores privados virtuales). DigitalOcean, me atrajo inicialmente por su precio y al día de hoy no me arrepiento de haber empezado a usarlo. Crear un VPS aquí, es realmente fácil y toma muy poco tiempo. Y no es para menos, dejar funcionando un servidor que tenga Apache, Maria DB, PHP toma unos pocos minutos. Puede colaborar conmigo registrándose a través de este enlace: DigitalOcean.

Portada de DigitalOcean

Portada de DigitalOcean

Primero solo hay que registrarse, con un correo electrónico y una contraseña basta. Una vez iniciada la sesión, podremos crear nuestro primer VPS, que de ahora en adelante llamaremos droplet. Los droplets no son más que sistemas operativos virtualizados, en el caso de DigitalOcean utilizando KVM.

Panel para creación de droplets

Panel para creación de droplets

Le damos un nombre a nuestro droplet, seleccionamos el plan que utilizaremos, la región del datacenter, la imagen de la distro a utilizar (en mi caso Arch Linux para sentirme como en casa). Dejamos la opción VirtIO activada.

Una vez creado nuestro primer droplet, veremos algo así y nos será enviada por correo electrónico nuestra clave de usuario root. Por supuesto que lo más recomendable es cambiar esta contraseña una vez iniciada sesión por primera vez.

Panel de control de DigitalOcean

Panel de control de DigitalOcean

Ahora podemos explorar un poco sus opciones. Entre las opciones podremos reiniciar y apagar el droplet, cambiar la contraseña del usuario root, cambiar el tamaño del droplet, generar snapshots y backups, cambiar el kernel y eliminar por completo el droplet.

Controles del droplet

Controles del droplet

Los snapshots permiten guardar por decirlo así la configuración del servidor y permiten crear un nuevo droplet con la misma configuración, esto permite ahorrar tiempo valioso al momento de crear otro droplet. Los backups, pueden ser configurados para que cada “x” tiempo hagan un respaldo de todo el servidor, estos tienen un costo adicional del 20% del plan actual. Los snapshots son gratis. Para generar un snapshot es necesario apagar el droplet, pero para generar un backup no es necesario apagarlo.

Por último, para conectarse al servidor utilizaremos SSH con el usuario root, la ip que fue asignada a nuestro droplet y la contraseña que nos fue enviada al correo:

$ ssh root@192.168.1.1

Por último para cambiar la clave por una de nuestra elección, escribimos el comando passwd.

# passwd
Changing password for root.
Enter new UNIX password:

Eso es todo por hoy, pronto vendrán más tutoriales para poner a punto nuestros droplets. Puede colaborar conmigo registrándose a través de este enlace: DigitalOcean.

AntiPad 2.1.3 en el Cruz Reader

Hace unas semanas atrás que sigo la evolución de una ROM para el Cruz Reader que publicó Delta-9 en los foros de SlateDroid.com. Probé hace poco la versión 2.1.2 y me pareció prometedora pero aún más los cambios propuestos para la versión 2.1.3, por lo que decidí crear esta guía, que no es más que la traducción al español de los pasos a seguir para instalarla con algunos toques personales. Como dice Delta-9, esta ROM es todo lo que el Cruz Reader puede ser dentro de un margen razonable.

Importante: Debemos saber que al realizar este procedimiento y otros como rootear automáticamente perdemos la garantía sobre nuestro dispositivo y que estamos a riesgo de dejarlo como un pisapapeles.

Nota: Este procedimiento se debe realizar con un adecuado nivel de batería, 70% o con el dispositivo conectado a la red eléctrica para evitar cualquier inconveniente a mitad del proceso y dejar nuestro Cruz Reader como pisapapeles.

Nota adicional: Esta guía la escribí sobre la marcha al instalar AntiPad 2.1.3 a un Cruz Reader R102. Es posible que tenga errores o que olvide algunos pasos que consideré obvios en su momento. Queda de parte de usted arriesgarse o no a instalar esta ROM.

Lo primero es descargar los archivos que vamos a utilizar.

  1. SD Card Content.zip
  2. MicroSD FAT32 App Archive.zip

Si lo deseas, puedes verificar que todos los archivos estén intactos con la suma de verificación de md5. También, puedes tener a mano la guía de Delta-9 (en inglés).

Algo más que necesitaremos es una SD preferiblemente en blanco formateada en FAT32. En esta SD extraeremos el contenido del archivo SD Card Content.zip.

Paso 1: Instalar ClockworkMod

Con el cruz apagado presionar el botón de encendido y subir volumen simultáneamente hasta que aparezca el logo de android instalando algo, ojo que esto ocurre rápidamente, y con eso se instalará ClockworkMod en el Cruz Reader. Al terminar se reiniciará automáticamente así que es posible que cargue la ROM que ya esta instalada o la que trae de fábrica dependiendo de si le has hecho modificaciones o no. Apaga el Cruz Reader dejando presionado el botón de encendido hasta que aparezca el menú de apagar.

ClockworkMod, CWM o ClockworkMod Recovery es un sistema de recuperación de datos para Android que permite realizar una serie de tareas avanzadas como recuperación, reinstalación, instalación y mantenimiento que no siempre son posibles con las configuraciones que ponen los fabricantes en los dispositivos Android.

Paso 2: Instalar AntiPad ROM

Luego repetir el proceso para iniciar ClockworkMod, presionar botón de encendido y subir volumen. Aparecerán una serie de menús, seleccionar las siguientes opciones: backup & restore  -> restore -> first (& only) image -> Yes – Restore. Y comenzará a copiar archivos, para instalar la nueva ROM.

Menú de ClockworkMod

Menú de ClockworkMod

Confirmando instalación de AntiPad Rom

Confirmando instalación de AntiPad Rom

Proceso de instalación...

Proceso de instalación…

cuando termine el proceso de instalación (lo usual es que tarde entre 2 a 5 minutos), entonces procedemos a reiniciar desde el menú de ClockworkMod y extraemos la SD.

Paso 3: Calibrar pantalla y cambiar idioma

En el primer encendido con la ROM nueva, no es completamente necesario pero puede llevarse a cabo la calibración de la pantalla. En Settings > Language and keyboard settings > Touchscreen calibration. También luego de esto podemos cambiar el idioma a Español (España) o Español (Estados Unidos) el que gusten.

Como anteriormente tenía instalada la ROM de JGM, la SD interna estaba particionada por lo que la extraje, le eliminé las particiones y la formatee en FAT para que pudiera ser reconocida rápidamente.

Primera vista de AntiPad ROM 2.1.3

Primera vista de AntiPad ROM 2.1.3

Paso 4: Particionar la SD interna

Lo siguiente es correr el script para particionar la sd interna. Abrimos el drawer y buscamos Terminal Emulator y tecleamos su para adquirir los superpoderes del usuario root.

# cd /system/bin

Dependiendo del tamaño de SD interna que tengamos, usaremos uno u otro de estos dos scripts.

# sh 4GB-usd.sh

o

# sh 2GB-usd.sh

Cuando el script muestre la pregunta: “New disk label type?“, respondemos ‘msdos‘. Luego saldrá un mensaje que dice “Warning: Partition(s) … are being used. Ignore/Cancel?“, a este respondemos ‘ignore‘ y presionamos enter. Luego veremos el mensaje “Warning: The existing … data on this disk will be lost. Do you want to continue?” escribimos ‘yes’ y presionamos Enter. Luego este menaje “Error: Error informing the kernel … before rebooting.  Ignore/Cancel?” saldrá unas dos o tres veces, a todas ellas respondemos ‘ignore‘ y luego presionamos Enter.

Al final del proceso, tendremos el indicador de root # en la consola y tendremos que reiniciar. Para reiniciar, solo basta con presionar el botón de encendido hasta que aparezca el menú de apagar el dispositivo y luego lo volvemos a encender normalmente. Se habrán creado 3 particiones: una para el usuario, en mi caso de 1 GB, otra para aplicaciones para usar con link2sd y una para swap.

Paso 5: Activar link2sd

Ahora con cualquier explorador de archivos debemos copiar la carpeta MicroSD FAT32 Content de la tarjeta sd externa a la interna. Luego abrimos link2sd y abierto volvemos al escritorio a un navegador de archivos y vamos a /sdcard/backup_apps/ e instalamos Link2SD_2.1.2.apk sobreescribiendo la versión que ya está instalada. Luego volvemos al drawer y abrimos Link2SD. Abrimos el menú y buscamos la opción enlace automático y la activamos. Desmontamos la SD externa y reiniciamos nuevamente.

Paso 6: Primera conexión a internet y al Android Market

Ahora vamos a conectarnos, antes debemos leer algunas recomendaciones que están en el escritorio, en el archivo update_blacklist.txt, estas son algunas sugerencias del creador de la ROM para con respecto a algunos programas ya instalados.

Ahora desactivamos la sincronización automática, para ello, estando en el escritorio, nos desplazamos una pantalla a la izquierda y presionamos el botón para desactivarla.

Widget para desactivar sincronización

Widget para desactivar sincronización

Ahora vamos a Ajustes > Redes & inalámbricas y activamos y configuramos nuestra red wifi. Al conectarnos, abrimos el Android Market. Nos pedirá que configuremos nuestra cuenta de Google, una nueva si no tenemos o alguna que ya tengamos. Luego tendremos que aceptar los terminos de servicio del Market y debemos bajar al menos una aplicación, cuando termine y se instale, cerramos el Market 1.7.0. Luego abrimos la aplicación SuperSU, es posible que nos pregunte por actualizar la misma, lo hacemos. Luego nos desconectamos del wifi y abrimos algún navegador de archivos y vamos de nuevo a /sdcard/backup_apps/ y abrimos e instalamos el Market 2.3.6.

Notas finales

Con esto, hemos terminado, ya queda de parte de ustedes explorar la ROM. AntiPad trae 5 launchers distintos, ustedes prueben y decidan con cual se quedan. Del mismo modo, trae algunas aplicaciones que considero innecesarias y las eliminé, ya queda de parte de ustedes evaluar que eliminan y que instalan. Algo que si se gana con esta ROM es la estabilidad en el WiFi, algo que ni siquiera Velocity Micro había logrado reparar.

Este tutorial lo escribí sobre la marcha al instalar AntiPad 2.1.3 sobre el Cruz Reader R102. Hasta ahora no me quejo de esta ROM, pero de un modo u otro pienso que JGM es más limpia ya que esta trae un montón de aplicaciones.

Por último, le recomiendo que lean bien la guía de Delta-9 y sus dudas las despejen en Slatedroid.

Formulario Oficial de Medicamentos

Ya había publicado este documento, pero si habían descargado el anterior se habrán dado cuenta que el mismo tenía unos márgenes enormes que hacían encajar el mismo en una página tamaño letter (8.5″x11″). Esta vez con la ayuda de ghostscript reduje el tamaño de ese documento a 113x170mm el cual es un poco más aceptable. Dejo constancia que la línea de comando que emplee para esta tarea es:

$ gs -o crop.pdf -sDEVICE=pdfwrite -c "[/CropBox [150 310 470 794] /PAGES pdfmark" -f original.pdf

Adicional a esto, le hice una portada sencilla con la ayuda de GIMP.

Portada del Formulario Oficial de Medicamentos

Portada del Formulario Oficial de Medicamentos

Guías de Manejo de las Complicaciones del Embarazo

Las siguientes normas fueron creadas y revisadas por un comité conjunto con miembros de la Caja del Seguro Social, el Ministerio de Salud y la Organización Panamericana de la Salud. Fueron publicadas en 2009 y son más que útiles para las rotaciones como médico interno por el servicio de Gineco-Obstetricia o bien en la consulta externa de atención primaria.

Portada de las Guías de manejo de las complicaciones del embarazo

Controlar a Banshee desde Android

Hace un momento estaba peleando con Banshee y otros reproductores en Arch Linux porque deseaba controlar a uno remotamente desde mi Galaxy Ace. La solución vino con Google, solo fue cuestión de leer un poco. Me tope con una página escrita por Nikitas Stamatopoulos, una persona que desarrolló un app para Android y una extensión para Banshee que permite controlarlo remotamente.

Para instalarlo en Arch Linux, podemos hacerlo desde el AUR con la ayuda de yaourt o packer:

$ yaourt -S banshee-remote-control

o

$ packer -S banshee-remote-control

Para instalarlo en otras distribuciones debemos hacer lo siguiente:

$ cd /usr/lib/banshee/Extensions

Luego como usuario root o a través de sudo debes descargar este archivo en esa carpeta

# wget -c http://www.dartmouth.edu/~nstamato/BansheeRemoteListener.dll

Evidentemente el archivo se descargará en el directorio de extensiones de Banshee al hacer eso, ahora debemos activar la extensión en Editar > Preferencias > Extensiones

Activar Remote Control en Banshee

Activar Remote Control en Banshee

Por el momento solo se puede cambiar el puerto de escucha para la extensión, por defecto es 8484:

Cambiar puerto de Remote Control en Banshee

Cambiar puerto de Remote Control en Banshee

Mientras tanto en nuestro terminal con Android, debemos instalar esta aplicación: Banshee Remote. Al iniciar el app saldrá esta pantalla:

Pantalla inicial de Banshee Remote

Pantalla inicial de Banshee Remote

Introducimos la ip de nuestro equipo que ejecuta Banshee en ese momento, luego sincronizamos la aplicación con nuestro equipo (presionar tecla de menú y luego la opción Sync) y descargará nuestra lista de reproducción completa. Luego podremos seleccionar desde el smartphone lo que deseemos y correrá en banshee. Como bonus adicional, también puedes controlar el volumen con las teclas de volumen del smartphone.

Lista de artistas en Banshee Remote

Lista de artistas en Banshee Remote

Algo de AC/DC seleccionado desde Banshee Remote...

Algo de AC/DC seleccionado desde Banshee Remote…

Algo del patio... Alfredo "Fello" Escudero

Algo del patio… Alfredo “Fello” Escudero

Felicidades MD-36

El día de hoy, termina una etapa en mi vida y en la de mis compañeros, hoy se gradúa la promoción MD-36 (2006 – 2012) de la Facultad de Medicina de la Universidad de Panamá. Hoy, tengo sentimientos encontrados, una maraña de sensaciones que no sé como describir. Casi puedo asegurar que eso es lo que me tiene con dispepsia, en fin, esta es una entrada homenaje dedicada a mis compañeros y en especial a mi novia @helenna18 para recordarnos que a veces, por más dura que sea la vida, por más obstáculos que existan, por más decepciones que recibamos, si nos esforzamos podemos llegar lejos y esto se refleja el día de hoy. En pocas horas, abandonamos el status de universitarios y pasamos a ser licenciados, para el gusto de muchos, Doctores en Medicina. Luego de hoy, tal vez sea la última vez que nos veamos todos juntos, luego de hoy cada quien tomará su camino y hará su vida. Unos serán médicos internos de la Caja de Seguro Social en el Complejo Hospitalario Metropolitano, otros como @helenna18 y yo seremos médicos internos del Ministerio de Salud en el Hospital Santo Tomás.

Compañeros, hoy la sociedad nos otorga la tarea de ser acompañantes en las fronteras de la vida, tanto en sus albores como en su ocaso. Hoy celebran nuestras familias, amigos y profesores, porque el apoyo que nos han dado en estos años nos ha permitido ser dignos de adquirir un compromiso con el paciente y su salud. Y hoy celebramos nosotros, porque enfrentamos un gran desafío, recibimos una difícil pero preciosa carga. Y estoy confiado que estaremos a la altura de las circunstancias.

No me queda más que felicitar a todos por el éxito alcanzado y desearles a todos que sigamos cosechando más éxitos y triunfos en nuestras vidas.