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

martes, 1 de febrero de 2022

Router doméstico con FreeBSD 13 e IPFW, opción in-kernel NAT

 En la presente entrada mostramos un "How to" para poder compartir la conexión a internet a través de nuestro servidor FreeBSD.

En el tutorial utilizaremos para NAT la implementación "in-kernel NAT", es reciente y en esta versión 13 no necesita realizar otras acciones que las que se indican aquí. 

Note: probado (test) sobre FreeBSD 12.3 y FreeBSD 13

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

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

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

firewall_nat_enable="YES"             #habilitamos nat  

firewall_script="/etc/ipfw.rules"     #ipfw.rules es un nombre cualquiera.

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 un nombre a cada interface

cmd="ipfw -q add"

##interfaces con variabes

pif0="em0"    #wan

pif1="em1"    #Lan 1

pif2="em2"    #Lan 2

##habilitamos a las interfaces

$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

##reensamblar los paquetes entrantes

$cmd 099 reass  all from any to any in

##Disable one_pass it is necessary or mandatory to NAT, in-kernel NAT

ipfw disable one_pass

##NAT, in-kernel NAT

ipfw -q  nat 1 config if $pif0 same_ports unreg_only reset 

$cmd 100 nat 1 ip from any to any in via $pif0

$cmd 1000 nat 1 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

Deshabilitar opciones en /etc/sysctl.conf, necesario para in-kernel NAT

#ee /etc/sysctl.conf

net.inet.tcp.tso="0"

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, 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

miércoles, 12 de enero de 2022

Reemplazar a CentOS Linux 8, alternativas actuales 2022

 Desde que RHEL tomó el control de CentOS Linux poco a poco ha cambiado el camino de CentOS, hasta que decidieron terminar con CentOS Linux 8, ya no será más como cuando se creó, como un clon binario de RHEL; CentOS Stream en resumen está entre RHEL y Fedora.

Alternativas que se tiene disponible actualmente (a la fecha 2022) para reemplazar a CentOS Linux 8

Rocky Linux: uno de los fundadores de CentOS decidió iniciar el proyecto y va muy bien encaminado, tiene aceptación entre los usuarios, para más detalles pueden visitar su sitio web.

Alma Linux: es otra distribución que comienza a tener muchos usuarios y es la primera que ha liberado un clon binario, mucho antes que otras altenativas, proyecto activo con muchos usuarios.

Euro Linux: otro proyecto que se mantiene activo, en la release actual de RHEL, la comunidad europea que apoya al software libre la dirige.

Circle Linux: un proyecto con perfil bajo y discreto, actualmente activo y al día con las nuevas releases de RHEL, por cierto su comunidad no funciona, no se puede interactuar con el chat y similares.

Vzlinux: un proyecto interesante, he notado que no tiene instalador en modo texto, la instalación es si o sí en modo gráfico, bastante interesante el proyecto.

Navy Linux: otro proyecto que nace, pero que no están muy activos, actualmente en estas fechas ya están otros proyectos en la versión 8.5 y navy linux aún no tiene dicha release 8.5, interesante proyecto para explorar.

Todas las distribuciones citadas arriba tienen imagen iso mínima, entonces podemos descargar una imagen no tan pesada para implementar un servidor y no necesitaremos la imagen completa que "pesa" bastante.

Oracle Linux: esta distribución muy interesante y muy bien trabajada, pero no tiene "minimal install", hay que descargar la imagen que "pesa bastante" e implementar servicios.

Las distros mencionadas líneas arriba buscaran usuarios para seguir activos, las que sean más amigables lograran tener éxito, cada una tiene sus características, solamente a los usuarios nos queda evaluar y decidir cual distro usar para reemplazar a CentOS Linux 8 y disfrutar de las cualidades de RHEL en su versión libre sin restricciones.

Springdale Linux: una distribución que estuvo activa y actualmente está muy discreta, pero al parecer aún mantienen desarrollando versione recientes, no tiene minimal install, interesante para explorar.

Scientific Linux: un proyecto que ya no desarrolla versiones 8, era un buen proyecto, simplemente ya no continuarán y solamente le dan soporte para versiones 6 y 7 hasta su final.

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, pe...