martes, 22 de junio de 2021

VirtualBox 6.1 en Fedora 34

 VirtualBox es un excelente software fácil de usar para realizar máquinas virtuales, tal vez para probar sistemas operativos, en esta oportunidad mostraremos un "cómo" para tener VirtualBox en Fedora 34; mencionamos que no se va a recurrir al portal web de virtualbox, la instalación del software se realizará utilizando repositorios oficiales y con uno llamado rpmfusion, que se añadió en su oportunidad.

Paso 1. añadir los repositorios rpmfusion, el tutorial está en mi canal de Youtube, AQUÍ.

Paso 2. buscamos el software con dnf (el administrador de paquetes en Fedora)

$sudo dnf install VirtualBox

Paso 3. instalamos el software

$sudo dnf install VirtualBox

Dnf resolverá todas las dependencias que tenga VirtualBox.

Para Iniciar el software por primera vez buscamos a VirtualBox y lo iniciamos, pero oh sorpresa, no va afuncionar a menos que se reinicie la PC, pero nos muestra este mensaje y nos dice que sino deseamos reiniciar debemos ejecutar un comando como root.

Ejecutamos dicho comando:

$ sudo akmods; systemctl restart vboxdrv.service
[sudo] password for erodolfo:  
Checking kmods exist for 5.12.11-300.fc34.x86_64           [  OK  ]
 

  Ahora ya funciona VirtualBox 👍😀

Software para grabar imágenes ISO a USB en Fedora 34

 Alguna vez tenemos la necesidad de grabar imágenes .Iso a Disco o generalmente a una unidad USB en nuestro entorno GNU/Linux, entonces nos preguntamos con qué equipamiento lógico realizar dicha tarea; averiguando te muestro una variedad de software que nos ayudan a realizar dicha labor.

Nuestro entorno de escritorio es Gnome, Fedora 34

1. UNetbootin, existe en los repositorios oficiales

$sudo dnf install unetbootin

Para utilizar el software abrir una terminal y ejecutar como indica:

"UNetbootin must be run as root. Run it from the command line using:
sudo QT_X11_NO_MITSHM=1 /usr/bin/unetbootin"

 

2. La propia herramienta de Fedora que se llama Fedora media writer y se instala de la siguiente manera (no viene por defecto con una instalación Gnome), permite descargar y también poder seleccionar una imagen .iso descargada.

 

$sudo dnf install mediawriter

 

3. KDE iso image writer, software del entorno KDE, no es exclusivo de Fedora.

 

$sudo dnf install isoimagewriter

 

4. Gnome multi writer, software de gnome que permite grabar de una sola vez hasta en 20 memorias USB, en mi caso inserto la única memoria que tengo y le digo grabar.

 

$sudo dnf install gnome-multi-writer

 

Más adelante mostraré en otras entradas cada una de las herramientas, estar atentos al blog 😀 

viernes, 4 de junio de 2021

Averiguar qué servidores DNS estamos usando con nmcli en GNU/Linux

 Alguna vez estamos utilizando nuestra distro Linux favorita y no sabemos que servidores DNS se nos asignó mediante un servicio DHCP en nuestra red local, es importante conocer todos los parámetros de red para tener una conexión a internet. Como ya sabemos el comando ip addr nos muestra nuestra ip con su máscara, pero no sabemos los servidores DNS que estamos utilizando, este comando que cito nos permite ver los servidores DNS.

1. muestra la ip, máscara y broadcast y lo más importante la interfaz que deseas consultar

>ip addr

2. NetworkManager administra las interfaces de red y por cli podemos averiguar más detalles, en la mayoría de las distribuciones NetworkManager se incluye.

>nmcli device show eth0 | grep DNS 

donde eth0 en mi caso es la interfaz ethernet o cableada. Con grep filtramos para que nos muestre solo referente a DNS.

3. ver los parámetros completos en IPv4, que muestra la ip, máscara de subred, la puerta de enlace predeterminada y las rutas.

>nmcli device show eth0 | grep IP4

Eso fue todo en éste apunte, tengo un video en mi canal de Youtube sobre este tema 😀

miércoles, 26 de mayo de 2021

Servidor DNS recursivo (caching) con Bind en CentOS/RockyLinux/AlmaLinux/RHEL 7

 En ésta entrada realizaremos un servidor DNS recursivo para nuestra red interna (192.168.2.0/24) y ofrecer más adelante un servidor web en una terminal de dicho segmento.

Nuestro escenario es el siguiente:

Nuestro servidor (CentOS 7) tiene dos interfaces de red, mínimo en interfaces para tener un firewall, entonces nuestra interfaz conectado a internet o al modem/router de nuestro proveedor es con nombre enp0s3 cuya ipv4 es 192.168.1.5/24 y la interfaz destinada a nuestra red interna tiene nombre enp0s8 cuya ipv4 es 192.168.2.5/24; existe un switch conectado a la interfaz interna y conecta un segmento de red completo con posibilidad de proveer 254 terminales, exceptuando la ipv4 ya utilizada.

Modem/Router (internet)====(enp0s3)CentOS(enp0s8)====Switch ethernet

El servicio dns resolverá nombres a ipv4, se usará la configuración de DNS recursivo (caching) usando el ejemplo que proporciona CentOS o similares.

Paso 1. instalaremos el equipamiento lógico

#yum install bind bind-utils bind-chroot

bind-chroot lo iniciaremos al final.

Paso 2. iniciaremos el servicio named

#systemctl enable named

#systemctl start named

#systemctl status named

Paso 3. los archivos a configurar son /etc/named.conf, /etc/named.rfc912

Paso 4. el directorio por defecto para los archivos donde estará la zona directa e inversa está en /var/named

Paso 5. configurando las opciones generales en named.conf, se añade estas líneas y se deja por defecto las que ya trae CentOS 7 (para 8 es lo mismo)

#vi /etc/named.conf

options    {

//escuchar en interface de la red interna y en IPv4 only

listen-on    port     53    { 127.0.0.1; 192.168.2.5;  };

listen-on-v6    port    53    { none; }; 

...

//consultas a nuestra red interna

allow-query    { localhost; 192.168.2.0/24; };

//no transferir a otro equipo

allow-transfer    { none; };

//consultas recursivas desde la lan

allow-recursion { 192.168.2.0/24; };

//no mostrar la version de bind

version none;

//opción por defecto, esta opción debe estar en yes, caso contrario no va //funcionar la resolución de nombres.
recursion yes;

...

//deshabilitamos dnssec, para no complicarnos :)

dnssec-enable no;

dnssec-validation no;

...

};

Puedes verificar si no tienes errores con el comando:

#named-checkconf /etc/named.conf

Si no muestra un mensaje, entonces el file esta bien :)

Paso 6. creamos nuestras zona directa e inversa en el archivo /etc/named.rfc912.zones

#vi  /etc/named.rfc912.zones

...

//nuestro dominio principal

zone "intranet.edu" IN {

type master;

//la ruta esta en /var/named

file  "db.intranet.edu";

allow-update "none";

};

//zona inversa

zone "2.168.192.in-addr.arpa" IN {

type master;

file "db.2.168.192";

allow-update "none";

};

Puedes revisar el file, si no muestra mensajes el file esta good :)

#named-checkconf /etc/named.rfc1912.zones

Paso 7. creamos los archivos en la ruta /var/named

#cd /var/named/

#cp named.localhost db.intranet.edu

#chown root:named db.intranet.edu

#vi db.intranet.edu

En este archivo se pudo haber usado @ en lugar del dominio intranet.edu., de igual manera donde hay espacio en blanco significa que está presente el @, por lo tanto es el dominio principal o zona directa.

Para la zona inversa

#cp db.intranet.edu db.2.168.192

#chown root:named db.2.168.192

#vi db.2.168.192

 Probar las zonas y buscar errores con el comando:

#named-checkzone intranet.edu db.intranet.edu

Paso 8. reiniciamos el servicio

#systemctl restart named

Paso 9. cambiamos la ip de nuestro servidor dns remoto a nuestra ip, a nuestro servicio dns local.

#vi /etc/sysconfig/network-scripts/ifcfg-enp0s3

...

DNS1=192.168.2.5

#systemctl restart NetworkManager

#cat /etc/resolv.conf

Ya tomó nuestra ip.

Paso 10. pruebas en nuestro equipo y en clientes en nuestro segmento de red

#ping -c 2 www.intranet.edu

Paso 11. añadimos el servicio a nuestro firewall, se está usando firewallD

#firewall-cmd --add-service=dns --zone=internal --permanent

Ahora ya pueden consultar los clientes.

Paso 12. aquí utilizaremos a bind-chroot, para ello debemos parar y deshabilitar or disable named service, and start named-chroot, e.g.

#systemctl stop named

#systemctl start named-chroot

#systemctl enable named-chroot

Ahora todo estará montado de forma automática, no necesitamos hacer otros cambios, hay que mirar la ruta /var/named/chroot/..., ahi se montaron todos los archivos que hemos configurado y otros.

recomienda la web de rhel que si se va a editar se haga con una copia, por ejemplo:

~]# vim -c "set backupcopy=yes" /etc/named.conf

Pero si editas el archivo al reiniciar el servicio observas que el mismo se ha modificado en la ruta chroot.

En los clientes:



Nota: se adicionó un servicio en un cliente del segmento de red interno con ip 192.168.2.7/24 que presta un servicio web.

Como ya existe servicio de dominio, entonces buscará las ips correspondientes a un nombre, en neustro caso le dijimos que si se escribe un alias www.intranet.edu, buscará la ip 192.168.2.7/24

Si te gustó, estate atento a nuestro blog y canal de youtube, porque al igual que Debian y Ubuntu se complementará con soporte a php y mysql para instalar wordpress :)

jueves, 20 de mayo de 2021

Shell scripting: suma de dos números enteros

 Podemos sumar números y por ende restar, multiplicar, etc. Pero hay que considerar algunas cuestiones, en este apunte realizamos una suma básica, pero aclaramos algunas situaciones a considerar.

$touch operaciones.sh

La extensión del archivo no es relevante, podría no utilizarse, en éste caso hago explícito la extensión del archivo porque utilizaré sh como shell.

$vi operaciones.sh

#!/bin/sh
echo "####Suma de números####"
sleep 1
read -p "Enter first number: " n1
read -p "Enter second number: " n2
sum=$(($n1+$n2))
sleep 1
echo "===Your answer is==="
sleep 2
echo "Answer $n1 + $n2 =  $sum"
sleep 2

La primera línea es importante porque se le indica que intérprete se va a usar, como ya dijimos será sh, con sleep le damos un segundo u dos, read lee la entrada que le da el usuario por teclado y se añade una descripción, sum almacena la suma entera, ojo solamente sumará números enteros.

Ejecutaremos el archivo asi:

$sh operaciones.sh

Como observas no se ha dado permiso de ejecución, con sh ya se ejecuta; si se desea utilizar de la siguiente forma:

$./operaciones.sh

Se debe darle permiso de ejecución al archivo.

$chmod a+x operaciones.sh

Se podría utilizar solamente +x, pero se hace explícito a+x, que es lo mismo y se le indica que todos (usuario, grupo,otros) tendrán permiso para ejecutar el archivo.

lunes, 17 de mayo de 2021

Servidor DNS autoritativo en Debian con Bind

 En alguna oportunidad en una intranet o similares se necesita conocer o ubicar algunos hosts en la red de datos, pero por IPs muchas veces no es fácil cuando hay muchos equipos o se tiene algunos equipos que dan algún servicio, como podría ser un servidor web, entonces ubicarlo con nombre es mucho más fácil.

Otra ventaja al realizar un servidor DNS autoritativo es que las consultas a dns de otros servidores del mundo se realizan en nuestro equipo que implementa un servicio DNS (domain name system, o sistema de nombre de dominio), eso quiere decir que ya no se depende de otros servidores DNS públicos en internet como podría ser el conocido 8.8.8.8 de google o el que te da tu proveedor de servicio a internet, entonces es algo interesante que podemos realizar con un sistema operativo GNU/Linux o un BSD utilizando Bind (software para implementar servicio DNS).

Nota: por ahora solamente se realiza un servidor DNS principal, no un secundario.

1. Nuestro escenario: tenemos un equipo con dos interfaces de red (eth0 y eth1), eth0 es la que conecta al modem/router del proveedor y eth1 conecta a un switch en nuestra red LAN (192.168.2.0/24), las interfaces en versiones nuevas de Debian podrían ser enp0s3, enp0sx...

2. configurando ips a nuestras interfaces: a la interface eth0 le asignamos 192.168.1.5/24 y a eth1 192.168.2.5/24

3. agregamos el equipamiento lógico necesario en Debian:

#apt-get install bind9 bind9-doc dnsutils

4. ingresamos a la ruta donde encontraremos todos los archivos a modificar

#cd /etc/bind/

Los archivos principales a modificar son named.conf, named.conf.options, named.conf.local; los archivos que se editan principalmente son named.conf.options (para opciones generales) y named.conf.local, este último para nuestras zonas.

5. editamos el archivo named.conf.options y solamente son necesarias algunas líneas como las que escribo aquí abajo:

//Escuchar en interfaces locales ipv4

listen-on port 53 { 127.0.0.1; 192.168.2.5; };

listen-on-v6 { none; };

//No transferir la información de zona a dns secundario

allow-transfer { none; };

//Aceptar consultas de nuestra red LAN, únicamente.

allow-query { 192.168.2.0/24; };

//Permitir consultas recursivas para la red LAN

allow-recursion { 192.168.2.5; };

//No hacer público la versión de BIND

version none;

6. opciones por defecto se dejan en el archivo named.conf.options, en este caso no se usa reenviadores osea forwarders, nosotros no utilizamos otros dns, nuestro servidor resolverá nombres.

7. creamos las zona principal y la zona inversa en el archivo named.conf.local

//Mi zona principal

zone "intranet.edu" {

        type master;

        file "/etc/bind/db.intranet.edu"; 

};

//zona inversa

zone "2.168.192.in-addr.arpa" {

        type master;

        file "/etc/bind/db.2.168.192";

};

Nota: puedes verificar si el archivo está bien configurado con el comando

#named-checkconf named.conf

#named-checkconf named.conf.local

8. los permisos de los archivos que crearemos ya están por defecto correctos, no debemos cambiar, al crearlos Debian GNU/Linux les asigna para usuario root y grupo bind, para no complicarnos copiaremos de los ejemplos, luego lo editamos a nuestros requerimientos.

#cp db.local db.intranet.edu

9. escribimos las líneas como muestra en la imagen de abajo.

Donde observamos el servidor principal con nombre server1.intranet.edu., no tenemos otros servidores y la zona está en la misma ip.

10. creamos la zona inversa

#cp db.intranet.edu db.2.168.192

11. debe quedar como en la imagen de abajo.

 Este archivo al indicarle una ip resuelve el nombre.

Nota: en ambos casos se puede comprobar que no haya errores luego de editar dichos archivos con el comando siguiente:

#named-checkzone intranet.edu db.intranet.edu

#named-checkzone 2.168.192.in-addr.arpa db.2.168.192

Se entiende que estamos en la ubicación de los archivos y luego de ejecutar los comandos nos muestra la zona con su serial de año-mes-dia-modificacion (01, es la primera modificación)

Nota: para cualquier cambio en archivos named.conf.local u otro debe reiniciarse el servicio.

#systemctl restart bind9 

Verificar cómo está resolviendo

#tail -f /var/log/syslog

12. cambiamos nuestro servidor dns en la ruta /etc/resolv.conf o si usa resolvconf se tendría que cambiar en /etc/network/interfaces o en Ubuntu reciente en el archivo netplan, en nuestro caso es en resolv.conf

13. ahora debes probar en el servidor y en clientes (usar el servidor dns que hemos creado con ip 192.168.2.5)

#dig intranet.edu NS

#ping -c 2 www.intranet.edu

#host intranet.edu

Salir al exterior

#ping -c 2 debian.org

#host debian.org

14. en el cliente podrías utilizar nslookup

Update:

Si existe un servidor web en la red interna LAN con ip 192.168.2.7/24 se debe añadir la ip al archivo db.intranet.edu y apuntar el alias al nombre del servidor web (server2), también un puntero en el archivo db.2.168.192 con número 7

 

Buscamos el servidor web en la red interna LAN

 visita mi canal de Youtube y suscríbete, ahí muestro cómo esta funcionando este servidor DNS 😀

miércoles, 12 de mayo de 2021

VirtualBox 6.0 en equipos que no tengan Tecnología de virtualización

 Hola 😃, el otro día yo feliz usando mi compaq 610 (si pues ya es antiguo el equipo, pero esta muy bueno, lo tengo en buen estado) utilizando un sistema operativo Bodhi Linux (basado en Ubuntu 20.04) de 64 bits  y oh sorpresa cuando se instala VirtualBox 6.1 por defecto ya requiere un equipo que tenga tecnología de virtualización, en mi caso mi equipo no tiene esa característica, por lo tanto no puedo utilizar VirtualBox 6.1, debo usar una versión menor, podría ser VirtualBox 6.0, pues si escogí la 6.0, en los repositorios de oracle me ofrece 6.0 y 6.1, felizmente.

Veamos un "cómo" hacer funcionar virtualbox:

Instalas virtualbox 6.0, sabiendo que si podrás utilizar, pero hay que hacer ajustes como los siguientes.

Nos muestra de esta forma


Luego de quitar hardware de virtualización


Ahora si ya puedes usar VirtualBox 😃, pero recordar que hay sistemas operativos que si requieren hardware de virtualización, en ese caso no podrás utilizarlos, pero no todos son así, yo estoy viertualizando Debian 10 de 32 bits y super, Ubuntu server i386 versión 16.04, este último ya sin soporte, pero se puede 😃.

Espero que te haya gustado el tutorial.

VirtualBox 6.1 en Fedora 34

 VirtualBox es un excelente software fácil de usar para realizar máquinas virtuales, tal vez para probar sistemas operativos, en esta oportu...