Comandos GnuPG, Nmap, Iptables y Squid en Linux: Referencia Práctica

Informática y Telecomunicaciones10,29 KB

Gestión del Anillo de Claves GnuPG

Conjunto de comandos esenciales para la administración de claves criptográficas en sistemas Linux.

  • Crear claves: gpg --gen-key
  • Listar públicas: gpg -k o gpg --list-keys
  • Listar privadas: gpg -K o gpg --list-secret-keys
  • Formato largo: gpg --list-keys --keyid-format=long
  • Borrar pública: gpg --delete-key [identificador]
  • Borrar privada: gpg --delete-secret-key [identificador]
  • Revocar: gpg --gen-revoke -o revocacion.asc [nombre]

Exportación e Importación de Archivos Locales

  • Exportar pública (ASCII): gpg --export -a "Nombre" > public.key
  • Exportar privada (ASCII): gpg --export-secret-key -a "Nombre" > private.key
  • Importar pública: gpg --import [fichero_de_clave]
  • Importar privada: gpg --allow-secret-key-import --import private.key

Servidores de Claves (RedIRIS)

  • Subir clave pública: gpg --send-key --keyserver pgp.rediris.es [ID_Clave]
  • Buscar clave pública: gpg --search-key --keyserver pgp.rediris.es [ID_Clave]
  • Descargar e importar: gpg --recv-key --keyserver pgp.rediris.es [ID_Clave]
  • Publicar revocación: gpg --keyserver pgp.rediris.es --send-key [ID_Clave]

Cifrado y Firmas de Archivos

  • Cifrar archivo: gpg -a -r [ID_Destinatario] --encrypt [fichero]
  • Cifrado simétrico básico: gpg -c [fichero]
  • Descifrar archivo: gpg --decrypt [archivo.txt.asc] o gpg -d [fichero.gpg]
  • Descifrar a un archivo específico: gpg -o [salida.txt] -d [archivo_cifrado.gpg]
  • Firmar (texto ASCII legible): gpg --clearsign -o [pruebaFirma] [archivo.txt]
  • Firmar (Binario): gpg --output [doc.sig] --sign [documento]
  • Verificar firma: gpg --verify [pruebaFirma]
  • Verificar y extraer: gpg --output [doc_original] --decrypt [doc.sig]
  • Aplicar revocación: gpg --import revocacion.asc

Operaciones Básicas del Sistema de Ficheros

  • Crear directorios: mkdir [nombre]
  • Cambiar de ruta: cd [nueva_ruta]
  • Borrar fichero: rm [fichero]
  • Definir ruta de salida: gpg -o [fichero]

Auditoría de Seguridad (Práctica 2)

Rkhunter y Chrootkit

  • Instalar y actualizar Rkhunter: sudo apt install rkhunter && sudo rkhunter --update && sudo rkhunter --check
  • Instalar y actualizar Chrootkit: sudo apt install chrootkit && sudo apt upgrade chrootkit
  • Análisis avanzado con Chrootkit: chrootkit -x
  • Modo silencioso: chrootkit -q

Escaneo de Redes con Nmap (Práctica 3)

  • Instalación: sudo apt install nmap
  • Escanear puertos básicos: nmap [localhost/IP/www.google.es]
  • Escanear puertos abiertos y servicios: nmap -sV [localhost]
  • Mostrar equipos activos en la red: nmap -sn [localhost]
  • Comprobar puerto específico: nmap -p [puerto] [localhost]
  • Escanear solo puertos TCP: nmap -sT [localhost]
  • Escanear solo puertos UDP: nmap -sU [localhost]

Gestión de Políticas de Contraseñas (PAM)

  • Instalar libpam-pwquality: sudo apt install libpam-pwquality
  • Archivo de configuración: /etc/security/pwquality.conf
  • Longitud mínima: minlen = [numero]
  • Caracteres distintos: difok = [0/1+]
  • Dígitos mínimos: dcredit = [-1/1]
  • Mayúsculas mínimas: ucredit = [-1/1]
  • Minúsculas mínimas: lcredit = [-1/1]
  • Caracteres especiales: ocredit = [-1/1]
  • Cantidad mínima de clases: minclass = [1-4]
  • Máximo de caracteres repetidos seguidos: maxrepeat = [0/1+]
  • Máximo de secuencias monótonas: maxsequence = [0/1+]
  • Máximo consecutivos de la misma clase: maxclassrepeat = [0/1+]
  • Comprobación de diccionario: dictcheck = [0/1]
  • Comprobación de coincidencia con usuario: usercheck = [0/1]
  • Modo de aplicación: enforcing = [0/1]
  • Intentos permitidos (en /etc/pam.d/common-password): retry = [numero]
  • Aplicar reglas al usuario root: enforce_for_root
  • Cambiar contraseña: passwd
  • Ver registros de intentos: /var/log/auth.log

Filtrado de Paquetes con Iptables

Sintaxis base: iptables [-t tabla] [-operación cadena] [-regla [parámetros]] [-j acción]

Tablas y Cadenas Principales

  • Filter: INPUT / OUTPUT / FORWARD
  • NAT: PREROUTING / POSTROUTING / OUTPUT
  • Mangle: PREROUTING

Parámetros y Modificadores

  • Añadir regla al final (-A): -A [cadena]
  • Insertar regla en posición específica (-I): -I [num]
  • Eliminar regla (-D): -D
  • Listar reglas (-L): -L
  • Limpiar tablas/Flush (-F): -F
  • Política por defecto (-P): -P
  • Interfaz de entrada/salida: -i / -o
  • IP de origen/destino: -s / -d
  • Protocolo: -p [tcp/udp/icmp]
  • Puerto origen/destino: --sport / --dport
  • Multipuerto: -m multiport
  • Estado de conexión: -m state --state [NEW/ESTABLISHED/RELATED]
  • Dirección MAC: -m mac --mac-source

Acciones (Targets)

  • ACCEPT: Permite el paso del paquete.
  • DROP: Elimina el paquete silenciosamente.
  • REJECT: Bloquea el paquete y avisa al emisor.
  • LOG: Guarda registro en /var/log/syslog.
  • MASQUERADE: Enmascara la IP local para salir a internet (Tabla NAT).
  • DNAT: Redirige tráfico hacia una IP interna específica (Tabla NAT).

Ejemplos Prácticos de Iptables

  • Activar funciones de router: echo 1 > /proc/sys/net/ipv4/ip_forward
  • Dar salida a Internet: iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
  • Redirigir tráfico externo: iptables -t nat -A PREROUTING -i enp0s3 -p tcp --dport 80 -j DNAT --to 10.0.X.2:80
  • Permitir tráfico de vuelta: iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
  • Políticas restrictivas por defecto (Lista blanca): iptables -P INPUT DROP && iptables -P OUTPUT DROP && iptables -P FORWARD DROP
  • Permitir tráfico local: iptables -A INPUT -i lo -j ACCEPT && iptables -A OUTPUT -o lo -j ACCEPT

Configuración del Servidor Proxy Squid

Rutas y Archivos Clave

  • Configuración principal: /etc/squid/squid.conf
  • Registro de conexiones: /var/log/squid/access.log
  • Registro de caché: /var/log/squid/cache.log
  • Directorio de errores: /usr/share/squid/errors/es-es/

Bloqueo de Dominios o Palabras

  1. Crear un archivo con dominios a bloquear: nano /etc/squid/redes_sociales
  2. Aplicar la regla en squid.conf (antes de http_access allow localhost):
    # CREAR LISTA DE ACCESO
    acl redessociales url_regex -i "/etc/squid/redes_sociales"
    http_access deny redessociales

Autenticación de Usuarios en Squid

  1. Instalar herramientas necesarias: apt-get install apache2-utils
  2. Crear archivo de usuarios y contraseñas: htpasswd -c /etc/squid/users usr1 y htpasswd /etc/squid/users usr2
  3. Comprobar usuarios creados: more /etc/squid/users
  4. Configurar autenticación en squid.conf:
    # Configuración del programa de autenticación
    auth_param basic program /usr/lib/squid/basic_ncsa_auth /etc/squid/users
    auth_param basic children 30
    auth_param basic realm PROXY SAD
    
    # Crear ACL para exigir identificación
    acl identificacion proxy_auth REQUIRE
    
    # Dar acceso a los usuarios identificados
    http_access allow identificacion
  5. Recargar el servicio tras cualquier modificación: service squid reload

Descargar

PDF Word HTML