Articulos Info Tic

Google Hacking: Comandos y Operadores Booleanos

Estos comandos permiten refinar búsquedas y descubrir información sensible o útil dentro de un proceso de hacking ético y de investigación OSINT. A continuación, encontrarás cada uno con su descripción, un ejemplo de uso y la explicación de qué hace específicamente.

Comandos de Google Hacking

  • define: Muestra definiciones de diversas páginas web para el término buscado. Ejemplo: define:osint Devuelve definiciones de “OSINT”, ayudando a comprender su significado.
  • filetype: (o ext:) Restringe la búsqueda a documentos con la extensión especificada. Ejemplo: filetype:xls "password" Muestra hojas de cálculo en formato XLS que contengan la palabra “password”, pudiendo revelar credenciales.
  • site: Filtra los resultados a un dominio concreto. Ejemplo: site:pastebin.com "email list" Busca dentro de Pastebin contenido que incluya la frase “email list”, posible indicio de fuga de datos.
  • link: Muestra qué páginas enlazan a la URL indicada. Ejemplo: link:https://example.com Permite averiguar quién enlaza a example.com, útil para investigación OSINT y reputacional.
  • cache: Muestra la versión que Google tiene guardada en caché de la página indicada. Ejemplo: cache:https://example.com Permite ver la última copia de example.com, incluso si el contenido original ha cambiado o sido eliminado.
  • info: Ofrece información que Google tiene sobre la página o dominio especificado. Ejemplo: info:https://example.com Muestra datos relacionados con example.com, por ejemplo la versión en caché o páginas similares.
  • related: Devuelve páginas que Google considera similares al sitio indicado. Ejemplo: related:https://example.com Muestra sitios “relacionados” con example.com, útil para descubrir competencia o dominios similares.
  • allinanchor: Restringe resultados a páginas que reciben enlaces cuyo texto contenga todos los términos indicados. Ejemplo: allinanchor:"database leaked" Muestra páginas enlazadas con la frase “database leaked” en su anchor text, revelando brechas de datos.
  • inanchor: Similar a allinanchor, pero se puede combinar con otros términos. Ejemplo: inanchor:breach "credit cards" Encuentra páginas cuyo anchor text incluya “breach” y que mencionen “credit cards” en el contenido.
  • allintext: Muestra solo páginas que contengan todos los términos en el texto. Ejemplo: allintext:"internal use only confidential" Filtra resultados a aquellos que incluyan la frase exacta “internal use only confidential” en el cuerpo del texto.
  • intext: Busca páginas que incluyan un término en su texto. Ejemplo: intext:exposed "api key" Retorna páginas donde aparezca “exposed” en el texto y que incluyan la frase “api key”, útil para detectar posibles credenciales filtradas.
  • allinurl: Muestra solo resultados que tengan todos los términos en la URL. Ejemplo: allinurl:"admin portal" Localiza URLs que incluyan “admin” y “portal”, útil para encontrar paneles de administración expuestos.
  • inurl: Similar a allinurl, pero se puede combinar con otras palabras de búsqueda. Ejemplo: inurl:wp-admin "vulnerabilities" Filtra páginas donde la URL contenga “wp-admin” y mencione “vulnerabilities” en el texto, para detectar fallos en WordPress.
  • allintitle: Limita los resultados a páginas cuyo título contenga todos los términos indicados. Ejemplo: allintitle:"database dump" Muestra resultados con “database dump” en el título, posible indicio de bases de datos expuestas.
  • intitle: Similar a allintitle, pero se puede combinar con otros términos. Ejemplo: intitle:"sql injection" "bypass authentication" Retorna resultados que en el título incluyan “sql injection” y mencionen “bypass authentication” en el contenido.

Operadores Booleanos Google Hacking

  • " " Busca la frase exacta, sin variaciones. Ejemplo: "employee private data" Devuelve resultados que incluyan exactamente “employee private data”, revelando posible exposición de datos.
  • - Excluye una palabra de la búsqueda. Ejemplo: "database dump" -site:github.com Muestra resultados de “database dump” excluyendo GitHub, centrando la búsqueda en otros dominios.
  • OR (ó |) Funciona como un “o lógico”. Devuelve resultados que contengan uno u otro término. Ejemplo: "mysql dump" OR "database leak" Amplía la búsqueda para incluir fugas de bases de datos bajo cualquiera de esos términos.
  • + Fuerza la inclusión de palabras que Google suele ignorar o caracteres especiales. Ejemplo: +la "exposed password" Impide que Google omita “la” y fuerza la frase “exposed password”.
  • * El asterisco se usa como comodín para uno o varios términos desconocidos. Ejemplo: "confidential * report" Encuentra frases con “confidential”, luego cualquier palabra, y termina con “report”.

Shodan: Comandos principales

Comandos relevantes para Shodan. A continuación se presentan algunos de los filtros más relevantes para el uso de Shodan:

  • after: Solo muestra resultados después de la fecha dada (dd/mm/yyyy). Ejemplo: after:01/01/2023
  • asn: Número de sistema autónomo. Ejemplo: asn:AS15169
  • before: Solo muestra resultados antes de la fecha dada (dd/mm/yyyy). Ejemplo: before:31/12/2022
  • category: Categorías disponibles: ics, malware. Ejemplo: category:ics
  • city: Nombre de la ciudad. Ejemplo: city:"Madrid"
  • country: Código de país de 2 letras. Ejemplo: country:ES
  • geo: Coordenadas geográficas (latitud, longitud, rango, etc.). Ejemplo: geo:40.4168,-3.7038,50
  • hash: Hash de la propiedad data (entero).
  • has_ipv6: True/False. Filtra por dispositivos con IPv6.
  • has_screenshot: True/False. Filtra por dispositivos con captura de pantalla.
  • server: Dispositivos o servidores con un encabezado server específico. Ejemplo: server:Apache
  • hostname: Nombre completo del host. Ejemplo: hostname:example.com
  • ip: Alias para el filtro net. Ejemplo: ip:8.8.8.8
  • isp: Proveedor de servicios de Internet. Ejemplo: isp:Telefonica
  • net: Rango de red en notación CIDR. Ejemplo: net:199.4.1.0/24
  • org: Organización asignada al bloque de red. Ejemplo: org:Google
  • os: Sistema operativo. Ejemplo: os:Windows
  • port: Número de puerto del servicio. Ejemplo: port:22
  • postal: Código postal (solo EE.UU.).
  • product: Nombre del software/producto que provee el banner. Ejemplo: product:nginx
  • region: Nombre de la región/estado. Ejemplo: region:Madrid
  • state: Alias para region.
  • version: Versión del producto. Ejemplo: version:1.2.3
  • vuln: ID de CVE para una vulnerabilidad. Ejemplo: vuln:CVE-2021-12345

Script: Habilitar Hyper-V en Windows

Este script por lotes permite instalar y habilitar Hyper-V en sistemas Windows compatibles. Debe ejecutarse con privilegios de administrador.

Script por lotes:
pushd "%~dp0"

    dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

    for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

    del hyper-v.txt

    Dism /online /enable-feature /featurename:Microsoft-Hyper-V -All /LimitAccess /ALL

    pause

Notas

  • Requisitos: El script debe ejecutarse con permisos de administrador, ya que dism requiere privilegios elevados.
  • Sistema operativo: Hyper-V solo está disponible en ediciones específicas de Windows (Pro, Enterprise, Education) y requiere hardware con soporte para virtualización (como Intel VT-x o AMD-V).
  • Errores posibles: Si no hay archivos .mum relacionados con Hyper-V o si el sistema no soporta Hyper-V, el script podría fallar.

Documentación del Proceso: Descarga, Verificación e Instalación de Ubuntu 18.04.6 Server para Curso de DevOps

Este documento web resume el proceso completo de descarga, verificación de integridad y preparación para instalación de la imagen ISO de Ubuntu 18.04.6 LTS (Bionic Beaver) en versión server, destinada a un curso de DevOps. Se detalla el contexto, los pasos seguidos, los errores encontrados (con explicaciones) y las soluciones aplicadas. El objetivo es facilitar el análisis y estudio para futuros usuarios que encuentren problemas similares en entornos Windows con Git Bash y VirtualBox.

Contexto General

El usuario estaba descargando la imagen ISO de Ubuntu 18.04.6 server desde https://releases.ubuntu.com/18.04/ para usarla en un curso de DevOps ("DevOps: Inicia tu carrera desde cero"). La instalación se planeaba manualmente en VirtualBox. El proceso involucró:

  • Explicación de archivos auxiliares (.zsync, .list, .manifest).
  • Descarga del ISO y archivos de verificación (SHA256SUMS).
  • Verificación de integridad usando comandos en CMD y Git Bash.
  • Troubleshooting de errores en rutas y archivos corruptos.
  • Preparación para instalación en VirtualBox.

La fecha actual es 24 de septiembre de 2025, según el contexto proporcionado.

Paso 1: Consulta Inicial sobre Archivos Auxiliares

El usuario preguntó sobre las diferencias entre ubuntu-18.04.6-live-server-amd64.iso.zsync, ubuntu-18.04.6-live-server-amd64.list y ubuntu-18.04.6-live-server-amd64.manifest.

Explicación

  • .zsync: Para descargas incrementales (actualizaciones delta).
  • .list: Lista de archivos dentro del ISO (índice de estructura).
  • .manifest: Lista de paquetes Debian en el filesystem live.

No se encontraron errores aquí; fue una explicación educativa.

Paso 2: Descarga del ISO y Archivos de Verificación

El usuario descargó ubuntu-18.04.6-live-server-amd64.iso (969 MB) y archivos auxiliares en E:\ISOS. Proporcionó un listado de directorio:

    E:\ISOS>dir
     CentOS-Stream-9-latest-x86_64-dvd1.iso
     ubuntu-18.04.6-live-server-amd64.iso
     ubuntu-18.04.6-live-server-amd64.iso.zsync
     ubuntu-24.04.3-desktop-amd64.iso
                

Se recomendó descargar SHA256SUMS para verificación, pero el usuario tenía un archivo llamado sha256sum (sin mayúsculas).

Paso 3: Verificación de Integridad - Errores y Soluciones

Esta fue la parte más problemática. El usuario intentó verificar el ISO usando sha256sum en CMD y Git Bash, pero enfrentó errores repetidos.

Error 1: Comando sha256sum en CMD

El usuario ejecutó en CMD:

    sha256sum -c SHA256SUMS 2>&1 | grep ubuntu-18.04.6-live-server-amd64.iso
                

Error: No salida. Causa: sha256sum no es nativo en CMD; el archivo SHA256SUMS no estaba presente o estaba mal nombrado.

Solución: Recomendado usar PowerShell (Get-FileHash) o CMD (certutil) para verificación nativa en Windows. También, descargar SHA256SUMS correctamente.

Error 2: Rutas en Git Bash

El usuario ejecutó:

    cat /e/ISOS/sha256sum
                

Pero en algunos intentos usó E:ISOS (con dos puntos), resultando en:

    bash: E:ISOS: command not found
                

Error: Sintaxis de ruta incorrecta. Git Bash usa rutas Unix-style como /e/ISOS, no E:\ISOS o E:ISOS.

Solución: Corregir la ruta a /e/ISOS. Ejemplo: cat /e/ISOS/sha256sum.

Error 3: Archivo sha256sum Corrupto

Al verificar el tamaño:

    ls -l /e/ISOS/sha256sum
    -rw-r--r-- 1 hp 197121 32 sep. 24 13:42 /e/ISOS/sha256sum
                

Error: Tamaño de solo 32 bytes (debería ser ~202 bytes). El archivo estaba corrupto o incompleto, lo que causaba que comandos como sha256sum -c sha256sum no produjeran salida.

Solución: Eliminar el archivo corrupto y redescargar el oficial con curl -O https://releases.ubuntu.com/18.04/SHA256SUMS. Luego, verificar contenido:

    cat /e/ISOS/SHA256SUMS
    f730be589aa1ba923ebe6eca573fa66d09ba14c4c104da2c329df652d42aff11 *ubuntu-18.04.6-desktop-amd64.iso
    6c647b1ab4318e8c560d5748f908e108be654bad1e165f7cf4f3c1fc43995934 *ubuntu-18.04.6-live-server-amd64.iso
                

Error 4: Verificación Fallida o Sin Salida

Comandos como sha256sum -c SHA256SUMS 2>&1 | grep ubuntu-18.04.6-live-server-amd64.iso no daban salida.

Error: Archivo SHA256SUMS ausente, corrupto o mal nombrado; o el ISO no coincidía con el hash.

Solución: Usar el archivo redescargado y calcular hash manualmente con sha256sum ubuntu-18.04.6-live-server-amd64.iso para comparar con el hash oficial (6c647b1ab4318e8c560d5748f908e108be654bad1e165f7cf4f3c1fc43995934). Si no coincide, redescargar el ISO.

Paso 4: Instalación en VirtualBox

Una vez verificado el ISO, los pasos recomendados para la instalación son:

  1. Crear VM en VirtualBox: Nombre "Ubuntu 18.04 DevOps", 4 GB RAM, 50 GB disco VDI.
  2. Cargar ISO en Storage > Controller IDE.
  3. Configurar red (NAT o Bridged).
  4. Iniciar VM y seguir instalador Subiquity: Habilitar SSH.
  5. Post-instalación: Actualizar sistema e instalar herramientas DevOps (Docker, etc.).

No se reportaron errores aquí, pero se enfatizó habilitar virtualización en BIOS si falla el arranque.

Conclusión y Lecciones Aprendidas

El proceso resaltó la importancia de verificar integridad de descargas para evitar corrupciones. Errores comunes en Windows/Git Bash incluyen rutas incorrectas y archivos corruptos. Soluciones: Siempre redescargar archivos oficiales, usar sintaxis correcta (/e/ISOS) y herramientas nativas como PowerShell. Este documento sirve para estudiar troubleshooting en entornos mixtos (Windows/Linux).

Para más detalles, consulta la documentación oficial de Ubuntu: Guía de USB o VirtualBox: Manual de VirtualBox.

Diseño de Sitios Web: Ciclo de Vida y Mejores Prácticas

Este documento educativo explora el ciclo de vida del diseño de sitios web, desde la idea inicial presentada por un cliente hasta su finalización y mantenimiento a largo plazo. Se detalla cada fase, sus requerimientos clave para crear un sitio web efectivo, y estrategias para posicionamiento (SEO) y sostenibilidad. El objetivo es proporcionar una guía completa para estudiantes, diseñadores y desarrolladores.

Introducción al Diseño de Sitios Web

El diseño de sitios web es un proceso multidisciplinario que combina creatividad, tecnología y estrategia de negocio. El ciclo de vida de un sitio web se basa en modelos como el waterfall o agile, adaptados a las necesidades del cliente. Un buen sitio web debe ser funcional, accesible, responsive (adaptable a dispositivos móviles), seguro y optimizado para motores de búsqueda (SEO). Para que funcione a largo plazo, se requiere planificación continua, actualizaciones y monitoreo.

Requerimientos generales para un buen sitio web:

  • Objetivos claros (e.g., ventas, información, interacción).
  • Experiencia de usuario (UX) intuitiva y diseño visual (UI) atractivo.
  • Optimización para velocidad y SEO.
  • Seguridad (HTTPS, protección contra ataques).
  • Escalabilidad para crecimiento futuro.

Fase 1: Planificación e Identificación de Necesidades

Descripción:

Esta fase comienza con la idea o necesidad del cliente. Se recopilan requisitos para entender el propósito del sitio. Incluye reuniones iniciales, análisis de mercado y definición de objetivos.

Requerimientos clave:

  • Entender el público objetivo (demografía, comportamientos).
  • Definir funcionalidades (e.g., e-commerce, blog, formulario de contacto).
  • Presupuesto y timeline.
  • Análisis de competidores para posicionamiento inicial.

Consejos para un buen sitio:

Usa herramientas como wireframes básicos o encuestas al cliente. Para posicionamiento, integra palabras clave desde el inicio (investigación con herramientas como Google Keyword Planner). Para longevidad, planifica integración con CMS (e.g., WordPress) para actualizaciones fáciles.

Fase 2: Diseño

Descripción:

Aquí se crea la estructura visual y funcional. Se desarrollan wireframes, mockups y prototipos. El foco está en UX/UI, asegurando que el sitio sea intuitivo y estético.

Requerimientos clave:

  • Responsive design (usando frameworks como Bootstrap).
  • Accesibilidad (WCAG standards: alt text en imágenes, navegación por teclado).
  • Paleta de colores, tipografía y elementos visuales alineados con la marca del cliente.
  • Prototipos interactivos (herramientas como Figma o Adobe XD).

Consejos para un buen sitio:

Incorpora SEO on-page desde el diseño (e.g., estructura de encabezados H1-H6, meta tags). Para longevidad, diseña modularmente para futuras expansiones, evitando elementos que se vuelvan obsoletos rápidamente (e.g., evitar Flash).

Fase 3: Desarrollo

Descripción:

Se construye el sitio usando código. Incluye front-end (HTML, CSS, JavaScript) y back-end (e.g., PHP, Node.js, bases de datos).

Requerimientos clave:

  • Tecnologías apropiadas (e.g., React para apps dinámicas, MySQL para datos).
  • Integración de APIs (e.g., pagos, redes sociales).
  • Seguridad (validación de inputs, SSL).
  • Optimización de rendimiento (minificación de archivos, caching).

Consejos para un buen sitio:

Implementa SEO técnico (e.g., sitemap.xml, robots.txt). Para longevidad, usa código limpio y documentado, con version control (Git), y elige tecnologías estables con soporte comunitario.

<!-- Ejemplo básico de HTML con SEO -->
    <!DOCTYPE html>
    <html lang="es">
    <head>
        <meta charset="UTF-8">
        <title>Título Optimizado para SEO</title>
        <meta name="description" content="Descripción clave para motores de búsqueda">
    </head>
    <body>
        <h1>Encabezado Principal</h1>
    </body>
    </html>
    

Fase 4: Pruebas

Descripción:

Se prueba el sitio para detectar errores. Incluye pruebas funcionales, de usabilidad, compatibilidad (navegadores/dispositivos) y de rendimiento.

Requerimientos clave:

  • Pruebas automatizadas (e.g., Selenium para UI).
  • Pruebas de seguridad (vulnerabilidades como SQL injection).
  • Feedback de usuarios beta.
  • Optimización para velocidad (Google PageSpeed Insights).

Consejos para un buen sitio:

Verifica SEO con herramientas como Google Search Console. Para longevidad, prueba escalabilidad (e.g., carga con muchos usuarios) y asegúrate de que el sitio sea compatible con futuras actualizaciones de navegadores.

Fase 5: Despliegue y Lanzamiento

Descripción:

Se publica el sitio en un servidor. Incluye migración de datos, configuración de dominio y lanzamiento oficial.

Requerimientos clave:

  • Hosting confiable (e.g., AWS, Heroku, o shared hosting).
  • Certificado SSL para HTTPS.
  • Configuración de backups automáticos.
  • Monitoreo inicial (e.g., Google Analytics).

Consejos para un buen sitio:

Implementa SEO off-page (backlinks, redes sociales). Para longevidad, elige un hosting escalable y configura CDN para velocidad global.

Fase 6: Mantenimiento y Posicionamiento a Largo Plazo

Descripción:

El ciclo no termina con el lanzamiento; se monitorea y actualiza el sitio continuamente para mantener su relevancia y funcionalidad.

Requerimientos clave:

  • Actualizaciones regulares (contenido, seguridad, software).
  • Monitoreo de métricas (tráfico, bounce rate).
  • Estrategias de SEO continuo (contenido fresco, optimización móvil).
  • Soporte técnico y corrección de bugs.

Consejos para un buen sitio:

Para posicionamiento, enfócate en E-E-A-T (Experiencia, Expertise, Authoritativeness, Trustworthiness) de Google. Para longevidad, implementa un plan de mantenimiento anual, migra a nuevas tecnologías si es necesario, y realiza auditorías periódicas. Ejemplo: Usa herramientas como Ahrefs para SEO y UptimeRobot para monitoreo de disponibilidad.

Guía Educativa para Trabajar en Ubuntu Server 18.04.6 LTS

Esta guía está diseñada para estudiantes y principiantes que han instalado Ubuntu Server 18.04.6 LTS (Bionic Beaver) con kernel GNU/Linux 4.15.0-213. Cubre una introducción a la distribución, comandos esenciales de Linux explicados con ejemplos, y consejos para trabajar en un entorno de servidor. Ubuntu 18.04 es una versión LTS (Long Term Support) con soporte estándar hasta abril de 2023, pero con ESM (Extended Security Maintenance) disponible hasta 2028 para actualizaciones de seguridad. El enfoque es en la línea de comandos (CLI), ya que Ubuntu Server no incluye interfaz gráfica por defecto.

Como estudiante, esta guía te ayudará a familiarizarte con la distro y a realizar tareas comunes de administración de servidores.

Introducción a Ubuntu Server 18.04.6 LTS

Ubuntu Server es una distribución de Linux basada en Debian, optimizada para servidores. La versión 18.04.6 es estable y se usa para hosting web, bases de datos, contenedores (Docker), y más. Su kernel 4.15.0-213 incluye parches de seguridad y estabilidad.

Características clave:

  • Gestor de paquetes: APT (Advanced Packaging Tool) para instalar software.
  • Seguridad: Firewall UFW (Uncomplicated Firewall) y AppArmor.
  • Red: Soporte para Netplan para configuración de redes.
  • Actualizaciones: Usa apt update y apt upgrade para mantener el sistema al día.
  • Consejos iniciales: Después de la instalación, configura SSH para acceso remoto, actualiza el sistema y crea usuarios no root.

Para explorar el sistema: Ejecuta lsb_release -a para detalles de la versión, o uname -a para info del kernel.

# Ejemplo: Verificar versión
    lsb_release -a
    # Salida esperada:
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 18.04.6 LTS
    Release:        18.04
    Codename:       bionic
    

Comandos Básicos de Linux en Ubuntu Server

Los comandos se ejecutan en la terminal. Usa man comando para manuales (e.g., man ls). Todos los ejemplos asumen que estás logueado como usuario con privilegios (usa sudo para comandos root).

1. Navegación y Gestión de Archivos

Estos comandos ayudan a moverte por el sistema de archivos.

  • pwd: Muestra el directorio actual.
    pwd  # Ejemplo: /home/usuario
  • ls: Lista archivos y directorios. Opciones: -l (detallado), -a (ocultos).
    ls -la  # Muestra todo con detalles
  • cd: Cambia de directorio. cd ~ va al home, cd .. sube un nivel.
    cd /var/log  # Cambia a logs del sistema
  • mkdir: Crea directorio.
    mkdir mi_carpeta  # Crea una carpeta nueva
  • rm: Elimina archivos o directorios (-r para recursivo, -f forzado).
    rm -rf mi_carpeta  # Elimina carpeta y contenido (cuidado!)
  • cp: Copia archivos. -r para directorios.
    cp archivo.txt copia.txt  # Copia un archivo
  • mv: Mueve o renombra archivos.
    mv viejo.txt nuevo.txt  # Renombra

2. Gestión de Usuarios y Permisos

Esencial para seguridad en servidores.

  • whoami: Muestra el usuario actual.
    whoami  # Ejemplo: ubuntu
  • sudo: Ejecuta comandos como root.
    sudo apt update  # Actualiza repositorios con privilegios
  • useradd: Crea usuario. passwd para contraseña.
    sudo useradd nuevo_usuario
        sudo passwd nuevo_usuario  # Asigna contraseña
  • chmod: Cambia permisos (e.g., 755 para ejecutable).
    chmod 644 archivo.txt  # Lectura para todos, escritura para owner
  • chown: Cambia propietario.
    sudo chown usuario:grupo archivo.txt

3. Gestión de Paquetes (APT)

Ubuntu usa APT para instalar software.

  • apt update: Actualiza lista de paquetes.
    sudo apt update
  • apt upgrade: Actualiza paquetes instalados.
    sudo apt upgrade -y  # -y para confirmar automáticamente
  • apt install: Instala paquete.
    sudo apt install vim  # Instala editor Vim
  • apt remove: Elimina paquete.
    sudo apt remove vim
  • apt search: Busca paquetes.
    apt search nginx  # Busca servidor web Nginx

4. Gestión de Red

Para servidores, configura redes con Netplan (en /etc/netplan/).

  • ip addr show: Muestra IPs y interfaces.
    ip addr show  # Ver IPs asignadas
  • ping: Prueba conectividad.
    ping google.com  # Envía paquetes a Google
  • ufw: Firewall simple. ufw allow 22 para SSH.
    sudo ufw enable
        sudo ufw allow ssh  # Permite SSH
  • netplan apply: Aplica cambios de red.
    sudo netplan apply  # Después de editar /etc/netplan/*.yaml

5. Monitoreo y Procesos

  • top: Monitorea procesos en tiempo real (presiona q para salir).
    top
  • ps: Lista procesos. aux para detallado.
    ps aux | grep nginx  # Busca procesos de Nginx
  • kill: Termina proceso por PID.
    kill 1234  # Termina PID 1234
  • df -h: Muestra uso de disco.
    df -h  # Espacio en disco human-readable
  • free -h: Muestra memoria RAM.
    free -h  # Memoria disponible

6. Edición de Archivos y Búsqueda

  • nano o vim: Editores de texto.
    nano archivo.txt  # Edita con Nano (Ctrl+O guardar, Ctrl+X salir)
  • grep: Busca texto en archivos.
    grep "error" /var/log/syslog  # Busca "error" en logs
  • find: Busca archivos.
    find /home -name "*.txt"  # Busca archivos .txt en /home

Consejos Avanzados para Ubuntu Server

Para un servidor productivo:

  • Instala SSH: sudo apt install openssh-server.
  • Configura backups: Usa rsync o herramientas como Duplicity.
  • Monitoreo: Instala htop (mejor que top) o Nagios para alertas.
  • Actualizaciones automáticas: Edita /etc/apt/apt.conf.d/50unattended-upgrades.
  • Seguridad: Usa fail2ban para bloquear ataques.
  • Aprende scripting: Crea scripts Bash para automatizar tareas.

Recursos: Tutoriales oficiales de Ubuntu, Man pages.

🐧 Guía Completa de Linux Server

Ubuntu 18.04.6 LTS - Comandos y Administración

📊 Información del Sistema

Comandos básicos de información

uname -a # Muestra información completa del sistema Linux ubuntu-server 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Ejemplo práctico

hostnamectl # Información detallada del sistema Static hostname: ubuntu-server Icon name: computer-vm Chassis: vm Machine ID: abc123def456... Boot ID: xyz789abc123... Virtualization: vmware Operating System: Ubuntu 18.04.6 LTS Kernel: Linux 4.15.0-213-generic Architecture: x86-64
Comando Descripción Ejemplo de uso
lsb_release -a Información de la distribución Ver versión de Ubuntu
uptime Tiempo de actividad del sistema Ver cuánto tiempo lleva encendido
whoami Usuario actual Verificar con qué usuario estás
date Fecha y hora actuales Ver la hora del sistema
df -h Espacio en disco (legible) Ver espacio disponible
free -h Memoria RAM disponible Verificar uso de memoria
lscpu Información del procesador Ver características del CPU

📄 Gestión de Archivos y Directorios

Crear archivos y directorios

touch archivo.txt # Crear archivo vacío mkdir directorio # Crear directorio mkdir -p ruta/completa/nueva # Crear estructura de directorios completa echo "Hola Mundo" > saludo.txt # Crear archivo con contenido

Copiar, mover y eliminar

Operaciones básicas con archivos

cp archivo.txt copia.txt # Copiar archivo cp -r directorio/ copia_directorio/ # Copiar directorio recursivamente mv archivo.txt nuevo_nombre.txt # Renombrar/mover archivo mv archivo.txt /ruta/destino/ # Mover archivo a otro directorio rm archivo.txt # Eliminar archivo rm -rf directorio/ # Eliminar directorio y contenido (¡CUIDADO!)

⚠️ Comandos Peligrosos

rm -rf elimina archivos y directorios sin confirmación. ¡Úsalo con extremo cuidado!

rm -rf / ¡NUNCA ejecutes esto! Eliminaría todo tu sistema.

Ver contenido de archivos

Comando Descripción Cuándo usarlo
cat archivo.txt Muestra todo el contenido Archivos pequeños
less archivo.txt Ver archivo página por página Archivos grandes
head -10 archivo.txt Primeras 10 líneas Ver inicio de archivo
tail -10 archivo.txt Últimas 10 líneas Ver final de archivo
tail -f archivo.log Seguir archivo en tiempo real Monitorear logs
grep "texto" archivo.txt Buscar texto en archivo Encontrar contenido específico

🔐 Sistema de Permisos

🔍 Entendiendo los permisos

Linux usa un sistema de permisos basado en: Usuario (u), Grupo (g) y Otros (o)

ls -la # Ver permisos detallados -rw-r--r-- 1 ubuntu ubuntu 1234 Sep 24 10:30 archivo.txt drwxr-xr-x 2 ubuntu ubuntu 4096 Sep 24 10:30 directorio # Explicación: # - : archivo normal (d = directorio, l = enlace) # rw- : permisos del propietario (lectura, escritura, no ejecución) # r-- : permisos del grupo (solo lectura) # r-- : permisos de otros (solo lectura)

Cambiar permisos

Métodos para cambiar permisos

# Método simbólico chmod u+x archivo.txt # Dar ejecución al usuario chmod g+w archivo.txt # Dar escritura al grupo chmod o-r archivo.txt # Quitar lectura a otros chmod a+r archivo.txt # Dar lectura a todos # Método octal (más común) chmod 755 script.sh # rwxr-xr-x chmod 644 archivo.txt # rw-r--r-- chmod 600 privado.txt # rw------- chmod 777 publico.txt # rwxrwxrwx (no recomendado)
Valor Octal Binario Permisos Uso típico
7 111 rwx Directorios, ejecutables
6 110 rw- Archivos de datos
5 101 r-x Directorios de solo lectura
4 100 r-- Archivos de solo lectura
0 000 --- Sin permisos

Cambiar propietario

chown usuario:grupo archivo.txt # Cambiar propietario y grupo chown ubuntu archivo.txt # Solo cambiar propietario chgrp www-data archivo.txt # Solo cambiar grupo chown -R ubuntu:ubuntu directorio/ # Cambiar recursivamente todo el directorio

⚙️ Gestión de Procesos

Ver procesos activos

ps aux # Ver todos los procesos del sistema USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 225316 9088 ? Ss 09:15 0:01 /sbin/init ubuntu 1234 0.5 0.2 12345 2345 pts/0 S 10:30 0:00 bash ps -ef # Formato extendido de procesos pgrep -l apache # Buscar procesos por nombre

Monitoreo en tiempo real

Herramientas de monitoreo

top # Monitor interactivo de procesos (presiona 'q' para salir) htop # Versión mejorada de top (si está instalado) watch -n 1 "ps aux | head -20" # Ejecutar comando cada segundo

Controlar procesos

Comando Señal Descripción
kill PID TERM (15) Terminar proceso normalmente
kill -9 PID KILL (9) Forzar terminación
kill -HUP PID HUP (1) Reiniciar/recargar configuración
killall nombre_proceso TERM Terminar todos los procesos con ese nombre
pkill -f patron TERM Terminar procesos que coincidan con patrón

⚠️ Uso responsable de kill

Siempre intenta usar kill PID (TERM) antes que kill -9 PID (KILL)

KILL no permite al proceso limpiar recursos, puede causar corrupción de datos

Procesos en segundo plano

comando & # Ejecutar en segundo plano nohup comando & # Ejecutar sin conexión a terminal jobs # Ver trabajos en segundo plano fg %1 # Traer trabajo 1 al primer plano bg %1 # Enviar trabajo 1 al segundo plano Ctrl+Z # Suspender proceso actual Ctrl+C # Interrumpir proceso actual

🌐 Configuración y Monitoreo de Red

Información de red

ip addr show # Ver interfaces de red y direcciones IP 1: lo: mtu 65536 inet 127.0.0.1/8 scope host lo 2: ens33: mtu 1500 inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33 ip route show # Ver tabla de rutas default via 192.168.1.1 dev ens33 192.168.1.0/24 dev ens33 proto kernel scope link hostname -I # IP del sistema de forma simple 192.168.1.100

Comandos de conectividad

ping google.com # Probar conectividad a internet ping -c 4 192.168.1.1 # Hacer 4 pings al router traceroute google.com # Ver ruta hacia destino curl -I http://google.com # Probar conectividad HTTP

Puertos y conexiones

Comando Descripción Ejemplo de uso
netstat -tuln Puertos en escucha Ver servicios activos
ss -tuln Versión moderna de netstat Información de sockets

🐧 Guía Completa de Linux Server

Ubuntu 18.04.6 LTS - Comandos y Administración

📊 Información del Sistema

Comandos básicos de información

uname -a # Muestra información completa del sistema Linux ubuntu-server 4.15.0-213-generic #224-Ubuntu SMP Mon Jun 19 13:30:12 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux

Ejemplo práctico

hostnamectl # Información detallada del sistema Static hostname: ubuntu-server Icon name: computer-vm Chassis: vm Machine ID: abc123def456... Boot ID: xyz789abc123... Virtualization: vmware Operating System: Ubuntu 18.04.6 LTS Kernel: Linux 4.15.0-213-generic Architecture: x86-64
Comando Descripción Ejemplo de uso
lsb_release -a Información de la distribución Ver versión de Ubuntu
uptime Tiempo de actividad del sistema Ver cuánto tiempo lleva encendido
whoami Usuario actual Verificar con qué usuario estás
date Fecha y hora actuales Ver la hora del sistema
df -h Espacio en disco (legible) Ver espacio disponible
free -h Memoria RAM disponible Verificar uso de memoria
lscpu Información del procesador Ver características del CPU

📄 Gestión de Archivos y Directorios

Crear archivos y directorios

touch archivo.txt # Crear archivo vacío mkdir directorio # Crear directorio mkdir -p ruta/completa/nueva # Crear estructura de directorios completa echo "Hola Mundo" > saludo.txt # Crear archivo con contenido

Copiar, mover y eliminar

Operaciones básicas con archivos

cp archivo.txt copia.txt # Copiar archivo cp -r directorio/ copia_directorio/ # Copiar directorio recursivamente mv archivo.txt nuevo_nombre.txt # Renombrar/mover archivo mv archivo.txt /ruta/destino/ # Mover archivo a otro directorio rm archivo.txt # Eliminar archivo rm -rf directorio/ # Eliminar directorio y contenido (¡CUIDADO!)

⚠️ Comandos Peligrosos

rm -rf elimina archivos y directorios sin confirmación. ¡Úsalo con extremo cuidado!

rm -rf / ¡NUNCA ejecutes esto! Eliminaría todo tu sistema.

Ver contenido de archivos

Comando Descripción Cuándo usarlo
cat archivo.txt Muestra todo el contenido Archivos pequeños
less archivo.txt Ver archivo página por página Archivos grandes
head -10 archivo.txt Primeras 10 líneas Ver inicio de archivo
tail -10 archivo.txt Últimas 10 líneas Ver final de archivo
tail -f archivo.log Seguir archivo en tiempo real Monitorear logs
grep "texto" archivo.txt Buscar texto en archivo Encontrar contenido específico

🔐 Sistema de Permisos

🔍 Entendiendo los permisos

Linux usa un sistema de permisos basado en: Usuario (u), Grupo (g) y Otros (o)

ls -la # Ver permisos detallados -rw-r--r-- 1 ubuntu ubuntu 1234 Sep 24 10:30 archivo.txt drwxr-xr-x 2 ubuntu ubuntu 4096 Sep 24 10:30 directorio # Explicación: # - : archivo normal (d = directorio, l = enlace) # rw- : permisos del propietario (lectura, escritura, no ejecución) # r-- : permisos del grupo (solo lectura) # r-- : permisos de otros (solo lectura)

Cambiar permisos

Métodos para cambiar permisos

# Método simbólico chmod u+x archivo.txt # Dar ejecución al usuario chmod g+w archivo.txt # Dar escritura al grupo chmod o-r archivo.txt # Quitar lectura a otros chmod a+r archivo.txt # Dar lectura a todos # Método octal (más común) chmod 755 script.sh # rwxr-xr-x chmod 644 archivo.txt # rw-r--r-- chmod 600 privado.txt # rw------- chmod 777 publico.txt # rwxrwxrwx (no recomendado)
Valor Octal Binario Permisos Uso típico
7 111 rwx Directorios, ejecutables
6 110 rw- Archivos de datos
5 101 r-x Directorios de solo lectura
4 100 r-- Archivos de solo lectura
0 000 --- Sin permisos

Cambiar propietario

chown usuario:grupo archivo.txt # Cambiar propietario y grupo chown ubuntu archivo.txt # Solo cambiar propietario chgrp www-data archivo.txt # Solo cambiar grupo chown -R ubuntu:ubuntu directorio/ # Cambiar recursivamente todo el directorio

⚙️ Gestión de Procesos

Ver procesos activos

ps aux # Ver todos los procesos del sistema USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND root 1 0.0 0.1 225316 9088 ? Ss 09:15 0:01 /sbin/init ubuntu 1234 0.5 0.2 12345 2345 pts/0 S 10:30 0:00 bash ps -ef # Formato extendido de procesos pgrep -l apache # Buscar procesos por nombre

Monitoreo en tiempo real

Herramientas de monitoreo

top # Monitor interactivo de procesos (presiona 'q' para salir) htop # Versión mejorada de top (si está instalado) watch -n 1 "ps aux | head -20" # Ejecutar comando cada segundo

Controlar procesos

Comando Señal Descripción
kill PID TERM (15) Terminar proceso normalmente
kill -9 PID KILL (9) Forzar terminación
kill -HUP PID HUP (1) Reiniciar/recargar configuración
killall nombre_proceso TERM Terminar todos los procesos con ese nombre
pkill -f patron TERM Terminar procesos que coincidan con patrón

⚠️ Uso responsable de kill

Siempre intenta usar kill PID (TERM) antes que kill -9 PID (KILL)

KILL no permite al proceso limpiar recursos, puede causar corrupción de datos

Procesos en segundo plano

comando & # Ejecutar en segundo plano nohup comando & # Ejecutar sin conexión a terminal jobs # Ver trabajos en segundo plano fg %1 # Traer trabajo 1 al primer plano bg %1 # Enviar trabajo 1 al segundo plano Ctrl+Z # Suspender proceso actual Ctrl+C # Interrumpir proceso actual

🌐 Configuración y Monitoreo de Red

Información de red

ip addr show # Ver interfaces de red y direcciones IP 1: lo: mtu 65536 inet 127.0.0.1/8 scope host lo 2: ens33: mtu 1500 inet 192.168.1.100/24 brd 192.168.1.255 scope global ens33 ip route show # Ver tabla de rutas default via 192.168.1.1 dev ens33 192.168.1.0/24 dev ens33 proto kernel scope link hostname -I # IP del sistema de forma simple 192.168.1.100

Comandos de conectividad

ping google.com # Probar conectividad a internet ping -c 4 192.168.1.1 # Hacer 4 pings al router traceroute google.com # Ver ruta hacia destino curl -I http://google.com # Probar conectividad HTTP

Puertos y conexiones

Comando Descripción Ejemplo de uso
netstat -tuln Puertos en escucha Ver servicios activos
ss -tuln Versión moderna de netstat Información de sockets
lsof -i :80 Ver qué proceso usa puerto 80 Diagnosticar conflictos
nmap localhost Escanear puertos locales Auditoría de seguridad
wget archivo.zip Descargar archivos Obtener recursos web
scp archivo.txt user@servidor:/ruta/ Copiar archivos remotamente Transferir archivos seguros

🔧 Configuración de red en Ubuntu 18.04

Ubuntu 18.04 usa Netplan para configuración de red

Archivos de configuración en: /etc/netplan/

sudo netplan apply # Aplicar cambios de configuración de red sudo systemctl restart networking # Reiniciar servicio de red (método tradicional)

🔧 Gestión de Servicios (systemd)

📋 Sobre systemd

Ubuntu 18.04 usa systemd como sistema de init y gestor de servicios

Los servicios se llaman "units" y tienen extensión .service

Comandos básicos de servicios

sudo systemctl status apache2 # Ver estado de un servicio ● apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2023-09-24 10:30:45 UTC; 2h 15min ago Docs: https://httpd.apache.org/docs/2.4/ Main PID: 1234 (apache2) Tasks: 55 (limit: 4915) CGroup: /system.slice/apache2.service sudo systemctl start apache2 # Iniciar servicio sudo systemctl stop apache2 # Detener servicio sudo systemctl restart apache2 # Reiniciar servicio sudo systemctl reload apache2 # Recargar configuración sin reiniciar

Habilitación automática

Configurar inicio automático

sudo systemctl enable apache2 # Habilitar inicio automático al arranque sudo systemctl disable apache2 # Deshabilitar inicio automático sudo systemctl is-enabled apache2 # Verificar si está habilitado enabled sudo systemctl is-active apache2 # Verificar si está activo active
Comando Descripción Ejemplo
systemctl list-units --type=service Listar todos los servicios Ver estado de servicios
systemctl list-units --failed Ver servicios fallidos Diagnosticar problemas
journalctl -u apache2 Ver logs del servicio Solucionar problemas
journalctl -f Ver logs en tiempo real Monitorear sistema
systemctl daemon-reload Recargar configuración systemd Después de cambios

Servicios comunes en Ubuntu Server

# Servicios web sudo systemctl status apache2 # Servidor web Apache sudo systemctl status nginx # Servidor web Nginx # Bases de datos sudo systemctl status mysql # MySQL/MariaDB sudo systemctl status postgresql # PostgreSQL # SSH sudo systemctl status ssh # Servicio SSH # Firewall sudo systemctl status ufw # Uncomplicated Firewall

👥 Gestión de Usuarios y Grupos

Información de usuarios

id # Información del usuario actual uid=1000(ubuntu) gid=1000(ubuntu) groups=1000(ubuntu),4(adm),24(cdrom),27(sudo) who # Usuarios conectados ubuntu pts/0 2023-09-24 10:30 (192.168.1.50) last # Historial de conexiones ubuntu pts/0 192.168.1.50 Wed Sep 24 10:30 still logged in cat /etc/passwd | grep ubuntu # Ver información del usuario ubuntu:x:1000:1000:Ubuntu:/home/ubuntu:/bin/bash

Crear y gestionar usuarios

Administración de usuarios

sudo adduser nuevo_usuario # Crear nuevo usuario (interactivo) sudo useradd -m -s /bin/bash nuevo_usuario # Crear usuario con directorio home sudo passwd nuevo_usuario # Cambiar contraseña de usuario sudo deluser --remove-home usuario # Eliminar usuario y su directorio home sudo usermod -aG sudo nuevo_usuario # Agregar usuario al grupo sudo (permisos admin)

Gestión de grupos

Comando Descripción Ejemplo
groups usuario Ver grupos del usuario Verificar permisos
sudo groupadd grupo_nuevo Crear nuevo grupo Organizar usuarios
sudo groupdel grupo Eliminar grupo Limpiar sistema
sudo gpasswd -a usuario grupo Agregar usuario a grupo Dar permisos específicos
sudo gpasswd -d usuario grupo Quitar usuario de grupo Remover permisos

Cambio de usuario y sudo

su - otro_usuario # Cambiar a otro usuario sudo comando # Ejecutar comando como root sudo -i # Abrir shell interactivo como root sudo -u usuario comando # Ejecutar comando como otro usuario sudo visudo # Editar archivo sudoers (configuración sudo)

⚠️ Seguridad con sudo

Solo da permisos sudo a usuarios de confianza

Usa visudo para editar /etc/sudoers, nunca lo edites directamente

Revisa regularmente quién tiene permisos de administrador

🖥️ Administración del Sistema

Gestión de paquetes (APT)

sudo apt update # Actualizar lista de paquetes disponibles sudo apt upgrade # Actualizar paquetes instalados sudo apt install paquete # Instalar nuevo paquete sudo apt remove paquete # Desinstalar paquete sudo apt autoremove # Limpiar dependencias no usadas apt search nombre # Buscar paquetes apt show paquete # Ver información de paquete

Mantenimiento del sistema

sudo apt full-upgrade # Actualización completa del sistema sudo apt dist-upgrade # Actualizar a nueva versión de distribución sudo apt autoclean # Limpiar cache de paquetes dpkg -l | grep paquete # Ver si un paquete está instalado sudo dpkg --configure -a # Reparar paquetes rotos

Monitoreo del sistema

Comando Información Uso
df -h Espacio en disco Ver almacenamiento disponible
du -sh directorio Tamaño de directorio Encontrar qué ocupa espacio
free -h Memoria RAM Ver uso de memoria
iostat Estadísticas E/S Rendimiento de discos
vmstat 1 Estadísticas sistema Monitor general cada segundo
dmesg | tail Mensajes del kernel Diagnosticar hardware

Archivos de configuración importantes

📁 Ubicaciones clave en Ubuntu Server

# Configuración de red /etc/netplan/ # Configuración Netplan /etc/hosts # Resolución de nombres local /etc/resolv.conf # Servidores DNS # Usuarios y grupos /etc/passwd # Información de usuarios /etc/group # Información de grupos /etc/shadow # Contraseñas cifradas /etc/sudoers # Configuración sudo # Servicios y arranque /etc/systemd/system/ # Servicios personalizados /etc/init.d/ # Scripts de inicio (legacy) /etc/crontab # Tareas programadas # Logs del sistema /var/log/syslog # Log general del sistema /var/log/auth.log # Log de autenticación /var/log/kern.log # Log del kernel /var/log/apache2/ # Logs de Apache (si instalado)

Tareas programadas (Cron)

Configurar tareas automáticas

crontab -e # Editar crontab del usuario actual sudo crontab -e # Editar crontab de root crontab -l # Ver tareas programadas # Formato: minuto hora día mes día_semana comando # Ejemplos: 0 2 * * * /usr/bin/backup.sh # Diario a las 2:00 AM */15 * * * * /usr/bin/check_status.sh # Cada 15 minutos 0 0 * * 0 /usr/bin/weekly_update.sh # Domingos a medianoche

Control del sistema

⚠️ Comandos de control del sistema

Estos comandos afectan todo el sistema. Úsalos con precaución.

sudo reboot # Reiniciar el sistema sudo shutdown -h now # Apagar inmediatamente sudo shutdown -h +10 # Apagar en 10 minutos sudo shutdown -r +5 "Reinicio de mantenimiento" # Reiniciar en 5 min con mensaje sudo systemctl rescue # Modo de rescate (single user) sudo systemctl emergency # Modo de emergencia

🎯 Consejos para administración

  • Siempre haz respaldos antes de cambios importantes
  • Documenta los cambios que realizas
  • Usa screen o tmux para sesiones persistentes
  • Monitorea regularmente logs y recursos del sistema
  • Mantén el sistema actualizado con apt update && apt upgrade

Guía educativa de Linux Ubuntu Server 18.04.6 LTS

Este documento es una introducción práctica al uso de Linux en servidores. Incluye comandos básicos, explicaciones y ejemplos para que un estudiante pueda familiarizarse con Ubuntu Server.

1. Conociendo el sistema

Para obtener información de tu sistema:

uname -a

Muestra información del kernel y la arquitectura.

lsb_release -a

Muestra la versión de la distribución de Ubuntu.

2. Comandos de navegación

  • pwd – Muestra la ruta del directorio actual.
  • ls – Lista archivos y directorios.
    ls -l    # Detallado
        ls -a    # Incluye archivos ocultos
  • cd [ruta] – Cambia de directorio.
    cd /home/usuario

3. Manejo de archivos y directorios

  • mkdir nombre – Crea un directorio.
  • touch archivo.txt – Crea un archivo vacío.
  • cp origen destino – Copia archivos.
    cp archivo.txt /home/usuario/
  • mv origen destino – Mueve o renombra archivos.
  • rm archivo.txt – Elimina un archivo.
  • rm -r carpeta/ – Elimina una carpeta y su contenido.

4. Permisos

Cada archivo tiene permisos de lectura (r), escritura (w) y ejecución (x).

ls -l

Ejemplo de salida:

-rw-r--r-- 1 usuario usuario 0 Sep 24 12:00 archivo.txt
  • chmod – Cambia permisos.
    chmod 755 script.sh
  • chown – Cambia propietario.
    sudo chown usuario:usuario archivo.txt

5. Gestión de procesos

  • ps aux – Lista procesos en ejecución.
  • top – Monitoriza procesos en tiempo real.
  • kill PID – Termina un proceso.

6. Administración de usuarios

  • whoami – Muestra el usuario actual.
  • adduser nuevo – Crea un usuario.
  • passwd usuario – Cambia la contraseña.
  • deluser usuario – Elimina un usuario.

7. Red y conectividad

  • ifconfig o ip a – Muestra interfaces de red.
  • ping google.com – Prueba la conexión a internet.
  • ssh usuario@ip – Conexión remota por SSH.

8. Administración de paquetes (APT)

  • sudo apt update – Actualiza la lista de paquetes.
  • sudo apt upgrade – Actualiza el sistema.
  • sudo apt install paquete – Instala un programa.
    sudo apt install nginx
  • sudo apt remove paquete – Elimina un programa.

9. Visualización de logs

  • tail -f /var/log/syslog – Ver logs en tiempo real.
  • cat archivo.log – Mostrar contenido completo.
  • less archivo.log – Navegar por el log.

10. Configuración de servicios básicos

SSH

El servicio SSH permite la administración remota del servidor.

sudo apt install openssh-server
    sudo systemctl enable ssh
    sudo systemctl start ssh
    

Luego puedes conectarte desde otro equipo:

ssh usuario@IP_DEL_SERVIDOR

Servidor Web (Apache o Nginx)

Para instalar Apache:

sudo apt install apache2
    sudo systemctl enable apache2
    sudo systemctl start apache2

Para instalar Nginx:

sudo apt install nginx
    sudo systemctl enable nginx
    sudo systemctl start nginx

Base de datos (MySQL/MariaDB)

Instalar MySQL:

sudo apt install mysql-server
    sudo mysql_secure_installation

Instalar MariaDB:

sudo apt install mariadb-server
    sudo mysql_secure_installation

Verificar estado de servicios

systemctl status ssh
    systemctl status apache2
    systemctl status mysql

11. Firewall y seguridad básica

UFW (Uncomplicated Firewall)

Ubuntu incluye ufw para gestionar reglas de firewall fácilmente.

sudo apt install ufw
    sudo ufw enable
    sudo ufw allow ssh
    sudo ufw allow 80/tcp   # HTTP
    sudo ufw allow 443/tcp  # HTTPS
    sudo ufw status

Fail2Ban

Fail2Ban protege contra intentos de acceso forzados bloqueando direcciones IP sospechosas.

sudo apt install fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban

El archivo de configuración principal está en /etc/fail2ban/jail.conf. Puedes crear una copia personalizada en /etc/fail2ban/jail.local.