Administración del servidor

Sistema de archivos virtual de Linux

El sistema de archivos virtual de Linux o el sistema de archivos virtual generalmente es una capa que se encuentra en la parte superior de tu sistema de archivos actual que le permite al usuario acceder a diferentes tipos de sistemas de archivos, puedes pensar en un sistema de archivos virtual como una interfaz entre el kernel y el sistema de archivos verdadero.

Eso significa que no encontrarás ninguna entrada para esos sistemas de archivos virtuales de Linux en tu archivo /etc/fstab. Sin embargo, los encontrará cuando escribas el comando mount.


Si vienes de Windows, el sistema de archivos virtual es el Registro o Registry.

 

 

Sistema de Archivos /proc

El sistema de archivos /proc es un sistema de archivos virtual de Linux que está montado en el directorio /proc.

No existe un sistema de archivos real en /proc, solo una capa virtual que se usa para manejar las funcionalidades del kernel.

Por ejemplo, para obtener las especificaciones del procesador, escribe el siguiente comando:

$ cat /proc/cpuinfo

Esta es una manera muy poderosa y fácil de consultar el kernel de Linux.

Ten en cuenta que, si compruebas el tamaño del archivo en el directorio /proc, podrás ver que todos los tamaños de archivo son 0, porque como dijimos, no existen en el disco.

Cuando escribes el comando cat /proc/cpuinfo, se crea dinámicamente un archivo para mostrarte la información de la CPU.

El único archivo que tiene un tamaño en el directorio /proc es /proc/kcore, el cual muestra el contenido de la RAM. En realidad, este archivo no ocupa ningún espacio en el disco.

 



Escribir en archivos de Proc

Como hemos visto, podemos leer el contenido de los archivos de proceso, pero algunos de ellos son modificables, por lo que podemos escribirles para cambiar alguna funcionalidad.

Por ejemplo, el archivo  /proc/sys/net/ipv4/ip_forward controla el reenvío de IP en caso de que tengas varias tarjetas de red.

Puedes cambiar el valor de este archivo de esta manera:

$ echo "1" > /proc/sys/net/ipv4/ip_forward

Ten en cuenta que cuando cambias cualquier archivo o valor en el directorio /proc no existe una validación de lo que estás haciendo, puedes bloquear tu sistema si escribe una configuración incorrecta.

 

Cambios persistentes en los archivos /proc

La modificación anterior a la entrada /proc/sys/net/ipv4/ip_forward no estará disponible después de reiniciar ya que no está escribiendo en un archivo, este es un sistema de archivos virtual, significa que el cambio ocurre en la memoria.

Si necesitas guardar cambios en /proc, tiene dos formas:

  • Puede escribir tus entradas en el archivo  /etc/rc.local  fo en distribuciones basadas ​​en Red Hat como CentOS, crea el archivo  /etc/rc.d/rc.local y haz que sea ejecutable. Activa la unidad de servicio systemd que te permite el uso del archivo rc.local y escribir tus entradas.
  • El comando sysctl se usa para cambiar las entradas en el directorio  /proc/sys/.

$ sysctl net.ipv4.ip_forward

Esto mostrará el valor de la entrada, para cambiarla, utiliza la opción -w:

$ sysctl -w net.ipv4.ip_forward=1

Un último paso es escribir los cambios en /etc/sysctl.conf:

$ echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf

Asegúrate de que el archivo /etc/sysctl.conf no contenga la entrada antes de escribir tus cambios.

 


Entradas comunes /proc

Estas son algunas de las entradas /proc de uso común:

/proc/cpuinfo                     información sobre la CPU en el sistema.

/proc/meminfo                 información sobre el uso de la memoria.

/proc/ioports                      lista de regiones de puertos utilizadas para la comunicación de E/S con dispositivos.

/proc/mdstat                      mostrar el estado de la configuración de discos RAID.

/proc/kcore                         muestra la memoria real del sistema.

/proc/modules                  muestra una lista de módulos cargados del kernel.

/proc/cmdline                    muestra los parámetros de arranque pasados.

/proc/swaps                       muestra el estado de las particiones swap.

/proc/iomem                      el mapa actual de la memoria del sistema para cada dispositivo físico.

/proc/versión                     muestra la versión del kernel y el tiempo de compilación.

/proc/net/dev                    muestra información sobre cada dispositivo de red, como el recuento de paquetes.

/proc/net/sockstat          muestra estadísticas sobre la utilización del socket de red.

/proc/sys/net/ipv4/ip     muestra el rango de puertos que usa Linux.

local_port_range/proc/sys/net/ipv4/         protección contra los ataques de inundación syn.

tcp_ syncookies

Estas son algunas de las entradas comunes en el directorio /proc.

These are some of the common entries in /proc directory.

 


Listando el directorio /proc

Si enumeras los archivos en el directorio /proc, verás una gran cantidad de directorios que tienen nombres numéricos, estos directorios contienen información sobre los procesos en ejecución y el valor numérico es el ID del proceso correspondiente.

Puedes verificar los recursos consumidos por un proceso específico de estos directorios.

Si echas un vistazo a la carpeta llamada 1, pertenece al proceso init o systemd (como CentOS 7), que es el primer proceso que se ejecuta cuando se inicia Linux.

$ ls -l /proc/1

Linux Virtual File System

El archivo  /proc/1/exe  es un enlace simbólico al binary  /lib/systemd/systemd o  /sbin/init en otros sistemas que usan init binary.

El mismo concepto se aplica a todas las carpetas numéricas en el directorio /proc.

 

/proc Ejemplos útiles

Para proteger tu servidor de un ataque de flodding SYN, puedes utilizar iptables para bloquear paquetes SYN.

Una mejor solución es usar cookies SYN. Un método especial en el kernel que hace un seguimiento de qué paquetes SYN entrantes. Si los paquetes SYN no se mueven al estado establecido dentro de un intervalo razonable, el kernel los eliminará.

$ sysctl -w net.ipv4.tcp_syncookies=1

Y para persistir los cambios.

$ echo "net.ipv4.tcp_syncookies = 1" >> /etc/sysctl.conf

Otro ejemplo útil que es /proc/sys/fs/file-max, este valor muestra la cantidad de archivos máxima (incluidos sockets, archivos, etc.) que se pueden abrir al mismo tiempo.

Puedes aumentar este número de la siguiente manera:

 


Sistema de archivos virtual sysfs

sysfs es un sistema de archivos virtual Linux lo que significa que también está en la memoria.

El sistema de archivos sysfs se puede encontrar en /sys. El sysfs se puede usar para obtener información sobre el hardware de tu sistema.

$ ls -l /sys

A partir del resultado del comando anterior, los tamaños de los archivos son cero porque, como sabemos, se trata de un sistema de archivos virtual de Linux.

El directorio de alto nivel de /sys contiene lo siguiente:

Block                    lista de dispositivos de bloque detectados en el sistema como sda.

Bus                       contiene subdirectorios para buses físicos detectados en el kernel.

class                      describe la clase de dispositivo como audio, red o impresora.

Devices                enumera todos los dispositivos detectados por el bus físico registrado con el kernel.

Module                 enumera todos los módulos cargados.

Power                   el estado de energía de tus dispositivos.

 

Sistema de archivos virtual de Linux tmpfs

tmpfs es un sistema de archivos virtual de Linux que mantiene los datos en la memoria virtual del sistema. Es lo mismo que cualquier otro sistema de archivos virtual, cualquier archivo se almacena temporalmente en cachés internos del Kernel.

El sistema de archivos /tmp se usa como la ubicación de almacenamiento para archivos temporales.

El sistema de archivos /tmp está respaldado por un almacenamiento real basado en disco y no por un sistema virtual.

Esta ubicación se elige durante la instalación de Linux .

El archivo /system/tmp es creado automáticamente por el servicio systemd al arrancar el sistema.

Puedes configurar el sistema de archivos de estilo tmpfs con el tamaño que desees, utilizando el comando mount.

$ mount it tmpfs -o size=2GB tmpfs  /home/myfolder

¡¡Increíble!!

Trabajar con el sistema de archivos virtual de Linux es muy fácil.

Espero que la publicación sea útil e interesante. Sigue regresando.

Gracias.

Mokhtar Ebrahim
Estoy trabajando como administrador de sistemas Linux desde 2010. Soy responsable de mantener, proteger y solucionar problemas de servidores Linux para múltiples clientes de todo el mundo. Me encanta escribir guiones de shell y Python para automatizar mi trabajo.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *