DD-WRT as a bridge

I was using DD-WRT in a Linksys WRT54G/GL/GS years ago. After stop needing it was stored in the deepness of a wardrobe.

I’m living in a long flat where a room is far away from the AP, furthermore there’re metal and liquids between the room and the AP which makes the signal intensity lesser.

So I’ve rescue the DD-WRT from its retirement to enhance the Wi-Fi signal in the house. There’s no merit in it since you just have to follow the proper tutorial about how to configure DD-WRT as a Repeater Bridge.

Why I wrote about this? It’s related with a couple of things: it’s worthy no to fall into programmed obsolescence and through away any device just because. Simply consider what it’s worthy to keep and what it’s simply trash.

Last, but not least, GNU/Linux shows again how important free sofware is. This particular Linksys WRT54GL support third-party firmware based on GNU/Linux and over that DD-WRT has developed its firmware, which also free software… Free software, do I have to argue any more? Self-explained.

Linksys WRT54GL

I almost forget to remember that the FSF lawsuited Cisco for a violation of the GNU License and it won.

VMs CentOS con IP fija en Hyper-V

El escenario es un hipervisor Hyper-V de Microsoft que alberga dos máquinas virtuales CentOS, que por ejemplo es el laboratorio en el que estudias o ensayas antes de hacer cambios en las máquinas productivas.

He hecho dos cambios; configurar en el hipervisor que la máquina virtual (el servidor CentOS) no admita DCHP de otros servidores y fijar una dirección IP en cada una de los servidores virtuales CentOS.

Configurar el hipervisor

Abrimos la configuración del hipervisor, pulsamos sobre “Configuración” de la máquina virtual y en las “Características avanzadas” del “Adaptador de red” marcamos “Habilitar protección DHCP”.

Configurar IP estática en las máquinas virtuales CentOS

Puedes encontrar otras maneras de hacerlo (vía nmcli, interfaz gráfica, etc.) aquí recojo la manera que permite hacerlo con los mínimos recursos, una sesión en la máquina y editando ficheros con VI.

  • Entramos en la máquina y empleamos el usuario “root”
  • Editamos el fichero de nuestro dispositivo de red. En el ejemplo es la tarjeta ethernet así que editamos /etc/sysconfig/network-scripts/ifcfg-eth0
  • Cambiamos la línea: BOOTPROTO=dchp por BOOTPROTO=none
  • Si no está (habitualmente en una configuración existente con dhcp, no estará), añadimos la línea IPADDR=192.168.0.10, con la ip de vuestra elección.Reiniciamos el servicio de red: # systemctl restart network

Confío que pueda resultar de ayuda a alguién.

Elije tú, tu sistema operativo

La base de datos más importante en la información sobre bugs arroja esta estadística sobre agujeros de seguridad en Linux que permiten ejecución de código en el kernel de Linux.

  • Año 2017: 169
  • Año 2018: 3
  • Año 2019: 5

Es importante señalar que no hablamos de cualquier tipo de error de programación sino de errores graves en términos de seguridad, que permiten la ejecución de código.

Añadamos otra cosa al descenso de bugs; en Linux se publican tan pronto como se conoce y el tiempo de reacción es menor comparado con otros sistemas o programas, que publican sus agujeros de seguridad o soluciones, una vez a la semana o cuando son divulgados por un esperto en seguridad al que no han respondido en dias o semanas.

Elige tu sistema operativo, o ¿lo han elegido por ti cuando te compraste el ordenado o lo eligió tu cuñado?

Postresql en Fedora 32: ¿Cómo actualizar?

Recién actualizado el equipo de Fedora 31 a Fedora 32 si intentas iniciar el servicio de Postgrqsql ejecutando como root (en adelante, todo lo escrito se ejecuta como root) # systemctl start postgresql da un error.

Como siempre, miramos que dice el log tecleando:
# journalctl -xe

En alguna línea aparece un mensaje similar a este (las negritas son mías):

-- The job identifier is 5061. de maig 01 11:49:13 localhost.localdomain postgresql-check-db-dir[5619]: An old version of the database format was found.
de maig 01 11:49:13 localhost.localdomain postgresql-check-db-dir[5619]: Use 'postgresql-setup --upgrade' to upgrade to version '12'

Aplicamos lo que se recomienda y ejecutamos (el comando forma parte del paquete postgresql-server):
# postgresql-setup --upgrade

La actualización dejará un log en /var/lib/pgsql/upgrade_postgresql.log.
Si todo ha ido como se indica podremos iniciar el servicio con normalidad
# systemctl start postgresql

¿Cómo ejecutar sql en batch en Postgresql?

Hemos instalado el RDBMS Postgresql y tenemos una sentencia SQL que queremos ejecutar planificadamente. A modo de ejemplo tomemos una SQL sencilla:
# select count (*) cod_cli from client;

Evitaré utilizar el usuario predeterminado de Postgresql para que se parezca más al mundo real y conectaremos a una BD llamada factura.

La tarea en modo no batch

Consistiría en:

  1. Conectar a la BD tecleando nuestra contraseña :
    psql factura -h 127.0.0.1 -d factura
  2. Ejecutar la sentencia SQL :
    select count (*) cod_cli from client;
    cod_cli
    ---------
    49
    (1 fila)

La tarea en modo batch

Lanzaremos un shell script que se conecta a la BD, este shell script llama a un fichero query.sql que solo contiene una línea:
select count (*) cod_cli from client;

El shell script contiene dos líneas:

#!/bin/bash
psql factura -h 127.0.0.1 -d factura -f query.sql

Cómo hacer que el batch SQL no pida contraseña

La manera de que evitar que nos pida contraseña es crear un fichero .pgpass en nuestro directorio $HOME

El fichero contendrá una línea por cada acceso a BD que queramos tener siguiendo el formato:
nombre de host: puerto: base de datos: nombre de usuario: contraseña

El uso de este fichero está recogido en la -buena- documentación sobre .pgaccess en Postgresql.