lunes, 19 de diciembre de 2022

Crear memoria USB arrancable (booteable) sin programas gráficos en GNU/Linux

 En muchas ocasiones tenemos la necesidad de tener una unidad arrancable para tal vez probar una distribución GNU/Linux o tener un sistema operativo grabado en la memoria USB y utilizar para rescate o para instalar un sistema operativo en tu PC o portátil, entonces necesitamos software para grabar una imagen .iso en la unidad extraíble, lo más común en entornos Windows es usar Rufus para dicha labor, aquí estamos en GNU/Linux u otro UNix/Like asi que usaremos a dd como el software para grabar la imagen .iso que tenemos de nuestra distribución o sistema operativo.

Para grabar la imagen iso necesitamos tener permiso de administrador, entonces usaremos CLI en todo momento.

Paso 1. abrimos un emulador de terminal y consultamos el nombre de nuestra unidad extraíble.

$lsblk 

...

sdc 8:32 1 7,5G 0 disk
├─sdc1 8:33 1 4G 0 part /cdrom
├─sdc2 8:34 1 4,2M 0 part
├─sdc3 8:35 1 300K 0 part
└─sdc4 8:36 1 3,5G 0 part /var/crash

 ...

O también con el comando 

$sudo fdisk -l

...

Disk /dev/sdc: 7,46 GiB, 8011120640 bytes, 15646720 sectors
Disk model: DT 101 G2       

...

Ambas salidas nos muestran el nombre de nuestra unidad extraíble, sabemos de qué tamaño es la unidad, entonces ya la identificamos.

También el comando df mostrará el nombre de la unidad extraíble.

$df

Nota: en caso de que la unidad tenga varias "particiones" lógicas la que se debe desmontar es la primera como veremos en el ejemplo.

Paso 2. debemos desmontar la unidad extraíble.

$sudo umount /dev/sdc1

Paso 3. escribimos en la unidad extraíble con la imagen .iso de nuestra distro favorita.

$sudo  dd if=/rutadondeestalaimagen.iso of=/dev/destinoestaenlamemoriausb bs=1M status=progress

$sudo  dd if=/home/edgar/Descargas/imagen.iso of=/dev/sdc bs=1M status=progress

Solo queda esperar (demora y depende del tamaño de la imagen .iso)

Paso 4. reiniciar el ordenador y hacer iniciar desde USB, iniciará con el sistema operativo grabado en la Memoria USB.

miércoles, 14 de diciembre de 2022

Instalar Codecs multimedia en openSUSE Leap 15.4

 Estamos conociendo GNU/Linux y tenemos openSUSE Leap 15.4, todo bonito, pero al querer reproducir archivos multimedia como podría ser .mp4, .mp3, entre otros nos damos cuenta que no se puede, faltan codecs propietarios, entonces en esta entrada te presento una forma simple de agregar los paquetes necesarios para reproducir tus archivos.

Válido para openSUSE Leap y Tumbleweed, entonces ingresamos como administrador e instalamos opi, este software agrega el repo packman automáticamente.

#zypper install opi

#opi codecs

Donde codecs es la palabra del programa a instalar.

Luego ya puedes añadir a mpv y smplayer, dos software para reproducir archivos con extensión video, vlc se incluye en el proceso de añadir codecs, funcionan las tres opciones. También tal vez desea agregar un reproductor mp3, entonces podemos usar a Audacious, disfruta de openSUSE.

martes, 30 de agosto de 2022

Microsoft Edge en Fedora 36

 En alguna oportunidad nos hemos dado cuenta que ciertas páginas web no funcionan bien con los navegadores Firefox, Chrome y entre otros, pero lo extraño es que con Microsoft Edge si funcionan, entonces si estamos en Fedora 36 debemos añadir el software para poder acceder a dichas páginas web, por ejemplo la página web de Furukawa Latam con Firefox y Chromium no cargan los videos y con Edge si, ¿medio raro no? en fin, aquí mostramos unos pasos para hacer funcionar Microsoft Edge en Fedora 36.

Por cierto Microsoft Edge es buen navegador web, tiene disponible paquetes .deb (derivados Debian) y paquete .rpm (derivados RHEL)

Paso 1. visitamos el sitio web de Microsoft Edge: https://www.microsoft.com/es-es/edge y descargamos (clic izquierdo en el .rpm)

Paso 2. abrimos el emulador de terminal e intentamos instalar Edge, por cierto el paquete pesa 131 MB, al parecer parece completo, pero oh sorpresa en Fedora 36 faltan dos dependencias como veremos.

Como superadministrador ejecutamos el comando:

rpm -ivh Descargas/microsoft-edge-stable-104.0.1293.70-1.x86_64.rpm

Y nos dice faltan ds dependencias las cuales son: libatomic y liberation-fonts, las cuales procedemos a agregar como superadministrador (sudo o su)

dnf install liberation-fonts libatomic

Paso 3. ahora si va a funcionar el siguiente comando sin problemas de dependencias.

rpm -ivh Descargas/microsoft-edge-stable-104.0.1293.70-1.x86_64.rpm 

Ya se instaló Edge en Fedora, disfruta de un buen navegador web.


Espero te haya gustado el tutorial :)

domingo, 17 de julio de 2022

Multimedia en openSUSE Leap 15.4, agregar repositorio Pacman

 El otro día decidí utilizar openSUSE Leap 15.4 en una portátil para mis labores diarias, luego de instalar y actualizar todo el sistema todo bien, ya funcionaba reproducir música mp3 con audacious, por cierto este último software se agrega con zypper (gestor de paquetes cli en openSUSE) utilizando los repositorios por defecto.

openSUSE por defecto trae a parole como reproductor multimedia, de videos específicamente, pero al intentar reproducir un video mp4 no logra visualizar, dice que existe problemas con codecs, pues si, openSUSE al igual que Fedora en la instalación base solamente agrega software libre, pero al observar en los repositorios existe un reproductor multimedia bien conocido y muy buen software como es VLC, tienta instalar y luego utilizar ¿y qué creen? luego de agregar con zypper el software no logra reproducir el video en mp4, siguen los problemas con codecs multimedia, entonces ¿qué podemos hacer? Pues si, agregar un repositorio bien soportado para multimedia en openSUSE, pero ojo no es un repositorio de la base, es un repo de terceros y openSUSE lo advierte, ya que hemos agregado VLC y no funciona queda remover con zypper (#zypper remove vlc), ahora si a agregar Packman.

Desde este punto debemos utilizar privilegios de super usuario (root), en mi caso ($sudo -s) 

#zypper addrepo -cfp 90 'https://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_$releasever/' packman

ó

#zypper addrepo -f http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.4/ packman

El comando agrega el repositorio, luego podemos refrescar los repos con el siguiente comando.

#zypper refresh

Proceder a cambiar de proveedor para los paquetes requeridos

#zypper dist-upgrade --from packman --allow-vendor-change

 Agregar paquetes necesarios, aquí se va a incluir a VLC.

#zypper install --from packman ffmpeg gstreamer-plugins-{good,bad,ugly,libav} libavcodec-full vlc-codecs

Si agrega de esta forma siguiente para el paquete VLC nos añade un VLC beta, funciona también 😀

#zypper install --allow-vendor-change ffmpeg-3 lame gstreamer-plugins-bad gstreamer-plugins-ugly gstreamer-plugins-ugly-orig-addon gstreamer-plugins-libav libavdevice57 libdvdcss2 vlc-codecs

 En ambos casos sino desea usar VLC puede omitir vlc-codecs. 

Otro paso que recomienda un sitio web es el asegurar que todos los paquetes multimedia vengan desde Packman

#zypper dup --allow-vendor-change --from http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_15.4/

Yo he probado las dos formas, pero recomiendo seguir lo que está en verde 😉, funciona VLC y reproduce videos.

Puede que cuando haga un update vea que hay paquetes para actualizar, pero que no se van a actualizar, no es un error, no preocupar.

También puede querer utilizar otro reproductor multimedia como mpv.

#zypper install mpv

Ahora todo viene desde packman para multimedia, entonces ya no tendremos problemas con dependencias privativas :)

Referencias:

https://en.opensuse.org/SDB:Installing_codecs_from_Packman_repositories

https://opensuse-guide.org/codecs.php

sábado, 16 de julio de 2022

Configurar un nombre completo FQDN en Debian, Fedora, openSUSE, Ubuntu

 En muchas ocasiones deseamos poner un nombre a nuestra estación o terminal GNU/Linux, en este caso estamos utilizando openSUSE Leap 15.4, lo más probable es que se proceda de la misma manera en Debian y todos sus derivados, Fedora y otros.

Abrimos un emulador de terminal y nos cambiamos a root (en nuestro caso), pero podrías utilizar sudo.

1. $sudo -s

2. #hostnamectl set-hostname yourserver.domain.tld

Con ello ya hemos escrito en el archivo /etc/hostname un nombre completo, pero también es recomendable averiguar la ipv4 que se asigna al equipo, sea por wifi o cable, asignar esa ip al nombre completo en el archivo /etc/hosts

3. #echo '192.168.1.x    yourserver.domain.tld    yourserver' >> /etc/hosts

Con la orden anterior le decimos que escriba en el archivo lo que esta en comillas simples y lo ubique al final del archivo, >> hace que se ubique debajo de lo que haya en el archivo.

4. comprobamos preguntando el nombre completo

$hostname

$hostname -f

Ambos resultados deben mostrar el nombre completo.

miércoles, 29 de junio de 2022

Construyendo un Router con OpenBSD 7.1

 El otro día comentando con un amigo sobre redes de datos estuvimos tratando el tema de Routers, sí aquellos equipos que enrutan, no tenía un dispositivo para dicho caso, le pregunté ¿Cuál es tu objetivo? Dijo dar internet a dos redes Lan internas (200 Pcs aproximadamente) y también proporcionar parámetros de red automáticamente, entonces era lo más común que se encuentra en redes LAN, preocupado porque quería un equipo Mikrotik, un router Tp-link o similar, le dije no te preocupes, tienes un equipo libre (una PC libre), cómprale dos tarjetas de red ethernet y las insertas en los slot pc y ya, puedes construir tu Router y añadir servicios como DHCP, DNS entre otros que ameriten ser necesarios, me dijo y cómo se hace eso, le dije con un sistema operativo, en este caso elegiremos a OpenBSD 7.1, hay otros como GNU/Linux, pero dije OpenBSD 7.1 hará todo eso y ojo OpenBSD y sus hermanos BSD no son cosas simples, son sistema operativos avanzados para Networking, estables y eficientes.

Software que se usará: la imágen iso de OpenBSD (para instalar el sistema operativo en la unidad de almacenamiento física de la PC), incluye a PF (packet filter) para hacer que traduzca las direcciones de red (NAT), NO se añade absolutamente nada más, el sistema operativo ya trae en la base software para otros propósitos.

Nuestro escenario:

Internet---(ip pública)-Modem/Router del proveedor-(ip privada)---(em0)-OpenBSD 7.1-(em1, em2)---(Switches 1 y 2 para cada segmento)

Nuestras interfaces internas son em1 y em2 cuyas ips son respectivamente 192.168.2.5/24 y 192.168.3.5/24 y la interfaz externa que va a traducir a las interfaces internas es em0 cuya ipv4 es 192.168.1.5/24, la puerta de enlace para salir a internet es la ipv4 privada del modem router del proveedor, 192.168.1.1, ese es el gateway general, pero para nuestras redes internas sus puertas de enlace son las ipv4 de las interfaces internas de OpenBSD (em1 y em2).

1. La primera parte importante es instalar el sistema operativo (hay video en mi canal y una entrada en este blog), tener todo funcionando con sus interfaces ethernet con ipv4.

2. Configurar el archivo principal en /etc/pf.conf, revisar los ejemplos en /etc/examples/pf.conf, ahí indica que debemos activar el forwarding en su archivo respectivo.

Configurando /etc/pf.conf

Al abrir el archivo observamos que ya trae unas reglas por defecto, no borraremos nada, ya hemos visto el ejemplo y añadimos las interfaces y la línea que va a realizar NAT, el orden en donde se ubica la regla para nat es importante, asi debe quedar (clic para agrandar el tamaño de la foto, abajo).


PF ya está habilitado por defecto, no necesita escribir nada en otros archivos, cuando se escribe en el archivo /etc/pf.conf y se desea que las reglas se apliquen se usa el comando:

yourserver#pfctl -f /etc/pf.conf

Para activar el reenvió de paquetes entre las interfaces se escribe en /etc/sysctl.conf, ojo! solamente para ipv4 estamos haciendo, no necesitamos ipv6, en nuestro caso.

yourserver#echo 'net.inet.ip.forwarding=1' >> /etc/sysctl.conf

De preferencia reiniciar el servidor, tiene que leer el último archivo.

En los clientes: poner ipv4 en el segmento que les corresponde (más adelante haremos el servidio dhcp en OpenBSD) y como puerta de enlace la ip de la interfaz interna que corresponde, en servidores dns por ahora utilizar uno público (ojo esto solo es para tradurir de nombres a ip) y te darás cuenta que ya enruta y sales desde tu red interna a otras redes como internet. Hacer ping y ya funciona, tienes tu enrutador funcionando.

Nota: como observas hemos definido tipo variables a las interfaces y en la regla nat hemos llamado a esas variables con el símbolo dolar ($) adelante, también hemos usado ! para indicar que pueden ser cualquier interfaz diferente a la externa, así funciona pues. También la línea que hace nat hemos usado nombre de interfaces y no ip, en el FAQ de OpenBSD en la parte PF indica que es una forma válida para no tener problemas si se cambia la ip de la interface, osea si cambia la ip no es necesario tocar esa línea, solo lee interfaces.

domingo, 10 de abril de 2022

Router y gateway con IPFW, opción NATD en FreeBSD 13

En la presente entrada mostramos un tutorial para poder dar salida a nuestras redes internas a otras redes de datos utilizando solamente una IPv4, proporcionar salida a internet a nuestros clientes a través de FreeBSD, esta tarea realizan los routers, están en capa 3 del modelo OSI.

Escenario:

Internet---Proveedor(modem/router)---(em0)[FreeBSD 13](em1,em2)---Switch LAN

Donde em0, em1, em2 son las interfaces ethernet (cableada) de nuestro sistema operativo FreeBSD 13; los segmentos de red respectivamente para las interfaces son como sigue:

em0-> 192.168.1.0/24 y la ipv4 para la interfaz em0 es 192.168.1.5/24

em1-> 192.168.2.0/24 y la ipv4 para la interfaz em1 es 192.168.2.5/24

em2-> 192.168.3.0/24 y la ipv4 para la interfaz em2 es 192.168.2.5/24

Luego de instalar FreeBSD, realizamos algunos ajustes para nuestro caso, como observamos tenemos 3 interfaces ethernet, agregamos dos interfaces ethernet en el archivo /etc/rc.conf, utilizamos a ee como editor de texto.

#ee /etc/rc.conf

##Network

ifconfig_em0="inet 192.168.1.5 netmask 255.255.255.0"

ifconfig_em1="inet 192.168.2.5 netmask 255.255.255.0"

ifconfig_em2="inet 192.168.3.5 netmask 255.255.255.0"

##Gateway by default

defaultrouter="192.168.1.1"

##Firewall ipfw

firewall_enable="YES"                    #habilitamos el firewall nativo a FreeBSD

firewall_script="/etc/ipfw.rules"      #script personalizado

##Ser puerta de enlace para redes internas

gateway_enable="YES"                   #para ser puerta de enlace a redes LAN

##Enable natd

natd_enable="YES"                         #Habilitamos natd

natd_interface="em0"                     #Escribir la interface wan, o de cara a internet

Como observamos tenemos 254 ipv4 utilizables para cada segmento de red, son segmentos diferentes.

Reiniciamos la red de datos:

#service netif restart 

#ifconfig        #debe mostrarse las nuevas ipv4 en las interfaces lan y hacerle ping a cada ipv4

#service routing restart     #algunas veces es necesario cuando se reinicia las interfaces

 Creamos un archivo con nombre /etc/ipfw.rules, para ello usamos el editor ee (nativo en FreeBSD)

#ee /etc/ipfw.rules

#!/bin/sh

##limpiamos reglas

ipfw -q -f flush

##asignamos una variable

cmd="ipfw -q add"

##interfaces con variabes

pif0="em0"    #wan

pif1="em1"    #Lan 1

pif2="em2"    #Lan 2

##habilitamos a las interfaces LANs

$cmd 005 allow all from any to any via $pif1

$cmd 006 allow all from any to any via $pif2

##para la interface loopback, interface interna

$cmd 010 allow all from any to any via lo0

 ##NATD

$cmd 100 divert natd ip from any to any in via $pif0

$cmd 1000 divert natd ip from any to any out via $pif0 

##It is necessary to do ping between interfaces when you use FreeBSD terminal

$cmd 1001 allow ip from any to any        #for example to ntpdate

 Iniciar el servicio IPFW

#service ipfw start

Listar las reglas escritas, observar que hay una última regla que deniega todo al final

#ipfw list

 Si por algún motivo no ha escrito alguna línea en /etc/rc.conf, por ejemplo te olvidaste de escribir gateway_enable="YES", entonces para que funciones como puerta de enlace a la redes internas, hacer un reboot :D.

#reboot

Al iniciar todo debe estar bien, disfruta de tu enrutador :D

Se puede personalizar bastante, eso depende del conocimiento de ipfw, bloquear, redireccionar puertos, etc. Permitir entre otros, en este tutorial se ha puesto interés en hacer NAT, que funcione, no fue de interés hacer un firewall seguro. 

Pruebas: los clientes conectados a las interfaces em1 y em2 utilizan la puerta de enlace de FreeBSD, ipv4 en las interfaces em1 y em2, conociendo defautlrouter en FreeBSD, entonces desde el cliente debe hacer ping, si es así ya esta enrutando y puede hacer ping a otras redes como internet y dominios en internet (el cliente para resolver nombres debe usar un servidor dns)

Referencia: https://docs.freebsd.org/en/books/handbook/firewalls/#firewalls-ipfw

Packet Tracer 9 en fedora 44

 1. INTRODUCCIÓN Y CONTEXTO -------------------------- Cisco distribuye oficialmente Packet Tracer para Linux únicamente en formato  paquete...