Comandos GnuPG, Nmap, Iptables y Squid en Linux: Referencia Práctica
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 -kogpg --list-keys - Listar privadas:
gpg -Kogpg --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]ogpg -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
- Crear un archivo con dominios a bloquear:
nano /etc/squid/redes_sociales - Aplicar la regla en
squid.conf(antes dehttp_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
- Instalar herramientas necesarias:
apt-get install apache2-utils - Crear archivo de usuarios y contraseñas:
htpasswd -c /etc/squid/users usr1yhtpasswd /etc/squid/users usr2 - Comprobar usuarios creados:
more /etc/squid/users - 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 - Recargar el servicio tras cualquier modificación:
service squid reload