Bienvenidos a la página personal de José Domingo Muñoz Rodríguez, aquí podrás encontrar…

Accede a las entradas de mi blog donde escribo de Informática y Educación.

Blog Pledin

Accede a los materiales de los cursos que he impartido.

Plataforma Pledin

Accede a los contenido de los módulos de FP que estoy impartiendo en la actualidad.

Módulos FP

Últimos posts...

Reglas de NAT con nftables

nftables

En la entrada anterior hicimos una introducción a la implementación de un cortafuegos personal con nftables, en este artículo vamos a comenzar a implementar un cortafuegos perimetral.

Configuración inicial de nuestro cortafuegos perimetral

Un cortafuego personal nos controla las comunicaciones que entran y salen de un ordenador (usamos las cadenas input y output de la tabla filter). En un cortafuegos perimetral estamos gestionando las conexiones que entran y salen de una o varias redes de ordenadores, o visto de otra manera, las conexiones que atraviesan el router que da acceso a estas redes, por lo tanto, lo más usual, es que el cortafuegos se implemente en el router. Para controlar los paquetes que atraviesan el router utilizaremos la cadena forward de la tabla filter.

El cortafuegos perimetral que nosotros vamos a configurar sería el más simple, y es el que controla el tráfico para una red local:

nftables

Sin embargo el cortafuegos perimetral puede controlar el tráfico de varias redes loscales, por ejemplo cuando tenemos en una red los equipos de nuestra red local y en otra red los servidores que exponen servicios al exterior (por ejemplo el servidor web). A esta última red se le suele llamar zona desmilitarizada (DMZ) y es este caso tendríamos un escenario como este:

nftables

Además de la función de filtrado, con nftables podemos hacer NAT, por ejemplo para permitir que los equipos de la red local puedan comunicarse con otra red (SNAT, source NAT) o para que un equipo externo acceda a una máquina de la red local (DNAT, destination NAT). Para ello utilizaremos la tabla nat.

Configuración de NAT con nftables

NAT son las siglas del inglés network address translation o traducción de direcciones de red y es un mecanismo que se usa ampliamente hoy en día. Existen diferentes tipos:

  • Source NAT: Se cambia la dirección IP de origen, es la situación más utilizada cuando estamos utilizando una dirección IP privada en una red local y establecemos una conexión con un equipo de Internet. Un equipo de la red (normalmente la puerta de enlace) se encarga de cambiar la dirección IP privada origen por la dirección IP pública, para que el equipo de Internet pueda contestar. También es conocido como IP masquerading, pero podemos distinguir dos casos:
    • SNAT estático: Cuando la dirección IP pública que sustituye a la IP origen es estática (SNAT también significa Static NAT).
    • SNAT dinámico o MASQUERADE: Cuando la dirección IP pública que sustituye a la IP origen es dinámica, caso bastante habitual en conexiones a Internet domésticas.
  • Destination NAT o port forwarding: En este caso se utiliza cuando tenemos algún servidor en una máquina detrás del dispositivo de NAT. En este caso será un equipo externo el que inicie la conexión, ya que solicitará un determinado servicio y el dispositivo de NAT debe modificar la dirección IP destino.
  • PAT (Port Address translation): Modifica específicamente el puerto (origen o destino) en lugar de la dirección IP. Por ejemplo si queremos reenviar todas las peticiones web que lleguen al puerto 80/tcp al mismo equipo pero al puerto 8080/tcp.
Seguir leyendo...

Implementación de un cortafuegos personal con nftables

nftables

El objetivo de esta entrada es hacer una introducción a nftables para empezar a implementar un cortafuego personal para nuestro ordenador.

Lo primero: ¿qué es nftables?. nftables es el nuevo framework que podemos usar para analizar y clasificar los paquetes de red y nos permite la implementación de cortafuegos. Es una aplicación desarrollada dentro del proyecto netfilter. Sustituye a la familia de aplicaciones {ip,ip6,arp,eb}tables. Es recomendable el uso de nftables ya que tiene una serie de ventajas respecto a su antecesor iptables. Esta entrada del blog introduce los principales conceptos de nftables, para profundizar en el tema es recomendable estudiar su documentación.

Configuración inicial de nuestro cortafuegos personal

Una de las diferencias de usar nftables es que las tablas y cadenas son totalmente configurables. En nftables lo primero que tenemos que hacer es crear las tablas (son las zonas en las que crearemos las distintas reglas del cortafuegos clasificadas en cadenas). A continuación crearemos las distintas cadenas en las tablas (que nos permite clasificar las reglas).

Creación de la tabla filter

Vamos a crear una tabla para filtrar los paquetes que llamaremos filter:

# nft add table inet filter

Tenemos varias familias para crear las tablas, en nuestro caso hemos escogido inet que nos permite trabajar con ipv4 y ipv6.

Para ver la tabla que hemos creado:

# nft list tables
table inet filter

Puedes leer sobre más operaciones sobre las tablas.

Seguir leyendo...

Gestionando nuestro almacenamiento en la nube con nextcloud y rclone

nextcloud

En este artículo os cuento mis entretenimientos en las últimas semanas, jugando con nextcloud y ampliando su espacio de almacenamiento usando la aplicación rclone. Con estas herramientas podemos automatizar fácilmente nuestras copias de seguridad en la nube. Veamos cada una de estas aplicaciones:

Nextcloud

Nextcloud es una aplicación web escrita en PHP cuyo objetivo es crear un servidor de alojamiento de archivos en cualquier servidor personal. Tiene la misma funcionalidad de otros servicios de almacenamiento en la nube, como Dropbox, pero la gran diferencia es que Nextcloud es de código abierto, por lo que podemos instalarlo y adaptarlos a nuestras necesidades.

Para poder instalar la aplicación Nextcloud necesitamos instalar un servidor LAMP, que podemos hacer de forma sencilla en Debian Buster de la siguiente forma:

  1. Instalamos Apache2 como servidor web:

     apt install apache2
    
  2. Instalamos el servidor de base de datos:

     apt install mariadb-server
    

    A continuación accedemos al servidor y creamos la base de datos y el usuario con el que nos vamos a conectar a la base de datos:

     $ mysql -u root -p
    
     > CREATE DATABASE nextcloud;
     > CREATE USER 'usernextcloud'@'localhost' IDENTIFIED BY 'passnextcloud';
     > GRANT ALL PRIVILEGES ON nextcloud.* to 'usernextcloud'@'localhost';
     > FLUSH PRIVILEGES;
     > quit
    
  3. Instalamos la versión de php, así como la libería para que php pueda conectarse a la base de datos (por dependencia se instala el módulos de apache2 libapache2-mod-php7.3 que permite que el servidor web ejecute código php):

     apt install php7.3 php7.3-mysql
    
  4. A continuación nos bajamos la aplicación Nextcloud de la página oficial de descargas (en el momento de escribir este manual hemos descargado la versión 17.0.1), lo descomprimimos y copiamos todos los ficheros y directorios en el DocumentRoot, en nuestro caso como vamos a usar el virtualhost default será el directorio /var/www/html/.

     # cd /tmp
     /tmp# wget https://download.nextcloud.com/server/releases/nextcloud-17.0.1.zip
     /tmp# unzip nextcloud-17.0.1.zip
     /tmp# cd nextcloud
     /tmp/nextcloud# cp -r * /var/www/html
     /tmp/nextcloud# cd /var/www/html
     /var/www/html# chown -R www-data: .
    
  5. Accedemos a nuestro servidor desde un cliente, para ello en cliente vamos a configurar la resolución estática, en el fichero /etc/hosts añadimos la siguiente línea (la ip de nuestro servidor es 192.168.100.36):

     192.168.100.36  www.example.org
    

y comenzamos con la configuración de la aplicación:

nextcloud1

Siguiendo la documentación necesitamos instalar algunas librerías más de php:

    apt install php-zip php-xml php-gd php-curl php-mbstring

Ya tenemos instalada nuestra aplicación Nextcloud:

nextcloud2

Seguir leyendo...

Más posts...

Últimos cursos...

Revistas

Revistas Libres de Software Libre

Learn More

Twitter

cc

Licencia

Licencia: Puedes copiar y modificar todos los contenidos, pero siempre respetando los términos de la licencia CC-BY-SA.

Ver