🎁 Extra Practice
1. APT vs. APTITUDE 🛠️
APT (Advanced Package Tool)
-
Descripción General: APT es una herramienta de gestión de paquetes para distribuciones basadas en Debian como Ubuntu. Facilita la instalación, actualización y eliminación de paquetes de software con comandos sencillos. 🎯
- Comandos Básicos:
- Actualizar la Lista de Paquetes:
sudo apt update
Este comando actualiza la lista de paquetes disponibles desde los repositorios. No instala ni actualiza paquetes, solo refresca la base de datos. 🆙
- Actualizar Paquetes Instalados:
sudo apt upgrade
Actualiza todos los paquetes instalados a la versión más reciente según la lista actualizada. 🛠️
- Instalar un Paquete:
sudo apt install nombre_paquete
Descarga e instala el paquete especificado, resolviendo automáticamente las dependencias necesarias. 🚀
- Eliminar un Paquete:
sudo apt remove nombre_paquete
Elimina el paquete especificado pero conserva los archivos de configuración. Usa
sudo apt purge nombre_paquete
para una eliminación completa. 🗑️
- Actualizar la Lista de Paquetes:
- Beneficios:
- Simplicidad: Fácil de usar para tareas comunes de gestión de paquetes. 👌
- Automatización: Maneja dependencias automáticamente, simplificando las actualizaciones. 🤖
APTITUDE
-
Descripción General: APTITUDE es una herramienta avanzada para la gestión de paquetes que ofrece una interfaz de línea de comandos y una interfaz gráfica en texto. Maneja de manera más eficiente las dependencias complejas y las resoluciones de conflictos. 📊
- Comandos Básicos:
- Actualizar la Lista de Paquetes:
sudo aptitude update
Similar a
apt update
, pero con una interfaz interactiva que muestra el progreso. 📈 - Actualizar Paquetes Instalados:
sudo aptitude upgrade
- Instalar un Paquete:
sudo aptitude install nombre_paquete
- Eliminar un Paquete:
sudo aptitude remove nombre_paquete
- Actualizar la Lista de Paquetes:
- Ventajas:
- Interfaz Interactiva: Ofrece una vista más clara de las dependencias y posibles conflictos. 🔍
- Manejo de Dependencias: Resuelve conflictos de forma más detallada, ideal para entornos complejos. 🔧
- Diagrama de Comparación:
graph TB
A[APT] --> B{Interfaz de Línea de Comandos}
A --> C[Automatización de Dependencias]
D[APTITUDE] --> E{Interfaz de Línea de Comandos y Texto}
D --> F[Resolución Avanzada de Conflictos]
B --> G[Actualización de Paquetes]
C --> H[Instalación y Eliminación]
E --> I[Actualización y Gestión]
F --> J[Resolución Detallada]
2. Qué es AppArmor 🛡️
-
Descripción General: AppArmor es un módulo de seguridad del núcleo Linux que usa perfiles para controlar el acceso de las aplicaciones a archivos y recursos del sistema. Protege contra el acceso no autorizado restringiendo lo que cada aplicación puede hacer. 🔒
- Perfiles:
- Definición: Cada perfil define permisos específicos para una aplicación, controlando su acceso a archivos y directorios. 📂
- Modos de Operación:
- Enforce (Aplicar): Las reglas del perfil se aplican estrictamente y bloquean cualquier acceso no autorizado. 🚫
- Complain (Informar): Las violaciones se registran, pero no se bloquean. Ideal para pruebas y ajustes. 📝
- Cómo Funciona:
- Identificación de Rutas: AppArmor utiliza rutas absolutas para definir permisos, facilitando la configuración de perfiles. 🛠️
- Seguridad: Restringe permisos para minimizar el impacto si una aplicación es comprometida. Crucial para servicios expuestos a internet. 🌐
- Beneficios:
- Flexibilidad: Configuración precisa de permisos, equilibrando seguridad y funcionalidad. ⚖️
- Integración: Integrado en muchas distribuciones Linux y habilitado por defecto para algunas aplicaciones. 🔧
- Diagrama de Perfiles:
graph TB
A[AppArmor] --> B{Perfiles}
B --> C[Permisos Específicos]
B --> D[Acceso a Archivos]
B --> E[Operaciones Permitidas]
C --> F[Aplicación 1]
C --> G[Aplicación 2]
D --> H[Directorio 1]
D --> I[Directorio 2]
E --> J[Lectura]
E --> K[Escritura]
E --> L[Ejecución]
3. Verificación de UFW (Uncomplicated Firewall) 🔥
-
Descripción General: UFW es una herramienta de firewall sencilla para gestionar las reglas del firewall en sistemas Linux. Su objetivo es simplificar la configuración del firewall para usuarios no expertos en redes. 🌐
- Comandos Básicos:
- Instalación:
sudo apt install ufw
Instala UFW en el sistema. Algunas distribuciones lo tienen preinstalado. 📦
- Verificar Estado:
sudo ufw status
Muestra el estado actual del firewall y las reglas activas. 🔍
- Agregar Regla para Abrir Puerto 8080:
sudo ufw allow 8080
Permite el tráfico entrante en el puerto 8080, útil para servicios web. 🌐
- Eliminar Regla para Puerto 8080:
sudo ufw delete allow 8080
Elimina la regla para bloquear de nuevo el acceso en el puerto 8080. 🛡️
- Instalación:
- Beneficios:
- Simplicidad: Fácil de usar, ideal para usuarios menos experimentados. 🧩
- Facilidad de Configuración: Aplica reglas rápidamente para gestionar el acceso a servicios y proteger el sistema. 🔧
- Diagrama de Configuración:
graph TB
A[UFW] --> B[Estado del Firewall]
B --> C[Permitir Tráfico]
B --> D[Bloquear Tráfico]
C --> E[Puerto 8080]
D --> F[Eliminar Regla]
E --> G[Regla Activa]
F --> H[Regla Eliminada]
4. Uso de systemctl
⚙️
-
Descripción General:
systemctl
es una herramienta de línea de comandos para gestionar servicios y unidades del sistema en distribuciones Linux que usansystemd
. Permite iniciar, detener, habilitar y verificar servicios. 🔄 - Comandos Básicos:
- Iniciar un Servicio:
sudo systemctl start nombre_servicio
Inicia el servicio especificado. 🚀
- Detener un Servicio:
sudo systemctl stop nombre_servicio
Detiene el servicio especificado. 🛑
- Reiniciar un Servicio:
sudo systemctl restart nombre_servicio
Reinicia el servicio especificado, aplicando cambios de configuración. 🔄
- Habilitar un Servicio para que Inicie al Arrancar:
sudo systemctl enable nombre_servicio
Configura el servicio para que se inicie automáticamente al arrancar el sistema. 🔧
- Deshabilitar un Servicio:
sudo systemctl disable nombre_servicio
Evita que el servicio se inicie automáticamente al arrancar el sistema. 🚫
- Verificar el Estado de un Servicio:
sudo systemctl status nombre_servicio
Muestra el estado actual del servicio, incluyendo si está activo, inactivo o ha fallado. 🔍
- Iniciar un Servicio:
- Beneficios:
- Control Centralizado: Permite gestionar todos los servicios y unidades desde una única herramienta. 🌟
- Eficiencia: Proporciona una forma eficiente de controlar el estado del sistema y de los servicios. ⚙️
5. Verificación de SSH (Secure Shell) 🔐
-
Descripción General: SSH es un protocolo de red que proporciona una conexión segura y cifrada entre dos sistemas a través de una red insegura. Se utiliza para administrar sistemas y transferir datos de forma segura. 🌐
- Comandos Básicos:
- Verificar Cliente SSH:
ssh -V
Muestra la versión del cliente SSH instalado en el sistema. 🆙
- Verificar Servidor SSH (sshd):
sshd -v
Muestra la versión del servidor SSH. Alternativamente:
sudo systemctl status ssh
Muestra el estado del servicio SSH. 🔍
- Instalar SSH:
sudo apt-get update sudo apt-get install openssh-server
Instala el servidor SSH para aceptar conexiones entrantes. 📦
- Verificar Estado del Servicio SSH:
sudo systemctl status ssh
Verifica si el servicio SSH está en ejecución. 🔍
- Iniciar Servicio SSH:
sudo systemctl start ssh
Inicia el servicio SSH si no está en ejecución. 🚀
- Habilitar SSH al Inicio:
sudo systemctl enable ssh
Configura el servicio SSH para que se inicie automáticamente al arrancar el sistema. 🔧
- Cambiar el Puerto de SSH a 4242:
- Editar el archivo de configuración de SSH:
sudo nano /etc/ssh/sshd_config
Cambiar la línea:
Port 4242
- Reiniciar el servicio SSH para aplicar los cambios:
sudo systemctl restart ssh
- Editar el archivo de configuración de SSH:
- Verificar Cliente SSH:
- Beneficios:
- Seguridad: Proporciona una conexión segura y cifrada para administración remota y transferencia de datos. 🔒
- Flexibilidad: Permite conexiones a servidores desde ubicaciones remotas. 🌍
- Diagrama de Flujo SSH:
graph TD
A[Cliente SSH] --> B[Servidor SSH]
B --> C[Verificar Estado]
C --> D[Iniciar/Detener Servicio]
C --> E[Habilitar/Deshabilitar Inicio]
D --> F[Conexión Segura]
E --> G[Configurar Puerto]
G --> H[Reiniciar Servicio]
6. Verificación del Sistema Operativo 🖥️
- Mostrar Información del Sistema:
hostnamectl
Muestra información detallada sobre el sistema operativo, como el nombre del host, la versión del sistema operativo y la arquitectura del hardware. 🔍
- Uso Adicional:
Para obtener detalles adicionales sobre la versión del kernel y otros aspectos del sistema:
uname -a
- Diagrama de Información del Sistema:
graph TD
A[Comando: hostnamectl] --> B[Nombre del Host]
A --> C[Versión del SO]
A --> D[Arquitectura del Hardware]
E[Comando: uname -a] --> F[Detalles del Kernel]
E --> G[Información Adicional]
7. Verificación de Usuario y Grupo 👤👥
- Verificar Usuario en Grupos:
- Comando:
groups nombre_usuario
Muestra los grupos a los que pertenece el usuario especificado. 🗂️
- Verificar Membresía en el Grupo “sudo”:
getent group sudo
Muestra todos los usuarios que son miembros del grupo
sudo
, el cual tiene privilegios de administrador. 🔐
- Comando:
- Crear Usuario y Grupo:
- Crear Usuario:
sudo adduser nuevo_usuario
Crea un nuevo usuario con un directorio personal y parámetros básicos. 🆕
- Crear Grupo “evaluating”:
sudo groupadd evaluating
Crea un grupo llamado
evaluating
. 🏷️
- Crear Usuario:
- Añadir Usuario a un Grupo:
sudo usermod -aG evaluating nombre_usuario
Añade el usuario al grupo
evaluating
sin eliminarlo de otros grupos. 🏷️ - Diagrama de Gestión de Usuarios y Grupos:
graph TD
A[Usuario] --> B[Grupos]
B --> C[Grupo 'sudo']
B --> D[Grupo 'evaluating']
C --> E[Privilegios de Administrador]
D --> F[Acceso Adicional]
8. Verificación de Particiones 💾
- Mostrar Particiones Actuales:
lsblk
Muestra la lista de dispositivos de bloque (particiones y discos) en el sistema, con detalles sobre tamaño, tipo y punto de montaje. 📊
- Uso Adicional:
Para obtener detalles adicionales sobre las particiones, incluyendo el sistema de archivos:
df -h
- Diagrama de Particiones:
graph TB
A[Dispositivos de Bloque] --> B[Particiones]
B --> C[Tamaño]
B --> D[Tipo]
B --> E[Punto de Montaje]
C --> F[Tamaño Total]
D --> G[Sistema de Archivos]
E --> H[Directorio de Montaje]
9. Configuración de WordPress 🌐
- Acceso con la IP:
- URL:
http://IP:80
Accede a la interfaz web de WordPress (o cualquier otro servicio corriendo en el puerto 80) desde el navegador del mismo sistema. 🌐
- URL:
-
Configuración Básica: Asegúrate de que el servidor web (Apache o Nginx) esté funcionando y que WordPress esté instalado en el directorio web. 🛠️
- Diagrama de Configuración de WordPress:
graph TD
A[Servidor Web] --> B[Puerto 80]
B --> C[Acceso al servidor]
C --> D[Interfaz de WordPress]
D --> E[Configuración Inicial]
10. Servidor de Elección (Opcional) 🌐
- Acceso a Puertos Alternativos:
- URL para Otros Servicios:
- Puerto 7080:
http://IP:7080
Utilizado para servicios específicos o aplicaciones web en ese puerto. 🛠️
- Puerto 8088:
http://IP:8088
Otro puerto común para aplicaciones web, a menudo usado para desarrollo o pruebas. 🔧
- Puerto 7080:
- URL para Otros Servicios:
- Diagrama de Puertos Alternativos:
graph TD
A[Puertos Alternativos] --> B[Puerto 7080]
A --> C[Puerto 8088]
B --> D[Servicios Específicos]
C --> E[Aplicaciones de Desarrollo]