{"id":10323,"date":"2026-11-10T10:19:28","date_gmt":"2026-11-10T09:19:28","guid":{"rendered":"https:\/\/www.hostingtg.com\/blog\/?p=10323"},"modified":"2026-11-11T10:14:22","modified_gmt":"2026-11-11T09:14:22","slug":"ufw-vs-iptables-vs-nftables","status":"publish","type":"post","link":"https:\/\/www.hostingtg.com\/blog\/ufw-vs-iptables-vs-nftables\/","title":{"rendered":"UFW vs iptables vs nftables: qu\u00e9 firewall usar en tu servidor"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Elegir entre UFW, iptables y nftables puede parecer una decisi\u00f3n secundaria cuando est\u00e1s configurando un servidor Linux. Sin embargo, cuando necesitas resolver una incidencia de seguridad, abrir un puerto urgentemente o revisar por qu\u00e9 una conexi\u00f3n est\u00e1 siendo bloqueada, descubres lo importante que resulta tener un firewall bien configurado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi experiencia <a href=\"https:\/\/www.hostingtg.com\/blog\/administrar-un-servidor-vps\/\">administrando servidores Linux<\/a>, he trabajado con situaciones muy diferentes. Desde peque\u00f1os VPS que \u00fanicamente necesitan permitir conexiones <a href=\"https:\/\/www.hostingtg.com\/blog\/ssh-que-es\/\">SSH<\/a>, HTTP y HTTPS, hasta servidores de alojamiento que gestionan cientos de p\u00e1ginas web, servicios de correo electr\u00f3nico, bases de datos y numerosas conexiones simult\u00e1neas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y hay algo que tengo bastante claro: no existe un firewall que sea la mejor elecci\u00f3n para todos los servidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW destaca por su facilidad de uso, iptables contin\u00faa siendo v\u00e1lido en numerosos entornos y nftables ofrece una arquitectura moderna y flexible para configuraciones avanzadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero \u00bfcu\u00e1l deber\u00edas utilizar realmente?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esta comparativa de UFW vs iptables vs nftables vamos a analizar sus diferencias, ventajas, inconvenientes, ejemplos de configuraci\u00f3n y, sobre todo, en qu\u00e9 situaciones recomiendo cada uno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">UFW, iptables o nftables: \u00bfcu\u00e1l es mejor para tu servidor?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Si buscas una respuesta r\u00e1pida, mi recomendaci\u00f3n es bastante sencilla: UFW para administrar un VPS sin complicaciones, nftables para nuevas configuraciones avanzadas e iptables cuando existen motivos t\u00e9cnicos para mantenerlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa que UFW sea exclusivamente para principiantes, que iptables haya dejado de ser \u00fatil o que nftables sea obligatorio en todos los servidores modernos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La elecci\u00f3n depende del sistema operativo, los servicios que se ejecutan, las herramientas que gestionan las reglas y la complejidad real de la infraestructura.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Comparativa r\u00e1pida de caracter\u00edsticas<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><th>Caracter\u00edstica<\/th><th>UFW<\/th><th>iptables<\/th><th>nftables<\/th><\/tr><tr><td>Facilidad de uso<\/td><td>Alta<\/td><td>Baja<\/td><td>Media<\/td><\/tr><tr><td>Curva de aprendizaje<\/td><td>Baja<\/td><td>Alta<\/td><td>Media-alta<\/td><\/tr><tr><td>Configuraciones sencillas<\/td><td>Excelente<\/td><td>Buena<\/td><td>Buena<\/td><\/tr><tr><td>Reglas complejas<\/td><td>Limitadas en su interfaz habitual<\/td><td>Muy flexible<\/td><td>Muy flexible<\/td><\/tr><tr><td>IPv4 e IPv6<\/td><td>S\u00ed, con configuraci\u00f3n adecuada<\/td><td>Herramientas separadas en su interfaz cl\u00e1sica<\/td><td>Familia <code>inet<\/code> para reglas conjuntas<\/td><\/tr><tr><td>Conjuntos de IP<\/td><td>Depende del backend y la configuraci\u00f3n<\/td><td>Mediante herramientas adicionales como ipset<\/td><td>Integrados<\/td><\/tr><tr><td>Actualizaciones at\u00f3micas de reglas<\/td><td>Depende del backend<\/td><td>Limitadas en su modelo tradicional<\/td><td>S\u00ed, mediante transacciones<\/td><\/tr><tr><td>Servidores antiguos<\/td><td>Depende del entorno<\/td><td>Habitual<\/td><td>Requiere comprobar compatibilidad<\/td><\/tr><tr><td>Mi recomendaci\u00f3n<\/td><td>VPS sencillos<\/td><td>Sistemas heredados compatibles<\/td><td>Nuevos proyectos avanzados<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Hay una diferencia importante que conviene conocer desde el principio: UFW no es exactamente una alternativa tecnol\u00f3gica del mismo nivel que iptables y nftables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW es una herramienta de administraci\u00f3n que simplifica la configuraci\u00f3n del firewall. iptables y nftables son interfaces con las que se gestionan reglas de filtrado del subsistema Netfilter de Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, en muchas distribuciones actuales, los comandos de iptables pueden utilizar internamente el backend nf_tables mediante la capa de compatibilidad <code>iptables-nft<\/code>. Por eso, comparar \u00fanicamente los nombres de las herramientas no siempre refleja qu\u00e9 tecnolog\u00eda est\u00e1 procesando realmente las reglas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mi recomendaci\u00f3n seg\u00fan el tipo de servidor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">VPS Ubuntu con una web o pocos servicios<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Reglas sencillas, administraci\u00f3n r\u00e1pida y menos complejidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Servidor nuevo con filtrado avanzado<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adecuado para conjuntos de direcciones IP, pol\u00edticas detalladas y configuraciones complejas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Servidor existente con reglas heredadas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">iptables<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mantenerlo puede ser razonable cuando las reglas est\u00e1n documentadas y las dependencias funcionan correctamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, si tengo que <a href=\"https:\/\/www.hostingtg.com\/blog\/como-asegurar-un-vps-ubuntu\/\">configurar un VPS con Ubuntu<\/a> para alojar una p\u00e1gina web, normalmente elegir\u00eda UFW. No necesito una arquitectura compleja para permitir \u00fanicamente conexiones por los puertos 22, 80 y 443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, si estoy dise\u00f1ando un servidor con diferentes redes, listas de direcciones IP y pol\u00edticas de filtrado avanzadas, nftables me parece una opci\u00f3n m\u00e1s interesante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y si encuentro un servidor que lleva a\u00f1os funcionando correctamente con iptables, no veo ninguna necesidad de migrarlo simplemente porque exista una herramienta m\u00e1s reciente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo que realmente importa es que el firewall proteja el sistema, que sus reglas puedan entenderse y que cualquier administrador autorizado sea capaz de mantenerlas.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">C\u00f3mo funcionan los firewalls en Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de comparar sus comandos, conviene entender qu\u00e9 ocurre realmente cuando una conexi\u00f3n llega a un servidor Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un firewall permite establecer reglas para aceptar, rechazar o descartar determinados paquetes de red. De esta manera, podemos controlar qu\u00e9 servicios reciben conexiones, desde qu\u00e9 direcciones IP y bajo qu\u00e9 condiciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, un servidor web p\u00fablico normalmente necesita aceptar tr\u00e1fico HTTP y HTTPS desde Internet, mientras que su base de datos podr\u00eda estar disponible \u00fanicamente para aplicaciones internas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ambos servicios pueden funcionar en el mismo servidor, pero no deber\u00edan tener necesariamente las mismas reglas de acceso.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 es Netfilter y c\u00f3mo se relaciona con las tres herramientas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Netfilter es el subsistema del <a href=\"https:\/\/www.hostingtg.com\/blog\/que-es-un-kernel\/\">kernel Linux<\/a> que proporciona funciones de filtrado y tratamiento de paquetes de red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">iptables y nftables permiten configurar diferentes mecanismos relacionados con ese subsistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW, por su parte, simplifica la administraci\u00f3n de reglas sin que tengamos que escribir directamente todas las instrucciones de bajo nivel.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herramientas de administraci\u00f3n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">UFW<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">iptables<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Interfaces y backends de reglas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ruta concreta depende de la herramienta, la versi\u00f3n y la configuraci\u00f3n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Netfilter \u2014 kernel Linux<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Filtrado, seguimiento de conexiones y tratamiento de paquetes<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Este esquema es conceptual: UFW suele gestionar reglas mediante mecanismos compatibles con iptables, mientras que iptables puede utilizar el backend tradicional o el de nftables. No todas las herramientas siguen una \u00fanica ruta id\u00e9ntica.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Entender esta diferencia evita un error frecuente: pensar que instalar varios gestores de firewall proporciona autom\u00e1ticamente varias capas independientes de seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En realidad, varias aplicaciones pueden estar modificando reglas que terminan interactuando dentro del mismo sistema de filtrado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Diferencias entre UFW, iptables y nftables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">UFW significa Uncomplicated Firewall. Su objetivo es ofrecer una interfaz sencilla para configurar pol\u00edticas habituales, especialmente en servidores Ubuntu.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con iptables trabajamos directamente con comandos que permiten a\u00f1adir reglas a tablas y cadenas de filtrado. Su sintaxis ofrece un control detallado, aunque las configuraciones grandes pueden resultar dif\u00edciles de mantener.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables utiliza una estructura m\u00e1s moderna que permite administrar tablas, cadenas, reglas, conjuntos y otros elementos mediante una sintaxis m\u00e1s uniforme.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una diferencia importante es que nftables puede gestionar IPv4 e IPv6 en una misma tabla de familia <code>inet<\/code>, mientras que la interfaz tradicional de iptables utiliza comandos separados como <code>iptables<\/code> e <code>ip6tables<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n incorpora conjuntos de datos que facilitan la gesti\u00f3n de grandes grupos de direcciones IP sin necesidad de crear una regla individual por cada direcci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 son iptables-legacy e iptables-nft<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando utilizamos iptables en un servidor moderno, conviene comprobar qu\u00e9 variante est\u00e1 ejecut\u00e1ndose.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen dos posibilidades habituales:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>iptables-legacy: utiliza la interfaz tradicional de iptables con el kernel.<\/li>\n\n\n\n<li>iptables-nft: permite utilizar comandos con sintaxis iptables sobre la infraestructura nf_tables mediante una capa de compatibilidad.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos comprobar la versi\u00f3n con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables --version<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Dependiendo del sistema, la salida puede mostrar una indicaci\u00f3n como <code>legacy<\/code> o <code>nf_tables<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto resulta especialmente importante cuando una aplicaci\u00f3n a\u00f1ade reglas autom\u00e1ticamente. Dos servidores que utilizan comandos aparentemente id\u00e9nticos podr\u00edan estar trabajando con backends diferentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi consejo es revisar siempre la configuraci\u00f3n existente antes de instalar o activar otro gestor. Saber qu\u00e9 herramienta administra realmente las reglas puede evitar bastantes problemas posteriores.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">UFW: el firewall m\u00e1s sencillo para un VPS Ubuntu<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando alguien contrata su <a href=\"https:\/\/www.hostingtg.com\/blog\/primeros-pasos-con-vps-guia-completa\/\">primer servidor VPS<\/a> y necesita establecer unas reglas b\u00e1sicas de seguridad, UFW suele ser una de las herramientas que m\u00e1s recomiendo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su principal ventaja es que permite expresar reglas de forma sencilla, sin necesidad de conocer todos los detalles de las tablas y cadenas de Netfilter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para permitir conexiones SSH, por ejemplo, podemos utilizar un comando f\u00e1cil de interpretar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow 22\/tcp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para consultar las reglas activas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status numbered<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Esta facilidad puede parecer poco importante cuando administramos un \u00fanico servidor, pero adquiere m\u00e1s valor cuando tenemos que revisar configuraciones, explicar cambios a otro administrador o resolver r\u00e1pidamente una incidencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ventajas e inconvenientes de UFW<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Entre sus principales ventajas destacar\u00eda la facilidad de instalaci\u00f3n, la claridad de sus comandos y la posibilidad de establecer pol\u00edticas predeterminadas sin crear archivos extensos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n admite reglas por direcci\u00f3n IP, interfaces, puertos y perfiles de aplicaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, podemos limitar el acceso SSH a una IP concreta:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw allow from 203.0.113.10 \\\n  to any port 22 proto tcp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La direcci\u00f3n utilizada es un ejemplo y debe sustituirse por una direcci\u00f3n real autorizada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, UFW tambi\u00e9n tiene limitaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su interfaz simplificada no siempre resulta la m\u00e1s conveniente para escenarios que necesitan elementos avanzados de filtrado, conjuntos din\u00e1micos o reglas complejas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, no debemos asumir que gestiona autom\u00e1ticamente todas las modificaciones realizadas por otras aplicaciones. Servicios que manipulan directamente el filtrado de red pueden introducir reglas que requieran una revisi\u00f3n adicional.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por tanto, UFW es sencillo, pero eso no significa que podamos olvidarnos de c\u00f3mo funciona la red del servidor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo recomiendo utilizar UFW<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, lo elegir\u00eda especialmente para un VPS <a href=\"https:\/\/www.hostingtg.com\/blog\/ubuntu-server-vs-debian-para-tu-vps\/\">Ubuntu o Debian<\/a> con unos pocos servicios expuestos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos un servidor destinado a alojar <a href=\"https:\/\/www.hostingtg.com\/hosting-wordpress\/\">WordPress<\/a>, una aplicaci\u00f3n web o una peque\u00f1a tienda online.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Normalmente necesitaremos conexiones HTTP y HTTPS, adem\u00e1s del acceso SSH para administrarlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una instalaci\u00f3n as\u00ed, crear una configuraci\u00f3n demasiado sofisticada puede introducir m\u00e1s posibilidades de error que ventajas reales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n considero UFW una buena opci\u00f3n cuando la administraci\u00f3n recae en una persona que no trabaja diariamente con reglas avanzadas de firewall.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prefiero un conjunto de reglas sencillo, correctamente documentado y revisado peri\u00f3dicamente que una configuraci\u00f3n compleja que nadie se atreva a modificar.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo de configuraci\u00f3n b\u00e1sica con SSH, HTTP y HTTPS<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En Ubuntu podemos instalar UFW, si todav\u00eda no est\u00e1 disponible, mediante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt update\nsudo apt install ufw<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de activar reglas, es importante comprobar el puerto SSH real y si existen restricciones adicionales en el proveedor cloud.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para una instalaci\u00f3n nueva, sin reglas previas ni otros gestores interfiriendo, la configuraci\u00f3n habitual ser\u00eda:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw default deny incoming\nsudo ufw default allow outgoing\n\nsudo ufw allow 22\/tcp\nsudo ufw allow 80\/tcp\nsudo ufw allow 443\/tcp<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Las tres reglas permiten conexiones SSH, HTTP y HTTPS respectivamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el servidor utiliza otro puerto SSH, debemos permitir ese puerto en lugar del 22.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez comprobadas las reglas, podemos activar UFW:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw enable<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y revisar su estado:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status verbose<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Precauci\u00f3n antes de activar UFW por SSH<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un servidor remoto, mantendr\u00eda una sesi\u00f3n administrativa abierta, preparar\u00eda un acceso de recuperaci\u00f3n desde la consola del proveedor y comprobar\u00eda una segunda conexi\u00f3n SSH antes de cerrar la sesi\u00f3n original. Tambi\u00e9n revisar\u00eda IPv6 y cualquier regla previa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En definitiva, UFW permite proteger configuraciones habituales con pocos comandos. Es precisamente lo que busco cuando el servidor no necesita un filtrado especialmente elaborado.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">iptables: control avanzado y compatibilidad con servidores existentes<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">iptables ha sido durante muchos a\u00f1os una de las herramientas m\u00e1s utilizadas para configurar firewalls en Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si llevas tiempo administrando servidores, probablemente te hayas encontrado con sus comandos en alguna ocasi\u00f3n, especialmente en instalaciones antiguas, scripts de administraci\u00f3n o herramientas de seguridad desarrolladas cuando iptables era la opci\u00f3n predominante.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su principal caracter\u00edstica es que permite definir reglas detalladas para controlar el tr\u00e1fico de red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos establecer condiciones basadas en direcciones IP de origen y destino, protocolos, puertos, interfaces y estados de conexi\u00f3n, entre otros criterios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El inconveniente es que su sintaxis resulta menos intuitiva que la de UFW.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ventajas e inconvenientes de iptables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La principal ventaja de iptables es su amplia trayectoria dentro del ecosistema Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Existen numerosas configuraciones, scripts, herramientas y procedimientos que utilizan su interfaz. Esto facilita mantener sistemas heredados sin necesidad de modificar componentes que ya funcionan correctamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n ofrece un control muy detallado del filtrado de paquetes y permite construir pol\u00edticas complejas mediante diferentes tablas y cadenas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, tiene algunos inconvenientes importantes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por un lado, las reglas se administran mediante una sintaxis que puede resultar complicada cuando necesitamos combinar numerosas condiciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por otro, las configuraciones tradicionales con muchas reglas individuales pueden dificultar su revisi\u00f3n y mantenimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, la distinci\u00f3n entre iptables-legacy e iptables-nft puede introducir cierta confusi\u00f3n cuando diferentes herramientas utilizan backends distintos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Conviene aclarar que iptables no ha dejado de funcionar simplemente porque nftables sea m\u00e1s moderno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De hecho, muchas distribuciones mantienen herramientas compatibles con iptables, aunque internamente utilicen nftables como backend.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El verdadero problema aparece cuando no sabemos qu\u00e9 variante estamos utilizando o c\u00f3mo interact\u00faa con los dem\u00e1s componentes del servidor.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo sigue teniendo sentido utilizarlo<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">En HostingTG trabajamos con diferentes configuraciones de servidores Linux, y una de las lecciones m\u00e1s importantes que he aprendido es que no conviene cambiar un sistema que funciona correctamente sin estudiar antes sus dependencias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto se aplica especialmente a servidores que utilizan scripts personalizados, aplicaciones antiguas o herramientas de seguridad que esperan encontrar una interfaz compatible con iptables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos un servidor de alojamiento que lleva a\u00f1os funcionando de manera estable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sus reglas est\u00e1n documentadas, los administradores conocen su funcionamiento y los servicios dependen de determinados scripts.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfMerece la pena migrarlo inmediatamente a nftables?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesariamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero comprobar\u00eda qu\u00e9 ventajas concretas obtendr\u00edamos con la migraci\u00f3n, qu\u00e9 aplicaciones podr\u00edan verse afectadas y si existe alg\u00fan requisito t\u00e9cnico o de soporte que justifique el cambio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el sistema sigue siendo compatible, est\u00e1 actualizado y sus reglas funcionan correctamente, mantener iptables puede ser una decisi\u00f3n perfectamente razonable.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso s\u00ed, tambi\u00e9n revisar\u00eda la evoluci\u00f3n de la distribuci\u00f3n Linux utilizada y planificar\u00eda la transici\u00f3n antes de llegar a un escenario sin soporte.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo de reglas b\u00e1sicas con iptables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Podemos consultar las reglas actuales mediante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -L -n -v<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para verlas con una sintaxis similar a la utilizada al crearlas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -S<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una regla para permitir conexiones SSH entrantes podr\u00eda ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A INPUT -p tcp \\\n  --dport 22 -j ACCEPT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Para HTTP:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A INPUT -p tcp \\\n  --dport 80 -j ACCEPT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para HTTPS:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A INPUT -p tcp \\\n  --dport 443 -j ACCEPT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Estas instrucciones a\u00f1aden reglas a la cadena <code>INPUT<\/code>, pero no constituyen por s\u00ed solas una pol\u00edtica de seguridad completa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su resultado depende del orden de las reglas existentes, las pol\u00edticas predeterminadas y otras cadenas que puedan intervenir. Una regla a\u00f1adida al final puede no llegar a evaluarse si otra anterior ya ha decidido qu\u00e9 hacer con el paquete.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En un firewall restrictivo normalmente tambi\u00e9n hay que contemplar el tr\u00e1fico de loopback y las conexiones establecidas:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -A INPUT -i lo -j ACCEPT\n\nsudo iptables -A INPUT \\\n  -m conntrack \\\n  --ctstate ESTABLISHED,RELATED \\\n  -j ACCEPT<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">El orden debe adaptarse a la configuraci\u00f3n existente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, las reglas de IPv6 se gestionan mediante <code>ip6tables<\/code> en la interfaz cl\u00e1sica, y la persistencia de los cambios requiere mecanismos adicionales que dependen de la distribuci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No recomiendo copiar estas reglas directamente en un servidor de producci\u00f3n sin revisar antes su pol\u00edtica actual. Tampoco cambiar\u00eda la pol\u00edtica de <code>INPUT<\/code> a <code>DROP<\/code> durante una sesi\u00f3n SSH remota sin disponer de un plan de recuperaci\u00f3n comprobado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta es precisamente una de las razones por las que prefiero UFW para configuraciones sencillas. iptables ofrece mucho control, pero tambi\u00e9n exige entender exactamente qu\u00e9 estamos modificando.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">nftables: la alternativa moderna para configuraciones avanzadas<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">nftables es el sucesor moderno del sistema tradicional de reglas de iptables dentro del ecosistema Netfilter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su desarrollo busca proporcionar una forma m\u00e1s uniforme y flexible de administrar el filtrado de paquetes en Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una de sus caracter\u00edsticas m\u00e1s interesantes es que permite trabajar con tablas, cadenas, conjuntos, mapas y reglas utilizando una arquitectura com\u00fan.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto simplifica determinadas configuraciones que con iptables tradicional pueden requerir numerosos comandos o herramientas complementarias.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, si tuviera que dise\u00f1ar desde cero un servidor Linux con necesidades avanzadas de filtrado y sin dependencias heredadas, nftables ser\u00eda mi primera opci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ventajas e inconvenientes de nftables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Una de sus principales ventajas es la posibilidad de gestionar reglas de IPv4 e IPv6 dentro de una tabla de familia <code>inet<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto evita duplicar parte de la configuraci\u00f3n cuando queremos aplicar pol\u00edticas equivalentes a ambos protocolos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otra ventaja importante es su compatibilidad con conjuntos de datos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos que necesitamos permitir conexiones administrativas \u00fanicamente desde varias direcciones IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Con nftables podemos agruparlas dentro de un conjunto y utilizar ese conjunto en nuestras reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n destaca por la posibilidad de aplicar cambios mediante transacciones at\u00f3micas, evitando determinados estados intermedios durante las actualizaciones del conjunto de reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto resulta especialmente \u00fatil cuando administramos sistemas con pol\u00edticas de filtrado complejas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por supuesto, nftables tambi\u00e9n presenta inconvenientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Su sintaxis exige aprendizaje, especialmente cuando empezamos a utilizar conjuntos, mapas, hooks o diferentes familias de tablas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adem\u00e1s, no siempre es conveniente administrarlo directamente si el servidor ya utiliza un panel de control o una herramienta que genera y modifica reglas autom\u00e1ticamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una configuraci\u00f3n avanzada de nftables puede ser elegante desde el punto de vista t\u00e9cnico, pero no servir\u00e1 de mucho si introduce conflictos con otros componentes del sistema.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Conjuntos de IP, IPv4, IPv6 y reglas at\u00f3micas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Supongamos que queremos permitir conexiones SSH desde tres direcciones IP concretas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En nftables podemos definir un conjunto como este:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>set administradores {\n    type ipv4_addr\n    elements = {\n        203.0.113.10,\n        203.0.113.20,\n        203.0.113.30\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y utilizarlo posteriormente en una regla de una cadena apropiada:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>ip saddr @administradores tcp dport 22 accept<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Es un fragmento ilustrativo que debe integrarse en una tabla, cadena y pol\u00edtica de filtrado v\u00e1lidas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ventaja es que podemos mantener las direcciones autorizadas dentro de un mismo elemento l\u00f3gico, en lugar de crear reglas independientes para cada una.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Las direcciones del ejemplo pertenecen a un rango reservado para documentaci\u00f3n; deben reemplazarse por las IP reales.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Otro aspecto interesante es la gesti\u00f3n conjunta de IPv4 e IPv6.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mediante una tabla <code>inet<\/code>, nftables permite escribir reglas que se aplican a ambos protocolos cuando los criterios utilizados son compatibles.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa que ambos protocolos deban tratarse siempre de forma id\u00e9ntica. Por ejemplo, para utilizar conjuntos de direcciones IPv4 e IPv6 debemos tener en cuenta sus respectivos tipos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Respecto a las actualizaciones at\u00f3micas, nftables permite preparar cambios y aplicarlos como una transacci\u00f3n. As\u00ed se reduce el riesgo de exponer temporalmente el sistema a estados intermedios entre varias operaciones.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esta capacidad resulta especialmente atractiva en infraestructuras donde las pol\u00edticas cambian con frecuencia.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Ejemplo de configuraci\u00f3n b\u00e1sica con nftables<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para comprender su sintaxis, podemos partir del siguiente archivo ilustrativo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>table inet filtro_web {\n    chain input {\n        type filter hook input priority 0;\n        policy drop;\n\n        iifname \"lo\" accept\n\n        ct state established,related accept\n\n        meta l4proto icmp accept\n        meta l4proto ipv6-icmp accept\n\n        tcp dport { 22, 80, 443 } accept\n    }\n\n    chain output {\n        type filter hook output priority 0;\n        policy accept;\n    }\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En este ejemplo definimos una tabla de familia <code>inet<\/code> llamada <code>filtro_web<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Dentro de ella creamos una cadena <code>input<\/code> con pol\u00edtica predeterminada <code>drop<\/code>. Esto significa que los paquetes entrantes que alcancen esa pol\u00edtica sin coincidir con una regla de aceptaci\u00f3n ser\u00e1n descartados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A continuaci\u00f3n permitimos el tr\u00e1fico de loopback, las conexiones establecidas o relacionadas, determinados protocolos de control y las conexiones TCP entrantes a los puertos 22, 80 y 443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La cadena <code>output<\/code> permite el tr\u00e1fico saliente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Importante: este ejemplo muestra la estructura de un firewall b\u00e1sico, pero no debe aplicarse sin adaptaci\u00f3n a un servidor real.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No incluye reglas de reenv\u00edo de tr\u00e1fico, NAT, particularidades de contenedores ni todas las necesidades posibles de una infraestructura. Adem\u00e1s, permitir ICMP e ICMPv6 de forma general es una decisi\u00f3n did\u00e1ctica; las pol\u00edticas concretas deben ajustarse a los requisitos del servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para consultar las reglas administradas mediante nftables podemos utilizar:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nft list ruleset<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y para comprobar la sintaxis de un archivo antes de aplicarlo:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nft -c -f \/etc\/nftables.conf<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">La comprobaci\u00f3n sint\u00e1ctica no garantiza que las reglas sean seguras ni que permitan conservar el acceso remoto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n hay que tener especial cuidado con archivos que incluyen instrucciones como <code>flush ruleset<\/code>, ya que pueden eliminar reglas gestionadas por otras herramientas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando administro servidores con necesidades complejas, esta capacidad para organizar reglas me parece una ventaja importante de nftables. Pero siempre acompa\u00f1ada de documentaci\u00f3n, pruebas y un mecanismo para recuperar el acceso si algo sale mal.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Diferencias entre UFW, iptables y nftables: comparaci\u00f3n completa<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta ahora hemos visto c\u00f3mo funciona cada herramienta y qu\u00e9 posibilidades ofrece.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, para elegir correctamente un firewall hay que valorar algo m\u00e1s que su sintaxis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La facilidad de mantenimiento, la compatibilidad con otras aplicaciones y la capacidad para resolver incidencias son factores tan importantes como las funciones avanzadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De hecho, he visto c\u00f3mo una configuraci\u00f3n aparentemente sencilla termina siendo complicada de mantener porque diferentes herramientas modifican las reglas sin una organizaci\u00f3n clara.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Facilidad de uso y mantenimiento<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">UFW destaca especialmente en este apartado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sus comandos son f\u00e1ciles de interpretar, permite consultar las reglas configuradas y evita tener que trabajar directamente con muchos detalles internos de Netfilter.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Esto resulta \u00fatil en servidores que \u00fanicamente ofrecen unos pocos servicios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">iptables ofrece un control m\u00e1s detallado, pero las reglas complejas pueden llegar a ser dif\u00edciles de seguir, especialmente cuando intervienen numerosas cadenas personalizadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables permite organizar configuraciones avanzadas con una estructura que puede resultar m\u00e1s clara una vez que conocemos su sintaxis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por tanto, la elecci\u00f3n depender\u00e1 tambi\u00e9n de qui\u00e9n va a administrar el servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si la persona responsable apenas necesita abrir y cerrar puertos, probablemente obtenga m\u00e1s ventajas utilizando UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si hablamos de un equipo de administradores acostumbrado a dise\u00f1ar pol\u00edticas de red complejas, nftables puede ofrecer una mayor flexibilidad.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Rendimiento, flexibilidad y escalabilidad<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Es habitual encontrar comparativas que presentan nftables como una herramienta autom\u00e1ticamente m\u00e1s r\u00e1pida que iptables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, conviene matizar esa afirmaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El rendimiento real depende de numerosos factores: la cantidad de reglas, su organizaci\u00f3n, los tipos de coincidencia, el tr\u00e1fico recibido y las versiones del kernel y del sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una configuraci\u00f3n sencilla con unas pocas reglas no necesariamente mostrar\u00e1 diferencias relevantes entre las distintas alternativas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La ventaja arquitect\u00f3nica de nftables aparece especialmente cuando necesitamos utilizar conjuntos, mapas y estructuras que permiten representar determinadas pol\u00edticas de forma m\u00e1s eficiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, administrar miles de direcciones IP con conjuntos puede resultar m\u00e1s pr\u00e1ctico que crear una regla individual para cada direcci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso no significa que cualquier instalaci\u00f3n de nftables supere autom\u00e1ticamente a cualquier configuraci\u00f3n de iptables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tampoco ser\u00eda correcto presentar una comparaci\u00f3n de rendimiento entre UFW y nftables sin conocer el backend utilizado por UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi recomendaci\u00f3n es no elegir un firewall \u00fanicamente por supuestas diferencias de velocidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para un VPS convencional, la facilidad de administraci\u00f3n probablemente tenga m\u00e1s importancia que cualquier mejora te\u00f3rica de rendimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para una infraestructura de filtrado intensivo, en cambio, s\u00ed estudiar\u00eda con detalle las capacidades avanzadas de nftables y realizar\u00eda pruebas representativas del tr\u00e1fico real.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Compatibilidad con distribuciones y otras herramientas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es uno de los aspectos que m\u00e1s importancia tiene en servidores de producci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu y Debian ofrecen diferentes herramientas para administrar el firewall, incluyendo UFW y los comandos tradicionales de iptables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En distribuciones del ecosistema Red Hat es habitual encontrar firewalld como herramienta de administraci\u00f3n, frecuentemente sobre nftables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n existen aplicaciones que crean o modifican sus propias reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Es el caso de determinados sistemas de contenedores, herramientas de seguridad y paneles de administraci\u00f3n de servidores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, antes de decidir qu\u00e9 firewall instalar, comprobar\u00eda siempre qu\u00e9 herramientas est\u00e1n activas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Algunos comandos \u00fatiles son:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ufw status<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables -V<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nft list ruleset<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Estos comandos permiten consultar informaci\u00f3n, pero no identifican por s\u00ed solos todos los gestores que est\u00e1n administrando el filtrado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n conviene comprobar los servicios del sistema y la documentaci\u00f3n del software instalado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi principal preocupaci\u00f3n no es encontrar un servidor que siga utilizando iptables. Me preocupa mucho m\u00e1s encontrar un servidor donde nadie sabe qu\u00e9 aplicaci\u00f3n est\u00e1 modificando las reglas del firewall.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 firewall elegir seg\u00fan el tipo de servidor<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La mejor manera de elegir entre UFW, iptables y nftables es analizar c\u00f3mo se utiliza realmente el servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No tiene las mismas necesidades un VPS que aloja una \u00fanica p\u00e1gina web que una m\u00e1quina dedicada con m\u00faltiples servicios de alojamiento, redes privadas y aplicaciones que administran sus propias reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En HostingTG trabajamos con diferentes configuraciones de servidores Linux, y esa variedad me ha ense\u00f1ado que la complejidad del firewall debe responder a las necesidades del proyecto, no al deseo de utilizar la herramienta m\u00e1s avanzada.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">VPS Ubuntu para una p\u00e1gina web<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Para un VPS con Ubuntu destinado a alojar una p\u00e1gina web, mi primera recomendaci\u00f3n suele ser UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En una instalaci\u00f3n habitual, el servidor necesita aceptar conexiones HTTP y HTTPS y permitir el acceso administrativo mediante SSH.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La configuraci\u00f3n es sencilla, resulta f\u00e1cil comprobar las reglas y podemos modificar los puertos autorizados cuando cambia el proyecto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n permite aplicar restricciones adicionales, como limitar el acceso SSH a determinadas direcciones IP.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para muchas p\u00e1ginas web, blogs y peque\u00f1as aplicaciones, estas funcionalidades son suficientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eso s\u00ed, antes de utilizarlo comprobar\u00eda que el servidor no tenga otro gestor activo y que la configuraci\u00f3n sea compatible con los servicios instalados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, un VPS que utiliza Docker puede necesitar precauciones adicionales, ya que la publicaci\u00f3n de puertos de los contenedores puede interactuar con reglas gestionadas fuera de UFW.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n revisar\u00eda la configuraci\u00f3n de IPv6 para evitar que un servicio quede expuesto por una v\u00eda que no hemos contemplado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Servidores de hosting con cPanel, Plesk o DirectAdmin<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">La situaci\u00f3n cambia bastante cuando administramos servidores de alojamiento con paneles de control.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Herramientas como cPanel, Plesk o DirectAdmin pueden coexistir con sistemas adicionales de seguridad que administran reglas, bloquean direcciones IP o protegen determinados servicios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En estos entornos no recomendar\u00eda instalar UFW, nftables o cualquier otro gestor sin estudiar primero la configuraci\u00f3n existente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo importante es comprobar qu\u00e9 herramientas son compatibles con el panel, qu\u00e9 componentes modifican Netfilter y c\u00f3mo se gestionan las reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un servidor de hosting puede necesitar permitir conexiones SMTP, IMAP, DNS, FTP, HTTP, HTTPS y otros protocolos, dependiendo de los servicios habilitados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Bloquear uno de esos puertos por desconocimiento puede provocar incidencias que inicialmente parecen problemas del propio servicio.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">He aprendido que en estos casos resulta especialmente importante mantener una administraci\u00f3n coherente del firewall.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No se trata simplemente de utilizar una herramienta m\u00e1s potente, sino de evitar que varios sistemas interfieran entre s\u00ed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, mi recomendaci\u00f3n es seguir la arquitectura de seguridad compatible y documentada para el panel y sus componentes instalados, en lugar de imponer un gestor diferente.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Servidores con m\u00faltiples servicios y reglas complejas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando hablamos de servidores que necesitan controlar diferentes redes, conjuntos de direcciones IP, interfaces o pol\u00edticas de acceso espec\u00edficas, nftables empieza a ofrecer ventajas m\u00e1s interesantes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, imaginemos una infraestructura con aplicaciones web p\u00fablicas, bases de datos privadas y servicios administrativos accesibles \u00fanicamente desde una <a href=\"https:\/\/www.hostingtg.com\/blog\/instalar-wireguard-vpn-en-vps\/\">VPN<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este escenario necesitamos algo m\u00e1s que abrir los puertos 80 y 443.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Debemos definir qu\u00e9 sistemas pueden comunicarse entre s\u00ed, qu\u00e9 conexiones est\u00e1n autorizadas y c\u00f3mo se mantienen las reglas cuando cambia la infraestructura.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables permite organizar este tipo de pol\u00edticas mediante conjuntos, cadenas y otros elementos que facilitan su mantenimiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n resulta interesante para configuraciones nuevas en las que queremos administrar IPv4 e IPv6 de forma coordinada.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tuviera que dise\u00f1ar una infraestructura as\u00ed desde cero, estudiar\u00eda nftables como primera alternativa.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Pero no lo elegir\u00eda \u00fanicamente por ser moderno. Antes comprobar\u00eda su integraci\u00f3n con los servicios, el sistema operativo y las herramientas de automatizaci\u00f3n previstas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Servidores antiguos con configuraciones heredadas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es un escenario en el que no recomiendo realizar cambios innecesarios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si tenemos un servidor que utiliza iptables, funciona correctamente y mantiene unas reglas documentadas, no existe una obligaci\u00f3n universal de migrarlo inmediatamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero analizar\u00eda el sistema operativo, las aplicaciones instaladas y las dependencias de seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n comprobar\u00eda si el servidor est\u00e1 utilizando iptables-legacy o iptables-nft.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">A partir de ah\u00ed valorar\u00eda si merece la pena preparar una migraci\u00f3n a nftables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por supuesto, mantener iptables no significa ignorar las actualizaciones de seguridad ni conservar indefinidamente un sistema operativo sin soporte.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una cosa es mantener una herramienta compatible y otra muy diferente seguir utilizando una infraestructura obsoleta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi criterio ser\u00eda conservar la configuraci\u00f3n mientras resulte segura, compatible y mantenible, y planificar la migraci\u00f3n cuando existan razones t\u00e9cnicas suficientes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Errores habituales al configurar un firewall en Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Una mala configuraci\u00f3n del firewall puede provocar tantos problemas operativos como una ausencia de filtrado adecuado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">He visto que muchas incidencias no tienen su origen en la herramienta elegida, sino en c\u00f3mo se modifican las reglas y en la falta de revisi\u00f3n de los servicios que realmente necesitan conectividad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, antes de configurar UFW, iptables o nftables, conviene conocer algunos errores frecuentes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Bloquear accidentalmente el acceso SSH<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Probablemente sea uno de los errores m\u00e1s delicados cuando administramos un VPS remoto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Imaginemos que activamos una pol\u00edtica predeterminada que bloquea las conexiones entrantes, pero olvidamos permitir el puerto SSH utilizado por el servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si la nueva configuraci\u00f3n impide establecer sesiones administrativas y cerramos la conexi\u00f3n actual, podemos quedarnos sin acceso remoto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para evitarlo, recomiendo comprobar el puerto SSH real, preparar las reglas de acceso antes de activar restricciones y disponer de una consola de recuperaci\u00f3n proporcionada por el alojamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n conviene mantener una sesi\u00f3n abierta mientras comprobamos que es posible iniciar otra nueva.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En servidores cr\u00edticos, utilizar\u00eda adem\u00e1s un mecanismo probado de reversi\u00f3n autom\u00e1tica que restaure la configuraci\u00f3n anterior si no confirmamos que el acceso funciona.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Mezclar gestores de firewall sin revisar las reglas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Este es uno de los problemas que m\u00e1s me preocupan cuando reviso la seguridad de un servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Instalar UFW en una m\u00e1quina que ya utiliza firewalld, scripts personalizados, reglas generadas por contenedores o herramientas del panel de hosting puede provocar resultados inesperados.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El hecho de que podamos instalar varias aplicaciones no significa que sea conveniente utilizarlas simult\u00e1neamente sin coordinaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, una regla que acepta tr\u00e1fico en una cadena no garantiza necesariamente que otra cadena o hook independiente vaya a permitirlo. Del mismo modo, una herramienta podr\u00eda modificar o eliminar reglas que otra necesita.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La soluci\u00f3n no consiste en elegir a ciegas cu\u00e1l de los gestores es mejor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero hay que identificar qui\u00e9n administra las reglas, qu\u00e9 dependencias existen y qu\u00e9 procedimiento recomienda el fabricante o la distribuci\u00f3n.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Olvidar IPv6, Docker o la persistencia de las reglas<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Otro error frecuente es comprobar \u00fanicamente las reglas IPv4.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si el servidor dispone de conectividad IPv6, debemos revisar tambi\u00e9n qu\u00e9 servicios est\u00e1n expuestos mediante ese protocolo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una aplicaci\u00f3n puede estar correctamente restringida en IPv4 y seguir siendo accesible a trav\u00e9s de IPv6 si las pol\u00edticas no son equivalentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n conviene prestar atenci\u00f3n a <a href=\"https:\/\/www.hostingtg.com\/blog\/introduccion-docker\/\">Docker<\/a> y otros sistemas de contenedores, ya que pueden modificar reglas de filtrado y NAT al publicar puertos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No debemos asumir que una pol\u00edtica definida con UFW controla autom\u00e1ticamente todo el tr\u00e1fico publicado por contenedores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente, hay que comprobar la persistencia de las reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una configuraci\u00f3n puede funcionar perfectamente hasta el siguiente reinicio y perderse si no se ha guardado mediante el mecanismo correspondiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En UFW, la herramienta administra su configuraci\u00f3n persistente. Con iptables tradicional suelen utilizarse procedimientos adicionales, mientras que nftables puede cargar un archivo de configuraci\u00f3n mediante el servicio correspondiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El procedimiento concreto depende de la distribuci\u00f3n y de las herramientas instaladas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">No revisar las reglas tras cambios en el servidor<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Un firewall no es algo que configuremos una vez y podamos olvidar para siempre.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando a\u00f1adimos servicios, cambiamos direcciones IP, instalamos aplicaciones o modificamos la arquitectura, es necesario revisar las reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puede ocurrir que un puerto que necesit\u00e1bamos hace meses ya no tenga ninguna utilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mantenerlo abierto innecesariamente aumenta la superficie de exposici\u00f3n del servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso recomiendo revisar peri\u00f3dicamente qu\u00e9 servicios escuchan conexiones y cu\u00e1les necesitan realmente acceso externo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En Linux podemos consultar los sockets en escucha con:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ss -tulpen<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s debemos relacionar esa informaci\u00f3n con las reglas del firewall y con la exposici\u00f3n real del servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.hostingtg.com\/blog\/como-saber-proceso-usa-puerto-linux\/\">Un servicio escuchando en una interfaz<\/a> no implica necesariamente que sea accesible desde Internet; tambi\u00e9n intervienen el firewall local, el proveedor, el direccionamiento y otros controles de red.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Checklist antes de modificar el firewall<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">0 de 6 comprobacionesReiniciar<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Identificar el gestor de firewall activo y sus dependencias<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Guardar una copia de la configuraci\u00f3n actual<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comprobar el puerto SSH y disponer de acceso de recuperaci\u00f3n<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Revisar los servicios expuestos mediante IPv4 e IPv6<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Comprobar si Docker, el panel de hosting u otras aplicaciones gestionan reglas<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Validar los cambios, su persistencia y la posibilidad de revertirlos<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Una revisi\u00f3n de este tipo puede evitar problemas mucho m\u00e1s costosos que los minutos necesarios para realizarla.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u00bfConviene migrar de iptables a nftables?<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">La transici\u00f3n de iptables a nftables es una cuesti\u00f3n que aparece con frecuencia cuando administramos servidores Linux.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La respuesta depende del entorno.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables es una tecnolog\u00eda m\u00e1s moderna y ofrece ventajas importantes para gestionar reglas complejas. Sin embargo, eso no significa que tengamos que migrar autom\u00e1ticamente todas las instalaciones existentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para m\u00ed, la pregunta correcta no es si nftables es m\u00e1s reciente, sino qu\u00e9 problema vamos a resolver con la migraci\u00f3n y qu\u00e9 riesgos implica realizarla.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cu\u00e1ndo merece la pena la migraci\u00f3n<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Plantear\u00eda una migraci\u00f3n especialmente cuando necesitamos nuevas capacidades que resultan m\u00e1s c\u00f3modas de administrar con nftables.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por ejemplo, cuando tenemos grandes conjuntos de direcciones IP, queremos centralizar reglas de IPv4 e IPv6 o necesitamos reorganizar configuraciones tradicionales demasiado extensas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n puede tener sentido cuando estamos renovando la infraestructura, actualizando distribuciones o sustituyendo herramientas heredadas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En esos casos, aprovechar el cambio para adoptar nftables puede simplificar el mantenimiento futuro.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Sin embargo, no migrar\u00eda un servidor \u00fanicamente porque alguien afirme que iptables est\u00e1 obsoleto.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Primero verificar\u00eda qu\u00e9 backend utiliza realmente, qu\u00e9 soporte ofrece la distribuci\u00f3n y si las herramientas instaladas son compatibles con el nuevo enfoque.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En determinados sistemas, los comandos de iptables ya utilizan internamente nf_tables. Eso significa que pasar a escribir reglas nativas de nftables no siempre equivale a sustituir completamente una tecnolog\u00eda por otra.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Qu\u00e9 revisar antes de cambiar de firewall<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Antes de preparar una migraci\u00f3n, empezar\u00eda por recopilar la configuraci\u00f3n actual.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En sistemas que utilizan iptables podemos consultar las reglas mediante:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo iptables-save<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n revisar\u00eda la configuraci\u00f3n correspondiente a IPv6:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo ip6tables-save<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y comprobar\u00eda qu\u00e9 reglas existen en nftables:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo nft list ruleset<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Estas consultas ayudan a realizar un inventario, aunque hay que interpretarlas seg\u00fan el backend y los gestores activos.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No intentar\u00eda convertir las reglas sin m\u00e1s y ejecutarlas directamente sobre un servidor en producci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Preparar\u00eda una configuraci\u00f3n equivalente, identificar\u00eda las dependencias, revisar\u00eda qu\u00e9 aplicaciones modifican las reglas y realizar\u00eda pruebas en un entorno controlado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n tendr\u00eda en cuenta la persistencia de la nueva configuraci\u00f3n tras reinicios.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando el servidor utiliza cPanel, DirectAdmin, Plesk u otras herramientas de administraci\u00f3n, comprobar\u00eda especialmente los mecanismos de seguridad compatibles con cada instalaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente, establecer\u00eda un procedimiento de reversi\u00f3n para recuperar la configuraci\u00f3n anterior si surge alg\u00fan problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No hay ninguna raz\u00f3n para convertir una mejora de seguridad en una incidencia de disponibilidad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi recomendaci\u00f3n es abordar estas migraciones como cualquier otro cambio importante de infraestructura: con documentaci\u00f3n, pruebas, ventana de mantenimiento cuando corresponda y posibilidad de recuperaci\u00f3n.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Qu\u00e9 firewall recomiendo para un servidor Linux<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de comparar UFW, iptables y nftables, mi recomendaci\u00f3n sigue siendo la misma: no elegir\u00eda un firewall \u00fanicamente por su popularidad o porque utilice la tecnolog\u00eda m\u00e1s reciente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi trabajo administrando servidores Linux he comprobado que cada entorno tiene necesidades diferentes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un peque\u00f1o VPS que aloja una p\u00e1gina web no necesita necesariamente las mismas pol\u00edticas que un servidor de hosting con cientos de dominios y numerosos servicios funcionando simult\u00e1neamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, si tuviera que resumir mi elecci\u00f3n, ser\u00eda esta:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>UFW: mi primera opci\u00f3n para un VPS Ubuntu con pocos servicios y necesidades de filtrado sencillas.<\/li>\n\n\n\n<li>nftables: mi preferencia para nuevas configuraciones avanzadas que requieren mayor flexibilidad y control.<\/li>\n\n\n\n<li>iptables: una alternativa que mantendr\u00eda en servidores existentes cuando sus reglas funcionan correctamente y las dependencias justifican conservarla.<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n creo que resulta importante no confundir complejidad con seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Un firewall con decenas de reglas que nadie entiende no es necesariamente m\u00e1s seguro que uno con unas pocas reglas bien dise\u00f1adas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Lo fundamental es establecer una pol\u00edtica adecuada, permitir \u00fanicamente las conexiones necesarias y revisar peri\u00f3dicamente la configuraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Tampoco debemos olvidar que ning\u00fan firewall sustituye las actualizaciones de seguridad, una configuraci\u00f3n correcta de SSH, el control de los servicios expuestos o la monitorizaci\u00f3n del servidor.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El firewall es una capa de protecci\u00f3n importante, pero debe formar parte de una estrategia de seguridad m\u00e1s amplia.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Si est\u00e1s preparando un nuevo proyecto, los <a href=\"https:\/\/www.hostingtg.com\/servidores-vps\/\" target=\"_blank\" rel=\"noreferrer noopener\">servidores VPS de HostingTG<\/a> ofrecen un entorno donde puedes configurar las medidas de seguridad adecuadas para tus aplicaciones y necesidades de alojamiento.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Mi consejo es empezar con una configuraci\u00f3n sencilla, documentar las reglas y aumentar su complejidad \u00fanicamente cuando el proyecto lo necesite.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Porque, al final, el mejor firewall para tu servidor Linux es el que ofrece la protecci\u00f3n adecuada y puedes administrar con confianza cuando realmente importa.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Dudas de la Comunidad<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 es mejor, UFW o iptables?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para un servidor Linux con necesidades sencillas, normalmente recomiendo UFW porque facilita la administraci\u00f3n de las reglas. iptables ofrece una interfaz m\u00e1s detallada que puede resultar \u00fatil en entornos heredados o con requisitos espec\u00edficos. No obstante, UFW puede utilizar mecanismos basados en iptables, por lo que no son tecnolog\u00edas completamente independientes.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfEs nftables mejor que iptables?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">nftables ofrece ventajas arquitect\u00f3nicas, como conjuntos integrados, reglas conjuntas de IPv4 e IPv6 mediante tablas <code>inet<\/code> y actualizaciones transaccionales. Esto lo convierte en una alternativa atractiva para configuraciones avanzadas. Sin embargo, no significa que cualquier servidor con iptables necesite migrar inmediatamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 firewall utiliza Ubuntu por defecto?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ubuntu proporciona UFW como herramienta habitual de administraci\u00f3n simplificada del firewall, aunque su disponibilidad no significa que est\u00e9 activado en todas las instalaciones. El estado inicial depende de la imagen, la versi\u00f3n y la configuraci\u00f3n del servidor. Podemos comprobarlo mediante <code>sudo ufw status<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfPuedo utilizar UFW y nftables al mismo tiempo?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">T\u00e9cnicamente pueden coexistir diferentes herramientas que interact\u00faan con Netfilter, pero no recomiendo administrarlas simult\u00e1neamente sin conocer su integraci\u00f3n. Las reglas pueden interferir entre s\u00ed o producir resultados dif\u00edciles de diagnosticar. Es preferible definir claramente qu\u00e9 gestor controla cada parte del filtrado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 firewall consume menos recursos en Linux?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No existe una respuesta universal. El consumo y rendimiento dependen de las reglas, los tipos de coincidencia, la cantidad de conexiones y el backend utilizado. Para un VPS con pocas reglas, las diferencias pueden ser poco relevantes. En configuraciones complejas, nftables ofrece estructuras que pueden facilitar un tratamiento m\u00e1s eficiente del filtrado.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfEs seguro utilizar UFW en un servidor de producci\u00f3n?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">S\u00ed, siempre que est\u00e9 correctamente configurado y sea compatible con los servicios del servidor. UFW puede ser perfectamente adecuado para entornos de producci\u00f3n. Lo importante es revisar las reglas, controlar el acceso administrativo, comprobar IPv4 e IPv6 y evitar conflictos con otras herramientas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfDebo desinstalar iptables para utilizar nftables?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">No necesariamente. Algunas distribuciones utilizan herramientas compatibles con iptables sobre el backend nftables. Antes de desinstalar paquetes o modificar servicios, conviene comprobar las dependencias y c\u00f3mo se administran las reglas en el sistema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 firewall recomiendo para un servidor con Docker?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Depende del entorno y de c\u00f3mo Docker est\u00e9 configurado para gestionar la red. Docker puede instalar reglas de filtrado y NAT mediante distintos backends, seg\u00fan su versi\u00f3n y configuraci\u00f3n. Antes de activar UFW o administrar directamente nftables, revisar\u00eda la documentaci\u00f3n correspondiente y comprobar\u00eda c\u00f3mo se publican los puertos de los contenedores.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfQu\u00e9 ocurre si bloqueo el puerto SSH con el firewall?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Puedes perder la posibilidad de establecer nuevas conexiones remotas. Si dispones de una sesi\u00f3n todav\u00eda funcional, una consola de recuperaci\u00f3n del proveedor o un mecanismo de reversi\u00f3n, podr\u00e1s recuperar el acceso seg\u00fan la situaci\u00f3n. Por eso es fundamental probar las reglas antes de cerrar la sesi\u00f3n de administraci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Opini\u00f3n Personal<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Despu\u00e9s de a\u00f1os administrando servidores Linux, tengo bastante claro que <strong>elegir entre UFW, iptables y nftables no deber\u00eda convertirse en una competici\u00f3n por utilizar la herramienta m\u00e1s moderna<\/strong>. Lo verdaderamente importante es contar con un firewall que proteja correctamente el servidor, que podamos administrar sin complicaciones y que no termine provocando m\u00e1s problemas de los que pretende solucionar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En mi caso, cuando configuro un VPS Ubuntu para alojar una p\u00e1gina web, normalmente prefiero UFW. Es sencillo, r\u00e1pido de configurar y permite controlar los <a href=\"https:\/\/www.hostingtg.com\/blog\/comprobar-puertos-abiertos\/\">puertos abiertos<\/a> sin necesidad de complicarse demasiado. Si el servidor \u00fanicamente necesita SSH, HTTP y HTTPS, \u00bfpara qu\u00e9 montar una configuraci\u00f3n compleja que despu\u00e9s ser\u00e1 m\u00e1s dif\u00edcil de mantener?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora bien, cuando hablamos de infraestructuras m\u00e1s exigentes, mi opini\u00f3n cambia. <strong>nftables me parece la alternativa m\u00e1s interesante para nuevas configuraciones avanzadas<\/strong>. Su flexibilidad, la posibilidad de trabajar con conjuntos de direcciones IP y su capacidad para gestionar reglas de forma m\u00e1s organizada son ventajas que valoro especialmente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00bfY qu\u00e9 pasa con iptables? Pues sinceramente, no creo que haya que enterrarlo antes de tiempo. En HostingTG trabajamos con diferentes configuraciones de servidores Linux y sabemos que cambiar algo que funciona correctamente, sin comprobar antes sus dependencias, puede acabar generando problemas innecesarios. Si un servidor utiliza iptables, tiene unas reglas bien documentadas y todo funciona como deber\u00eda, no veo motivos para migrarlo precipitadamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">De hecho, hay algo que me preocupa bastante m\u00e1s que encontrar un servidor utilizando una tecnolog\u00eda antigua: encontrar uno donde varios sistemas de filtrado est\u00e1n interfiriendo entre s\u00ed y nadie sabe exactamente qu\u00e9 herramienta est\u00e1 gestionando las reglas.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para m\u00ed, <strong>la facilidad de mantenimiento es tan importante como las capacidades t\u00e9cnicas del firewall<\/strong>. Porque cuando aparece una incidencia de seguridad, lo \u00faltimo que necesitas es perder tiempo intentando entender una configuraci\u00f3n que alguien dej\u00f3 funcionando hace a\u00f1os.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Por eso, mi recomendaci\u00f3n sigue siendo bastante clara: UFW para quienes buscan sencillez, nftables para proyectos nuevos con necesidades avanzadas e iptables para aquellos entornos donde todav\u00eda tiene sentido mantenerlo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Y, por supuesto, nunca olvidar\u00eda que un firewall es solo una parte de la seguridad del servidor. Mantener el sistema actualizado, proteger el acceso SSH, controlar los servicios expuestos y revisar peri\u00f3dicamente la configuraci\u00f3n sigue siendo imprescindible.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00bfY t\u00fa, qu\u00e9 firewall prefieres?<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ahora me gustar\u00eda conocer tu experiencia. <strong>\u00bfUtilizas UFW, iptables o nftables en tus servidores Linux?<\/strong> \u00bfHas migrado de iptables a nftables y has notado alguna mejora? \u00bfO eres de los que prefieren la sencillez de UFW para evitar complicaciones?<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Seguro que m\u00e1s de uno se ha encontrado con alguna regla que termin\u00f3 bloqueando una conexi\u00f3n importante o con un firewall que parec\u00eda estar correctamente configurado hasta que surgi\u00f3 un problema.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>\u00a1Te leo en los comentarios!<\/strong> Cu\u00e9ntame qu\u00e9 firewall utilizas, por qu\u00e9 lo elegiste y si has tenido alguna experiencia que merezca la pena compartir. Tu opini\u00f3n puede ayudar a otros administradores a elegir la herramienta m\u00e1s adecuada para sus servidores.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Elegir entre UFW, iptables y nftables puede parecer una decisi\u00f3n secundaria cuando est\u00e1s configurando un servidor Linux. Sin embargo, cuando necesitas resolver una incidencia de seguridad, abrir un puerto urgentemente o revisar por qu\u00e9 una conexi\u00f3n est\u00e1 siendo bloqueada, descubres lo importante que resulta tener un firewall bien configurado. En mi experiencia administrando servidores Linux, [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":10324,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"set","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[952],"tags":[1194,785,779,224,1539,177],"class_list":["post-10323","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-guias","tag-firewall","tag-kernel","tag-linux","tag-servidor","tag-ufw","tag-vps"],"_links":{"self":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/comments?post=10323"}],"version-history":[{"count":3,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10323\/revisions"}],"predecessor-version":[{"id":10345,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/posts\/10323\/revisions\/10345"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media\/10324"}],"wp:attachment":[{"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/media?parent=10323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/categories?post=10323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostingtg.com\/blog\/wp-json\/wp\/v2\/tags?post=10323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}