GNU/Linux: Fundamentos, Características, Distribuciones y Seguridad del Sistema Operativo

Introducción a GNU/Linux

GNU/Linux es el término empleado para referirse a la combinación del núcleo o kernel libre, similar a Unix, denominado Linux, con el sistema operativo GNU.

El proyecto GNU fue iniciado por Richard Stallman en 1983, con el objetivo de crear un sistema operativo completamente libre: el sistema GNU. GNU es un acrónimo recursivo que significa GNU No es Unix (GNU is Not Unix).

En 1985, Stallman creó la Free Software Foundation (FSF o Fundación para el Software Libre) para proveer soporte logístico, legal y financiero al proyecto GNU. Entre las empresas que apoyaron el proyecto, la más exitosa fue Cygnus Solutions, ahora parte de Red Hat.

El nombre Linux proviene del núcleo Linux, inicialmente escrito por Linus Torvalds en 1991.

La popularidad de GNU/Linux se debe a su estabilidad, acceso al código fuente, independencia de proveedor, seguridad, la rapidez con que incorpora los nuevos adelantos tecnológicos y su escalabilidad. Este sistema operativo ha alcanzado el 89,2% de las computadoras más potentes del mundo debido a su confiabilidad, seguridad y la libertad para modificar su código.

Características de Linux

  • Multitarea: Permite la ejecución simultánea de varios programas (o procesos).
  • Multiusuario: Soporta múltiples usuarios trabajando en la misma máquina al mismo tiempo.
  • Multiplataforma: Compatible con diversas arquitecturas de CPU, no solo Intel.
  • Carga de ejecutables por demanda: Linux solo lee del disco las partes de un programa que están siendo utilizadas en un momento dado.
  • Código fuente abierto: Todo el código fuente está disponible, incluyendo el núcleo completo, los drivers, las herramientas de desarrollo y todos los programas de usuario, permitiendo su libre distribución.
  • Emulación de coprocesador matemático (387) en el núcleo: Los programas no necesitan realizar su propia emulación matemática.
  • Consolas virtuales múltiples: Permite múltiples sesiones de login a través de la consola, conmutables mediante combinaciones de teclas, independientemente del hardware de video.

Distribuciones de GNU/Linux

El objetivo principal de las distribuciones es ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios.

  • Ubuntu

    Distribución basada en Debian, enfocada en el usuario final y la facilidad de uso. Es muy popular y cuenta con un amplio soporte de la comunidad. El entorno de escritorio por defecto es GNOME.

  • Red Hat Enterprise Linux (RHEL)

    Distribución de alta calidad, con amplio contenido y soporte empresarial. Requiere el pago de una licencia de soporte y está enfocada a entornos corporativos.

  • Fedora

    Distribución patrocinada por Red Hat y soportada por la comunidad. Destaca por su facilidad de instalación y buena calidad.

  • Debian

    Otra distribución de muy alta calidad. Su proceso de instalación puede ser un poco más complejo, pero ofrece gran estabilidad, priorizando la solidez sobre los últimos avances.

  • SUSE Linux Enterprise (SLE)

    Distribución de alta calidad, con amplio contenido y soporte empresarial por parte de Novell. Requiere el pago de una licencia de soporte y está enfocada a entornos corporativos.

  • openSUSE

    Versión libre de la distribución comercial SUSE, conocida por su facilidad de instalación.

  • Slackware

    Una de las distribuciones más antiguas y tradicionales.

  • Gentoo

    Sistema inspirado en BSD-ports, que permite compilar y optimizar el sistema completamente desde cero. Requiere una buena conexión a internet y un ordenador medianamente potente.

  • Mandriva

    Creada en 1998 con el objetivo de acercar el uso de Linux a todos los usuarios.

  • Kubuntu

    Distribución basada en Ubuntu, enfocada en el usuario final y la facilidad de uso. La principal diferencia con Ubuntu es que su entorno de escritorio por defecto es KDE.

Seguridad en GNU/Linux

Autenticación HTTP

Consiste en solicitar credenciales al usuario (login y password) para acceder a un sistema específico. El método menos seguro es el envío de credenciales mediante variables GET. Un método más seguro, pero aún vulnerable, es el uso del método POST. En sistemas con información confidencial, se emplean algoritmos de encriptación y desencriptación (por parte del servidor), como NETKEY, VPN o hashes de información.

Certificados de Seguridad (SSL/TLS)

SSL (Secure Sockets Layer) implementa un protocolo de negociación para establecer una comunicación segura a nivel de socket (nombre de máquina más puerto), de forma transparente al usuario y a las aplicaciones que lo utilizan. Actualmente, es el estándar de comunicación segura en los navegadores web más importantes (protocolo HTTPS).

Los algoritmos, longitudes de clave y funciones hash de resumen utilizados en SSL/TLS dependen del nivel de seguridad requerido o permitido.

  • RSA + Triple DES de 168 bits + SHA-1: Uno de los conjuntos más robustos en seguridad, permite 3.7 * 1050 claves simétricas diferentes, lo que lo hace extremadamente difícil de romper. Su uso está permitido principalmente en la Unión Europea y se aplica sobre todo en transacciones bancarias.
  • RSA + RC4 de 128 bits + MD5: Permite 3.4 * 1038 claves simétricas diferentes. Utilizado por organismos gubernamentales, grandes empresas y entidades bancarias.
  • RSA + RC2 de 128 bits + MD5: Permite 3.4 * 1038 claves simétricas diferentes. Su uso comercial en Estados Unidos ya permite su implementación en los navegadores más comunes.

Control de Acceso Discrecional (DAC)

El sistema de contraseñas en Linux es de tipo unidireccional. Nuestra contraseña no se almacena como texto plano, sino que se cifra y se guarda en formato hash. Cuando un usuario ingresa su contraseña, esta se cifra y se compara con el hash almacenado.

Actualmente, en los sistemas GNU/Linux se pueden elegir dos tipos de cifrado para las contraseñas de usuario:

  • 3DES: Utilizado desde los inicios de UNIX, tiene el inconveniente de que solo permite contraseñas de 8 caracteres; si se escriben más, se ignoran.
  • MD5: Permite contraseñas de la longitud deseada. Por seguridad, se recomienda utilizar el tipo MD5.

Tipos de Usuarios en GNU/Linux

  • Usuario Normal: Individuo que accede al sistema con privilegios que le permiten usar los recursos. También se les conoce como usuarios de login.
  • Usuarios de Sistema: Usuarios internos vinculados a tareas del sistema operativo. No pueden iniciar sesión con un login normal y se les conoce como usuarios sin login.
  • Root (Superusuario): El superusuario de GNU/Linux, con los máximos privilegios para efectuar cualquier operación sobre el sistema. Se encarga de gestionar servidores, grupos, etc.

Archivos de Configuración de Usuarios y Grupos

Toda la información de los usuarios y grupos se guarda en los siguientes archivos:

  • /etc/passwd: Almacena información de los usuarios del sistema, como nombres, directorio home y shell.
  • /etc/group: Almacena la información sobre los grupos existentes en el sistema.
  • /etc/shadow: Contiene las contraseñas cifradas (hashes) de los usuarios, además de otros datos para su validación.

Atributos de Usuarios y Grupos

  • User ID (UID): Número de identificación único del usuario. El 0 está reservado para el usuario root.
  • Group ID (GID): Número de identificación del grupo primario al que pertenece el usuario. Un usuario puede pertenecer a múltiples grupos.
  • Directorio home: Es el directorio personal del usuario, donde guarda sus archivos. Generalmente se encuentra en /home/nombre_de_usuario.
  • Intérprete de comandos (Shell): Programa que lee las entradas del teclado y ejecuta los comandos o programas indicados.
  • Lista de usuarios (en grupo): Nombres de los usuarios que pertenecen a un grupo, separados por comas. Todos los usuarios deben pertenecer al menos a un grupo.
  • Días desde el último cambio de contraseña: Número de días transcurridos desde el 1 de enero de 1970 hasta la última vez que se cambió la contraseña.

Sistema de Archivos UNIX

El sistema de archivos UNIX está caracterizado por:

  • Una estructura jerárquica.
  • Un tratamiento consistente de la información de los archivos.
  • Protección de los archivos.

Tipos de Información en el Sistema de Archivos

  • Información compartible: Aquella que puede ser compartida entre varias máquinas diferentes.
  • Información no compartible: Aquella que debe ser local a una máquina particular.
  • Información estática: Incluye binarios, librerías, documentación y todo aquello que no cambia sin la intervención del administrador del sistema.
  • Información variable: Todo lo que cambia sin la intervención del administrador.

Directorios Comunes del Sistema de Archivos

  • /bin
  • /boot
  • /dev
  • /etc
  • /home
  • /lib
  • /mnt
  • /root
  • /sbin
  • /tmp
  • /usr
  • /var

Deja una respuesta

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

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.