Ikasten.IO
Learning, Aprendiendo

Running GUI applications with Docker in OSX 22 julio, 2017

A quick guide on how to run docker containers requiring a GUI with Mac and XQuartz. First, you’ll need to download and install XQuartz. Run it.
Now, start socat to expose local xquartz socket on a TCP port:

$ socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\"

Pass the display to container :

docker run -e DISPLAY=192.168.99.1:0 pygame xclock

I’m assuming that 192.168.99.1 is your vboxnet IP address and that “pygame” is the name of the docker image that contains your GUI application (in this case, my container’s name is pygame and the GUI is xclock)

For security purposes, you can use socat option range=/32 to filter the IP address (allowing only your primary IP to connect). Check also your XQuartz Preferences / Security tab:

Magic!

You can also launch a bash shell first and from there, run your GUI apps.

Sources:
[1] https://github.com/moby/moby/issues/8710#issuecomment-71113263
[2] http://fabiorehm.com/blog/2014/09/11/running-gui-apps-with-docker/
[3] https://github.com/CustardCat/pygame-docker

No hay comentarios en Running GUI applications with Docker in OSX
Categorias: docker

Online-pasahitzen segurtasun politikak. Oinarrizko gomendioak 22 mayo, 2017

Pasahitzen inguruan, askotan entzun dut kexu hau: “ezin ditut hainbeste pasahitz gogoratu!”. Jakin badakigu zein den horren ondorioa: webgune ezberdinetan pasahitza aukeratzerako unean, burua asko nekatu nahi ez eta pasahitz berdintsua aukeratzea ( superpasahitza, ikusietaikasi!, hegoakebakibanizion2002…). Agian gidoia, azpimarra edo zenbaki sinple bat erantsiz. Edo alderantziz idatzi. Bai, badakit noizbait hori egin duzula. Ez, azkenengo puntua ez, denak.

Enpin, beste estrategia aurreratuago bat maila ezberdinetako pasahitzak erabiltzea litzateke. Alegia, babestu nahi dudan hori oso garrantzitsua bada, pasahitz sendo bat aukeratuko dut: _?=superpasahitzasinkronikopatologikoa2014! . Ez bada hain garrantzitsua, zerbait errazago: -IkusiEtaIkasietaOndoEntzun-. Eta gainontzeko webgune guztietarako, pasahitz ziztrin bat: emoiztazumuxutxuemaitie ūüôā

Horrela, pasahitz bat esku zikinetan eroriz gero, beno, ez da munduko ezer onik galtzen. Baina ondo pentsatu: zer gerta daiteke? zure izenean bidalitako mehatxuak, mezu -oso- iraingarriak zabaldu, pribatutasun falta… Eta hori guztia kontutan izan gabe batzuetan “maila altuko” pasahitza beste webgune garrantzitsu batetan erabili duzula, edo hainbat webgunetan.

Ez baduzu pasahitzak sortu eta kudeatzeko politika sendo bat, zure pasahitzak ez dira inolaz ere sendoak. Are gehiago, zure eta zure inguruko segurtasuna ahultzen ari zara pasahitz bat berrerabiltzen duzun guztietan. Eta bai, ziur asko zure pasahitza, jada, cracker-en eskuetan egongo da. Ez al duzu sinisten? Zuk-zeuk proba dezakezu hemen. 3752 miloi kontuen pasahitzak daude bertan. Edo kasurik hoberenean, hash-ak. Baina hash baten esanahia eta zergatian ez naiz orain sartuko, beste artikulu batentzako utziko dut. Demagun zuzenean pasahitzak direla. Zure kontua bertan agertzen al da?
Nirea bai, 14 ALDIZ, leku ezberdinetan. Eta ez da nire errua izan ez bakar batean. Nire kontua kudeatzen zuten enpresek ez zuten, ikusten denez, hain ondo kudeatu.

Orduan, zer egin? Alde batetik, ez errepikatu pasahitzak. INOIZ. Beste aldetik, pasahitz sendoak hautatu. Eta azkenik, pasahitza-kudeatzaile bat erabili.

Pasahitz sendoak erabili

Noski, pasahitz sendoak erabiltzeak ez dituzula errepikatuko suposatzen du alde batetik. Eta bestetik, asmatzeko errazak ez direnak aukeratuko dituzula: hainbat karaktere ezberdin, letra larri eta xeheak uztartuz, ikurrak eta zenbakiak erantsiz. Nahiko luzeak. Adibidez:

(16 karakterez osatutakoa). Nik asmatu dut txurro hori? Ez, http://passwordsgenerator.net/ webgunetik hartu dut. Ausaz aukeratzen ditu zuk esandako irizpideak betetzen dituen pasahitzak. Horrelako webgune asko daude, aukeratu nahi duzuna, edo zuk-zeuk asmatu pasahitzak.

Pasahitz-kudeatzaileak erabili

Aurreko pasahitza gogoratzea posible bada ere (nemonikoak erabiliz: fruit ” EGG 7 ` zip USA park skype KOREAN < TOKYO / rope XBOX = ) ez da erraza. Eta ezin baditugu errepikatu (EZ! Ezin ditugu errepikatu!). are gutxiago. Orduan zer? Pasahitz-kudeatzaile bat erabili. Asko daude merkatuan, online, lokalak, software jabeduna, software librea... Ez dizut burua nekatu nahi. Nik erabiltzen dudana gomendatuko dizut: KeepassX. Software librea da (GPL), plataforma anitzetan dabil (Win, OSX, Linux). Erraz ikasiko duzu erabiltzen baina hona hemen argibide batzuk.

KeepassX aplikazioak bi fitxategi nagusi erabiltzen ditu: datubasea eta gakoa. Datubasean zure erabiltzaile/pasahitz/webgune hirukote guztiak gordeko ditu. Datubasea zifratu egingo du (inoiz galdu egiten baduzu, ez da ezer gertatuko, datuak zifratuak baitaude). Zifratzeko AES algoritmoa erabiltzen du (Advanced Encryption Standard, AES). Algoritmo hori simetrikoa da, alegia, pasahitz bat behar du zifratzeko eta pasahitz bera deszifratzeko. Segurtasunaren aldetik oso algoritmo sendoa da, lasai erabili dezakegu.
Beraz, KeepasX erabiltzen dugun guztietan gure pasahitzen datubasea deszifratzeko pasahitz nagusia eskatuko digu. Hori da, pasahitz sendo bat buruz ikasi eta gogoratu beharko duzu. Baina soilik bat.

Beste segurtasun neurri gisa gako fitxategi bat eskatu ahal dizu (defektuz horrela egiten du). Beraz, 2FA (Two Factor Authentication) edo bi faktoreetan oinarritutako kautotze prozesu bat erabiltzen duela esan dezakegu: alde batetik zuk dakizun zerbait behar du (pasahitza) eta bestetik zuk duzun zerbait (key edo gako fitxategia).

KeepassX aplikazio lokala da. Eta jada entzun ditut zure kexuak: “nik hainbat ordenagailuetan egiten dut lan, nola kudeatuko dut dena modu lokalean egiten badu lan?” Trikimailu bat erabiliko dugu hemen: KeepasX-ek behar dituen fitxategiak (datubasea edoeta key fitxategia) Dropboxen utzi. Gogoratu, zifratuta daude. Edo segurtasun neurri sendoago bat jarraituz: datubasea Dropboxen utzi eta key fitxategia USB batean (poltsikoan edo motxilan eramaten duzun USB horretan ūüėČ

Esandakoa, erabili nahi duzun aplikazioa eta segurtasuna politika, baina mesedez, ez berrerabili pasahitzak.

PRO-TIP: KeepassX erabiltzea aukeratuz gero, ez dituzu online pasahitz sortzailerik erabili behar. Aplikazioak berak eskainiko dizkizu ausaz sortutako pasahitz sendoak.

1 comentario en Online-pasahitzen segurtasun politikak. Oinarrizko gomendioak

Cómo hacer un backup de tus mensajes de Telegram 21 marzo, 2017

Supongamos que quieres hacer un backup de los mensajes de un grupo (canal, supergrupo, conversaciones privadas, usuarios, whatever…) de Telegram. ¬†Puede haber distintas razones para ello: simple copia de seguridad para estar tranquilo, porque vas a irte de un grupo, porque van a cerrar el mismo… o, como en mi caso, con fines estad√≠sticos.

Hasta donde yo s√©, Telegram no ofrece herramientas directas para esta labor, pero al usar un protocolo abierto y bien documentado, hay gente que se ha pegado el curro de implementar aplicaciones cliente desde cero. Una de esas aplicaciones es tg, escrita en C, software libre y ejecutable desde la l√≠nea de comandos. tg es “simplemente” un cliente de Telegram, pero ofrece -entre muchas otras funcionalidades interesantes- la opci√≥n de ser ejecutado en modo servidor. De esta forma, mediante scripting, nos ser√° posible obtener toda la informaci√≥n que tengamos almacenada en esta plataforma de mensajer√≠a instant√°nea. Pero no adelantemos acontecimientos ūüôā Lo primero ser√° compilar esta bestia, cosa nada f√°cil (al menos en OSX, donde estoy ahora mismo).

Descargamos tg y seguimos los pasos de compilación e instalación. En resumen:

git clone --recursive https://github.com/vysheng/tg.git
cd tg

En OSX necesitar√°s instalar dependencias usando brew como sistema de gestor de paquetes:
brew install libconfig readline lua python libevent jansson
Ver√°s multitud de warnings relacionados con posibles conflictos de versiones (sqlite, readline, SSL…). Brew nos avisa de que OSX ya viene con algunas de esas librer√≠as instaladas y que si queremos usar o compilar las de brew tendremos que cambiar las variables de entorno (PATH, LDFLAGS , CFLAGS, PKG_CONFIG_PATH). Bueno, por ahora haremos caso omiso a esos warnings. Y pasamos al siguiente paso:

./configure

Idealmente te debería mostrar un mensaje de que todo va bien.

Y llegamos al make, donde seguramente obtengas un error indicando algo similar a:

Un error en la línea get_peer. Si es el caso, tendrás que aplicar este parche, así:

y volver a ejecutar el make. Si todo va bien, obtendrás un mensaje como el siguiente y de premio, el ejecutable telegram-cli en la carpeta bin.

La primera vez que ejecutes tg tendr√°s que asociarlo con tu n√ļmero de tel√©fono. No olvides indicar el prefijo +34 si est√°s en Espa√Īa. Te llegar√° un PIN de verificaci√≥n al tel√©fono (a trav√©s de un mensaje Telegram). Es el PIN que deber√°s indicar en la l√≠nea CALL correspondiente.
u026627:bin juanan$ ./telegram-cli
Telegram-cli version 1.4.1, Copyright (C) 2013-2015 Vitaly Valtman
Telegram-cli comes with ABSOLUTELY NO WARRANTY; for details type show_license'.
This is free software, and you are welcome to redistribute it
under certain conditions; type
show_license' for details.
Telegram-cli uses libtgl version 2.1.0
Telegram-cli includes software developed by the OpenSSL Project
for use in the OpenSSL Toolkit. (http://www.openssl.org/)
I: config dir=[/Users/juanan/.telegram-cli]
[/Users/juanan/.telegram-cli] created
[/Users/juanan/.telegram-cli/downloads] created
phone number: +34XXXXXXXXX
code ('CALL' for phone code): XXXXX
User Juanan Pereira updated flags
User Juanan Pereira online (was online [2017/03/20 14:15:45])

Ahora dispondrás de multitud de comandos (teclea help para ver la lista completa). Puedes probar que todo ha ido bien tecleando comandos como get_self, para obtener información sobre tu cuenta en Telegram, contact_list para ver un listado con el nombre de tus contactos o channel_list para ver el nombre de los canales y grupos a los que estás suscrito.

Es interesante remarcar que tg dispone de autocompletamiento en la línea de comandos (soporte readline), por lo que basta con teclear las primeras letras del comando y pulsar TAB para que rellene el resto. Para salir, teclear quit.

Para poder cumplir con el objetivo marcado al comienzo de este post (backup de los mensajes de un grupo) necesitaremos instalar un script que maneje tg de forma autom√°tica. Se trata de telegram-history-dump, escrito en Ruby:

git clone https://github.com/tvdstaaij/telegram-history-dump

Debemos asegurar que disponemos de una versión reciente de Ruby (>= 2.0).

Ahora podemos decidir hacer backup de todo o s√≥lo de algunos grupos en concreto. Yo s√≥lo necesito backup de un super-grupo, as√≠ que edito el fichero de configuraci√≥n del script config.yaml¬†e indico en la secci√≥n [backup_supergroups] que quiero s√≥lo el grupo “MI_GRUPO”. En el resto de secciones, indico null.

Para finalizar, lanzamos tg en modo servidor:

./telegram-cli --json -P 9009

(escuchando en el puerto 9009 e intercambiando mensajes en formato JSON)

y ¬°por fin! lanzamos el script de backup:

Tras unos segundos (veremos el progreso en la terminal donde tengamos lanzado telegram-cli) obtendremos el resultado en la carpeta output/ . Si disponemos del comando jq (si no, lo instalamos con brew install jq) podremos visualizar el JSON resultante cómodamente así:

Espero que os haya sido de inter√©s ūüôā

 

5 comentarios en Cómo hacer un backup de tus mensajes de Telegram
Categorias: Bash JSON MacOSX Telegram

Compilando phantomjs para ARM 21 febrero, 2017

Solución: Crear un fichero de SWAP https://www.cyberciti.biz/faq/linux-add-a-swap-file-howto/

y seguir compilando siguiendo la guía de la propia web de Phantomjs.

Done! Puedes descargar el binario desde este repositorio GitHub.

No hay comentarios en Compilando phantomjs para ARM
Etiquetas: ,
Categorias: Cloud

SSH-Vault: Cifrar y descifrar un fichero usando la clave ssh 24 enero, 2017

Suelo pedir a mis alumnos que generen un¬†par de claves SSH¬†para darles de alta en alguno de los servidores que usamos en la asignatura (a√Īadiendo la parte p√ļblica en el fichero de claves autorizadas, authorized_keys). Lo siguiente suele ser crearles una base de datos y un usuario con acceso a la misma. Aqu√≠, el usuario necesita una contrase√Īa. Para pasarles esta contrase√Īa y otros datos privados, sol√≠a pedirles a su vez que me enviaran su clave p√ļblica GPG. Realmente, este √ļltimo paso no es necesario… si disponemos ya de una clave p√ļblica SSH podemos usarla para cifrar y descifrar ficheros, muy f√°cilmente. Una de las formas m√°s sencillas es mediante una aplicaci√≥n de la l√≠nea de comandos, ssh-vault.com.

Para cifrar, usaremos el siguiente comando:

Para descifrar, el receptor usar√° este otro comando:

Tambi√©n podr√≠amos haber evitado el uso de una aplicaci√≥n extra, usando los comando ssh-keygen y openssl que seguramente ya tengamos (la “pega” es que un usuario Windows no las tendr√°…):

Convertimos la clave p√ļblica ssh a formato PEM:

A continuación, ciframos el mensaje:

El receptor usará también openssl para descifrar:


Fuente, cómo no, un hilo de discusión en SuperUser, una de las webs de la red StackExchange, la misma que alberga a StackOverflow.com

1 comentario en SSH-Vault: Cifrar y descifrar un fichero usando la clave ssh
Categorias: ssh