Manual administración servidor Linux

Manual de Administración de Servidor Linux

Introducción

La administración de servidores Linux es una habilidad esencial para los profesionales de TI que gestionan infraestructura en entornos empresariales, de desarrollo o personales. Linux, debido a su estabilidad, flexibilidad y seguridad, es uno de los sistemas operativos más utilizados para servidores. Este manual está diseñado para proporcionar una guía completa para la administración de servidores Linux, cubriendo tareas desde la instalación hasta el mantenimiento y solución de problemas.

1. Instalación de un servidor Linux

Antes de comenzar con la administración de un servidor Linux, es fundamental tener una instalación funcional del sistema operativo. A continuación, se describen los pasos esenciales para instalar una distribución común de Linux como Ubuntu Server, CentOS o Debian:

  1. Selección de la distribución: Existen varias distribuciones de Linux adecuadas para servidores. Ubuntu Server es conocida por su facilidad de uso, CentOS es preferida en entornos empresariales por su estabilidad, y Debian se destaca por ser ligero y seguro. Selecciona la distribución que mejor se ajuste a tus necesidades.
  2. Creación de medios de instalación: La mayoría de las distribuciones de Linux ofrecen imágenes ISO que pueden ser grabadas en un DVD o USB. Asegúrate de descargar la imagen correcta de la página oficial de la distribución.
  3. Configuración de la BIOS/UEFI: Configura el BIOS o UEFI de la máquina para que arranque desde el dispositivo de instalación (USB o DVD).
  4. Proceso de instalación: Inicia el servidor desde el medio de instalación y sigue las instrucciones en pantalla para configurar el idioma, la red, y particionar el disco duro. Durante la instalación, se te pedirá crear una cuenta de usuario y configurar una contraseña para el superusuario (root).
  5. Instalación de servicios básicos: En el caso de distribuciones como Ubuntu Server, se te ofrecerá la opción de instalar software adicional, como servidores web, bases de datos o herramientas de administración. Selecciona las opciones que necesites.

2. Administración de usuarios y permisos

La gestión de usuarios es fundamental para mantener la seguridad y el control sobre el servidor. Linux tiene un sistema robusto de permisos que debe ser comprendido por cualquier administrador de sistemas.

  1. Creación de usuarios: Los usuarios se crean con el comando useradd. Por ejemplo, para crear un nuevo usuario llamado «juan», utilizarías:
   sudo useradd juan
  1. Asignación de contraseñas: Una vez creado un usuario, se debe establecer una contraseña utilizando el comando passwd. Por ejemplo, para asignar una contraseña al usuario «juan»:
   sudo passwd juan
  1. Gestión de permisos: Linux utiliza un sistema de permisos basado en propietario, grupo y otros. Cada archivo o directorio tiene permisos asociados que determinan quién puede leer, escribir o ejecutar el archivo. Los permisos se pueden gestionar utilizando los comandos chmod, chown y chgrp. Por ejemplo, para cambiar los permisos de un archivo:
   sudo chmod 755 /ruta/al/archivo

Este comando le da permisos de lectura, escritura y ejecución al propietario, y solo permisos de lectura y ejecución al grupo y otros usuarios.

  1. Grupos de usuarios: Los grupos permiten administrar conjuntos de usuarios con permisos comunes. Los grupos se crean con groupadd y los usuarios se agregan a los grupos con usermod. Por ejemplo:
   sudo groupadd desarrolladores
   sudo usermod -aG desarrolladores juan

3. Gestión de paquetes y actualizaciones

El mantenimiento adecuado de un servidor Linux incluye la instalación, actualización y eliminación de paquetes de software. Las distribuciones de Linux utilizan gestores de paquetes específicos como APT en Debian/Ubuntu o YUM/DNF en CentOS.

  1. Actualización del sistema: Mantener el sistema actualizado es fundamental para garantizar que se apliquen los últimos parches de seguridad y mejoras. En sistemas basados en Debian/Ubuntu, usa el siguiente comando:
   sudo apt update
   sudo apt upgrade

En CentOS o Fedora, utiliza:

   sudo yum update
  1. Instalación de paquetes: Para instalar paquetes, se utiliza el gestor de paquetes. Por ejemplo, para instalar el servidor web Apache en un sistema basado en Ubuntu:
   sudo apt install apache2

En CentOS:

   sudo yum install httpd
  1. Eliminación de paquetes: Si es necesario eliminar un paquete que ya no se necesita, se puede hacer con:
   sudo apt remove apache2

O en CentOS:

   sudo yum remove httpd

4. Configuración y mantenimiento de servicios

Una de las tareas más comunes en la administración de servidores Linux es la configuración y el mantenimiento de servicios, como servidores web, bases de datos y servicios de red.

  1. Configuración de Apache: Apache es uno de los servidores web más utilizados en Linux. Su archivo de configuración se encuentra en /etc/apache2/apache2.conf (en sistemas Debian/Ubuntu). Para iniciar, detener o reiniciar el servicio, usa:
   sudo systemctl start apache2
   sudo systemctl stop apache2
   sudo systemctl restart apache2

Para habilitar Apache al inicio del sistema:

   sudo systemctl enable apache2
  1. Configuración de Nginx: Nginx es otro servidor web popular que se configura en /etc/nginx/nginx.conf. Para iniciar o detener Nginx, utiliza los siguientes comandos:
   sudo systemctl start nginx
   sudo systemctl stop nginx
   sudo systemctl restart nginx
  1. Bases de datos: MySQL/MariaDB y PostgreSQL son bases de datos comúnmente utilizadas en servidores Linux. Para instalar MySQL en Ubuntu:
   sudo apt install mysql-server

Para iniciar el servicio de MySQL:

   sudo systemctl start mysql
  1. Archivos de configuración: Los archivos de configuración de servicios en Linux suelen estar en el directorio /etc. Es fundamental revisar y comprender estos archivos para garantizar que los servicios estén configurados adecuadamente.

5. Copias de seguridad y recuperación

Las copias de seguridad son cruciales para proteger los datos en caso de fallos del sistema o pérdidas accidentales de información. En Linux, hay varias herramientas que pueden ayudarte a realizar copias de seguridad de manera eficiente.

  1. Uso de rsync: rsync es una herramienta muy popular para realizar copias de seguridad. Para hacer una copia de seguridad de un directorio a otro, usa el siguiente comando:
   rsync -av /ruta/origen /ruta/destino
  1. Automatización de copias de seguridad: Puedes automatizar las copias de seguridad utilizando cron, que permite programar tareas periódicas. Para editar las tareas cron, usa:
   crontab -e

Luego, puedes agregar una tarea para ejecutar un script de copia de seguridad a una hora específica.

6. Seguridad y firewalls

La seguridad es un aspecto fundamental en la administración de servidores Linux. Hay varias prácticas que puedes implementar para asegurar tu servidor.

  1. Configuración de un firewall: Utiliza ufw en Ubuntu o firewalld en CentOS para gestionar las reglas de firewall. Para habilitar el firewall y permitir solo ciertas conexiones: En Ubuntu:
   sudo ufw enable
   sudo ufw allow ssh

En CentOS:

   sudo systemctl start firewalld
   sudo firewall-cmd --zone=public --add-service=ssh --permanent
   sudo firewall-cmd --reload
  1. Autenticación SSH: Se recomienda deshabilitar el acceso de root a través de SSH y usar claves SSH para una autenticación más segura. Para hacer esto, edita el archivo /etc/ssh/sshd_config y cambia las siguientes opciones:
   PermitRootLogin no
   PasswordAuthentication no

Luego reinicia el servicio SSH:

   sudo systemctl restart ssh
  1. Actualizaciones automáticas de seguridad: Es posible configurar actualizaciones automáticas para que el sistema instale los parches de seguridad de manera regular. En Ubuntu, puedes instalar el paquete unattended-upgrades:
   sudo apt install unattended-upgrades

7. Monitoreo y solución de problemas

El monitoreo constante de un servidor Linux es esencial para mantenerlo funcionando de manera eficiente y detectar problemas antes de que se conviertan en fallos críticos.

  1. Comando top y htop: top y htop son herramientas que te permiten ver el uso de los recursos del sistema en tiempo real. htop ofrece una interfaz más amigable.
   top
   htop
  1. Registro de eventos: Los registros del sistema están almacenados en el directorio /var/log. Los archivos como syslog, auth.log y dmesg contienen información valiosa para solucionar problemas.
  2. Herramientas de diagnóstico: Utiliza herramientas como ping, traceroute y netstat para diagnosticar problemas de red.

Conclusión

La administración de servidores Linux es una habilidad técnica que requiere conocimiento en diversas áreas, desde la instalación del sistema operativo hasta la configuración de servicios y la implementación de medidas de seguridad. Con este manual, se ha proporcionado una guía básica para comenzar en la administración de servidores Linux. La práctica continua y el monitoreo constante son esenciales para mantener el servidor funcionando de manera eficiente y segura.