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.

lunes, 10 de enero de 2022

OpenBSD 7.0 con entorno de escritorio LXQt y Slim en Español

 Otro de los entornos de escritorio livianos y agradables a la vista es LXQt, está disponible en OpenBSD, LXQt sigue la línea de LXDE (no está en los paquetes de OpenBSD), en nuestro tutorial mostramos un cómo podemos tener nuestro escritorio completo y en español, también mencionamos que slim es el gestor de login, slim nos permite mostrar nuestro entorno LXQt en Español, Slim está en los paquetes de OpenBSD, entonces lo utilizamos.

Resultado:


1. instalar OpenBSD siguiendo el tutorial.

2. utilizaremos el gestor de paquetes binarios para agregar paquetes y añadimos lxqt y lxqt-extras

#pkg_add -v lxqt lxqt-extras

Automáticamente agrega consolekit2 y otras dependencias como xdg-user-dirs, no será necesario agregar. Siempre atentos a los mensajes, una de las cosas a destacar en OpenBSD e que muestra la documentación o instrucciones al finalizar la instalación de algunos paquetes, en nuestro caso:

/usr/local/share/doc/pkg-readmes/lxqt-session

3. iniciamos el demonio messagebus

Puedes notar que se ha creado el archivo /etc/rc.conf.local y en dicho archivo está el servicio.

#rcctl enable messagebus

4. creamos el archivo .xsession (para xenodm) y .xinitrc (para slim), si desea utilizar gestor de login a xenodm puede ejecutar el comando, xenodm ya viene en la base. Es necesario usar xenodm o slim, porque si deseamos usar starx he podido notar que no funciona 😐

#touch .xsession

#echo 'ck-launch-session dbus-launch --exit-with-session /usr/local/bin/startlxqt' > .xsession

#rcctl enable xenodm

#reboot

Observas el login con xenodm e ingresas tus credenciales de usuario y password, luego muestra el entorno lxqt en English

5. hasta el momento es todo lo que se necesita, pero algo aquí no va a funcionar por defecto, si! los botones de reiniciar (restart) y apagar (shut down), necesitamos solamente agregar a nuestro usuario al grupo "operator", no se necesita realizar otra acción, podemos leer los permisos concedidos en el archivo.

/usr/local/share/polkit-1/rules.d/10-openbsd-consolekit.rules

Entonces preguntamos con

$groups tu-usuario

#usermod -G operator tu-usuario

$groups tu-usuario

Ahora si ya puedes apagar o reiniciar con los botones.

6. traducimos al Español, para ello escribimos en el archivo del usuario .profile, con slim va a funcionar, con xenodm no traduce nada 😎. Escribimos debajo de una línea comentada.

$vi .profile

LANG=es_PE.UTF-8; export LANG

MM_CHARSET=UTF-8; export MM_CHARSET

Podemos preguntar con

$locale -a | grep es_

Y observamos que existe es_PE

7. agregamos a slim

#pkg_add -v slim slim-themes

No te olvides que debes deshabilitar otro gestor de login, en nuestro caso estaba xenodm habilitado, entonces lo deshabilitamos

#rcctl disable xenodm

Iniciamos a slim con

#rcctl enable slim

Por defecto no necesitamos modificar nada, tal vez cambiar el theme en slim.conf, cuando ingresa a lxqt se ve que lee el archivo .profile y traduce en gran parte el entorno lxqt. Antes de hacer reboot y ver funcionar a slim con lxqt debemos copiar el archivo .xsession a .xinitrc, este último será leído por slim.

$cp .xsession .xinitrc

#reboot



 
Ya puedes ver el entorno completo.



 No te olvides de visitar mi canal de Youtube y suscribirte. 😀

domingo, 9 de enero de 2022

Instalar OpenBSD 7, particionamiento personalizado

 En la entrada mostraremos como podemos particionar el disco, el objetivo es no quedarnos "cortos", OpenBSD al momento de realizar la partición al indicarle disco completo nos sugiere un esquema, que consiste en varias particiones, pero le asigna poco espacio para alguna partición (/usr/) donde los paquetes binarios ocupan espacio y se llena.

En OpenBSD se usa las letras para las "particiones": a, b, c, ...; donde c no se usa, nosotros utilizaremos a para /, b para swap y d para /home.

El asistente nos indica que deseamos realizar, entonces escribimos C (personalizar) 

Continuamos escribiendo la letra h para ver la ayuda y luego agregamos con a espacio a, llegado al punto le asignamos 9G (nueve gigas Bytes)


Las opciones sin marcar se elige por defecto, solamente la que se marca se ingresa.


Procedemos de la misma forma para la partición con letra b, que por defecto OpenBSD nos sugiere que sea swap y le asignamos 2GB


De la misma forma para la partición con letra d, para /home, por tratarse de un ejemplo para demostración se elige los tamaños, puedes asignarle el que gustes, dependiendo de tu capacidad de disco.


Podemos imprimir para ver como nos ha quedado, con la letra p.


Eso fue todo, letra q para salir y aceptar la sugerencia de escribir.

Podemos observar con el comando df -h, nuestras particiones luego de instalar el sistema completo.


Continua viendo el tutorial de instalar y configurar entorno de escritorio.

OpenBSD 7.0 with Mate Desktop and Xenodm

 Hello everyone, in this tutorial I am going to show you how to enable Xenodm (display login) and Mate desktop on OpenBSD system. Mate desktop is another desktop environment, easy to use, but we need to create a file and write some text, ok! Let's go!

Result:


1. Install your operating system, in this case is OpenBSD 7.0, watch our tutorial here.

2. Pkg_add is package manager to install binaries packages, it is more easy to add and quick.

Note: you can use pkg_info -Q youpackage, to query it

#pkg_add -v mate mate-extras

3. when mate and mate-extras packages were added you can see some information, e.g. check out this file /usr/local/share/doc/pkg-readmes/mate, in this file you can read instructions to start mate desktop and how it works with xenodm.

$touch .xsession

$echo 'exec /usr/local/bin/ck-launch-session /usr/local/bin/mate-session' > .xsession

4. Enable messagebus daemon and xenodm (display login)

#rcctl enable messagebus

#rcctl enable xenodm

You can see the new file /etc/rc.conf.local

5. Don't worry, other packages were added, for example consolokit2, etc. Your system is complete, but you can add more packages.

#pkg_add -v epiphany sudo vlc mpv oxygen-icons faenza-icon-theme neofetch xdg-user-dirs chromium

When you add xdg-user-dirs afterwards you should execute the next comand

$xdg-user-dirs-update

You can see yours directories by default

 


Now you can reboot the system or shut down it

Enter user's password, no root account


afterwards you will see the display login (xenodm), the default display login to OpenBSD, then enter your user and password, don't use root account!

 


Automatically you are going to use Mate desktop

Thanks a lot you, don't forget to watch my Youtube channel.

sábado, 11 de diciembre de 2021

FreeBSD 13, Xfce with XDM in Spanish

 Hello everyone, in this tutorial I'm going to show you a how to do to have XFCE and xdm (display manager) on FreeBSD 13, optional you may want to translate to your language, in this case my default language is Spanish. Ok let's go!

I am going to update my other tutorials about FreeBSD and Xfce in this blog, this post it is 😀.

Result:


1. Download the .iso image from FreeBSD web site, I chose cpu i386 option.

2. Install the operating system, You can watch my video in my Youtube Channel 😀.

3. I will use pkg to add some package, them FreeBSD offers you to install the package, afterwards install xorg package...

#pkg update

#pkg install xorg

4. It is time to add xfce package and add dbus daemon to /etc/rc.conf

#pkg install xfce

#echo '#DBus' >> /etc/rc.conf

#echo 'dbus_enable="YES"' >> /etc/rc.conf

and you can start the daemon

#service dbus start

5. Now we need to create some files, e.g. .xinitrc for your user (/home/your-user), then add a line into your file.

before maybe you want to read some example, e.g.

#find / -iname xinitrc

then in that example say you how to start xfce when you use starxt as command.

change to your user account

$touch .xinitrc

$echo 'exec ck-launch-session xfce4-session' > .xinitrc

6. this point is optional to do, it depends of your language; then to translate to Spanish language I did it (I modified default language)

$vi .login_conf

me:\
    :charset=UTF-8:\
    :lang=es_ES.UTF-8:

To know what option you have, then you can query, in my case I need Spanish option 😀, it can be different for you case, then change "es" words 😌.

$locale -a | grep es_

Afterwards  you should reboot your system, it is necessary to read the last file.

7. You can start xfce with the next command

$startx

You can see XFCE desktop 😀

Maybe you want to add the next package to build your directories

#pkg install xdg-user-dirs

$xdg-user-dirs-update

$ls

Note: don't worry about restart and shutdown buttons, they are enabled, because .xinitrc has all things to make it 😌


8. But I want to use login display manager when I am starting my system, then we are going to use xdm package

#pkg install xdm

Afterwars we need to edit some line to start xdm in boot time, find the next text.

#vi /etc/ttys

ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   off secure

And change off option to on

ttyv8   "/usr/local/bin/xdm -nodaemon"  xterm   on secure

9. It is time to copy .xinitrc to .xsession (because the content is the same), this file (.xsession) is mandatory, because xdm works with .xsession

$cp .xinitrc .xsession

$chmod u+x .xsession

10. It is time to reboot the operating system

#reboot

Afterwards you are going to see the xdm display manager and enter your user (no root account, be carefully) and password


 As you see it has a perfect Spanish language.


Optional thing to do: change your language for your terminal emulator, because the default keyboard is US or English, in my case my keyboard is Spanish, then you can use graphical interface form xfce tools

 

11. Also you can add more software, it depends of you 👦

#pkg install firefox gnumeric abiword neofetch sudo unrar zip unzip xcalc cmus vlc mpv epdfview vim

Don't forget to visit my blog and my Youtube channel (subscribe please), I'm sorry, because I could have some mistakes about English language here, my default language is not English, thank you!

viernes, 10 de diciembre de 2021

NetBSD 9.2 and XFCE with XDM display manager

 Hi everyone in this tutorial I am going to show you how to enable XDM to work with XFCE desktop, ok let's start.

Note: #=root user, $=user without privileges; remember that we are going to use packages (binary), because it is more quick and easy to install our XFCE desktop and other.

Result:



1. download iso file from NetBSD web site, in my case it was cpu i386 option.

2. install NetBSD on you hard disk, you can follow my tutorial from Youtube channel.

3. add xfce4 and xfce4-extras, check the messages when it is installing.

#pkgin install xfce4 xfce4-extras

4. you should copy a file from an example for dbus daemon, e.g.

#cp /usr/pkg/share/examples/rc.d/dbus /etc/rc.d  

#echo 'dbus=YES' >> /etc/rc.conf

#/etc/rc.d/dbus start

okay, let's continues...

5. you need to create file on your home directory, e.g. /home/your-user-no-root; to work xdm and xfce it is mandatory this file.

$touch .xsession

$echo 'exec ck-launch-session xfce4-session' > .xsession

There is an example to xinitrc, you can find using the command, remember that when you use .xinitrc you can start xfce with starx command, it file is the same to .xsession, you can copy it.

#find / -iname xinitrc    //read the example and copy some line

Now you need to edit some file to xdm...

6. add a line to the file etc/X11/xdm/xdm-config, e.g. This line is mandatory to start with your user, no root account.

#echo 'DisplayManager*authName: MIT-MAGIC-COOKIE-1' >> /etc/X11/xdm/xdm-conf

7. you need to write or add a line about xdm daemon to /etc/rc.conf

#echo 'xdm=YES' >> /etc/rc.conf 

Afterward it is time to reboot your system...

#reboot

 

Hit enter


Now you can see the xdm display manager, then you enter your user and password, hit enter, after xfce desktop appears, also you can see in logout options from menu that buttons to restart and shutdown are enabled, no more things to do or similar, it works all things.


8. you can add more packages, e.g.

#pkgin install vlc zip unzip unrar sudo vim gnumeric abiword papirus-icon-theme epdfview p7zip neofetch wget firefox mpv cmus xcalc xterm

9. It is a good idea to add xdg-user-dirs package and build them

#pkgin install xdg-user-dirs

$xdg-user-dirs-update

$ls


You can see your default directories, another thing to do could be to put your full name, use vipw as root and write before home directory (::/home/your-user) your full name, don't edit directly /etc/passwd. Also you can enable sudo command for your user,

That's all, but I want to say you that XFCE desktop currently has good support by NetBSD team, especially with pkgin manager.

P.D. excuse me if I have many mistakes, English is not my native language, but I try to learn English 😀

Packet Tracer 9 en fedora 44

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