Jueves 09 de diciembre de 2021

Héctor Daniel Cortés

Héctor Daniel Cortés
'Aztec Eagle' Turbo

pcDuino3 Fedora 35


+ uname -a
Linux pcDuino3 5.14.16-301.fc35.armv7hl #1 SMP Wed Nov 3 15:14:54 UTC 2021 armv7l armv7l armv7l GNU/Linux

+ cat /proc/cpuinfo
processor : 0
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 50.52
Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4

processor : 1
model name : ARMv7 Processor rev 4 (v7l)
BogoMIPS : 50.52
Features : half thumb fastmult vfp edsp thumbee neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x0
CPU part : 0xc07
CPU revision : 4

Hardware : Allwinner sun7i (A20) Family
Revision : 0000
Serial : 165166930941111e

+ cat /proc/interrupts
CPU0 CPU1
26: 0 0 GICv2 29 Level arch_timer
27: 2086403092 1976500605 GICv2 30 Level arch_timer
30: 0 0 GICv2 54 Level timer@1c20c00
31: 0 0 GICv2 113 Level sun5i_timer0
32: 0 0 GICv2 152 Level arm-pmu
33: 0 0 GICv2 153 Level arm-pmu
34: 0 0 GICv2 59 Level 1c02000.dma-controller
37: 0 0 GICv2 85 Level 1c0e000.video-codec
38: 163314856 0 GICv2 64 Level sunxi-mmc
39: 0 0 GICv2 70 Level musb-hdrc.1.auto
40: 355744092 0 GICv2 71 Level ehci_hcd:usb1
41: 0 0 GICv2 96 Level ohci_hcd:usb2
43: 0 0 GICv2 88 Level ahci-sunxi[1c18000.sata]
44: 2 0 GICv2 72 Level ehci_hcd:usb3
45: 159952078 0 GICv2 97 Level ohci_hcd:usb5
48: 0 0 GICv2 56 Level 1c20d00.rtc
52: 241987 0 GICv2 37 Level sunxi-ir
54: 2166086 0 GICv2 61 Level sun4i_gpadc_irq_chip
55: 2269 0 GICv2 33 Level ttyS0
56: 62628480 0 GICv2 39 Level mv64xxx_i2c
57: 0 0 GICv2 101 Level gp
58: 0 0 GICv2 102 Level gpmmu
59: 0 0 GICv2 103 Level pp0
60: 0 0 GICv2 104 Level ppmmu0
61: 0 0 GICv2 106 Level pp1
62: 0 0 GICv2 107 Level ppmmu1
64: 3356178 0 GICv2 117 Level eth0
71: 0 0 sunxi_pio_edge 1 Edge 1c0f000.mmc cd
74: 1 0 sunxi_pio_edge 4 Edge usb0-id-det
87: 1 0 sunxi_pio_edge 17 Edge Key Back
88: 1 0 sunxi_pio_edge 18 Edge Key Home
89: 1 0 sunxi_pio_edge 19 Edge Key Menu
102: 0 0 sunxi-nmi 0 Level axp20x_irq_chip
136: 0 0 axp20x_irq_chip 33 Edge axp20x-pek-dbr
137: 0 0 axp20x_irq_chip 34 Edge axp20x-pek-dbf
142: 2165966 0 sun4i_gpadc_irq_chip 1 Edge temp_data
143: 0 0 sun4i_gpadc_irq_chip 0 Edge fifo_data
IPI0: 0 0 CPU wakeup interrupts
IPI1: 0 0 Timer broadcast interrupts
IPI2: 88007657 250506745 Rescheduling interrupts
IPI3: 18652363 64636940 Function call interrupts
IPI4: 0 0 CPU stop interrupts
IPI5: 11401274 13195203 IRQ work interrupts
IPI6: 0 0 completion interrupts
Err: 0

+ cat /proc/iomem
00000000-0000bfff : 0.sram sram@0
00010000-00010fff : 10000.sram sram@10000
01c00000-01c0002f : 1c00000.system-control system-control@1c00000
01c00030-01c0003b : interrupt-controller@1c00030
01c02000-01c02fff : 1c02000.dma-controller dma-controller@1c02000
01c0e000-01c0efff : 1c0e000.video-codec video-codec@1c0e000
01c0f000-01c0ffff : 1c0f000.mmc mmc@1c0f000
01c13000-01c133ff : usb@1c13000
01c13000-01c133ff : musb-hdrc.1.auto usb@1c13000
01c13400-01c1340f : 1c13400.phy phy_ctrl
01c14000-01c140ff : 1c14000.usb usb@1c14000
01c14400-01c144ff : 1c14400.usb usb@1c14400
01c14800-01c14803 : 1c13400.phy pmu1
01c15000-01c15fff : 1c15000.crypto-engine crypto-engine@1c15000
01c18000-01c18fff : 1c18000.sata sata@1c18000
01c1c000-01c1c0ff : 1c1c000.usb usb@1c1c000
01c1c400-01c1c4ff : 1c1c400.usb usb@1c1c400
01c1c800-01c1c803 : 1c13400.phy pmu2
01c20000-01c203ff : clock@1c20000
01c20800-01c20bff : 1c20800.pinctrl pinctrl@1c20800
01c20c90-01c20c9f : 1c20c90.watchdog watchdog@1c20c90
01c20d00-01c20d1f : 1c20d00.rtc rtc@1c20d00
01c21800-01c2183f : 1c21800.ir ir@1c21800
01c22c00-01c22c3f : 1c22c00.codec codec@1c22c00
01c23800-01c239ff : 1c23800.eeprom eeprom@1c23800
01c25000-01c250ff : 1c25000.rtp rtp@1c25000
01c28000-01c2801f : serial
01c2ac00-01c2afff : 1c2ac00.i2c i2c@1c2ac00
01c40000-01c4ffff : 1c40000.gpu gpu@1c40000
01c50000-01c5ffff : 1c50000.ethernet ethernet@1c50000
01c60000-01c60fff : hstimer@1c60000
01d00000-01dcffff : 1d00000.sram sram@1d00000
40000000-7fffffff : System RAM
40208000-413fffff : Kernel code
41600000-418ed5d8 : Kernel data

+ free
total used free shared buff/cache available
Mem: 1013580 145172 638496 868 229912 836728
Swap: 1012732 20224 992508

+ lsusb
Bus 005 Device 002: ID 0403:6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Martes 07 de diciembre de 2021

Héctor Daniel Cortés

Héctor Daniel Cortés
'Aztec Eagle' Turbo

Alerta Sísmica en IER-UNAM

Hace unos días instalaron una alerta sísmica en mi lugar de trabajo, el Instituto de Energías Renovables


 


Mientras se realizaban las pruebas se escuchaba una voz que decía, entre otras cosas: "transmitiendo en la frecuencia de 162.475 MHz..."

De modo que, después de buscarlo en algún lugar abandonado y encontrarlo, conecté mi Realtek RTL2832U reference design, instalé Gqrx y sintonicé la frecuencia indicada: 162.475 MHz. Efectivamente, la FFT mostraba que sobre el ruido allí había algo.



Después de jugar un rato, las mejores condiciones se obtiene con los siguientes parámetros: Narrow FM, Voz (2.5KHz), τ=520µS.

Se puede escuchar el siguiente mensaje de voz: 

«XMOR/009 Hutzilac
Transmitiendo las 24 horas del día en la frecuencia de 162.475 MHz con potencia radiada de 100 W
Emisora de alertamiento de riesgos del Estado de Morelos
Retransmitiendo la señal de alerta sísmica del gobierno de la Ciudad de México.
Presidencia Municipal de Huitzilac»

Al parecer, la antena se encuentra aquí: 19°001'42.7%22N+99°016'00.8%22W

Tengo entendido que la alerta sísmica es semejante a las alertas del NOAA, que para indicar una alerta transmiten un tono de 1050 Hz. Desafortunadamente en México dicha información no está documentada. Esto permite el monopolio de SARMEX con el consecuente aumento en los precios de estos dispositivos.

IMHO aquí en Morelos yo no le veo la utilidad a la alerta sísmica, la cual se activa con los sismos en la falla del Océano Pacífico. El sismo del 19 de septiembre del 2017, que causó graves daños en Morelos, vino de Puebla. La alerta sísmica no se activa con estos eventos.

Pásenlo bien. Y felices códigos.

Sábado 30 de octubre de 2021

Max Valdez

Sysadmin en 2021

No es ningún secreto que los sysadmins somos una especie en extinción, hace más de 10 años que la industria ha ido cambiando paulatinamente hacia servicios basados en infraestructura diferente a la que dominaba el mercado en la década antepasada. Los sysads hemos tenido que ir aprendiendo nuevos temas como nube, automatización, metodología ágil y demás para intentar mantenernos vigentes.

Ademas hemos tenido que optimizar los conocimientos de manejo de sistema operativo, aprender con buen detalle el manejo de servicios de correo, web, bases de datos, seguridad de redes, scripting, y la lista sigue y sigue.

Mientras tanto el mercado laboral ha ido migrando a un modelo diferente en el que ya no se usa tanto la habilidad de administrar servidores sino que se “orquestan”, de tal manera que con mucha frecuencia lo que sabe un sysadmin, y que aprendió durante muchos años, ya no es requerido o bien pagado como los nuevos puestos de “Ingenieria de nube” (cloud) que termina siendo una forma muy diferente de manejar infraestructura en la que no es tan importante saber demasiado del sistema operativo Linux y sus servicios, ya que se usan “plantillas” conocidas para el OS, para los servicios (web, bases de datos, redes, etc.) y además son específicas de la nube que se usa, es decir, dependen del proveedor con el que se manejan.

La gran diferencia entre el modelo sysad y el de cloud es que el primero requiere en estos días saber muchísimo de Linux y muchos servicios asociados a este; el modelo de cloud lo que requiere es entender como se relacionan las aplicaciones del proveedor (Amazon, Google, Microsoft, etc.) y cuales son las plantillas de configuración para los servicios que se requieren. Si el equipo de desarrollo de las apps (casi siempre web apps) hace lo correcto para nube, el administrador de cloud no necesita preocuparse de gran cosa excepto saber cómo orquestar la infraestructura de nube.

Aprender a manejar cloud puede ser cosa de meses, se pueden lograr diseños muy complicados con estudiar unos cuantos meses, cosa que en un ambiente tradicional es poco probable que se logre en menos de años, sin mencionar que va a ser poco probable que alguien que solo tiene unos meses de experiencia pueda tener la oportunidad de “jugar” con una infraestructura grande y complicada… no solo es difícil de manejar, el costo de la infraestructura es tan alto que nadie arriesgaría dejarla a cargo de alguien sin experiencia.

De tal manera que en estos días un sysad con varios (>2 y <5-10) años de experiencia puede ganar menos que alguien que trabaja en cloud y tiene meses o un par de años de experiencia a lo mucho… y ni hablar de un ingeniero de cloud con más años de experiencia.

Todo esto ha movido el mercado laboral a un concepto mayormente introducido por google que es el de los Site Reliability Engineers (SRE); que podríamos decir son sysads con suficiente experiencia para manejar ambientes complicados incluyendo la optimización de configuraciones, buen conocimiento se redes, seguridad, e incluso programación a un nivel al menos intermedio para poder detectar problemas de código, proponer y hasta implementar mejoras en las mismas aplicaciones, entre otras cosas.

Posiblemente podríamos decir que ahora existen dos puestos: el de los que saben de nube, y el de los que saben de todo. Estos últimos serían los sysads pero ahora saben mucho más de lo que era necesario hace 10-20 años, es decir que saber lo que sabía un sysad de entonces ya no es valorado a menos que ese sysad lo sepa con más detalle y que sepa de varios otros temas a un buen nivel incluyendo algo de manejo de proyectos, y por supuesto cloud… creo que ya voy dándome a entender lo que significa ser sysad en 2021, verdad?

Hace 20 años tuvimos la transición de los webmasters a los sysads, de manera similar a la transición de estos últimos 10 años (ha sido larga) de pasar de los sysads a los SREs. Siento que cada transición es como un orden de magnitud más en la complejidad de lo que requiere saber alguien para trabajar en el puesto; es decir, ahora la complejidad es como 100 veces mayor que hace 20 años, y es posible porque tenemos acceso a documentación y entrenamiento que antes era totalmente inexistente.

Lo que no veo tan usual es que un ingeniero de cloud vaya en camino a ser SRE, sucede, pero no hay un camino claro para ello en especial porque el incentivo económico puede no ser muy atractivo, se gana bien sin tener que complicarlo todo. De tal manera que ahora la curva de aprendizaje para el sysad es muy empinada y hasta que se tiene el nivel de SRE es que el sueldo se convierte en algo muy atractivo… en cambio en cloud puedes tener sueldos atractivos en cosa de meses.

La dinámica laboral y de competencias se ha vuelto interesante, tal vez escriba otra publicación al respecto, mientras tanto, poco a poco vamos desapareciendo los sysads, sobreviven los que pasan a SRE o a ingeniero de cloud para competir con la nueva generación.

The post Sysadmin en 2021 first appeared on GaRaGeD Style.

Lunes 25 de octubre de 2021

Max Valdez

La controversia al rededor de la UNAM

Hoy leí una nota “en defensa” de la UNAM, y en las últimas semanas he leído otras, y oído de vez en cuando las preguntas que le hacen al Peje en las Mañaneras, y realmente me es difícil ver la opinión en defensa de la universidad porque yo pasé unos 8 años como estudiante y luego trabajé 7 años en uno de sus centros/institutos ( se convirtió en el inter) y cualquiera que haya pasado unos años en la UNAM va a saber de los manejos que se hacen y probablemente incluso llegue a ser víctima del abuso se poder de “los de arriba”.

Nadie honesto puede negar que la UNAM se maneja por grupos de poder, no uno solo, y el poder mas fuerte usualmente es el cercano al rector, y más localmente de los directores. No voy a decir que todo es corrupción, para nada, pero definitivamente hay mucha, más de la que debería tolerarse con la tranquilidad con la que se tolera la existente en la UNAM.

Tengo muy buenos amigos en la UNAM, y les pido disculpas porque a algunos les molestará mi opinión, pero dejar las cosas como están no es una decisión que le convenga a la universidad, no se está haciendo lo mejor posible, y mucho dinero se tira a la basura gracias a esos compromisos creados a base se “apoyos” entre cuates y concentración de proyectos en grupos que los usan para beneficio económico de unos cuantos.

No tengo mucha confianza en que realmente haya un cambio serio, porque por definición los que desvían dinero lo hacen cuidando sus espaldas, y es extremadamente complicado probar lo que sea, solo sucede lo que los de poder quieren que suceda, y el “ataque” que están sufriendo atenta contra los intereses de los que se han beneficiado por mucho tiempo, no van a dejar ir esos beneficios así nada más.

Si alguien tiene intención de mejorar las cosas que hable con los que no tienen poder, con los que son de las generaciones más jóvenes, hay muchos que estoy seguro estarían dispuestos a hablar sobre los manejos, los abusos de poder y de la discriminación que se da de manera cotidiana gracias a que ya se acepta como normal que los de poder pueden salirse con la suya.

No se puede tapar el sol con un dedo, pero tampoco es fácil combatir la corrupción, ni siquiera con pruebas, esto va para largo, pero ojalá que sí mejore en algo la situación de la UNAM, es una lástima que la máxima cada de estudios ponga un ejemplo tan bajo en cuestión de ética e igualdad de oportunidades.

The post La controversia al rededor de la UNAM first appeared on GaRaGeD Style.

Viernes 05 de febrero de 2021

Max Valdez

Y otro más no perceptible

Después de muchos años, migré la base de datos del sitio de MyISAM a InnoDB, realmente no hay nada importante de diferencia, excepto a mediano y largo plazo tal vez, pero pues no tengo mucho más que decir, así que eso 😀

A ver si vuelvo pronto.

The post Y otro más no perceptible first appeared on GaRaGeD Style.

Jueves 07 de enero de 2021

Héctor Daniel Cortés

Héctor Daniel Cortés
'Aztec Eagle' Turbo

Arduino Yún LininoOS

No me había dado cuenta que no he publicado los básicos del Arduino Yún:


# uname -a
Linux yun402b 3.3.8 #1 Sun Oct 4 02:29:26 CEST 2015 mips GNU/Linux

# cat /proc/cpuinfo
system type : Atheros AR9330 rev 1
machine : Arduino Yun
processor : 0
cpu model : MIPS 24Kc V7.4
BogoMIPS : 265.42
wait instruction : yes
microsecond timers : yes
tlb_entries : 16
extra interrupt vector : yes
hardware watchpoint : yes, count: 4, address/irw mask: [0x0000, 0x03a8, 0x03f8, 0x05e0]
ASEs implemented : mips16
shadow register sets : 1
kscratch registers : 0
core : 0
VCED exceptions : not available
VCEI exceptions : not available

# cat /proc/interrupts
CPU0
2: 13806 MIPS ath9k
3: 3612 MIPS ehci_hcd:usb1
4: 0 MIPS eth1
5: 0 MIPS eth0
7: 111541 MIPS timer
10: 0 MISC ath79-gpio
11: 4520 MISC ar933x-uart
ERR: 0

# cat /proc/iomem
00000000-03ffffff : System RAM
00060000-002ad897 : Kernel code
002ad898-0034e3df : Kernel data
18020000-180200ff : ar933x-uart
18100000-1811ffff : ar933x_wmac
19000000-190001ff : mac_base
1a000000-1a0001ff : mac_base
1a000000-1a0001ff : mdio_base
1b000000-1b000fff : ehci-platform
1b000000-1b000fff : ehci_hcd
1f000000-1fffffff : ath79-spi

# free
total used free shared buffers
Mem: 61324 34508 26816 0 5180
-/+ buffers: 29328 31996

# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 001 Device 003: ID 058f:6366 Alcor Micro Corp. Multi Flash Reader

# cat /etc/openwrt_version
linino

# cat /etc/openwrt_release
DISTRIB_ID="Linino"
DISTRIB_RELEASE="devel"
DISTRIB_REVISION="r41182"
DISTRIB_CODENAME="attitude_adjustment"
DISTRIB_TARGET="ar71xx/generic"
DISTRIB_DESCRIPTION="Linino Attitude Adjustment devel"

Martes 18 de agosto de 2020

Mario Oyorzábal

Mario Oyorzábal
tuxsoul

no puedes utilizar codi por tú seguridad

Los bancos, ese bonito servicio, que casi todos utilizamos y del cual no quisiéramos saber la mayor parte del tiempo, es increíble como los bancos se preocupan por nosotros, aja, desde hace tiempo, los bancos mediante comisiones por el uso de su infraestructura, nos permiten, recibir y realizar transferencias SPEI, recibir depósitos, etc., por una parte es una forma más fácil, pero que con el tiempo deja de ser práctico.

Recuerdo que cuando se hablaba de SPEI, muy pocos sabían que era y como se utilizaba, hoy en día es más común su uso y la mayoría sabe que es.

Lamentablemente SPEI, no es práctico para hacer una compra en una tienda física, aunque si se puede utilizar, como en algunos comercios en internet, no creo, que quien nos atienda tenga la paciencia de esperarnos a realizar un pago SPEI, otro problema, es el tiempo de la transferencia, he realizo transferencias SPEI que son instantáneas y otras que han tardado demasiado tiempo en reflejarse.

En una tienda en físico, podemos realizar pagos con otras opciones que son productos de terceros y están fuera de los bancos, como por ejemplo, Mercado Pago, el cual nos permite recibir pagos mediante diferentes comercios, recibir tarjetas de débito o crédito, realizar pagos a comercios, mediante un código QR, el detalle de esto, es que el comercio debe de aceptar dichos pagos con previo registro en Mercado Pago, así como otras opciones más que existen en el mercado.

A todo esto Banxico, para promover más el uso del pago electrónico y homologar la forma de pago, saco un nuevo producto llamado CoDi, el cual se supone es fácil de usar, y permite también de manera fácil, el poder recibir y realizar pagos.

CoDi® es la nueva forma de realizar pagos digitales desarrollada por el Banco de México. Con CoDi® realiza cobros y pagos desde tu celular, utilizando una cuenta bancaria o de alguna institución financiera, sin comisiones.

CoDi, no es una tecnología nueva, utiliza la misma red de pagos SPEI, y se utiliza mediante códigos QR, lo que a mi me llamo la atención, es la posibilidad de cobrar a clientes con una herramienta más genérica y que es más fácil que el cliente tenga, en teoría.

Desde que CoDi comenzó, muchos bancos actualmente ya cuentan con el servicio, y es posible utilizarlo mediante una aplicación para nuestro teléfono.

Por cuestiones de algún post que terminare de escribir, tengo una cuenta en Banco Azteca, y creí poder utilizar CoDi, sin problemas, pero al tratar de utilizar la herramienta, la aplicación me muestra el mensaje siguiente.

bancoazteca codi

Que consideración de Banco Azteca, preocuparse por mi seguridad, aja, me comunique con el soporte técnico, y lo que conseguí, fue lo mismo, no puedo utilizar la opción de CoDi, porque mi teléfono esta modificado, pero, si puedo utilizar la aplicación, para realizar operaciones normales.

Entonces recordé, que hace tiempo, tramite una tarjeta de débito de Amazon, el banco que le da soporte es Banorte, creí que Banorte seria una buena opción, y estaba considerando, tal vez, en un futuro tener otros productos de Banorte, hace tiempo descargue la aplicación, y pude utilizarla sin problemas, solo que en esa ocasión, aún no contaba con soporte para CoDi, el detalle que vi también, es que desde la aplicación no es posible bloquear la tarjeta de débito de Amazon, como en otros bancos, eso un problema, dado que Banorte tuvo problemas y muchos usuarios experimentaron cobros no autorizados de las tarjetas de débito de Amazon.

Hace poco al tratar de utilizar de nuevo la aplicación de Banorte, me encontré con el siguiente mensaje, al intentar acceder a la aplicación.

banorte codi

Al ingresar a la dirección que se menciona en el mensaje, solo encontré un PDF, que explica como deshabilitar el modo desarrollador, en los teléfonos con Android, en este caso la aplicación de Banorte, no es posible utilizarla de ninguna forma.

Lo curioso del caso, que tanto Banco Azteca y Banorte, detectan que mi teléfono esta modificado, algo que no es así, esto es muy raro, ya que utilizo otras aplicaciones y no tengo ningún otro problema, también verifique la opción que menciona Banorte y esta misma se encuentra deshabilitada en mi teléfono.

Lamentablemente, es un falso sentido de seguridad, hace que uno se pregunte, si es así o no, pero, y si yo modificara mi teléfono por alguna razón que para mi es importante, no debería haber nada que no me lo permita, porque es mi teléfono, y si las aplicaciones de Banco Azteca o Banorte, no me permiten utilizarlas en estas condiciones, bueno, a cambiar de banco, y eso es lo que hice.

Y algo que nunca me imagine, es utilizar un producto de BBVA, dado que no me gusta visitar sus sucursales, por la mala actitud que me he encontrado, principalmente con el personal de la entrada, pero con el cual ya tengo funcionando CoDi sin problemas, en el mismo teléfono, ahora solo falta comenzar su uso recibiendo y realizando pagos.

Cuando veo ciertas señales en un banco, prefiero dejar de utilizar sus servicios, que sufrir por sus malas decisiones, soporte, o falso sentido de seguridad.

 

En tuxsoul necesitamos tu apoyo con más Pizza, para seguir escribiendo.

Lunes 27 de julio de 2020

Mario Oyorzábal

Mario Oyorzábal
tuxsoul

instalar certbot y evitar errores en renovacion de certificados

Actualmente, es más sencillo contar con un certificado de seguridad, para un sitio web, todo gracias a letsencrypt, es un servicio gratuito para tener un certificado de seguridad, con el cual se puede cifrar el contenido hacia el usuario visitante, es decir, el sitio web puede visitarse a través de “https” con un certificado valido, cabe recalcar que existen diferentes tipos de certificados, dependiendo nuestra necesidad puede servir o no el uso de letsencrypt.

Para usar letsencrypt, basta con instalar en nuestra distro favorita, el comando certbot o al menos la manera de hacerlo en GNU/Linux Debian, seria la siguiente.

# apt-get -f install certbot python3-certbot-apache

Al momento de escribir este post, el comando anterior funciona para instalar el comando certbot de letsencrypt, en un servidor que utiliza Apache como servidor de páginas web, también instala un cron para la renovación automática de los certificados que tengamos.

Una vez instalado el comando certbot, podemos generar los certificados de seguridad que necesitemos, para ello, indicaremos a certbot los dominios o subdominios que necesitan un certificado de seguridad, se puede consultar la documentación si es necesario.

# certbot --apache -d dominio1.com -d dominio2.com

Con el comando anterior, certbot tomara en cuenta el plugin de Apache, para incluir la configuración adicional necesaria, agregara algunas lineas al archivo de nuestro dominio en Apache, por ejemplo, puede ser “000-default.conf” y creara un nuevo archivo llamado “000-default-le-ssl.conf”.

Como se puede observar, la instalación y configuración de certbot, es muy sencilla, con lo anterior, ya están funcionando los dominios o subdominios con un certificado de seguridad y sirviendo paginas en un protocolo seguro como lo es “https”.

Desde que comencé a utilizar certbot, para manejar los certificados de seguridad, hasta hace poco, no había experimentado ningún problema en la renovación automática de los certificados.

El problema en la renovación de los certificados, viene a raíz de un cambio en la configuración, es decir, actualmente todos los sitios web o en su mayoría, muestran todo el contenido bajo “https”, para ello, se realiza una redirección utilizando cualquier método, puede ser a través del “.htaccess”, “Cloudflare” o en la propia configuración de Apache.

Pero, al realizar una redirección de todo el contenido a “https”, rompe la renovación de los certificados de seguridad, mediante certbot, cuando certbot necesita renovar los certificados de seguridad, realiza algunas operaciones, contacta al servidor de letsencrypt, resuelve un “challenge” o “reto” y lo sirve a los servidores de letsencrypt, aquí es donde el problema surge, por esta razón, en algunas ocasiones, se necesita agregar las siguientes lineas a cada regla que tengamos en el archivo “.htaccess”, para evitar que los servidores de letsencrypt reciban una redirección, en lugar de la respuesta al “challenge”, la cual se sirve solo por “http” y no por “https”.

# letsencrypt
RewriteCond %{REQUEST_URI} !^/\.well-known/acme-challenge/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/cpanel-dcv/[0-9a-zA-Z_-]+$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/[A-F0-9]{32}\.txt(?:\ Comodo\ DCV)?$
RewriteCond %{REQUEST_URI} !^/\.well-known/pki-validation/(?:\ Ballot169)?

Existe una situación muy distinta, cuando utilizamos Cloudflare, para realizar una redirección de contenido a “https”, Cloudflare integra una opción sencilla, pero lamentablemente, realiza una redirección de todo el contenido, sin manera de especificar una exclusión, como en las lineas anteriores para “.htaccess”.

También, certbot agrega una redirección de todo el contenido a “https”, mediante la configuración de Apache, si se le indica en el proceso de creación de los certificados de seguridad, hasta el momento no he utilizado esa opción, no sé si se repita este tipo de problema en ese caso.

Cuando vi este problema en un servidor, fue necesario renovar el certificado de manera manual, además, cambiar temporalmente la configuración de seguridad que se tiene en Cloudflare, lo que es un dolor de cabeza cada cierto tiempo.

Al revisar los registros o “logs” de letsencrypt, se puede ver el proceso que sigue certbot para la renovación de certificados, me llamo la atención, como se sirve la respuesta al “challenge” o “reto” pero con el plugin de Apache, en el proceso certbot modifica de manera temporal el archivo de configuración del sitio en “http”, pero no lo hace para el sitio en “https”, es decir, si nuestro contenido se redirecciona totalmente a “https” mediante Cloudflare, certbot solo prepara la respuesta para “http” y deja intacta la configuración de “https”, con lo cual, tendremos un hermoso “error 404, no autorizado“.

Para solucionar este último problema, solo fue necesario editar la configuración que utiliza certbot para la renovación, la cual se puede encontrar en el directorio “/etc/letsencrypt/renewal”, dependiendo el nombre del dominio se encontrara un archivo “.conf”.

Ejemplo.

# renew_before_expiry = 30 days
version = 0.XX.0
archive_dir = /etc/letsencrypt/archive/dominio.com
cert = /etc/letsencrypt/live/dominio.com/cert.pem
privkey = /etc/letsencrypt/live/dominio.com/privkey.pem
chain = /etc/letsencrypt/live/dominio.com/chain.pem
fullchain = /etc/letsencrypt/live/dominio.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = apache
server = https://acme-v02.api.letsencrypt.org/directory
installer = apache
account = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Se cambia el método “authenticator” de “apache” a “webroot”, “webroot” es una opción de certbot para la configuración, este método consiste en crear la respuesta del “challenge” o “reto”, utilizando el sistema de archivos, es decir, se creara un archivo o enlace al “challenge” o “reto” para ser servido a los servidores de letsencrypt, sin importar si se utiliza “http” o “https”, el archivo de configuración anterior, debe quedar de la siguiente manera.

# renew_before_expiry = 30 days
version = 0.XX.0
archive_dir = /etc/letsencrypt/archive/dominio.com
cert = /etc/letsencrypt/live/dominio.com/cert.pem
privkey = /etc/letsencrypt/live/dominio.com/privkey.pem
chain = /etc/letsencrypt/live/dominio.com/chain.pem
fullchain = /etc/letsencrypt/live/dominio.com/fullchain.pem

# Options used in the renewal process
[renewalparams]
authenticator = webroot
server = https://acme-v02.api.letsencrypt.org/directory
installer = apache
account = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

[[webroot_map]]
dominio.com = /var/www/dominio.com/

Después de realizar varias pruebas y replicar este cambio de configuración con otros servidores, no he visto hasta el momento más errores en el proceso de renovación de certificados de seguridad.

Esto último, no quiere decir, que se cambie la forma en la que se generan por primera vez los certificados de seguridad, mediante certbot para Apache, el proceso debe ser el mismo, utilizando el plugin para Apache, solo que al final, es necesario realizar esta modificación.

 

En tuxsoul necesitamos tu apoyo con más Pizza, para seguir escribiendo.

Miércoles 24 de junio de 2020

Mario Oyorzábal

Mario Oyorzábal
tuxsoul

primera transición a nuevas llaves gpg

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1,SHA512

Miércoles 24 de Junio del 2020

Por una serie de razones [0], he creado una nueva clave OpenPGP,
y voy a abandonar mi antigua clave para empezar a usar la nueva.

La clave antigua continuará siendo válida unos meses más, pero
prefiero que cualquier intercambio futuro use la nueva clave.
Así mismo me gustaría reintegrar la nueva clave en la red de
confianza actual. Este mensaje está firmado por ambas claves
para certificar la transición.

La clave antigua era:

pub   dsa1024 2005-08-13 [SCA] [caduca: 2021-01-02]
      3119 5A09 CE9E 4928 B968  A637 9787 4067 2871 11EE

Y la nueva clave es:

pub   rsa4096 2012-08-04 [SC] [caduca: 2025-01-02]
      E621 201E 1ACF 773F 2AE0  CC75 B213 173E 97C0 5035

pub   ed25519 2019-01-21 [SC] [caduca: 2025-01-02]
      A185 0AB9 51CB 1794 253E  16B2 F27F D79F F28F 0FCE

Para obtener la nueva clave completa, la puedes descargar desde
un servidor de claves pública cualquiera (yo suelo usar
hkps://keys.openpgp.org) con la orden:

  $ gpg --recv-key E621201E1ACF773F2AE0CC75B213173E97C05035

  $ gpg --recv-key A1850AB951CB1794253E16B2F27FD79FF28F0FCE

Si ya tenías mi antigua clave, puedes verificar que la nueva
clave está firmada por la antigua con:

  $ gpg --check-sigs E621201E1ACF773F2AE0CC75B213173E97C05035

  $ gpg --check-sigs A1850AB951CB1794253E16B2F27FD79FF28F0FCE

Si no tenías mi antigua clave, o deseas ser doblemente extra
paranóico, puedes comprobar la huella de la nueva clave,
comparándola con la que se muestra arriba con:

  $ gpg --fingerprint E621201E1ACF773F2AE0CC75B213173E97C05035

  $ gpg --fingerprint A1850AB951CB1794253E16B2F27FD79FF28F0FCE

Si estás convencido de que tienes la clave correcta, y los UID's
concuerdan con lo que esperabas, te agradecería que firmaras mi
nueva clave con:

  $ gpg --sign-key E621201E1ACF773F2AE0CC75B213173E97C05035

  $ gpg --sign-key A1850AB951CB1794253E16B2F27FD79FF28F0FCE

Por último, si pudieras subir estas nuevas firmas, te lo
agradecería.

Para ello puedes enviarme un mensaje de correo con las nuevas
firmas (si tienes un servidor de correo operativo en tu
sistema):

  $ gpg --export E621201E1ACF773F2AE0CC75B213173E97C05035 \
    | gpg --encrypt -r E621201E1ACF773F2AE0CC75B213173E97C05035 \
    --armor | mail -s 'OpenPGP Signatures' <tuxsoul@tuxsoul.com>

  $ gpg --export A1850AB951CB1794253E16B2F27FD79FF28F0FCE \
    | gpg --encrypt -r A1850AB951CB1794253E16B2F27FD79FF28F0FCE \
    --armor | mail -s 'OpenPGP Signatures' <tuxsoul@tuxsoul.com>

O puedes simplemente subir las firmas a un servidor de claves
públicas directamente:

  $ gpg --send-key E621201E1ACF773F2AE0CC75B213173E97C05035

  $ gpg --send-key A1850AB951CB1794253E16B2F27FD79FF28F0FCE

Además, te recomiendo implementar un mecanismo para mantener la
clave actualizada, para que puedas obtener las últimas
revocaciones y otras actualizaciones de una manera oportuna.
Puedes realizar actualizaciones de clave periódicas utilizando
parcimonie [1], para refresca tu anillo de claves. Parcimonie es
un demonio que refresca lentamente tus claves de un servidor
sobre Tor. Utiliza un sueño aleatorio y nuevos circuitos Tor
para cada clave. El propósito es dificultar que un atacante
correlacione las actualizaciones de cada clave con tu anillo de
claves.

Por favor hazme saber si tienes cualquier pregunta o problema, y
disculpa las molestias.

Mario Oyorzabal Salgado

[0] https://www.debian-administration.org/users/dkg/weblog/48
[1] https://gaffer.ptitcanardnoir.org/intrigeri/code/parcimonie/

-----BEGIN PGP SIGNATURE-----

iF0EARECAB0WIQQxGVoJzp5JKLlopjeXh0BnKHER7gUCXvMcVAAKCRCXh0BnKHER
7ifWAJ9Fy24mGeciiMcU6O0DVHBREPQvCwCffP9dmOFrS5QOlKJvE2VzCnrO/cGJ
AjMEAQEKAB0WIQTmISAeGs93PyrgzHWyExc+l8BQNQUCXvMcVAAKCRCyExc+l8BQ
NXXUD/9ZrmtkqHrNMSxXuSjoaXbrdlnB1ZvlKfcoXiiwKZdGAVxMC7DWKNzzZ6KP
DLYoCYB+MqCFWJ2MRCHJMXOFiimsVgFeoJNgAGIuUINWp+mzhgt05p7rVkghAVk4
lo+lZEl+gdYXzqdkNEGNeCtAM1mlmFn0Uk91Xjc4S2npM8nvItS2kpoPxJprNzk5
59wSBChpAqpc9ThjAn9cWPeZmAWQqd9Am7Ojr/ZVkoyqDdesoOKPFNOXYMTB2dY1
LMxB3RIe9DTF9kpS3tK4hXbn7UP/smQ+05UI1Qai5AJ6cglfDSZulcruX9Bxdxg5
PRgCDDSM9n9T/14AJzgIdwVTN86pjzsEb96f7nmiln8g7AVjWaaYH4wD/JSCi2fR
GM1oJTSRQhS3u0KTKLpVD2VPiln/8MS44SeXzLGuSA/YwTmuLzQfjmzZJFujf7W/
/hLDG50GjJ4QWQnWGO5jNoW0V+XvHu7NBL+qM5dz0OJ7xn9md1SVlf8cg//g+1Ff
7O0EKgJw8lARVO/zh85E3Obcz/WPcrGxtZSYJ8KHHqg/OCcmEA6t5PKjodhaAczR
V568L62OWVgAzPFCaMySpKHL5AUSoOp+TVPn+a/WJC3LnVMdS20pC5LOV0G6bd3u
c3supgKAriV44IwACrs3raLv+l/8fyBwBeDptgxTDFg+SGiACoh1BAEWCgAdFiEE
oYUKuVHLF5QlPhay8n/Xn/KPD84FAl7zHFQACgkQ8n/Xn/KPD84pegEA435qRIWo
ocTnYZynkxjtDzQxnZbaq5XLJbeWdiN/+CgBANFZCjXrjEY3tHYy/nAE4/KAILhD
vkfLHGJ02fJeRu0M
=o2am
-----END PGP SIGNATURE-----

 

En tuxsoul necesitamos tu apoyo con más Pizza, para seguir escribiendo.

Lunes 15 de mayo de 2017

Iván Alemán

Iván Alemán
Iván Alemán

Games that rock: Smash TV (Arcade)

I am willing to bet that if you are reading this chances are high that you have your own set of games that rock/ed your world at some point.

My personal set involves some arcade games such as Double Dragon II, Contra, Tron and some others watching at you TMNT :) but in a very special spot I hold dearly one arcade that like Tron had special controls to play: Smash TV.

Smash TV was one of those games in which I spent a fair amount of cash trying to survive through it, sadly my skills only took me so far to reach and sometimes pass the second boss and since that specific arcade was not close to home but close to my grandma’s I had to wait sometimes up to a month to revisit my challenge.

The game is simple kill or be killed the gameplay no so simple, in order to survive you needed to workout those joysticks moving around and shooting in a non-stop manner.

Here’s a picture of the arcade cabinet:

A closer look to the controls would look like this:

In todays age of PS4s and XBOX ONEs plus Uber loaded PCs the graphics of this arcade are still going strong in nostalgia the fun is still there, the thrill to make those pixels survive as long as possible keeps this game alive.

So finally and thanks to some emulation1 a Logitech Precision game pad and sometimes and 8BITDO NES30 game controller I was able to finish it :) total carnage!

This is the exact moment when M.C. is finished!

Happy gaming to you all!


  1. Unlimited power… I mean unlimited credits. 

Domingo 14 de mayo de 2017

Iván Alemán

Iván Alemán
Iván Alemán

Feeling chatty: Quassel IRC

A new champion enters the battle of IRC clients, but in this case Quassel IRC does more than just being a client.

The idea behind this software is to have a mix of screen + irssi (or tmux + weechat for those youngsters :) in one without the need to knew any of them.

Imagine having your own server lost in some datacenter in the middle of nowhere, there you could install Quassel’s Core (Q.Core) and configured as such that it’s connected to all your favorite IRC channels; then from the confort of your $HOME or from another server located in another remote place you could use Quassel’s Client and connect to this instance of Q.Core or others that you know about.

Is not only that ability of “set and forget” that makes Quassel attractive another win for this program is that it keeps track of your last visit to any #channel thus next time you are connected it will show you where you left and all that has happened since (your own private history teller :) this is a great feature, with it if you like you can immerse yourself into the conversation having the context of it.

Trying your way with Quassel does not need to be that complicated, you could install both components on your local machine or better try the monolithic client for instant results.

More info:

http://quassel-irc.org

Viernes 12 de mayo de 2017

Iván Alemán

Iván Alemán
Iván Alemán

Neat Hardware: Novena

Novena is a cool project founded, it’s open-hardware, not really for the consumer user but more for the hacker/maker crowd in mind.

I would define it as a modular laptop with various possibilities to experiment with, it comes with a case (optional) similar to a laptop but with the key differences that the screen is on the outside and when you open «the case» you have access to the hardware just like you do when opening the «bonnet» of a car.

The device can run Linux for an all-around openness, check some of the specs:

  • Freescale iMX6 CPU
    • Quad-core Cortex A9 CPU with NEON FPU @ 1.2 GHz
    • NDA-free datasheet and programming manual
  • Internal memory:
    • Boot from microSD firmware
    • 64-bit, DDR3-1066 SO-DIMM slot
    • SATA-II (3Gbps)
  • Internal ports & sensors:
    • mini PCI-express slot
    • UIM slot for mPCIx mobile data card support
    • Dual-channel LVDS LCD connector with USB2.0 side-channel for a display-side camera
    • Resistive touchscreen controller
    • Stereo 1.1W, 8-ohm internal speaker connectors
    • 2x USB2.0 internal connectors for keyboard and mouse/trackpad
    • Digital microphone (optional, not populated by default)
    • 3-axis accelerometer
    • 3x internal UART ports
  • External ports:
    • HDMI
    • SD card reader
    • Headphone + mic port (compatible with most mobile phone headsets, supports sensing in-line cable buttons)
    • 2x USB 2.0 ports, supporting high-current (1.5A) device charging
    • 1Gbit ethernet
  •  Dimensions
    • Size: 6” x 0.75” x 5”
    • Weight: 4.8 oz

More info:

https://kosagi.com/w/index.php?title=Novena_Main_Page