domingo, 7 de febrero de 2021

Servidor DHCP en Linux (CentOS, Fedora, Springdale Linux, Scientific Linux, Oracle Linux, AlmaLinux, RockyLinux)

 Nuestro escenario:


Nosotros tenemos dos redes internas clase C como son 192.168.2.0/24 y 192.168.3.0/24; nuestra red de cara al router es 192.168.1.0/24 (interfaz externa), con puerta de enlace 192.168.1.1.

Nombres que adoptan nuestras interfaces en Fedora: para la externa es enp0s3, para las redes internas son enp0s8, enp0s9

Paso 1: teniendo nuestro sistema operativo instalado y configurado (en mi canal de youtube tengo videos de cómo instalar y configurar las interfaces con ipv4) en sus interfaces de red procedemos a agregar el equipamiento lógico, el paquete binario.

#yum install dhcp

Paso 2: las interfaces enp0s8 y enp0s9 serán donde el protocolo va a funcionar, por defecto no necesita especificar qué interfaces proporcionan dicho servicio en los clones de rhel desde la versión 7 para adelante.

El archivo principal a utilizar está en la ruta /etc/dhcp/dhcpd.conf, por defecto el archivo viene sin ejemlo, entonces debemos copiar el ejemplo que nos "invita" a usar ubicado en la ruta /usr/share/doc/dhcp*/dhcpd.conf

#cp /usr/share/doc/dhcp*/dhcpd.conf /etc/dhcp/dhcpd.conf

Paso 3: modificamos el archivo según nuestro escenario y así quedaría nuestro archivo.

#vi /etc/dhcp/dhcpd.conf

si se desea dar una Ip estática a una terminal específica se tiene que anotar su dirección MAC y asignarle una ipv4, claro su nombre de la terminal también se escribe.


Paso 4: iniciamos el servicio en arranque e iniciamos el servicio.

#systemctl enable dhcpd.service

#systemctl start dhcpd.service

Sino muestra ningún error entonces todo el archivo está bien configurado, puedes verificar con el comando el estado del servicio.

#systemctl status dhcpd

Por defecto en nuestro escenario no es necesario agregar el servicio a firewalld, en los segmentos o zona interna ya recibe los parámetros, recuerden que que el servidor es un enrutador y puerta de enlace para las redes internas.

Puedes mirar las ips asignadas de manera automática a las terminales en los segmentos de red en el archivo.

/var/lib/dhcpd/dhcpd.leases

Es una configuración básica, en el archivo example hay más escenarios y parámetros que se podrían utilizar, restricciones y otros.

viernes, 5 de febrero de 2021

Router doméstico con Fedora server 33 utilizando FirewallD

 En otra entrada anterior hemos realizado un router y un gateway con RHEL y sus clones binarios, hemos anotado los pasos. En esta entrada les presento los pasos que son muy similares, pero para Fedora 33 server, se actualiza los pasos y se indica algunos alcances más, espero que te guste y lo puedas poner en práctica.

Nota: tal vez te preguntes ¿y para que me sirve un enrutador? La respuesta es para salir a otras redes como podría ser internet, ¿te suena algo como Mikrotik? pues si eso puedes hacer, cuando configurabas un RouterBoard en firewall ibas a NAT y en action elegías MASQUERADE, pues eso mismo aquí realizas, pero no necesitas comprar un Router Board, sino con una PC, la imagen iso de Fedora Server puedes realizar dicha tarea y muchos otros servicios puedes añadir.

Nuestro escenario:

 Nosotros tenemos dos redes internas clase C como son 192.168.2.0/24 y 192.168.3.0/24; nuestra red de cara al router es 192.168.1.0/24, con puerta de enlace 192.168.1.1.

Nombres que adoptan nuestras interfaces en Fedora: para la externa es enp0s3, para las redes internas son enp0s8, enp0s9

Paso 1: descargar Fedora server 33 desde su sitio web principal.

Para arquitectura x86_64, aquí

Paso 2: instalar el sistema operativo.

Paso 3: necesitas utilizar a firewalld con su herramienta en cli firewall-cmd

#firewall-cmd --list-all

Con el comando de arriba verificas la zona por defecto en la que trabaja las interfaces, nosotros debemos cambiar a nuestro escenario específico.

Paso 4: cambiamos la interfaz de cara a internet enp0s3 a external (esta zona ya está enmascarada)

#firewall-cmd --list-all --zone=external

Con ese comando miras que ya esta habilitado la opción masquerade y también recordar que esa zona es para realizar enrutador, así dice en la documentación de firewalld.

#firewall-cmd --change-interface=enp0s3 --zone=external --permanent

El comando de arriba es explícito y se agrega permanent para hacer los cambios permanentes.

Paso 5: cambiamos las otras interfaces a la zona interna.

#firewall-cmd --change-interface=enp0s8 --zone=internal --permanent

#firewall-cmd --change-interface=enp0s9 --zone=internal --permanent

 Paso 6: cambiamos la zona default a internal (por defecto esta en public)

#firewall-cmd --set-default-zone=internal

El comando de arriba cambia la zona por defecto y no es necesario la opción permanent.

Eso es todo lo que se tiene que realizar, se guardaran los cambios y ya es un enrutador, puedes probar con clientes en los segmentos de red internos, ya pueden salir a otras redes usando como puerta de enlace a las interfaces internas de Fedora.

domingo, 31 de enero de 2021

Subnetear redes IPV4 con máscara de subred de longitud variable (VLSM)

 Se nos presenta el caso:

Segmento de red 192.168.1.0/24 que nos proporcionan. Implementar VLSM
Solución:
2^n-2 >= # de hosts utilizables, donde n es el número de ceros, la parte host de una dirección ipv4.

Comenzamos de mayor a menor:
-Necesitamos 30 hosts, entonces en nuestra fórmula 2^n-2>=30, despejando 2^n>=32 hosts, para satisfacer dicha desigualdad n debe ser 5, 2^5>=32.

En la máscara de subred que nos proporcionan debemos de ubicar el número 5
Original:
192.168.1.0/255.255.255.0
192.168.1.0/255.255.255.00000000
Modificado a nuestro caso:
192.168.1.0/255.255.255.224=192.168.1.0/11111111.11111111.11111111.11100000

* Entonces nuestra primera subred es 192.168.1.0/27, el primer host utilizable es 192.168.1.1/27, el último host utilizable es 192.168.1.30/27, la dirección ipv4 de broadcast es 192.168.1.31/27

El salto para la siguiente subred es 32, porque 2^5 es 32

* Segunda subred 192.168.1.32/?, aquí la necesidad de host es diferente, entonces volvemos a calcular, 2^n-2>=20, 2^n>=22, satisface n=5, entonces la máscara de subred es /27.
Entonces nuestra segunda subred 192.168.1.32/27, primera ip utilizable es 192.168.1.33/27, la última ip utilizables es 192.168.1.62/27, la dirección de broadcast es 192.168.1.63/27.

* Tercera subred 192.168.1.64/?, de igual forma calculamos la máscara de subred según la necesidad, aquí necesitamos 10 hosts, entonces 2^n-2>=10, 2^n>=12, n=4, 2^4>=16, entonces nuestro salto sería 16.
Nuestra tercera subred es 192.168.1.64/28, nuestra primera ip utilizable es 192.168.1.65/28, última ip utilizables es 192.168.1.78/28, la dirección de broadcast es 192.168.1.79/28.

 Mi video con la misma solución esta en mi canal de youtube.

miércoles, 13 de enero de 2021

Router y Gateway con FirewallD CentOS 7 / Oracle Linux 7 / Springdale Linux 7 / Scientific Linux 7 / Fedora

 Alguna vez necesitas un enrutador en tu red LAN para salir a otras subredes como podría ser internet y no tenemos enrutador como Mikrotik o similares, pero tenemos y conocemos GNU/Linux en este caso Oracle Linux 7, si es libre para descarga desde su sitio principal, es un clon a nivel bianrio de rhel; este apunte sirve para CentOS 7, Springdale Linux 7, Scientific Linux 7 y para Fedora 20 y posteriores. Entonces montamos una PC o un servidor puro y le instalamos el sistema operativo y procedemos, ademas podemos añadir otros servicios como podría ser DHCP y DNS server.

Para administrar firewalld usaremos a firewall-cmd en la terminal.

Los pasos a seguir son pocos comandos que anotamos aquí:

Paso 1- por defecto FirewallD es vamos a decir el firewall en esta versión, hay que utilizar y adaptarnos a los cambios.

Miramos que esté activo con

#systemctl status firewalld

También podemos utilizar los comandos

#systemctl is-active firewalld

#systemctl is-enabled firewalld

Los comandos deben dar respuesta running y active respectivamente.

Paso 2- listamos todo

#firewall-cmd --list-all

Por defecto muestra la zona por default public, tenemos que cambiar las interfaces a nuestro escenario.

Internet--Proveedor con modem/router--Oracle Linux 7--Redes locales (Lan1 y Lan2)

Nuestra interfaz de cara a al router del proveedor es enp0s3 y enp0s8, enp0s9 son las subredes internas.

Paso 3- Cambiando las interfaces de public a zona externa e interna

Sabemos que tenemos que traducir la interfaz de cara a internet como es enp0s3, esa interfaz la enviamos a zone external con el siguente comando.

#firewall-cmd --change-interface=enp0s3 --zone=external --permanent

Por defecto ya se enmascara y al observar con el comando nos damos cuenta de dicho detalle

#firewall-cmd --list-all --zone=external

Observas que tambien le adiciona el servicio ssh por defecto.

Proseguimos enviando las interfaces enp0s8 y enp0s9 a la zona interna, ¿verdad que tiene sentido? Continuamos entonces...

#firewall-cmd --change-interface=enp0s8 --zone=internal --permanent

#firewall-cmd --change-interface=enp0s9 --zone=internal --permanent

Actualización: no es necesario el paso 4

 Paso 4- Habilitamos el forward en ipv4 en el archivo /etc/sysctl.conf

#echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf

El comando de arriba escribirá en la última línea del archivo sysctl.conf, >> hace eso.

Para no reiniciar ponemos ya en 1

#sysctl -p /etc/sysctl.conf

Paso 5- Nos queda decirle que la zona por default sea la zona interna y no es necesario --permanent, ya lo toma como tal, veamos.

#firewall-cmd --set-default-zone=internal

Eso es todo y ya debe funcionar, enciendes tus equipos de tus redes internas y ya deben salir a otras redes como podría ser internet, reinicias y los cambios ya fueron guardados y funciona, revisas nuevamente con 

#firewall-cmd --list-all

y observas que la zona interna está activa.

NOTA: en mi canal de youtube muestro como funciona, busca el video en mi canal (arriba tienes un botón a mi canal de youtube)

lunes, 21 de diciembre de 2020

Se ha detectado un problema en un programa del sistema, Xubuntu 20.04.1 LTS (Focal Fossa)

 Alguna vez estas trabajando con tu sistema GNU/Linux Xubuntu y por algún motivo se va la electricidad, digamos que estamos usando virtualbox como en mi caso y al iniciar nuevamente el sistema (cuando la energía eléctrica retorna) vez mensaje como este "Se ha detectado un problema en un programa del sistema" y una línea más abajo dice "¿Quieres informar de este problema ahora?" le "pinchas" en informar del problema... y reboot y oh sorpresa, no pasa nada y dale que sale una y otra vez el mensaje en cada inicio de xubuntu; buscando en internet logramos solucionar dicho problema realizando los siguientes pasos:

Paso 1- miramos con atención al mensaje, lo identificamos :)

 Paso 2- borramos los archivos en la ruta siguiente, antes de borrar yo tengo un crash de virtualbox, observemos


Paso 3- borrar archivos con extensión .crash

#rm -r /var/crash/*.crash

En mi caso

rm -r /var/crash/_usr_lib_virtualbox_VirtualBoxVM.0.crash

Eso fue todo, reboot y ya no habrá dicho mensaje :)

sábado, 19 de diciembre de 2020

Router y Gateway con CentOS 7

 Hola, alguna vez necesitamos utilizar un dispositivo como una puerta de enlace y que sea un enrutador para salir a otras subredes de nuestra red LAN, no tenemos un enrutador como tal vez pueda ser un TP-LINK o un Mikrotik RouterOS, pero la buena noticia es que nosotros podemos construir uno con un sistema operativo Linux, cualquier Linux, sea openSUSE, CentOS, Debian o un Ubuntu server, con esos sistemas operativos u otros Linux podemos hacer nuestro router y gateway casero :), que te parece que seleccionamos una PC de bajos recursos o si deseas cualquier PC por ahi y le instalar un GNU/Linux cualquiera que he mencionado e insertas tu PC entre el proveedor y tus redes internas, y ¿para qué me sirve eso? Tal vez desees agregar otros servicios en el enrutador Linux, tal vez un servidor DHCP o un servidor DNS, como lo tienen los routers de Mikrotik; no necesitamos otros servicios en nuestro caso necesitamos que sea la puerta de enlace y enrute :)

Pasos a seguir:

Paso 1- elegir una distribución Linux, en nuestro caso elegiremos CentOS 7 por su largo soporte hasta el 2024, creo :), tengo en mi canal de youtube un video con el sistema operativo Debian 10 que hace lo mismo (revisalo)

Paso 2- instalas el sistema operativo (tengo un video completo de la instalación y configuración)

Paso 3- comenzamos aquí, firewalld es el firewall por defecto en CentOS, es potente y hay que conocer como funciona, por ahora no lo utilizaremos, nosotros utilizaremos iptables puro, no es simple de hacer las reglas, pero necesitamos solamente unas líneas para nuestro caso, entonces deshabilitamos todo lo relacionado a firewalld.

Ya sabes todas las reglas deben ejecutarse como superadministrador

# systemctl stop firewalld

# systemctl disable firewalld

# systemctl mask firewalld

Son comandos muy intuitivos, el primero para el servicio, el segundo deshabilita para que no inicie en boot time, el último para que no inicien servicios relacionados a firewald

Paso 4- instalamos servicios iptables

# yum install iptables-services

Paso 5- iniciamos el servicio

# systemctl start iptables

# systemctl start ip6tables

Intuitivo, se inician iptables para ipv4 e ipv6

Paso 6- habilitamos para que inicien en tiempo de inicio

# systemctl enable iptables

# systemctl enable ip6tables

Con dichos comandos ya tenemos iptables funcionando, ahora nosotros crearemos un archivo para nuestras propias reglas, un archivo llamado reglas.sh, en la ubicación /etc/reglas.sh

Paso 7- antes de hacer leemos un archivo que usaremos para ejecute en tiempo de inicio, dicho archivo está ubicado en /etc/rc.d/rc.local, el archivo nos indica que aún se mantiene por compatibilidad, pero indica que debe utilizarse systemd, pero será para otra oportunidad aprenderemos a realizar, por ahora usaremos rc.local como nuestro archivo.

Paso 8- creamos con touch

#touch /etc/reglas.sh

Permiso de ejecución

#chmod +x /etc/reglas.sh

Paso 9- insertamos nuestra reglas básicas para el enrutador, tenemos claro que nuestra interfaz de cara a internet es enp0s3, las otras interfaces son enp0s8 y enp0s9 son nuestras subredes internas.

Estas dos lineas seran suficientes:

#!/bin/sh

iptables -F

iptables -t nat -A POSTROUTING -o enps03 -j MASQUERADE

Limpiamos con -F, porque por defecto ya escribe CentOS unas reglas básicas.

Paso 10- activamos el forward en el archivo /etc/sysctl.conf y poner en 1

net.ipv4.ip_forward=1

Paso 11- ejecutamos el archivo reglas.sh

#sh /etc/reglas.sh

Paso 12- iniciamos el forward sin reiniciar el server

#sysctl -p /etc/sysctl.conf

Paso 13- deseamos que en boot time inice nuestras reglas automáticamente, entonces usamos el archivo /etc/rc.d/rc.local, cambiamos el permiso

#chmod +x /etc/rc.d/rc.local

#vi /etc/rc.d/rc.local

escribes antes de la linea final

sh /etc/reglas.sh

Reinicias y luego al iniciar ya debe funcionar.

Para más información mirar mi video.

El servicio rc-local se inició por defecto, pero sino inicia puedes verificar con 

#systemctl status rc-local

Sino está iniciado pues inicias con

#systemctl start rc-local y habilitas con enable para iniciar automáticamente en tiempo de inicio.

miércoles, 16 de diciembre de 2020

Plugin y codecs para videos y audio en openSUSE 15.2

 Tienes tu sistema operativo openSUSE 15.2 y por defecto tienes software libre, puede reproducir videos en Youtube, pero oh sorpresa no puedes reproducir videos con el navegador de otros sitios como instagram y facebook, entonces lo que necesitas es añadir unos codecs y plugin, pero antes debemos añadir un repositorio llamado packman.

Paso 1- añadir el repo

#zypper addrepo -f http://packman.inode.at/suse/openSUSE_Leap_15.2/ packman

Paso 2- añadir codecs multimedia, será necesario y se incluye el reproductor multimedia VLC

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

Paso 3- refrescar los repos

#zypper refresh

Paso 4- añadir el plugin para firefox u otros navegadores web

#zypper install xine-browser-plugin

Con esos comando es suficiente para ver videos en algunos alojadores de videos, también ya tenemos a vlc y funcionando perfecto, no es necesario otro repo, en una entrada anterior agregué packman-essential, pero con esta entrada ya no es necesario, el repo packman lo incluye.

Opcional:

Tal vez desea agregar otro repo para reproducir algo relacionado a dvd, entonces puede añadir

#zypper addrepo -f http://opensuse-guide.org/repo/openSUSE_Leap_15.2/ dvd

refresca los repos y luego añade

#zypper install libdvdcss2

También puede verificar que los paquetes vienen desde el repo packman

#zypper dup --allow-vendor-change --from http://packman.inode.at/suse/openSUSE_Leap_15.2/

Nota: por ahora se tiene los repos por defecto en openSUSE desde una instalación, luego para multimedia se usa packman, creo que por ahora es suficiente para poder tener un sistema casi completo, si se necesita algo más específico se añadir tal vez con otro repo, pero se recomienda no añadir muchos repos porque puede haber conflicto.

Hacer un Router con FirewallD en GNU/Linux

 FirewallD es el software para Firewall en GNU/Linux, disponible para varias distribuciones Linux (Derivados Debian, RHEL, Suse Linux entre ...