LinuxParty
Parrot OS es una distribución GNU/Linux basada en Debian orientada a la seguridad informática, la privacidad, el desarrollo y el análisis forense digital. (Wikipedia)
A diferencia de otras distribuciones de propósito general, Parrot está diseñada para usuarios que buscan herramientas especializadas en ámbitos como:
- 🛡️ Pentesting (pruebas de intrusión).
- 🔍 Análisis de vulnerabilidades y seguridad de sistemas.
- 💻 Informática forense digital.
- 🕵️♂️ Privacidad y anonimato en la red.
(OpenWebinars.net)
Existe más de una edición de Parrot. Por ejemplo:
- Parrot Security: la edición con herramientas de ciberseguridad.
- Parrot Home: enfocada al uso general y diario con herramientas de desarrollo y protección de privacidad. (parrotsec.org)
Esto hace que Parrot sea útil tanto para profesionales de seguridad como para usuarios que desean un sistema Linux seguro y completo.
🆕 Parrot 7 “Echo”: novedades de la última versión
La versión Parrot 7 “Echo” ha sido publicada como la nueva versión estable de la distribución y trae cambios importantes respecto a versiones anteriores.
🧩 Base actualizada
Parrot 7 cambia su base principal a Debian 13 “Trixie”, la última versión estable de Debian, lo que le proporciona:
- Mayor estabilidad.
- Mejores actualizaciones de seguridad.
- Compatibilidad más amplia con software reciente.
iptables, ipset, Apache, Nginx y Cloudflare
En determinadas situaciones —escaneos automáticos, bots, intentos de fuerza bruta o picos de tráfico sospechoso— puede ser útil bloquear temporalmente el acceso desde determinados países a un servidor Linux.
Este artículo explica cómo hacerlo correctamente, en distintos niveles, empezando por la opción más baja y eficaz (firewall), y continuando con alternativas a nivel web y CDN.
¿Qué necesito tener instalado?
Para el bloqueo a nivel de firewall (opción recomendada), necesitas:
- iptables → motor clásico de filtrado de paquetes en Linux
- ipset → gestor de conjuntos de IPs/redes, optimizado para grandes listas
En la mayoría de servidores Linux:
iptablesya está instaladoipsetsuele estar disponible en repositorios oficiales
Instalación típica:
Debian / Ubuntu
apt install ipset iptables
RHEL / CentOS / Alma / Rocky
dnf install ipset iptables
Scripts con APNIC, cron y firewalld
En el artículo anterior vimos cómo bloquear accesos por país usando iptables e ipset, creando los conjuntos manualmente.
En entornos reales, lo habitual es automatizar todo el proceso para que las listas de IP se mantengan actualizadas sin intervención manual.
En este artículo veremos:
- Cómo descargar rangos IP oficiales desde APNIC
- Cómo generar automáticamente ipsets por país
- Cómo actualizar las listas con
cron - Cómo integrar este método con
firewalld
¿Por qué automatizar?
Los rangos IP cambian con el tiempo:
- Nuevas asignaciones
- Reasignaciones
- Cambios de tamaño de red
Si el ipset no se actualiza:
- Se pierden IPs nuevas
- Se bloquean rangos obsoletos
- La eficacia baja con el tiempo
👉 Automatizar garantiza bloqueos coherentes y mantenidos.
Fuente oficial de datos: APNIC
APNIC publica un fichero plano con todas las asignaciones:
- IPv4
- IPv6
- Por país
- Actualizado diariamente
Formato típico de línea:
apnic|CN|ipv4|1.0.1.0|256|assigned
Esto significa:
- País: CN
- Tipo: IPv4
- IP inicial: 1.0.1.0
- Número de IPs: 256
Script básico para generar ipsets por país
Ejemplo: China (CN)
Script simple en bash:
#!/bin/bash COUNTRY="CN" SETNAME="china" APNIC_URL="https://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest" # Crear el ipset si no existe ipset create $SETNAME hash:net -exist # Vaciar el conjunto antes de recargar ipset flush $SETNAME # Descargar y procesar rangos IPv4 curl -s $APNIC_URL | \ grep "|$COUNTRY|ipv4|" | \ awk -F'|' '{print $4 "/" int(log($5)/log(2))}' | \ while read net; do ipset add $SETNAME $net -exist
Este script:
- Descarga los datos oficiales
- Filtra por país
- Calcula la máscara CIDR
- Rellena automáticamente el ipset
Adaptar el script a otros países
Solo hay que cambiar dos variables:
Irán
COUNTRY="IR"
SETNAME="iran"
Rusia
COUNTRY="RU"
SETNAME="russia"
Israel
COUNTRY="IL"
SETNAME="israel"
Puedes tener:
- Un script por país
- O un script que recorra varios países
Comprobación tras la carga automática
Ver contenido del ipset:
ipset list china
Ver número de entradas:
ipset list china | grep "Number of entries"
Esto confirma que:
- El script funciona
- Los datos se han cargado correctamente
Aplicar iptables una sola vez
Las reglas de iptables no necesitan recrearse cada vez.
Ejemplo:
iptables -I INPUT -m set --match-set china src -j DROP
Mientras el ipset se actualice:
- La regla sigue funcionando
- El firewall usa siempre la lista actual
Logging en entornos automatizados
Logging temporal (diagnóstico)
iptables -I INPUT -m set --match-set china src \
-j LOG --log-prefix "IPTABLES-CHINA: " --log-level 4
Consulta:
journalctl -k | grep IPTABLES-CHINA
Producción recomendada
- Quitar el LOG
- Mantener solo
DROP - Evitar crecimiento innecesario de logs
Automatización con cron
Guardar el script, por ejemplo en:
/usr/local/sbin/update-ipset-china.sh
Dar permisos:
chmod +x /usr/local/sbin/update-ipset-china.sh
Editar cron:
crontab -e
Ejemplo: actualización diaria a las 03:30
30 3 * * * /usr/local/sbin/update-ipset-china.sh
Esto mantiene el ipset siempre actualizado sin intervención manual.
Integración con firewalld
En sistemas modernos, firewalld suele estar activo.
Crear el ipset en firewalld
firewall-cmd --permanent --new-ipset=china --type=hash:net
Añadir regla de bloqueo
firewall-cmd --permanent \
--add-rich-rule='rule source ipset=china drop'
Recargar configuración
firewall-cmd --reload
Consultar
firewall-cmd --info-ipset=china
👉 El script de carga de IPs sigue siendo válido, solo cambia el backend.
¿Firewall, Apache/Nginx o Cloudflare?
Recordatorio rápido:
- Firewall (iptables/ipset)
Bloquea todo el tráfico, más eficiente - Apache / Nginx
Bloquea solo la web, útil si no quieres afectar otros servicios - Cloudflare
Ideal si lo usas: rápido, visual, sin carga en el servidor
En servidores públicos como LinuxParty, lo más habitual es:
- Firewall para ruido masivo
- Web server para ajustes finos
- Cloudflare si está disponible
¿Cómo saber si el bloqueo funciona con iptables -L -n?
Cuando ejecutas:
iptables -L -n
iptables te muestra las reglas cargadas, pero no siempre es suficiente para confirmar actividad. Hay que fijarse en detalles concretos.
1️⃣ Lo primero: entender qué muestra iptables -L -n
Salida típica simplificada:
Chain INPUT (policy ACCEPT) target prot opt source destination DROP all -- 1.0.0.0/8 0.0.0.0/0
Esto solo indica:
- Que la regla existe
- Que está cargada en el firewall
👉 NO confirma aún que se esté usando
2️⃣ La clave real: contadores de paquetes y bytes
Para saber si una regla está actuando, necesitas ver los contadores.
Usa:
iptables -L -n -v
La opción -v (verbose) es fundamental.
Ejemplo real con ipset
Chain INPUT (policy ACCEPT 123K packets, 45M bytes) pkts bytes target prot opt in out source destination 342 20560 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set china src
¿Qué significa esto?
- pkts → paquetes bloqueados
- bytes → volumen total bloqueado
- match-set china src → está usando el ipset
👉 Si los números aumentan con el tiempo, la regla está funcionando.
3️⃣ Cómo comprobarlo en tiempo real
Ejecuta varias veces:
watch -n 2 iptables -L INPUT -n -v
Si ves que:
pktsybytessuben
✔️ El bloqueo está activo y recibiendo tráfico
4️⃣ ¿Y si los contadores están a cero?
Posibles causas (todas habituales):
🔹 Aún no hay tráfico desde ese país
Totalmente normal.
🔹 La regla está en una cadena que no se usa
Comprueba que:
- Es
INPUT(para tráfico entrante al servidor) - No estás usando solo
FORWARD
🔹 firewalld está gestionando las reglas
Si usas firewalld:
firewall-cmd --state
En ese caso, iptables -L puede no reflejar lo que crees.
5️⃣ Confirmación adicional con LOG (opcional)
Si añadiste la regla de log:
iptables -I INPUT -m set --match-set china src \ -j LOG --log-prefix "IPTABLES-CHINA: " --log-level 4
Entonces puedes confirmar actividad con:
journalctl -k | grep IPTABLES-CHINA
Salida típica:
IPTABLES-CHINA: IN=eth0 SRC=1.2.3.4 DST=...
👉 Esto es prueba definitiva de que la regla está funcionando.
6️⃣ Ver solo reglas relacionadas con ipset
Filtrar la salida ayuda mucho:
iptables -L -n -v | grep match-set
O directamente:
iptables -L INPUT -n -v | grep china
7️⃣ Detalle importante: orden de las reglas
iptables evalúa de arriba a abajo.
Comprueba posiciones con numeración:
iptables -L INPUT -n -v --line-numbers
Ejemplo:
1 342 20560 DROP all -- * * 0.0.0.0/0 0.0.0.0/0 match-set china src
👉 Si la regla está muy abajo, puede que otra regla esté aceptando antes el tráfico.
8️⃣ Resumen rápido.
✔️ iptables -L -n → ves que la regla existe
✔️ iptables -L -n -v → ves si se usa (contadores)
✔️ watch iptables -L INPUT -n -v → confirmación en tiempo real
✔️ journalctl -k | grep IPTABLES-CHINA → prueba con logs
✔️ Contadores subiendo = bloqueo activo
En un giro innovador de las tácticas de persistencia, un grupo de amenazas vinculado a los intereses geopolíticos de Rusia ha comenzado a utilizar la tecnología de virtualización nativa de Microsoft, Hyper-V, para desplegar entornos Linux ocultos dentro de sistemas Windows comprometidos.
Esta técnica, descubierta recientemente por investigadores de seguridad de Bitdefender en colaboración con el CERT de Georgia, permite a los atacantes operar de forma casi invisible ante las soluciones de seguridad tradicionales.
El método: Una máquina virtual como escondite
El grupo, identificado como "Curly COMrades", aprovecha que Hyper-V es una característica integrada en Windows 10 y 11. Una vez que obtienen acceso inicial a un sistema, los atacantes siguen un proceso meticuloso para establecer su base de operaciones:
- Activación silenciosa: Utilizan herramientas de línea de comandos (como DISM) para habilitar el rol de Hyper-V si no está activo, pero desactivan deliberadamente la interfaz gráfica de gestión para que el administrador del sistema no note cambios visuales.
- Disfraz de archivo: Descargan un archivo comprimido que se hace pasar por un archivo de vídeo, pero que en realidad contiene el disco virtual y la configuración de una instancia de Alpine Linux extremadamente ligera.
- Engaño de nombre: La máquina virtual se importa con el nombre "WSL". Esto es una táctica de ingeniería social técnica, ya que intenta imitar al legítimo Windows Subsystem for Linux, una herramienta común y confiable para desarrolladores.
Puedes acceder a un servidor Linux remoto sin necesidad de introducir la contraseña, siguiendo estos 3 sencillos pasos utilizando ssky-keygen y ssh-copy-id, como se explica en este artículo.
ssh-keygen crea las claves públicas y privadas. ssh-copy-id copia las claves públicas de localhost en el archivo remoto anfitrión y las authorized_keys.
ssh-copy-id también asigna los permisos necesarios en el $HOME del anfitrión remoto, ~/.ssh, y ~/.ssh/authorized_keys. (Esto tiene especial interes si tu IP pública es estática)
Condiciones previas, debes de crear el mismo usuario (antes de empezar), en los servidores local-host y remote-host
Este artículo también explica tres pequeñas molestias de usar ssh-copy-id y cómo usar ssh-copy-id junto con ssh-agent.
Configuración previa:
Verifica el archivo de configuración del servidor SSH (/etc/ssh/sshd_config) y asegúrate de que las siguientes líneas estén habilitadas:
Si está comentada la linea, déjala comentada.
# PubkeyAuthentication no
# O cambia el valor.
PubkeyAuthentication yes
# ¡¡CUIADO!! Si pones "no", al valor: PasswordAuthentication pondrás en riesgo el servidor, ninguna cuenta
# pondrás en riesgo el servidor, ninguna cuenta requerirá contraseña si pones "no". deja el valor "yes"
PasswordAuthentication yes
Paso 1: Creación de claves públicas y privadas utilizando ssh-key-gen en local-anfitrión.
Esto puede saltarse, en el caso de que ya hubiera ssh-keygen creado.
jsmith@local-host$ [Nota: Ahora estás en tu localhost, el host que controlará "remote-host"] jsmith@local-host$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/jsmith/.ssh/id_rsa):[Pulse Intro aquí] Enter passphrase (empty for no passphrase): [Pulse Intro aquí] Enter same passphrase again: [Pulse Intro aquí] Your identification has been saved in /home/jsmith/.ssh/id_rsa. Your public key has been saved in /home/jsmith/.ssh/id_rsa.pub. The key fingerprint is: 33:b3:fe:af:95:95:18:11:31:d5:de:96:2f:f2:35:f9 jsmith@local-host
Este tutorial muestra cómo configurar una Network-Address-Translation (NAT) en un sistema Linux con reglas iptables, de modo que el sistema pueda actuar como gateway y proporcionar el acceso de Internet a múltiples anfitriones en una red local, usando sólo una dirección IP pública. Esto se consigue rescribiendo la fuente y/o las direcciones de destino del paquete IP, que pasan a través del systema NAT

| Este enlace contiene ejemplos y configuraciones más recientes que el de éste artículo. Entre y revíselo. |
Otros artículos más modernos... también:
1. Introducción & contexto moderno
Snort sigue siendo una de las herramientas más usadas como Sistema de Detección / Prevención de Intrusos (IDS / IPS). (snort.org)
En su versión más reciente (Snort 3) se han introducido mejoras arquitectónicas: soporte multihilo, nuevo sistema de reglas y configuración, mejor rendimiento y mayor modularidad. (snort.org)
Aunque en entornos profesionales lo más habitual es usar Snort en sistemas Linux o appliances dedicados, también puede desplegarse en Windows para pruebas, entornos mixtos o sensores locales. (letsdefend.io)
Este artículo te guiará por un proceso actualizado de instalación y configuración en Windows (10 / 11 / versiones recientes de servidor), con las mejores prácticas a 2025.
2. Requisitos previos
Antes de comenzar, asegúrate de:
- Tener permisos de administrador en la máquina Windows.
- Sistema operativo compatible: Windows 10, 11 o versiones servidor modernas.
- Controladores de captura de paquetes (Npcap preferido).
- Tener conexión a internet para descargar reglas y actualizaciones.
Npcap vs WinPcap
WinPcap fue la biblioteca clásica usada durante mucho tiempo para capturar paquetes en Windows, pero su desarrollo está obsoleto.
Hoy la recomendación universal es usar Npcap, que es compatible con el API de WinPcap y está en activo desarrollo. (letsdefend.io)
Durante la instalación de Npcap, selecciona el modo “WinPcap API-compatible” (si está disponible) para asegurar compatibilidad con herramientas que esperan la ABI de WinPcap. (letsdefend.io)
Otros requisitos
- Visual C++ Redistributable (las versiones modernas de Snort lo requieren). (letsdefend.io)
- Espacio en disco suficiente para almacenar reglas, logs y submódulos.
- Si vas a integrarlo con dashboards o SIEM, debes contar con red / acceso a servidor de logs.
Una de las primeras acciones que lleva a cabo un intruso, una vez ingresa a un sistema, es instalar un rootkit, el cual facilita el control de la máquina desde ese momento en adelante. Dichas herramientas presentan un gran riesgo para los administradores y, por tanto, es de vital importancia conocer sus alcances, funcionamiento y los mecanismos que existen para detectarlos.
Los Rootkits fueron descubiertos a mediados de los '90. En aquella época, los administradores de sistema del sistema operativo Unix de SUN comenzaron a ver un comportamiento extraño en el servidor, la falta de espacio de disco, ciclos extra en la CPU y las conexiones de red que no se mostraba con el comando netstat.
Linux trae un firewall basado en host llamado Netfilter. Según el sitio oficial del proyecto:
netfilter es un conjunto de ganchos dentro del kernel de Linux que permite a los módulos del kernel registrar las funciones de devolución de llamada con la pila de red. Una función de devolución de llamada registrada se llama de nuevo para cada paquete que atraviesa el gancho respectivo dentro de la pila de red.
Este firewall basado en Linux es controlado por el programa llamado iptables para controlar de filtrado para IPv4 e ip6tables adminitrando el filtrado para IPv6.
Ejemplo de Reglas iptables
- La mayor parte de las acciones enumeradas en este artículo están escritos con la suposición de que serán ejecutados por el usuario root desde la bash shell o cualquier otro shell moderna. No escriba los comandos en un sistema remoto, ya que podrá llegar a desconectar su acceso.
- Para fines de demostración he usado RHEL 6.x, pero el siguiente comando debería funcionar con cualquier distribución Linux moderno.
- Esto no es un tutorial sobre cómo configurar iptables. Es una hoja de trucos rápido a los comandos de iptables comunes.
Dos comandos fáciles y rápidos de ejecutar para detener los ataques de negación de servicio desde máquinas zombies. El primer comando sirve para que nuestro servidor bote todos los paquetes de cierta longitud.
-
Seguridad
- Parrot 7, se actualiza a distro Debian, con KDE, Wayland y herramientas IA
- Bloquear accesos por país a tu Web, cómo hacerlo en Servidores Linux
- Hackers rusos utilizan Hyper-V para ocultar malware de Linux en sistemas Windows
- Utilizar ssh sin contraseña con ssh-keygen y ssh-copy-id
- Configuración paso a paso de una NAT con los iptables
- Snort para Windows, detección de Intrusos y seguridad.
- Detectar ROOTKITS en Linux
- 20 Ejemplos IPTables para nuevos Administradores de Sistemas
- IPTABLES para evitar ataques de Denegación de Servicio (DDoS)
- mod_security y mod_evasive en Linux para CentOS / RedHat
- Un Windows XP sin protección y conectado a Internet: el experimento que demuestra por qué no deberías hacerlo
- Contraseñas Aleatorias en Internet: Cómo Crear Claves Seguras Sin Complicarte




