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:
- 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.
- 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.
- 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).
- 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).
- 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.
- 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
- 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
- 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
ychgrp
. 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.
- 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 conusermod
. 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.
- 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
- 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
- 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.
- 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
- 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
- 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
- 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.
- 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
- 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.
- Configuración de un firewall: Utiliza
ufw
en Ubuntu ofirewalld
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
- 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
- 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.
- Comando top y htop:
top
yhtop
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
- Registro de eventos: Los registros del sistema están almacenados en el directorio
/var/log
. Los archivos comosyslog
,auth.log
ydmesg
contienen información valiosa para solucionar problemas. - Herramientas de diagnóstico: Utiliza herramientas como
ping
,traceroute
ynetstat
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.