viernes, 26 de julio de 2019

Debian; shutdown: command not found

Por cierto: este post lo escribiendo desde el móvil. Espero que el corrector no haga de las suyas.

Hace poco hice una actualización de mi Debian "scratch" a... "buster". Pero por intentar pasar la arquitectura de instalación de 32 bits a 64. Como la cosa no me terminó de ir del todo bien al intentar sustituir las aplicaciones me dio por buscar y encontré con que había nueva versión de Debian.

Para resumir: después de muchas sustituciones y malabarismos varios, di por finalizada la tarea. Pero mi usuario root era incapaz de apagar o. reiniciar la máquina con los comandos.

Así, buscando, me he encontrado con la solución.

El problema se da sólo al elevar simplemente con

#su

Porque ahora, tal cual está, no incluye la variable de entorno $PATH de root. Para que la incluya hay que pasar alguno de los siguientes parámetros: [- | -l (L minúscula) | --login]

Así, ejecutando:

#su -l

Ya nos incluirá en el $PATH la carpeta

/sbin

Que ha dejado de ponerla con el su de toda la vida.

Espero que si os sucede os sea de utilidad.

miércoles, 24 de julio de 2019

Elegir qué versión de Python ejecutar

En el siguiente enlace:

https://linuxconfig.org/how-to-change-default-python-version-on-debian-9-stretch-linux

nos indican cómo forzar qué versión de python ejecutamos tenemos varias instaladas a la vez.

Aunque también se tiene la opción de seleccionar el número directamente:

$python3.6
$python2.7

si ejecutamos

$python

¿Qué se ejecuta? Eso es lo que decidimos aquí. Así, además, se debería de poder desinstalar la versión antigua.

Sólo para tenerlo como chuleta. Espero que a vosotros también os sea de utilidad en algún momento.

lunes, 15 de julio de 2019

Simulador de expresiones regulares

Uno muy, muy rápido.

Un simulador para hacer expresiones regulares y ver con colorines qué se selecciona realmente es este que enlace aquí abajo:

https://regex101.com/


Al menos para python me ha venido muy bien y quiero tenerlo por aquí (hasta que se me olvide que lo tenía) por si algún día me hace falta encontrarlo de nuevo.

Además de python también lo ejecuta con otros tres o cuatro lenguajes más. Esto ahorrará mucho ensayo y error. Además, da bastantes pistas de qué parte se está detectando y cuál no.

viernes, 21 de junio de 2019

/etc/resolv.conf: se sobreescribe

A ver si me sale corto este post.

Esta es la típica solución que cuesta mucho encontrar, uno cree que se acordará de la solución y tiempo después la necesita y se ha olvidado.

Problema que llevo queriendo solucionar desde hace mucho tiempo: el fichero /etc/resolv.conf de un Debian que tengo instalado se me sobreescribe. Todo el tiempo que he querido solucionarlo he intentado quitar distintos servicios que ya ni me acuerdo. Pero me he encontrado con que una persona ha mostrado distintas soluciones al problema.

Una de ellas me ha permitido solucionarlo encontrándome con que mi resolv.conf era un enlace a un fichero de NetworkManager. En mi caso, su solución la he aplicado modificando directamente /etc/NetworkManager/NetworkManager.conf.

Ojo, que ese mismo enlace tiene más soluciones.

En el segundo enlace dan unas pocas pistas más. Pero habiéndolo solucionado con el primero poco más he leído del segundo (a parte de que he llegado a este a partir del segundo).

Espero que en algún momento os sea de utilidad.

domingo, 2 de junio de 2019

Compartiendo impresoras por internet

Hoy he adquirido una impresora láser multifunción por Wallapop. Un trasto que de sólo transportarlo a pulso del coche (que no he podido aparcar excesivamente cerca de casa) ya me he ahorrado un día de entrenamiento en el gimnasio.

El caso: se me ha ocurrido hacer una búsqueda de su márca (XXX) y modelo (YYY) para ver temas de configuraciones (manual), tóner, ruidos raros que no me pareció oir cuando la han probado... El tema es que el primer resultado era el manual en PDF de la propia página del fabricante. Y para mi sorpresa había varias direcciones IP después. No sé por qué se me ha ocurrido acceder a ellas (cenutrio de mí, todo sea dicho). Y me he encontrado... ¡Con un panel de control del servidor web de la propia impresora!

Ahora que sigo fijándome en la búsqueda: he puesto el nombre completo entrecomillado "XXX YYY" problema para solucionar

Sí, ya sé que esto se podría hacer en Shodan. Pero no me hubiera imaginado nunca que una búsqueda tan básica me hubiera dado un resultado de este tipo en la segunda entrada. Como hubiera dicho Eugenio en un chiste "Cosa curiosa Rusia".

Seguiré configurando el cacharro y si me encuentro más cosas del aparato, aviaré por aquí. Por cierto: tengo pendiente un artículo que tengo a medias del Grandstream. Ya veré cuándo puedo jugar con el teléfono y lo documento.

miércoles, 15 de mayo de 2019

Rsyslog: Logrotate

Voy a añadir una opción más a la configuración que hice recientemente para rsyslog. Para poder ver los datos que se envían desde el dispositivo que estamos analizando al servidor de logs correctamente, el hecho de que esté lleno de resultados de hace días no ayuda nada. Para ello se usa logrotate.

¿Cómo lo he configurado? Bien. He encontrado que existe un fichero en /etc/logrotate.conf y otros ficheros dentro de la carpeta /etc/logrotate.d/. De los ficheros que aparecían estaban asteriskdpkgsambarsyslog.

Para forzar a que se cambien los ficheros diariamente para los dos aparatos que me interesa analizar, el SPA3102 y el teléfono Grandstream he incluido las siguientes líneas en el fichero de rsyslog:

/var/log/spa3102.log
/var/log/grandstream.log
{
        rotate 31
        daily
        dateext
        missingok
        notifempty
}

Las notas que puedo hacer al respecto:

  • rotate: número de ficheros que quiero que se me generen.
  • daily: quiero que se hagan diariamente.
  • dateext: concatenar la fecha en los ficheros cuando se copian en vez de usar números.
  • missingok: Por lo que he entendido, si el fichero de log (¿original?) falta, no se genera ningún error.
  • notifempty: no rotar el fichero cuando este esté vacío.

Como no me terminaba de convencer hacer la prueba con todo lo que contiene rsyslog he decidido copiar y pegar la configuración aquí mostrada, sólo para Grandstream, en su propio fichero.

Después de la configuración he ejecutado la siguiente instrucción:

#logrotate -f -v /etc/logrotate.d/grandstream.conf

El resultado, además de rotar ficheros que no se habían tocado en mucho tiempo, es que me ha concatenado al fichero /var/log/grandstream.log la fecha, pero no me ha generado otro nuevo. Si miro su contenido, puedo ver que en dicho fichero se siguen guardando datos. Esto me hace preguntarme: ¿Me concatenará siempre la fecha o será sólo hoy? 

---

Si bien cuando empecé escribiendo este artículo, el sistema no se comportó como esperaba, me esperé unos días más para ver qué sucedía. ¿Qué tengo ahora? 

Ahora sí que tengo los ficheros con su nombre original y sus copias diarias con la extensión de "-aaaammdd" (año, mes, día). El único problema: no se están haciendo en el momento adecuado, por lo que tengo ficheros que dicen que son, por ejemplo, del día 15, que contienen datos del 14 y del 15. :
Así, tengo:
  • grandstream.log-20190515: registros de las 6H del 14 a las 6H del día 15.
  • grandstream.log: a partir de las 6H del día 15.
Ejecutando:

#cat /var/lib/logrotate/status

Es posible ver cuándo se rotó cada fichero. Y, en efecto, las horas cuadran con respecto al desfase mostrado en los logs que necesito analizar. Repasando el comando de más arriba:

#logrotate -dfv /etc/logrotate.d/grandstream.conf

Gracias a que he revisado con más detenimiento el resultado de su ejecución he podido corregir algunos de los ficheros de configuración aquí explicados (pero yo lo muestro sin me avise de errores). 

Con respecto a las horas a las que se produce la rotación ya he encontrado la razón de esa hora tan rara. La rotación se realiza con un cron diario (/etc/cron.daily/). Dentro de esa carpeta, entre otros ficheros, se encuentra el relacionado con logrotate. A su vez, la ejecución de cada uno de los scripts que tiene que lanzar cron, independientemente de que sean diarios, semanales, mensuales... Se hace a través de la configuración que se encuentra dentro de /etc/crontab. Este fichero muestra la hora y minuto que cuadra con la que se muestra en el contenido de los logs al final del más reciente con su extensión de fecha y al principio del que se ha creado.

Lo voy a dejar aquí. Sólo me queda tomar la decisión de dejarlo tal cual, quitar la extensión de fecha (y que me salga la numeración), cambiar la hora para la ejecución de todos los diarios, forzar a que se roten sólo esos ficheros a las 0H (y por lo tanto, al intentar hacerlo de nuevo a las 6H no tendrá efecto)... Ya veré.


Sólo para tener un listado de los distintos sitios que he visitado (y así poder buscar en un posible futuro si es necesario, aunque creo que he perdido alguno):

jueves, 9 de mayo de 2019

Grandstream GXP1405 I: Prensentación

Recientemente me hice con un teléfono VoIP Grandstram GXP 1405, ya deprecated, para incluirlo en mi centralita Asterisk.

Grandstream GXP 1405
Grandstream GXP 1405

Como se puede ver es muy sencillo. Tiene para configurar dos líneas, típico botón de poner el altavoz para manos libres, PoE (si bien también trae una fuente de alimentación), permite conectarle una diadema para hablar por micrófono, la (típica) posibilidad de usarlo de switch para ponerle el PC... Vamos, lo más típico que uno se puede encontrar en un trasto de este tipo en una oficina.

Seguro que puede apreciar en la pantalla LCD hay tres llamadas perdidas de unas cuantas pruebas que estuve haciendo. Eso es porque ya lo tengo configurado. Entre otras opciones permite configuración vía http(s). Desconozco por qué pero ayer mismo me dio problemas y tuve que tirar de https, cuyo certificado no está reconocido, pero para el caso, me sirve. 

La configuración manual de la línea 1, que es la que se corresponde con el usuario de la centralita que le he creado, no fue del todo complicada. La recuerdo muy sencilla, a pesar de que para cada línea ofrece muchas opciones.

Yendo a general settings:

Grandstream GXP 1405 - Menú para acceder a General settings
Grandstream GXP 1405 - Menú para acceder a General settings
Y la configuración es muy sencilla: poner la dirección IP, el nombre de usuario (o extensión), contraseña y listo:

Grandstream GXP 1405 - General settings
Grandstream GXP 1405 - General settings

Una vez apliquemos los cambios y volvamos a la sección de inicio, veremos el resultado que tenemos en el pantallazo: una línea conectada y la otra no. Si hubiese algún problema cuando inicie sesión, evidentemente, se quedará en rojo. 

Como apenas he jugado con el aparato, mientras estaba escribiendo este post me he encontrado con algunas cosas que me las estudiaré para ver si merece la pena escribir sobre ellas.

Además del servidor web tiene otro ssh, pero la shell es un simple menú que apenas deja tres cambios que prácticamente serán para acceder vía web.

Grandstream GXP 1405 - Configuración vía SSH
Grandstream GXP 1405 - Configuración vía SSH
Y así es como tengo un juguetito más que, al menos las pruebas que hice, funciona bastante bien. Esperemos que en un caso real también lo haga.