🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Syspanel: Guía para configurar un firewall básico (iptables) en tu VPS

Actualizado el 19 de enero de 2026

¿Tu VPS es como una casa sin puerta? Pues eso es lo que pasa cuando no tienes un firewall activado. Cualquier servicio que esté escuchando en un puerto (como tu web, el SSH o el correo) está expuesto al mundo entero. Por suerte, configurar un firewall básico con iptables es más fácil de lo que parece, y en esta guía te lo explico paso a paso, sin tecnicismos raros y pensando en que lo puedas hacer aunque no seas un gurú de la terminal.

Esta guía está pensada para usuarios de Syspanel, nuestro panel de control, pero los comandos funcionan en cualquier VPS con Linux. Así que ponte cómodo, abre tu terminal y vamos a blindar tu servidor.


¿Qué es iptables y por qué lo necesitas?

iptables es una herramienta que viene instalada en la mayoría de distribuciones Linux y que actúa como un filtro de paquetes. Imagina que es un portero muy estricto en la puerta de tu servidor: decide quién entra, quién sale y qué puede hacer cada uno.

Sin un firewall, tu VPS acepta por defecto todas las conexiones entrantes. Eso significa que si tienes un servicio corriendo en un puerto alto, como una base de datos o un panel de administración, cualquiera que escanee tu IP podría intentar colarse. Con iptables, tú dictas las reglas: "solo quiero que entre tráfico por los puertos 80 (HTTP), 443 (HTTPS) y 22 (SSH)".

Aunque existen herramientas más modernas como ufw o firewalld, aprender iptables te da un control total y, sobre todo, te ayuda a entender cómo funciona la seguridad a bajo nivel. Además, en muchos VPS minimalistas, iptables es la opción más ligera y rápida.


Antes de empezar: precauciones básicas

[WARNING] Este es el paso más importante: si te equivocas con las reglas, podrías quedarte fuera de tu propio servidor. Así que, antes de tocar nada, sigue estos consejos:

  1. Nunca cierres la sesión SSH actual. Trabaja siempre con dos terminales abiertas o asegúrate de tener una forma de acceso físico (como el panel de tu proveedor de VPS) por si acaso.
  2. Haz una copia de seguridad de las reglas actuales. Esto lo puedes hacer con el comando: sudo iptables-save > /tmp/reglas_firewall_bak.txt. Si algo sale mal, podrás restaurarlas.
  3. Aplica las reglas de una en una. No copies y pegues todo el bloque de golpe. Ve probando poco a poco.

Paso 1: Acceder a tu VPS y ver el estado actual

Primero, conéctate a tu VPS por SSH:

ssh usuario@IP_DE_TU_VPS

Una vez dentro, vamos a ver qué reglas hay configuradas ahora mismo (probablemente ninguna o las que trae por defecto tu sistema):

sudo iptables -L -n -v

Este comando te mostrará las cadenas INPUT (tráfico que entra), FORWARD (tráfico que se redirige) y OUTPUT (tráfico que sale). Si no has configurado nada, verás que las cadenas están vacías, lo que significa que todo el tráfico está permitido.


Paso 2: La política por defecto (la regla de oro)

Lo primero que vamos a hacer es cambiar la política por defecto de la cadena INPUT a DROP. Esto significa que, por defecto, todo el tráfico entrante será bloqueado, salvo que nosotros explícitamente lo permitamos. Es la base de un firewall seguro.

sudo iptables -P INPUT DROP

[WARNING] ¡Ojo! Si ejecutas esto ahora mismo, te quedarás sin conexión SSH. Por eso es crucial que hagas el Paso 3 antes de probar. Te recomiendo que escribas todos los comandos en un bloc de notas y los ejecutes en orden rápidamente.

Para la cadena OUTPUT (tráfico saliente) y FORWARD, las dejamos en ACCEPT por ahora, ya que no queremos bloquear las actualizaciones del sistema ni el envío de correos, por ejemplo.

sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT

Paso 3: Permitir conexiones establecidas y la interfaz loopback

Antes de bloquear nada, tenemos que permitir dos cosas esenciales:

  1. Conexiones ya establecidas: Si ya estás conectado por SSH, esa conexión no se debe cortar. Esta regla permite que el tráfico que ya fue aceptado (como tu sesión actual) siga fluyendo.
  2. La interfaz loopback (lo): Es la red interna de tu propio servidor. Permite que los servicios se comuniquen entre sí (por ejemplo, el servidor web con la base de datos). Bloquear esto rompería tu VPS.

Ejecuta estos comandos:

# Permitir tráfico de la interfaz loopback
sudo iptables -A INPUT -i lo -j ACCEPT

# Permitir tráfico de conexiones ya establecidas o relacionadas
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

Con esto, tu sesión SSH actual (si ya estaba establecida) no se cortará cuando apliquemos la política DROP.


Paso 4: Abrir los puertos esenciales (SSH, HTTP, HTTPS)

Ahora viene lo bueno. Vamos a abrir los puertos que necesitamos para que tu VPS funcione. Aquí es donde decides qué servicios quieres exponer al mundo.

### 4.1. Puerto SSH (22)

Este es el puerto para administrar tu servidor. Nunca lo bloquees, o te quedarás sin acceso. Si usas un puerto personalizado (por ejemplo, el 2222), cámbialo en el comando.

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

[TIP] Para más seguridad, puedes limitar el acceso SSH solo a tu IP de casa. El comando sería: sudo iptables -A INPUT -p tcp -s TU_IP_DE_CASA --dport 22 -j ACCEPT. Así, solo tú podrás conectarte desde esa dirección IP.

### 4.2. Puertos HTTP (80) y HTTPS (443)

Estos son los puertos de tu página web. Si tienes un servidor web (Apache, Nginx, LiteSpeed), necesitas abrirlos.

sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT

### 4.3. Puerto de Syspanel (2106)

Si utilizas Syspanel (nuestro panel de control), recuerda que el acceso a su interfaz gráfica se realiza a través del puerto 2106. Debes abrirlo para poder gestionar tus sitios web, bases de datos y cuentas de correo desde el navegador.

sudo iptables -A INPUT -p tcp --dport 2106 -j ACCEPT

[INFO] Syspanel es el nombre de nuestro panel de control que te permite administrar tu VPS de forma sencilla. Su interfaz web está disponible en https://IP_DE_TU_VPS:2106. Es importante que este puerto esté protegido, así que no lo expongas a todo el mundo si no es necesario; considera limitarlo a tu IP también.

### 4.4. Otros puertos comunes (opcional)

Dependiendo de lo que uses, quizás necesites abrir otros puertos:

  • FTP (21): Si usas FTP para subir archivos (aunque es mejor usar SFTP).
  • SMTP (25, 465, 587): Para el envío de correo.
  • POP3 (110, 995) e IMAP (143, 993): Para recibir correo.
  • MySQL/MariaDB (3306): No lo abras a internet. Es un riesgo de seguridad enorme. Úsalo solo si sabes lo que haces y con IPs específicas.

Paso 5: Aplicar y guardar las reglas

Una vez ejecutados todos los comandos, el firewall ya está activo en tu sesión actual. Pero, ¡ojo!, si reinicias el VPS, todas las reglas se borrarán. Para que sean permanentes, necesitas guardarlas.

El método para guardarlas varía según tu distribución:

  • Ubuntu/Debian (con iptables-persistent):

    sudo apt install iptables-persistent
    sudo netfilter-persistent save
    
  • CentOS/RHEL/Fedora:

    sudo service iptables save
    

    O si usas firewalld, tendrás que detenerlo y usar iptables directamente.

[WARNING] Si no guardas las reglas, perderás toda la configuración al reiniciar. Es como si no hubieras hecho nada.


Paso 6: Verificar y probar tu configuración

Después de aplicar todo, es hora de comprobar que todo funciona.

  1. Ver las reglas activas:

    sudo iptables -L -n -v
    

    Deberías ver las reglas que has añadido y la política DROP en la cadena INPUT.

  2. Probar el acceso web: Abre tu navegador y entra a tu página web. Debería cargar sin problemas.

  3. Probar el acceso a Syspanel: Ve a https://IP_DE_TU_VPS:2106. Deberías ver la pantalla de inicio de sesión de Syspanel.

  4. Probar el SSH: Abre una nueva ventana de terminal e intenta conectarte por SSH de nuevo. Si funciona, ¡perfecto!

  5. Probar un puerto cerrado: Intenta conectarte a un puerto que no hayas abierto (por ejemplo, el 3306 de MySQL). Deberías recibir un error de "Connection timed out" o "Connection refused". Eso significa que el firewall está haciendo su trabajo.


Comandos útiles para gestionar tu firewall Syspanel

Aquí tienes una chuleta con los comandos más útiles para el día a día:

  • Ver reglas con números de línea: sudo iptables -L --line-numbers. Utilísimo para borrar reglas específicas.
  • Borrar una regla específica: sudo iptables -D INPUT <número_de_línea>. Por ejemplo, para borrar la regla número 3: sudo iptables -D INPUT 3.
  • Borrar todas las reglas: sudo iptables -F. Esto vacía todas las cadenas. Úsalo con cuidado (te deja sin firewall).
  • Cambiar la política por defecto a ACCEPT (para desbloquear todo): sudo iptables -P INPUT ACCEPT.
  • Bloquear una IP específica: sudo iptables -A INPUT -s IP_QUE_QUIERES_BLOQUEAR -j DROP.
  • Guardar reglas de nuevo tras un cambio: Repite el comando de guardado de tu distribución (Paso 5).

Preguntas Frecuentes (FAQ)

### ¿Qué pasa si me quedo bloqueado fuera de mi VPS?

No cunda el pánico. La mayoría de los proveedores de VPS ofrecen un acceso por consola web (VNC o similar) desde su panel de control. Entra ahí, inicia sesión como root y ejecuta sudo iptables -F para borrar todas las reglas y volver al estado sin firewall.

### ¿Es lo mismo un firewall de software que uno de hardware?

No. Un firewall de hardware es un dispositivo físico que se coloca entre tu servidor e internet. Un firewall de software (como iptables) se ejecuta dentro de tu propio VPS, usando sus recursos. En un VPS, el de software es el más común y efectivo.

### ¿Puedo usar ufw en lugar de iptables?

Sí, ufw (Uncomplicated Firewall) es una interfaz más amigable para iptables. Si te resulta más fácil, puedes usarlo. Los conceptos son los mismos. De hecho, muchas guías de Syspanel recomiendan ufw por su simplicidad, pero entender iptables te dará una base más sólida.

### ¿Cómo sé si mi firewall está funcionando?

Puedes usar herramientas online como "Port Checker" para escanear tu IP y ver qué puertos están abiertos. Si has configurado bien el firewall, solo deberían aparecer los que has abierto (80, 443, 22, 2106, etc.).

### ¿Debo abrir el puerto 2106 de Syspanel a todo el mundo?

Recomendación: No. Es el panel de control de tu servidor, así que es un objetivo muy goloso para los atacantes. Lo ideal es que solo puedas acceder a él desde tu IP de casa o desde una VPN. Para hacerlo, modifica la regla para que solo acepte conexiones desde tu IP:

sudo iptables -A INPUT -p tcp -s TU_IP --dport 2106 -j ACCEPT

### ¿Qué más puedo hacer para asegurar mi VPS además del firewall?

Un firewall es solo la primera capa. Te recomiendo:

  • Deshabilitar el login por contraseña en SSH y usar solo claves SSH.
  • Cambiar el puerto SSH por defecto (22) a uno no estándar.
  • Mantener el sistema actualizado: sudo apt update && sudo apt upgrade (en Ubuntu/Debian).
  • Usar Fail2ban: Una herramienta que bloquea automáticamente las IPs que intentan hacer fuerza bruta.

Conclusión

Configurar un firewall básico con iptables es una de las tareas más importantes que puedes hacer para asegurar tu VPS. No es complicado, solo requiere un poco de paciencia y seguir los pasos con cuidado. Con esta guía, ya tienes la base para proteger tu servidor y tus datos.

Recuerda que la seguridad es un proceso continuo, no un destino. Revisa tus reglas de vez en cuando, mantén tu sistema actualizado y no te confíes. Si tienes alguna duda, aquí estamos para ayudarte.

[TIP] Guarda esta guía en tus favoritos. Cada vez que vayas a abrir un nuevo puerto o servicio, sabrás exactamente cómo hacerlo de forma segura. Y si usas Syspanel, recuerda que el acceso es por el puerto 2106, pero no olvides protegerlo como te he indicado.

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel