Los servidores son la columna vertebral de las redes informáticas, proporcionando servicios esenciales a otros dispositivos o clientes en la red. En el ámbito de los servidores, Linux se ha consolidado como una opción muy popular y robusta debido a su estabilidad, seguridad y flexibilidad. Estos servidores pueden manejar una amplia variedad de tareas, desde alojar sitios web y gestionar bases de datos hasta operar aplicaciones empresariales y servicios de correo electrónico.
Los sistemas operativos tipo Unix son conocidos por su robustez y amplia utilización en servidores y estaciones de trabajo. A continuación, se presentan algunos ejemplos destacados:
Unix: Un sistema operativo antiguo y robusto, utilizado principalmente en servidores y estaciones de trabajo.
Linux: Conocida por su flexibilidad y diversidad de distribuciones.
BSD (FreeBSD, OpenBSD, NetBSD): Derivados de Unix con diferentes enfoques en seguridad, portabilidad y rendimiento.
Linux es un sistema operativo de tipo Unix-like con una arquitectura y filosofía común basada en la idea de que «todo es un archivo». Multiusuario y multitarea, permite la ejecución simultánea de múltiples tareas por diferentes usuarios.
Distribuciones de Linux:
Rolling Release: Ejemplos como Arch Linux y Manjaro. Estas distribuciones reciben actualizaciones continuas, lo que proporciona las últimas características y mejoras de software de manera constante.
Fixed Release: Ejemplos como Debian, Ubuntu y Fedora. Estas distribuciones lanzan versiones específicas con actualizaciones periódicas no solo de seguridad, sino también funcionales. Están diseñadas para diferentes públicos objetivos, como hackers, servidores, usuarios comunes, gamers, entre otros. Algunas distribuciones son más estables que otras, y cada una está optimizada para cierto tipo de trabajo.
Sistemas de archivos en Linux
Los sistemas de archivos son métodos estructurados para almacenar y organizar datos en dispositivos de almacenamiento, como discos duros y unidades flash. Cada sistema de archivos tiene características distintas que afectan su rendimiento, confiabilidad y capacidad de manejar diferentes tipos de datos.
A continuación, se presentan algunos sistemas de archivos en entornos Linux:
Btrfs: Diseñado para manejar grandes conjuntos de datos con alta redundancia y escalabilidad.
Ext4: Predeterminado en muchas distribuciones, conocido por su rendimiento y confiabilidad.
XFS: Adecuado para sistemas de archivos muy grandes.
NTFS, FAT32: Compatibles con Windows, utilizados comúnmente en unidades portátiles.
El Rol del Administrador de Servidores
Habilidades clave:
Control de accesos: Gestión de permisos y autenticación de usuarios.
Monitoreo del sistema: Uso de herramientas como top, htop, y ps para supervisar procesos y recursos.
Administración de recursos: Gestión eficiente de CPU, memoria, y almacenamiento.
Troubleshooting: Resolución de problemas mediante logs y herramientas de diagnóstico.
Instalación y mantenimiento de software: Uso de manejadores de paquetes como APT y DNF (antes YUM).
Creación de respaldos: Planificación y ejecución de respaldos regulares.
Documentación: Mantener registros detallados de configuraciones y cambios.
Roles específicos:
DevOps Engineer: Enfocado en la integración y entrega continua en el desarrollo de software.
Site Reliability Engineer: Garantiza la operación y confiabilidad de los sistemas.
Security Operations Engineer: Encargado de la seguridad a nivel de red y aplicaciones.
Network Engineer, Database Administrator, Cloud Engineer, etc.
Instalación de Servidores
Métodos de instalación:
Instalación directa: Descargar una imagen ISO y utilizarla para instalar el sistema operativo en el hardware.
Virtualización: Uso de software como VirtualBox o KVM para crear máquinas virtuales. Hypervisor Tipo 1: Ejemplo: VMware ESXi, KVM, instalados directamente en el hardware. Hypervisor Tipo 2: Ejemplo: VirtualBox, está instalado sobre un sistema operativo host.
Gestión de Usuarios y Permisos
Creación de usuarios:
useradd nombre_usuario
Asignación de contraseñas: passwd nombre_usuario
passwd nombre_usuario
Gestión de grupos:
groupadd nombre_grupo
usermod -aG nombre_grupo nombre_usuario
Permisos básicos: chmod para cambiar permisos, chown para cambiar propietario.
chmod 755 archivo
chown usuario:grupo archivo
Administración de memoria y almacenamiento
Visualización de dispositivos de almacenamiento:
lsblk
Gestión de particiones:
fdisk /dev/sdX
parted /dev/sdX
Formateo de particiones, con los diferentes sistemas de archivos:
mkfs.ext4 /dev/sdX1
mkfs.xfs /dev/sdX1
mkfs.btrfs /dev/sdX1
mkfs.ntfs /dev/sdX1
mkfs.fat -F 32 /dev/sdX1
Montaje y desmontaje de sistemas de archivos:
mount /dev/sdX1 /mnt
umount /mnt
Visualización del espacio de almacenamiento:
df -h
du -sh /ruta
Gestión de volúmenes lógicos con LVM: LVM (Logical Volume Manager) es una tecnología de administración de almacenamiento que permite gestionar volúmenes lógicos en Linux de manera flexible y dinámica. Con LVM, puedes crear, modificar y eliminar volúmenes lógicos sin necesidad de apagar el sistema ni mover datos. Este es un tema muy amplio. Más adelante, profundizaremos sobre LVM en un blog dedicado, donde exploraremos cada comando y su aplicación práctica en escenarios de administración de almacenamiento en Linux.
Monitoreo y Mantenimiento del Sistema
Monitoreo de procesos y recursos:
Comando ps: Lista procesos en ejecución.
ps aux
Comando top: Monitorean el uso de recursos en tiempo real.
top
Comando lsof: Lista archivos abiertos y los procesos que los utilizan.
lsof -i :80 (ver procesos que usan el puerto 80)
Buscar ID de un proceso:
pidof nombre_proceso
El comando kill -15 PID se usa para enviar una señal de terminación al proceso especificado por su PID. Se puede reemplazar el -15 por el número -9 que corresponde a la señal SIGKILL, que fuerza la terminación inmediata del proceso sin permitir que el proceso realice ninguna limpieza o cierre ordenado de recursos.
Gestión de demonios y servicios:
Uso de systemd:
Crear y gestionar demonios
systemctl start nombre_servicio
systemctl enable nombre_servicio
Para crear un nuevo servicio personalizado en systemd, debes crear un archivo de unidad en el directorio /etc/systemd/system/. EjemploTe dejamos un ejemplo de un archivo de unidad para el servicio D-Bus (sistema de mensajería que permite que diferentes aplicaciones se comuniquen entre sí). Este archivo configura cómo se debe iniciar, detener y recargar el servicio D-Bus en el sistema, con sus dependencias y configuraciones de entorno.
Seguridad
Asegurar la seguridad en sistemas Linux implica implementar prácticas y herramientas adecuadas para proteger el sistema contra accesos no autorizados y vulnerabilidades. Aquí se presentan algunas medidas básicas y cómo utilizar herramientas específicas para configurar firewalls y gestionar actualizaciones:
Configuración de firewalls:
Uso de ufw (Ubuntu):
ufw allow 22/tcp
ufw enable
Uso de firewalld (CentOS, Fedora, Red Hat, Oracle Linux):
firewall-cmd --permanent --add-service=http
firewall-cmd --reload
Gestión de actualizaciones y parches:
apt update && apt upgrade (Debian/Ubuntu)
dnf update (Red Hat/CentOS)
Configuración de SSH: Asegurar el acceso remoto.
Cambios en el SSH: Editar /etc/ssh/sshd_config, se recomienda realizar los siguientes cambios:
Cambio del puerto SSH
Desactivar el acceso como root
Restringir usuarios específicos
Configurar autenticación de clave pública
Limitar protocolos y cifrados débiles
Configuración de timeout y límites de intentos
Automatización con cron jobs
Configurar y utilizar cron jobs de manera efectiva ayuda a automatizar procesos rutinarios y a mantener la consistencia y eficiencia del sistema operativo Linux. Es importante verificar regularmente los cron jobs existentes y asegurarse de que funcionen según lo esperado para evitar problemas y mantener la integridad del sistema.
Validación del estado del demonio de cron:
systemctl status cron
Creación de cron jobs:
Editar crontab:
crontab -e
Sintaxis de crontab: minuto hora día_mes mes día_semana comando
Ejemplo (Ejecutar backup.sh todos los días a las 2 AM):
0 2 * * * /path/to/backup.sh
Listar cron jobs:
crontab -l
Respaldo y Recuperación
Métodos de creación de respaldos:
Respaldo con tar:
tar -czf /ruta/destino/respaldo.tar.gz /ruta/origen
Respaldo incremental con rsync:
rsync -av --delete /ruta/origen /ruta/destino
Uso de herramientas de respaldo:
duplicity
borg
Estrategias de recuperación:
Restauración de archivos con tar:
tar -xzf respaldo.tar.gz -C /ruta/destino
Restauración de archivos con rsync:
rsync -av /ruta/destino/ /ruta/origen
Planificación de recuperación ante desastres:
Documentar procedimientos de recuperación.
Realizar pruebas regulares de restauración.
Administración de Paquetes
Manejadores de paquetes:
APT (Debian/Ubuntu):
Actualizar lista de paquetes: sudo apt update
Instalar un paquete: sudo apt install nombre_paquete
Eliminar un paquete: sudo apt remove nombre_paquete
YUM (Red Hat/CentOS):
Actualizar lista de paquetes: sudo yum update
Instalar un paquete: sudo yum install nombre_paquete
Eliminar un paquete: sudo yum remove nombre_paquete
DNF (Fedora/CentOS 8+):
Actualizar lista de paquetes: sudo dnf update
Instalar un paquete: sudo dnf install nombre_paquete
Eliminar un paquete: sudo dnf remove nombre_paquete
En conclusión, la administración de servidores Linux contempla una amplia gama de competencias y conocimientos, desde la instalación y configuración inicial hasta el monitoreo, mantenimiento y seguridad continuos.
Conoce nuestros servicios
Orquestación de Aplicaciones y Servicios
Nuestro enfoque en Kubernetes está diseñado para impulsar la escalabilidad de su infraestructura de TI.
Esenciales para la Administración de Servidores Linux
Los servidores son la columna vertebral de las redes informáticas, proporcionando servicios esenciales a otros dispositivos o clientes en la red. En el ámbito de los servidores, Linux se ha consolidado como una opción muy popular y robusta debido a su estabilidad, seguridad y flexibilidad. Estos servidores pueden manejar una amplia variedad de tareas, desde alojar sitios web y gestionar bases de datos hasta operar aplicaciones empresariales y servicios de correo electrónico.
Contenido:
Sistemas Operativos
Los sistemas operativos tipo Unix son conocidos por su robustez y amplia utilización en servidores y estaciones de trabajo. A continuación, se presentan algunos ejemplos destacados:
Linux es un sistema operativo de tipo Unix-like con una arquitectura y filosofía común basada en la idea de que «todo es un archivo». Multiusuario y multitarea, permite la ejecución simultánea de múltiples tareas por diferentes usuarios.
Distribuciones de Linux:
Sistemas de archivos en Linux
Los sistemas de archivos son métodos estructurados para almacenar y organizar datos en dispositivos de almacenamiento, como discos duros y unidades flash. Cada sistema de archivos tiene características distintas que afectan su rendimiento, confiabilidad y capacidad de manejar diferentes tipos de datos.
A continuación, se presentan algunos sistemas de archivos en entornos Linux:
El Rol del Administrador de Servidores
Habilidades clave:
Roles específicos:
Instalación de Servidores
Métodos de instalación:
Hypervisor Tipo 1: Ejemplo: VMware ESXi, KVM, instalados directamente en el hardware.
Hypervisor Tipo 2: Ejemplo: VirtualBox, está instalado sobre un sistema operativo host.
Gestión de Usuarios y Permisos
Administración de memoria y almacenamiento
Gestión de particiones:
Formateo de particiones, con los diferentes sistemas de archivos:
Montaje y desmontaje de sistemas de archivos:
Visualización del espacio de almacenamiento:
Gestión de volúmenes lógicos con LVM:
LVM (Logical Volume Manager) es una tecnología de administración de almacenamiento que permite gestionar volúmenes lógicos en Linux de manera flexible y dinámica. Con LVM, puedes crear, modificar y eliminar volúmenes lógicos sin necesidad de apagar el sistema ni mover datos.
Este es un tema muy amplio. Más adelante, profundizaremos sobre LVM en un blog dedicado, donde exploraremos cada comando y su aplicación práctica en escenarios de administración de almacenamiento en Linux.
Monitoreo y Mantenimiento del Sistema
Comando ps: Lista procesos en ejecución.
Comando top: Monitorean el uso de recursos en tiempo real.
Comando lsof: Lista archivos abiertos y los procesos que los utilizan.
Buscar ID de un proceso:
Se puede reemplazar el -15 por el número -9 que corresponde a la señal SIGKILL, que fuerza la terminación inmediata del proceso sin permitir que el proceso realice ninguna limpieza o cierre ordenado de recursos.
Uso de systemd:
Para crear un nuevo servicio personalizado en systemd, debes crear un archivo de unidad en el directorio /etc/systemd/system/.
EjemploTe dejamos un ejemplo de un archivo de unidad para el servicio D-Bus (sistema de mensajería que permite que diferentes aplicaciones se comuniquen entre sí). Este archivo configura cómo se debe iniciar, detener y recargar el servicio D-Bus en el sistema, con sus dependencias y configuraciones de entorno.
Seguridad
Asegurar la seguridad en sistemas Linux implica implementar prácticas y herramientas adecuadas para proteger el sistema contra accesos no autorizados y vulnerabilidades. Aquí se presentan algunas medidas básicas y cómo utilizar herramientas específicas para configurar firewalls y gestionar actualizaciones:
Uso de ufw (Ubuntu):
Uso de firewalld (CentOS, Fedora, Red Hat, Oracle Linux):
Configuración de SSH: Asegurar el acceso remoto.
Automatización con cron jobs
Configurar y utilizar cron jobs de manera efectiva ayuda a automatizar procesos rutinarios y a mantener la consistencia y eficiencia del sistema operativo Linux. Es importante verificar regularmente los cron jobs existentes y asegurarse de que funcionen según lo esperado para evitar problemas y mantener la integridad del sistema.
Creación de cron jobs:
Sintaxis de crontab: minuto hora día_mes mes día_semana comando
Listar cron jobs:
Respaldo y Recuperación
Respaldo incremental con rsync:
Uso de herramientas de respaldo:
Estrategias de recuperación:
Restauración de archivos con rsync:
Planificación de recuperación ante desastres:
Administración de Paquetes
APT (Debian/Ubuntu):
YUM (Red Hat/CentOS):
DNF (Fedora/CentOS 8+):
En conclusión, la administración de servidores Linux contempla una amplia gama de competencias y conocimientos, desde la instalación y configuración inicial hasta el monitoreo, mantenimiento y seguridad continuos.
Conoce nuestros servicios
Orquestación de Aplicaciones y Servicios
Nuestro enfoque en Kubernetes está diseñado para impulsar la escalabilidad de su infraestructura de TI.
Categorías
Tags
Contactos
De las Alondras, E10-115
+593 979 733 071
olivia@softwareevolutivo.net
8:30am-6:00pm